guix pull: error: build failed: [...] ice-9/boot-9.scm:109:20: Syntax error:

DoneSubmitted by Kai Mertens.
Details
3 participants
  • Kai Mertens
  • Ludovic Courtès
  • zimoun
Owner
unassigned
Severity
normal
K
K
Kai Mertens wrote on 16 Nov 2019 03:26
(address . bug-guix@gnu.org)
20191116032658.42f4533d.kmx@posteo.net
Dear Guix Developers,
unfortunately, I do not manage to update my outdated GNU Guix versionvia
“sudo -i guix pull -c0”.
The command fails with the listed message after being executed forabout 16hours. I tried it three times, on different days. The mostrecent 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 thisbug. I hope it is one, as I don't want to spoil the mailing list withjust 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-modulesbuilder for `/gnu/store/qrsd2qvaj52fqsywdwlcrh6366gasiff-module-import-compiled.drv' failed with exit code 1cannot build derivation `/gnu/store/agyip2r3ars2yxjxnm3s3jlh4q5fjcpk-compute-guix-derivation.drv': 1 dependencies couldn't be builtguix pull: error: build failed: build of `/gnu/store/agyip2r3ars2yxjxnm3s3jlh4q5fjcpk-compute-guix-derivation.drv' failed
~~~
best regardsKai

-- Kai Mertens <kmx@posteo.net>OpenPGP Key-ID: 0x40B15AB4B05B5BF1 on keys.gnupg.netKey fingerprint = 7C83 0A80 01FF 679C 6E8E AFD3 40B1 5AB4 B05B 5BF1What is that? Please check: https://emailselfdefense.fsf.org/en/
-----BEGIN PGP SIGNATURE-----
iQIzBAEBCgAdFiEEfIMKgAH/Z5xujq/TQLFatLBbW/EFAl3PXnIACgkQQLFatLBbW/EFCA/+PX1AmsZKMMai5AzdW8VFhx0P0730oN4JD42CjEpkk6WreZexzBFQCJT8Qhsah89NDXqtt6PpxxaI9vX6DbRhx0i2Jfv/bsv7094uaNr5XiV5x7va/vI+qeKBNaQoiFe0V/4JwEIWfFSxhAaamHq+K0LtW6V7TzootBy9FlDt7YaqDQjg26FgTim34b3DNGGr9TMfg/6KYWDqxiI90IhhtDMJYAkszJ9ryxhraPq/c2S0y+snqsEugMnK5CmHj523NIFYnfqDzhcl0Kc4lO4EWMG9Vf+iKyNYWma9WU1ZinkHHy36WBhreQZJXo26ozlmT+GwOtdO5Aoc71hXsi2kZCh+ZfZIx9wH8Y4Upm2iPdHv7hRuVSa4dxbZgZtmkQ4IKeMf3YznUC+dl1KAHksO2zqsHMf6tc128ejWF/UZhj/tHoWYR/KrtRhQOB0PmQj4bYKC4goVCqUT1kYKxou2xZc3V388p43aDQUf8jE7H03+zqZMo4YxONeVcCkz/ObE8mqQkX1K5GBeG8TfB1HNwC0aagyR3P/fCyIqN2BEPbRWmPoHAgNo6WLMP9yeB2KU4crsFKaS2gi5pr2SiyHs+fuR29elADzoZxENspU2d7D1Z/o9x8VbOjo0+BxqFCqRkNirEtpWdWUEvpQcURBP6C0K2D/X+AHtm98v/YentYc==d45d-----END PGP SIGNATURE-----

L
L
Ludovic Courtès wrote on 17 Nov 2019 22:14
(name . Kai Mertens)(address . kmx@posteo.net)(address . 38226@debbugs.gnu.org)
87eey6jjds.fsf@gnu.org
Hello Kai,
Kai Mertens <kmx@posteo.net> skribis:
Toggle quote (3 lines)> 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 (whatbasically 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 Guixand to build it.
Here’s a trick to do that (for commit 57c7bfec6, on x86_64-linux):
Toggle snippet (5 lines)$ 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
Let me know how it goes!
We should probably streamline that. Actually, it’s already almostautomated:
Toggle snippet (4 lines)$ 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"
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 whythe trick above resorts to a lower-level mechanism.
Perhaps ‘guix pull’ should have a ‘--rescue’ option to do the trickabove?
HTH,Ludo’.
K
K
Kai Mertens wrote on 18 Nov 2019 12:15
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 38226@debbugs.gnu.org)
20191118121535.256353ae.kmx@posteo.net
On Sun, 17 Nov 2019 22:14:07 +0100Ludovic Courtès <ludo@gnu.org> wrote:
Hello Ludo’,
Toggle quote (3 lines)> > 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.25guix 0.13.0-2.de9d8f0 out /gnu/store/34541bys6lh3wjwjn81b9bxjb93q83qx-guix-0.13.0-2.de9d8f0glibc 2.25 out /gnu/store/2bw8y2k8fi9n6yl43ks0m62z919kgrfv-glibc-2.25~~~
I guess I cannot use a simple “sudo -i guix package -u guix” as aworkaround for the failing “sudo -i guix pull”, as it would bring upthe same issue?

Toggle quote (5 lines)> [...]> > 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 willrequire a (different) rescue trick in future. Instead, your commit9c9982dc0 suggests a “pull --substitute-missing-derivations” to me.
Toggle quote (4 lines)> > HTH,> Ludo’.
Thank you very much for that fast response and commits!best regardsKai


-- Kai Mertens <kmx@posteo.net>OpenPGP Key-ID: 0x40B15AB4B05B5BF1 on keys.gnupg.netKey fingerprint = 7C83 0A80 01FF 679C 6E8E AFD3 40B1 5AB4 B05B 5BF1What is that? Please check: https://emailselfdefense.fsf.org/en/
-----BEGIN PGP SIGNATURE-----
iQIzBAEBCgAdFiEEfIMKgAH/Z5xujq/TQLFatLBbW/EFAl3SfVcACgkQQLFatLBbW/GJcw/+Pcy0p36zddRs3qD9AnbCrekYT7KJwmO39aYfDckQV7ulG8Qp2jUkjYp8XhJLQSRsaD1PmpX86Ows/YlX7pVNgzEx4moz8UDBabhur+j3BqjAMDH1BovtHnBJxG5pXGYeaSDBlFLpQP3vsCy4899mEHN0+MdyMvGaovmkKC8rx66JcbeezrUVBmVbwQp3jkcmJ5QMyPva7hUNlG5zNHgK2sQLxQ3dzE8EJzBbNBoofIU0Qx3N7GG+eEMCjS3J1KsPbafYBD+9V0Sms/ZwEJbVT6yZArr5KAI5HA7bccUlzGzeplKa7Vp5JkFShVC3rK35Ny0uyzJBvHNkmDdXadhreCTGWoQTevkEwPU1pYPsb/82O3f+mEq/nJu0xdYlsZ+fjtdqtoLNZ4/h83PL+5SI0ej9vupak6ooJmYVghO4NEBOvKZ45lgbr1+oo+kMt/vkc19KrmVG5ZjI1rx/tm0nthNVOL+CL2f0F6TGqobPgGRG5l2kn+rEzEEOiUdgIcyMaB7ISlb08P2+K3DI6sOthXDyLqNW7VrabmSonKvH2rlJFTa30hcInMvSKkK0F37Nkx8UYsypFl1u1YWsVm7AA6xte6/eJB3XfBWgN7uufb+c1Hxs6Avvu/k6VGfouqlN5TiMZ6RoB51iNdQSAG2Ijo9u5bHIuajqFNVI5ONKRV4==DPgZ-----END PGP SIGNATURE-----

Z
Z
zimoun wrote on 18 Nov 2019 13:08
(name . Ludovic Courtès)(address . ludo@gnu.org)
CAJ3okZ0uOQn26BaFi7o7B_pgANzOHhbaELo_e-vw98hFCcH0uA@mail.gmail.com
Hi Ludo,
On Sun, 17 Nov 2019 at 22:15, Ludovic Courtès <ludo@gnu.org> wrote:
Toggle quote (4 lines)> 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?
Toggle snippet (3 lines)$ wget -q -O - 'http://ci.guix.gnu.org/build/1943556' | jq '."derivation"'
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 beable to build it, right? No daemon issue?
Toggle snippet (3 lines)$ guix build "/gnu/store/bz1qqy225p1jlicwf07iiqr79icqddcv-guix-4de11dda7.drv"
This will populate the store with a new guix. Then I need to pull asroot, in order to also update the daemon, right?
Toggle snippet (6 lines)# /gnu/store/<hash-returned-by-previous-build>-guix-4de11dda7/bin/guix pulll



Toggle quote (3 lines)> 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 foreach architecture, right?


All the best,simon
Z
Z
zimoun wrote on 18 Nov 2019 13:23
(name . Kai Mertens)(address . kmx@posteo.net)
CAJ3okZ33Z7X3Q6ZKQf0iwGGrYujSLFg5KeRw7b57vSick1M7pg@mail.gmail.com
Hi Kai,
On Mon, 18 Nov 2019 at 12:19, Kai Mertens <kmx@posteo.net> wrote:
Toggle quote (9 lines)> 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



Toggle quote (4 lines)> 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. Fouryears later (more or less I guess), inferiors has bee introduced inGuix. They allow to go back and forward with "guix pull --commit=".Well, other said, your version of Guix is too old to be updated usingthe 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

Toggle quote (5 lines)> 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 thefeature described in commit 9c9982dc0.
And if I still understand correctly, "pull --rescue" should bemechanism to easily update an old Guix (before the overhaul in 0.15.0)instead of doing all the dance.

All the best,simon
L
L
Ludovic Courtès wrote on 18 Nov 2019 17:22
(name . zimoun)(address . zimon.toutoune@gmail.com)
87zhgtgno6.fsf@gnu.org
Hi!
zimoun <zimon.toutoune@gmail.com> skribis:
Toggle quote (18 lines)> 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 notavailable in your store (note that you need commit9c9982dc0c8c38ce3821b154b7e92509c1564317.)
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 willquery substitutes one by one: guix-xyz.drv, then guix-xyz-builder, andso on. And because of the ‘--cache’ behavior, they’ll all have to bebaked separately.
Apart from that it’s really fun, I wonder why I’ve never used thatfeature before!
Toggle quote (7 lines)>> 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’.
Z
Z
zimoun wrote on 18 Nov 2019 17:44
(name . Ludovic Courtès)(address . ludo@gnu.org)
CAJ3okZ3hOLcWKAhPW8NiJQDMSZuszQK1g2o15yogecgSb51f2A@mail.gmail.com
Hi Ludo,
On Mon, 18 Nov 2019 at 17:22, Ludovic Courtès <ludo@gnu.org> wrote:
Toggle quote (22 lines)> 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 youdescribed to "guix pull" with a very very old Guix version -- saybefore the 0.15 overhaul.

Toggle quote (6 lines)> 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.
Toggle snippet (24 lines) $ 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 describeGeneration 55 Nov 18 2019 13:21:24 (current) guix 900ef20 repository URL: https://git.savannah.gnu.org/git/guix.git branch: master commit: 900ef20b1da66ad71145082c883dc12f31fafa54


Toggle quote (9 lines)> >> 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
L
L
Ludovic Courtès wrote on 18 Nov 2019 21:10
(name . zimoun)(address . zimon.toutoune@gmail.com)
87sgmlgd2t.fsf@gnu.org
zimoun <zimon.toutoune@gmail.com> skribis:
Toggle quote (4 lines)> 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 theproposed ‘--rescue’ could do that for you.
Toggle quote (20 lines)>> 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’.
L
L
Ludovic Courtès wrote on 18 Nov 2019 21:19
(name . Kai Mertens)(address . kmx@posteo.net)(address . 38226@debbugs.gnu.org)
87lfsdgcos.fsf@gnu.org
Hello,
Kai Mertens <kmx@posteo.net> skribis:
Toggle quote (2 lines)> 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" forinstance.
Toggle quote (2 lines)> 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 updatingroot’s Guix. You’ll probably want to update your user’s Guix as well,with just “guix pull”.
Toggle quote (4 lines)> 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’.
Z
Z
zimoun wrote on 19 Nov 2019 12:49
(name . Ludovic Courtès)(address . ludo@gnu.org)
CAJ3okZ2pAijUaCfEiF=Se_LfW2AN=s4wwUHFwO4nPexkdJOkjQ@mail.gmail.com
Hi Ludo,
On Mon, 18 Nov 2019 at 21:10, Ludovic Courtès <ludo@gnu.org> wrote:
Toggle quote (10 lines)>> 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 senseto start the fresh compiled daemon?

Toggle quote (22 lines)> >> 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
L
L
Ludovic Courtès wrote on 20 Nov 2019 15:15
(name . zimoun)(address . zimon.toutoune@gmail.com)
87y2waocpx.fsf@gnu.org
Hi,
zimoun <zimon.toutoune@gmail.com> skribis:
Toggle quote (6 lines)> 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’.
K
K
Kai Mertens wrote on 20 Nov 2019 15:21
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 38226@debbugs.gnu.org)
20191120152127.561dbc3f.kmx@posteo.net
On Sun, 17 Nov 2019 22:14:07 +0100Ludovic Courtès <ludo@gnu.org> wrote:
Toggle quote (21 lines)> > 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 hardto me to follow the discussion. So please let me ask something else inbetween: Can I make use of an existing guix derivation file or guixbinary, 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-g7696af421band 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 humanreadable string:
~~~
$ git describe 7696af421bootstrap-20190815-3564-g7696af421b$ git describe d8048dbe5bootstrap-20190815-3491-gd8048dbe50$ git describe b8f0a3fdcbootstrap-20190815-3368-gb8f0a3fdc8$ git describe c72c10053v1.0.0-696-gc72c10053d$ git describe 4a0b87f0ev0.16.0$ git describe de9d8f0v0.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 -c0guile: warning: failed to install localehint: 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 900ef20substitute: 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.drv1 package in profile
# guix pull -lguile: warning: failed to install localeGeneration 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 -Iguile: warning: failed to install localeglibc-utf8-locales 2.25 out /gnu/store/9vv6szr949m8mrqfyj7bfkxi8g5mfr2y-glibc-utf8-locales-2.25guix 0.13.0-2.de9d8f0 out /gnu/store/34541bys6lh3wjwjn81b9bxjb93q83qx-guix-0.13.0-2.de9d8f0glibc 2.25 out /gnu/store/2bw8y2k8fi9n6yl43ks0m62z919kgrfv-glibc-2.25
~~~
If I understand correctly, I have just updated my root’s guix and Icarefully update packages glibc and glibc-utf8-locales in order tosatisfy guile and make the warning disappear:
~~~
# guix package -c0 -u glibc-utf8-locales -u glibcguile: warning: failed to install localeThe 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 -Iguix 0.13.0-2.de9d8f0 out /gnu/store/34541bys6lh3wjwjn81b9bxjb93q83qx-guix-0.13.0-2.de9d8f0glibc-utf8-locales 2.29 out /gnu/store/lhcmsprr3jz8cp0wg27ql59fv1k6hrkl-glibc-utf8-locales-2.29glibc 2.29 out /gnu/store/df1lrb4b1dmw99b764qdk7akv0hpyjiw-glibc-2.29
~~~
Now I remember that I have to restart the daemon and reboot themachine. Playing around with “pull” and “package -u” again brings me tothe situation where I am now:
~~~
# guix pull -lGeneration 1 Nov 18 2019 22:45:38 guix 900ef20 repository URL: https://git.savannah.gnu.org/git/guix.git branch: master commit: 900ef20b1da66ad71145082c883dc12f31fafa54Generation 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.1Generation 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 -Iglibc-utf8-locales 2.29 out /gnu/store/lhcmsprr3jz8cp0wg27ql59fv1k6hrkl-glibc-utf8-locales-2.29guix 1.0.1-10.41b4b71 out /gnu/store/4djl9bnl0p62jmfidk5vc2sjchx5m2h7-guix-1.0.1-10.41b4b71glibc 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 thatwere already available in the store. Maybe a now-a-days version of guixwould do?
I further wonder why the guix package itself is still listed, as with afresh, recent installation of guix on top of a foreign distro, guixitself is not listed with “guix package -l”.

best regardsKai

-- Kai Mertens <kmx@posteo.net>OpenPGP Key-ID: 0x40B15AB4B05B5BF1 on keys.gnupg.netKey fingerprint = 7C83 0A80 01FF 679C 6E8E AFD3 40B1 5AB4 B05B 5BF1What is that? Please check: https://emailselfdefense.fsf.org/en/
-----BEGIN PGP SIGNATURE-----
iQIzBAEBCgAdFiEEfIMKgAH/Z5xujq/TQLFatLBbW/EFAl3VS+cACgkQQLFatLBbW/F7yhAArHaoNkhyWE+IG62/fKac/0I5eLRoARj0pz1pajgtbww2bBmxz7aVK2UbFT8+jL1DT+6f0c6rcq1zcmO7+Hlk7+HTHvGoCpkaWozbWuANt7J8q7ycqUMZ9jIh9KGA1IwWaYkET2HuErNpQ8C2IYJzdbUNNp3B2jU9myMXHAA2PGAMvwNCouoTIPGuKnTetL49Hnqvnmcw4TwPGDlCbCcNQ5kL3gseuZkJWXPPR3UgsUnLdrTi+q+Nl3M3bRXzsU7aiN8Du8KWNkG5El1d2ndfHOkyOFCHi8jhGHBIvc3SA+sw7RuZSTfYmFyE6fEl1T6AdPaAHypFyqX4FmoBWBFqJ/50r+A3aPOseDY0VKYxyHFUE/0ph0Ef4fkHBqqUjLS/7rYRnn7X7fctCimfvHYgLgMy42ZsDVdUDbq16+5M44jVf0p1sKrzDrQX7bAEV04PBRk1vbP9oH+wJzXD3HVcHQQWpH+0SGR+G08+RlrDJv44Zq60Ua4BfJT73PNWpmpdNLqCvrgsLN+TWr3cNqF3cwE2LOw4dOoauNi338mSO5lkidbR/2MLSEJZkmY3j4W+9LlEpRrBxqN0xTm8NB9V2I4Kgditl8QGtELlD7RcirpNR0O+WolkfjS8AS+DAJl5b9S3JoidP9Mjb58u4gI4LaX+jHdxEIbXcMif4OKjcPI==qDHt-----END PGP SIGNATURE-----

Z
Z
zimoun wrote on 18 Feb 2020 14:27
(name . Kai Mertens)(address . kmx@posteo.net)
CAJ3okZ3C3M9U9hBg=Z6Ag_rBBoKLGNbTjY9NK6VmA=+ZXUnRgQ@mail.gmail.com
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:
Toggle quote (34 lines)> 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! ;-)

Toggle quote (5 lines)> 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?

Toggle quote (12 lines)> # /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.

Toggle quote (2 lines)> 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 toclose the bug. :-)

Toggle quote (4 lines)> 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 thatwere already available in the store"? Do you have a concrete example?

Toggle quote (4 lines)> 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' inthe 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 thepackage manager.

All the best,simon
Z
Z
zimoun wrote on 14 May 2020 16:57
tags moreinfo
(address . control@debbugs.gnu.org)
CAJ3okZ3RVH5+VjtdgokwCqE_WYV=u3=p62J7R3KVqPHy0dmZPw@mail.gmail.com
tags 38226 moreinfothanks
Z
Z
zimoun wrote on 22 May 2020 02:22
bug#38226: guix pull: error: build failed:
(address . 38226-done@debbugs.gnu.org)
CAJ3okZ13o7g-vnzi28TsgRo2pG2MqDKKhGkqnxq8jguR3c2ejQ@mail.gmail.com
Dear,
Because this bug is tagged moreinfo and without any activities since13 weeks, I am closing.Feel free to reopen it if I have misunderstood the status of this bug.

Best regards,simon
Closed
?