packages: 'supported-package?' binds '%current-system' for graph traversal.
authorLudovic Courtès <ludo@gnu.org>
Fri, 6 Sep 2019 12:41:58 +0000 (14:41 +0200)
committerLudovic Courtès <ludo@gnu.org>
Fri, 6 Sep 2019 12:41:58 +0000 (14:41 +0200)
commitbc60349b5bc58a0b803df5adce1de6db82453744
treed11777318a93c1f85b579f9e86c7bd402e52b368
parentd2d63e20d5b981009b61bf416b4d7b516e8f1f34
packages: 'supported-package?' binds '%current-system' for graph traversal.

Previously, (supported-package? coreutils "armhf-linux")
with (%current-system) = "x86_64-linux" would return false.  That's
because 'supported-package?' would traverse the x86_64 dependency graph,
which contains 'tcc-boot0', which supports x86 only.

Consequently, 'supported-package?' would match only 53 packages for
"armhf-linux" when running on x86, as is the case during continuous
integration.

* guix/packages.scm (package-transitive-supported-systems): Add an
optional 'system' parameter.  Use 'mlambda' instead of 'mlambdaq' for
memoization.
(supported-package?): Pass 'system' to 'package-transitive-supported-systems'.
* tests/packages.scm ("package-transitive-supported-systems, implicit inputs")
("package-transitive-supported-systems: reduced binary seed, implicit inputs"):
Remove calls to 'invalidate-memoization!', which no longer work and were
presumably introduced to work around the bug we're fixing (see commit
0db65c168fd6dec57a357735fe130c80feba5460).
* tests/packages.scm ("supported-package?"): Rewrite test to use only
existing system name since otherwise 'bootstrap-executable' raises an
exception.
("supported-package? vs. system-dependent graph"): New test.
guix/packages.scm
tests/packages.scm