diff options
author | Ludovic Courtès <ludo@gnu.org> | 2023-12-18 23:13:38 +0100 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2023-12-18 23:16:57 +0100 |
commit | 6454788a5cf79a217bda86d49a6e403cc803747f (patch) | |
tree | 9a4b9dbaa3489e8a2398fa106baa628966fc81f0 /guix | |
parent | 9dab75879140d0f6ca0a25e1f2e3c5b912090d7c (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.scm | 57 |
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 |