environment: Parameterize ‘%graft?’ early on.

Previously, ‘%graft?’ would be parameterized after ‘package-derivation’
had been called for ‘%guile-for-build’, which is too late.

* guix/scripts/environment.scm (guix-environment*)[with-store/maybe]:
Parameterize ‘%graft?’.
Remove ‘%graft?’ parameterization from body.

Change-Id: I65ef4a8c5f27e19a49196005871e5f7057fabaec
This commit is contained in:
Ludovic Courtès 2023-10-28 01:21:56 +02:00
parent 344e39c928
commit 661672a7f8
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5

View file

@ -1100,6 +1100,7 @@ (define-syntax-rule (with-store/maybe store exp ...)
;; Evaluate EXP... with STORE bound to a connection, unless ;; Evaluate EXP... with STORE bound to a connection, unless
;; STORE-NEEDED? is false, in which case STORE is bound to #f. ;; STORE-NEEDED? is false, in which case STORE is bound to #f.
(let ((proc (lambda (store) exp ...))) (let ((proc (lambda (store) exp ...)))
(parameterize ((%graft? (assoc-ref opts 'graft?)))
(if store-needed? (if store-needed?
(with-store s (with-store s
(set-build-options-from-command-line s opts) (set-build-options-from-command-line s opts)
@ -1110,7 +1111,7 @@ (define-syntax-rule (with-store/maybe store exp ...)
#:dry-run? #:dry-run?
(assoc-ref opts 'dry-run?)) (assoc-ref opts 'dry-run?))
(proc s))) (proc s)))
(proc #f)))) (proc #f)))))
(when container? (assert-container-features)) (when container? (assert-container-features))
@ -1146,8 +1147,7 @@ (define manifest
(warning (G_ "no packages specified; creating an empty environment~%"))) (warning (G_ "no packages specified; creating an empty environment~%")))
;; Use the bootstrap Guile when requested. ;; Use the bootstrap Guile when requested.
(parameterize ((%graft? (assoc-ref opts 'graft?)) (parameterize ((%guile-for-build
(%guile-for-build
(and store-needed? (and store-needed?
(package-derivation (package-derivation
store store