diff --git a/meta/lib/oe/recipeutils.py b/meta/lib/oe/recipeutils.py index c77664f135..e7dd8afb08 100644 --- a/meta/lib/oe/recipeutils.py +++ b/meta/lib/oe/recipeutils.py @@ -27,16 +27,16 @@ list_vars = ['SRC_URI', 'LIC_FILES_CHKSUM'] meta_vars = ['SUMMARY', 'DESCRIPTION', 'HOMEPAGE', 'BUGTRACKER', 'SECTION'] -def pn_to_recipe(cooker, pn): +def pn_to_recipe(cooker, pn, mc=''): """Convert a recipe name (PN) to the path to the recipe file""" import bb.providers - if pn in cooker.recipecache.pkg_pn: - best = bb.providers.findBestProvider(pn, cooker.data, cooker.recipecache, cooker.recipecache.pkg_pn) + if pn in cooker.recipecaches[mc].pkg_pn: + best = bb.providers.findBestProvider(pn, cooker.data, cooker.recipecaches[mc], cooker.recipecaches[mc].pkg_pn) return best[3] - elif pn in cooker.recipecache.providers: - filenames = cooker.recipecache.providers[pn] - eligible, foundUnique = bb.providers.filterProviders(filenames, pn, cooker.expanded_data, cooker.recipecache) + elif pn in cooker.recipecaches[mc].providers: + filenames = cooker.recipecaches[mc].providers[pn] + eligible, foundUnique = bb.providers.filterProviders(filenames, pn, cooker.expanded_data, cooker.recipecaches[mc]) filename = eligible[0] return filename else: @@ -50,13 +50,14 @@ def get_unavailable_reasons(cooker, pn): return taskdata.get_reasons(pn) -def parse_recipe(fn, appendfiles, d): +def parse_recipe(cooker, fn, appendfiles): """ Parse an individual recipe file, optionally with a list of bbappend files. """ import bb.cache - envdata = bb.cache.Cache.loadDataFull(fn, appendfiles, d) + parser = bb.cache.NoCache(cooker.databuilder) + envdata = parser.loadDataFull(fn, appendfiles) return envdata @@ -79,7 +80,7 @@ def parse_recipe_simple(cooker, pn, d, appends=True): appendfiles = cooker.collection.get_file_appends(recipefile) else: appendfiles = None - return parse_recipe(recipefile, appendfiles, d) + return parse_recipe(cooker, recipefile, appendfiles) def get_var_files(fn, varlist, d): diff --git a/meta/lib/oeqa/utils/commands.py b/meta/lib/oeqa/utils/commands.py index a8e184d0c3..5cd0f7477b 100644 --- a/meta/lib/oeqa/utils/commands.py +++ b/meta/lib/oeqa/utils/commands.py @@ -223,7 +223,7 @@ def runqemu(pn, ssh=True): tinfoil.config_data.setVar("TEST_QEMUBOOT_TIMEOUT", "1000") import oe.recipeutils recipefile = oe.recipeutils.pn_to_recipe(tinfoil.cooker, pn) - recipedata = oe.recipeutils.parse_recipe(recipefile, [], tinfoil.config_data) + recipedata = oe.recipeutils.parse_recipe(tinfoil.cooker, recipefile, []) # The QemuRunner log is saved out, but we need to ensure it is at the right # log level (and then ensure that since it's a child of the BitBake logger, diff --git a/scripts/lib/devtool/__init__.py b/scripts/lib/devtool/__init__.py index 65eb4527bc..216b7c345a 100644 --- a/scripts/lib/devtool/__init__.py +++ b/scripts/lib/devtool/__init__.py @@ -146,8 +146,7 @@ def parse_recipe(config, tinfoil, pn, appends, filter_workspace=True): not path.startswith(config.workspace_path)] else: append_files = None - return oe.recipeutils.parse_recipe(recipefile, append_files, - tinfoil.config_data) + return oe.recipeutils.parse_recipe(tinfoil.cooker, recipefile, append_files) def check_workspace_recipe(workspace, pn, checksrc=True, bbclassextend=False): """ diff --git a/scripts/lib/devtool/standard.py b/scripts/lib/devtool/standard.py index 9c09533b54..3de2401325 100644 --- a/scripts/lib/devtool/standard.py +++ b/scripts/lib/devtool/standard.py @@ -221,7 +221,7 @@ def add(args, config, basepath, workspace): initial_rev = stdout.rstrip() tinfoil = setup_tinfoil(config_only=True, basepath=basepath) - rd = oe.recipeutils.parse_recipe(recipefile, None, tinfoil.config_data) + rd = oe.recipeutils.parse_recipe(tinfoil.cooker, recipefile, None) if not rd: return 1 diff --git a/scripts/lib/devtool/upgrade.py b/scripts/lib/devtool/upgrade.py index 8ea72ef2b5..fc2f919383 100644 --- a/scripts/lib/devtool/upgrade.py +++ b/scripts/lib/devtool/upgrade.py @@ -318,7 +318,7 @@ def _create_new_recipe(newpv, md5, sha256, srcrev, srcbranch, workspace, tinfoil newvalues['SRC_URI[md5sum]'] = md5 newvalues['SRC_URI[sha256sum]'] = sha256 - rd = oe.recipeutils.parse_recipe(fullpath, None, tinfoil.config_data) + rd = oe.recipeutils.parse_recipe(tinfoil.cooker, fullpath, None) oe.recipeutils.patch_recipe(rd, fullpath, newvalues) return fullpath, copied diff --git a/scripts/lib/recipetool/append.py b/scripts/lib/recipetool/append.py index 5d73d307e0..1e0fc1ee85 100644 --- a/scripts/lib/recipetool/append.py +++ b/scripts/lib/recipetool/append.py @@ -115,8 +115,7 @@ def _parse_recipe(pn, tinfoil): # Error already logged return None append_files = tinfoil.cooker.collection.get_file_appends(recipefile) - rd = oe.recipeutils.parse_recipe(recipefile, append_files, - tinfoil.config_data) + rd = oe.recipeutils.parse_recipe(tinfoil.cooker, recipefile, append_files) return rd def determine_file_source(targetpath, rd): diff --git a/scripts/lib/recipetool/setvar.py b/scripts/lib/recipetool/setvar.py index 657d2b6a7b..85701c06a9 100644 --- a/scripts/lib/recipetool/setvar.py +++ b/scripts/lib/recipetool/setvar.py @@ -51,7 +51,7 @@ def setvar(args): if args.recipe_only: patches = [oe.recipeutils.patch_recipe_file(args.recipefile, varvalues, patch=args.patch)] else: - rd = oe.recipeutils.parse_recipe(args.recipefile, None, tinfoil.config_data) + rd = oe.recipeutils.parse_recipe(tinfoil.cooker, args.recipefile, None) if not rd: return 1 patches = oe.recipeutils.patch_recipe(rd, args.recipefile, varvalues, patch=args.patch) diff --git a/scripts/oe-check-sstate b/scripts/oe-check-sstate index 8aab86adb3..d06efe436a 100755 --- a/scripts/oe-check-sstate +++ b/scripts/oe-check-sstate @@ -40,13 +40,13 @@ def translate_virtualfns(tasks): try: tinfoil.prepare(False) - pkg_fn = tinfoil.cooker.recipecache.pkg_fn + recipecaches = tinfoil.cooker.recipecaches outtasks = [] for task in tasks: - fn, taskname = task.rsplit(':', 1) + (mc, fn, taskname) = bb.runqueue.split_tid(task) if taskname.endswith('_setscene'): taskname = taskname[:-9] - outtasks.append('%s:%s' % (pkg_fn[fn], taskname)) + outtasks.append('%s:%s' % (recipecaches[mc].pkg_fn[fn], taskname)) finally: tinfoil.shutdown() return outtasks