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: Sun, 17 Nov 2019 22:14:07 +0100

Hello Kai,

Kai Mertens <[email-masked]> skribis:

> The command “sudo -i guix --version” gives me:
>   guix (GNU Guix) 20170703.13

This version predates the big ‘guix pull’ overhaul in 0.15.0 (what
basically makes this kind of problem much less likely to happen.)

Thus, you need a more recent ‘guix’ to upgrade.

One way to do that is to fetch the derivation that builds a recent Guix
and to build it.

Here’s a trick to do that (for commit 57c7bfec6, on x86_64-linux):

--8<---------------cut here---------------start------------->8---
$ guile -c '(use-modules (guix)) (with-store s (build-things s (list "/gnu/store/ihylk84symj8mjhp3zmy83ch2h2pl0ks-guix-57c7bfec6.drv")))'
$ guix build "/gnu/store/ihylk84symj8mjhp3zmy83ch2h2pl0ks-guix-57c7bfec6.drv"
$ /gnu/store/4zmf32hjrjjjl2xp91aldxhmsmk6ff29-guix-57c7bfec6/bin/guix pull
--8<---------------cut here---------------end--------------->8---

Let me know how it goes!

We should probably streamline that.  Actually, it’s already almost
automated:

--8<---------------cut here---------------start------------->8---
$ wget -q -O - 'https://ci.guix.gnu.org/api/latestbuilds?nr=1&jobset=guix-modular-master' | jq '.[0]["derivation"]'
"/gnu/store/ihylk84symj8mjhp3zmy83ch2h2pl0ks-guix-57c7bfec6.drv"
--8<---------------cut here---------------end--------------->8---

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.

Perhaps ‘guix pull’ should have a ‘--rescue’ option to do the trick
above?

HTH,
Ludo’.