[OE-core] [PATCH 3/3] devtool: run kernel dependencies
Markus Lehtonen
markus.lehtonen at linux.intel.com
Thu Aug 27 11:49:50 UTC 2015
The kernel package needs "kern-tools-native" in order for it's
do_kernel_metadata. Thus, devtool extract for kernel in a pristine
environment fails. With the current bb.tinfoil implementation it is not
possible to run arbitrary bitbake commands - e.g. run
"bitbake kern-tools-native -c populate_sysroot" in our case. This patch
implements an ugly workaround for that problem, basically by hardcoding
this dependency and running the required bitbake task(s) before tinfoil
is initialized.
[YOCTO #6658]
Signed-off-by: Markus Lehtonen <markus.lehtonen at linux.intel.com>
---
scripts/lib/devtool/standard.py | 19 ++++++++++++++++++-
1 file changed, 18 insertions(+), 1 deletion(-)
diff --git a/scripts/lib/devtool/standard.py b/scripts/lib/devtool/standard.py
index 3725d87..bf24e32 100644
--- a/scripts/lib/devtool/standard.py
+++ b/scripts/lib/devtool/standard.py
@@ -197,6 +197,8 @@ def extract(args, config, basepath, workspace):
"""Entry point for the devtool 'extract' subcommand"""
import bb
+ _check_extract_deps(config, basepath, args.recipename)
+
tinfoil = setup_tinfoil()
rd = _parse_recipe(config, tinfoil, args.recipename, True)
@@ -237,6 +239,20 @@ class BbTaskExecutor(object):
self.executed.append(func)
+def _check_extract_deps(config, basepath, recipename):
+ """HACK: Ugly workaround for making sure that requirements are met when
+ trying to extract a package"""
+ tinfoil = setup_tinfoil()
+ rd = _parse_recipe(config, tinfoil, recipename, True)
+ if bb.data.inherits_class('kernel-yocto', rd):
+ tinfoil.shutdown()
+ try:
+ stdout, _ = exec_build_env_command(config.init_path, basepath,
+ 'bitbake kern-tools-native')
+ except bb.process.ExecutionError as err:
+ raise DevtoolError("Failed to build kern-tools-native:\n%s" %
+ err.stdout)
+
def _extract_source(srctree, keep_temp, devbranch, d):
"""Extract sources of a recipe"""
import bb.event
@@ -422,7 +438,8 @@ def modify(args, config, basepath, workspace):
raise DevtoolError("directory %s does not exist or not a directory "
"(specify -x to extract source from recipe)" %
args.srctree)
-
+ if args.extract:
+ _check_extract_deps(config, basepath, args.recipename)
tinfoil = setup_tinfoil()
rd = _parse_recipe(config, tinfoil, args.recipename, True)
--
2.1.4
More information about the Openembedded-core
mailing list