Subject: bug#58149: guix pull error

From: zimoun <[email-masked]>
Date: Thu, 6 Oct 2022 12:30:39 +0200

Hi Matthieu,

On Thu, 6 Oct 2022 at 12:10, Matthieu Haefele <[email-masked]> wrote:

> Victory !!

\o/

> 1. What am I doing wrong to have stuck to this old guix daemon all this time ? Shall I run this `sudo -i guix pull` regularly to
> keep my daemon up to date ? But then it looks like I am the only one who faced this issue, weird, no ? And problems should have
> started back in February, but I intensively worked on guix this summer, including some `guix pull`... If reasons are not too
> complicated, I am interested in getting some insights.

When you run "guix pull" as a regular user, you just update the
profile ~/.config/guix/current which provides the 'guix' command used
by the user.  Note that several users on the same machine can have
different versions.

When a regular user run 'guix <subcommand>', this talks with
'guix-daemon' and process many actions (store management etc.).  Here
'guix-daemon' is usually provided by the profile
'/root/.config/guix/current' .  Well, it is configured by systemd (or
any others), for instance see [1] considering 'readlink
/root/.config/guix/current' returns
/var/guix/profiles/per-user/root/current-guix.

Therefore, to update the guix-daemon which runs (started by systemd),
you need to update the profile /root/.config/guix' which is done by
running "guix pull" as root.

1: https://git.savannah.gnu.org/cgit/guix.git/tree/etc/guix-daemon.service.in#n9

Personally, I run "guix pull" as root (update the daemon) each every
while. ;-)  Usually, at each new release and/or when I read (guix pull
--news; as regular user) something important.

> 2. We have tried out several things. If I have a colleague in a similar situation, could you confirm the following procedure:
>
>     /var/guix/profiles/per-user/root/current-guix/bin/guix-daemon --version
>     # should answer something like "guix-daemon (GNU Guix) 1.0.1"
>
>     guix build \
>      /gnu/store/n8vdar2f60mvq62g7mngpqwykbm9rw1q-guix-1.2.0rc2-1.0d4b1af
>
>     sudo -i guix package --bootstrap -p /root/.config/guix/current \
>      -r guix  -i  /gnu/store/n8vdar2f60mvq62g7mngpqwykbm9rw1q-guix-1.2.0rc2-1.0d4b1af
>
>       systemctl restart guix-daemon
>
>     /var/guix/profiles/per-user/root/current-guix/bin/guix-daemon --version
>     # should answer "guix-daemon (GNU Guix) 1.2.0rc2-1.0d4b1af"
>
>     sudo -i guix pull
>
>     systemctl restart guix-daemon
>
>     /var/guix/profiles/per-user/root/current-guix/bin/guix-daemon --version
>     # should answer something like "guix-daemon (GNU Guix) 1.3.0-30.17134b9"

Well, I cannot confirm the store name as
/gnu/store/n8vdar2f60mvq62g7mngpqwykbm9rw1q-guix-1.2.0rc2-1.0d4b1af.
Personally, I also miss how Ludo found these items. :-)

Ludo, do you think it would be worth to implement a transition plan
for this kind of situation?

Cheers,
simon

PS: Feel free to reply to [email-masked] if you consider
the bug is now fixed. :-)