summaryrefslogtreecommitdiffstats
path: root/scripts
diff options
context:
space:
mode:
authorPaul Eggleton <paul.eggleton@linux.intel.com>2017-07-20 16:48:08 +0200
committerRichard Purdie <richard.purdie@linuxfoundation.org>2017-07-21 08:44:18 +0100
commit5c7f5031023fb74b5f2f26d6b3c829981f2f54d2 (patch)
treeb761e49e0e75b0f3ad6ccfd4117d58b2d7c4227a /scripts
parentbc1a4af950a2600028d89b7dcb4ff8f409b52739 (diff)
downloadopenembedded-core-5c7f5031023fb74b5f2f26d6b3c829981f2f54d2.tar.gz
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. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'scripts')
-rw-r--r--scripts/lib/devtool/standard.py37
1 files changed, 5 insertions, 32 deletions
diff --git a/scripts/lib/devtool/standard.py b/scripts/lib/devtool/standard.py
index 7e342e7687..0104e675db 100644
--- a/scripts/lib/devtool/standard.py
+++ b/scripts/lib/devtool/standard.py
@@ -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)