Subject: Re: bug#34136: guix pull -l fails on fresh user profiles

From: Ludovic Courtès <[email-masked]>
Date: Sun, 20 Jan 2019 23:56:24 +0100

Pierre Neidhardt <[email-masked]> skribis:

> Switch to a new user, or simply log in as 'root' if you've never "guix
> pull"ed with it, then
>
> # guix pull -l
> Backtrace:
>            8 (apply-smob/1 #<catch-closure 11508e0>)
> In ice-9/boot-9.scm:
>     705:2  7 (call-with-prompt _ _ #<procedure default-prompt-handle…>)
> In ice-9/eval.scm:
>     619:8  6 (_ #(#(#<directory (guile-user) 11d2140>)))
> In guix/ui.scm:
>   1644:12  5 (run-guix-command _ . _)
> In ice-9/boot-9.scm:
>     829:9  4 (catch srfi-34 #<procedure 2e24be0 at guix/ui.scm:622:…> …)
>     829:9  3 (catch system-error #<procedure 2e24c80 at guix/script…> …)
>     829:9  2 (catch git-error #<procedure 2e24b40 at guix/scripts/p…> …)
>     829:9  1 (catch system-error #<procedure 2e28c40 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"] 2e1e8c0>

Fixed in c49b45c917eff17122aea5f7a57ae4cef02f1003.  A missing import and
the wrong ‘raise’ was being used.

> I think we should make `guix pull -l' return a value that can be used
> meaningfully in deployment scripts.  For instance, a non-zero
> exit code could mean this is a fresh user profile.

Yep, that’s what was intended and what happens now.  :-)

Thanks,
Ludo’.