diff --git a/pkgs/build-support/bintools-wrapper/default.nix b/pkgs/build-support/bintools-wrapper/default.nix index 1aab26532a4..786f0f9c598 100644 --- a/pkgs/build-support/bintools-wrapper/default.nix +++ b/pkgs/build-support/bintools-wrapper/default.nix @@ -311,7 +311,7 @@ stdenv.mkDerivation { substituteAll ${./add-flags.sh} $out/nix-support/add-flags.sh substituteAll ${./add-hardening.sh} $out/nix-support/add-hardening.sh - substituteAll ${if stdenv.isDarwin then ../wrapper-common/utils.bash.darwin else ../wrapper-common/utils.bash} $out/nix-support/utils.bash + substituteAll ${../wrapper-common/utils.bash} $out/nix-support/utils.bash '' ## diff --git a/pkgs/build-support/wrapper-common/utils.bash b/pkgs/build-support/wrapper-common/utils.bash index ce569ac2b8c..8c4680a8e44 100644 --- a/pkgs/build-support/wrapper-common/utils.bash +++ b/pkgs/build-support/wrapper-common/utils.bash @@ -69,9 +69,9 @@ badPath() { # directory (including the build directory). test \ "$p" != "/dev/null" -a \ - "${p#${NIX_STORE}}" = "$p" -a \ - "${p#${TMP:-/tmp}}" = "$p" -a \ - "${p#${NIX_BUILD_TOP}}" = "$p" + "${p:0:${#NIX_STORE}}" != "$NIX_STORE" -a \ + "${p:0:4}" != "/tmp" -a \ + "${p:0:${#NIX_BUILD_TOP}}" != "$NIX_BUILD_TOP" } expandResponseParams() { diff --git a/pkgs/build-support/wrapper-common/utils.bash.darwin b/pkgs/build-support/wrapper-common/utils.bash.darwin deleted file mode 100644 index 8c4680a8e44..00000000000 --- a/pkgs/build-support/wrapper-common/utils.bash.darwin +++ /dev/null @@ -1,92 +0,0 @@ -# Accumulate suffixes for taking in the right input parameters with the `mangle*` -# functions below. See setup-hook for details. -accumulateRoles() { - declare -ga role_suffixes=() - if [ "${NIX_@wrapperName@_TARGET_BUILD_@suffixSalt@:-}" ]; then - role_suffixes+=('_FOR_BUILD') - fi - if [ "${NIX_@wrapperName@_TARGET_HOST_@suffixSalt@:-}" ]; then - role_suffixes+=('') - fi - if [ "${NIX_@wrapperName@_TARGET_TARGET_@suffixSalt@:-}" ]; then - role_suffixes+=('_FOR_TARGET') - fi -} - -mangleVarList() { - local var="$1" - shift - local -a role_suffixes=("$@") - - local outputVar="${var}_@suffixSalt@" - declare -gx ${outputVar}+='' - # For each role we serve, we accumulate the input parameters into our own - # cc-wrapper-derivation-specific environment variables. - for suffix in "${role_suffixes[@]}"; do - local inputVar="${var}${suffix}" - if [ -v "$inputVar" ]; then - export ${outputVar}+="${!outputVar:+ }${!inputVar}" - fi - done -} - -mangleVarBool() { - local var="$1" - shift - local -a role_suffixes=("$@") - - local outputVar="${var}_@suffixSalt@" - declare -gxi ${outputVar}+=0 - for suffix in "${role_suffixes[@]}"; do - local inputVar="${var}${suffix}" - if [ -v "$inputVar" ]; then - # "1" in the end makes `let` return success error code when - # expression itself evaluates to zero. - # We don't use `|| true` because that would silence actual - # syntax errors from bad variable values. - let "${outputVar} |= ${!inputVar:-0}" "1" - fi - done -} - -skip () { - if (( "${NIX_DEBUG:-0}" >= 1 )); then - echo "skipping impure path $1" >&2 - fi -} - - -# Checks whether a path is impure. E.g., `/lib/foo.so' is impure, but -# `/nix/store/.../lib/foo.so' isn't. -badPath() { - local p=$1 - - # Relative paths are okay (since they're presumably relative to - # the temporary build directory). - if [ "${p:0:1}" != / ]; then return 1; fi - - # Otherwise, the path should refer to the store or some temporary - # directory (including the build directory). - test \ - "$p" != "/dev/null" -a \ - "${p:0:${#NIX_STORE}}" != "$NIX_STORE" -a \ - "${p:0:4}" != "/tmp" -a \ - "${p:0:${#NIX_BUILD_TOP}}" != "$NIX_BUILD_TOP" -} - -expandResponseParams() { - declare -ga params=("$@") - local arg - for arg in "$@"; do - if [[ "$arg" == @* ]]; then - # phase separation makes this look useless - # shellcheck disable=SC2157 - if [ -x "@expandResponseParams@" ]; then - # params is used by caller - #shellcheck disable=SC2034 - readarray -d '' params < <("@expandResponseParams@" "$@") - return 0 - fi - fi - done -}