diff options
author | Mark H Weaver <mhw@netris.org> | 2018-08-03 23:12:33 -0400 |
---|---|---|
committer | Mark H Weaver <mhw@netris.org> | 2018-08-03 23:12:33 -0400 |
commit | 82230603ce06de7aa3e4aef2fa093a6dbf0ef8df (patch) | |
tree | 2d874bba63962db839ce7ec80dd80cf4c532e958 /guix/build | |
parent | 4214066d45ec7030405577f225a9db0be04da1fd (diff) | |
download | gnu-guix-82230603ce06de7aa3e4aef2fa093a6dbf0ef8df.tar gnu-guix-82230603ce06de7aa3e4aef2fa093a6dbf0ef8df.tar.gz |
build-system/gnu: If a phase returns #f, the build fails.
Fixes <https://bugs.gnu.org/31974>.
Introduced by commit d8a3b1b9e847d4a44d2695f95af77170d4d2788f.
* guix/build/gnu-build-system.scm (gnu-build): Use 'every' instead
of 'for-each'.
Diffstat (limited to 'guix/build')
-rw-r--r-- | guix/build/gnu-build-system.scm | 36 |
1 files changed, 18 insertions, 18 deletions
diff --git a/guix/build/gnu-build-system.scm b/guix/build/gnu-build-system.scm index be5ad78b93..e5f3197b0a 100644 --- a/guix/build/gnu-build-system.scm +++ b/guix/build/gnu-build-system.scm @@ -792,26 +792,26 @@ in order. Return #t if all the PHASES succeeded, #f otherwise." ;; The trick is to #:allow-other-keys everywhere, so that each procedure in ;; PHASES can pick the keyword arguments it's interested in. - (for-each (match-lambda - ((name . proc) - (let ((start (current-time time-monotonic))) - (format #t "starting phase `~a'~%" name) - (let ((result (apply proc args)) - (end (current-time time-monotonic))) - (format #t "phase `~a' ~:[failed~;succeeded~] after ~,1f seconds~%" - name result - (elapsed-time end start)) - - ;; Issue a warning unless the result is #t. - (unless (eqv? result #t) - (format (current-error-port) "\ + (every (match-lambda + ((name . proc) + (let ((start (current-time time-monotonic))) + (format #t "starting phase `~a'~%" name) + (let ((result (apply proc args)) + (end (current-time time-monotonic))) + (format #t "phase `~a' ~:[failed~;succeeded~] after ~,1f seconds~%" + name result + (elapsed-time end start)) + + ;; Issue a warning unless the result is #t. + (unless (eqv? result #t) + (format (current-error-port) "\ ## WARNING: phase `~a' returned `~s'. Return values other than #t ## are deprecated. Please migrate this package so that its phase ## procedures report errors by raising an exception, and otherwise ## always return #t.~%" - name result)) + name result)) - ;; Dump the environment variables as a shell script, for handy debugging. - (system "export > $NIX_BUILD_TOP/environment-variables") - result)))) - phases)) + ;; Dump the environment variables as a shell script, for handy debugging. + (system "export > $NIX_BUILD_TOP/environment-variables") + result)))) + phases)) |