Subject: Re: bug#38226: guix pull: error: build failed: [...] ice-9/boot-9.scm:109:20: Syntax error:

From: Ludovic Courtès <[email-masked]>
Date: Mon, 18 Nov 2019 17:22:01 +0100

Hi!

zimoun <[email-masked]> skribis:

> Hi Ludo,
>
> On Sun, 17 Nov 2019 at 22:15, Ludovic Courtès <[email-masked]> wrote:
>
>> The only thing that’s missing here is that currently “guix build
>> /gnu/store/….drv” fails if the .drv doesn’t already exist, which is why
>> the trick above resorts to a lower-level mechanism.
>
> I miss how to fetch this missing .drv. :-)
>
>
> For example this evaluation built a recent enough Guix, right?
>
> $ wget -q -O - 'http://ci.guix.gnu.org/build/1943556' | jq '."derivation"'
>
>
> outputs the derivation file. But how do you fetch it?

You don’t explicitly fetch it.  Instead, you run “guix build /….drv”,
and the daemon automatically attempts to substitute it if it’s not
available in your store (note that you need commit
9c9982dc0c8c38ce3821b154b7e92509c1564317.)

Now, I noticed that it doesn’t work so well when ‘guix publish --cache’
is used, as is the case on berlin.  The reason is that the daemon will
query substitutes one by one: guix-xyz.drv, then guix-xyz-builder, and
so on.  And because of the ‘--cache’ behavior, they’ll all have to be
baked separately.

Apart from that it’s really fun, I wonder why I’ve never used that
feature before!

>> Perhaps ‘guix pull’ should have a ‘--rescue’ option to do the trick
>> above?
>
> Is it possible?
> We need to track on Cuirass one recent enough derivation of Guix for
> each architecture, right?

Yeah well, that needs more thought.  :-)

Thanks,
Ludo’.