diff options
| author | Eelco Dolstra <edolstra@gmail.com> | 2022-01-24 19:55:22 +0100 |
|---|---|---|
| committer | github-actions[bot] <github-actions[bot]@users.noreply.github.com> | 2022-01-25 19:13:49 +0000 |
| commit | 7b8f2c9f9392a771f4492d37a29b8f331448da44 (patch) | |
| tree | 13385a775d2c41d9e467ba51d9665ce00497ee76 | |
| parent | Merge pull request #156727 from NixOS/backport-154951-to-release-21.11 (diff) | |
| download | nixpkgs-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.nix | 31 |
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" |
