about summary refs log tree commit diff
diff options
context:
space:
mode:
authorMunyoki Kilyungi2024-11-05 14:11:28 +0300
committerMunyoki Kilyungi2024-11-06 07:12:49 +0300
commit4623225b0adb0846a4c2e879a33b31884d2e5f05 (patch)
treefeadfa16ce43f9d293601dd96ebb91451d32882e
parentce3c07b554dfa71f17aae7c95650b809f221fbd3 (diff)
downloadgn-guile-4623225b0adb0846a4c2e879a33b31884d2e5f05.tar.gz
Explicitly set GUILE_LOAD_PATH for gn-guile-git build.
Signed-off-by: Munyoki Kilyungi <me@bonfacemunyoki.com>
-rw-r--r--guix.scm105
1 files changed, 56 insertions, 49 deletions
diff --git a/guix.scm b/guix.scm
index 4417452..384b314 100644
--- a/guix.scm
+++ b/guix.scm
@@ -7,34 +7,26 @@
 ;;   guix shell -C -D -f guix.scm
 ;;
 
-(use-modules
- ((guix licenses) #:prefix license:)
- (guix gexp)
- (guix packages)
- (guix git-download)
- (guix build-system guile)
- (gnu packages algebra)
- (gnu packages base)
- (gnu packages bash)
- (gnu packages compression)
- (gnu packages bioinformatics)
- (gnu packages build-tools)
- (gnu packages certs)
- (gnu packages curl)
- (gnu packages gcc)
- (gnu packages guile)
- (gnu packages guile-xyz)
- (gnu packages llvm)
- (gnu packages ninja)
- (gnu packages parallel)
- (gnu packages perl)
- (gnu packages perl6)
- (gnu packages pkg-config)
- (gnu packages python)
- (gnu packages tls)
- (srfi srfi-1)
- (ice-9 popen)
- (ice-9 rdelim))
+(define-module (gn-guile-package)
+  #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (guix gexp)
+  #:use-module (guix packages)
+  #:use-module (guix git-download)
+  #:use-module (guix build-system guile)
+  #:use-module (guix utils)
+  #:use-module (gnu packages build-tools)
+  #:use-module  (gnu packages package-management)
+  #:use-module ((gnu packages bash) #:select (bash-minimal))
+  #:use-module ((gnu packages bioinformatics) #:select (gemma))
+  #:use-module ((gnu packages certs) #:select (nss-certs))
+  #:use-module ((gnu packages guile) #:select (guile-json-4 guile-3.0 guile-readline))
+  #:use-module ((gnu packages guile-xyz) #:select (guile-dbi guile-dbd-mysql guile-fibers guile-redis guile-hashing guile-commonmark))
+  #:use-module ((gnu packages parallel) #:select (parallel))
+  #:use-module ((gnu packages perl) #:select (perl))
+  #:use-module ((gnu packages tls) #:select (guile-gnutls openssl))
+  #:use-module (srfi srfi-1)
+  #:use-module (ice-9 popen)
+  #:use-module (ice-9 rdelim))
 
 (define %source-dir (dirname (current-filename)))
 
@@ -45,27 +37,42 @@
   (package
     (name "gn-guile-git")
     (version (git-version "4.0.0-" "HEAD" %git-commit))
-    (source (local-file %source-dir #:recursive? #t))
+    (source (local-file %source-dir
+			#:recursive? #t
+			#:select? (or (git-predicate (dirname (current-source-directory)))
+                                      (const #t))))
     (build-system guile-build-system)
-
-     (inputs
-      (list guile-3.0-latest bash-minimal perl
-            guile-dbi guile-dbd-mysql guile-fibers guile-gnutls guile-readline guile-redis openssl nss-certs gemma parallel))
-     (propagated-inputs
-      (list guile-json-4))
-
-#!
-     (arguments
-      `(#:compile-flags '("--r6rs" "-Wunbound-variable" "-Warity-mismatch")
-        #:modules ((guix build guile-build-system)
-                   (guix build utils)
-                   (srfi srfi-26)
-                   (ice-9 ftw)
-                   (json))))
-!#
-     (home-page "https://git.genenetwork.com/gn-guile")
-     (synopsis "Next generation GN code in guile")
-     (description "Use of guile.")
-     (license license:gpl3)))
+    (propagated-inputs
+     (list guile-3.0 guile-dbi guile-dbd-mysql guile-fibers guile-gnutls guile-readline
+	   guile-commonmark guile-redis openssl nss-certs gemma parallel guile-hashing))
+    (arguments
+     (list
+      #:phases
+      #~(modify-phases %standard-phases
+	  ;; When using the guile-build-system, guild doesn't
+	  ;; correctly set the GUILE_LOAD_PATH for the various guile
+	  ;; packages in the build phase leading to build failures.
+	  (add-before 'build 'augment-GUILE_LOAD_PATH
+	    (lambda* (#:key outputs #:allow-other-keys)
+	      (let* ((guile-version (target-guile-effective-version))
+		     (guile-dbi-scm (string-append #$guile-dbi "/share/guile/site/2.2")))
+		;; guild uses this: "\\.(scm|sls)$" regexp to try and
+		;; compile all scm files in this repository.  We don't
+		;; need to compile guix.scm
+		(delete-file "guix.scm")
+		(setenv "GUILE_LOAD_PATH"
+			(string-append
+			 guile-dbi-scm ":"
+			 (format
+			  #f "~{~a:~}"
+			  (map (lambda (package)
+				 (format #f "~a/share/guile/site/~a"
+					 package guile-version))
+			       (list #$guile-fibers #$guile-commonmark #$guile-json-4 #$guile-hashing)))
+			 #$(getenv "GUILE_LOAD_PATH")))))))))
+    (home-page "https://git.genenetwork.com/gn-guile")
+    (synopsis "Next generation GN code in guile")
+    (description "Use of guile.")
+    (license license:gpl3)))
 
 gn-guile-git