summaryrefslogtreecommitdiff
path: root/guix
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2023-12-18 23:13:38 +0100
committerLudovic Courtès <ludo@gnu.org>2023-12-18 23:16:57 +0100
commit6454788a5cf79a217bda86d49a6e403cc803747f (patch)
tree9a4b9dbaa3489e8a2398fa106baa628966fc81f0 /guix
parent9dab75879140d0f6ca0a25e1f2e3c5b912090d7c (diff)
build-system/composer: Do not import host-side Guile-JSON modules.
Importing host-side (json …) modules would make builds dependent on the Guile-JSON version currently installed by the user. Use ‘with-extensions’ instead. * guix/build-system/composer.scm (%composer-build-system-modules): Remove (json …) modules. (composer-build)[guile-json]: New variable. [builder]: Wrap body in ‘with-extensions’. Change-Id: Ibe565572d60481b31292d73c6fa23d42aa3ceecb
Diffstat (limited to 'guix')
-rw-r--r--guix/build-system/composer.scm57
1 files changed, 29 insertions, 28 deletions
diff --git a/guix/build-system/composer.scm b/guix/build-system/composer.scm
index 2bb807e614..2ad7bbb36a 100644
--- a/guix/build-system/composer.scm
+++ b/guix/build-system/composer.scm
@@ -62,10 +62,6 @@
;; Build-side modules imported by default.
`((guix build composer-build-system)
(guix build union)
- (json)
- (json builder)
- (json parser)
- (json record)
,@%gnu-build-system-modules))
(define* (lower name
@@ -124,31 +120,36 @@
(guix build utils))))
"Build SOURCE using PHP, and with INPUTS. This assumes that SOURCE provides
a 'composer.json' file as its build system."
+ (define guile-json
+ (module-ref (resolve-interface '(gnu packages guile))
+ 'guile-json-4))
+
(define builder
- (with-imported-modules imported-modules
- #~(begin
- (use-modules #$@(sexp->gexp modules))
-
- #$(with-build-variables inputs outputs
- #~(composer-build
- #:source #$source
- #:system #$system
- #:outputs %outputs
- #:inputs %build-inputs
- #:search-paths '#$(map search-path-specification->sexp
- search-paths)
- #:phases #$phases
- #:out-of-source? #$out-of-source?
- #:composer-file #$composer-file
- #:tests? #$tests?
- #:test-target #$test-target
- #:test-flags #$test-flags
- #:install-target #$install-target
- #:validate-runpath? #$validate-runpath?
- #:patch-shebangs? #$patch-shebangs?
- #:strip-binaries? #$strip-binaries?
- #:strip-flags #$strip-flags
- #:strip-directories #$strip-directories)))))
+ (with-extensions (list guile-json)
+ (with-imported-modules imported-modules
+ #~(begin
+ (use-modules #$@(sexp->gexp modules))
+
+ #$(with-build-variables inputs outputs
+ #~(composer-build
+ #:source #$source
+ #:system #$system
+ #:outputs %outputs
+ #:inputs %build-inputs
+ #:search-paths '#$(map search-path-specification->sexp
+ search-paths)
+ #:phases #$phases
+ #:out-of-source? #$out-of-source?
+ #:composer-file #$composer-file
+ #:tests? #$tests?
+ #:test-target #$test-target
+ #:test-flags #$test-flags
+ #:install-target #$install-target
+ #:validate-runpath? #$validate-runpath?
+ #:patch-shebangs? #$patch-shebangs?
+ #:strip-binaries? #$strip-binaries?
+ #:strip-flags #$strip-flags
+ #:strip-directories #$strip-directories))))))
(gexp->derivation name builder
#:system system