Subject: bug#42983: "sudo -E guix pull" breaks ~/.config/guix/current for regular user

From: Bengt Richter <[email-masked]>
Date: Sat, 22 Aug 2020 18:20:09 +0200

Hi,

On +2020-08-22 12:27:50 +0200, Danny Milosavljevic wrote:
> Hello,
> 
> Paul <[email-masked]> reported on IRC that his guix behaved strangely.  Upon
> investigation we found that the following happens (on a Guix system), when logged
> in as regular user (not root):
> 
> $ readlink ~/.config/guix/current
> /var/guix/profiles/per-user/dannym/current-guix
> $ sudo -E guix pull
> $ readlink ~/.config/guix/current
> /var/guix/profiles/per-user/root/current-guix
> 
> You can also rm -f ~/.config/guix/current after that and do everything above
> again and it will happen again.  It even happens when guix pull has nothing to
> do.
> 
> That doesn't seem right.  We should at least try to prevent this from happening,
> or warn or something.
>

ISTM it looks like a bug that should be fixed[1], urgently, not just warned about :)
[1] eliminated from the possibility of happening :)

> The guix package manager that did that is:
> 
> $ sudo -E guix describe
> Generation 64   Aug 22 2020 11:41:04    (current)
>   guix dad963a
>     repository URL: https://git.savannah.gnu.org/git/guix.git
>     branch: master
>     commit: dad963a4393ea51409baa63817b26b449ed58338
>   heads 50b97d4
>     repository URL: https://github.com/daym/heads-guix.git
>     branch: wip-musl
>     commit: 50b97d446ebafd0be7a0e19d87cd236882093244
> 
> $ sudo -i
> # guix describe
> Generation 64   22. August 2020 11:41:04        (aktuell)
>   guix dad963a
>     Repository-URL: https://git.savannah.gnu.org/git/guix.git
>     Branch: master
>     Commit: dad963a4393ea51409baa63817b26b449ed58338
>   heads 50b97d4
>     Repository-URL: https://github.com/daym/heads-guix.git
>     Branch: wip-musl
>     Commit: 50b97d446ebafd0be7a0e19d87cd236882093244

I find it peculiar that root (sudo -i) looks like it's using swedish locale
("aktuell" is swedish for "current") with the rest of the output identical.
(Hm, maybe that's also Norwegian ;-)

If describe is describing two things that are identical end values of
readlink -f thing{1..2}, I think it would be helpful to show the thing{1..2}
profile links it's using.

BTW, what would sudo guix describe without the -E (preserving user environment) have produced?

-- 
Regards,
Bengt Richter