patch-shebangs: use --build for auto patch shebangs

In strictDeps=false, autoPatchshebangs should use
--build (corresponding to PATH) to lookup commands. This restores the
previous behavior of patchshebangs so that we don’t break stuff that
isn’t careful in the buildInputs vs. nativeBuildInputs distinction.
Unfortunately this won’t work under cross compilation.
This commit is contained in:
Matthew Bauer 2018-10-31 15:34:45 -05:00
parent bde99096a8
commit eb7c50a993
2 changed files with 3 additions and 9 deletions

View file

@ -102,10 +102,12 @@ patchShebangs() {
patchShebangsAuto () {
if [ -z "$dontPatchShebangs" -a -e "$prefix" ]; then
if [ -z "${strictDeps-}"]; then
patchShebangs --build "$prefix"
# Dev output will end up being run on the build platform. An
# example case of this is sdl2-config. Otherwise, we can just
# use the runtime path (--host).
if [ "$output" != out ] && [ "$output" = "${!outputDev}" ]; then
elif [ "$output" != out ] && [ "$output" = "${!outputDev}" ]; then
patchShebangs --build "$prefix"
else
patchShebangs --host "$prefix"

View file

@ -257,17 +257,9 @@ shopt -s nullglob
# Set up the initial path.
PATH=
HOST_PATH=
for i in $initialPath; do
if [ "$i" = / ]; then i=; fi
addToSearchPath PATH "$i/bin"
# For backward compatibility, we add initial path to HOST_PATH so
# it can be used in auto patch-shebangs. Unfortunately this will
# not work with cross compilation.
if [ -z "${strictDeps-}" ]; then
addToSearchPath HOST_PATH "$i/bin"
fi
done
if (( "${NIX_DEBUG:-0}" >= 1 )); then