summaryrefslogtreecommitdiffstats
path: root/scripts/lib
diff options
context:
space:
mode:
authorPaul Eggleton <paul.eggleton@linux.intel.com>2016-10-31 16:59:45 +1300
committerRichard Purdie <richard.purdie@linuxfoundation.org>2016-11-07 11:04:22 +0000
commit09754b41199f042dfd6937e1c4525fc320cb8684 (patch)
tree90e21adea599bdd4bfb9df7a783de9499d12abee /scripts/lib
parent452a1133ddadfb0750e930843d0e284185fca17c (diff)
downloadpoky-09754b41199f042dfd6937e1c4525fc320cb8684.tar.gz
devtool: finish: fix error if destination layer is not in bblayers.conf
If devtool finish is run on a recipe where the recipe file itself is in the workspace (e.g. where devtool add / devtool upgrade has been used) and the specified destination layer is not in bblayers.conf, then we need to avoid running bitbake -c clean at the end because the recipe has been moved, but the bbappend is still present in the workspace layer at that point and so if we do it will fail due to the dangling bbappend. It's difficult to do the clean at the point we'd want to because tinfoil is holding bitbake.lock for most of the time, but in any case cleaning the recipe is less important than it used to be since we started managing the sysroot contents more strictly, so just disable cleaning under these circumstances to avoid the problem. Fixes [YOCTO #10484]. (From OE-Core rev: c6980307d43632f4172e79d9607004203af4e9c8) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'scripts/lib')
-rw-r--r--scripts/lib/devtool/standard.py4
1 files changed, 3 insertions, 1 deletions
diff --git a/scripts/lib/devtool/standard.py b/scripts/lib/devtool/standard.py
index 8dfd538332..9511d5618c 100644
--- a/scripts/lib/devtool/standard.py
+++ b/scripts/lib/devtool/standard.py
@@ -1479,6 +1479,7 @@ def finish(args, config, basepath, workspace):
1479 1479
1480 check_workspace_recipe(workspace, args.recipename) 1480 check_workspace_recipe(workspace, args.recipename)
1481 1481
1482 no_clean = False
1482 tinfoil = setup_tinfoil(basepath=basepath, tracking=True) 1483 tinfoil = setup_tinfoil(basepath=basepath, tracking=True)
1483 try: 1484 try:
1484 rd = parse_recipe(config, tinfoil, args.recipename, True) 1485 rd = parse_recipe(config, tinfoil, args.recipename, True)
@@ -1540,6 +1541,7 @@ def finish(args, config, basepath, workspace):
1540 if origlayerdir == config.workspace_path and destpath: 1541 if origlayerdir == config.workspace_path and destpath:
1541 # Recipe file itself is in the workspace - need to move it and any 1542 # Recipe file itself is in the workspace - need to move it and any
1542 # associated files to the specified layer 1543 # associated files to the specified layer
1544 no_clean = True
1543 logger.info('Moving recipe file to %s' % destpath) 1545 logger.info('Moving recipe file to %s' % destpath)
1544 recipedir = os.path.dirname(rd.getVar('FILE', True)) 1546 recipedir = os.path.dirname(rd.getVar('FILE', True))
1545 for root, _, files in os.walk(recipedir): 1547 for root, _, files in os.walk(recipedir):
@@ -1554,7 +1556,7 @@ def finish(args, config, basepath, workspace):
1554 tinfoil.shutdown() 1556 tinfoil.shutdown()
1555 1557
1556 # Everything else has succeeded, we can now reset 1558 # Everything else has succeeded, we can now reset
1557 _reset([args.recipename], no_clean=False, config=config, basepath=basepath, workspace=workspace) 1559 _reset([args.recipename], no_clean=no_clean, config=config, basepath=basepath, workspace=workspace)
1558 1560
1559 return 0 1561 return 0
1560 1562