summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEelco Dolstra <edolstra@gmail.com>2022-01-24 19:55:22 +0100
committergithub-actions[bot] <github-actions[bot]@users.noreply.github.com>2022-01-25 19:13:49 +0000
commit7b8f2c9f9392a771f4492d37a29b8f331448da44 (patch)
tree13385a775d2c41d9e467ba51d9665ce00497ee76
parentMerge pull request #156727 from NixOS/backport-154951-to-release-21.11 (diff)
downloadnixpkgs-7b8f2c9f9392a771f4492d37a29b8f331448da44.tar.gz
Check that nix-env output doesn't depend on the Nixpkgs location
(cherry picked from commit cb2f8a87d5389c7347b27937cbcde510696e36f7)
-rw-r--r--pkgs/top-level/nixpkgs-basic-release-checks.nix31
1 files changed, 21 insertions, 10 deletions
diff --git a/pkgs/top-level/nixpkgs-basic-release-checks.nix b/pkgs/top-level/nixpkgs-basic-release-checks.nix
index 350dd273fe2e..310043555929 100644
--- a/pkgs/top-level/nixpkgs-basic-release-checks.nix
+++ b/pkgs/top-level/nixpkgs-basic-release-checks.nix
@@ -19,15 +19,8 @@ pkgs.runCommand "nixpkgs-release-checks" { src = nixpkgs; buildInputs = [nix]; }
exit 1
fi
- # Make sure that derivation paths do not depend on the Nixpkgs path.
- mkdir $TMPDIR/foo
- ln -s $(readlink -f $src) $TMPDIR/foo/bar
- p1=$(nix-instantiate $src --dry-run -A firefox --show-trace)
- p2=$(nix-instantiate $TMPDIR/foo/bar --dry-run -A firefox --show-trace)
- if [ "$p1" != "$p2" ]; then
- echo "Nixpkgs evaluation depends on Nixpkgs path ($p1 vs $p2)!"
- exit 1
- fi
+ src2=$TMPDIR/foo
+ cp -rd $src $src2
# Check that all-packages.nix evaluates on a number of platforms without any warnings.
for platform in ${pkgs.lib.concatStringsSep " " supportedSystems}; do
@@ -37,7 +30,25 @@ pkgs.runCommand "nixpkgs-release-checks" { src = nixpkgs; buildInputs = [nix]; }
--show-trace --argstr system "$platform" \
--arg config '{ allowAliases = false; }' \
-qa --drv-path --system-filter \* --system \
- "''${opts[@]}" 2>&1 >/dev/null | tee eval-warnings.log
+ "''${opts[@]}" 2> eval-warnings.log > packages1
+
+ s1=$(sha1sum packages1 | cut -c1-40)
+ echo $s1
+
+ nix-env -f $src2 \
+ --show-trace --argstr system "$platform" \
+ --arg config '{ allowAliases = false; }' \
+ --option experimental-features 'no-url-literals' \
+ -qa --drv-path --system-filter \* --system \
+ "''${opts[@]}" > packages2
+
+ s2=$(sha1sum packages2 | cut -c1-40)
+
+ if [[ $s1 != $s2 ]]; then
+ echo "Nixpkgs evaluation depends on Nixpkgs path"
+ diff packages1 packages2
+ exit 1
+ fi
if [ -s eval-warnings.log ]; then
echo "Nixpkgs on $platform evaluated with warnings, aborting"