build-self: Emit a useful message upon error.
authorLudovic Courtès <ludo@gnu.org>
Thu, 13 Sep 2018 08:23:39 +0000 (10:23 +0200)
committerLudovic Courtès <ludo@gnu.org>
Thu, 13 Sep 2018 08:29:59 +0000 (10:29 +0200)
* build-aux/build-self.scm (build): Raise a '&message' condition instead
of calling 'error'.

build-aux/build-self.scm

index 09979dc..306b2c6 100644 (file)
@@ -25,6 +25,8 @@
   #:use-module (guix build-system gnu)
   #:use-module (srfi srfi-1)
   #:use-module (srfi srfi-19)
+  #:use-module (srfi srfi-34)
+  #:use-module (srfi srfi-35)
   #:use-module (rnrs io ports)
   #:use-module (ice-9 match)
   #:use-module (ice-9 popen)
@@ -420,7 +422,15 @@ files."
            ;; Unsupported PULL-VERSION.
            (return #f))
           ((? string? str)
-           (error "invalid build result" (list build str))))))))
+           (raise (condition
+                   (&message
+                    (message (format #f "You found a bug: the program '~a'
+failed to compute the derivation for Guix (version: ~s; system: ~s;
+host version: ~s; pull-version: ~s).
+Please report it by email to <~a>.~%"
+                                     (derivation->output-path build)
+                                     version system %guix-version pull-version
+                                     %guix-bug-report-address)))))))))))
 
 ;; This file is loaded by 'guix pull'; return it the build procedure.
 build