summary refs log tree commit diff
path: root/build-aux/hydra/evaluate.scm
diff options
context:
space:
mode:
Diffstat (limited to 'build-aux/hydra/evaluate.scm')
-rw-r--r--build-aux/hydra/evaluate.scm11
1 files changed, 7 insertions, 4 deletions
diff --git a/build-aux/hydra/evaluate.scm b/build-aux/hydra/evaluate.scm
index 8e391f44fd..5793c022ff 100644
--- a/build-aux/hydra/evaluate.scm
+++ b/build-aux/hydra/evaluate.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2016, 2017 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2017 Jan Nieuwenhuizen <janneke@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -79,7 +79,8 @@ Otherwise return THING."
 (match (command-line)
   ((command file cuirass? ...)
    ;; Load FILE, a Scheme file that defines Hydra jobs.
-   (let ((port (current-output-port)))
+   (let ((port (current-output-port))
+         (real-build-things build-things))
      (save-module-excursion
       (lambda ()
         (set-current-module %user-module)
@@ -93,13 +94,15 @@ Otherwise return THING."
 
        ;; 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)
            (format (current-error-port)
-                   "error: trying to build things during evaluation!~%")
+                   "warning: building things during evaluation~%")
            (format (current-error-port)
                    "'build-things' arguments: ~s~%" args)
-           (exit 1)))
+           (apply real-build-things store args)))
 
        ;; Call the entry point of FILE and print the resulting job sexp.
        (pretty-print