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
This commit is contained in:
Ludovic Courtès 2023-12-18 23:13:38 +01:00
parent 9dab758791
commit 6454788a5c
No known key found for this signature in database
GPG Key ID: 090B11993D9AEBB5

View File

@ -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,7 +120,12 @@
(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-extensions (list guile-json)
(with-imported-modules imported-modules
#~(begin
(use-modules #$@(sexp->gexp modules))
@ -148,7 +149,7 @@ a 'composer.json' file as its build system."
#:patch-shebangs? #$patch-shebangs?
#:strip-binaries? #$strip-binaries?
#:strip-flags #$strip-flags
#:strip-directories #$strip-directories)))))
#:strip-directories #$strip-directories))))))
(gexp->derivation name builder
#:system system