* [bug#51780] [PATCH] environment: Fix ‘--check’ with exported PS1 variable.
@ 2021-11-11 23:46 Thiago Jung Bauermann via Guix-patches via
2021-11-14 22:16 ` bug#51780: " Ludovic Courtès
0 siblings, 1 reply; 3+ messages in thread
From: Thiago Jung Bauermann via Guix-patches via @ 2021-11-11 23:46 UTC (permalink / raw)
To: 51780; +Cc: Thiago Jung Bauermann
If your .bashrc (unnecessarily) exports PS1 and you’re in a non-login
shell, Guix crashes:
--8<---------------cut here---------------start------------->8---
user@popigai:~$ guix shell --check coreutils
guix shell: checking the environment variables visible from shell '/bin/bash'...
Backtrace:
14 (primitive-load "/home/user/.config/guix/current/bin/g…")
In guix/ui.scm:
2206:7 13 (run-guix . _)
2169:10 12 (run-guix-command _ . _)
In ice-9/boot-9.scm:
1752:10 11 (with-exception-handler _ _ #:unwind? _ # _)
1752:10 10 (with-exception-handler _ _ #:unwind? _ # _)
In guix/store.scm:
658:37 9 (thunk)
1320:8 8 (call-with-build-handler _ _)
1320:8 7 (call-with-build-handler #<procedure 7fe393b7c420 at g…> …)
In guix/status.scm:
800:4 6 (call-with-status-report _ _)
In guix/scripts/environment.scm:
951:12 5 (_)
In guix/store.scm:
2119:24 4 (run-with-store #<store-connection 256.99 7fe39627e500> …)
In guix/scripts/environment.scm:
521:35 3 (_ _)
In unknown file:
2 (string=? ("PS1" . "${debian_chroot:+($debian_chroot)…") …)
In ice-9/boot-9.scm:
1685:16 1 (raise-exception _ #:continuable? _)
1685:16 0 (raise-exception _ #:continuable? _)
ice-9/boot-9.scm:1685:16: In procedure raise-exception:
In procedure string=: Wrong type argument in position 1 (expecting string): ("PS1" . "${debian_chroot:+($debian_chroot)}\\[\\033[01;32m\\]\\u@\\h\\[\\033[00m\\]:\\[\\033[01;34m\\]\\w\\[\\033[00m\\]${EXTRA}\\$ ")
user@popigai:~$
--8<---------------cut here---------------end--------------->8---
This is because the match pattern doesn’t expect `(vhash-assoc "PS1" actual)`
to return a pair.
* guix/scripts/environment.scm (validate-child-shell-environment): Change
match pattern to expect a pair.
---
guix/scripts/environment.scm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/guix/scripts/environment.scm b/guix/scripts/environment.scm
index 8176de4a5e8c..821f20e2f223 100644
--- a/guix/scripts/environment.scm
+++ b/guix/scripts/environment.scm
@@ -517,7 +517,7 @@ (define-syntax-rule (warn exp ...)
(unless warned?
(match (vhash-assoc "PS1" actual)
(#f #f)
- (str
+ ((_ . str)
(when (and (getenv "PS1") (string=? str (getenv "PS1")))
(warning (G_ "'PS1' is the same in sub-shell~%"))
(display-hint (G_ "Consider setting a different prompt for
base-commit: 893a31ec20f47b979c1be9fb8b942809228ba4c9
^ permalink raw reply related [flat|nested] 3+ messages in thread
* bug#51780: [PATCH] environment: Fix ‘--check’ with exported PS1 variable.
2021-11-11 23:46 [bug#51780] [PATCH] environment: Fix ‘--check’ with exported PS1 variable Thiago Jung Bauermann via Guix-patches via
@ 2021-11-14 22:16 ` Ludovic Courtès
2021-11-16 4:00 ` [bug#51780] " Thiago Jung Bauermann via Guix-patches via
0 siblings, 1 reply; 3+ messages in thread
From: Ludovic Courtès @ 2021-11-14 22:16 UTC (permalink / raw)
To: Thiago Jung Bauermann; +Cc: 51780-done
Hi,
Thiago Jung Bauermann <bauermann@kolabnow.com> skribis:
> If your .bashrc (unnecessarily) exports PS1 and you’re in a non-login
> shell, Guix crashes:
>
> user@popigai:~$ guix shell --check coreutils
> guix shell: checking the environment variables visible from shell '/bin/bash'...
> Backtrace:
> 14 (primitive-load "/home/user/.config/guix/current/bin/g…")
> In guix/ui.scm:
> 2206:7 13 (run-guix . _)
> 2169:10 12 (run-guix-command _ . _)
> In ice-9/boot-9.scm:
> 1752:10 11 (with-exception-handler _ _ #:unwind? _ # _)
> 1752:10 10 (with-exception-handler _ _ #:unwind? _ # _)
> In guix/store.scm:
> 658:37 9 (thunk)
> 1320:8 8 (call-with-build-handler _ _)
> 1320:8 7 (call-with-build-handler #<procedure 7fe393b7c420 at g…> …)
> In guix/status.scm:
> 800:4 6 (call-with-status-report _ _)
> In guix/scripts/environment.scm:
> 951:12 5 (_)
> In guix/store.scm:
> 2119:24 4 (run-with-store #<store-connection 256.99 7fe39627e500> …)
> In guix/scripts/environment.scm:
> 521:35 3 (_ _)
> In unknown file:
> 2 (string=? ("PS1" . "${debian_chroot:+($debian_chroot)…") …)
> In ice-9/boot-9.scm:
> 1685:16 1 (raise-exception _ #:continuable? _)
> 1685:16 0 (raise-exception _ #:continuable? _)
>
> ice-9/boot-9.scm:1685:16: In procedure raise-exception:
> In procedure string=: Wrong type argument in position 1 (expecting string): ("PS1" . "${debian_chroot:+($debian_chroot)}\\[\\033[01;32m\\]\\u@\\h\\[\\033[00m\\]:\\[\\033[01;34m\\]\\w\\[\\033[00m\\]${EXTRA}\\$ ")
> user@popigai:~$
>
> This is because the match pattern doesn’t expect `(vhash-assoc "PS1" actual)`
> to return a pair.
>
> * guix/scripts/environment.scm (validate-child-shell-environment): Change
> match pattern to expect a pair.
Oops, good catch! Applied, thanks.
Ludo’.
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2021-11-16 4:01 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-11-11 23:46 [bug#51780] [PATCH] environment: Fix ‘--check’ with exported PS1 variable Thiago Jung Bauermann via Guix-patches via
2021-11-14 22:16 ` bug#51780: " Ludovic Courtès
2021-11-16 4:00 ` [bug#51780] " Thiago Jung Bauermann via Guix-patches via
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/guix.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).