Subject: bug#51466: bug#53355: guix shell --check: confusing error message

From: Ludovic Courtès <[email-masked]>
Date: Tue, 08 Feb 2022 10:26:21 +0100

Hi Chris,

Thanks for testing!

Chris Marusich <[email-masked]> skribis:

> The presence of the "$" in front of LIBRARY_PATH seems suspicious:
>
>   ;;; (variable "$ LIBRARY_PATH=/gnu/store/hvcq6yjfjjc7060pq09zm1rj02mivg4h-profile/lib" "$ LIBRARY_PATH")
>
> I'm not sure why the "$" is being added.  I tried various things to
> remove it.  I tried explicitly setting PS1 to an empty string in my
> ~/.bashrc.  I also tried setting it explicitly to an empty string in
> /etc/profile.  Maybe if we can figure out where that "$ " prefix is
> coming from, we can resolve this issue?

How about this:

diff --git a/guix/scripts/environment.scm b/guix/scripts/environment.scm
index ec071402f4..ac2c79ab65 100644
--- a/guix/scripts/environment.scm
+++ b/guix/scripts/environment.scm
@@ -420,7 +420,7 @@ (define script
     ;; Script to obtain the list of environment variable values.  On a POSIX
     ;; shell we can rely on 'set', but on fish we have to use 'env' (fish's
     ;; 'set' truncates values and prints them in a different format.)
-    "env || /usr/bin/env || set; echo GUIX-CHECK-DONE; read x; exit\n")
+    "PS1=; env || /usr/bin/env || set; echo GUIX-CHECK-DONE; read x; exit\n")
 
   (define lines
     (match (primitive-fork)

?

Thanks,
Ludo’.