summaryrefslogtreecommitdiffstats
path: root/scripts
diff options
context:
space:
mode:
authorTim Orling <ticotimo@gmail.com>2022-01-11 11:01:27 -0800
committerRichard Purdie <richard.purdie@linuxfoundation.org>2022-01-12 21:05:28 +0000
commit619a3eb1266459daf16e10386113e9201fbf9cf5 (patch)
tree1f9bd7dcdf80db453de3b33344273f5df4e051fc /scripts
parent74ed892dbcc074ba7208f3c5bf1d7c094fbcb5e3 (diff)
downloadopenembedded-core-contrib-619a3eb1266459daf16e10386113e9201fbf9cf5.tar.gz
recipetool/create_buildsys_python.py: less distutils
'distutils' is deprecated in Python 3.10 with removal in Python 3.12 (~October 2023). Replace 'distutils.command.build_py' with 'setuptools.command.build_py'. To avoid an AttributeError, we call super().__init__() which provides the missing 'distribution' attribute. However, for some reason, __init__() in 'setuptools.command.build_py.build_py' class requires a 'dist' positional argument which must be a 'Distribution' instance. It is not clear why 'distutils.command.build_py.build_py' class does not require this. There is still a check which decides to inherit setuptools3 vs distutils3 that will need to be refactored when we add pyproject.toml and setup.cfg support for more modern PEP 517 packaging. Once distutils3.bbclass is dropped, any recipe inheriting distutils3 will throw a parsing error. The plan is to move distutils*.bbclasses to meta-python. However if meta-python is not in bblayers, the parsing error would still occur. [YOCTO #14610] Signed-off-by: Tim Orling <tim.orling@konsulko.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'scripts')
-rw-r--r--scripts/lib/recipetool/create_buildsys_python.py8
1 files changed, 6 insertions, 2 deletions
diff --git a/scripts/lib/recipetool/create_buildsys_python.py b/scripts/lib/recipetool/create_buildsys_python.py
index 0b6b042ed1..1a15011687 100644
--- a/scripts/lib/recipetool/create_buildsys_python.py
+++ b/scripts/lib/recipetool/create_buildsys_python.py
@@ -8,7 +8,7 @@
import ast
import codecs
import collections
-import distutils.command.build_py
+import setuptools.command.build_py
import email
import imp
import glob
@@ -459,9 +459,13 @@ class PythonRecipeHandler(RecipeHandler):
else:
package_dir = {}
- class PackageDir(distutils.command.build_py.build_py):
+ dist = setuptools.Distribution()
+
+ class PackageDir(setuptools.command.build_py.build_py):
def __init__(self, package_dir):
self.package_dir = package_dir
+ self.dist = dist
+ super().__init__(self.dist)
pd = PackageDir(package_dir)
to_scan = []