aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEfraim Flashner2020-04-12 15:41:08 +0300
committerEfraim Flashner2020-04-12 16:11:00 +0300
commitc7ca1195b9849e50ae1ac640acc4e70ff448a484 (patch)
treeacc02c44be189dcea50646ff0d0925923ff67b1e
parent6958c2828dfd2247c23d4380f6a0646e51441040 (diff)
downloadguix-bioinformatics-c7ca1195b9849e50ae1ac640acc4e70ff448a484.tar.gz
gn: Package LMGPU and dependants
-rw-r--r--gn/packages/julia.scm198
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)))