summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRobert Hensing <roberth@users.noreply.github.com>2023-11-13 10:47:23 +0100
committerGitHub <noreply@github.com>2023-11-13 10:47:23 +0100
commit93cb2c2a9257ab39d4927fdcfbfc2abe77e56a12 (patch)
treef1a403a7ed623467eac62d8d7cab5d75da6ec233
parent605b466982bf07dc1084199fb71519a2f94e1b5f (diff)
parent4105d387f4ea4c166713107d4373f9a7903dff79 (diff)
Merge pull request #266347 from hercules-ci/nix-check-fallback-paths
`nix`: check fallback paths
-rw-r--r--pkgs/tools/package-management/nix/default.nix34
1 files changed, 33 insertions, 1 deletions
diff --git a/pkgs/tools/package-management/nix/default.nix b/pkgs/tools/package-management/nix/default.nix
index 0b80cd531d43..2bf354fbc69f 100644
--- a/pkgs/tools/package-management/nix/default.nix
+++ b/pkgs/tools/package-management/nix/default.nix
@@ -7,6 +7,7 @@
, fetchurl
, fetchpatch
, fetchpatch2
+, runCommand
, Security
, storeDir ? "/nix/store"
@@ -112,6 +113,37 @@ let
hash = "sha256-s1ybRFCjQaSGj7LKu0Z5g7UiHqdJGeD+iPoQL0vaiS0=";
};
+ # Intentionally does not support overrideAttrs etc
+ # Use only for tests that are about the package relation to `pkgs` and/or NixOS.
+ addTestsShallowly = tests: pkg: pkg // {
+ tests = pkg.tests // tests;
+ # In case someone reads the wrong attribute
+ passthru.tests = pkg.tests // tests;
+ };
+
+ addFallbackPathsCheck = pkg: addTestsShallowly
+ { nix-fallback-paths =
+ runCommand "test-nix-fallback-paths-version-equals-nix-stable" {
+ paths = lib.concatStringsSep "\n" (builtins.attrValues (import ../../../../nixos/modules/installer/tools/nix-fallback-paths.nix));
+ } ''
+ if [[ "" != $(grep -v 'nix-${pkg.version}$' <<< "$paths") ]]; then
+ echo "nix-fallback-paths not up to date with nixVersions.stable (nix-${pkg.version})"
+ echo "The following paths are not up to date:"
+ grep -v 'nix-${pkg.version}$' <<< "$paths"
+ echo
+ echo "Fix it by running in nixpkgs:"
+ echo
+ echo "curl https://releases.nixos.org/nix/nix-${pkg.version}/fallback-paths.nix >nixos/modules/installer/tools/nix-fallback-paths.nix"
+ echo
+ exit 1
+ else
+ echo "nix-fallback-paths versions up to date"
+ touch $out
+ fi
+ '';
+ }
+ pkg;
+
in lib.makeExtensible (self: ({
nix_2_3 = (common rec {
version = "2.3.16";
@@ -203,7 +235,7 @@ in lib.makeExtensible (self: ({
else
nix;
- stable = self.nix_2_18;
+ stable = addFallbackPathsCheck self.nix_2_18;
unstable = self.nix_2_18;
} // lib.optionalAttrs config.allowAliases {