[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