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]

(From OE-Core rev: 2cc8ee57f8148844bb7bcd4aaf34f6891cf3d410)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Richard Purdie 2012-12-14 15:39:56 +00:00
parent 2636cb1133
commit 1e548a7fc7
1 changed files with 7 additions and 4 deletions

View File

@ -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 = []