mirror of
https://git.yoctoproject.org/poky
synced 2026-05-09 05:29:32 +00:00
devtool: extract: refactor kern-tools-native handling
When extracting linux-yocto kernel source, we don't need to dance around shutting down and starting up tinfoil anymore, we can just execute the tasks as needed when needed using tinfoil's new build_targets() function. This allows us to tidy up the code structure a bit. (From OE-Core rev: 5c7f5031023fb74b5f2f26d6b3c829981f2f54d2) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
dbc7ca268c
commit
a9848fdd46
@@ -383,7 +383,7 @@ def extract(args, config, basepath, workspace):
|
||||
"""Entry point for the devtool 'extract' subcommand"""
|
||||
import bb
|
||||
|
||||
tinfoil = _prep_extract_operation(config, basepath, args.recipename)
|
||||
tinfoil = setup_tinfoil(basepath=basepath)
|
||||
if not tinfoil:
|
||||
# Error already shown
|
||||
return 1
|
||||
@@ -407,7 +407,7 @@ def sync(args, config, basepath, workspace):
|
||||
"""Entry point for the devtool 'sync' subcommand"""
|
||||
import bb
|
||||
|
||||
tinfoil = _prep_extract_operation(config, basepath, args.recipename)
|
||||
tinfoil = setup_tinfoil(basepath=basepath)
|
||||
if not tinfoil:
|
||||
# Error already shown
|
||||
return 1
|
||||
@@ -428,29 +428,6 @@ def sync(args, config, basepath, workspace):
|
||||
tinfoil.shutdown()
|
||||
|
||||
|
||||
def _prep_extract_operation(config, basepath, recipename, tinfoil=None):
|
||||
"""HACK: Ugly workaround for making sure that requirements are met when
|
||||
trying to extract a package. Returns the tinfoil instance to be used."""
|
||||
if not tinfoil:
|
||||
tinfoil = setup_tinfoil(basepath=basepath)
|
||||
|
||||
rd = parse_recipe(config, tinfoil, recipename, True)
|
||||
if not rd:
|
||||
tinfoil.shutdown()
|
||||
return None
|
||||
|
||||
if bb.data.inherits_class('kernel-yocto', rd):
|
||||
tinfoil.shutdown()
|
||||
try:
|
||||
stdout, _ = exec_build_env_command(config.init_path, basepath,
|
||||
'bitbake kern-tools-native')
|
||||
tinfoil = setup_tinfoil(basepath=basepath)
|
||||
except bb.process.ExecutionError as err:
|
||||
raise DevtoolError("Failed to build kern-tools-native:\n%s" %
|
||||
err.stdout)
|
||||
return tinfoil
|
||||
|
||||
|
||||
def _extract_source(srctree, keep_temp, devbranch, sync, d, tinfoil):
|
||||
"""Extract sources of a recipe"""
|
||||
import oe.recipeutils
|
||||
@@ -475,6 +452,9 @@ def _extract_source(srctree, keep_temp, devbranch, sync, d, tinfoil):
|
||||
raise DevtoolError("The %s recipe has do_unpack disabled, unable to "
|
||||
"extract source" % pn, 4)
|
||||
|
||||
if bb.data.inherits_class('kernel-yocto', d):
|
||||
tinfoil.build_targets('kern-tools-native')
|
||||
|
||||
if not sync:
|
||||
# Prepare for shutil.move later on
|
||||
bb.utils.mkdirhier(srctree)
|
||||
@@ -773,13 +753,6 @@ def modify(args, config, basepath, workspace):
|
||||
raise DevtoolError("--no-extract specified and source path %s does "
|
||||
"not exist or is not a directory" %
|
||||
srctree)
|
||||
if not args.no_extract:
|
||||
tinfoil = _prep_extract_operation(config, basepath, pn, tinfoil)
|
||||
if not tinfoil:
|
||||
# Error already shown
|
||||
return 1
|
||||
# We need to re-parse because tinfoil may have been re-initialised
|
||||
rd = parse_recipe(config, tinfoil, args.recipename, True)
|
||||
|
||||
recipefile = rd.getVar('FILE')
|
||||
appendfile = recipe_to_append(recipefile, config, args.wildcard)
|
||||
|
||||
Reference in New Issue
Block a user