ludo@gnu.org (Ludovic Courtès) writes: > Hi Marius! > > Marius Bakke skribis: > >> * gnu/packages/version-control.scm (git): Update to 2.18.0. >> [native-inputs]: Add BASH. >> [arguments]: In #:make-flags, define SHELL_PATH and TEST_SHELL_PATH. >> Add #:disallowed-references. Drop /bin/sh substitution from Makefile. Add >> phase to prevent BASH from ending up in PATH. Delete 'patch-shebangs' phase. > > [...] > >> + ;; FIXME: This phase picks up the wrong bash when patching shebangs. >> + (delete 'patch-shebangs) > > Do the installed scripts still have the right shebang in spite of this? I haven't yet compared the results with and without this phase, but "normal" usage (including "send-email") works at least. > Removing this phase altogether sounds a bit risky. Another option would > have been to replace it with one that moves the “right” Bash to the > front of PATH and then calls the original ‘patch-shebangs’ phase. The problem is that 'patch-shebangs' does not use PATH, but instead iterates over inputs directly. It's supposed to prefer 'inputs' to 'native-inputs' (according to a comment), yet in this case it picks the native "full" bash rather than bash-minimal. If you read closely, you'll notice that 'bash-for-tests' is not in PATH at all. 'patch-source-shebangs' and other things that use (which "sh") works okay due to that. I suppose we can replace the phase with a fixed version, but I'm not sure why (@@ (guix build gnu-build-system) patch-shebangs) does the wrong thing. Another alternative is to delete the one test (t/t9902-completion.sh) that requires the full bash until we have a proper fix. Thoughts?