From 1f56155e91da2030ee0a5e93037c62e1349ba89f Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Sun, 27 Nov 2022 17:08:42 +0000 Subject: base: Switch to use addpylib directive and BB_GLOBAL_PYMODULES Since bitbake now supports an official method to inject python modules, switch to it. Anyone using OE_EXTRA_IMPORTS will need to adjust their code accordingly, probably switching to their own module namespace. Also switch to using BB_GLOBAL_PYMODULES to list the global modules to import. Signed-off-by: Richard Purdie --- meta-selftest/conf/layer.conf | 2 ++ meta/classes-global/base.bbclass | 23 ----------------------- meta/conf/layer.conf | 5 +++++ meta/lib/oe/__init__.py | 4 ++++ 4 files changed, 11 insertions(+), 23 deletions(-) diff --git a/meta-selftest/conf/layer.conf b/meta-selftest/conf/layer.conf index 0899806029..889c056eb6 100644 --- a/meta-selftest/conf/layer.conf +++ b/meta-selftest/conf/layer.conf @@ -9,4 +9,6 @@ BBFILE_COLLECTIONS += "selftest" BBFILE_PATTERN_selftest = "^${LAYERDIR}/" BBFILE_PRIORITY_selftest = "5" +addpylib ${LAYERDIR}/lib oeqa + LAYERSERIES_COMPAT_selftest = "kirkstone langdale" diff --git a/meta/classes-global/base.bbclass b/meta/classes-global/base.bbclass index c81aa51ef3..c4ac43c569 100644 --- a/meta/classes-global/base.bbclass +++ b/meta/classes-global/base.bbclass @@ -15,31 +15,8 @@ inherit utils inherit utility-tasks inherit logging -OE_EXTRA_IMPORTS ?= "" - -OE_IMPORTS += "os sys time oe.path oe.utils oe.types oe.package oe.packagegroup oe.sstatesig oe.lsb oe.cachedpath oe.license oe.qa oe.reproducible oe.rust oe.buildcfg ${OE_EXTRA_IMPORTS}" -OE_IMPORTS[type] = "list" - PACKAGECONFIG_CONFARGS ??= "" -def oe_import(d): - import sys - - bbpath = [os.path.join(dir, "lib") for dir in d.getVar("BBPATH").split(":")] - sys.path[0:0] = [dir for dir in bbpath if dir not in sys.path] - - import oe.data - for toimport in oe.data.typed_value("OE_IMPORTS", d): - try: - # Make a python object accessible from the metadata - bb.utils._context[toimport.split(".", 1)[0]] = __import__(toimport) - except AttributeError as e: - bb.error("Error importing OE modules: %s" % str(e)) - return "" - -# We need the oe module name space early (before INHERITs get added) -OE_IMPORTED := "${@oe_import(d)}" - inherit metadata_scm def lsb_distro_identifier(d): diff --git a/meta/conf/layer.conf b/meta/conf/layer.conf index 0ce90355ba..e41ada5d35 100644 --- a/meta/conf/layer.conf +++ b/meta/conf/layer.conf @@ -125,3 +125,8 @@ SSTATE_EXCLUDEDEPS_SYSROOT += ".*->autoconf-archive-native" # Avoid empty path entries BITBAKEPATH := "${@os.path.dirname(bb.utils.which(d.getVar('PATH'),'bitbake'))}" PATH := "${@'${BITBAKEPATH}:' if '${BITBAKEPATH}' != '' else ''}${HOSTTOOLS_DIR}" + +# Only OE-Core should set/change this +BB_GLOBAL_PYMODULES = "os sys time" + +addpylib ${LAYERDIR}/lib oe diff --git a/meta/lib/oe/__init__.py b/meta/lib/oe/__init__.py index 92f002d872..47be7b51d7 100644 --- a/meta/lib/oe/__init__.py +++ b/meta/lib/oe/__init__.py @@ -6,3 +6,7 @@ from pkgutil import extend_path __path__ = extend_path(__path__, __name__) + +BBIMPORTS = ["data", "path", "utils", "types", "package", \ + "packagegroup", "sstatesig", "lsb", "cachedpath", "license", \ + "qa", "reproducible", "rust", "buildcfg"] -- cgit 1.2.3-korg