diff options
author | pjotrp | 2020-05-06 09:16:01 -0500 |
---|---|---|
committer | pjotrp | 2020-05-06 09:16:01 -0500 |
commit | a26d7f7eacefcd4c3b2339f81d99218f4b36dc69 (patch) | |
tree | 1d6a1d6b8afea9d4bb935cc0a3911d3fe9771c3e /gn/packages/julia.scm | |
parent | 52ba4c45ddf6fcb811e88c5efb12dca200c0bd7e (diff) | |
parent | 5390e28c3308d0f9ce7ee2b96c9c4f31e3a7861b (diff) | |
download | guix-bioinformatics-a26d7f7eacefcd4c3b2339f81d99218f4b36dc69.tar.gz |
Merge branch 'master' of http://git.genenetwork.org/guix-bioinformatics/guix-bioinformatics
Diffstat (limited to 'gn/packages/julia.scm')
-rw-r--r-- | gn/packages/julia.scm | 198 |
1 files changed, 198 insertions, 0 deletions
diff --git a/gn/packages/julia.scm b/gn/packages/julia.scm new file mode 100644 index 0000000..b55efde --- /dev/null +++ b/gn/packages/julia.scm @@ -0,0 +1,198 @@ +(define-module (gn packages julia) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix utils) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix git-download) + #:use-module (guix build-system julia) + #:use-module (gn packages cran) + #:use-module (gnu packages bioinformatics) + #:use-module (gnu packages compression) + #:use-module (gnu packages cran) + #:use-module (gnu packages statistics) + #:use-module (ice-9 match)) + +(define-public julia-lmgpu + (let ((commit "e9e95b5fa46f1905ca1ff32a3684a2616a7e482c") + (revision "1")) + (package + (name "julia-lmgpu") + (version (git-version "0.1.1" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ChelseaTrotter/LMGPU.jl") + (commit commit))) + ;(file-name (git-file-name name version)) + (file-name "LMGPU") + (sha256 + (base32 + "1ddx2np1lakw1l2dclpcaihxd0fcj6bjxsvaxr6g5brxjqk5j7b1")))) + (build-system julia-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + ;; This is a super ugly hack. Some JULIA environment variable should + ;; be tuned so it can find the artifact directory. + (add-after 'unpack 'symlink-zlib-into-artifact-directory + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((julia-dir (string-append (assoc-ref outputs "out") + "/share/julia"))) + (mkdir-p julia-dir) + (symlink + (string-append (assoc-ref inputs "julia-zlib-jll") + "/share/julia/artifacts") + (string-append julia-dir "/artifacts"))) + #t)) + (add-after 'precompile 'check + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (builddir (string-append out "/share/julia/"))) + (setenv "JULIA_LOAD_PATH" + (string-append builddir "packages/" ":" + (or (getenv "JULIA_LOAD_PATH") + ""))) + (setenv "HOME" (getcwd)) + (invoke "julia" "test/runtests.jl"))))))) + (native-inputs + `(("r" ,r-minimal) + ("r-mice" ,r-mice) + ("r-qtl2" ,r-qtl2) + ("r-tictoc" ,r-tictoc) + ("r-tidyverse" ,r-tidyverse))) + (propagated-inputs + `(("julia-zipfile" ,julia-zipfile))) + (home-page "https://github.com/ChelseaTrotter/LMGPU.jl") + (synopsis "") + (description "") + (license license:expat)))) + +(define-public julia-lmgpu-myapp + (package + (inherit julia-lmgpu) + (name "julia-lmgpu-myapp") + (source + (origin (inherit (package-source julia-lmgpu)) + (file-name "MyApp"))) + (arguments + (substitute-keyword-arguments (package-arguments julia-lmgpu) + ((#:phases phases) + `(modify-phases ,phases + (add-after 'unpack 'change-directory + (lambda _ + (chdir "bin/MyApp") #t)))))) + (propagated-inputs + `(("julia-lmgpu" ,julia-lmgpu) + ,@(package-propagated-inputs julia-lmgpu))) + (native-inputs + `(("julia-packagecompiler" ,julia-packagecompiler))))) + +(define-public julia-zipfile + (package + (name "julia-zipfile") + (version "0.9.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/fhs/ZipFile.jl") + (commit (string-append "v" version)))) + ;(file-name (git-file-name name version)) + (file-name "ZipFile") + (sha256 + (base32 + "1fpvlhfqg5kgq5vchlf8dyc73r6dzki0dz7plddc3bnr0ld00rlw")))) + (build-system julia-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + ;; This is a super ugly hack. Some JULIA environment variable should + ;; be tuned so it can find the artifact directory. + (add-after 'unpack 'symlink-zlib-into-artifact-directory + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((julia-dir (string-append (assoc-ref outputs "out") + "/share/julia"))) + (mkdir-p julia-dir) + (symlink + (string-append (assoc-ref inputs "julia-zlib-jll") + "/share/julia/artifacts") + (string-append julia-dir "/artifacts"))) + #t))))) + (propagated-inputs + `(("julia-zlib-jll" ,julia-zlib-jll))) + (home-page "https://github.com/fhs/ZipFile.jl") + (synopsis "Read/Write ZIP archives in Julia") + (description "This module provides support for reading and writing ZIP +archives in Julia.") + (license license:expat))) + +(define-public julia-zlib-jll + (package + (name "julia-zlib-jll") + (version "1.2.11+9") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/JuliaBinaryWrappers/Zlib_jll.jl") + (commit (string-append "Zlib-v" version)))) + ;(file-name (git-file-name name version)) + (file-name "Zlib_jll") + (sha256 + (base32 + "0m9n8dp4bwhkyjag1szmhz02k0bxzm4ka2ia2jh8crnd1qi8w9dz")))) + (build-system julia-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'symlink-zlib-into-artifact-directory + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((artifacts (string-append (assoc-ref outputs "out") + "/share/julia/artifacts"))) + (mkdir-p artifacts) + (symlink + (assoc-ref inputs "zlib") + ;; from git-tree-sha1 in Artifacts.toml + (string-append + artifacts + ,(match (%current-system) + ("x86_64-linux" "/7846a2956a213715c2c76632f3461cef87d9d545") + ("i686-linux" "/c8456cbd00982236828623bbc63f21b9b7b03821") + ("armhf-linux" "/748c38025b5596a5005a87ac2b9476603cf8615b") + ("aarch64-linux" "/3dd0c7cd5424c8746a1a32034ba1b10458f20b3b") + (_ "/UNSUPPORTED"))))) + #t))))) + (native-inputs + `(("zlib" ,zlib))) + (home-page "https://github.com/JuliaBinaryWrappers/Zlib_jll.jl") + (synopsis "Autogenerated package constructed using BinaryBuilder.jl") + (description "This is an autogenerated package constructed using +@url{https://github.com/JuliaPackaging/BinaryBuilder.jl, BinaryBuilder.jl}.") + (license license:expat))) + +(define-public julia-packagecompiler + (package + (name "julia-packagecompiler") + (version "1.1.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/JuliaLang/PackageCompiler.jl") + (commit (string-append "v" version)))) + ;(file-name (git-file-name name version)) + (file-name "PackageCompiler") + (sha256 + (base32 + "1s9xc17i308fdpyvkz1w6qb1h7yncdr2jgk1szfvygxd6yzkv1b4")))) + (build-system julia-build-system) + (home-page "https://github.com/JuliaLang/PackageCompiler.jl") + (synopsis "Compile your Julia Package") + (description "PackageCompiler is a Julia package with two main purposes: +@itemize +@item Creating custom sysimages for reduced latency when working locally with +packages that has a high startup time. +@item Creating \"apps\" which are a bundle of files including an executable that +can be sent and run on other machines without Julia being installed on that machine. +@end itemize") + (license license:expat))) |