From 6cfb3efaaf743696da02a45dedba49f1afb3b12f Mon Sep 17 00:00:00 2001 From: Bernd Kuhls Date: Wed, 9 Aug 2023 20:19:25 +0200 Subject: [PATCH] package/i2c-tools: switch python support to setuptools In Python 3.12, support for 'distutils' is going to be dropped. In preparation for this, this commit backports an upstream i2c-tools patch that switches the build logic to 'setuptools', future-proofing i2c-tools to the upcoming bump to Python 3.12. Signed-off-by: Bernd Kuhls Signed-off-by: Thomas Petazzoni --- ...-Use-setuptools-instead-of-distutils.patch | 38 +++++++++++++++++++ package/i2c-tools/i2c-tools.mk | 10 ++--- 2 files changed, 43 insertions(+), 5 deletions(-) create mode 100644 package/i2c-tools/0001-py-smbus-Use-setuptools-instead-of-distutils.patch diff --git a/package/i2c-tools/0001-py-smbus-Use-setuptools-instead-of-distutils.patch b/package/i2c-tools/0001-py-smbus-Use-setuptools-instead-of-distutils.patch new file mode 100644 index 0000000000..63b2a7f82f --- /dev/null +++ b/package/i2c-tools/0001-py-smbus-Use-setuptools-instead-of-distutils.patch @@ -0,0 +1,38 @@ +From cf3541b8a7ed50782edd05836020d31230fb86c6 Mon Sep 17 00:00:00 2001 +From: Ross Burton +Date: Wed, 19 Jan 2022 12:08:53 +0100 +Subject: py-smbus: Use setuptools instead of distutils + +As per [1], distutils is deprecated in Python 3.10 and will be removed +entirely in Python 3.12. + +As setuptools is essentially an enhanced version of distutils, it's +trivial to port to that. + +[1] https://docs.python.org/3/whatsnew/3.10.html#distutils-deprecated + +Signed-off-by: Ross Burton +Signed-off-by: Jean Delvare + +Upstream: https://git.kernel.org/pub/scm/utils/i2c-tools/i2c-tools.git/commit/?id=cf3541b8a7ed50782edd05836020d31230fb86c6 + +Signed-off-by: Bernd Kuhls +--- + py-smbus/setup.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/py-smbus/setup.py b/py-smbus/setup.py +index 28a4500..26db33a 100644 +--- a/py-smbus/setup.py ++++ b/py-smbus/setup.py +@@ -1,6 +1,6 @@ + #!/usr/bin/env python + +-from distutils.core import setup, Extension ++from setuptools import setup, Extension + + setup( name="smbus", + version="1.1", +-- +cgit + diff --git a/package/i2c-tools/i2c-tools.mk b/package/i2c-tools/i2c-tools.mk index 5c9ce26628..adccd9475d 100644 --- a/package/i2c-tools/i2c-tools.mk +++ b/package/i2c-tools/i2c-tools.mk @@ -14,7 +14,7 @@ I2C_TOOLS_MAKE_OPTS = EXTRA=eeprog I2C_TOOLS_INSTALL_STAGING = YES ifeq ($(BR2_PACKAGE_PYTHON3),y) -I2C_TOOLS_DEPENDENCIES += python3 +I2C_TOOLS_DEPENDENCIES += host-python-setuptools python3 endif ifeq ($(BR2_STATIC_LIBS),y) @@ -28,23 +28,23 @@ endif # Build/install steps mirror the distutil python package type in the python package # infrastructure ifeq ($(BR2_PACKAGE_PYTHON3),y) -# BASE_ENV taken from PKG_PYTHON_DISTUTILS_ENV in package/pkg-python.mk +# BASE_ENV taken from PKG_PYTHON_SETUPTOOLS_ENV in package/pkg-python.mk I2C_TOOLS_PYTHON_BASE_ENV = \ - $(PKG_PYTHON_DISTUTILS_ENV) \ + $(PKG_PYTHON_SETUPTOOLS_ENV) \ CFLAGS="$(TARGET_CFLAGS) -I../include" define I2C_TOOLS_BUILD_PYSMBUS (cd $(@D)/py-smbus; \ $(I2C_TOOLS_PYTHON_BASE_ENV) \ $(HOST_DIR)/bin/python setup.py build \ - $(PKG_PYTHON_DISTUTILS_BUILD_OPTS)) + $(PKG_PYTHON_SETUPTOOLS_BUILD_OPTS)) endef define I2C_TOOLS_INSTALL_PYSMBUS (cd $(@D)/py-smbus; \ $(I2C_TOOLS_PYTHON_BASE_ENV) \ $(HOST_DIR)/bin/python setup.py install \ - $(PKG_PYTHON_DISTUTILS_INSTALL_TARGET_OPTS)) + $(PKG_PYTHON_SETUPTOOLS_INSTALL_TARGET_OPTS)) endef endif # BR2_PACKAGE_PYTHON3