From bb3a41f312d0a25779a544935440f9a9897071da Mon Sep 17 00:00:00 2001 From: Yueh-Shun Li Date: Mon, 3 Feb 2025 05:21:37 +0800 Subject: [PATCH] buildPython*: fix the disabled functionality for overrideAttrs- --- .../python/mk-python-derivation.nix | 20 ++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/pkgs/development/interpreters/python/mk-python-derivation.nix b/pkgs/development/interpreters/python/mk-python-derivation.nix index 09d2e52d276a1..53a45d2ff9108 100644 --- a/pkgs/development/interpreters/python/mk-python-derivation.nix +++ b/pkgs/development/interpreters/python/mk-python-derivation.nix @@ -452,11 +452,21 @@ let # This derivation transformation function must be independent to `attrs` # for fixed-point arguments support in the future. transformDrv = - drv: - extendDerivation ( - drv.disabled - -> throw "${removePrefix namePrefix drv.name} not supported for interpreter ${python.executable}" - ) { } (toPythonModule drv); + let + # Workaround to make the `lib.extendDerivation`-based disabled functionality + # respect `.overrideAttrs` + # It doesn't cover `..overrideAttrs`. + disablePythonPackage = + drv: + extendDerivation ( + drv.disabled + -> throw "${removePrefix namePrefix drv.name} not supported for interpreter ${python.executable}" + ) { } drv + // { + overrideAttrs = fdrv: disablePythonPackage (drv.overrideAttrs fdrv); + }; + in + drv: disablePythonPackage (toPythonModule drv); in transformDrv self