From f52fbf7094c9c346d38ad469cc8d92d18387786e Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Thu, 14 May 2020 16:03:56 +0200 Subject: packages: Ensure bags are insensitive to '%current-target-system'. Fixes a bug whereby a bag's transitive dependencies would depend on the global '%current-target-system' value. Partly fixes . * guix/packages.scm (bag-transitive-inputs) (bag-transitive-build-inputs, bag-transitive-target-inputs): Parameterize '%current-target-system'. * tests/packages.scm ("package->bag, sensitivity to %current-target-system"): New test. --- guix/packages.scm | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'guix/packages.scm') diff --git a/guix/packages.scm b/guix/packages.scm index 9fdc679f9a..3fff50a6e8 100644 --- a/guix/packages.scm +++ b/guix/packages.scm @@ -814,11 +814,13 @@ dependencies are known to build on SYSTEM." (define (bag-transitive-inputs bag) "Same as 'package-transitive-inputs', but applied to a bag." - (transitive-inputs (bag-direct-inputs bag))) + (parameterize ((%current-target-system #f)) + (transitive-inputs (bag-direct-inputs bag)))) (define (bag-transitive-build-inputs bag) "Same as 'package-transitive-native-inputs', but applied to a bag." - (transitive-inputs (bag-build-inputs bag))) + (parameterize ((%current-target-system #f)) + (transitive-inputs (bag-build-inputs bag)))) (define (bag-transitive-host-inputs bag) "Same as 'package-transitive-target-inputs', but applied to a bag." @@ -827,7 +829,8 @@ dependencies are known to build on SYSTEM." (define (bag-transitive-target-inputs bag) "Return the \"target inputs\" of BAG, recursively." - (transitive-inputs (bag-target-inputs bag))) + (parameterize ((%current-target-system (bag-target bag))) + (transitive-inputs (bag-target-inputs bag)))) (define* (package-closure packages #:key (system (%current-system))) "Return the closure of PACKAGES on SYSTEM--i.e., PACKAGES and the list of -- cgit v1.2.3