summary refs log tree commit diff
diff options
context:
space:
mode:
authorRobert Hensing <roberth@users.noreply.github.com>2022-05-29 10:53:31 +0200
committerGitHub <noreply@github.com>2022-05-29 10:53:31 +0200
commite8e9cebbda8fa71089a4d707605aafa3591236e6 (patch)
tree27ae25d1f77842f7c8f854c71a73a22a222c6d99
parent1bd2c1f8ffc35490d93ff31aedc8f553cef05e41 (diff)
parent1a7c0eac1572f56afa970e5fe6493b85cecf51a5 (diff)
downloadnixpkgs-e8e9cebbda8fa71089a4d707605aafa3591236e6.tar
nixpkgs-e8e9cebbda8fa71089a4d707605aafa3591236e6.tar.gz
nixpkgs-e8e9cebbda8fa71089a4d707605aafa3591236e6.tar.bz2
nixpkgs-e8e9cebbda8fa71089a4d707605aafa3591236e6.tar.lz
nixpkgs-e8e9cebbda8fa71089a4d707605aafa3591236e6.tar.xz
nixpkgs-e8e9cebbda8fa71089a4d707605aafa3591236e6.tar.zst
nixpkgs-e8e9cebbda8fa71089a4d707605aafa3591236e6.zip
Merge pull request #175265 from hercules-ci/issue-175196
Fix issue #175196, infinite recursion in pkgs/config.nix
-rw-r--r--pkgs/test/config.nix21
-rw-r--r--pkgs/test/default.nix2
-rw-r--r--pkgs/top-level/config.nix2
3 files changed, 24 insertions, 1 deletions
diff --git a/pkgs/test/config.nix b/pkgs/test/config.nix
new file mode 100644
index 00000000000..6047b013206
--- /dev/null
+++ b/pkgs/test/config.nix
@@ -0,0 +1,21 @@
+{ lib, ... }:
+lib.recurseIntoAttrs {
+
+  # https://github.com/NixOS/nixpkgs/issues/175196
+  allowPkgsInPermittedInsecurePackages =
+    let pkgs = import ../.. {
+          config = {
+            permittedInsecurePackages =
+              tempAllow pkgs.authy "2.1.0" [ "electron-9.4.4" ];
+          };
+        };
+        # Allow with forgetting
+        tempAllow = p: v: pa:
+          lib.optionals (lib.assertMsg (p.version == v) "${p.name} is no longer at version ${v}, consider removing the tempAllow") pa;
+        # For this test we don't _really_ care about the version though,
+        # only about evaluation strictness
+        tempAllowAlike = p: v: pa: builtins.seq v builtins.seq p.version pa;
+
+    in pkgs.hello;
+
+}
diff --git a/pkgs/test/default.nix b/pkgs/test/default.nix
index ab235d61002..48bd6ac7746 100644
--- a/pkgs/test/default.nix
+++ b/pkgs/test/default.nix
@@ -22,6 +22,8 @@ with pkgs;
   cc-wrapper-libcxx-9 = callPackage ./cc-wrapper { stdenv = llvmPackages_9.libcxxStdenv; };
   stdenv-inputs = callPackage ./stdenv-inputs { };
 
+  config = callPackage ./config.nix { };
+
   haskell = callPackage ./haskell { };
 
   cc-multilib-gcc = callPackage ./cc-wrapper/multilib.nix { stdenv = gccMultiStdenv; };
diff --git a/pkgs/top-level/config.nix b/pkgs/top-level/config.nix
index ad06227e74f..e038973e085 100644
--- a/pkgs/top-level/config.nix
+++ b/pkgs/top-level/config.nix
@@ -128,7 +128,7 @@ let
 in {
 
   freeformType =
-    let t = lib.types.attrsOf lib.types.raw;
+    let t = lib.types.lazyAttrsOf lib.types.raw;
     in t // {
       merge = loc: defs:
         let r = t.merge loc defs;