diff options
| -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: |
