From 75c0545aec9fa42282dffe6ee1984871a6c95bd0 Mon Sep 17 00:00:00 2001 From: aleksana Date: Thu, 25 Dec 2025 21:00:59 +0800 Subject: [PATCH] python3Packages.setuptools-rust: add back splice fix --- .../setuptools-rust/default.nix | 20 +++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/pkgs/development/python-modules/setuptools-rust/default.nix b/pkgs/development/python-modules/setuptools-rust/default.nix index 0ccf20709c5d..a4f2997eac7c 100644 --- a/pkgs/development/python-modules/setuptools-rust/default.nix +++ b/pkgs/development/python-modules/setuptools-rust/default.nix @@ -45,12 +45,20 @@ 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 - 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"; - }; + # + # Only include the setup hook if python.pythonOnTargetForTarget is not empty. + # python.pythonOnTargetForTarget is not always available, for example in + # pkgsLLVM.python3.pythonOnTargetForTarget. cross build with pkgsLLVM should not be affected. + setupHook = + if python.pythonOnTargetForTarget == { } then + null + else + 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 {