guix: packages: Add new &package-unsupported-target-error.
Some packages don't support cross building to specific targets, so add a error type to signal this. * guix/packages.scm (&package-unsupported-target-error): New condition type. [package-unsupported-target-error? package-unsupported-target-error-target): New procedures. * guix/ui.scm (call-with-error-handling): Handle this new condition type. Change-Id: Ib47813399e04b20d616a95f545b6aabe25736e92master
parent
0e5e3edec5
commit
4b85db10b1
|
@ -173,6 +173,9 @@
|
|||
package-error-invalid-input
|
||||
&package-cross-build-system-error
|
||||
package-cross-build-system-error?
|
||||
&package-unsupported-target-error
|
||||
package-unsupported-target-error?
|
||||
package-unsupported-target-error-target
|
||||
|
||||
package->bag
|
||||
bag->derivation
|
||||
|
@ -850,6 +853,10 @@ exist, return #f instead."
|
|||
(define-condition-type &package-cross-build-system-error &package-error
|
||||
package-cross-build-system-error?)
|
||||
|
||||
(define-condition-type &package-unsupported-target-error &package-error
|
||||
package-unsupported-target-error?
|
||||
(target package-unsupported-target-error-target))
|
||||
|
||||
(define* (package-full-name package #:optional (delimiter "@"))
|
||||
"Return the full name of PACKAGE--i.e., `NAME@VERSION'. By specifying
|
||||
DELIMITER (a string), you can customize what will appear between the name and
|
||||
|
|
|
@ -756,6 +756,13 @@ evaluating the tests and bodies of CLAUSES."
|
|||
(location->string loc)
|
||||
(package-full-name package)
|
||||
(build-system-name system))))
|
||||
((package-unsupported-target-error? c)
|
||||
(let* ((package (package-error-package c))
|
||||
(loc (package-location package)))
|
||||
(leave (G_ "~a: ~a: does not support target `~a'~%")
|
||||
(location->string loc)
|
||||
(package-full-name package)
|
||||
(package-unsupported-target-error-target c))))
|
||||
((gexp-input-error? c)
|
||||
(let ((input (gexp-error-invalid-input c)))
|
||||
(leave (G_ "~s: invalid G-expression input~%")
|
||||
|
|
Reference in New Issue