summaryrefslogtreecommitdiff
path: root/guix/packages.scm
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2013-05-27 23:41:35 +0200
committerLudovic Courtès <ludo@gnu.org>2013-05-27 23:43:00 +0200
commit9b222abe0349701280d48e4830f98aa07c947517 (patch)
treeb76c83e97f1c232fae4621ee288ef6ea2016744b /guix/packages.scm
parentea84ec7711a9935f28af3b392d43fe340c7919d0 (diff)
downloadguix-patches-9b222abe0349701280d48e4830f98aa07c947517.tar
guix-patches-9b222abe0349701280d48e4830f98aa07c947517.tar.gz
packages: Raise an error condition a cross builder is needed but unavailable.
* guix/packages.scm (&package-cross-build-system-error): New condition type. (package-cross-derivation): Raise &package-cross-build-system-error when the build system doesn't support cross builds. * guix/ui.scm (call-with-error-handling): Add package-cross-build-system-error? case. * tests/packages.scm ("package-cross-derivation, no cross builder"): New test.
Diffstat (limited to 'guix/packages.scm')
-rw-r--r--guix/packages.scm12
1 files changed, 11 insertions, 1 deletions
diff --git a/guix/packages.scm b/guix/packages.scm
index 9d11b468fb..4f8d87e53a 100644
--- a/guix/packages.scm
+++ b/guix/packages.scm
@@ -83,7 +83,9 @@
package-error-package
&package-input-error
package-input-error?
- package-error-invalid-input))
+ package-error-invalid-input
+ &package-cross-build-system-error
+ package-cross-build-system-error?))
;;; Commentary:
;;;
@@ -234,6 +236,9 @@ corresponds to the arguments expected by `set-path-environment-variable'."
package-input-error?
(input package-error-invalid-input))
+(define-condition-type &package-cross-build-system-error &package-error
+ package-cross-build-system-error?)
+
(define (package-full-name package)
"Return the full name of PACKAGE--i.e., `NAME-VERSION'."
@@ -412,6 +417,11 @@ system identifying string)."
(= build-system-cross-builder builder)
args inputs propagated-inputs native-inputs self-native-input?
outputs)
+ (unless builder
+ (raise (condition
+ (&package-cross-build-system-error
+ (package package)))))
+
(let* ((inputs (package-transitive-target-inputs package))
(input-drvs (map (cut expand-input
store package <>