populate_sdk_ext: Fix race condition on bb_unihashes.dat

Message ID 20220601182213.103534-1-richard.purdie@linuxfoundation.org
State Accepted, archived
Commit 106a7e07057e4681e6fb06dfe9e28d2e183d667d
Headers show
Series populate_sdk_ext: Fix race condition on bb_unihashes.dat | expand

Commit Message

Richard Purdie June 1, 2022, 6:22 p.m. UTC
There is a race were the bb_unihashes.dat file may end up zero sized due to
concurrent builds. Use recently added API within bitbake to copy the file
safely. Also use the opportunity to remove hardcoded filepaths internal to
bitbake from OE-Core.

Bump the minimum bitbake version to match the API being used.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
---
 meta/classes/populate_sdk_ext.bbclass | 6 ++----
 meta/conf/sanity.conf                 | 2 +-
 2 files changed, 3 insertions(+), 5 deletions(-)

Patch

diff --git a/meta/classes/populate_sdk_ext.bbclass b/meta/classes/populate_sdk_ext.bbclass
index e2019f9bbf7..926587c3564 100644
--- a/meta/classes/populate_sdk_ext.bbclass
+++ b/meta/classes/populate_sdk_ext.bbclass
@@ -401,10 +401,8 @@  python copy_buildsystem () {
             if os.path.exists(builddir + dest_stub):
                 shutil.copyfile(builddir + dest_stub, baseoutpath + dest_stub)
 
-    if os.path.exists(builddir + '/cache/bb_unihashes.dat'):
-        bb.parse.siggen.save_unitaskhashes()
-        bb.utils.mkdirhier(os.path.join(baseoutpath, 'cache'))
-        shutil.copyfile(builddir + '/cache/bb_unihashes.dat', baseoutpath + '/cache/bb_unihashes.dat')
+    cachedir = os.path.join(baseoutpath, 'cache')
+    bb.parse.siggen.copy_unitaskhashes(cachedir)
 
     # If PR Service is in use, we need to export this as well
     bb.note('Do we have a pr database?')
diff --git a/meta/conf/sanity.conf b/meta/conf/sanity.conf
index e6cb2b45fe2..fff1ad8246b 100644
--- a/meta/conf/sanity.conf
+++ b/meta/conf/sanity.conf
@@ -3,7 +3,7 @@ 
 # See sanity.bbclass
 #
 # Expert users can confirm their sanity with "touch conf/sanity.conf"
-BB_MIN_VERSION = "1.53.1"
+BB_MIN_VERSION = "2.0.1"
 
 SANITY_ABIFILE = "${TMPDIR}/abi_version"