diff options
Diffstat (limited to 'gnu/packages/julia-xyz.scm')
-rw-r--r-- | gnu/packages/julia-xyz.scm | 280 |
1 files changed, 278 insertions, 2 deletions
diff --git a/gnu/packages/julia-xyz.scm b/gnu/packages/julia-xyz.scm index 34dba958ce..0d35cbde57 100644 --- a/gnu/packages/julia-xyz.scm +++ b/gnu/packages/julia-xyz.scm @@ -20,7 +20,8 @@ #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix git-download) - #:use-module (guix build-system julia)) + #:use-module (guix build-system julia) + #:use-module (gnu packages tls)) (define-public julia-adapt (package @@ -32,7 +33,7 @@ (uri (git-reference (url "https://github.com/JuliaGPU/Adapt.jl") (commit (string-append "v" version)))) - (file-name "Adapt") + (file-name (git-file-name name version)) (sha256 (base32 "1lks6k3a1gvwlplld47nh6xfy3nnlpc0vhkzg6zg0qn33qdmavrg")))) (build-system julia-build-system) @@ -44,6 +45,56 @@ acts like @code{convert(T, x)}, but without the restriction of returning a be GPU compatible without throwing away the wrapper.") (license license:expat))) +(define-public julia-benchmarktools + (package + (name "julia-benchmarktools") + (version "0.5.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/JuliaCI/BenchmarkTools.jl") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0nsx21m3i5h22lkgyrmfj6r085va6ag40khwssqs8y7l0wz98lvp")))) + (build-system julia-build-system) + (propagated-inputs `(("julia-json" ,julia-json))) + (home-page "https://github.com/JuliaCI/BenchmarkTools.jl") + (synopsis "Benchmarking framework for the Julia language") + (description "@code{BenchmarkTools.jl} makes performance tracking of Julia +code easy by supplying a framework for writing and running groups of +benchmarks as well as comparing benchmark results.") + (license license:expat))) + +(define-public julia-bufferedstreams + (package + (name "julia-bufferedstreams") + (version "1.0.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/BioJulia/BufferedStreams.jl") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0sf4sxbq55mg2pwxyxf0c839z1lk0yxg8nmb7617bfbvw31cp88z")))) + (build-system julia-build-system) + ;; The package is old and tests are using undefined functions. They also + ;; freeze, see + ;; https://travis-ci.org/BioJulia/BufferedStreams.jl/jobs/491050182 + (arguments + '(#:tests? #f + #:julia-package-name "BufferedStreams")) + (propagated-inputs `(("julia-compat" ,julia-compat))) + (home-page "https://github.com/BioJulia/BufferedStreams.jl") + (synopsis "Fast composable IO streams") + (description "@code{BufferedStreams.jl} provides buffering for IO +operations. It can wrap any @code{IO} type automatically making incremental +reading and writing faster.") + (license license:expat))) + (define-public julia-compat (package (name "julia-compat") @@ -125,6 +176,127 @@ scaled by a constant factor. Consequently, they have a fixed number of digits (bits) after the decimal (radix) point.") (license license:expat))) +(define-public julia-http + (package + (name "julia-http") + (version "0.9.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/JuliaWeb/HTTP.jl") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0ij0yci13c46p92m4zywvcs02nn8pm0abyfffiyhxvva6hq48lyl")))) + (build-system julia-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-before 'install 'disable-network-tests + (lambda _ + (substitute* "test/runtests.jl" + (("\"async.jl") "# \"async.jl") + (("\"client.jl") "# \"client.jl")) + (substitute* "test/aws4.jl" + (("@testset.*HTTP.request with AWS authentication.*" all) + (string-append all "return\n"))) + (substitute* "test/insert_layers.jl" + (("@testset.*Inserted final layer runs handler.*" all) + (string-append all "return\n"))) + (substitute* "test/multipart.jl" + (("@testset \"Setting of Content-Type.*" all) + (string-append all "return\n")) + (("@testset \"Deprecation of .*" all) + (string-append all "return\n"))) + (substitute* "test/websockets.jl" + (("@testset.*External Host.*" all) + (string-append all "return\n"))) + (substitute* "test/messages.jl" + (("@testset.*Read methods.*" all) + (string-append all "return\n")) + (("@testset.*Body - .*" all) + (string-append all "return\n")) + (("@testset.*Write to file.*" all) + (string-append all "return\n"))) + #t))))) + (propagated-inputs + `(("julia-inifile" ,julia-inifile) + ("julia-mbedtls" ,julia-mbedtls) + ("julia-uris" ,julia-uris))) + ;; required for tests + (inputs + `(("julia-json" ,julia-json) + ("julia-bufferedstreams" ,julia-bufferedstreams))) + (home-page "https://juliaweb.github.io/HTTP.jl/") + (synopsis "HTTP support for Julia") + (description "@code{HTTP.jl} is a Julia library for HTTP Messages, +implementing both a client and a server.") + (license license:expat))) + +(define-public julia-inifile + (package + (name "julia-inifile") + (version "0.5.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/JuliaIO/IniFile.jl") + (commit "8ba59958495fa276d6489d2c3903e765d75e0bc0"))) + (file-name (git-file-name name version)) + (sha256 + (base32 "11h6f99jpbg729lplw841m68jprka7q3n8yw390bndlmcdsjabpd")))) + (build-system julia-build-system) + (home-page "https://github.com/JuliaIO/IniFile.jl") + (synopsis "Reading Windows-style INI files") + (description "This is a Julia package that defines an IniFile type that +allows to interface with @file{.ini} files.") + (license license:expat))) + +(define-public julia-jllwrappers + (package + (name "julia-jllwrappers") + (version "1.2.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/JuliaPackaging/JLLWrappers.jl") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1sj3mi2dcc13apqfpy401wic5n0pgbck1p98b2g3zw0mln9s83m4")))) + (arguments + ;; Wants to download stuff + '(#:tests? #f + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'custom-override-path + (lambda* (#:key inputs #:allow-other-keys) + ;; Make @generate_wrapper_header take an optional argument that + ;; guix packagers can pass to override the default "override" + ;; binary path. This won't be needed when something like + ;; https://github.com/JuliaPackaging/JLLWrappers.jl/pull/27 + ;; will be merged. + (substitute* "src/wrapper_generators.jl" + (("generate_wrapper_header.*") + "generate_wrapper_header(src_name, override_path = nothing)\n") + (("pkg_dir = .*" all) + (string-append + all "\n" "override = something(override_path," + "joinpath(dirname(pkg_dir), \"override\"))\n")) + (("@static if isdir.*") "@static if isdir($override)\n") + (("return joinpath.*") "return $override\n")) + #t))))) + (build-system julia-build-system) + (home-page "https://github.com/JuliaPackaging/JLLWrappers.jl") + (synopsis "Julia macros used by JLL packages") + (description "This package contains Julia macros that enable JLL packages +to generate themselves. It is not intended to be used by users, but rather is +used in autogenerated packages via @code{BinaryBuilder.jl}.") + (license license:expat))) + (define-public julia-json (package (name "julia-json") @@ -150,6 +322,76 @@ digits (bits) after the decimal (radix) point.") and printing JSON documents.") (license license:expat))) +(define-public julia-mbedtls + (package + (name "julia-mbedtls") + (version "1.0.3") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/JuliaLang/MbedTLS.jl") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0zjzf2r57l24n3k0gcqkvx3izwn5827iv9ak0lqix0aa5967wvfb")))) + (build-system julia-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-before 'install 'disable-network-tests + ;; Tries to connect to httpbin.org + (lambda _ + (substitute* "test/runtests.jl" + (("testhost =") "return #")) + #t))))) + (propagated-inputs `(("julia-mbedtls-jll" ,julia-mbedtls-jll))) + (home-page "https://github.com/JuliaLang/MbedTLS.jl") + (synopsis "Apache's mbed TLS library wrapper") + (description "@code{MbedTLS.jl} provides a wrapper around the @code{mbed +TLS} and cryptography C libary for Julia.") + (license license:expat))) + +(define-public julia-mbedtls-jll + (package + (name "julia-mbedtls-jll") + ;; version 2.25.0+0 is not compatible with current mbedtls 2.23.0, + ;; upgrade this when mbedtls is updated in guix + (version "2.24.0+1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/JuliaBinaryWrappers/MbedTLS_jll.jl") + (commit (string-append "MbedTLS-v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0kk9dlxdh7yms21npgrdfmjbj8q8ng6kdhrzw3jr2d7rp696kp99")))) + (build-system julia-build-system) + (arguments + '(#:tests? #f ; No runtests.jl + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'override-binary-path + (lambda* (#:key inputs #:allow-other-keys) + (map + (lambda (wrapper) + (substitute* wrapper + (("generate_wrapper_header.*") + (string-append + "generate_wrapper_header(\"MbedTLS\", \"" + (assoc-ref inputs "mbedtls-apache") "\")\n")))) + ;; There's a Julia file for each platform, override them all + (find-files "src/wrappers/" "\\.jl$")) + #t))))) + (inputs `(("mbedtls-apache" ,mbedtls-apache))) + (propagated-inputs `(("julia-jllwrappers" ,julia-jllwrappers))) + (home-page "https://github.com/JuliaBinaryWrappers/MbedTLS_jll.jl") + (synopsis "Apache's mbed TLS binary wrappers") + (description "This Julia module provides @code{mbed TLS} libraries and +wrappers.") + (license license:expat))) + (define-public julia-orderedcollections (package (name "julia-orderedcollections") @@ -216,3 +458,37 @@ languages like Fortran.") (description "@code{Parsers.jl} is a collection of type parsers and utilities for Julia.") (license license:expat))) + +(define-public julia-uris + (package + (name "julia-uris") + (version "1.2.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/JuliaWeb/URIs.jl") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0fqyagsqks5za7m0czafr34m2xh5501f689k9cn5x3npajdnh2r3")))) + (build-system julia-build-system) + (arguments + '(#:julia-package-name "URIs" ;required to run tests + #:phases + (modify-phases %standard-phases + (add-before 'check 'change-dir + ;; Tests must be run from the testdir + (lambda* (#:key source outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (chdir + (string-append out "/share/julia/packages/URIs/test"))) + #t))))) + ;; required for tests + (inputs `(("julia-json" ,julia-json))) + (home-page "https://github.com/JuliaWeb/URIs.jl") + (synopsis "URI parsing in Julia") + (description "@code{URIs.jl} is a Julia package that allows parsing and +working with @acronym{URIs,Uniform Resource Identifiers}, as defined in RFC +3986.") + (license license:expat))) |