unofficial mirror of bug-guix@gnu.org 
 help / color / mirror / code / Atom feed
* bug#38226: guix pull: error: build failed: [...] ice-9/boot-9.scm:109:20: Syntax error:
@ 2019-11-16  2:26 Kai Mertens
  2019-11-17 21:14 ` Ludovic Courtès
  2020-05-22  0:22 ` bug#38226: guix pull: error: build failed: zimoun
  0 siblings, 2 replies; 14+ messages in thread
From: Kai Mertens @ 2019-11-16  2:26 UTC (permalink / raw)
  To: 38226

[-- Attachment #1: Type: text/plain, Size: 2047 bytes --]

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@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/


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 14+ messages in thread

* bug#38226: guix pull: error: build failed: [...] ice-9/boot-9.scm:109:20: Syntax error:
  2019-11-16  2:26 bug#38226: guix pull: error: build failed: [...] ice-9/boot-9.scm:109:20: Syntax error: Kai Mertens
@ 2019-11-17 21:14 ` Ludovic Courtès
  2019-11-18 11:15   ` Kai Mertens
                     ` (2 more replies)
  2020-05-22  0:22 ` bug#38226: guix pull: error: build failed: zimoun
  1 sibling, 3 replies; 14+ messages in thread
From: Ludovic Courtès @ 2019-11-17 21:14 UTC (permalink / raw)
  To: Kai Mertens; +Cc: 38226

Hello Kai,

Kai Mertens <kmx@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’.

^ permalink raw reply	[flat|nested] 14+ messages in thread

* bug#38226: guix pull: error: build failed: [...] ice-9/boot-9.scm:109:20: Syntax error:
  2019-11-17 21:14 ` Ludovic Courtès
@ 2019-11-18 11:15   ` Kai Mertens
  2019-11-18 12:23     ` zimoun
  2019-11-18 20:19     ` Ludovic Courtès
  2019-11-18 12:08   ` zimoun
  2019-11-20 14:21   ` Kai Mertens
  2 siblings, 2 replies; 14+ messages in thread
From: Kai Mertens @ 2019-11-18 11:15 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: 38226

[-- Attachment #1: Type: text/plain, Size: 1584 bytes --]

On Sun, 17 Nov 2019 22:14:07 +0100
Ludovic Courtès <ludo@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@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/


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 14+ messages in thread

* bug#38226: guix pull: error: build failed: [...] ice-9/boot-9.scm:109:20: Syntax error:
  2019-11-17 21:14 ` Ludovic Courtès
  2019-11-18 11:15   ` Kai Mertens
@ 2019-11-18 12:08   ` zimoun
  2019-11-18 16:22     ` Ludovic Courtès
  2019-11-20 14:21   ` Kai Mertens
  2 siblings, 1 reply; 14+ messages in thread
From: zimoun @ 2019-11-18 12:08 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: 38226, Kai Mertens

Hi Ludo,

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

^ permalink raw reply	[flat|nested] 14+ messages in thread

* bug#38226: guix pull: error: build failed: [...] ice-9/boot-9.scm:109:20: Syntax error:
  2019-11-18 11:15   ` Kai Mertens
@ 2019-11-18 12:23     ` zimoun
  2019-11-18 20:19     ` Ludovic Courtès
  1 sibling, 0 replies; 14+ messages in thread
From: zimoun @ 2019-11-18 12:23 UTC (permalink / raw)
  To: Kai Mertens; +Cc: 38226

Hi Kai,

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

> On Sun, 17 Nov 2019 22:14:07 +0100
> Ludovic Courtès <ludo@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

^ permalink raw reply	[flat|nested] 14+ messages in thread

* bug#38226: guix pull: error: build failed: [...] ice-9/boot-9.scm:109:20: Syntax error:
  2019-11-18 12:08   ` zimoun
@ 2019-11-18 16:22     ` Ludovic Courtès
  2019-11-18 16:44       ` zimoun
  0 siblings, 1 reply; 14+ messages in thread
From: Ludovic Courtès @ 2019-11-18 16:22 UTC (permalink / raw)
  To: zimoun; +Cc: 38226, Kai Mertens

Hi!

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

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

^ permalink raw reply	[flat|nested] 14+ messages in thread

* bug#38226: guix pull: error: build failed: [...] ice-9/boot-9.scm:109:20: Syntax error:
  2019-11-18 16:22     ` Ludovic Courtès
@ 2019-11-18 16:44       ` zimoun
  2019-11-18 20:10         ` Ludovic Courtès
  0 siblings, 1 reply; 14+ messages in thread
From: zimoun @ 2019-11-18 16:44 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: 38226, Kai Mertens

Hi Ludo,

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

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

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

^ permalink raw reply	[flat|nested] 14+ messages in thread

* bug#38226: guix pull: error: build failed: [...] ice-9/boot-9.scm:109:20: Syntax error:
  2019-11-18 16:44       ` zimoun
@ 2019-11-18 20:10         ` Ludovic Courtès
  2019-11-19 11:49           ` zimoun
  0 siblings, 1 reply; 14+ messages in thread
From: Ludovic Courtès @ 2019-11-18 20:10 UTC (permalink / raw)
  To: zimoun; +Cc: 38226, Kai Mertens

zimoun <zimon.toutoune@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’.

^ permalink raw reply	[flat|nested] 14+ messages in thread

* bug#38226: guix pull: error: build failed: [...] ice-9/boot-9.scm:109:20: Syntax error:
  2019-11-18 11:15   ` Kai Mertens
  2019-11-18 12:23     ` zimoun
@ 2019-11-18 20:19     ` Ludovic Courtès
  1 sibling, 0 replies; 14+ messages in thread
From: Ludovic Courtès @ 2019-11-18 20:19 UTC (permalink / raw)
  To: Kai Mertens; +Cc: 38226

Hello,

Kai Mertens <kmx@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’.

^ permalink raw reply	[flat|nested] 14+ messages in thread

* bug#38226: guix pull: error: build failed: [...] ice-9/boot-9.scm:109:20: Syntax error:
  2019-11-18 20:10         ` Ludovic Courtès
@ 2019-11-19 11:49           ` zimoun
  2019-11-20 14:15             ` Ludovic Courtès
  0 siblings, 1 reply; 14+ messages in thread
From: zimoun @ 2019-11-19 11:49 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: 38226, Kai Mertens

Hi Ludo,

On Mon, 18 Nov 2019 at 21:10, Ludovic Courtès <ludo@gnu.org> wrote:
>
> zimoun <zimon.toutoune@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

^ permalink raw reply	[flat|nested] 14+ messages in thread

* bug#38226: guix pull: error: build failed: [...] ice-9/boot-9.scm:109:20: Syntax error:
  2019-11-19 11:49           ` zimoun
@ 2019-11-20 14:15             ` Ludovic Courtès
  0 siblings, 0 replies; 14+ messages in thread
From: Ludovic Courtès @ 2019-11-20 14:15 UTC (permalink / raw)
  To: zimoun; +Cc: 38226, Kai Mertens

Hi,

zimoun <zimon.toutoune@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’.

^ permalink raw reply	[flat|nested] 14+ messages in thread

* bug#38226: guix pull: error: build failed: [...] ice-9/boot-9.scm:109:20: Syntax error:
  2019-11-17 21:14 ` Ludovic Courtès
  2019-11-18 11:15   ` Kai Mertens
  2019-11-18 12:08   ` zimoun
@ 2019-11-20 14:21   ` Kai Mertens
  2020-02-18 13:27     ` zimoun
  2 siblings, 1 reply; 14+ messages in thread
From: Kai Mertens @ 2019-11-20 14:21 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: 38226

[-- Attachment #1: Type: text/plain, Size: 7660 bytes --]

On Sun, 17 Nov 2019 22:14:07 +0100
Ludovic Courtès <ludo@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@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@6, cmark@0.29.0, mcron@1.1.3, uefitool@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@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/


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 14+ messages in thread

* bug#38226: guix pull: error: build failed: [...] ice-9/boot-9.scm:109:20: Syntax error:
  2019-11-20 14:21   ` Kai Mertens
@ 2020-02-18 13:27     ` zimoun
  0 siblings, 0 replies; 14+ messages in thread
From: zimoun @ 2020-02-18 13:27 UTC (permalink / raw)
  To: Kai Mertens; +Cc: 38226

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@posteo.net> wrote:
> On Sun, 17 Nov 2019 22:14:07 +0100
> Ludovic Courtès <ludo@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@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

^ permalink raw reply	[flat|nested] 14+ messages in thread

* bug#38226: guix pull: error: build failed:
  2019-11-16  2:26 bug#38226: guix pull: error: build failed: [...] ice-9/boot-9.scm:109:20: Syntax error: Kai Mertens
  2019-11-17 21:14 ` Ludovic Courtès
@ 2020-05-22  0:22 ` zimoun
  1 sibling, 0 replies; 14+ messages in thread
From: zimoun @ 2020-05-22  0:22 UTC (permalink / raw)
  To: 38226-done

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




^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2020-05-22  0:23 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-11-16  2:26 bug#38226: guix pull: error: build failed: [...] ice-9/boot-9.scm:109:20: Syntax error: Kai Mertens
2019-11-17 21:14 ` Ludovic Courtès
2019-11-18 11:15   ` Kai Mertens
2019-11-18 12:23     ` zimoun
2019-11-18 20:19     ` Ludovic Courtès
2019-11-18 12:08   ` zimoun
2019-11-18 16:22     ` Ludovic Courtès
2019-11-18 16:44       ` zimoun
2019-11-18 20:10         ` Ludovic Courtès
2019-11-19 11:49           ` zimoun
2019-11-20 14:15             ` Ludovic Courtès
2019-11-20 14:21   ` Kai Mertens
2020-02-18 13:27     ` zimoun
2020-05-22  0:22 ` bug#38226: guix pull: error: build failed: zimoun

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).