[bitbake-devel] [PATCH] cooker.py: Ensure only one copy of bitbake executes at once
Richard Purdie
richard.purdie at linuxfoundation.org
Tue Nov 8 17:52:44 UTC 2011
The bitbake codebase makes assumptions that only one copy is active
against a given build directory at a given time. This patch adds a
lockfile in TOPDIR to ensure that is the case.
Note that no unlock is needed, that is automatically dropped when
execution terminates.
Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>
diff --git a/lib/bb/cooker.py b/lib/bb/cooker.py
index 546a92c..ee8323e 100644
--- a/lib/bb/cooker.py
+++ b/lib/bb/cooker.py
@@ -135,6 +135,13 @@ class BBCooker:
self.configuration.data = None
self.loadConfigurationData()
+ # Take a lock so only one copy of bitbake can run against a given build
+ # directory at a time
+ lockfile = bb.data.expand("${TOPDIR}/bitbake.lock", self.configuration.data)
+ self.lock = bb.utils.lockfile(lockfile, False, False)
+ if not self.lock:
+ bb.fatal("Only one copy of bitbake should be run against a build directory")
+
bbpkgs = bb.data.getVar('BBPKGS', self.configuration.data, True)
if bbpkgs and len(self.configuration.pkgs_to_build) == 0:
self.configuration.pkgs_to_build.extend(bbpkgs.split())
More information about the bitbake-devel
mailing list