GNU bug report logs - #67934
guix: chicken-build-system: fixes to make it actually work

Previous Next

Package: guix-patches;

Reported by: dziltener <at> lyrion.ch

Date: Wed, 20 Dec 2023 16:19:02 UTC

Severity: normal

To reply to this bug, email your comments to 67934 AT debbugs.gnu.org.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to help-debbugs <at> gnu.org:
bug#67934; Package debbugs.gnu.org. (Wed, 20 Dec 2023 16:19:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to dziltener <at> lyrion.ch:
New bug report received and forwarded. Copy sent to help-debbugs <at> gnu.org.

Your message did not contain a Subject field. They are recommended and useful because the title of a $gBug is determined using this field. Please remember to include a Subject field in your messages in future.

(Wed, 20 Dec 2023 16:19:02 GMT) Full text and rfc822 format available.


Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: dziltener <at> lyrion.ch
Date: Wed, 20 Dec 2023 11:17:37 -0500
From f4001dd77c56c77e135343c630033619a5cca2e1 Mon Sep 17 00:00:00 2001
From: Daniel Ziltener <dziltener <at> lyrion.ch>
Date: Sun, 10 Dec 2023 15:26:10 +0100
Subject: [PATCH] guix: chicken-build-system: fixes to make it actually work
To: guix-patches <at> gnu.org
Cc: dziltener <at> lyrion.ch

---
 guix/build-system/chicken.scm       | 50 ++++++++++++++++++++---------
 guix/build/chicken-build-system.scm | 17 ++++------
 2 files changed, 40 insertions(+), 27 deletions(-)

diff --git a/guix/build-system/chicken.scm b/guix/build-system/chicken.scm
index 9f518e66e6..17c3b7b144 100644
--- a/guix/build-system/chicken.scm
+++ b/guix/build-system/chicken.scm
@@ -45,8 +45,8 @@ (define %chicken-build-system-modules
     ,@%gnu-build-system-modules))
 
 (define (default-chicken)
+  "Return the default Chicken package."
   ;; Lazily resolve the binding to avoid a circular dependency.
-  ;; TODO is this actually needed in every build system?
   (let ((chicken (resolve-interface '(gnu packages chicken))))
       (module-ref chicken 'chicken)))
 
@@ -77,18 +77,32 @@ (define private-keywords
                          ,@native-inputs))
          (outputs outputs)
          (build chicken-build)
-         (arguments (strip-keyword-arguments private-keywords arguments)))))
+         (arguments
+          (substitute-keyword-arguments
+              (strip-keyword-arguments private-keywords arguments)
+            ((#:extra-directories extra-directories)
+             `(list ,@(append-map
+                       (lambda (name)
+                         (match (assoc name inputs)
+                           ((_ pkg)
+                            (match (package-transitive-propagated-inputs pkg)
+                              (((propagated-names . _) ...)
+                               (cons name propagated-names))))))
+                       extra-directories))))))))
 
 (define* (chicken-build name inputs
                         #:key
                         source
                         (phases '%standard-phases)
-                        (outputs '("out"))
+                        (outputs '("out" "static"))
                         (search-paths '())
                         (egg-name "")
                         (unpack-path "")
                         (build-flags ''())
+                        (configure-flags ''())
+                        (extra-directories ''())
                         (tests? #t)
+                        (parallel-build? #f)
                         (system (%current-system))
                         (guile #f)
                         (imported-modules %chicken-build-system-modules)
@@ -99,19 +113,23 @@ (define builder
     (with-imported-modules imported-modules
       #~(begin
           (use-modules #$@(sexp->gexp modules))
-          (chicken-build #:name #$name
-                         #:source #+source
-                         #:system #$system
-                         #:phases #$phases
-                         #:outputs #$(outputs->gexp outputs)
-                         #:search-paths '#$(sexp->gexp
-                                            (map search-path-specification->sexp
-                                                 search-paths))
-                         #:egg-name #$egg-name
-                         #:unpack-path #$unpack-path
-                         #:build-flags #$build-flags
-                         #:tests? #$tests?
-                         #:inputs #$(input-tuples->gexp inputs)))))
+          #$(with-build-variables inputs-outputs
+                #~(chicken-build #:name #$name
+                                 #:source #+source
+                                 #:system #$system
+                                 #:phases #$phases
+                                 #:configure-flags #$configure-flags
+                                 #:extra-directories #$extra-directories
+                                 #:parallel-build? #$parallel-build?
+                                 #:outputs #$(outputs->gexp outputs)
+                                 #:search-paths '#$(sexp->gexp
+                                                    (map search-path-specification->sexp
+                                                         search-paths))
+                                 #:egg-name #$egg-name
+                                 #:unpack-path #$unpack-path
+                                 #:build-flags #$build-flags
+                                 #:tests? #$tests?
+                                 #:inputs #$(input-tuples->gexp inputs))))))
 
   (mlet %store-monad ((guile (package->derivation (or guile (default-guile))
                                                   system #:graft? #f)))
diff --git a/guix/build/chicken-build-system.scm b/guix/build/chicken-build-system.scm
index 8f9f59cc25..6a4f0c43eb 100644
--- a/guix/build/chicken-build-system.scm
+++ b/guix/build/chicken-build-system.scm
@@ -42,13 +42,12 @@ (define (chicken-package? name)
 
 (define* (setup-chicken-environment #:key inputs outputs #:allow-other-keys)
   (setenv "CHICKEN_INSTALL_REPOSITORY"
-          (string-concatenate
-           ;; see TODO item about binary version above
-           (append (list (assoc-ref outputs "out") "/var/lib/chicken/11/")
-                   (let ((oldenv (getenv "CHICKEN_INSTALL_REPOSITORY")))
-                     (if oldenv
-                         (list  ":" oldenv)
-                         '())))))
+          (string-append (assoc-ref outputs "out") "/var/lib/chicken/11/"))
+  (setenv "CHICKEN_INSTALL_PREFIX"
+          (string-append (assoc-ref outputs "out") "/bin/"))
+  (setenv "CHICKEN_REPOSITORY_PATH"
+          (string-append (getenv "CHICKEN_REPOSITORY_PATH")
+                         ":" (getenv "CHICKEN_INSTALL_REPOSITORY")))
   (setenv "CHICKEN_EGG_CACHE" (getcwd))
   #t)
 
@@ -104,10 +103,6 @@ (define* (check #:key egg-name tests? #:allow-other-keys)
   ;; there is no "-test-only" option, but we've already run install
   ;; so this just runs tests.
   ;; i think it's a fair assumption that phases won't be reordered.
-  (setenv "CHICKEN_REPOSITORY_PATH"
-          (string-append (getenv "CHICKEN_INSTALL_REPOSITORY")
-                         ":"
-                         (getenv "CHICKEN_REPOSITORY_PATH")))
   (when tests?
     (invoke "chicken-install" "-cached" "-test" "-no-install" egg-name)))
 
-- 
2.43.0





bug reassigned from package 'debbugs.gnu.org' to 'guix-patches'. Request was from Felix Lechner <felix.lechner <at> lease-up.com> to control <at> debbugs.gnu.org. (Thu, 21 Dec 2023 01:55:01 GMT) Full text and rfc822 format available.

Changed bug title to 'guix: chicken-build-system: fixes to make it actually work' from '(no subject)' Request was from Simon Tournier <zimon.toutoune <at> gmail.com> to control <at> debbugs.gnu.org. (Tue, 10 Sep 2024 16:20:08 GMT) Full text and rfc822 format available.

This bug report was last modified 276 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.