summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--bitbake/lib/bb/siggen.py10
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: