Subject: [bug#42338] [PATCH 03/34] guix: Add composer-build-system.

From: Julien Lepiller <[email-masked]>
Date: Sat, 19 Dec 2020 00:43:18 +0100

Le Wed, 30 Sep 2020 11:24:08 +0200,
Ludovic Courtès <[email-masked]> a écrit :
> 
> To bring in Guile-JSON, you need to do something similar to what
> ‘gexp->file’ does with ‘load-path-expression’, along these lines
> (untested):
> 
>   (define guile-json-drv
>     (package-derivation store
>                         (module-ref (resolve-interface '(gnu packages
> guile)) 'guile-json)
>                         system))
> 
>   (define builder
>     `(begin
>        (add-to-load-path (string-append ,(derivation->output-path
> guile-json-drv) "/share/guile/site/"
>                                         (effective-version)))
>        (use-modules ,@modules)
>        …))
> 
>    ;; …
> 
>    (build-expression->derivation store name builder
>                                  ;; …
>                                  #:inputs (append inputs
>                                                   `(("guile-json"
> ,guile-json-drv))))
> 
> I guess clunkiness is the reason why we didn’t do it last time…
> 
> HTH!
> 
> Ludo’.

Hi Ludo, sorry for the delay!

I tried that (replacing 'guile-json with 'guile-json-4), but it doesn't
work: when building the package, guix first builds a modules-compiled
that fails because it can't find (json). It seems to be related to the
compilation of (guix build composer-build-system) which uses the (json)
module: when removing the import, it's modules-compiled works (with a
lot of warnings), but obviously guix can't build the php package.