Subject: [bug#63416] [PATCH 0/2] Fix more derivation builder gexp issues.

From: Ludovic Courtès <[email-masked]>
Date: Thu, 11 May 2023 12:44:48 +0200

Hi,

Christopher Baines <[email-masked]> skribis:

> As this seems to be generating broken derivations for i586-gnu otherwise.

“Seems” isn’t confidence-inspiring.  ;-)

Here’s one:

--8<---------------cut here---------------start------------->8---
$ ./pre-inst-env guix build gccgo -s i586-gnu -d 
/gnu/store/yzlmgxq20bk9xcbksi7q1f839056wzhr-gccgo-12.3.0.drv
$ guix gc --references /gnu/store/yzlmgxq20bk9xcbksi7q1f839056wzhr-gccgo-12.3.0.drv |grep builder
/gnu/store/jizw9gjvzb21jm7q7xlm71pw6fr24hhv-gccgo-12.3.0-builder
$ grep -q '#<' /gnu/store/jizw9gjvzb21jm7q7xlm71pw6fr24hhv-gccgo-12.3.0-builder ; echo $?
0
--8<---------------cut here---------------end--------------->8---

> * gnu/packages/gcc.scm (custom-gcc): Use gexp's for the generated package
> arguments.

[...]

> As otherwise this seems to generate broken derivations for i586-gnu.
>
> * gnu/packages/gcc.scm (make-gccgo): Use gexp's for the package arguments.

[...]

> +++ b/gnu/packages/gcc.scm
> @@ -1156,34 +1156,34 @@ (define (make-gccgo gcc)
>        (arguments
>         (substitute-keyword-arguments (package-arguments gccgo)
>           ((#:phases phases)
> -          `(modify-phases ,phases
> -             (add-after 'install 'wrap-go-with-tool-path

If ‘phases’ might be a gexp, then this should be a gexp as well.

Put differently, if one of the gcc* packages starts using gexps, then
all those that inherit from it should switch as well.

Since ‘gcc-11’ uses gexps (only when targeting the Hurd), all the other
ones should use gexps.  That probably includes all those in gcc.scm and
all those in commencement.scm.

Ludo’.