[OE-core] [PATCH] recipetool: support python3 instead of python2
Burton, Ross
ross.burton at intel.com
Fri Jun 7 08:35:34 UTC 2019
My first thought was "won't this break the test" but then I discovered
that there's no test.
Would you be able to write a small test for this, along the lines of
test_recipetool_create_*() in
meta/lib/oeqa/selftest/cases/recipetool.py?
Ross
On Fri, 7 Jun 2019 at 08:56, Maciej Pijanowski
<maciej.pijanowski at 3mdeb.com> wrote:
>
> Add support for generating python3 recipes using the recipetool / devtool.
> Drop python2 support at the same time.
>
> Tested with:
>
> devtool add --also-native python3-python-magic \
> https://files.pythonhosted.org/packages/84/30/\
> 80932401906eaf787f2e9bd86dc458f1d2e75b064b4c187341f29516945c/\
> python-magic-0.4.15.tar.gz
>
> No python2 dependencies were pulled in
>
> Fixes Bug 13264
>
> Signed-off-by: Maciej Pijanowski <maciej.pijanowski at 3mdeb.com>
> ---
> scripts/lib/recipetool/create_buildsys_python.py | 22 +++++++++++-----------
> 1 file changed, 11 insertions(+), 11 deletions(-)
>
> diff --git a/scripts/lib/recipetool/create_buildsys_python.py b/scripts/lib/recipetool/create_buildsys_python.py
> index ec5449bee99f..f24dce23918a 100644
> --- a/scripts/lib/recipetool/create_buildsys_python.py
> +++ b/scripts/lib/recipetool/create_buildsys_python.py
> @@ -41,11 +41,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 = {
> @@ -225,9 +225,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):
> @@ -292,7 +292,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()
> @@ -303,7 +303,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)))
> @@ -364,7 +364,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)
> @@ -398,7 +398,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()
> @@ -535,7 +535,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')
> --
> 2.7.4
>
> --
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core at lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core
More information about the Openembedded-core
mailing list