diff options
author | Richard Purdie <richard.purdie@linuxfoundation.org> | 2012-11-28 13:34:33 +0000 |
---|---|---|
committer | Ross Burton <ross.burton@intel.com> | 2012-12-03 17:00:12 +0000 |
commit | f31d930e9b2aa483aa30f6e7f7ec9b9f1321e3a1 (patch) | |
tree | 60c2ee696a762abeb4a52f99a71a4bd85bb68348 | |
parent | 6f960055f55c5559562e8cc89961508fc27bf3eb (diff) | |
download | bitbake-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.py | 10 | ||||
-rw-r--r-- | lib/bb/siggen.py | 3 |
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: |