guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

04/04: packages: 'package-transitive-supported-systems' accounts for imp


From: Ludovic Courtès
Subject: 04/04: packages: 'package-transitive-supported-systems' accounts for implicit inputs.
Date: Sat, 11 Apr 2015 11:06:31 +0000

civodul pushed a commit to branch core-updates
in repository guix.

commit 9bf3ced06c42700d6c83ce3a0eda244798104618
Author: Ludovic Courtès <address@hidden>
Date:   Sat Apr 11 12:41:49 2015 +0200

    packages: 'package-transitive-supported-systems' accounts for implicit 
inputs.
    
    Reported by Federico Beffa.
    
    * guix/packages.scm (package-transitive-supported-systems): Use
      bag-direct-inputs + package->bag rather than package-direct-inputs.
    * tests/packages.scm ("package-transitive-supported-systems"): Add
      explicit 'build-system' field to each 'dummy-package' form.
      ("package-transitive-supported-systems, implicit inputs"): New test.
---
 guix/packages.scm  |    2 +-
 tests/packages.scm |   41 ++++++++++++++++++++++++++++++++---------
 2 files changed, 33 insertions(+), 10 deletions(-)

diff --git a/guix/packages.scm b/guix/packages.scm
index f278db5..7d4696f 100644
--- a/guix/packages.scm
+++ b/guix/packages.scm
@@ -579,7 +579,7 @@ supported by its dependencies."
             (_
              systems)))
         (package-supported-systems package)
-        (package-direct-inputs package)))
+        (bag-direct-inputs (package->bag package))))
 
 (define (bag-direct-inputs bag)
   "Same as 'package-direct-inputs', but applied to a bag."
diff --git a/tests/packages.scm b/tests/packages.scm
index b50551e..a93ee66 100644
--- a/tests/packages.scm
+++ b/tests/packages.scm
@@ -128,21 +128,44 @@
     ("y")                                         ;c
     ("y")                                         ;d
     ("y"))                                        ;e
-  (let* ((a (dummy-package "a" (supported-systems '("x" "y" "z"))))
-         (b (dummy-package "b" (supported-systems '("x" "y"))
-               (inputs `(("a" ,a)))))
-         (c (dummy-package "c" (supported-systems '("y" "z"))
-               (inputs `(("b" ,b)))))
-         (d (dummy-package "d" (supported-systems '("x" "y" "z"))
-               (inputs `(("b" ,b) ("c" ,c)))))
-         (e (dummy-package "e" (supported-systems '("x" "y" "z"))
-               (inputs `(("d" ,d))))))
+  ;; Use TRIVIAL-BUILD-SYSTEM because it doesn't add implicit inputs and thus
+  ;; doesn't restrict the set of supported systems.
+  (let* ((a (dummy-package "a"
+              (build-system trivial-build-system)
+              (supported-systems '("x" "y" "z"))))
+         (b (dummy-package "b"
+              (build-system trivial-build-system)
+              (supported-systems '("x" "y"))
+              (inputs `(("a" ,a)))))
+         (c (dummy-package "c"
+              (build-system trivial-build-system)
+              (supported-systems '("y" "z"))
+              (inputs `(("b" ,b)))))
+         (d (dummy-package "d"
+              (build-system trivial-build-system)
+              (supported-systems '("x" "y" "z"))
+              (inputs `(("b" ,b) ("c" ,c)))))
+         (e (dummy-package "e"
+              (build-system trivial-build-system)
+              (supported-systems '("x" "y" "z"))
+              (inputs `(("d" ,d))))))
     (list (package-transitive-supported-systems a)
           (package-transitive-supported-systems b)
           (package-transitive-supported-systems c)
           (package-transitive-supported-systems d)
           (package-transitive-supported-systems e))))
 
+(test-equal "package-transitive-supported-systems, implicit inputs"
+  %supported-systems
+
+  ;; Here GNU-BUILD-SYSTEM adds implicit inputs that build only on
+  ;; %SUPPORTED-SYSTEMS.  Thus the others must be ignored.
+  (let ((p (dummy-package "foo"
+             (build-system gnu-build-system)
+             (supported-systems
+              `("does-not-exist" "foobar" ,@%supported-systems)))))
+    (package-transitive-supported-systems p)))
+
 (test-skip (if (not %store) 8 0))
 
 (test-assert "package-source-derivation, file"



reply via email to

[Prev in Thread] Current Thread [Next in Thread]