[OE-core] [PATCH] recipetool: support python3 instead of python2
Maciej Pijanowski
maciej.pijanowski at 3mdeb.com
Fri Jun 7 08:45:52 UTC 2019
On 07.06.2019 10:35, Burton, Ross wrote:
> 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?
Sure, I will try that. I haven't been contributing to the QA parts yet.
Is there any documentation / guidelines I should refer to?
Or looking at other test cases should be enough to get it done?
>
> 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
--
Maciej Pijanowski
Embedded Systems Engineer
https://3mdeb.com | @3mdeb_com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 801 bytes
Desc: OpenPGP digital signature
URL: <http://lists.openembedded.org/pipermail/openembedded-core/attachments/20190607/fd3fbc2e/attachment-0001.sig>
More information about the Openembedded-core
mailing list