From 4386bbdf0895dbb35e02c25f42603bae9af64451 Mon Sep 17 00:00:00 2001 From: Romain Naour Date: Thu, 24 Feb 2022 16:41:18 +0100 Subject: [PATCH] package/pkg-python: use SETUPTOOLS_USE_DISTUTILS=stdlib # ipython -c 'import math; math.floor(12.3)' -sh: ipython: not found ipython use a wrong shebang on the target: # head -n 1 /usr/bin/ipython #!/home/kubu/buildroot/testsuite-master/TestIPythonPy3/host/bin/python The issue come from python3-setuptools 60.0.0 that changed SETUPTOOLS_USE_DISTUTILS default value from stdlib to local [1] to use its local copy of distutils. This is actually a "breaking" change [2]. We have to override SETUPTOOLS_USE_DISTUTILS to the previous value "stdlib" to fixes the issue. While at it, use distutils from stdlib for the host. Fixes: https://gitlab.com/buildroot.org/buildroot/-/jobs/2088684091 [1] https://github.com/pypa/setuptools/commit/b6fcbbd00cb6d5607c9272dec452a50457bdb292 [2] https://github.com/pypa/setuptools/blob/v60.0.0/CHANGES.rst#breaking-changes Signed-off-by: Romain Naour Cc: James Hilliard Signed-off-by: Peter Korsgaard --- package/pkg-python.mk | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/package/pkg-python.mk b/package/pkg-python.mk index b8dc9cd9e5..e81a1a3102 100644 --- a/package/pkg-python.mk +++ b/package/pkg-python.mk @@ -40,6 +40,7 @@ PKG_PYTHON_DISTUTILS_ENV = \ LDSHARED="$(TARGET_CROSS)gcc -shared" \ PYTHONPATH="$(PYTHON3_PATH)" \ PYTHONNOUSERSITE=1 \ + SETUPTOOLS_USE_DISTUTILS=stdlib \ _PYTHON_HOST_PLATFORM="$(PKG_PYTHON_HOST_PLATFORM)" \ _PYTHON_PROJECT_BASE="$(PYTHON3_DIR)" \ _PYTHON_SYSCONFIGDATA_NAME="$(PKG_PYTHON_SYSCONFIGDATA_NAME)" \ @@ -62,6 +63,7 @@ PKG_PYTHON_DISTUTILS_INSTALL_STAGING_OPTS = \ HOST_PKG_PYTHON_DISTUTILS_ENV = \ PATH=$(BR_PATH) \ PYTHONNOUSERSITE=1 \ + SETUPTOOLS_USE_DISTUTILS=stdlib \ $(HOST_CONFIGURE_OPTS) HOST_PKG_PYTHON_DISTUTILS_INSTALL_OPTS = \ @@ -76,6 +78,7 @@ PKG_PYTHON_SETUPTOOLS_ENV = \ $(TARGET_CONFIGURE_OPTS) \ PYTHONPATH="$(PYTHON3_PATH)" \ PYTHONNOUSERSITE=1 \ + SETUPTOOLS_USE_DISTUTILS=stdlib \ _python_sysroot=$(STAGING_DIR) \ _python_prefix=/usr \ _python_exec_prefix=/usr @@ -96,6 +99,7 @@ PKG_PYTHON_SETUPTOOLS_INSTALL_STAGING_OPTS = \ HOST_PKG_PYTHON_SETUPTOOLS_ENV = \ PATH=$(BR_PATH) \ PYTHONNOUSERSITE=1 \ + SETUPTOOLS_USE_DISTUTILS=stdlib \ $(HOST_CONFIGURE_OPTS) HOST_PKG_PYTHON_SETUPTOOLS_INSTALL_OPTS = \