summary refs log tree commit diff
path: root/gnu/packages/julia-xyz.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/julia-xyz.scm')
-rw-r--r--gnu/packages/julia-xyz.scm280
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)))