Subject: Re: bug#39194: help for non-root users to start using

From: Ludovic Courtès <[email-masked]>
Date: Sun, 19 Jan 2020 23:12:43 +0100

Hi Matt,

Matt Wette <[email-masked]> skribis:

> This guix-1.0.1 on x86_64 Fedora 30.
>
> After installing as root, it's not clear from the manual how users
> should start.
> I found out "guix pull" is the right thing.
> Maybe add that to the manual? (Or add a "guix init" command.)

“guix pull” brings you an up-to-date Guix, which is a good thing, but
you don’t _have_ to run it to get started.

> Here is the error that I get w/o "guix pull":
>
> [mwette@localhost ~]$ guix install hello
> Backtrace:
>            8 (primitive-load "/usr/local/bin/guix")
> In guix/ui.scm:
>   1813:12  7 (run-guix-command _ . _)
> In ice-9/boot-9.scm:
>     829:9  6 (catch _ _ #<procedure 7effb6272430 at guix/ui.scm:657?> ?)
>     829:9  5 (catch _ _ #<procedure 7effb6272448 at guix/ui.scm:780?> ?)
> In guix/scripts/package.scm:
>    948:10  4 (_)
> In guix/status.scm:
>     768:4  3 (call-with-status-report _ _)
> In guix/scripts/package.scm:
>    956:14  2 (_)
> In guix/build/syscalls.scm:
>   1127:14  1 (call-with-file-lock/no-wait _ #<procedure 7effb42f5cd?> ?)
> In ice-9/boot-9.scm:
>     777:6  0 (throw "open-file" "~A: ~S" ("No such file or direc?" ?) ?)
>
> ice-9/boot-9.scm:777:6: In procedure throw:
> In procedure throw: Wrong type argument in position 1: open-file

I believe this is fixed by commit 7842ddcbc118cbc2799e22651732b7cdc06b93ee.

Here’s my understanding of what happened:

  1. You’re running guix-daemon 1.0.1, which lacks the fix for
     <https://bugs.gnu.org/37744> (aka. CVE-2019-18192).

  2. As “mwette”, you ran ‘guix pull’ and obtained a new ‘guix’, which
     you then used in ‘guix install hello’ above.

  3. That new Guix contains the new profile locking mechanism that threw
     the exception we see above.  That exception is because it failed to
     create the lock file (“No such file or directory”), and that in
     turn is because /var/guix/profiles/per-user/mwette didn’t exist
     yet.

     /…/per-user/mwette didn’t exist because it was the first time you
     ran ‘guix install’ as “mwette”, and because guix-daemon lacks the
     fix mentioned above that would create upon first connection.

QED ■  :-)

Thanks for your report!

Ludo’.