[gnome-continuous-yocto/gnomeostree-3.28-rocko: 7492/8267] bitbake: cooker: ensure we can run buildFileInternal() after cache is populated
- From: Emmanuele Bassi <ebassi src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-continuous-yocto/gnomeostree-3.28-rocko: 7492/8267] bitbake: cooker: ensure we can run buildFileInternal() after cache is populated
- Date: Sun, 17 Dec 2017 06:19:27 +0000 (UTC)
commit 1524222c84ebaae8cd2add016f7f33ac1c20bfdd
Author: Paul Eggleton <paul eggleton linux intel com>
Date: Thu Aug 31 11:30:46 2017 +1200
bitbake: 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.
(Bitbake rev: f120355eaec4571ba6d60fc5f7ae9e1f31d846d1)
Signed-off-by: Paul Eggleton <paul eggleton linux intel com>
Signed-off-by: Richard Purdie <richard purdie linuxfoundation org>
bitbake/lib/bb/cooker.py | 8 ++++----
1 files changed, 4 insertions(+), 4 deletions(-)
---
diff --git a/bitbake/lib/bb/cooker.py b/bitbake/lib/bb/cooker.py
index a2c1b40..1ed3fd4 100644
--- a/bitbake/lib/bb/cooker.py
+++ b/bitbake/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
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]