From 1872dd95253b4805a00bfe5dee8d1a0ed90af149 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 28 Mar 2018 12:13:58 +0200 Subject: 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) -- cgit v1.2.3