guix: chicken-build-system: fixes to make it actually work

  • Open
  • quality assurance status badge
Details
3 participants
  • dziltener
  • Felix Lechner
  • Simon Tournier
Owner
unassigned
Submitted by
dziltener
Severity
normal
D
D
dziltener wrote on 20 Dec 2023 17:17
(no subject)
1505528f59e239bcbc5b42e1f4b7393f@lyrion.ch
From f4001dd77c56c77e135343c630033619a5cca2e1 Mon Sep 17 00:00:00 2001
From: Daniel Ziltener <dziltener@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@gnu.org
Cc: dziltener@lyrion.ch

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

Toggle diff (123 lines)
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
F
F
Felix Lechner wrote on 21 Dec 2023 02:53
(address . control@debbugs.gnu.org)(address . dziltener@lyrion.ch)
87v88spbgv.fsf@lease-up.com
reassign 67934 guix-patches
thanks
S
S
Simon Tournier wrote on 10 Sep 16:05 +0200
control message for bug #67934
(address . control@debbugs.gnu.org)
87cylbeh8o.fsf@gmail.com
retitle 67934 guix: chicken-build-system: fixes to make it actually work
quit
?
Your comment

Commenting via the web interface is currently disabled.

To comment on this conversation send an email to 67934@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 67934
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch