Howdy! Vagrant Cascadian skribis: > On 2021-10-29, Ludovic Courtès wrote: [...] >> If you look at ‘child-shell-environment’ in (guix scripts environment), >> it runs this in the child shell: >> >> env || /usr/bin/env || set; echo GUIX-CHECK-DONE; read x; exit >> >> If the shell prints non-newline-terminated stuff before the output of >> ‘env’, the first line of ‘env’ would be swallowed by the parser below. >> >> Could you run: >> >> strace -o log -s 500 guix shell --check -D guix >> >> to see exactly what ‘guix shell’ reads? > > That showed nothing obvious to me; the log it spits out is about 3MB > (~320k compressed with zstd) I could attach if it is useful... > > I did notice SHELL=/bin/bash, and tried an experiment: > > $ SHELL=/gnu/store/87kif0bpf0anwbsaw0jvg8fyciw4sz67-bash-5.0.16/bin/bash guix shell --check -D guix > guix shell: checking the environment variables visible from shell > '/gnu/store/87kif0bpf0anwbsaw0jvg8fyciw4sz67-bash-5.0.16/bin/bash'... > guix shell: All is good! The shell gets correct environment variables. > > So, somehow the value of SHELL and/or the user's default shell is > triggering the issue? Yes, ‘--check’ runs $SHELL. To make sure, could you try with the attached patch to see exactly which variables ‘guix shell’ “sees”, and whether it drops a line it shouldn’t drop? TIA, Ludo’.