Subject: Re: bug#58149: guix pull error

From: Ludovic Courtès <[email-masked]>
Date: Thu, 06 Oct 2022 17:58:09 +0200

Hi!

Matthieu Haefele <[email-masked]> skribis:

> Victory !!
>
>     (base) mhaefele@mdlspc113:tmp $ /var/guix/profiles/per-user/root/current-guix/bin/guix-daemon --version
>     guile: warning: failed to install locale
>     guix-daemon (GNU Guix) 1.3.0-30.17134b9
>
> And the `guix pull` runs smoothly now, thanks a lot  :)

Yay, who would have thought?!  :-)

Thanks for persevering.  At lease we have a shorter path now next time
someone hits the problem.

> Now it is fixed I have two questions:
> 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.

The daemon changes, gets bug fixes, new features, support for new
compression algorithms, optimizations, etc., but the client/daemon
interface is stable.  Thus, one rarely needs to upgrade the daemon, but
it’s a good idea to update it once in a while.

On Guix System, that happens automatically when you reconfigure your
system, but on other distros it’s easy to overlook that.  The idea of
having clients warn about old daemons was a good one, but the
implementation didn’t work in your situation.

In your case, your daemon supported nothing but gzip (and bzip2 I think)
for substitutes.  However, gzip was officially dropped a few months ago,
meaning that newer substitutes are not available as gzip from
ci.guix.gnu.org:

  https://guix.gnu.org/en/blog/2022/sunsetting-gzip-substitutes-availability/

Thus your daemon was unable to fetch substitutes for things that were
built after that time.

BTW, the gzip change was announced publicly through several channels,
but your experience demonstrates that this is not enough.

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

Yes.

Thanks again for your time!

Ludo’