mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-11-18 12:47:33 -05:00
d4987a50ce
* gnu/packages/julia-xyz.scm (julia-http): New variable. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
494 lines
19 KiB
Scheme
494 lines
19 KiB
Scheme
;;; GNU Guix --- Functional package management for GNU
|
|
;;; Copyright © 2020, 2021 Nicolò Balzarotti <nicolo@nixo.xyz>
|
|
;;;
|
|
;;; This file is part of GNU Guix.
|
|
;;;
|
|
;;; GNU Guix is free software; you can redistribute it and/or modify it
|
|
;;; under the terms of the GNU General Public License as published by
|
|
;;; the Free Software Foundation; either version 3 of the License, or (at
|
|
;;; your option) any later version.
|
|
;;;
|
|
;;; GNU Guix is distributed in the hope that it will be useful, but
|
|
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
;;; GNU General Public License for more details.
|
|
;;;
|
|
;;; You should have received a copy of the GNU General Public License
|
|
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
(define-module (gnu packages julia-xyz)
|
|
#:use-module ((guix licenses) #:prefix license:)
|
|
#:use-module (guix packages)
|
|
#:use-module (guix git-download)
|
|
#:use-module (guix build-system julia)
|
|
#:use-module (gnu packages tls))
|
|
|
|
(define-public julia-adapt
|
|
(package
|
|
(name "julia-adapt")
|
|
(version "3.1.1")
|
|
(source
|
|
(origin
|
|
(method git-fetch)
|
|
(uri (git-reference
|
|
(url "https://github.com/JuliaGPU/Adapt.jl")
|
|
(commit (string-append "v" version))))
|
|
(file-name (git-file-name name version))
|
|
(sha256
|
|
(base32 "1lks6k3a1gvwlplld47nh6xfy3nnlpc0vhkzg6zg0qn33qdmavrg"))))
|
|
(build-system julia-build-system)
|
|
(home-page "https://github.com/JuliaGPU/Adapt.jl")
|
|
(synopsis "Package providing the @code{adapt} function, similar to @code{convert}")
|
|
(description "This Julia package provides the @code{adapt(T, x)} function
|
|
acts like @code{convert(T, x)}, but without the restriction of returning a
|
|
@code{T}. This allows you to \"convert\" wrapper types like @code{Adjoint} to
|
|
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")
|
|
(version "3.25.0")
|
|
(source
|
|
(origin
|
|
(method git-fetch)
|
|
(uri (git-reference
|
|
(url "https://github.com/JuliaLang/Compat.jl")
|
|
(commit (string-append "v" version))))
|
|
(file-name (git-file-name name version))
|
|
(sha256
|
|
(base32 "1m4r5i8mq29xjp3mllh6047n5a78sdyld57m15anrnsjgaapcgby"))))
|
|
(build-system julia-build-system)
|
|
(home-page "https://github.com/JuliaLang/Compat.jl")
|
|
(synopsis "Compatibility across Julia versions")
|
|
(description "The Compat package is designed to ease interoperability
|
|
between older and newer versions of the Julia language. The Compat package
|
|
provides a macro that lets you use the latest syntax in a backwards-compatible
|
|
way.")
|
|
(license license:expat)))
|
|
|
|
(define-public julia-datastructures
|
|
(package
|
|
(name "julia-datastructures")
|
|
(version "0.18.9")
|
|
(source
|
|
(origin
|
|
(method git-fetch)
|
|
(uri (git-reference
|
|
(url "https://github.com/JuliaCollections/DataStructures.jl")
|
|
(commit (string-append "v" version))))
|
|
(file-name (git-file-name name version))
|
|
(sha256
|
|
(base32 "0hdqp8ipsqdw5bqqkdvz4j6n67x80sj5azr9vzyxwjfsgkfbnk2l"))))
|
|
(propagated-inputs
|
|
`(("julia-compat" ,julia-compat)
|
|
("julia-orderedcollections" ,julia-orderedcollections)))
|
|
(build-system julia-build-system)
|
|
(home-page "https://github.com/JuliaCollections/DataStructures.jl")
|
|
(synopsis "Julia module providing different data structures")
|
|
(description "This package implements a variety of data structures,
|
|
including, @code{CircularBuffer}, @code{Queue}, @code{Stack},
|
|
@code{Accumulators}, @code{LinkedLists}, @code{SortedDicts} and many others.")
|
|
(license license:expat)))
|
|
|
|
(define-public julia-fixedpointnumbers
|
|
(package
|
|
(name "julia-fixedpointnumbers")
|
|
(version "0.8.4")
|
|
(source
|
|
(origin
|
|
(method git-fetch)
|
|
(uri (git-reference
|
|
(url "https://github.com/JuliaMath/FixedPointNumbers.jl")
|
|
(commit (string-append "v" version))))
|
|
(file-name (git-file-name name version))
|
|
(sha256
|
|
(base32 "0j0n40n04q9sk68wh9jq90m6c67k4ws02k41djjzkrqmpzv4rcdi"))))
|
|
(build-system julia-build-system)
|
|
(arguments
|
|
`(#:phases
|
|
(modify-phases %standard-phases
|
|
(add-after 'unpack 'disable-failing-test
|
|
(lambda* (#:key outputs #:allow-other-keys)
|
|
(substitute* "test/fixed.jl"
|
|
;; A deprecation warning is not thrown
|
|
(("@test_logs.*:warn" all) (string-append "# " all)))
|
|
#t)))))
|
|
(propagated-inputs `(("julia-compat" ,julia-compat)))
|
|
(home-page "https://github.com/JuliaMath/FixedPointNumbers.jl")
|
|
(synopsis "Fixed point types for Julia")
|
|
(description "@code{FixedPointNumbers.jl} implements fixed-point number
|
|
types for Julia. A fixed-point number represents a fractional, or
|
|
non-integral, number. In contrast with the more widely known floating-point
|
|
numbers, with fixed-point numbers the decimal point doesn't \"float\":
|
|
fixed-point numbers are effectively integers that are interpreted as being
|
|
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")
|
|
(version "0.21.1")
|
|
(source
|
|
(origin
|
|
(method git-fetch)
|
|
(uri (git-reference
|
|
(url "https://github.com/JuliaIO/JSON.jl")
|
|
(commit (string-append "v" version))))
|
|
(file-name (git-file-name name version))
|
|
(sha256
|
|
(base32 "1f9k613kbknmp4fgjxvjaw4d5sfbx8a5hmcszmp1w9rqfqngjx9m"))))
|
|
(build-system julia-build-system)
|
|
(propagated-inputs
|
|
`(("julia-datastructures" ,julia-datastructures)
|
|
("julia-fixedpointnumbers" ,julia-fixedpointnumbers)
|
|
("julia-parsers" ,julia-parsers)
|
|
("julia-offsetarrays" ,julia-offsetarrays)))
|
|
(home-page "https://github.com/JuliaIO/JSON.jl")
|
|
(synopsis "JSON parsing and printing library for Julia")
|
|
(description "@code{JSON.jl} is a pure Julia module which supports parsing
|
|
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")
|
|
(version "1.3.2")
|
|
(source
|
|
(origin
|
|
(method git-fetch)
|
|
(uri (git-reference
|
|
(url "https://github.com/JuliaCollections/OrderedCollections.jl")
|
|
(commit (string-append "v" version))))
|
|
(file-name (git-file-name name version))
|
|
(sha256
|
|
(base32 "0sfip1ixghsz91q2s7d62rgzw3gppg42fg6bccxlplqa3hfmbycf"))))
|
|
(build-system julia-build-system)
|
|
(home-page "https://github.com/JuliaCollections/OrderedCollections.jl")
|
|
(synopsis "Associative containers that preserve insertion order")
|
|
(description "This package implements @code{OrderedDicts} and
|
|
@code{OrderedSets}, which are similar to containers in base Julia. However,
|
|
during iteration the @code{Ordered*} containers return items in the order in
|
|
which they were added to the collection.")
|
|
(license license:expat)))
|
|
|
|
(define-public julia-offsetarrays
|
|
(package
|
|
(name "julia-offsetarrays")
|
|
(version "1.5.2")
|
|
(source
|
|
(origin
|
|
(method git-fetch)
|
|
(uri (git-reference
|
|
(url "https://github.com/JuliaArrays/OffsetArrays.jl")
|
|
(commit (string-append "v" version))))
|
|
(file-name (git-file-name name version))
|
|
(sha256
|
|
(base32 "1y3fnssw2hzyghrk6jfcxslab0f8sjkjszh482snfq4k6mkrhy77"))))
|
|
(build-system julia-build-system)
|
|
(propagated-inputs
|
|
`(("julia-adapt" ,julia-adapt)))
|
|
;; CatIndices depends on OffsetArrays, introducing a recursive dependency
|
|
(arguments '(#:tests? #f))
|
|
(home-page "https://juliaarrays.github.io/OffsetArrays.jl/stable/")
|
|
(synopsis "Fortran-like arrays with arbitrary, zero or negative indices")
|
|
(description "@code{OffsetArrays.jl} provides Julia users with arrays that
|
|
have arbitrary indices, similar to those found in some other programming
|
|
languages like Fortran.")
|
|
(license license:expat)))
|
|
|
|
(define-public julia-parsers
|
|
(package
|
|
(name "julia-parsers")
|
|
(version "1.0.15")
|
|
(source
|
|
(origin
|
|
(method git-fetch)
|
|
(uri (git-reference
|
|
(url "https://github.com/JuliaData/Parsers.jl")
|
|
(commit (string-append "v" version))))
|
|
(file-name (git-file-name name version))
|
|
(sha256
|
|
(base32 "16iffl6l28kspgqch48mhi1s8qhspr3cpqcwsph3rqi72lbfqygx"))))
|
|
(build-system julia-build-system)
|
|
(home-page "https://github.com/JuliaData/Parsers.jl")
|
|
(synopsis "Fast parsing machinery for basic types in Julia")
|
|
(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)))
|