about summary refs log tree commit diff
path: root/pkgs/stdenv
diff options
context:
space:
mode:
authorLinus Heckemann <git@sphalerite.org>2023-10-05 12:48:00 +0200
committerGitHub <noreply@github.com>2023-10-05 12:48:00 +0200
commit81f6dc086460269f83f071fdb64d00e4d49f12ff (patch)
treeca0832df4e0344d36cdc2e70cdd3f98f9bcd387f /pkgs/stdenv
parent96a8a16dac0c36030c0a68e3ba3535621a1500b2 (diff)
parentc8f5c30c37e60d2c96c525d9df0917f852e7f5ad (diff)
downloadnixlib-81f6dc086460269f83f071fdb64d00e4d49f12ff.tar
nixlib-81f6dc086460269f83f071fdb64d00e4d49f12ff.tar.gz
nixlib-81f6dc086460269f83f071fdb64d00e4d49f12ff.tar.bz2
nixlib-81f6dc086460269f83f071fdb64d00e4d49f12ff.tar.lz
nixlib-81f6dc086460269f83f071fdb64d00e4d49f12ff.tar.xz
nixlib-81f6dc086460269f83f071fdb64d00e4d49f12ff.tar.zst
nixlib-81f6dc086460269f83f071fdb64d00e4d49f12ff.zip
Merge pull request #257919 from Ma27/structured-attrs-env-vars
structured attrs: prefer `NIX_ATTRS_*_FILE` over `.attrs.*`
Diffstat (limited to 'pkgs/stdenv')
-rw-r--r--pkgs/stdenv/generic/default-builder.sh4
-rw-r--r--pkgs/stdenv/generic/setup.sh17
2 files changed, 3 insertions, 18 deletions
diff --git a/pkgs/stdenv/generic/default-builder.sh b/pkgs/stdenv/generic/default-builder.sh
index 8c6fec7873b6..d49fb8aa57fc 100644
--- a/pkgs/stdenv/generic/default-builder.sh
+++ b/pkgs/stdenv/generic/default-builder.sh
@@ -1,6 +1,4 @@
-if [ -f .attrs.sh ]; then
-    . .attrs.sh
-fi
+if [ -e "$NIX_ATTRS_SH_FILE" ]; then . "$NIX_ATTRS_SH_FILE"; elif [ -f .attrs.sh ]; then . .attrs.sh; fi
 
 source $stdenv/setup
 genericBuild
diff --git a/pkgs/stdenv/generic/setup.sh b/pkgs/stdenv/generic/setup.sh
index ad9857fc9d61..419a66261e61 100644
--- a/pkgs/stdenv/generic/setup.sh
+++ b/pkgs/stdenv/generic/setup.sh
@@ -16,29 +16,15 @@ if (( "${NIX_DEBUG:-0}" >= 6 )); then
     set -x
 fi
 
-if [ -f .attrs.sh ]; then
+if [ -f .attrs.sh ] || [[ -n "${NIX_ATTRS_JSON_FILE:-}" ]]; then
     __structuredAttrs=1
     echo "structuredAttrs is enabled"
-else
-    __structuredAttrs=
-fi
 
-if [ -n "$__structuredAttrs" ]; then
     for outputName in "${!outputs[@]}"; do
         # ex: out=/nix/store/...
         export "$outputName=${outputs[$outputName]}"
     done
 
-    # Before Nix 2.4, $NIX_ATTRS_*_FILE was named differently:
-    # https://github.com/NixOS/nix/commit/27ce722
-    if [[ -n "${ATTRS_JSON_FILE:-}" ]]; then
-        export NIX_ATTRS_JSON_FILE="$ATTRS_JSON_FILE"
-    fi
-
-    if [[ -n "${ATTRS_SH_FILE:-}" ]]; then
-        export NIX_ATTRS_SH_FILE="$ATTRS_SH_FILE"
-    fi
-
     # $NIX_ATTRS_JSON_FILE pointed to the wrong location in sandbox
     # https://github.com/NixOS/nix/issues/6736; please keep around until the
     # fix reaches *every patch version* that's >= lib/minver.nix
@@ -49,6 +35,7 @@ if [ -n "$__structuredAttrs" ]; then
         export NIX_ATTRS_SH_FILE="$NIX_BUILD_TOP/.attrs.sh"
     fi
 else
+    __structuredAttrs=
     : "${outputs:=out}"
 fi