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 <bernd@kuhls.net>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
This commit is contained in:
Bernd Kuhls 2023-08-09 20:19:25 +02:00 committed by Thomas Petazzoni
parent 4befd0b325
commit 6cfb3efaaf
2 changed files with 43 additions and 5 deletions

View File

@ -0,0 +1,38 @@
From cf3541b8a7ed50782edd05836020d31230fb86c6 Mon Sep 17 00:00:00 2001
From: Ross Burton <ross.burton@arm.com>
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 <ross.burton@arm.com>
Signed-off-by: Jean Delvare <jdelvare@suse.de>
Upstream: https://git.kernel.org/pub/scm/utils/i2c-tools/i2c-tools.git/commit/?id=cf3541b8a7ed50782edd05836020d31230fb86c6
Signed-off-by: Bernd Kuhls <bernd@kuhls.net>
---
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

View File

@ -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