branch: master
commit 1872dd95253b4805a00bfe5dee8d1a0ed90af149
Author: Ludovic Courtès <[email protected]>
Date:   Wed Mar 28 12:13:58 2018 +0200

    evaluate: Tolerate calls to 'build-things' during evaluations.
    
    * bin/evaluate.in (main): 'build-things' replacement no longer calls 'exit'.
---
 bin/evaluate.in | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/bin/evaluate.in b/bin/evaluate.in
index a2fa86d..1439ea3 100644
--- a/bin/evaluate.in
+++ b/bin/evaluate.in
@@ -51,14 +51,16 @@ exec ${GUILE:-@GUILE@} --no-auto-compile -e main -s "$0" 
"$@"
          (unless (assoc-ref spec #:use-substitutes?)
            ;; Make sure we don't resort to substitutes.
            (set-build-options store #:use-substitutes? #f #:substitute-urls 
'()))
+
          ;; Grafts can trigger early builds.  We do not want that to happen
          ;; during evaluation, so use a sledgehammer to catch such problems.
+         ;; An exception, though, is the evaluation of Guix itself, which
+         ;; requires building a "trampoline" program.
          (set! build-things
-               (lambda (store . args)
-                 (display "error: trying to build things during evaluation!~%"
-                          stderr)
-                 (simple-format stderr "'build-things' arguments: ~S~%" args)
-                 (exit 1)))
+           (lambda (store . args)
+             (simple-format stderr "warning: building things during 
evaluation~%")
+             (simple-format stderr "'build-things' arguments: ~S~%" args)
+             (apply real-build-things store args)))
 
          (parameterize ((%use-substitutes? (assoc-ref spec 
#:use-substitutes?)))
            (unless (string-null? guix-package-path)

Reply via email to