summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2012-11-28 13:34:33 +0000
committerRoss Burton <ross.burton@intel.com>2012-12-03 17:00:12 +0000
commitf31d930e9b2aa483aa30f6e7f7ec9b9f1321e3a1 (patch)
tree60c2ee696a762abeb4a52f99a71a4bd85bb68348
parent6f960055f55c5559562e8cc89961508fc27bf3eb (diff)
downloadbitbake-f31d930e9b2aa483aa30f6e7f7ec9b9f1321e3a1.tar.gz
build/siggen.py: Avoid removing too many stamps when cleaning
The "*" part of the mask is to ensure we clean both any stamp, and any setscene varient. It turns out we would also trample other tasks, e.g. do_package_write could trample do_package_write_rpm. do_package also tramples do_package_write_* but this is less of an issue since the other tasks depend on it. Rather than use the wildcard, we can just use a list instead. [YOCTO #3484] Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--lib/bb/build.py10
-rw-r--r--lib/bb/siggen.py3
2 files changed, 7 insertions, 6 deletions
diff --git a/lib/bb/build.py b/lib/bb/build.py
index 85af42c68..8ff7fb293 100644
--- a/lib/bb/build.py
+++ b/lib/bb/build.py
@@ -491,9 +491,11 @@ def stamp_cleanmask_internal(taskname, d, file_name):
extrainfo = d.getVarFlag(taskflagname, 'stamp-extra-info', True) or ""
if not stamp:
- return
+ return []
+
+ cleanmask = bb.parse.siggen.stampcleanmask(stamp, file_name, taskname, extrainfo)
- return bb.parse.siggen.stampcleanmask(stamp, file_name, taskname, extrainfo)
+ return [cleanmask, cleanmask.replace(taskflagname, taskflagname + "_setscene")]
def make_stamp(task, d, file_name = None):
"""
@@ -501,8 +503,8 @@ def make_stamp(task, d, file_name = None):
(d can be a data dict or dataCache)
"""
cleanmask = stamp_cleanmask_internal(task, d, file_name)
- if cleanmask:
- bb.utils.remove(cleanmask)
+ for mask in cleanmask:
+ bb.utils.remove(mask)
stamp = stamp_internal(task, d, file_name)
# Remove the file and recreate to force timestamp
diff --git a/lib/bb/siggen.py b/lib/bb/siggen.py
index ff70d4ff4..ba149402b 100644
--- a/lib/bb/siggen.py
+++ b/lib/bb/siggen.py
@@ -49,7 +49,7 @@ class SignatureGenerator(object):
return ("%s.%s.%s" % (stampbase, taskname, extrainfo)).rstrip('.')
def stampcleanmask(self, stampbase, file_name, taskname, extrainfo):
- return ("%s.%s*.%s" % (stampbase, taskname, extrainfo)).rstrip('.')
+ return ("%s.%s.%s" % (stampbase, taskname, extrainfo)).rstrip('.')
def dump_sigtask(self, fn, task, stampbase, runtime):
return
@@ -276,7 +276,6 @@ class SignatureGeneratorBasicHash(SignatureGeneratorBasic):
k = fn + "." + taskname
if clean:
h = "*"
- taskname = taskname + "*"
elif k in self.taskhash:
h = self.taskhash[k]
else: