From d5a9a624062d065e0328c13cae42fa05bc2b2d1e Mon Sep 17 00:00:00 2001 From: Gaetan Lepage Date: Tue, 24 Jun 2025 18:59:33 +0200 Subject: [PATCH] python3Packages.mmcv: fix on python 3.13 --- pkgs/development/python-modules/mmcv/default.nix | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/pkgs/development/python-modules/mmcv/default.nix b/pkgs/development/python-modules/mmcv/default.nix index 3f7b5f9f4ce9..cc9efa952bf3 100644 --- a/pkgs/development/python-modules/mmcv/default.nix +++ b/pkgs/development/python-modules/mmcv/default.nix @@ -48,10 +48,17 @@ buildPythonPackage rec { hash = "sha256-NNF9sLJWV1q6uBE73LUW4UWwYm4TBMTBJjJkFArBmsc="; }; - postPatch = '' - substituteInPlace setup.py \ - --replace-fail "cpu_use = 4" "cpu_use = $NIX_BUILD_CORES" - ''; + postPatch = + # Fails in python >= 3.13 + # exec(compile(f.read(), version_file, "exec")) does not populate the locals() namesp + # In python 3.13, the locals() dictionary in a function does not automatically update with + # changes made by exec(). + # https://peps.python.org/pep-0558/ + '' + substituteInPlace setup.py \ + --replace-fail "cpu_use = 4" "cpu_use = $NIX_BUILD_CORES" \ + --replace-fail "return locals()['__version__']" "return '${version}'" + ''; nativeBuildInputs = [ ninja