;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2020 Nicolò Balzarotti ;;; ;;; 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 . (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 curl) #:use-module (gnu packages tls)) (define-public julia-binaryprovider (package (name "julia-binaryprovider") (version "0.5.8") (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 "174jmg4w8ncgfhdvfnm0p4cnlayw31j4s9sksqlwz1sipywqvww7")))) (build-system julia-build-system) ;; We don't really need BinaryProvider (as guix provides the binaries) but ;; since it's a dependency of other packages we want to precompile it. (arguments `(#:tests? #f)) (propagated-inputs `(("julia-sha" ,julia-sha))) (inputs `(("curl" ,curl))) (home-page "https://github.com/JuliaPackaging/BinaryProvider.jl") (synopsis "Reliable Binary provider for Julia") (description "@code{BinaryProvider.jl} simplifies the installation of binaries required by julia packages.") (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")))) (build-system julia-build-system) ;; tests are freezing, see ;; https://travis-ci.org/BioJulia/BufferedStreams.jl/jobs/491050182 (arguments '(#:tests? #f)) (propagated-inputs `(("julia-compat" ,julia-compat))) (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-compat (package (name "julia-compat") (version "3.6.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 "0dxy0kpwgz3a9w665lp154x9yrnic89f2b27b1nmh69jhnnb2zgr")))) (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-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 "IniFile") (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-mbedtls (package (name "julia-mbedtls") (version "0.7.0") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/JuliaLang/MbedTLS.jl") (commit (string-append "v" version)))) (file-name "MbedTLS") (sha256 (base32 "1a8snw9gi21lm6r3kh6ly7ngi99s9k5shqkfiizj3g9li20q23h2")))) (build-system julia-build-system) (propagated-inputs `(("julia-binaryprovider" ,julia-binaryprovider))) (inputs `(("mbedtls-apache" ,mbedtls-apache))) (arguments `(#:phases (modify-phases %standard-phases (add-before 'install 'disable-network-tests (lambda _ (substitute* "test/runtests.jl" (("testhost =") "return #")) #t)) ;; Add binary dependency paths (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))))) (home-page "https://github.com/JuliaLang/MbedTLS.jl") (synopsis "Apache's mbed TLS library wrapper") (description "@code{MbedTLS.jl} provides a wrapper around the mbed TLS and cryptography C libary for Julia.") (license license:expat))) (define-public julia-parsers (package (name "julia-parsers") (version "0.3.11") (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 "07dgcy12206a3lw55h00znq3yq4faczng6bbdn3lhc0l6jmclsly")))) (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-sha (package (name "julia-sha") (version "0.5.7") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/staticfloat/SHA.jl") ;; tests fixed in this untagged version (commit "97b17a7fabf894257726c33cbd78255ac380906d"))) (file-name "SHA") (sha256 (base32 "169y78cmppj117cmh8ncnyh381caf9dsklaks5l40mia9jdcqbgl")))) (build-system julia-build-system) (propagated-inputs `(("julia-compat" ,julia-compat))) (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 @code{Array{UInt8}}, a @code{ByteString} or an @code{IO} object.") (license license:expat)))