diff mbox series

[bug#45600] /etc/profile.d/guix.sh: Add guix pull profile even when absent

Message ID 20210101175347.1736-1-kuba@kadziolka.net
State Accepted
Headers show
Series [bug#45600] /etc/profile.d/guix.sh: Add guix pull profile even when absent | expand

Checks

Context Check Description
cbaines/submitting builds success
cbaines/comparison success View comparision
cbaines/git branch success View Git branch
cbaines/applying patch success View Laminar job
cbaines/issue success View issue

Commit Message

Maja Kądziołka Jan. 1, 2021, 5:53 p.m. UTC
After initial installation on a foreign distro, the guix pull profile
won't be present in path. This means that the first guix pull won't take
effect until the shell is restarted.

~/.guix-profile cannot be pre-loaded like this as the relevant paths are
stored in ~/.guix-profile/etc/profile, which simply won't exist.
However, guix package will output a relevant hint that instructs the
user to reload the profile, so this isn't a problem.
---

Note on testing: I have verified that non-existent directories are
harmless when included in $PATH and $INFOPATH. However, fully testing
this change requires setting up a virtual machine and installing Guix on
it, which I cannot do right now.

 etc/guix-install.sh | 14 ++++++--------
 1 file changed, 6 insertions(+), 8 deletions(-)

Comments

Ludovic Courtès Jan. 3, 2021, 2:53 p.m. UTC | #1
Hi,

Jakub Kądziołka <kuba@kadziolka.net> skribis:

> After initial installation on a foreign distro, the guix pull profile
> won't be present in path. This means that the first guix pull won't take
> effect until the shell is restarted.
>
> ~/.guix-profile cannot be pre-loaded like this as the relevant paths are
> stored in ~/.guix-profile/etc/profile, which simply won't exist.
> However, guix package will output a relevant hint that instructs the
> user to reload the profile, so this isn't a problem.

LGTM!

Please add something like this to the commit log:

* etc/guix-install.sh (sys_create_init_profile): Set PATH and INFOPATH
even when $_GUIX_PROFILE does not exist.

Thank you,
Ludo’.
Maja Kądziołka Jan. 3, 2021, 3:06 p.m. UTC | #2
On Sun Jan 3, 2021 at 3:53 PM CET, Ludovic Courtès wrote:
> Hi,
>
> Jakub Kądziołka <kuba@kadziolka.net> skribis:
>
> > After initial installation on a foreign distro, the guix pull profile
> > won't be present in path. This means that the first guix pull won't take
> > effect until the shell is restarted.
> >
> > ~/.guix-profile cannot be pre-loaded like this as the relevant paths are
> > stored in ~/.guix-profile/etc/profile, which simply won't exist.
> > However, guix package will output a relevant hint that instructs the
> > user to reload the profile, so this isn't a problem.
>
> LGTM!
>
> Please add something like this to the commit log:
>
> * etc/guix-install.sh (sys_create_init_profile): Set PATH and INFOPATH
> even when $_GUIX_PROFILE does not exist.

Thanks, forgot about that...

Commit pushed.

Regards,
Jakub Kądziołka
diff mbox series

Patch

diff --git a/etc/guix-install.sh b/etc/guix-install.sh
index 9015f40bb6..69b8b88847 100755
--- a/etc/guix-install.sh
+++ b/etc/guix-install.sh
@@ -454,14 +454,12 @@  sys_create_init_profile()
     cat <<"EOF" > /etc/profile.d/guix.sh
 # _GUIX_PROFILE: `guix pull` profile
 _GUIX_PROFILE="$HOME/.config/guix/current"
-if [ -L $_GUIX_PROFILE ]; then
-  export PATH="$_GUIX_PROFILE/bin${PATH:+:}$PATH"
-  # Export INFOPATH so that the updated info pages can be found
-  # and read by both /usr/bin/info and/or $GUIX_PROFILE/bin/info
-  # When INFOPATH is unset, add a trailing colon so that Emacs
-  # searches 'Info-default-directory-list'.
-  export INFOPATH="$_GUIX_PROFILE/share/info:$INFOPATH"
-fi
+export PATH="$_GUIX_PROFILE/bin${PATH:+:}$PATH"
+# Export INFOPATH so that the updated info pages can be found
+# and read by both /usr/bin/info and/or $GUIX_PROFILE/bin/info
+# When INFOPATH is unset, add a trailing colon so that Emacs
+# searches 'Info-default-directory-list'.
+export INFOPATH="$_GUIX_PROFILE/share/info:$INFOPATH"
 
 # GUIX_PROFILE: User's default profile
 GUIX_PROFILE="$HOME/.guix-profile"