From 4623225b0adb0846a4c2e879a33b31884d2e5f05 Mon Sep 17 00:00:00 2001 From: Munyoki Kilyungi Date: Tue, 5 Nov 2024 14:11:28 +0300 Subject: Explicitly set GUILE_LOAD_PATH for gn-guile-git build. Signed-off-by: Munyoki Kilyungi --- guix.scm | 105 ++++++++++++++++++++++++++++++++++----------------------------- 1 file changed, 56 insertions(+), 49 deletions(-) (limited to 'guix.scm') 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 -- cgit v1.2.3