From 0443b98ab3aa88d5eb7ff231781d679be89868e8 Mon Sep 17 00:00:00 2001 From: sternenseemann Date: Fri, 24 Oct 2025 23:48:17 +0200 Subject: [PATCH] buildPython*: unconditionally add .override To be able to splice, we can't fail to eval before returning an attribute set. By checking for f ? override, we need to force f which isn't always possible, whereas mirrorFunctionArgs serves as an indirection which wraps the inner thunks in an attribute set that can always be returned. Fortunately, there should be no case when f evaluates successfully and does not have the override attribute, so we can just remove the condition. This fixes evaluation of buildPython* based packages in certain splicing situations by being lazier. An example of this is pkgsCross.ghcjs.buildPackages.nixpkgs-openjdk-updater on staging right now (ff5098e). --- pkgs/development/interpreters/python/python-packages-base.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/development/interpreters/python/python-packages-base.nix b/pkgs/development/interpreters/python/python-packages-base.nix index 19a46dc7ee74f..e3a92bef52f35 100644 --- a/pkgs/development/interpreters/python/python-packages-base.nix +++ b/pkgs/development/interpreters/python/python-packages-base.nix @@ -39,7 +39,7 @@ let else result ) - // lib.optionalAttrs (f ? override) { + // { # Support overriding `f` itself, e.g. `buildPythonPackage.override { }`. # Ensure `makeOverridablePythonPackage` is applied to the result. override = lib.mirrorFunctionArgs f.override (fdrv: makeOverridablePythonPackage (f.override fdrv));