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

From: Christopher Baines <[email-masked]>
Date: Thu, 11 May 2023 15:57:20 +0100

Ludovic Courtès <[email-masked]> writes:

> 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:
>
> $ ./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
>
>> * 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.

Yep, I think these changes were sufficient, but I missed replacing a few
unquote bits with ungexp, so as QA shows this affected a bunch of
derivations for all systems.

I've fixed those bits now and sent a v2.