packages: 'package-transitive-supported-systems' ignores '%current-target-system'.

Previously 'package-transitive-supported-systems' would enter an
infinite loop over the cross-compilation tool chain if
%CURRENT-TARGET-SYSTEM was set.

* guix/packages.scm (package-transitive-supported-systems)[supported-systems-procedure]:
Pass explicit SYSTEM and TARGET parameters.
* tests/packages.scm ("supported-package? vs. %current-target-system"):
New test.
This commit is contained in:
Ludovic Courtès 2022-02-17 16:04:15 +01:00
parent 9724da9abc
commit 0572737a62
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5
2 changed files with 12 additions and 2 deletions

View file

@ -508,6 +508,16 @@
(and (supported-package? p "x86_64-linux")
(supported-package? p "armhf-linux"))))
(test-assert "supported-package? vs. %current-target-system"
;; The %CURRENT-TARGET-SYSTEM value should have no influence.
(parameterize ((%current-target-system "arm-linux-gnueabihf"))
(let ((p (dummy-package "foo"
(build-system gnu-build-system)
(supported-systems '("x86_64-linux" "armhf-linux")))))
(and (supported-package? p "x86_64-linux")
(not (supported-package? p "i686-linux"))
(supported-package? p "armhf-linux")))))
(test-skip (if (not %store) 8 0))
(test-assert "package-source-derivation, file"