From e05528c65f1c1128e8269df0281560bbc88f0d20 Mon Sep 17 00:00:00 2001 From: Yueh-Shun Li Date: Thu, 23 Oct 2025 05:45:44 +0800 Subject: [PATCH] buildPython*: warn about deprecated argument stdenv On Nixpkgs >= 26.05 (or precisely, oldest supported release >= 25.11), warn about the use of buildPython*'s deprecated argument `stdenv`. Co-authored-by: Matt Sturgeon --- .../interpreters/python/python-packages-base.nix | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/pkgs/development/interpreters/python/python-packages-base.nix b/pkgs/development/interpreters/python/python-packages-base.nix index 1c3b4d309523..19a46dc7ee74 100644 --- a/pkgs/development/interpreters/python/python-packages-base.nix +++ b/pkgs/development/interpreters/python/python-packages-base.nix @@ -50,8 +50,10 @@ let lib.setFunctionArgs ( args: if !(lib.isFunction args) && (args ? stdenv) then - # TODO: warn that `args ? stdenv` is deprecated (once in-tree usage is migrated) - f.override { stdenv = args.stdenv; } args + lib.warnIf (lib.oldestSupportedReleaseIsAtLeast 2511) '' + Passing `stdenv` directly to `buildPythonPackage` or `buildPythonApplication` is deprecated. You should use their `.override` function instead, e.g: + buildPythonPackage.override { stdenv = customStdenv; } { } + '' (f.override { stdenv = args.stdenv; } args) else f args ) (removeAttrs (lib.functionArgs f) [ "stdenv" ])