Subject: bug#45600: closed (Re: [bug#45600] [PATCH] /etc/profile.d/guix.sh: Add guix pull profile even when absent)

From: [email-masked] (GNU bug Tracking System)
Date: Sun, 03 Jan 2021 15:08:02 +0000

Your bug report

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

which was filed against the guix-patches package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
45600: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=45600
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: [bug#45600] [PATCH] /etc/profile.d/guix.sh: Add guix pull profile even when absent
From: Jakub Kądziołka <[email-masked]>
To: Ludovic Courtès <[email-masked]>
Cc: [email-masked], [email-masked]
Date: Sun, 03 Jan 2021 16:06:37 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

On Sun Jan 3, 2021 at 3:53 PM CET, Ludovic Courtès wrote:
> Hi,
>
> Jakub Kądziołka <[email-masked]> 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

Subject: [PATCH] /etc/profile.d/guix.sh: Add guix pull profile even when absent
From: Jakub Kądziołka <[email-masked]>
To: [email-masked]
Date: Fri, 1 Jan 2021 18:53:47 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

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(-)

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"
-- 
2.29.2