aboutsummaryrefslogtreecommitdiffstats
path: root/meta/classes/sstate.bbclass
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2012-12-14 15:39:56 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2012-12-17 17:21:47 +0000
commit2cc8ee57f8148844bb7bcd4aaf34f6891cf3d410 (patch)
treeb1e21bba71b1fff7e0d884fa2eb4bf2f198c3ffe /meta/classes/sstate.bbclass
parent33ddf788c04044c8fe7ffbadab8787a5b6603186 (diff)
downloadopenembedded-core-contrib-2cc8ee57f8148844bb7bcd4aaf34f6891cf3d410.tar.gz
sstate.bbclass: Improve stamp-extra-info task handling to avoid warnings
If you change a machine to a different package architecture, you will see sstate errors about overwriting files as the code stands today. Instead it should clean out the files safely and correctly. This patch changes the naming of stamp-extra-info manifest files to avoid this problem. It will potentially trigger warnings during builds in existing TMPDIRs until the system adjusts to the new naming, these are harmless. [YOCTO #3521] Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/classes/sstate.bbclass')
-rw-r--r--meta/classes/sstate.bbclass11
1 files changed, 7 insertions, 4 deletions
diff --git a/meta/classes/sstate.bbclass b/meta/classes/sstate.bbclass
index d3daf1c35d..d544da97d6 100644
--- a/meta/classes/sstate.bbclass
+++ b/meta/classes/sstate.bbclass
@@ -124,10 +124,12 @@ def sstate_install(ss, d):
sharedfiles = []
shareddirs = []
bb.mkdirhier(d.expand("${SSTATE_MANIFESTS}"))
- manifest = d.expand("${SSTATE_MANFILEPREFIX}.%s" % ss['name'])
+
+ d2 = d.createCopy()
extrainf = d.getVarFlag("do_" + ss['task'], 'stamp-extra-info', True)
if extrainf:
- manifest = manifest + "." + extrainf
+ d2.setVar("SSTATE_MANMACH", extrainf)
+ manifest = d2.expand("${SSTATE_MANFILEPREFIX}.%s" % ss['name'])
if os.access(manifest, os.R_OK):
bb.fatal("Package already staged (%s)?!" % manifest)
@@ -315,10 +317,11 @@ def sstate_clean_manifest(manifest, d):
def sstate_clean(ss, d):
import oe.path
- manifest = d.expand("${SSTATE_MANFILEPREFIX}.%s" % ss['name'])
+ d2 = d.createCopy()
extrainf = d.getVarFlag("do_" + ss['task'], 'stamp-extra-info', True)
if extrainf:
- manifest = manifest + "." + extrainf
+ d2.setVar("SSTATE_MANMACH", extrainf)
+ manifest = d2.expand("${SSTATE_MANFILEPREFIX}.%s" % ss['name'])
if os.path.exists(manifest):
locks = []