Subject: bug#63009: <guix-home>/profile/bin missing from PATH for ssh commands

From: Janneke Nieuwenhuizen <[email-masked]>
Date: Sat, 22 Apr 2023 10:19:45 +0200

Hi,

Yesterday I updated my account on our 'kluit' server to use guix home,
and found that broke pushing to my git archives.  Apparently, my git
installed as a guix home package is not seen for ssh commands.

--8<---------------cut here---------------start------------->8---
$ ssh kluit type -p git
[1]10:13:59 janneke@drakenpad:~
$ ssh kluit echo '$PATH'
/run/setuid-programs:/home/janneke/.config/guix/current/bin:/home/janneke/.guix-profile/bin:/run/current-system/profile/bin:/run/current-system/profile/sbin
--8<---------------cut here---------------end--------------->8---

See?  Although there is no "/home/janneke/.guix-profile/bin", it is
still present in PATH, while "/home/janneke/.guix-home/profile/bin" is
missing!

Also (re-)installing git in my home profile again (ugh!) is a workaround
to fix this:

--8<---------------cut here---------------start------------->8---
$ ssh kluit type -p git
/home/janneke/.guix-profile/bin/git
10:14:52 janneke@drakenpad:~
--8<---------------cut here---------------end--------------->8---

The attached patch has a fix for this.  WYDT?

Greetings,
Janneke

>From 2ac41477dad5699b748acfc72d4e91e0e14fa16a Mon Sep 17 00:00:00 2001
From: Janneke Nieuwenhuizen <[email-masked]>
Date: Sat, 22 Apr 2023 09:58:48 +0200
Subject: [PATCH] gnu: system: Cater for Guix Home in PATH.

* gnu/system.scm (operating-system-etc-service): Also add a user's
<guix-home>/profile/bin directory to PATH, before <guix-profile>/bin.
---
 gnu/system.scm | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/gnu/system.scm b/gnu/system.scm
index c17c6e4e98..df1e4e8640 100644
--- a/gnu/system.scm
+++ b/gnu/system.scm
@@ -10,7 +10,7 @@
 ;;; Copyright © 2020, 2021 Brice Waegeneire <[email-masked]>
 ;;; Copyright © 2020 Florian Pelz <[email-masked]>
 ;;; Copyright © 2020, 2022 Maxim Cournoyer <[email-masked]>
-;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <[email-masked]>
+;;; Copyright © 2020, 2023 Jan (janneke) Nieuwenhuizen <[email-masked]>
 ;;; Copyright © 2020, 2022 Efraim Flashner <[email-masked]>
 ;;; Copyright © 2021 Maxime Devos <[email-masked]>
 ;;; Copyright © 2021 raid5atemyhomework <[email-masked]>
@@ -1037,8 +1037,11 @@ (define* (operating-system-etc-service os)
   export `cat /etc/environment | cut -d= -f1`
 fi
 
-# Arrange so that ~/.config/guix/current comes first.
-for profile in \"$HOME/.guix-profile\" \"$HOME/.config/guix/current\"
+# Arrange so that ~/.config/guix/current comes first,
+# and guix-home comes before guix-profile.
+for profile in \"$HOME/.guix-profile\"        \\
+               \"$HOME/.guix-home/profile\"   \\
+               \"$HOME/.config/guix/current\"
 do
   if [ -f \"$profile/etc/profile\" ]
   then
-- 
2.39.2

-- 
Janneke Nieuwenhuizen <[email-masked]>  | GNU LilyPond https://LilyPond.org
Freelance IT https://www.JoyOfSource.com | Avatar® https://AvatarAcademy.com