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

Previous Next

Package: guix;

Reported by: Kai Mertens <kmx <at> posteo.net>

Date: Sat, 16 Nov 2019 02:34:01 UTC

Severity: normal

Tags: moreinfo

Done: zimoun <zimon.toutoune <at> gmail.com>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 38226 in the body.
You can then email your comments to 38226 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-guix <at> gnu.org:
bug#38226; Package guix. (Sat, 16 Nov 2019 02:34:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Kai Mertens <kmx <at> posteo.net>:
New bug report received and forwarded. Copy sent to bug-guix <at> gnu.org. (Sat, 16 Nov 2019 02:34:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Kai Mertens <kmx <at> posteo.net>
To: bug-guix <at> gnu.org
Subject: guix pull: error: build failed: [...] ice-9/boot-9.scm:109:20:
 Syntax error:
Date: Sat, 16 Nov 2019 03:26:58 +0100
[Message part 1 (text/plain, inline)]
Dear Guix Developers,

unfortunately, I do not manage to update my outdated GNU Guix version
via

  “sudo -i guix pull -c0”.

The command fails with the listed message after being executed for
about 16hours. I tried it three times, on different days. The most
recent one was yesterday.

In difference to a recently posted failure, this time...
* my /tmp partition has enough space available (>12GB)
* and guix is substituting from https://ci.guix.gnu.org

I would very much apreciate if you find the time to investigate this
bug. I hope it is one, as I don't want to spoil the mailing list with
just personal obstacles in respect to guix usage.

What kind of information shall I provide, else?

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

I would have tried to update guix in smaller steps, but option
  “pull --commit”
is not available.

~~~

[...]
grafting '/gnu/store/nk1w9h9998w5vyj6zw3h37idmm8c7xsd-guile-2.0.14-debug' -> '/gnu/store/1xbphq9bpylnv46y1dmax5866nbvxyjm-guile-2.0.14-debug'...
grafting '/gnu/store/brn8kcdv4xyjn445540zmpvawyzb4c38-guile-2.0.14' -> '/gnu/store/prq1xm7fp9dzp7whw8742djw4vsrsd4f-guile-2.0.14'...
ice-9/boot-9.scm:109:20: In procedure #<procedure 863fca0 at ice-9/boot-9.scm:100:6 (thrown-k . args)>:
ice-9/boot-9.scm:109:20: Syntax error:
unknown location: unexpected syntax in form current-imported-modules
builder for `/gnu/store/qrsd2qvaj52fqsywdwlcrh6366gasiff-module-import-compiled.drv' failed with exit code 1
cannot build derivation `/gnu/store/agyip2r3ars2yxjxnm3s3jlh4q5fjcpk-compute-guix-derivation.drv': 1 dependencies couldn't be built
guix pull: error: build failed: build of `/gnu/store/agyip2r3ars2yxjxnm3s3jlh4q5fjcpk-compute-guix-derivation.drv' failed

~~~

best regards
Kai


-- 
Kai Mertens <kmx <at> posteo.net>
OpenPGP Key-ID: 0x40B15AB4B05B5BF1 on keys.gnupg.net
Key fingerprint = 7C83 0A80 01FF 679C 6E8E  AFD3 40B1 5AB4 B05B 5BF1
What is that? Please check: https://emailselfdefense.fsf.org/en/

[Message part 2 (application/pgp-signature, inline)]

Information forwarded to bug-guix <at> gnu.org:
bug#38226; Package guix. (Sun, 17 Nov 2019 21:15:02 GMT) Full text and rfc822 format available.

Message #8 received at 38226 <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: Kai Mertens <kmx <at> posteo.net>
Cc: 38226 <at> debbugs.gnu.org
Subject: Re: bug#38226: guix pull: error: build failed: [...]
 ice-9/boot-9.scm:109:20: Syntax error:
Date: Sun, 17 Nov 2019 22:14:07 +0100
Hello Kai,

Kai Mertens <kmx <at> posteo.net> 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’.




Information forwarded to bug-guix <at> gnu.org:
bug#38226; Package guix. (Mon, 18 Nov 2019 11:17:02 GMT) Full text and rfc822 format available.

Message #11 received at 38226 <at> debbugs.gnu.org (full text, mbox):

From: Kai Mertens <kmx <at> posteo.net>
To: Ludovic Courtès <ludo <at> gnu.org>
Cc: 38226 <at> debbugs.gnu.org
Subject: Re: bug#38226: guix pull: error: build failed: [...]
 ice-9/boot-9.scm:109:20: Syntax error:
Date: Mon, 18 Nov 2019 12:15:35 +0100
[Message part 1 (text/plain, inline)]
On Sun, 17 Nov 2019 22:14:07 +0100
Ludovic Courtès <ludo <at> gnu.org> wrote:

Hello Ludo’,

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

hmm, I am on i686 – is the trick still applicable?
I will switch to root’s profile with “sudo -i”, but that is ok, right?
(If you please send your OK – then I will try it...)

My current root profile contains three packages:

~~~
glibc-utf8-locales	2.25	out	/gnu/store/9vv6szr949m8mrqfyj7bfkxi8g5mfr2y-glibc-utf8-locales-2.25
guix	0.13.0-2.de9d8f0	out	/gnu/store/34541bys6lh3wjwjn81b9bxjb93q83qx-guix-0.13.0-2.de9d8f0
glibc	2.25	out	/gnu/store/2bw8y2k8fi9n6yl43ks0m62z919kgrfv-glibc-2.25
~~~

I guess I cannot use a simple “sudo -i guix package -u guix” as a
workaround for the failing “sudo -i guix pull”, as it would bring up
the same issue?


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

Oh, I don't feel competent enough to give ideas, but “pull --rescue”
sounds too generic to me. Maybe there will be other use cases that will
require a (different) rescue trick in future. Instead, your commit
9c9982dc0 suggests a “pull --substitute-missing-derivations” to me.

> 
> HTH,
> Ludo’.

Thank you very much for that fast response and commits!
best regards
Kai



-- 
Kai Mertens <kmx <at> posteo.net>
OpenPGP Key-ID: 0x40B15AB4B05B5BF1 on keys.gnupg.net
Key fingerprint = 7C83 0A80 01FF 679C 6E8E  AFD3 40B1 5AB4 B05B 5BF1
What is that? Please check: https://emailselfdefense.fsf.org/en/

[Message part 2 (application/pgp-signature, inline)]

Information forwarded to bug-guix <at> gnu.org:
bug#38226; Package guix. (Mon, 18 Nov 2019 12:09:01 GMT) Full text and rfc822 format available.

Message #14 received at 38226 <at> debbugs.gnu.org (full text, mbox):

From: zimoun <zimon.toutoune <at> gmail.com>
To: Ludovic Courtès <ludo <at> gnu.org>
Cc: 38226 <at> debbugs.gnu.org, Kai Mertens <kmx <at> posteo.net>
Subject: Re: bug#38226: guix pull: error: build failed: [...]
 ice-9/boot-9.scm:109:20: Syntax error:
Date: Mon, 18 Nov 2019 13:08:10 +0100
Hi Ludo,

On Sun, 17 Nov 2019 at 22:15, Ludovic Courtès <ludo <at> gnu.org> 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?

--8<---------------cut here---------------start------------->8---
$ wget -q -O - 'http://ci.guix.gnu.org/build/1943556' | jq '."derivation"'
--8<---------------cut here---------------start------------->8---

outputs the derivation file. But how do you fetch it?

I have not found in the Cuirass API doc. Maybe I missing the obvious.

Then, once I have downloaded this derivation, the old Guix should be
able to build it, right? No daemon issue?

--8<---------------cut here---------------start------------->8---
$ guix build "/gnu/store/bz1qqy225p1jlicwf07iiqr79icqddcv-guix-4de11dda7.drv"
--8<---------------cut here---------------start------------->8---

This will populate the store with a new guix. Then I need to pull as
root, in order to also update the daemon, right?

--8<---------------cut here---------------start------------->8---
# /gnu/store/<hash-returned-by-previous-build>-guix-4de11dda7/bin/guix pulll
--8<---------------cut here---------------start------------->8---




> 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?



All the best,
simon




Information forwarded to bug-guix <at> gnu.org:
bug#38226; Package guix. (Mon, 18 Nov 2019 12:25:01 GMT) Full text and rfc822 format available.

Message #17 received at 38226 <at> debbugs.gnu.org (full text, mbox):

From: zimoun <zimon.toutoune <at> gmail.com>
To: Kai Mertens <kmx <at> posteo.net>
Cc: Ludovic Courtès <ludo <at> gnu.org>, 38226 <at> debbugs.gnu.org
Subject: Re: bug#38226: guix pull: error: build failed: [...]
 ice-9/boot-9.scm:109:20: Syntax error:
Date: Mon, 18 Nov 2019 13:23:58 +0100
Hi Kai,

On Mon, 18 Nov 2019 at 12:19, Kai Mertens <kmx <at> posteo.net> wrote:

> On Sun, 17 Nov 2019 22:14:07 +0100
> Ludovic Courtès <ludo <at> gnu.org> wrote:

> > Here’s a trick to do that (for commit 57c7bfec6, on x86_64-linux):
>
> hmm, I am on i686 – is the trick still applicable?
> I will switch to root’s profile with “sudo -i”, but that is ok, right?
> (If you please send your OK – then I will try it...)

I think the evaluation [1] should do the job for i686.

[1] https://ci.guix.gnu.org/build/1943561/details




> I guess I cannot use a simple “sudo -i guix package -u guix” as a
> workaround for the failing “sudo -i guix pull”, as it would bring up
> the same issue?

The issue you encounter comes from a compatibility break in Guix. Four
years later (more or less I guess), inferiors has bee introduced in
Guix. They allow to go back and forward with "guix pull --commit=".
Well, other said, your version of Guix is too old to be updated using
the usual way.

The only way is to apply the Ludo's "trick".  If I understand well:
 1. Fetch a recent enough derivation of Guix
 2. Build this derivation with your old Guix
 3. Manually pull to populate the store
 4. Then the profile ~/.config/guix/ should be ok


> Oh, I don't feel competent enough to give ideas, but “pull --rescue”
> sounds too generic to me. Maybe there will be other use cases that will
> require a (different) rescue trick in future. Instead, your commit
> 9c9982dc0 suggests a “pull --substitute-missing-derivations” to me.

If I understand well, your version of Guix is too old to use the
feature described in commit 9c9982dc0.

And if I still understand correctly, "pull --rescue" should be
mechanism to easily update an old Guix (before the overhaul in 0.15.0)
instead of doing all the dance.


All the best,
simon




Information forwarded to bug-guix <at> gnu.org:
bug#38226; Package guix. (Mon, 18 Nov 2019 16:23:01 GMT) Full text and rfc822 format available.

Message #20 received at 38226 <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: zimoun <zimon.toutoune <at> gmail.com>
Cc: 38226 <at> debbugs.gnu.org, Kai Mertens <kmx <at> posteo.net>
Subject: Re: bug#38226: guix pull: error: build failed: [...]
 ice-9/boot-9.scm:109:20: Syntax error:
Date: Mon, 18 Nov 2019 17:22:01 +0100
Hi!

zimoun <zimon.toutoune <at> gmail.com> skribis:

> Hi Ludo,
>
> On Sun, 17 Nov 2019 at 22:15, Ludovic Courtès <ludo <at> gnu.org> 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’.




Information forwarded to bug-guix <at> gnu.org:
bug#38226; Package guix. (Mon, 18 Nov 2019 16:46:01 GMT) Full text and rfc822 format available.

Message #23 received at 38226 <at> debbugs.gnu.org (full text, mbox):

From: zimoun <zimon.toutoune <at> gmail.com>
To: Ludovic Courtès <ludo <at> gnu.org>
Cc: 38226 <at> debbugs.gnu.org, Kai Mertens <kmx <at> posteo.net>
Subject: Re: bug#38226: guix pull: error: build failed: [...]
 ice-9/boot-9.scm:109:20: Syntax error:
Date: Mon, 18 Nov 2019 17:44:43 +0100
Hi Ludo,

On Mon, 18 Nov 2019 at 17:22, Ludovic Courtès <ludo <at> gnu.org> wrote:

> zimoun <zimon.toutoune <at> gmail.com> skribis:

> > On Sun, 17 Nov 2019 at 22:15, Ludovic Courtès <ludo <at> gnu.org> 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.)

I do not have when I tested.
The commit is from yesterday evening. ;-)
(that's a real rolling release :-D)

But if you have this commit, you do not need the dance that you
described to "guix pull" with a very very old Guix version -- say
before the 0.15 overhaul.


> 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.

--8<---------------cut here---------------start------------->8---
 $ guix build "/gnu/store/bz1qqy225p1jlicwf07iiqr79icqddcv-guix-4de11dda7.drv"
substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
cannot build missing derivation
‘/gnu/store/bz1qqy225p1jlicwf07iiqr79icqddcv-guix-4de11dda7.drv’
guix build: error: build of
`/gnu/store/bz1qqy225p1jlicwf07iiqr79icqddcv-guix-4de11dda7.drv'
failed

 $ guix describe
Generation 55    Nov 18 2019 13:21:24    (current)
  guix 900ef20
    repository URL: https://git.savannah.gnu.org/git/guix.git
    branch: master
    commit: 900ef20b1da66ad71145082c883dc12f31fafa54
--8<---------------cut here---------------end--------------->8---



> >> 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.  :-)

I am not sure to clearly understand what we are talking about. :-)


All the best,
simon




Information forwarded to bug-guix <at> gnu.org:
bug#38226; Package guix. (Mon, 18 Nov 2019 20:11:02 GMT) Full text and rfc822 format available.

Message #26 received at 38226 <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: zimoun <zimon.toutoune <at> gmail.com>
Cc: 38226 <at> debbugs.gnu.org, Kai Mertens <kmx <at> posteo.net>
Subject: Re: bug#38226: guix pull: error: build failed: [...]
 ice-9/boot-9.scm:109:20: Syntax error:
Date: Mon, 18 Nov 2019 21:10:50 +0100
zimoun <zimon.toutoune <at> gmail.com> skribis:

> But if you have this commit, you do not need the dance that you
> described to "guix pull" with a very very old Guix version -- say
> before the 0.15 overhaul.

You need to do the short version of the dance, so to speak, and the
proposed ‘--rescue’ could do that for you.

>> 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.
>
>  $ guix build "/gnu/store/bz1qqy225p1jlicwf07iiqr79icqddcv-guix-4de11dda7.drv"
> substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
> substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
> substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
> substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
> substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
> substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
> substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
> cannot build missing derivation
> ‘/gnu/store/bz1qqy225p1jlicwf07iiqr79icqddcv-guix-4de11dda7.drv’
> guix build: error: build of
> `/gnu/store/bz1qqy225p1jlicwf07iiqr79icqddcv-guix-4de11dda7.drv'
> failed

That’s a perfect illustration of the problem I described just above.

If you try again 5mn later, it should go a bit further, and so forth.

Ludo’.




Information forwarded to bug-guix <at> gnu.org:
bug#38226; Package guix. (Mon, 18 Nov 2019 20:20:01 GMT) Full text and rfc822 format available.

Message #29 received at 38226 <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: Kai Mertens <kmx <at> posteo.net>
Cc: 38226 <at> debbugs.gnu.org
Subject: Re: bug#38226: guix pull: error: build failed: [...]
 ice-9/boot-9.scm:109:20: Syntax error:
Date: Mon, 18 Nov 2019 21:19:15 +0100
Hello,

Kai Mertens <kmx <at> posteo.net> skribis:

> hmm, I am on i686 – is the trick still applicable?

Sure, you can try the command I gave with
"/gnu/store/ly0x0dk2qm0jk3fgwsrnl5cy8a1ybwkk-guix-900ef20b1.drv" for
instance.

> I will switch to root’s profile with “sudo -i”, but that is ok, right?

Yes, you can do that.  “sudo -i guix pull” means you’ll be updating
root’s Guix.  You’ll probably want to update your user’s Guix as well,
with just “guix pull”.

> I guess I cannot use a simple “sudo -i guix package -u guix” as a
> workaround for the failing “sudo -i guix pull”, as it would bring up
> the same issue?

Right, you have to get yourself a newer Guix first.  :-)

HTH!

Ludo’.




Information forwarded to bug-guix <at> gnu.org:
bug#38226; Package guix. (Tue, 19 Nov 2019 11:50:01 GMT) Full text and rfc822 format available.

Message #32 received at 38226 <at> debbugs.gnu.org (full text, mbox):

From: zimoun <zimon.toutoune <at> gmail.com>
To: Ludovic Courtès <ludo <at> gnu.org>
Cc: 38226 <at> debbugs.gnu.org, Kai Mertens <kmx <at> posteo.net>
Subject: Re: bug#38226: guix pull: error: build failed: [...]
 ice-9/boot-9.scm:109:20: Syntax error:
Date: Tue, 19 Nov 2019 12:49:17 +0100
Hi Ludo,

On Mon, 18 Nov 2019 at 21:10, Ludovic Courtès <ludo <at> gnu.org> wrote:
>
> zimoun <zimon.toutoune <at> gmail.com> skribis:
>
> > But if you have this commit, you do not need the dance that you
> > described to "guix pull" with a very very old Guix version -- say
> > before the 0.15 overhaul.
>
> You need to do the short version of the dance, so to speak, and the
> proposed ‘--rescue’ could do that for you.

Sorry, I am slow to understand.

My current Guix version is pre-0.15. So "guix pull" does not work anymore.
This evaluation [1] contains a recent enough Guix to be able to pull, I guess.

[1] http://ci.guix.gnu.org/build/1943556

I can download the derivation with:

  wget https://ci.guix.info/nar/gzip/bz1qqy225p1jlicwf07iiqr79icqddcv-guix-4de11dda7.drv

But how to move the derivation to store? I am not sure that it makes sense.

Well, the previous Guile snippet you have shown returns an error.


My other approach is to clone and fetch a recent Guix from Git. Then:

  ./pre-env guix pull "bz1qqy225p1jlicwf07iiqr79icqddcv-guix-4de11dda7.drv"

But I am not sure it will work because of the daemon. Do it make sense
to start the fresh compiled daemon?


> >> 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.
> >
> >  $ guix build "/gnu/store/bz1qqy225p1jlicwf07iiqr79icqddcv-guix-4de11dda7.drv"
> > substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
> > substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
> > substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
> > substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
> > substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
> > substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
> > substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
> > cannot build missing derivation
> > ‘/gnu/store/bz1qqy225p1jlicwf07iiqr79icqddcv-guix-4de11dda7.drv’
> > guix build: error: build of
> > `/gnu/store/bz1qqy225p1jlicwf07iiqr79icqddcv-guix-4de11dda7.drv'
> > failed
>
> That’s a perfect illustration of the problem I described just above.

Ahah! I am very slow to understand. :-)



Cheers,
simon




Information forwarded to bug-guix <at> gnu.org:
bug#38226; Package guix. (Wed, 20 Nov 2019 14:17:01 GMT) Full text and rfc822 format available.

Message #35 received at 38226 <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: zimoun <zimon.toutoune <at> gmail.com>
Cc: 38226 <at> debbugs.gnu.org, Kai Mertens <kmx <at> posteo.net>
Subject: Re: bug#38226: guix pull: error: build failed: [...]
 ice-9/boot-9.scm:109:20: Syntax error:
Date: Wed, 20 Nov 2019 15:15:54 +0100
Hi,

zimoun <zimon.toutoune <at> gmail.com> skribis:

> I can download the derivation with:
>
>   wget https://ci.guix.info/nar/gzip/bz1qqy225p1jlicwf07iiqr79icqddcv-guix-4de11dda7.drv
>
> But how to move the derivation to store? I am not sure that it makes sense.

It’s easier than this: just type

  guix build /gnu/store/bz1qqy225p1jlicwf07iiqr79icqddcv-guix-4de11dda7.drv

and it will download the .drv and start building it.

(Modulo the ‘guix publish --cache’ issue I mentioned.)

HTH!

Ludo’.




Information forwarded to bug-guix <at> gnu.org:
bug#38226; Package guix. (Wed, 20 Nov 2019 14:25:01 GMT) Full text and rfc822 format available.

Message #38 received at 38226 <at> debbugs.gnu.org (full text, mbox):

From: Kai Mertens <kmx <at> posteo.net>
To: Ludovic Courtès <ludo <at> gnu.org>
Cc: 38226 <at> debbugs.gnu.org
Subject: Re: bug#38226: guix pull: error: build failed: [...]
 ice-9/boot-9.scm:109:20: Syntax error:
Date: Wed, 20 Nov 2019 15:21:27 +0100
[Message part 1 (text/plain, inline)]
On Sun, 17 Nov 2019 22:14:07 +0100
Ludovic Courtès <ludo <at> gnu.org> wrote:

> > 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!

Puh, in respect to the sequencing mails I have to admit that it is hard
to me to follow the discussion. So please let me ask something else in
between: Can I make use of an existing guix derivation file or guix
binary, available in /gnu/store?

In example (on i686):

The root account has this very old guix version:
  v0.13.0-443-gde9d8f0e29

Whereas, my user account has a more up-to-date version:
  bootstrap-20190815-3564-g7696af421b
and its Generation 1 refers to:
  v0.16.0

In /gnu/store/, I have several guix derivations available:
$ ll *-guix-0.13.0-2.???????.drv
-r--r--r-- 2 root root 4,5K Jan  1  1970 6r87sglvwbmqcz2zhzgvag7aakk1shc3-guix-0.13.0-2.de9d8f0.drv
-r--r--r-- 2 root root 1,1K Jan  1  1970 c24j1glzsgzklkjmv2ik7vcsyasc6yg2-guix-0.13.0-2.de9d8f0.drv
-r--r--r-- 2 root root 2,7K Jan  1  1970 cav8ip7bazglbhagd7afbyw9aah94q3m-guix-0.13.0-2.de9d8f0.drv
-r--r--r-- 2 root root 4,5K Jan  1  1970 p5m5qhkab5rxki8fmn89wgmnvchf1p1l-guix-0.13.0-2.de9d8f0.drv

and

$ ll *-guix-?????????.drv
-r--r--r-- 2 root root 1,2K Jan  1  1970 0ypa7ga44mprjp2cfyk5iwlg07jqq2m4-guix-b8f0a3fdc.drv
-r--r--r-- 2 root root 1,3K Jan  1  1970 3b4kw7sfm03092cc0sxh91w2v26jvq4n-guix-4a0b87f0e.drv
-r--r--r-- 2 root root 1,2K Jan  1  1970 bl41dqirc8j6mza8f01xac1f8pd5fbh3-guix-d8048dbe5.drv
-r--r--r-- 2 root root 1,2K Jan  1  1970 iq424kad8wj3ws0g59nwdkccrk34k76g-guix-c72c10053.drv
-r--r--r-- 2 root root 1,2K Jan  1  1970 r2hww1x08y9gz9a9fb94w1b0d3rjv9d5-guix-7696af421.drv

...which can be sorted by age if I use “git describe” to get a human
readable string:

~~~

$ git describe 7696af421
bootstrap-20190815-3564-g7696af421b
$ git describe d8048dbe5
bootstrap-20190815-3491-gd8048dbe50
$ git describe b8f0a3fdc
bootstrap-20190815-3368-gb8f0a3fdc8
$ git describe c72c10053
v1.0.0-696-gc72c10053d
$ git describe 4a0b87f0e
v0.16.0
$ git describe de9d8f0
v0.13.0-443-gde9d8f0e29

~~~

If I pick the oldest commit beyond 0.15, I try an already built binary.
That seems to work, although I receive a bunch of warnings (not shown here):

~~~

# /gnu/store/b0br0mhjxcy7bzg0c2pij1vf48jf9ddj-guix-4a0b87f0e/bin/guix pull -c0
guile: warning: failed to install locale
hint: Consider installing the `glibc-utf8-locales' or `glibc-locales' package and defining `GUIX_LOCPATH', along these lines:

     guix package -i glibc-utf8-locales
     export GUIX_LOCPATH="$HOME/.guix-profile/lib/locale"

See the "Application Setup" section in the manual, for more info.


Migrating profile generations to '/var/guix/profiles/per-user/root'...
Updating channel 'guix' from Git repository at 'https://git.savannah.gnu.org/git/guix.git'...
Building from this channel:
  guix      https://git.savannah.gnu.org/git/guix.git	900ef20
substitute: updating list of substitutes from 'https://ci.guix.gnu.org'... 100.0%
substitute: updating list of substitutes from 'https://ci.guix.gnu.org'... 100.0%
substitute: updating list of substitutes from 'https://ci.guix.gnu.org'... 100.0%

[...]

building /gnu/store/3yk3qh02vx8zm7pd9d3x7gicikfbpybr-profile.drv...
successfully built /gnu/store/3yk3qh02vx8zm7pd9d3x7gicikfbpybr-profile.drv
1 package in profile

# guix pull -l
guile: warning: failed to install locale
Generation 1	Nov 18 2019 22:45:38	(current)
  guix 900ef20
    repository URL: https://git.savannah.gnu.org/git/guix.git
    branch: master
    commit: 900ef20b1da66ad71145082c883dc12f31fafa54

# guix package -I
guile: warning: failed to install locale
glibc-utf8-locales	2.25	out	/gnu/store/9vv6szr949m8mrqfyj7bfkxi8g5mfr2y-glibc-utf8-locales-2.25
guix	0.13.0-2.de9d8f0	out	/gnu/store/34541bys6lh3wjwjn81b9bxjb93q83qx-guix-0.13.0-2.de9d8f0
glibc	2.25	out	/gnu/store/2bw8y2k8fi9n6yl43ks0m62z919kgrfv-glibc-2.25

~~~

If I understand correctly, I have just updated my root’s guix and I
carefully update packages glibc and glibc-utf8-locales in order to
satisfy guile and make the warning disappear:

~~~

# guix package -c0 -u glibc-utf8-locales -u glibc
guile: warning: failed to install locale
The following packages will be upgraded:
   glibc-utf8-locales	2.25 → 2.29	/gnu/store/lhcmsprr3jz8cp0wg27ql59fv1k6hrkl-glibc-utf8-locales-2.29
   glibc	2.25 → 2.29	/gnu/store/df1lrb4b1dmw99b764qdk7akv0hpyjiw-glibc-2.29

[...]

3 packages in profile

# guix package -I
guix	0.13.0-2.de9d8f0	out	/gnu/store/34541bys6lh3wjwjn81b9bxjb93q83qx-guix-0.13.0-2.de9d8f0
glibc-utf8-locales	2.29	out	/gnu/store/lhcmsprr3jz8cp0wg27ql59fv1k6hrkl-glibc-utf8-locales-2.29
glibc	2.29	out	/gnu/store/df1lrb4b1dmw99b764qdk7akv0hpyjiw-glibc-2.29

~~~

Now I remember that I have to restart the daemon and reboot the
machine. Playing around with “pull” and “package -u” again brings me to
the situation where I am now:

~~~

# guix pull -l
Generation 1	Nov 18 2019 22:45:38
  guix 900ef20
    repository URL: https://git.savannah.gnu.org/git/guix.git
    branch: master
    commit: 900ef20b1da66ad71145082c883dc12f31fafa54
Generation 2	Nov 19 2019 00:11:25
  guix e26867f
    repository URL: https://git.savannah.gnu.org/git/guix.git
    branch: master
    commit: e26867f74b629c4a981e45332ce94637cf4230eb
  1 package upgraded: tome4 <at> 1.6.1
Generation 3	Nov 20 2019 13:33:09	(current)
  guix 30ebff6
    repository URL: https://git.savannah.gnu.org/git/guix.git
    branch: master
    commit: 30ebff69a75fe90a1694ef35cf6e749ec376b67e
  7 new packages: carla, emacs-ample-theme, font-dseg, minisat, python-intelhex, python-mcuboot-imgtool, python-next
  4 packages upgraded: brlaser <at> 6, cmark <at> 0.29.0, mcron <at> 1.1.3, uefitool <at> 0.26.0

# guix package -I
glibc-utf8-locales	2.29	out	/gnu/store/lhcmsprr3jz8cp0wg27ql59fv1k6hrkl-glibc-utf8-locales-2.29
guix	1.0.1-10.41b4b71	out	/gnu/store/4djl9bnl0p62jmfidk5vc2sjchx5m2h7-guix-1.0.1-10.41b4b71
glibc	2.29	out	/gnu/store/df1lrb4b1dmw99b764qdk7akv0hpyjiw-glibc-2.29

~~~

I guess I am back on track now, would you agree?
Or does my procedure contain any mistakes?

I wonder why guix did not use local guix derivations or binaries that
were already available in the store. Maybe a now-a-days version of guix
would do?

I further wonder why the guix package itself is still listed, as with a
fresh, recent installation of guix on top of a foreign distro, guix
itself is not listed with “guix package -l”.


best regards
Kai


-- 
Kai Mertens <kmx <at> posteo.net>
OpenPGP Key-ID: 0x40B15AB4B05B5BF1 on keys.gnupg.net
Key fingerprint = 7C83 0A80 01FF 679C 6E8E  AFD3 40B1 5AB4 B05B 5BF1
What is that? Please check: https://emailselfdefense.fsf.org/en/

[Message part 2 (application/pgp-signature, inline)]

Information forwarded to bug-guix <at> gnu.org:
bug#38226; Package guix. (Tue, 18 Feb 2020 13:28:01 GMT) Full text and rfc822 format available.

Message #41 received at 38226 <at> debbugs.gnu.org (full text, mbox):

From: zimoun <zimon.toutoune <at> gmail.com>
To: Kai Mertens <kmx <at> posteo.net>
Cc: Ludovic Courtès <ludo <at> gnu.org>, 38226 <at> debbugs.gnu.org
Subject: Re: bug#38226: guix pull: error: build failed: [...]
 ice-9/boot-9.scm:109:20: Syntax error:
Date: Tue, 18 Feb 2020 14:27:40 +0100
Hi Kai,

What is the status of this bug?
Have you solved it? Any progress?


On Wed, 20 Nov 2019 at 15:30, Kai Mertens <kmx <at> posteo.net> wrote:
> On Sun, 17 Nov 2019 22:14:07 +0100
> Ludovic Courtès <ludo <at> gnu.org> wrote:

> > > 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!
>
> Puh, in respect to the sequencing mails I have to admit that it is hard
> to me to follow the discussion. So please let me ask something else in
> between: Can I make use of an existing guix derivation file or guix
> binary, available in /gnu/store?
>
> In example (on i686):
>
> The root account has this very old guix version:
>   v0.13.0-443-gde9d8f0e29

Yes, very very old! ;-)


> Whereas, my user account has a more up-to-date version:
>   bootstrap-20190815-3564-g7696af421b
> and its Generation 1 refers to:
>   v0.16.0

And do you still have an issue when pulling from there?


> # /gnu/store/b0br0mhjxcy7bzg0c2pij1vf48jf9ddj-guix-4a0b87f0e/bin/guix pull -c0
> guile: warning: failed to install locale
> hint: Consider installing the `glibc-utf8-locales' or `glibc-locales' package and defining `GUIX_LOCPATH', along these lines:
>
>      guix package -i glibc-utf8-locales
>      export GUIX_LOCPATH="$HOME/.guix-profile/lib/locale"
>
> See the "Application Setup" section in the manual, for more info.
>
>
> Migrating profile generations to '/var/guix/profiles/per-user/root'...

This message is not expected. Something is going wrongly and was wrong before.


> I guess I am back on track now, would you agree?

Yes, you seems back on track. :-)
Is it ok for you? If yes, answer to 38226-done <at> debbugs.gnu.org to
close the bug. :-)


> I wonder why guix did not use local guix derivations or binaries that
> were already available in the store. Maybe a now-a-days version of guix
> would do?

What do you mean by "did not use local derivations or binaries that
were already available in the store"? Do you have a concrete example?


> I further wonder why the guix package itself is still listed, as with a
> fresh, recent installation of guix on top of a foreign distro, guix
> itself is not listed with “guix package -l”.

The command "guix package -i guix" will install the package 'guix' in
the profile and so 'guix' will appear with "guix package -I"
It is different than installing Guix itself.

Roughly speaking, "--install guix" will install the Guile library named 'guix'.
And installing Guix itself on a foreign distro will install all the
package manager.


All the best,
simon




Added tag(s) moreinfo. Request was from zimoun <zimon.toutoune <at> gmail.com> to control <at> debbugs.gnu.org. (Thu, 14 May 2020 14:59:01 GMT) Full text and rfc822 format available.

Reply sent to zimoun <zimon.toutoune <at> gmail.com>:
You have taken responsibility. (Fri, 22 May 2020 00:23:01 GMT) Full text and rfc822 format available.

Notification sent to Kai Mertens <kmx <at> posteo.net>:
bug acknowledged by developer. (Fri, 22 May 2020 00:23:01 GMT) Full text and rfc822 format available.

Message #48 received at 38226-done <at> debbugs.gnu.org (full text, mbox):

From: zimoun <zimon.toutoune <at> gmail.com>
To: 38226-done <at> debbugs.gnu.org
Subject: bug#38226: guix pull: error: build failed:
Date: Fri, 22 May 2020 02:22:21 +0200
Dear,

Because this bug is tagged moreinfo and without any activities since
13 weeks, I am closing.
Feel free to reopen it if I have misunderstood the status of this bug.


Best regards,
simon




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Fri, 19 Jun 2020 11:24:04 GMT) Full text and rfc822 format available.

This bug report was last modified 3 years and 311 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.