From bdec3ed049477a0c2b0b615d0a6c5e5b79ea74cb Mon Sep 17 00:00:00 2001 From: Daiderd Jordan Date: Wed, 14 Nov 2018 19:42:04 +0100 Subject: Revert "Revert "Revert "patch-shebangs: respect cross compilation""" Completely breaks darwin. Every package in the stdenv that has shebangs in the output will end up with references to bootstrap-tools. This reverts commit bde99096a80e74692795fa2782619c46a476839e. --- pkgs/build-support/setup-hooks/patch-shebangs.sh | 53 ++---------------------- 1 file changed, 3 insertions(+), 50 deletions(-) diff --git a/pkgs/build-support/setup-hooks/patch-shebangs.sh b/pkgs/build-support/setup-hooks/patch-shebangs.sh index 441f230869b..d26bf735d30 100644 --- a/pkgs/build-support/setup-hooks/patch-shebangs.sh +++ b/pkgs/build-support/setup-hooks/patch-shebangs.sh @@ -5,32 +5,10 @@ # rewritten to /nix/store//bin/python. Interpreters that are # already in the store are left untouched. -fixupOutputHooks+=(patchShebangsAuto) - -# Run patch shebangs on a directory. -# patchShebangs [--build | --host] directory - -# Flags: -# --build : Lookup commands available at build-time -# --host : Lookup commands available at runtime - -# Example use cases, -# $ patchShebangs --host /nix/store/...-hello-1.0/bin -# $ patchShebangs --build configure +fixupOutputHooks+=('if [ -z "$dontPatchShebangs" -a -e "$prefix" ]; then patchShebangs "$prefix"; fi') patchShebangs() { - local pathName - - if [ "$1" = "--host" ]; then - pathName=HOST_PATH - shift - elif [ "$1" = "--build" ]; then - pathName=PATH - shift - fi - local dir="$1" - header "patching script interpreter paths in $dir" local f local oldPath @@ -49,14 +27,6 @@ patchShebangs() { oldInterpreterLine=$(head -1 "$f" | tail -c+3) read -r oldPath arg0 args <<< "$oldInterpreterLine" - if [ -z "$pathName" ]; then - if [ -n "$strictDeps" ] && [[ "$f" = "$NIX_STORE"* ]]; then - pathName=HOST_PATH - else - pathName=PATH - fi - fi - if $(echo "$oldPath" | grep -q "/bin/env$"); then # Check for unsupported 'env' functionality: # - options: something starting with a '-' @@ -65,17 +35,14 @@ patchShebangs() { echo "$f: unsupported interpreter directive \"$oldInterpreterLine\" (set dontPatchShebangs=1 and handle shebang patching yourself)" exit 1 fi - - newPath="$(PATH="${!pathName}" command -v "$arg0" || true)" + newPath="$(command -v "$arg0" || true)" else if [ "$oldPath" = "" ]; then # If no interpreter is specified linux will use /bin/sh. Set # oldpath="/bin/sh" so that we get /nix/store/.../sh. oldPath="/bin/sh" fi - - newPath="$(PATH="${!pathName}" command -v "$(basename "$oldPath")" || true)" - + newPath="$(command -v "$(basename "$oldPath")" || true)" args="$arg0 $args" fi @@ -98,17 +65,3 @@ patchShebangs() { stopNest } - -patchShebangsAuto () { - if [ -z "$dontPatchShebangs" -a -e "$prefix" ]; then - - # 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 - patchShebangs --build "$prefix" - else - patchShebangs --host "$prefix" - fi - fi -} -- cgit 1.4.1