[gnome-continuous-yocto/gnomeostree-3.28-rocko: 3288/8267] devtool: finish: fix error if destination layer is not in bblayers.conf



commit 09754b41199f042dfd6937e1c4525fc320cb8684
Author: Paul Eggleton <paul eggleton linux intel com>
Date:   Mon Oct 31 16:59:45 2016 +1300

    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>

 scripts/lib/devtool/standard.py |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)
---
diff --git a/scripts/lib/devtool/standard.py b/scripts/lib/devtool/standard.py
index 8dfd538..9511d56 100644
--- a/scripts/lib/devtool/standard.py
+++ b/scripts/lib/devtool/standard.py
@@ -1479,6 +1479,7 @@ def finish(args, config, basepath, workspace):
 
     check_workspace_recipe(workspace, args.recipename)
 
+    no_clean = False
     tinfoil = setup_tinfoil(basepath=basepath, tracking=True)
     try:
         rd = parse_recipe(config, tinfoil, args.recipename, True)
@@ -1540,6 +1541,7 @@ def finish(args, config, basepath, workspace):
         if origlayerdir == config.workspace_path and destpath:
             # Recipe file itself is in the workspace - need to move it and any
             # associated files to the specified layer
+            no_clean = True
             logger.info('Moving recipe file to %s' % destpath)
             recipedir = os.path.dirname(rd.getVar('FILE', True))
             for root, _, files in os.walk(recipedir):
@@ -1554,7 +1556,7 @@ def finish(args, config, basepath, workspace):
         tinfoil.shutdown()
 
     # Everything else has succeeded, we can now reset
-    _reset([args.recipename], no_clean=False, config=config, basepath=basepath, workspace=workspace)
+    _reset([args.recipename], no_clean=no_clean, config=config, basepath=basepath, workspace=workspace)
 
     return 0
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]