devtool/recipetool/meta: Adapt to bitbake API changes for multi-configuration builds
Unfortunately to implenent multiconfig support in bitbake some APIs had to change. This updates code in OE to match the changes in bitbake. Its mostly periperhal changes around devtool/recipetool [Will need a bitbake version requirement bump which I'll make when merging] (From OE-Core rev: 041212fa37bb83acac5ce4ceb9b7b77ad172c5c3) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
8b35b032ed
commit
189371f839
|
@ -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):
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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):
|
||||
"""
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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):
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue