(address . guix-patches@gnu.org)
* guix/build-system/gnu.scm (gnu-build, gnu-cross-build)[builder]: Pass
along #:allowed-references and #:disallowed-references.
* guix/build-system/meson.scm (meson-build, meson-cross-build)[builder]: Likewise.
---
Hello Guix,
This is an untested patch that makes #:allowed-references
and #:disallowed-references available to build-side code.
The intention is to make it easier to use these properties directly when
e.g. wrapping. Consider the following:
Toggle snippet (18 lines)
(arguments
(list
#:disallowed-references (list (gexp-input glib "bin")
(gexp-input inkscape/stable))
#:phases
#~(modify-phases %standard-phases
(replace 'glib-or-gtk-wrap
(let ((wrap (assoc-ref %standard-phases 'glib-or-gtk-wrap)))
(lambda* (#:key inputs outputs disallowed-references
#:allow-other-keys)
(wrap #:inputs (filter (match-lambda
((label . output)
(not (member output
disallowed-references))))
inputs)
#:outputs outputs)))))))
This way we don't have to build the list of disallowed references twice,
which is difficult without labels in the case of e.g. `(,glib "bin").
Note: I implemented a variant of this approach using a let-binding in
f0114656876dcf2e09874e4ea0c00cacf31f1bb2, perhaps that is "good enough"
as this approach is unlikely to be much used.
WDYT? I'll implement this for the remaining build systems if this is at
all sane.
---
Toggle diff (46 lines)
diff --git a/guix/build-system/gnu.scm b/guix/build-system/gnu.scm
index 8eea1cd4c2..f85a172153 100644
--- a/guix/build-system/gnu.scm
+++ b/guix/build-system/gnu.scm
@@ -393,6 +393,8 @@ (define builder
#:build #$build
#:outputs %outputs
#:inputs %build-inputs
+ #:allowed-references #$allowed-references
+ #:disallowed-references #$disallowed-references
#:search-paths '#$(sexp->gexp
(map search-path-specification->sexp
search-paths))
@@ -531,6 +533,8 @@ (define %outputs
#:target #$target
#:outputs %outputs
#:inputs %build-target-inputs
+ #:allowed-references #$allowed-references
+ #:disallowed-references #$disallowed-references
#:native-inputs %build-host-inputs
#:search-paths '#$(sexp->gexp
(map search-path-specification->sexp
diff --git a/guix/build-system/meson.scm b/guix/build-system/meson.scm
index 9fee6c4570..1bef07230f 100644
--- a/guix/build-system/meson.scm
+++ b/guix/build-system/meson.scm
@@ -210,6 +210,8 @@ (define build-phases
#$(with-build-variables inputs outputs
#~(meson-build #:source #+source
#:system #$system
+ #:allowed-references #$allowed-references
+ #:disallowed-references #$disallowed-references
#:outputs %outputs
#:inputs %build-inputs
#:search-paths '#$(sexp->gexp
@@ -318,6 +320,8 @@ (define build-phases
#:system #$system
#:build #$(nix-system->gnu-triplet system)
#:target #$target
+ #:allowed-references #$allowed-references
+ #:disallowed-references #$disallowed-references
#:outputs #$(outputs->gexp outputs)
#:inputs #$inputs
#:native-inputs #+(input-tuples->gexp build-inputs)
--
2.37.3