From bd8250ab9611e14e669d32f0dda2215957f000fd Mon Sep 17 00:00:00 2001 From: Eman Resu <78693624+quatquatt@users.noreply.github.com> Date: Mon, 25 May 2026 21:51:56 -0400 Subject: [PATCH] stdenv/problems: use early knowledge of allowBroken and allowBrokenPredicate (cherry picked from commit 5616e3d9255badfaf9ad1940659b9ac6342d01e3) --- pkgs/stdenv/generic/problems.nix | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/pkgs/stdenv/generic/problems.nix b/pkgs/stdenv/generic/problems.nix index 04d190471ee1..6dac3163abe1 100644 --- a/pkgs/stdenv/generic/problems.nix +++ b/pkgs/stdenv/generic/problems.nix @@ -121,14 +121,16 @@ rec { allowBroken = config.allowBroken || builtins.getEnv "NIXPKGS_ALLOW_BROKEN" == "1"; allowBrokenPredicate = - if config ? allowBrokenPredicate then - lib.warnIf (lib.oldestSupportedReleaseIsAtLeast 2605) - "config.allowBrokenPredicate is deprecated, use config.problems.handlers.myPackage.broken = \"warn\" for individual packages instead." - config.allowBrokenPredicate - else - x: false; + lib.warnIf (lib.oldestSupportedReleaseIsAtLeast 2605) + "config.allowBrokenPredicate is deprecated, use config.problems.handlers.myPackage.broken = \"warn\" for individual packages instead." + config.allowBrokenPredicate; in - attrs: attrs.meta.broken or false && !allowBroken && !allowBrokenPredicate attrs; + if allowBroken then + attrs: false + else if config ? allowBrokenPredicate then + attrs: attrs.meta.broken or false && !allowBrokenPredicate attrs + else + attrs: attrs.meta.broken or false; value.message = "This package is broken."; } ];