New ‘guix pull’ /root/.config/current/bin/guix: Permission denied

  • Done
  • quality assurance status badge
Details
5 participants
  • Konrad Hinsen
  • Leo Famulari
  • Ludovic Courtès
  • Pjotr Prins
  • swedebugia
Owner
unassigned
Submitted by
Pjotr Prins
Severity
important
P
P
Pjotr Prins wrote on 17 Jul 2018 10:55
New ‘guix pull ’ /root/.config/current/bin/guix: Permission denied
(address . guix-patches@gnu.org)(address . ludo@gnu.org)
20180717085541.g6nuycopf5kxoin7@thebird.nl
Attachment: file
P
P
Pjotr Prins wrote on 17 Jul 2018 11:42
Re: [bug#32183] New ‘guix p ull’ /root/.config/current/bin/guix: Permission denied
(name . Pjotr Prins)(address . pjotr.public12@thebird.nl)(address . 32183@debbugs.gnu.org)
20180717094218.5bii4r5p5blgvqtb@thebird.nl
Also, using a year old guix client gives the same error. It is in the
daemon.
P
P
Pjotr Prins wrote on 17 Jul 2018 11:51
(name . Pjotr Prins)(address . pjotr.public12@thebird.nl)(address . 32183@debbugs.gnu.org)
20180717095155.onbjxxlljalbkpab@thebird.nl
On Tue, Jul 17, 2018 at 11:42:18AM +0200, Pjotr Prins wrote:
Toggle quote (3 lines)
> Also, using a year old guix client gives the same error. It is in the
> daemon.

And running an older daemon fixed it:

/gnu/store/4lk7j5693ikj7yiw2qpsbva5vkicxmp4-guix-0.14.0-13.7af5c2a/bin/guix-daemon --build-users-group=guixbuild
L
L
Leo Famulari wrote on 17 Jul 2018 21:15
(name . Pjotr Prins)(address . pjotr.public12@thebird.nl)(address . 32183@debbugs.gnu.org)
20180717191554.GA23234@jasmine.lan
On Tue, Jul 17, 2018 at 10:55:41AM +0200, Pjotr Prins wrote:
Toggle quote (2 lines)
> > > Fails to build with below /gnu/store/8ahlc84zaj0iw9jpsdpa9wx4ms0s9cma-guix-daemon-0.15.0-1.4876bc8/libexec/guix/download: line 8: /root/.config/current/bin/guix: Permission denied

There must be a typo in the code somewhere. The path should be
'/root/.config/guix/current/bin/guix'.Note the extra 'guix' path
component.
-----BEGIN PGP SIGNATURE-----

iQIzBAABCAAdFiEEsFFZSPHn08G5gDigJkb6MLrKfwgFAltOQGcACgkQJkb6MLrK
fwh1SxAAmL5ryIXA9p1miX4LX4M1k96vabm3iv06H+R3FT9lhPK0XsOraNES4fKT
wNSpNgW712RuXO6vxZYea4rT1ao2owWZSdJOM641dpomAbNKWn7PwL6HVQYVftjZ
S8sFQzCVNktmmh0ay5nAFM1qrIBX8KVDzOc/BpT2tIwoSBUbypfJQdZWD++oVaAa
jAzIKm66JA8oLWbWCKJrleTh9wPZNwNKjIpQwaSPGQahUYRwjRvRrAAG9240E5cA
uzCvklmv64q2ZfSgncyfcCl/5hieN7lvTHvMEZ+vshhW0Pj7xuXlxksqTxNSTqHy
FP10Q2BaaVHoU+fsstPRvSj9Se9JC0x208Yvn7PeIx8d52C5bJYJlUrHF11xhVQK
es95Vhg7Va/AxLn9PWNwc5I/eaK2weGc6OiFazFzcRLDjIIt2C1oYO8haQp+4KJK
LNwI9tZOdcdGW2lLZbekIIcQiv7oTe4dszryvl8TNR9NBGGoSXVNrpXM0H9WIfn8
00vVCzIP0OSUMMSXYQG2lkk0ytDgEYLbYtsZT3pKeo7i01StZjXeIv/WW7fxmbIh
OYUJt6rVmDqicDf83uVnb6MccTu0TVKE1BBqScrWApHGZkfZsIlcqH+v1QlpuFjC
td8cdV/Mq99aau5N9dpWuSS89mtgzrvn+ss85//muHVkOWOhM2A=
=Zyn+
-----END PGP SIGNATURE-----


L
L
Ludovic Courtès wrote on 18 Jul 2018 00:23
control message for bug #32183
(address . control@debbugs.gnu.org)
87bmb5sdqx.fsf@gnu.org
reassign 32183 guix
L
L
Ludovic Courtès wrote on 18 Jul 2018 00:28
Re: [bug#32183] New ‘guix pull’ /root/.config/current/bin/guix: Permission denied
(name . Leo Famulari)(address . leo@famulari.name)
877eltsdio.fsf@gnu.org
Leo Famulari <leo@famulari.name> skribis:

Toggle quote (7 lines)
> On Tue, Jul 17, 2018 at 10:55:41AM +0200, Pjotr Prins wrote:
>> > > Fails to build with below /gnu/store/8ahlc84zaj0iw9jpsdpa9wx4ms0s9cma-guix-daemon-0.15.0-1.4876bc8/libexec/guix/download: line 8: /root/.config/current/bin/guix: Permission denied
>
> There must be a typo in the code somewhere. The path should be
> '/root/.config/guix/current/bin/guix'.Note the extra 'guix' path
> component.

Good catch! Fixed in 799dc53e9bfe605613cd2e7cb2c584282847fa84.

Thank you Leo & Pjotr.

Ludo’.
Closed
P
P
Pjotr Prins wrote on 24 Jul 2018 00:28
Re: [bug#32183] New ‘guix p ull’ /root/.config/current/bin/guix: Permission denied
(address . 32183@debbugs.gnu.org)
20180723222855.osvahab6uo677nfd@thebird.nl
Not completely sorted. Not sure what is going wrong but now starting
with guix 0.14 daemon and client and running guix pull a few times
successfully, running guix-daemon from $HOME/.config/guix/current/bin
and guix from a fresh git checkout using ./pre-inst-env guix I get

substitute: /gnu/store/x02v3j0h5q1d9bl3lwxavp8m9rpm3b7m-guix-daemon-0.15.0-2.8bbb79c/libexec/guix/substitute: line 8: /root/.config/guix/current/bin/guix: No such file or directory

which is funny for two reasons - 1st this is a guix-daemon that
appears to be older (it is the same) referring to a directory that
does not exist - guix pull is in my $HOME/.config.

Note that it still downloads binaries, but won't do the final
symlinks in the profile.

On this machine I am stuck because whatever I do I get this error.
Only rolling back to 0.14 allows me to install software again
including guix. But then it stops in its tracks with above.

Pj.
L
L
Ludovic Courtès wrote on 26 Jul 2018 15:50
Re: bug#32183: New ‘guix pull’ /root/.config/current/bin/guix: Permission denied
(name . Pjotr Prins)(address . pjotr.public12@thebird.nl)(address . 32183@debbugs.gnu.org)
87tvomxfzy.fsf@gnu.org
Hi Pjotr,

Pjotr Prins <pjotr.public12@thebird.nl> skribis:

Toggle quote (11 lines)
> Not completely sorted. Not sure what is going wrong but now starting
> with guix 0.14 daemon and client and running guix pull a few times
> successfully, running guix-daemon from $HOME/.config/guix/current/bin
> and guix from a fresh git checkout using ./pre-inst-env guix I get
>
> substitute: /gnu/store/x02v3j0h5q1d9bl3lwxavp8m9rpm3b7m-guix-daemon-0.15.0-2.8bbb79c/libexec/guix/substitute: line 8: /root/.config/guix/current/bin/guix: No such file or directory
>
> which is funny for two reasons - 1st this is a guix-daemon that
> appears to be older (it is the same) referring to a directory that
> does not exist - guix pull is in my $HOME/.config.

Since ‘guix-daemon’ runs as root, the ‘guix-daemon’ package¹ assumes
that ~root/.config/guix/current/bin/guix exists. In fact, the only way
you can install the ‘guix-daemon’ package is by running ‘guix pull’, and
if you run ‘guix-daemon’ you run it as root, so ~root/.config/guix
necessarily exists.

Or could it be that you’re running ‘guix-daemon’ from
~/.config/guix/current as non-root? That would indeed fail.

In fact it may be enough to do:

exec ~/.config/guix/current/bin/guix …

instead of:

exec ~root/.config/guix/current/bin/guix …

in that ‘install’ phase of ‘guix-daemon’.

Thanks,
Ludo’.

L
L
Ludovic Courtès wrote on 2 Sep 2018 15:55
(name . Pjotr Prins)(address . pjotr.public12@thebird.nl)(address . 32183@debbugs.gnu.org)
871sacats5.fsf@gnu.org
Hi Pjotr,

What was the outcome of this bug?


If it wasn’t resolved, could you answer the questions below?

Thanks in advance!

Ludo’.

ludo@gnu.org (Ludovic Courtès) skribis:

Toggle quote (38 lines)
> Hi Pjotr,
>
> Pjotr Prins <pjotr.public12@thebird.nl> skribis:
>
>> Not completely sorted. Not sure what is going wrong but now starting
>> with guix 0.14 daemon and client and running guix pull a few times
>> successfully, running guix-daemon from $HOME/.config/guix/current/bin
>> and guix from a fresh git checkout using ./pre-inst-env guix I get
>>
>> substitute: /gnu/store/x02v3j0h5q1d9bl3lwxavp8m9rpm3b7m-guix-daemon-0.15.0-2.8bbb79c/libexec/guix/substitute: line 8: /root/.config/guix/current/bin/guix: No such file or directory
>>
>> which is funny for two reasons - 1st this is a guix-daemon that
>> appears to be older (it is the same) referring to a directory that
>> does not exist - guix pull is in my $HOME/.config.
>
> Since ‘guix-daemon’ runs as root, the ‘guix-daemon’ package¹ assumes
> that ~root/.config/guix/current/bin/guix exists. In fact, the only way
> you can install the ‘guix-daemon’ package is by running ‘guix pull’, and
> if you run ‘guix-daemon’ you run it as root, so ~root/.config/guix
> necessarily exists.
>
> Or could it be that you’re running ‘guix-daemon’ from
> ~/.config/guix/current as non-root? That would indeed fail.
>
> In fact it may be enough to do:
>
> exec ~/.config/guix/current/bin/guix …
>
> instead of:
>
> exec ~root/.config/guix/current/bin/guix …
>
> in that ‘install’ phase of ‘guix-daemon’.
>
> Thanks,
> Ludo’.
>
> ¹ https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/package-management.scm#n301
P
P
Pjotr Prins wrote on 2 Sep 2018 16:28
Re: bug#32183: New ‘guix p ull’ /root/.config/current/bin/guix: Permission denied
(name . Ludovic Courtès)(address . ludo@gnu.org)
20180902142855.llzongao3kraunys@thebird.nl
On Sun, Sep 02, 2018 at 03:55:06PM +0200, Ludovic Courtès wrote:
Toggle quote (8 lines)
> Hi Pjotr,
>
> What was the outcome of this bug?
>
> https://bugs.gnu.org/32183
>
> If it wasn’t resolved, could you answer the questions below?

I still face this problem on one or two machines. I am running a
standard setup. Not sure what it is.

But since no one else is reporting I think it must be because I am
running some earlier tree checkout too for deployment. Something got
messed up.

You can close this issue for now. I'll simply reinstall Guix on these
machines and start building a recent tree.

Toggle quote (45 lines)
> Thanks in advance!
>
> Ludo’.
>
> ludo@gnu.org (Ludovic Courtès) skribis:
>
> > Hi Pjotr,
> >
> > Pjotr Prins <pjotr.public12@thebird.nl> skribis:
> >
> >> Not completely sorted. Not sure what is going wrong but now starting
> >> with guix 0.14 daemon and client and running guix pull a few times
> >> successfully, running guix-daemon from $HOME/.config/guix/current/bin
> >> and guix from a fresh git checkout using ./pre-inst-env guix I get
> >>
> >> substitute: /gnu/store/x02v3j0h5q1d9bl3lwxavp8m9rpm3b7m-guix-daemon-0.15.0-2.8bbb79c/libexec/guix/substitute: line 8: /root/.config/guix/current/bin/guix: No such file or directory
> >>
> >> which is funny for two reasons - 1st this is a guix-daemon that
> >> appears to be older (it is the same) referring to a directory that
> >> does not exist - guix pull is in my $HOME/.config.
> >
> > Since ‘guix-daemon’ runs as root, the ‘guix-daemon’ package¹ assumes
> > that ~root/.config/guix/current/bin/guix exists. In fact, the only way
> > you can install the ‘guix-daemon’ package is by running ‘guix pull’, and
> > if you run ‘guix-daemon’ you run it as root, so ~root/.config/guix
> > necessarily exists.
> >
> > Or could it be that you’re running ‘guix-daemon’ from
> > ~/.config/guix/current as non-root? That would indeed fail.
> >
> > In fact it may be enough to do:
> >
> > exec ~/.config/guix/current/bin/guix …
> >
> > instead of:
> >
> > exec ~root/.config/guix/current/bin/guix …
> >
> > in that ‘install’ phase of ‘guix-daemon’.
> >
> > Thanks,
> > Ludo’.
> >
> > ¹ https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/package-management.scm#n301
>
L
L
Ludovic Courtès wrote on 2 Sep 2018 22:04
Re: bug#32183: New ‘guix pull’ /root/.config/current/bin/guix: Permission denied
(name . Pjotr Prins)(address . pjotr.public12@thebird.nl)(address . 32183-done@debbugs.gnu.org)
87efeb64z3.fsf@gnu.org
Hi,

Pjotr Prins <pjotr.public12@thebird.nl> skribis:

Toggle quote (16 lines)
> On Sun, Sep 02, 2018 at 03:55:06PM +0200, Ludovic Courtès wrote:
>> Hi Pjotr,
>>
>> What was the outcome of this bug?
>>
>> https://bugs.gnu.org/32183
>>
>> If it wasn’t resolved, could you answer the questions below?
>
> I still face this problem on one or two machines. I am running a
> standard setup. Not sure what it is.
>
> But since no one else is reporting I think it must be because I am
> running some earlier tree checkout too for deployment. Something got
> messed up.

OK. Do reopen it if it shows up again.

Thanks,
Ludo’.
Closed
K
K
Konrad Hinsen wrote on 5 Sep 2018 17:27
Me too!
(address . 32183@debbugs.gnu.org)
m15zzkq81h.fsf@fastmail.net
Hi Ludo and Pjotr,

I just ran into this bug as well:

./pre-inst-env guix build python-matplotlib
@ build-started /gnu/store/33hf690qiwrvr0y59g9xwz6rpf3mmbj6-matplotlib-2.2.3.tar.gz.drv - x86_64-linux /var/log/guix/drvs/33//hf690qiwrvr0y59g9xwz6rpf3mmbj6-matplotlib-2.2.3.tar.gz.drv.bz2
/gnu/store/1w41y8q12r3dw8iphl5rpkr508881y50-guix-daemon-0.15.0-2.8bbb79c/libexec/guix/download: line 8: /root/.config/guix/current/bin/guix: Permission denied
/gnu/store/1w41y8q12r3dw8iphl5rpkr508881y50-guix-daemon-0.15.0-2.8bbb79c/libexec/guix/download: line 8: exec: /root/.config/guix/current/bin/guix: cannot execute: Permission denied
...
(resulting build failure etc., nothing interesting)

This is on recent source code checkout (commit
fefe17b0888b467383ea91fed73a9586295c49f0) with a small modification
(update of hdf5 to 1.10.3).

My guix-daemon is started via systemd at boot time, so it should run as
root. It's from root's guix, which is about two weeks old and has not
caused any trouble before.

Konrad.
P
P
Pjotr Prins wrote on 6 Sep 2018 23:10
Re: bug#32183: New ‘guix p ull’ /root/.config/current/bin/guix: Permission denied
(name . Ludovic Courtès)(address . ludo@gnu.org)
20180906211033.nszav6ubctku737d@thebird.nl
On Sun, Sep 02, 2018 at 10:04:32PM +0200, Ludovic Court�s wrote:
Toggle quote (2 lines)
> OK. Do reopen it if it shows up again.

Just to report that I did a successful install on one of those
machines. Starting with a 0.14 guix as root

guix pull

restarted daemon using the new one in /root/.config/current/bin/

switched to normal user using the guix pointed in that directory

/gnu/store/47hhyj0l4nk4na09qx1b66sz1wvpx95i-guix-command pull

Next I could run

~/.config/current/bin/guix ...

everything appeared hunky dory until I need to build a package

/gnu/store/sf84mb2y5vcykwq9fv02l2nipp34qng2-guix-daemon-0.15.0-3.3d43017/libexec/guix/download: line 8: /root/.config/guix/current/bin/guix: Permission denied
/gnu/store/sf84mb2y5vcykwq9fv02l2nipp34qng2-guix-daemon-0.15.0-3.3d43017/libexec/guix/download: line 8: exec: /root/.config/guix/current/bin/guix: cannot execute: Permission denied
builder for `/gnu/store/2q486ivskp2vm2rq10rs4pq949zkcz8h-evaluate_0.11.tar.gz.drv' failed with exit code 126
cannot build derivation `/gnu/store/qaaf8i893x0ivfnw6q19l0rq5gkmlbmj-r-evaluate-0.11.drv': 1 dependencies couldn't be built
cannot build derivation `/gnu/store/frxjc6iwwflasmj3wcm5s2934mgziaj6-r-fansi-0.3.0.drv': 1 dependencies couldn't be built
cannot build derivation `/gnu/store/p3d9km0fi423nl66q5ncvkxcnj2kz6bv-r-rsqlite-2.1.1.drv': 1 dependencies couldn't be built
guix package: error: build failed: build of `/gnu/store/p3d9km0fi423nl66q5ncvkxcnj2kz6bv-r-rsqlite-2.1.1.drv' failed

Again as root I did another guix pull. It instates the same daemon

/root/.config/guix/current/bin/guix-daemon -> /gnu/store/sf84mb2y5vcykwq9fv02l2nipp34qng2-guix-daemon-0.15.0-3.3d43017/bin/guix-daemon

Now guix pull fails in $USER

which guix
/home/wrk/.config/guix/current/bin/guix

guix pull

Updating channel 'guix' from Git repository at 'https://git.savannah.gnu.org/git/guix.git'...
Building from this channel:
guile: warning: failed to install locale
substitute: updating substitutes from 'https://mirror.hydra.gnu.org'... 100.0%
substitute: updating substitutes from 'https://mirror.hydra.gnu.org'... 100.0%
groff-1.22.3 2.7MiB 1.2MiB/s 00:02 [##################] 100.0%

/gnu/store/sf84mb2y5vcykwq9fv02l2nipp34qng2-guix-daemon-0.15.0-3.3d43017/libexec/guix/download: line 8: /root/.config/guix/current/bin/guix: Permission denied
/gnu/store/sf84mb2y5vcykwq9fv02l2nipp34qng2-guix-daemon-0.15.0-3.3d43017/libexec/guix/download: line 8: exec: /root/.config/guix/current/bin/guix: cannot execute: Permission denied
builder for `/gnu/store/24ag580271wa640529ycykdwj0lk0g6z-curl-7.61.1.tar.xz.drv' failed with exit code 126
cannot build derivation `/gnu/store/17lw3svpjqygpj739yynyz6b8abddikx-curl-7.61.1.drv': 1 dependencies couldn't be built
Backtrace:
18 (primitive-load "/gnu/store/blfsj798qh4i2pmrcvyaidmsdiz?")
In ice-9/eval.scm:
155:9 17 (_ _)

Can you think of a way of getting out of this loop? What am I doing wrong here?

Pj.
Closed
P
P
Pjotr Prins wrote on 9 Sep 2018 09:20
(name . Pjotr Prins)(address . pjotr.public12@thebird.nl)
20180909072004.nxdwhrtyob53uznz@thebird.nl
Dear Ludo,

If I understand 'guix pull' correctly below should simply not be
possible, right? I mean, once you do a guix pull you have the latest
and the greatest and there should be no interference? Intriguingly
this does not happen on all my systems, just on 2 - notably my laptop
I am using in Southern France ;)

Pj.

On Thu, Sep 06, 2018 at 11:10:33PM +0200, Pjotr Prins wrote:
Toggle quote (61 lines)
> On Sun, Sep 02, 2018 at 10:04:32PM +0200, Ludovic Court�s wrote:
> > OK. Do reopen it if it shows up again.
>
> Just to report that I did a successful install on one of those
> machines. Starting with a 0.14 guix as root
>
> guix pull
>
> restarted daemon using the new one in /root/.config/current/bin/
>
> switched to normal user using the guix pointed in that directory
>
> /gnu/store/47hhyj0l4nk4na09qx1b66sz1wvpx95i-guix-command pull
>
> Next I could run
>
> ~/.config/current/bin/guix ...
>
> everything appeared hunky dory until I need to build a package
>
> /gnu/store/sf84mb2y5vcykwq9fv02l2nipp34qng2-guix-daemon-0.15.0-3.3d43017/libexec/guix/download: line 8: /root/.config/guix/current/bin/guix: Permission denied
> /gnu/store/sf84mb2y5vcykwq9fv02l2nipp34qng2-guix-daemon-0.15.0-3.3d43017/libexec/guix/download: line 8: exec: /root/.config/guix/current/bin/guix: cannot execute: Permission denied
> builder for `/gnu/store/2q486ivskp2vm2rq10rs4pq949zkcz8h-evaluate_0.11.tar.gz.drv' failed with exit code 126
> cannot build derivation `/gnu/store/qaaf8i893x0ivfnw6q19l0rq5gkmlbmj-r-evaluate-0.11.drv': 1 dependencies couldn't be built
> cannot build derivation `/gnu/store/frxjc6iwwflasmj3wcm5s2934mgziaj6-r-fansi-0.3.0.drv': 1 dependencies couldn't be built
> cannot build derivation `/gnu/store/p3d9km0fi423nl66q5ncvkxcnj2kz6bv-r-rsqlite-2.1.1.drv': 1 dependencies couldn't be built
> guix package: error: build failed: build of `/gnu/store/p3d9km0fi423nl66q5ncvkxcnj2kz6bv-r-rsqlite-2.1.1.drv' failed
>
> Again as root I did another guix pull. It instates the same daemon
>
> /root/.config/guix/current/bin/guix-daemon -> /gnu/store/sf84mb2y5vcykwq9fv02l2nipp34qng2-guix-daemon-0.15.0-3.3d43017/bin/guix-daemon
>
> Now guix pull fails in $USER
>
> which guix
> /home/wrk/.config/guix/current/bin/guix
>
> guix pull
>
> 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 91cc2a3
> guile: warning: failed to install locale
> substitute: updating substitutes from 'https://mirror.hydra.gnu.org'... 100.0%
> substitute: updating substitutes from 'https://mirror.hydra.gnu.org'... 100.0%
> Downloading https://mirror.hydra.gnu.org/guix/nar/gzip/xw7kc681ivcls1lpp0qy0xljljzd70dr-groff-1.22.3...
> groff-1.22.3 2.7MiB 1.2MiB/s 00:02 [##################] 100.0%
>
> /gnu/store/sf84mb2y5vcykwq9fv02l2nipp34qng2-guix-daemon-0.15.0-3.3d43017/libexec/guix/download: line 8: /root/.config/guix/current/bin/guix: Permission denied
> /gnu/store/sf84mb2y5vcykwq9fv02l2nipp34qng2-guix-daemon-0.15.0-3.3d43017/libexec/guix/download: line 8: exec: /root/.config/guix/current/bin/guix: cannot execute: Permission denied
> builder for `/gnu/store/24ag580271wa640529ycykdwj0lk0g6z-curl-7.61.1.tar.xz.drv' failed with exit code 126
> cannot build derivation `/gnu/store/17lw3svpjqygpj739yynyz6b8abddikx-curl-7.61.1.drv': 1 dependencies couldn't be built
> Backtrace:
> 18 (primitive-load "/gnu/store/blfsj798qh4i2pmrcvyaidmsdiz?")
> In ice-9/eval.scm:
> 155:9 17 (_ _)
>
> Can you think of a way of getting out of this loop? What am I doing wrong here?
>
> Pj.
>
Closed
P
P
Pjotr Prins wrote on 9 Sep 2018 16:02
(name . Pjotr Prins)(address . pjotr.public12@thebird.nl)
20180909140225.ggrygcwf7l6jnxsw@thebird.nl
It is working now. After a guix pull I did a guix package -i guix in a
new profile. Restarting the daemon from there it stopped complaining!

I don't know why the deamon from guix pull straight was not working,
but at least guix is building again.

Pj.
Closed
L
L
Ludovic Courtès wrote on 9 Sep 2018 16:44
Re: bug#32183: New ‘guix pull’ /root/.config/current/bin/guix: Permission denied
(name . Pjotr Prins)(address . pjotr.public12@thebird.nl)
87zhwq91dc.fsf@gnu.org
Hello,

Pjotr Prins <pjotr.public12@thebird.nl> skribis:

Toggle quote (22 lines)
> guix pull
>
> 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 91cc2a3
> guile: warning: failed to install locale
> substitute: updating substitutes from 'https://mirror.hydra.gnu.org'... 100.0%
> substitute: updating substitutes from 'https://mirror.hydra.gnu.org'... 100.0%
> Downloading https://mirror.hydra.gnu.org/guix/nar/gzip/xw7kc681ivcls1lpp0qy0xljljzd70dr-groff-1.22.3...
> groff-1.22.3 2.7MiB 1.2MiB/s 00:02 [##################] 100.0%
>
> /gnu/store/sf84mb2y5vcykwq9fv02l2nipp34qng2-guix-daemon-0.15.0-3.3d43017/libexec/guix/download: line 8: /root/.config/guix/current/bin/guix: Permission denied
> /gnu/store/sf84mb2y5vcykwq9fv02l2nipp34qng2-guix-daemon-0.15.0-3.3d43017/libexec/guix/download: line 8: exec: /root/.config/guix/current/bin/guix: cannot execute: Permission denied
> builder for `/gnu/store/24ag580271wa640529ycykdwj0lk0g6z-curl-7.61.1.tar.xz.drv' failed with exit code 126
> cannot build derivation `/gnu/store/17lw3svpjqygpj739yynyz6b8abddikx-curl-7.61.1.drv': 1 dependencies couldn't be built
> Backtrace:
> 18 (primitive-load "/gnu/store/blfsj798qh4i2pmrcvyaidmsdiz?")
> In ice-9/eval.scm:
> 155:9 17 (_ _)
>
> Can you think of a way of getting out of this loop? What am I doing wrong here?

I don’t think you’re doing anything wrong. Could anyone of you who
experience this problem strace guix-daemon? I’ve thought about this and
don’t understand where that EACCES (“Permission denied”) comes from.

Specifically, you’d have to run something along these lines as root:

strace -f -p $(pidof guix-daemon) -o log

and then, as root or non-root (it doesn’t matter), run, say:

guix build curl -S --no-substitutes

Thanks in advance!

Ludo’.
K
K
Konrad Hinsen wrote on 11 Sep 2018 11:34
(address . 32183@debbugs.gnu.org)
m1y3c89y3a.fsf@fastmail.net
Hi Ludo,

Toggle quote (12 lines)
> I don’t think you’re doing anything wrong. Could anyone of you who
> experience this problem strace guix-daemon? I’ve thought about this and
> don’t understand where that EACCES (“Permission denied”) comes from.
>
> Specifically, you’d have to run something along these lines as root:
>
> strace -f -p $(pidof guix-daemon) -o log
>
> and then, as root or non-root (it doesn’t matter), run, say:
>
> guix build curl -S --no-substitutes

The log file (compressed) is attached.

In doing this I noticed that I have two guix-daemon processes running:

root 1583 0.0 0.0 33156 2412 ? Ss 08:55 0:00 /root/.config/guix/current/bin/guix-daemon --build-users-group=guixbuild
root 13003 0.0 0.0 36028 6256 ? Ss 11:28 0:00 /root/.config/guix/current/bin/guix-daemon 12770

I ran strace on the first one.

Konrad.
L
L
Ludovic Courtès wrote on 11 Sep 2018 12:12
(name . Konrad Hinsen)(address . konrad.hinsen@fastmail.net)
87zhwo9wcg.fsf@gnu.org
Hi Konrad,

Konrad Hinsen <konrad.hinsen@fastmail.net> skribis:

Toggle quote (17 lines)
>> Specifically, you’d have to run something along these lines as root:
>>
>> strace -f -p $(pidof guix-daemon) -o log
>>
>> and then, as root or non-root (it doesn’t matter), run, say:
>>
>> guix build curl -S --no-substitutes
>
> The log file (compressed) is attached.
>
> In doing this I noticed that I have two guix-daemon processes running:
>
> root 1583 0.0 0.0 33156 2412 ? Ss 08:55 0:00 /root/.config/guix/current/bin/guix-daemon --build-users-group=guixbuild
> root 13003 0.0 0.0 36028 6256 ? Ss 11:28 0:00 /root/.config/guix/current/bin/guix-daemon 12770
>
> I ran strace on the first one.

Ooh, I see. The log shows this:

Toggle snippet (18 lines)
13795 setgroups(1, [999]) = 0
13795 setgid(999) = 0
13795 getgid() = 999
13795 getegid() = 999
13795 setuid(499) = 0
13795 getuid() = 499
13795 geteuid() = 499

[...]

13795 execve("/gnu/store/sf84mb2y5vcykwq9fv02l2nipp34qng2-guix-daemon-0.15.0-3.3d43017/libexec/guix/download", ["download", "/gnu/store/j3swd19y4wzv6nrr13bv7"..., "/gnu/store/rdlndkf50sn0jq7bqkbhm"...], 0xa26f60 /* 17 vars */) = 0

[...]

13795 execve("/root/.config/guix/current/bin/guix", ["/root/.config/guix/current/bin/g"..., "perform-download", "/gnu/store/j3swd19y4wzv6nrr13bv7"..., "/gnu/store/rdlndkf50sn0jq7bqkbhm"...], 0x6c0530 /* 19 vars */) = -1 EACCES (Permission denied)
13795 stat("/root/.config/guix/current/bin/guix", 0x7fffffffe1d0) = -1 EACCES (Permission denied)

The download process is running as a build user, not as root, hence the
permission issue (silly me!).

Now we need to find a way to use ‘guix’ from root’s
~/.config/guix/current. A solution may be to expose that profile under
/var/guix/profiles. Needs more thought…

Thanks for helping out!

Ludo’.
L
L
Ludovic Courtès wrote on 11 Sep 2018 12:13
control message for bug #32183
(address . control@debbugs.gnu.org)
87wors9wax.fsf@gnu.org
severity 32183 important
P
P
Pjotr Prins wrote on 11 Sep 2018 15:23
Re: bug#32183: New ‘guix p ull’ /root/.config/current/bin/guix: Permission denied
(name . Ludovic Courtès)(address . ludo@gnu.org)
20180911132313.7qtypjdc6y5ykjxd@thebird.nl
On Tue, Sep 11, 2018 at 12:12:15PM +0200, Ludovic Courtès wrote:
Toggle quote (7 lines)
> The download process is running as a build user, not as root, hence the
> permission issue (silly me!).
>
> Now we need to find a way to use ‘guix’ from root’s
> ~/.config/guix/current. A solution may be to expose that profile under
> /var/guix/profiles. Needs more thought…

Great! Any quick hacks to fix this? Even when I set all permissions open I get in the latest tree

./pre-inst-env guix package -i r-rqda -p ~/opt/rqda --substitute-urls="https://berlin.guixsd.org" --verbose

Building /gnu/store/nknybsl5a9wnfgd9bs13fzmjwa382ys2-libgcrypt-1.8.3.tar.bz2.drv - x86_64-linux
/gnu/store/sf84mb2y5vcykwq9fv02l2nipp34qng2-guix-daemon-0.15.0-3.3d43017/libexec/guix/download: line 8: /root/.config/guix/current/bin/guix: Permission denied
/gnu/store/sf84mb2y5vcykwq9fv02l2nipp34qng2-guix-daemon-0.15.0-3.3d43017/libexec/guix/download: line 8: exec: /root/.config/guix/current/bin/guix: cannot execute: Permission denied
builder for `/gnu/store/nknybsl5a9wnfgd9bs13fzmjwa382ys2-libgcrypt-1.8.3.tar.bz2.drv' failed with exit code 126
Build failed: /gnu/store/nknybsl5a9wnfgd9bs13fzmjwa382ys2-libgcrypt-1.8.3.tar.bz2.drv - 1 builder for `/gnu/store/nknybsl5a9wnfgd9bs13fzmjwa382ys2-libgcrypt-1.8.3.tar.bz2.drv' failed with exit code
P
P
Pjotr Prins wrote on 11 Sep 2018 15:58
(name . Pjotr Prins)(address . pjotr.public12@thebird.nl)
20180911135839.kffwkj7hmwe3f2w5@thebird.nl
On Tue, Sep 11, 2018 at 03:23:13PM +0200, Pjotr Prins wrote:
Toggle quote (18 lines)
> On Tue, Sep 11, 2018 at 12:12:15PM +0200, Ludovic Courtès wrote:
> > The download process is running as a build user, not as root, hence the
> > permission issue (silly me!).
> >
> > Now we need to find a way to use ‘guix’ from root’s
> > ~/.config/guix/current. A solution may be to expose that profile under
> > /var/guix/profiles. Needs more thought…
>
> Great! Any quick hacks to fix this? Even when I set all permissions open I get in the latest tree
>
> ./pre-inst-env guix package -i r-rqda -p ~/opt/rqda --substitute-urls="https://berlin.guixsd.org" --verbose
>
> Building /gnu/store/nknybsl5a9wnfgd9bs13fzmjwa382ys2-libgcrypt-1.8.3.tar.bz2.drv - x86_64-linux
> /gnu/store/sf84mb2y5vcykwq9fv02l2nipp34qng2-guix-daemon-0.15.0-3.3d43017/libexec/guix/download: line 8: /root/.config/guix/current/bin/guix: Permission denied
> /gnu/store/sf84mb2y5vcykwq9fv02l2nipp34qng2-guix-daemon-0.15.0-3.3d43017/libexec/guix/download: line 8: exec: /root/.config/guix/current/bin/guix: cannot execute: Permission denied
> builder for `/gnu/store/nknybsl5a9wnfgd9bs13fzmjwa382ys2-libgcrypt-1.8.3.tar.bz2.drv' failed with exit code 126
> Build failed: /gnu/store/nknybsl5a9wnfgd9bs13fzmjwa382ys2-libgcrypt-1.8.3.tar.bz2.drv - 1 builder for `/gnu/store/nknybsl5a9wnfgd9bs13fzmjwa382ys2-libgcrypt-1.8.3.tar.bz2.drv' failed with exit code

Hmmm. It fixed itself when I added the mirror substitute URL again.
After that it successfully built ghostscript. Looks like the building
problem only exists in the pre-building track of guix where it builds
packages for its own use?
L
L
Ludovic Courtès wrote on 11 Sep 2018 16:26
Re: bug#32183: New ‘guix pull’ /root/.config/current/bin/guix: Permission denied
(name . Pjotr Prins)(address . pjotr.public12@thebird.nl)
87in3c9kkc.fsf@gnu.org
Pjotr Prins <pjotr.public12@thebird.nl> skribis:

Toggle quote (10 lines)
> On Tue, Sep 11, 2018 at 12:12:15PM +0200, Ludovic Courtès wrote:
>> The download process is running as a build user, not as root, hence the
>> permission issue (silly me!).
>>
>> Now we need to find a way to use ‘guix’ from root’s
>> ~/.config/guix/current. A solution may be to expose that profile under
>> /var/guix/profiles. Needs more thought…
>
> Great! Any quick hacks to fix this?

A quick workaround is to run ‘guix-daemon’ from the ‘guix’ package. So,
as root, you’d do:

guix pull # if you haven’t done it recently
guix package -i guix # to install or upgrade guix

Then make sure your systemd (or whatever) config file returns to
/var/guix/profiles/per-user/root/guix-profile/bin/guix-daemon as it
does when you install Guix from the binary tarball.

HTH!

Ludo’.
L
L
Ludovic Courtès wrote on 11 Sep 2018 16:27
(name . Pjotr Prins)(address . pjotr.public12@thebird.nl)
87efe09kj8.fsf@gnu.org
Pjotr Prins <pjotr.public12@thebird.nl> skribis:

Toggle quote (24 lines)
> On Tue, Sep 11, 2018 at 03:23:13PM +0200, Pjotr Prins wrote:
>> On Tue, Sep 11, 2018 at 12:12:15PM +0200, Ludovic Courtès wrote:
>> > The download process is running as a build user, not as root, hence the
>> > permission issue (silly me!).
>> >
>> > Now we need to find a way to use ‘guix’ from root’s
>> > ~/.config/guix/current. A solution may be to expose that profile under
>> > /var/guix/profiles. Needs more thought…
>>
>> Great! Any quick hacks to fix this? Even when I set all permissions open I get in the latest tree
>>
>> ./pre-inst-env guix package -i r-rqda -p ~/opt/rqda --substitute-urls="https://berlin.guixsd.org" --verbose
>>
>> Building /gnu/store/nknybsl5a9wnfgd9bs13fzmjwa382ys2-libgcrypt-1.8.3.tar.bz2.drv - x86_64-linux
>> /gnu/store/sf84mb2y5vcykwq9fv02l2nipp34qng2-guix-daemon-0.15.0-3.3d43017/libexec/guix/download: line 8: /root/.config/guix/current/bin/guix: Permission denied
>> /gnu/store/sf84mb2y5vcykwq9fv02l2nipp34qng2-guix-daemon-0.15.0-3.3d43017/libexec/guix/download: line 8: exec: /root/.config/guix/current/bin/guix: cannot execute: Permission denied
>> builder for `/gnu/store/nknybsl5a9wnfgd9bs13fzmjwa382ys2-libgcrypt-1.8.3.tar.bz2.drv' failed with exit code 126
>> Build failed: /gnu/store/nknybsl5a9wnfgd9bs13fzmjwa382ys2-libgcrypt-1.8.3.tar.bz2.drv - 1 builder for `/gnu/store/nknybsl5a9wnfgd9bs13fzmjwa382ys2-libgcrypt-1.8.3.tar.bz2.drv' failed with exit code
>
> Hmmm. It fixed itself when I added the mirror substitute URL again.
> After that it successfully built ghostscript. Looks like the building
> problem only exists in the pre-building track of guix where it builds
> packages for its own use?

The issue affects downloads only (fixed-output derivations, not
substitutes.)

Ludo’.
L
L
Ludovic Courtès wrote on 11 Oct 2018 18:32
(name . Pjotr Prins)(address . pjotr.public12@thebird.nl)
87o9c030mj.fsf@gnu.org
Hi there!

I believe commit ed9d7cb4d95f8f4776e6fee2778ab52bc2852969 fixes it.

That is, if you run ‘guix pull’ as root and then start
~/.config/guix/current/bin/guix-daemon, everything should be fine.

Thanks,
Ludo’.
Closed
K
K
Konrad Hinsen wrote on 12 Oct 2018 08:59
Re: bug#32183: New ‘guix pull’ /root/.con fig/current/bin/guix: Permission denied
(address . 32183-done@debbugs.gnu.org)
8ee7a13c-5c91-0165-4b4e-5c54ec1cc7c4@fastmail.net
Hi Ludo,
Toggle quote (4 lines)
> I believe commit ed9d7cb4d95f8f4776e6fee2778ab52bc2852969 fixes it.
>
> That is, if you run ‘guix pull’ as root and then start
> ~/.config/guix/current/bin/guix-daemon, everything should be fine.
Let's say the bug seems to be elsewhere now ;-)

When I try to build something after following your instructions, I get
the error message

/gnu/store/bkkf11ixn67cwcw05nw9w9yd68i4jf23-guix-daemon-0.15.0-5.1d0be47/libexec/guix/download:
line 8: /var/guix/profiles/per-user/root/current-guix/bin/guix: No such
file or directory

And indeed there is no guix at that place. I guess it should be

/var/guix/profiles/per-user/root/guix-profile/bin/guix

I can try fixing the download script and testing again, but not before
next week, sorry!

Konrad.
Closed
L
L
Ludovic Courtès wrote on 12 Oct 2018 14:57
Re: bug#32183: New ‘guix pull’ /root/.config/current/bin/guix: Permission denied
(name . Konrad Hinsen)(address . konrad.hinsen@fastmail.net)
87o9bziapa.fsf@gnu.org
Hello,

Konrad Hinsen <konrad.hinsen@fastmail.net> skribis:

Toggle quote (13 lines)
>> I believe commit ed9d7cb4d95f8f4776e6fee2778ab52bc2852969 fixes it.
>>
>> That is, if you run ‘guix pull’ as root and then start
>> ~/.config/guix/current/bin/guix-daemon, everything should be fine.
> Let's say the bug seems to be elsewhere now ;-)
>
> When I try to build something after following your instructions, I get
> the error message
>
> /gnu/store/bkkf11ixn67cwcw05nw9w9yd68i4jf23-guix-daemon-0.15.0-5.1d0be47/libexec/guix/download:
> line 8: /var/guix/profiles/per-user/root/current-guix/bin/guix: No
> such file or directory

Hmm you might need to run, say, ‘guix pull -l’, to make this script
magically appear. :-)

Concretely, the new ‘guix pull’ migrates things from ~/.config/guix to
/var/guix/profiles the first time you run it, but it may be that you
haven’t yet run the *new* ‘guix pull’.

HTH,
Ludo’.
Closed
P
P
Pjotr Prins wrote on 14 Oct 2018 20:12
Re: bug#32183: New ‘guix p ull’ /root/.config/current/bin/guix: Permission denied
(name . Ludovic Courtès)(address . ludo@gnu.org)
20181014181218.qeu7sctebqacqhlp@thebird.nl
On Thu, Oct 11, 2018 at 06:32:20PM +0200, Ludovic Courtès wrote:
Toggle quote (7 lines)
> Hi there!
>
> I believe commit ed9d7cb4d95f8f4776e6fee2778ab52bc2852969 fixes it.
>
> That is, if you run ‘guix pull’ as root and then start
> ~/.config/guix/current/bin/guix-daemon, everything should be fine.

It works on one problematic machine. Thanks!

Pj.
Closed
K
K
Konrad Hinsen wrote on 15 Oct 2018 13:59
Re: bug#32183: New ‘guix pull’ /root/.con fig/current/bin/guix: Permission denied
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 32183-done@debbugs.gnu.org)
28305e01-cf3e-0731-4aaf-34eb516fb958@fastmail.net
Hi Ludo,

Toggle quote (7 lines)
> Hmm you might need to run, say, ‘guix pull -l’, to make this script
> magically appear. :-)
>
> Concretely, the new ‘guix pull’ migrates things from ~/.config/guix to
> /var/guix/profiles the first time you run it, but it may be that you
> haven’t yet run the *new* ‘guix pull’.

That looks like the right direction, since running "guix pull -l" starts
by saying

   Migrating profile generations to '/var/guix/profiles/per-user/root'...

Unfortunately, its next statement is just as magic but less pleasant:

Backtrace:
           6 (primitive-load "/root/.config/guix/current/bin/guix")
In guix/ui.scm:
  1583:12  5 (run-guix-command _ . _)
In ice-9/boot-9.scm:
    829:9  4 (catch srfi-34 #<procedure 337dc80 at guix/ui.scm:615:…> …)
    829:9  3 (catch system-error #<procedure 337dd20 at guix/script…> …)
    829:9  2 (catch git-error #<procedure 337dbe0 at guix/scripts/p…> …)
    829:9  1 (catch system-error #<procedure 3391a60 at guix/script…> …)
In unknown file:
           0 (raise #<condition &profile-not-found-error [profile: "…>)

ERROR: In procedure raise:
Wrong type (expecting exact integer): #<condition
&profile-not-found-error [profile:
"/var/guix/profiles/per-user/root/current-guix"] 338b460>


This looks like an error in an error-raising procedure, something like 
a meta-error ;-)

Looking at

  ~# ls -l /var/guix/profiles/per-user/root/current-guix
   lrwxrwxrwx 1 root root 14 oct.  15 13:51
/var/guix/profiles/per-user/root/current-guix -> current-4-link

yields  a link that is indeed missing. What I do have is
current-guix-4-link, but not a plain current-4-link.

Konrad.
Closed
L
L
Ludovic Courtès wrote on 15 Oct 2018 21:33
Re: bug#32183: New ‘guix pull’ /root/.config/current/bin/guix: Permission denied
(name . Konrad Hinsen)(address . konrad.hinsen@fastmail.net)(address . 32183-done@debbugs.gnu.org)
87h8hnc8dr.fsf@gnu.org
Hi Konrad,

Konrad Hinsen <konrad.hinsen@fastmail.net> skribis:

Toggle quote (3 lines)
> This looks like an error in an error-raising procedure, something
> like  a meta-error ;-)

The horror bug department worked hard to deliver this one. :-)

Toggle quote (9 lines)
> Looking at
>
>   ~# ls -l /var/guix/profiles/per-user/root/current-guix
>    lrwxrwxrwx 1 root root 14 oct.  15 13:51
> /var/guix/profiles/per-user/root/current-guix -> current-4-link
>
> yields  a link that is indeed missing. What I do have is
> current-guix-4-link, but not a plain current-4-link.

Yes, it’s one of the thinkos I made, fixed in
aa227b3be3d7728331a08dbd139c47c9b271dc23.

If you’re familiar with Dired in Emacs, I’d suggest opening
/var/guix/profiles/per-user/root and fixing the symlink targets from
there (with C-c C-q).

If not I can try and come up with a script to do that.

Apologies for the mess!

Ludo’.
Closed
K
K
Konrad Hinsen wrote on 16 Oct 2018 12:41
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 32183-done@debbugs.gnu.org)
m1efcqxjgi.fsf@fastmail.net
Hi Ludo,

Toggle quote (4 lines)
> If you’re familiar with Dired in Emacs, I’d suggest opening
> /var/guix/profiles/per-user/root and fixing the symlink targets from
> there (with C-c C-q).

Done. And after rebooting, guix seems to work fine for root, including
the download phase. Meaning that I consider this bug fixed.

But there still seems to be some collateral damage, since I could not
use "guix pull" any more on my standard user account:

$ guix pull
Migrating profile generations to '/var/guix/profiles/per-user/hinsen'...
guix pull: error: rename-file: Invalid cross-device link

This looks like guix is trying to use a hard link instead of a symbolic
link somewhere. I found a way around which I describe here for the
benefit of others who might find themselves in the same situation:

- check out a local copy of the Guix repository
- configure and make as described in the manual
- ./pre-inst-env guix pull

That does the profile migration using the very latest code. After that
the standard guix command seems to work fine again.

Konrad.
Closed
L
L
Ludovic Courtès wrote on 17 Oct 2018 10:44
(name . Konrad Hinsen)(address . konrad.hinsen@fastmail.net)(address . 32183-done@debbugs.gnu.org)
87tvlldktg.fsf@gnu.org
Hello Konrad,

Konrad Hinsen <konrad.hinsen@fastmail.net> skribis:

Toggle quote (7 lines)
> But there still seems to be some collateral damage, since I could not
> use "guix pull" any more on my standard user account:
>
> $ guix pull
> Migrating profile generations to '/var/guix/profiles/per-user/hinsen'...
> guix pull: error: rename-file: Invalid cross-device link

This was fixed in a subsequent commit:


To work around it, you can pull from an older generation, along these
lines:

~/.config/guix/current-42-link/bin/guix pull

(This will work because this older guix won’t attempt to move your
generations to /var/guix/profiles, so it allows you to “jump over” the
bug.)

Let me know how it goes!

It’s terrible that a function like this that looks trivial has been
causing so much trouble. Sorry about that. :-/

Ludo’.
Closed
K
K
Konrad Hinsen wrote on 17 Oct 2018 11:17
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 32183-done@debbugs.gnu.org)
m1efcpylsq.fsf@fastmail.net
Hi Ludo,

Toggle quote (11 lines)
> To work around it, you can pull from an older generation, along these
> lines:
>
> ~/.config/guix/current-42-link/bin/guix pull
>
> (This will work because this older guix won’t attempt to move your
> generations to /var/guix/profiles, so it allows you to “jump over” the
> bug.)
>
> Let me know how it goes!

I cannot try any more because I already used another workaround, meaning
that my profiles are properly migrated.

Toggle quote (3 lines)
> It’s terrible that a function like this that looks trivial has been
> causing so much trouble. Sorry about that. :-/

Lesson learned: avoid messing around with mutable state. How about
creating a functional package manager? ;-)

Konrad.
Closed
L
L
Ludovic Courtès wrote on 18 Oct 2018 01:06
(name . Konrad Hinsen)(address . konrad.hinsen@fastmail.net)(address . 32183-done@debbugs.gnu.org)
87murc9nqp.fsf@gnu.org
Konrad Hinsen <konrad.hinsen@fastmail.net> skribis:

Toggle quote (14 lines)
>> To work around it, you can pull from an older generation, along these
>> lines:
>>
>> ~/.config/guix/current-42-link/bin/guix pull
>>
>> (This will work because this older guix won’t attempt to move your
>> generations to /var/guix/profiles, so it allows you to “jump over” the
>> bug.)
>>
>> Let me know how it goes!
>
> I cannot try any more because I already used another workaround, meaning
> that my profiles are properly migrated.

Good.

Toggle quote (6 lines)
>> It’s terrible that a function like this that looks trivial has been
>> causing so much trouble. Sorry about that. :-/
>
> Lesson learned: avoid messing around with mutable state. How about
> creating a functional package manager? ;-)

That’s an idea worth pondering. :-)

Ludo’.
Closed
S
S
swedebugia wrote on 2 Nov 2018 15:38
Re: bug#32183: New ‘guix pull’ /root/.con fig/current/bin/guix: Permission denied
(address . 32183-done@debbugs.gnu.org)
3a0b6575-0def-bd64-b725-01190797f794@riseup.net
Hi

On 2018-10-17 11:17, Konrad Hinsen wrote:
Toggle quote (3 lines)
>
> Lesson learned: avoid messing around with mutable state. How about
> creating a functional package manager? ;-)
LOL

This whole update to guix pull was somewhat a breaking change, but
unfortunately it was very hard to imagine the repercussions (horrible
bugs) down the line...

Could it have been completely avoided by introducing it as such and
forced people to reinstall/upgrade by reinstall (overwriting all files
and invalidating the store etc.)?

--
Cheers
Swedebugia
Closed
L
L
Ludovic Courtès wrote on 3 Nov 2018 15:13
Re: bug#32183: New ‘guix pull’ /root/.config/current/bin/guix: Permission denied
(name . swedebugia)(address . swedebugia@riseup.net)
87efc2p7ud.fsf@gnu.org
Hello,

swedebugia <swedebugia@riseup.net> skribis:

Toggle quote (8 lines)
> This whole update to guix pull was somewhat a breaking change, but
> unfortunately it was very hard to imagine the repercussions (horrible
> bugs) down the line...
>
> Could it have been completely avoided by introducing it as such and
> forced people to reinstall/upgrade by reinstall (overwriting all files
> and invalidating the store etc.)?

Fundamentally, it’s just about moving files from ~/.config/guix to
/var/guix/profiles/per-user/$USER, which I thought was fairly harmless.

Also, the bug was around for a few days. Those who were away during
those days didn’t notice.

That said, I agree this was poorly handled. One way to improve it would
be to have several people run the code on their machine before it goes
to master (it’s the kind of code for which we can hardly write unit
tests, and it’s single-use code.)

Thanks,
Ludo’.
Closed
?