From e560459c5b06ce1351ae5eb8988f8ce87602058a Mon Sep 17 00:00:00 2001 From: Frederik Rietdijk Date: Sun, 6 Sep 2020 18:15:32 +0200 Subject: [PATCH] Revert "utils.bash: revert #93560 for darwin, unblocks channels" Revert the hack and the original faulty commit. This reverts commit 48264ee506105a2f5e61e5d327599e9f301bd77f. Revert "Purity checking should accept $TMP and not just /tmp" This reverts commit fb777be7d2925ec0e97783ce5e3a0136361dc0a8. --- .../bintools-wrapper/default.nix | 2 +- pkgs/build-support/wrapper-common/utils.bash | 6 +- .../wrapper-common/utils.bash.darwin | 92 ------------------- 3 files changed, 4 insertions(+), 96 deletions(-) delete mode 100644 pkgs/build-support/wrapper-common/utils.bash.darwin 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 -}