python-setuptools: re-introduce patch from python3
authorAlexandru Ardelean <redacted>
Fri, 3 Apr 2026 18:45:38 +0000 (21:45 +0300)
committerAlexandru Ardelean <redacted>
Sun, 5 Apr 2026 12:03:06 +0000 (15:03 +0300)
When Python3 was updated via commit 97a92f2e7 , distutils was
disappeared from Python3 and moved to setuptools.
So that patch should have moved here as well.

This should fix all packages which still use the 'build_ext'
module from setuptools.

Signed-off-by: Alexandru Ardelean <redacted>
lang/python/python-setuptools/Makefile
lang/python/python-setuptools/patches/0001-distutils-use-python-sysroot.patch [new file with mode: 0644]

index 630ceff21f2634b1721be253375a3e959bc9499a..5c530757c2fe4954271276ccbd9a15f7ca3240e9 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=python-setuptools
 PKG_VERSION:=82.0.1
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PYPI_NAME:=setuptools
 PKG_HASH:=7d872682c5d01cfde07da7bccc7b65469d3dca203318515ada1de5eda35efbf9
diff --git a/lang/python/python-setuptools/patches/0001-distutils-use-python-sysroot.patch b/lang/python/python-setuptools/patches/0001-distutils-use-python-sysroot.patch
new file mode 100644 (file)
index 0000000..88b732f
--- /dev/null
@@ -0,0 +1,64 @@
+From e359a7a3c4f9e70360a068bef19c95938fdacede Mon Sep 17 00:00:00 2001
+From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+Date: Wed, 23 Dec 2015 11:33:14 +0100
+Subject: [PATCH] Adjust library/header paths for cross-compilation
+
+When cross-compiling third-party extensions, the get_python_inc() or
+get_python_lib() can be called, to return the path to headers or
+libraries. However, they use the sys.prefix of the host Python, which
+returns incorrect paths when cross-compiling (paths pointing to host
+headers and libraries).
+
+In order to fix this, we introduce the _python_sysroot, _python_prefix
+and _python_exec_prefix variables, that allow to override these
+values, and get correct header/library paths when cross-compiling
+third-party Python modules.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+---
+ setuptools/_distutils/command/build_ext.py |  5 ++++-
+ setuptools/_distutils/sysconfig.py         | 15 +++++++++++----
+ 2 files changed, 15 insertions(+), 5 deletions(-)
+
+diff --git a/setuptools/_distutils/command/build_ext.py b/setuptools/_distutils/command/build_ext.py
+index df623d7..068bc6b 100644
+--- a/setuptools/_distutils/command/build_ext.py
++++ b/setuptools/_distutils/command/build_ext.py
+@@ -156,7 +156,10 @@ class build_ext(Command):
+             yield os.path.join(installed_dir, lib_dir)
+         else:
+             # building third party extensions
+-            yield sysconfig.get_config_var('LIBDIR')
++            libdir = sysconfig.get_config_var('LIBDIR')
++            if "_python_sysroot" in os.environ:
++                libdir = os.environ.get("_python_sysroot") + libdir
++            yield libdir 
+     def finalize_options(self) -> None:  # noqa: C901
+         from distutils import sysconfig
+diff --git a/setuptools/_distutils/sysconfig.py b/setuptools/_distutils/sysconfig.py
+index 7ddc869..7bd2fa9 100644
+--- a/setuptools/_distutils/sysconfig.py
++++ b/setuptools/_distutils/sysconfig.py
+@@ -37,10 +37,17 @@ else:
+ IS_PYPY = '__pypy__' in sys.builtin_module_names
+ # These are needed in a couple of spots, so just compute them once.
+-PREFIX = os.path.normpath(sys.prefix)
+-EXEC_PREFIX = os.path.normpath(sys.exec_prefix)
+-BASE_PREFIX = os.path.normpath(sys.base_prefix)
+-BASE_EXEC_PREFIX = os.path.normpath(sys.base_exec_prefix)
++if "_python_sysroot" in os.environ:
++    _sysroot=os.environ.get('_python_sysroot')
++    PREFIX = os.path.normpath(_sysroot + os.environ.get('_python_prefix'))
++    EXEC_PREFIX = os.path.normpath(_sysroot + os.environ.get('_python_exec_prefix'))
++    BASE_PREFIX = PREFIX
++    BASE_EXEC_PREFIX = EXEC_PREFIX
++else:
++    PREFIX = os.path.normpath(sys.prefix)
++    EXEC_PREFIX = os.path.normpath(sys.exec_prefix)
++    BASE_PREFIX = os.path.normpath(sys.base_prefix)
++    BASE_EXEC_PREFIX = os.path.normpath(sys.base_exec_prefix)
+ # Path to the base directory of the project. On Windows the binary may
+ # live in project/PCbuild/win32 or project/PCbuild/amd64.
git clone https://git.99rst.org/PROJECT