From c7ca1195b9849e50ae1ac640acc4e70ff448a484 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 12 Apr 2020 15:41:08 +0300 Subject: gn: Package LMGPU and dependants --- gn/packages/julia.scm | 198 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 198 insertions(+) create mode 100644 gn/packages/julia.scm (limited to 'gn') 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))) -- cgit v1.2.3