[oe-commits] [bitbake] 14/17: cooker: ensure we can run buildFileInternal() after cache is populated

git at git.openembedded.org git at git.openembedded.org
Thu Aug 31 16:56:21 UTC 2017


This is an automated email from the git hooks/post-receive script.

rpurdie pushed a commit to branch master-next
in repository bitbake.

commit f120355eaec4571ba6d60fc5f7ae9e1f31d846d1
Author: Paul Eggleton <paul.eggleton at linux.intel.com>
AuthorDate: Thu Aug 31 11:30:46 2017 +1200

    cooker: ensure we can run buildFileInternal() after cache is populated
    
    If you run some other operations that result in the cache being
    populated, and then call buildFileInternal(), then you can end up in a
    situation where the cache already contains information about the recipe.
    For example in OE this can now happen when you use devtool upgrade.
    Normally this doesn't cause any problems, unless you have a non-absolute
    path in BBLAYERS - in buildFileInternal() we are calling matchfile() which
    will convert the filename to absolute, but later when taskdata goes to find
    the providers of the recipe it finds the non-absolute path, sets up the
    task information using this and then the runqueue can't find any tasks
    matching the absolute path. To fix this, back out the optimisation I did
    earlier in bitbake rev ba53e067a2d448dd63b4ca252557ce98aa8e6321 to avoid
    calling parseConfiguration() again, which is unfortunate but does result
    in the cached information being that causes the problem being cleared
    out.
    
    This fixes "Task do_unpack does not exist for target ..." running
    devtool upgrade within intel-iot-refkit.
    
    Signed-off-by: Paul Eggleton <paul.eggleton at linux.intel.com>
    Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>
---
 lib/bb/cooker.py | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/lib/bb/cooker.py b/lib/bb/cooker.py
index a2c1b40..1ed3fd4 100644
--- a/lib/bb/cooker.py
+++ b/lib/bb/cooker.py
@@ -1255,10 +1255,6 @@ class BBCooker:
         # specify a target to be built, so show a warning
         bb.warn("Buildfile specified, dependencies will not be handled. If this is not what you want, do not use -b / --buildfile.")
 
-        # Parse the configuration here. We need to do it explicitly here since
-        # buildFile() doesn't use the cache
-        self.parseConfiguration()
-
         self.buildFileInternal(buildfile, task)
 
     def buildFileInternal(self, buildfile, task, fireevents=True, quietlog=False):
@@ -1266,6 +1262,10 @@ class BBCooker:
         Build the file matching regexp buildfile
         """
 
+        # Parse the configuration here. We need to do it explicitly here since
+        # buildFile() doesn't use the cache
+        self.parseConfiguration()
+
         # If we are told to do the None task then query the default task
         if (task == None):
             task = self.configuration.cmd

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the Openembedded-commits mailing list