From 6454788a5cf79a217bda86d49a6e403cc803747f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 18 Dec 2023 23:13:38 +0100 Subject: [PATCH] build-system/composer: Do not import host-side Guile-JSON modules. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- guix/build-system/composer.scm | 57 +++++++++++++++++----------------- 1 file 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 builder - (with-imported-modules imported-modules - #~(begin - (use-modules #$@(sexp->gexp modules)) + (define guile-json + (module-ref (resolve-interface '(gnu packages guile)) + 'guile-json-4)) - #$(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))))) + (define builder + (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