diff options
author | Ludovic Courtès <ludo@gnu.org> | 2015-04-19 16:49:09 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2015-04-19 23:34:53 +0200 |
commit | bbceb0ef8a1e05faaa15c5b4135275fb4572b8d9 (patch) | |
tree | 07b08a952584b1413678f856ba8d1e7ca48741d6 | |
parent | 42f118010be14b761144efccae9bdeb33a3db212 (diff) | |
download | guix-bbceb0ef8a1e05faaa15c5b4135275fb4572b8d9.tar guix-bbceb0ef8a1e05faaa15c5b4135275fb4572b8d9.tar.gz |
packages: Add 'supported-package?'.
* guix/packages.scm (supported-package?): New procedure.
* tests/packages.scm ("supported-package?"): New test.
* build-aux/hydra/gnu-system.scm (package->job): Use it instead of
'package-transitive-supported-systems'.
-rw-r--r-- | build-aux/hydra/gnu-system.scm | 3 | ||||
-rw-r--r-- | guix/packages.scm | 6 | ||||
-rw-r--r-- | tests/packages.scm | 8 |
3 files changed, 15 insertions, 2 deletions
diff --git a/build-aux/hydra/gnu-system.scm b/build-aux/hydra/gnu-system.scm index 01e2859f1a..b1432f6660 100644 --- a/build-aux/hydra/gnu-system.scm +++ b/build-aux/hydra/gnu-system.scm @@ -204,8 +204,7 @@ all its dependencies, and ready to be installed on non-GuixSD distributions.") valid." (cond ((member package base-packages) #f) - ((member system - (package-transitive-supported-systems package)) + ((supported-package? package system) (package-job store (job-name package) package system)) (else #f))))) diff --git a/guix/packages.scm b/guix/packages.scm index 8ebe8d06b5..fde46d5d6a 100644 --- a/guix/packages.scm +++ b/guix/packages.scm @@ -95,6 +95,7 @@ package-grafts %supported-systems + supported-package? &package-error package-error? @@ -581,6 +582,11 @@ supported by its dependencies." (package-supported-systems package) (bag-direct-inputs (package->bag package)))) +(define* (supported-package? package #:optional (system (%current-system))) + "Return true if PACKAGE is supported on SYSTEM--i.e., if PACKAGE and all its +dependencies are known to build on SYSTEM." + (member system (package-transitive-supported-systems package))) + (define (bag-direct-inputs bag) "Same as 'package-direct-inputs', but applied to a bag." (append (bag-build-inputs bag) diff --git a/tests/packages.scm b/tests/packages.scm index 3007b50b92..91910324fe 100644 --- a/tests/packages.scm +++ b/tests/packages.scm @@ -166,6 +166,14 @@ `("does-not-exist" "foobar" ,@%supported-systems))))) (package-transitive-supported-systems p))) +(test-assert "supported-package?" + (let ((p (dummy-package "foo" + (build-system gnu-build-system) + (supported-systems '("x86_64-linux" "does-not-exist"))))) + (and (supported-package? p "x86_64-linux") + (not (supported-package? p "does-not-exist")) + (not (supported-package? p "i686-linux"))))) + (test-skip (if (not %store) 8 0)) (test-assert "package-source-derivation, file" |