about summary refs log tree commit diff
diff options
context:
space:
mode:
authorPjotr Prins2026-04-10 10:06:22 +0200
committerPjotr Prins2026-04-10 10:06:22 +0200
commit1688fff25938371d0a9f50a0a8a7d9279279515a (patch)
tree0db2f23a7900d2232cdb33a15c9fee65b0e17b2f
parent6a18d7ffd730dea629ba5198ecd13b00e946a175 (diff)
downloadpangemma-1688fff25938371d0a9f50a0a8a7d9279279515a.tar.gz
guix.scm moved
-rw-r--r--guix.scm (renamed from guix/guix.scm)172
1 files changed, 47 insertions, 125 deletions
diff --git a/guix/guix.scm b/guix.scm
index d8d593b..7440c81 100644
--- a/guix/guix.scm
+++ b/guix.scm
@@ -1,61 +1,50 @@
 ;; To use this file to build HEAD of gemma:
 ;;
-;;   guix build -f guix/guix.scm       # default builds pangemma-git
+;;   guix build -f guix.scm
 ;;
 ;; To get a development container (e.g., run in emacs shell).
 ;;
-;;   guix shell -C -D -F -f guix/guix.scm # pangemma-shell-git
+;;   guix shell -C -D -f guix.scm
 ;;
-;; see premake5.lua for build/test instructions
-;;
-;; optimized for arch:
-;;
-;;   guix shell --tune=native -C -D -F # pangemma-shell-git
-;;
-;; see premake5.lua header for examples.
-;;
-;; To optimize use guix --tune=march-type (e.g. --tune=native)
-
-(define-module (guix)
-  #:use-module ((guix licenses) #:prefix license:)
-  #:use-module (guix gexp)
-  #:use-module (guix packages)
-  #:use-module (guix git-download)
-  #:use-module (guix build-system gnu)
-  #:use-module (guix utils)
 
-  #:use-module (gnu packages algebra)
-  #:use-module (gnu packages base)
-  #:use-module (gnu packages build-tools)
-  #:use-module (gnu packages compression)
-  #:use-module (gnu packages commencement)
-  #:use-module (gnu packages check)
-  #:use-module (gnu packages cpp)
-  #:use-module (gnu packages databases)
-  #:use-module (gnu packages gcc)
-  #:use-module (gnu packages gdb)
-  #:use-module (gnu packages guile)
-  #:use-module (gnu packages guile-xyz)
-  #:use-module (gnu packages maths)
-  #:use-module (gnu packages ninja)
-  #:use-module (gnu packages perl)
-  #:use-module (gnu packages pkg-config)
-  #:use-module (gnu packages ruby)
-  #:use-module (gnu packages time)
-  #:use-module (srfi srfi-1)
-  #:use-module (ice-9 popen)
-  #:use-module (ice-9 rdelim))
+(use-modules
+  ((guix licenses) #:prefix license:)
+  (guix gexp)
+  (guix packages)
+  (guix git-download)
+  (guix build-system gnu)
+  (guix utils)
+  (gnu packages algebra)
+  (gnu packages base)
+  (gnu packages compression)
+  (gnu packages bioinformatics)
+  (gnu packages build-tools)
+  (gnu packages check)
+  (gnu packages curl)
+  (gnu packages gcc)
+  (gnu packages gdb)
+  (gnu packages llvm)
+  (gnu packages maths)
+  (gnu packages ninja)
+  (gnu packages parallel)
+  (gnu packages perl)
+  ;; (gnu packages perl6)
+  (gnu packages ruby)
+  (gnu packages pkg-config)
+  ;; (gnu packages shell)  ;; for shunit2
+  (srfi srfi-1)
+  (ice-9 popen)
+  (ice-9 rdelim))
 
 (define %source-dir (dirname (current-filename)))
 
 (define %git-commit
-  (read-string (open-pipe "git describe --always --tags --long|tr -d $'\n'" OPEN_READ)))
+    (read-string (open-pipe "git show HEAD | head -1 | cut -d ' ' -f 2" OPEN_READ)))
 
-(define %pangemma-version
-    (read-string (open-pipe "cat VERSION|tr -d $'\n'" OPEN_READ)))
+(define %gemma-version
+    (read-string (open-pipe "cat VERSION" OPEN_READ)))
 
 (define-public openblas-pangemma
-;; we are fixating on an older openblas, for now
   (package
     (name "openblas-pangemma")
     (version "0.3.21")
@@ -142,95 +131,28 @@
      "OpenBLAS is a BLAS library forked from the GotoBLAS2-1.13 BSD version.")
     (license license:bsd-3)))
 
-(define-public pangemma-base-git
-  "Pangemma base build package"
-  (package
-    (name "pangemma-git")
-    (version (git-version %pangemma-version "HEAD" %git-commit))
-    (source (local-file %source-dir #:recursive? #t))
-    (build-system gnu-build-system)
-    (inputs
-     (list gsl
-           openblas-pangemma
-           guile-3.0
-           `(,guile-3.0 "debug")
-           ;; `(,guile-3.0 "dev")
-           guile-lmdb
-           lmdb
-           lmdbxx
-           pkg-config
-           ;; ninja
-           ;; ruby
-           time
-           zlib))
-    ;; (propagated-inputs
-    ;;  (list
-    ;;   `("guile" ,guile-3.0-latest)
-    ;;   `("guile-debug" ,guile-3.0-latest "debug")
-    ;;  `("guile" ,guile-3.0-latest "dev")))
-
-    ;; ("gsl-static" ,gsl-static)
-    ;; ("zlib:static" ,zlib "static")
-    (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-                      (delete 'configure)
-                      (delete 'validate-runpath)
-                      (add-before 'build 'bin-mkdir
-                                  (lambda _
-                                    (mkdir-p "bin")
-                                    ))
-                      (replace 'install
-                               (lambda* (#:key outputs #:allow-other-keys)
-                                 (let ((out (assoc-ref outputs "out")))
-                                   (install-file "bin/gemma" (string-append out "/bin"))))))
-       #:tests? #t
-       #:parallel-tests? #f))
-    (home-page "https://git.genenetwork.org/pangemma/")
-    (synopsis "Tool for genome-wide efficient mixed model association")
-    (description "New version of Genome-wide Efficient Mixed Model Association (PANGEMMA)
-provides a standard linear mixed model resolver with application in
-genome-wide association studies (GWAS).")
-    (license license:gpl3)))
-
-(define-public pangemma-shell-git
-  "Shell version for development"
-  (package
-    (inherit pangemma-base-git)
-    (name "pangemma-shell-git")
-    (build-system gnu-build-system)
-    (propagated-inputs
-     (modify-inputs (package-inputs pangemma-base-git)
-                    (append which binutils coreutils gcc-toolchain premake5 gnu-make gdb gperftools ;; for the shell
-                 )))
-    (arguments
-     `(#:phases (modify-phases %standard-phases
-                               (delete 'configure)
-                               (delete 'build)
-                               (delete 'package)
-                               (delete 'check)
-                               (delete 'install))))
-    (description "Pangemma shell for development")
-    ))
 
-;; ---- legacy build -----------------------------------------------------------------
 (define-public gemma-git
-  "Original legacy gemma -- for as long as it compiles"
   (package
     (name "gemma-git")
-    (version (git-version %pangemma-version "HEAD" %git-commit))
+    (version (git-version "0.98.5" "HEAD" %git-commit))
     (source (local-file %source-dir #:recursive? #t))
     (build-system gnu-build-system)
     (inputs
-     (list catch2
-           gdb
-           gsl
-           openblas-pangemma
-           zlib))
+     `(
+       ("catch" ,catch2)
+       ("gdb" ,gdb)
        ;; ("gsl-static" ,gsl-static)
-       ;; ("zlib:static" ,zlib "static")
+       ("gsl" ,gsl)
+       ("openblas" ,openblas-pangemma)
+       ("ruby" ,ruby) ;; for testing
+       ("zlib:static" ,zlib "static")
+       ("zlib" ,zlib)))
+
     (native-inputs ; for running tests
-     (list perl which))
+     `(("perl" ,perl)
+       ("which" ,which)
+       ))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -253,4 +175,4 @@ provides a standard linear mixed model resolver with application in
 genome-wide association studies (GWAS).")
     (license license:gpl3)))
 
-pangemma-shell-git
+gemma-git