guix-devel/gnu/packages/julia-xyz.scm

495 lines
19 KiB
Scheme

;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2019 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 build-system julia)
#:use-module (guix git-download)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (gnu packages compression)
#:use-module (gnu packages xml)
#:use-module (gnu packages tls))
(define-public julia-uriparser
(package
(name "julia-uriparser")
(version "0.4.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/JuliaWeb/URIParser.jl")
(commit (string-append "v" version))))
(file-name "URIParser")
(sha256
(base32 "1i45wza6jh9k7x8jrqiil6k2yb81hdzm3s0zqhzy3y2sby66p44p"))))
(build-system julia-build-system)
(home-page "https://github.com/JuliaWeb/URIParser.jl")
(synopsis "Provides URI parsing according to RFC 3986")
(description "@code{URIParser} is a julia package that provides URI
parsing according to RFC 3986.")
(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 (string-append "v" version))))
(file-name "IniFile")
(sha256
(base32 "19cn41w04hikrqdzlxhrgf21rfqhkvj9x1zvwh3yz9hqbf350xs9"))))
(arguments
`(#:phases
(modify-phases %standard-phases
(add-before 'precompile 'fix-toml
(lambda* (#:key outputs source #:allow-other-keys)
(julia-create-package-toml
outputs source
"IniFile" "83e8ac13-25f8-5344-8a64-a9f2b223428f" "0.5.0"
'())
#t)))))
(build-system julia-build-system)
(home-page "https://github.com/JuliaIO/IniFile.jl")
(synopsis "Reading Windows-style INI files")
(description "@code{julia-inifile} is a julia package that defines an
Inifile type that allows to interface with @file{.ini} files.")
(license license:expat)))
(define-public julia-compat
(package
(name "julia-compat")
(version "2.2.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/JuliaLang/Compat.jl")
(commit (string-append "v" version))))
(file-name "Compat")
(sha256
(base32 "024gqvhabranf398hwhb4m2w3a42kdg9zqj8s4pmjvaal14grw70"))))
(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-sha
(package
(name "julia-sha")
(version "0.5.7")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/staticfloat/SHA.jl")
(commit (string-append "v" version))))
(file-name "SHA")
(sha256
(base32 "10a09kg9z0m8rvwmlgsna6p342kyvizx2axdqc6pzyhraddr8jrp"))))
(propagated-inputs `(("julia-compat" ,julia-compat)))
(build-system julia-build-system)
(home-page "https://github.com/staticfloat/SHA.jl")
(synopsis "Performant, 100% native-julia SHA1, SHA2, and SHA3
implementation")
(description "Julia package implementing SHA algorithms. Each exported
function takes in either an Array{UInt8}, a ByteString or an IO object.")
(license license:expat)))
(define-public julia-binaryprovider
(package
(name "julia-binaryprovider")
(version "0.5.5")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/JuliaPackaging/BinaryProvider.jl")
(commit (string-append "v" version))))
(file-name "BinaryProvider")
(sha256
(base32 "1papsz5ki5iwv1v3ac1ddybjxak93nydh7dqc3231zm0fzd918ys"))))
(propagated-inputs `(("julia-sha" ,julia-sha)))
(arguments
`(#:phases
;; wants to download things with curl/wget
(modify-phases %standard-phases (delete 'precompile))))
(build-system julia-build-system)
(home-page "https://github.com/JuliaPackaging/BinaryProvider.jl.git")
(synopsis "A reliable binary provider for Julia")
(description "Install binary packages with Julia.")
(license license:expat)))
(define-public julia-mbedtls
(package
(name "julia-mbedtls")
(version "0.7.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/JuliaWeb/MbedTLS.jl")
(commit (string-append "v" version))))
(file-name "MbedTLS")
(sha256
(base32 "1a8snw9gi21lm6r3kh6ly7ngi99s9k5shqkfiizj3g9li20q23h2"))))
(propagated-inputs `(("julia-binaryprovider" ,julia-binaryprovider)
("mbedtls-apache" ,mbedtls-apache)))
(arguments
`(#:phases
(modify-phases %standard-phases
(add-before 'precompile 'build-deps
(lambda* (#:key outputs source inputs #:allow-other-keys)
(let ((f (open-file
(string-append
(assoc-ref outputs "out")
"/share/julia/packages/"
(string-append
(strip-store-file-name source) "/deps/deps.jl"))
"w")))
(display (string-append "const libmbedcrypto = \""
(assoc-ref inputs "mbedtls-apache")
"/lib/libmbedcrypto.so\"\n") f)
(display (string-append "const libmbedtls = \""
(assoc-ref inputs "mbedtls-apache")
"/lib/libmbedtls.so\"\n") f)
(display (string-append "const libmbedx509 = \""
(assoc-ref inputs "mbedtls-apache")
"/lib/libmbedx509.so\"\n") f)
(close-port f))
#t)))))
(build-system julia-build-system)
(home-page "https://github.com/JuliaWeb/MbedTLS.jl")
(synopsis "Wrapper around the mbed TLS and cryptography C libary")
(description "@code{julia-mbedtls} is a julia wrapper around mbed TLS.")
(license license:expat)))
(define-public julia-bindeps
(package
(name "julia-bindeps")
(version "0.8.10")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/JuliaPackaging/BinDeps.jl")
(commit (string-append "v" version))))
(file-name "BinDeps")
(sha256
(base32 "1da7z4ii78gaqnjal7c4d1xvicyshiil4ls6xhi9id4q8plmfa2m"))))
(propagated-inputs `(("julia-uriparser" ,julia-uriparser)
("julia-sha" ,julia-sha)
("julia-compat" ,julia-compat)))
(build-system julia-build-system)
(home-page "https://github.com/JuliaPackaging/BinDeps.jl")
(synopsis "Easily build binary dependencies for Julia packages")
(description "@code{BinDeps} is a package that provides a collection of
tools to build binary dependencies for Julia packages.")
(license license:expat)))
(define-public julia-parsers
(package
(name "julia-parsers")
(version "0.3.7")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/JuliaData/Parsers.jl")
(commit (string-append "v" version))))
(file-name "Parsers")
(sha256
(base32 "01j8cpnhxpxzybqzbvv3h5v0ksysqxmh5fmls6hpza2p3gjg4yrv"))))
(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} is a collection of type parsers and utilities
for Julia")
(license license:expat)))
(define-public julia-json
(package
(name "julia-json")
(version "0.21.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/JuliaIO/JSON.jl")
(commit (string-append "v" version))))
(file-name "JSON")
(sha256
(base32 "0knmfjhchd3ggy86dsfyb7l4v3fv5dcr207cgp54mj7rj96caqsm"))))
(propagated-inputs `(("julia-parsers" ,julia-parsers)))
(build-system julia-build-system)
(home-page "https://github.com/JuliaIO/JSON.jl")
(synopsis "JSON parsing and printing")
(description "Parsing and printing JSON in pure Julia.")
(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 "BufferedStreams")
(sha256
(base32 "0sf4sxbq55mg2pwxyxf0c839z1lk0yxg8nmb7617bfbvw31cp88z"))))
(propagated-inputs `(("julia-compat" ,julia-compat)))
(build-system julia-build-system)
(home-page "https://github.com/BioJulia/BufferedStreams.jl")
(synopsis "Fast composable IO streams")
(description "@code{BufferedStreams} provides buffering for IO
operations. It can wrap any IO type automatically making incremental reading
and writing faster.")
(license license:expat)))
(define-public julia-transcodingstreams
(package
(name "julia-transcodingstreams")
(version "0.9.5")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/bicycle1885/TranscodingStreams.jl")
(commit (string-append "v" version))))
(file-name "TranscodingStreams")
(sha256
(base32 "0zfr4g4yv08iy96vshn7zn4lh2z5rwd4k1ybvyinp3srl69hxlk9"))))
(propagated-inputs `(("julia-compat" ,julia-compat)))
(build-system julia-build-system)
(home-page "https://github.com/bicycle1885/TranscodingStreams.jl")
(synopsis "Simple, consistent interfaces for any codec")
(description " @code{TranscodingStreams.jl} is a package for transcoding
data streams, which is:
@enumerate
@item fast: small overhead and specialized
methods,
@item consistent: basic I/O operations you already know will work as
you expect,
@item generic: support any I/O objects like files, buffers, pipes,
@item extensible: you can define a new codec to transcode data
@end enumerate")
(license license:expat)))
(define-public julia-codeczlib
(package
(name "julia-codeczlib")
(version "0.6.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/bicycle1885/CodecZlib.jl")
(commit (string-append "v" version))))
(file-name "CodecZlib")
(sha256
(base32 "18j5lhcsgln4ng5ik0y1s194q1a8h4828wwp4ws5vqc9i2spn8mb"))))
(propagated-inputs `(("julia-transcodingstreams" ,julia-transcodingstreams)
("julia-binaryprovider" ,julia-binaryprovider)
("zlib" ,zlib)))
(arguments
`(#:phases
(modify-phases %standard-phases
(delete 'reset-gzip-timestamps)
(add-before 'precompile 'build-deps
(lambda* (#:key outputs source inputs #:allow-other-keys)
(let ((f (open-file
(string-append
(assoc-ref outputs "out")
"/share/julia/packages/"
(string-append
(strip-store-file-name source) "/deps/deps.jl"))
"w")))
(display (string-append "const libz = \""
(assoc-ref inputs "zlib")
"/lib/libz.so\"\n") f)
(display "check_deps() = true\n" f)
(close-port f))
#t)))))
(build-system julia-build-system)
(home-page "https://github.com/bicycle1885/CodecZlib.jl")
(synopsis "@code{Zlib} codecs for @code{TranscodingStreams}")
(description "@code{CodecZlib} provides Zlib bindings for the
@code{TranscodingStreams} interface.")
(license license:expat)))
(define-public julia-http
(package
(name "julia-http")
(version "0.8.6")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/JuliaWeb/HTTP.jl")
(commit (string-append "v" version))))
(file-name "HTTP")
(sha256
(base32 "01s9nszgdinpa3pyra646w2yi4qx0d6hcngsrxx291vr5gnhr7lj"))))
(propagated-inputs `(("julia-inifile" ,julia-inifile)
("julia-mbedtls" ,julia-mbedtls)
("julia-compat" ,julia-compat)))
(build-system julia-build-system)
(home-page "https://juliaweb.github.io/HTTP.jl/")
(synopsis "HTTP for Julia")
(description "HTTP client and server functionality for Julia.")
(license license:expat)))
(define-public julia-libexpat
(package
(name "julia-libexpat")
;; 0.6.0 requires julia 1.3+
(version "0.5.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/JuliaIO/LibExpat.jl")
(commit (string-append "v" version))))
(file-name "LibExpat")
(sha256
(base32 "1iny18z76bkf3yi6cvpfia7z1j7kn789iy0nwigsj2sb9mfi5x8b"))))
(arguments
`(#:phases
(modify-phases %standard-phases
(add-before 'precompile 'build-deps
(lambda*
(#:key outputs source inputs #:allow-other-keys)
(substitute*
(string-append
(assoc-ref outputs "out") "/share/julia/packages/"
(strip-store-file-name source) "/src/LibExpat.jl")
(("const libexpat = \"libexpat\"")
(string-append "const libexpat = \""
(assoc-ref inputs "expat")
"/lib/libexpat.so\"")))
#t)))))
(propagated-inputs `(("julia-compat" ,julia-compat)
("expat" ,expat)))
(build-system julia-build-system)
(home-page "https://github.com/JuliaIO/LibExpat.jl")
(synopsis "Julia interface to the Expat XML parser library")
(description "Run XPath queries on fully parsed XML tree.")
(license license:expat)))
(define-public julia-iteratorinterfaceextensions
(package
(name "julia-iteratorinterfaceextensions")
(version "1.0.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url
"https://github.com/queryverse/IteratorInterfaceExtensions.jl")
(commit (string-append "v" version))))
(file-name "IteratorInterfaceExtensions")
(sha256
(base32 "1slpay1dhja8f9gy6z7b3psgvgcknn963dvfqqakvg1grk9ppa09"))))
(build-system julia-build-system)
(home-page "https://github.com/queryverse/IteratorInterfaceExtensions.jl")
(synopsis "@code{IteratorInterfaceExtensions} defines a small number of
extensions to the iterator interface")
(description "@code{IteratorInterfaceExtensions} is a Julia package that
adds @code{isiterable} and @code{getiterator} to the iterator interface.")
(license license:expat)))
(define-public julia-tabletraits
(package
(name "julia-tabletraits")
(version "1.0.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/queryverse/TableTraits.jl")
(commit (string-append "v" version))))
(file-name "TableTraits")
(sha256
(base32 "0lzb9xqnhgjbvkscc4p9vw3pzajm3a5a6ayv6byqc53ws8fxqk2v"))))
(propagated-inputs `(("julia-iteratorinterfaceextensions"
,julia-iteratorinterfaceextensions)))
(build-system julia-build-system)
(home-page "https://github.com/queryverse/TableTraits.jl")
(synopsis "Traits for julia tables")
(description "@code{TableTraits} defines a generic interface for tabular
data.")
(license license:expat)))
(define-public julia-dataapi
(package
(name "julia-dataapi")
(version "1.1.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/JuliaData/DataAPI.jl")
(commit (string-append "v" version))))
(file-name "DataAPI")
(sha256
(base32 "0zl9vwkwcd2zar7vn9mhdwysyzkkfmq4ls5cmfs2nqzlfv4bzwbx"))))
(build-system julia-build-system)
(home-page "https://github.com/JuliaData/DataAPI.jl")
(synopsis "Data-focused namespace for packages to share functions")
(description "This Julia package provides a namespace for data-related
generic function definitions to solve the optional dependency problem;
packages wishing to share and/or extend functions can avoid depending directly
on each other by moving the function definition to @code{DataAPI.jl} and each
package taking a dependency on it. As such, it is paramount for
@code{DataAPI.jl} to be as minimal as possible, defining only generic function
stubs and very little else.")
(license license:expat)))
(define-public julia-datavalues
(package
(name "julia-datavalues")
(version "0.4.12")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/queryverse/DataValues.jl")
(commit (string-append "v" version))))
(file-name "DataValues")
(sha256
(base32 "1x0si392psc6drc1x9vnzln4ai4y483n639yd7wqkn5h1nsxaa1c"))))
(propagated-inputs `(("julia-datavalueinterfaces"
,julia-datavalueinterfaces)))
(build-system julia-build-system)
(home-page "https://github.com/queryverse/DataValues.jl")
(synopsis "Missing values for Julia")
(description "This package provides the type DataValue that is used to
represent missing data.")
(license license:expat)))