mirror of
https://git.yoctoproject.org/poky
synced 2026-04-04 14:02:22 +02:00
recipetool: add python3 support
Add support for generating python3 recipes using the recipetool / devtool. Drop python2 support at the same time. Tested with: oe-selftest -r recipetool.RecipetoolTest [YOCTO #13264] (From OE-Core rev: d8b2f58974482b3b1ccc65c5f93104d0d7ba87bc) Signed-off-by: Maciej Pijanowski <maciej.pijanowski@3mdeb.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
0e4c79a7c4
commit
bb59bcd016
@@ -31,11 +31,11 @@ def tinfoil_init(instance):
|
||||
|
||||
|
||||
class PythonRecipeHandler(RecipeHandler):
|
||||
base_pkgdeps = ['python-core']
|
||||
excluded_pkgdeps = ['python-dbg']
|
||||
# os.path is provided by python-core
|
||||
base_pkgdeps = ['python3-core']
|
||||
excluded_pkgdeps = ['python3-dbg']
|
||||
# os.path is provided by python3-core
|
||||
assume_provided = ['builtins', 'os.path']
|
||||
# Assumes that the host python builtin_module_names is sane for target too
|
||||
# Assumes that the host python3 builtin_module_names is sane for target too
|
||||
assume_provided = assume_provided + list(sys.builtin_module_names)
|
||||
|
||||
bbvar_map = {
|
||||
@@ -215,9 +215,9 @@ class PythonRecipeHandler(RecipeHandler):
|
||||
self.apply_info_replacements(info)
|
||||
|
||||
if uses_setuptools:
|
||||
classes.append('setuptools')
|
||||
classes.append('setuptools3')
|
||||
else:
|
||||
classes.append('distutils')
|
||||
classes.append('distutils3')
|
||||
|
||||
if license_str:
|
||||
for i, line in enumerate(lines_before):
|
||||
@@ -282,7 +282,7 @@ class PythonRecipeHandler(RecipeHandler):
|
||||
for feature, feature_reqs in extras_req.items():
|
||||
unmapped_deps.difference_update(feature_reqs)
|
||||
|
||||
feature_req_deps = ('python-' + r.replace('.', '-').lower() for r in sorted(feature_reqs))
|
||||
feature_req_deps = ('python3-' + r.replace('.', '-').lower() for r in sorted(feature_reqs))
|
||||
lines_after.append('PACKAGECONFIG[{}] = ",,,{}"'.format(feature.lower(), ' '.join(feature_req_deps)))
|
||||
|
||||
inst_reqs = set()
|
||||
@@ -293,7 +293,7 @@ class PythonRecipeHandler(RecipeHandler):
|
||||
if inst_reqs:
|
||||
unmapped_deps.difference_update(inst_reqs)
|
||||
|
||||
inst_req_deps = ('python-' + r.replace('.', '-').lower() for r in sorted(inst_reqs))
|
||||
inst_req_deps = ('python3-' + r.replace('.', '-').lower() for r in sorted(inst_reqs))
|
||||
lines_after.append('# WARNING: the following rdepends are from setuptools install_requires. These')
|
||||
lines_after.append('# upstream names may not correspond exactly to bitbake package names.')
|
||||
lines_after.append('RDEPENDS_${{PN}} += "{}"'.format(' '.join(inst_req_deps)))
|
||||
@@ -356,7 +356,7 @@ class PythonRecipeHandler(RecipeHandler):
|
||||
return info, 'setuptools' in imported_modules, non_literals, extensions
|
||||
|
||||
def get_setup_args_info(self, setupscript='./setup.py'):
|
||||
cmd = ['python', setupscript]
|
||||
cmd = ['python3', setupscript]
|
||||
info = {}
|
||||
keys = set(self.bbvar_map.keys())
|
||||
keys |= set(self.setuparg_list_fields)
|
||||
@@ -390,7 +390,7 @@ class PythonRecipeHandler(RecipeHandler):
|
||||
def get_setup_byline(self, fields, setupscript='./setup.py'):
|
||||
info = {}
|
||||
|
||||
cmd = ['python', setupscript]
|
||||
cmd = ['python3', setupscript]
|
||||
cmd.extend('--' + self.setuparg_map.get(f, f.lower()) for f in fields)
|
||||
try:
|
||||
info_lines = self.run_command(cmd, cwd=os.path.dirname(setupscript)).splitlines()
|
||||
@@ -527,7 +527,7 @@ class PythonRecipeHandler(RecipeHandler):
|
||||
pkgdata_dir = tinfoil.config_data.getVar('PKGDATA_DIR')
|
||||
|
||||
ldata = tinfoil.config_data.createCopy()
|
||||
bb.parse.handle('classes/python-dir.bbclass', ldata, True)
|
||||
bb.parse.handle('classes/python3-dir.bbclass', ldata, True)
|
||||
python_sitedir = ldata.getVar('PYTHON_SITEPACKAGES_DIR')
|
||||
|
||||
dynload_dir = os.path.join(os.path.dirname(python_sitedir), 'lib-dynload')
|
||||
|
||||
Reference in New Issue
Block a user