1
0
mirror of https://git.yoctoproject.org/poky synced 2026-05-31 12:49:46 +00:00

bitbake: 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]

(Bitbake rev: f31d930e9b2aa483aa30f6e7f7ec9b9f1321e3a1)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Richard Purdie
2012-11-28 13:34:33 +00:00
parent cbec839886
commit ad4e3ee74c
2 changed files with 7 additions and 6 deletions
+6 -4
View File
@@ -491,9 +491,11 @@ def stamp_cleanmask_internal(taskname, d, file_name):
extrainfo = d.getVarFlag(taskflagname, 'stamp-extra-info', True) or "" extrainfo = d.getVarFlag(taskflagname, 'stamp-extra-info', True) or ""
if not stamp: if not stamp:
return return []
return bb.parse.siggen.stampcleanmask(stamp, file_name, taskname, extrainfo) cleanmask = bb.parse.siggen.stampcleanmask(stamp, file_name, taskname, extrainfo)
return [cleanmask, cleanmask.replace(taskflagname, taskflagname + "_setscene")]
def make_stamp(task, d, file_name = None): 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) (d can be a data dict or dataCache)
""" """
cleanmask = stamp_cleanmask_internal(task, d, file_name) cleanmask = stamp_cleanmask_internal(task, d, file_name)
if cleanmask: for mask in cleanmask:
bb.utils.remove(cleanmask) bb.utils.remove(mask)
stamp = stamp_internal(task, d, file_name) stamp = stamp_internal(task, d, file_name)
# Remove the file and recreate to force timestamp # Remove the file and recreate to force timestamp
+1 -2
View File
@@ -49,7 +49,7 @@ class SignatureGenerator(object):
return ("%s.%s.%s" % (stampbase, taskname, extrainfo)).rstrip('.') return ("%s.%s.%s" % (stampbase, taskname, extrainfo)).rstrip('.')
def stampcleanmask(self, stampbase, file_name, taskname, extrainfo): 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): def dump_sigtask(self, fn, task, stampbase, runtime):
return return
@@ -276,7 +276,6 @@ class SignatureGeneratorBasicHash(SignatureGeneratorBasic):
k = fn + "." + taskname k = fn + "." + taskname
if clean: if clean:
h = "*" h = "*"
taskname = taskname + "*"
elif k in self.taskhash: elif k in self.taskhash:
h = self.taskhash[k] h = self.taskhash[k]
else: else: