diff --git a/build-aux/build-self.scm b/build-aux/build-self.scm index 5ec76a588f..bccb7a959e 100644 --- a/build-aux/build-self.scm +++ b/build-aux/build-self.scm @@ -277,14 +277,16 @@ (define* (build source (mbegin %store-monad (show-what-to-build* (list build)) (built-derivations (list build)) - (let ((pipe (begin - (setenv "GUILE_WARN_DEPRECATED" "no") ;be quiet and drive - (open-pipe* OPEN_READ - (derivation->output-path build) - source system)))) - (match (get-string-all pipe) + (let* ((pipe (begin + (setenv "GUILE_WARN_DEPRECATED" "no") ;be quiet and drive + (open-pipe* OPEN_READ + (derivation->output-path build) + source system))) + (str (get-string-all pipe)) + (status (close-pipe pipe))) + (match str ((? eof-object?) - (error "build program failed" build)) + (error "build program failed" (list build status))) ((? derivation-path? drv) (mbegin %store-monad (return (newline (current-output-port)))