diff options
Diffstat (limited to 'bitbake')
-rw-r--r-- | bitbake/lib/bb/siggen.py | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/bitbake/lib/bb/siggen.py b/bitbake/lib/bb/siggen.py index 2985272218..0352e45231 100644 --- a/bitbake/lib/bb/siggen.py +++ b/bitbake/lib/bb/siggen.py | |||
@@ -80,6 +80,7 @@ class SignatureGeneratorBasic(SignatureGenerator): | |||
80 | self.taskdeps = {} | 80 | self.taskdeps = {} |
81 | self.runtaskdeps = {} | 81 | self.runtaskdeps = {} |
82 | self.file_checksum_values = {} | 82 | self.file_checksum_values = {} |
83 | self.taints = {} | ||
83 | self.gendeps = {} | 84 | self.gendeps = {} |
84 | self.lookupcache = {} | 85 | self.lookupcache = {} |
85 | self.pkgnameextract = re.compile("(?P<fn>.*)\..*") | 86 | self.pkgnameextract = re.compile("(?P<fn>.*)\..*") |
@@ -199,11 +200,14 @@ class SignatureGeneratorBasic(SignatureGenerator): | |||
199 | if 'nostamp' in taskdep and task in taskdep['nostamp']: | 200 | if 'nostamp' in taskdep and task in taskdep['nostamp']: |
200 | # Nostamp tasks need an implicit taint so that they force any dependent tasks to run | 201 | # Nostamp tasks need an implicit taint so that they force any dependent tasks to run |
201 | import uuid | 202 | import uuid |
202 | data = data + str(uuid.uuid4()) | 203 | taint = str(uuid.uuid4()) |
204 | data = data + taint | ||
205 | self.taints[k] = "nostamp:" + taint | ||
203 | 206 | ||
204 | taint = self.read_taint(fn, task, dataCache.stamp[fn]) | 207 | taint = self.read_taint(fn, task, dataCache.stamp[fn]) |
205 | if taint: | 208 | if taint: |
206 | data = data + taint | 209 | data = data + taint |
210 | self.taints[k] = taint | ||
207 | logger.warn("%s is tainted from a forced run" % k) | 211 | logger.warn("%s is tainted from a forced run" % k) |
208 | 212 | ||
209 | h = hashlib.md5(data).hexdigest() | 213 | h = hashlib.md5(data).hexdigest() |
@@ -247,6 +251,10 @@ class SignatureGeneratorBasic(SignatureGenerator): | |||
247 | if taint: | 251 | if taint: |
248 | data['taint'] = taint | 252 | data['taint'] = taint |
249 | 253 | ||
254 | if runtime and k in self.taints: | ||
255 | if 'nostamp:' in self.taints[k]: | ||
256 | data['taint'] = self.taints[k] | ||
257 | |||
250 | fd, tmpfile = tempfile.mkstemp(dir=os.path.dirname(sigfile), prefix="sigtask.") | 258 | fd, tmpfile = tempfile.mkstemp(dir=os.path.dirname(sigfile), prefix="sigtask.") |
251 | try: | 259 | try: |
252 | with os.fdopen(fd, "wb") as stream: | 260 | with os.fdopen(fd, "wb") as stream: |