From a05b9af428e6ee28280c962f42b335b060d54cbd Mon Sep 17 00:00:00 2001 From: aleksana Date: Mon, 22 Dec 2025 22:25:12 +0800 Subject: [PATCH 1/2] python3: expose all splices for use with hooks --- pkgs/development/interpreters/python/passthrufun.nix | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/pkgs/development/interpreters/python/passthrufun.nix b/pkgs/development/interpreters/python/passthrufun.nix index 451292d198e97..8b930de5f3945 100644 --- a/pkgs/development/interpreters/python/passthrufun.nix +++ b/pkgs/development/interpreters/python/passthrufun.nix @@ -141,7 +141,13 @@ rec { pythonAtLeast = lib.versionAtLeast pythonVersion; pythonOlder = lib.versionOlder pythonVersion; inherit hasDistutilsCxxPatch; - inherit pythonOnBuildForHost; + inherit + pythonOnBuildForBuild + pythonOnBuildForHost + pythonOnBuildForTarget + pythonOnHostForHost + pythonOnTargetForTarget + ; inherit pythonABITags; tests = callPackage ./tests.nix { From 956686248551ea0f1e40495e4e642d8c8e46dfe1 Mon Sep 17 00:00:00 2001 From: aleksana Date: Mon, 22 Dec 2025 22:25:26 +0800 Subject: [PATCH 2/2] python3Packages.setuptools-rust: fix python version inconsistency --- .../setuptools-rust/default.nix | 21 +++++++------------ 1 file changed, 7 insertions(+), 14 deletions(-) diff --git a/pkgs/development/python-modules/setuptools-rust/default.nix b/pkgs/development/python-modules/setuptools-rust/default.nix index cb4984d2852cc..0ccf20709c5db 100644 --- a/pkgs/development/python-modules/setuptools-rust/default.nix +++ b/pkgs/development/python-modules/setuptools-rust/default.nix @@ -13,6 +13,7 @@ setuptools-rust, setuptools-scm, replaceVars, + python, targetPackages, }: buildPythonPackage rec { @@ -44,20 +45,12 @@ buildPythonPackage rec { # integrate the setup hook to set up the build environment for cross compilation # this hook is automatically propagated to consumers using setuptools-rust as build-system - # - # Only include the setup hook if targetPackages.python3 is defined. - # targetPackages.python3 is not always available, for example when including - # setuptools-rust via buildInputs instead of nativeBuildInputs or building it directly. - setupHook = - if !(targetPackages ? python3) then - null - else - replaceVars ./setuptools-rust-hook.sh { - pyLibDir = "${targetPackages.python3}/lib/${targetPackages.python3.libPrefix}"; - cargoBuildTarget = stdenv.targetPlatform.rust.rustcTargetSpec; - cargoLinkerVar = stdenv.targetPlatform.rust.cargoEnvVarTarget; - targetLinker = "${targetPackages.stdenv.cc}/bin/${targetPackages.stdenv.cc.targetPrefix}cc"; - }; + setupHook = replaceVars ./setuptools-rust-hook.sh { + pyLibDir = "${python.pythonOnTargetForTarget}/lib/${python.pythonOnTargetForTarget.libPrefix}"; + cargoBuildTarget = stdenv.targetPlatform.rust.rustcTargetSpec; + cargoLinkerVar = stdenv.targetPlatform.rust.cargoEnvVarTarget; + targetLinker = "${targetPackages.stdenv.cc}/bin/${targetPackages.stdenv.cc.targetPrefix}cc"; + }; passthru.tests = { pyo3 = maturin.tests.pyo3.override {