From 1e548a7fc735e55d411e3c529e1fcf8ded626156 Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Fri, 14 Dec 2012 15:39:56 +0000 Subject: [PATCH] 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 --- meta/classes/sstate.bbclass | 11 +++++++---- 1 file 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 = []