diff options
Diffstat (limited to 'meta/lib/oe/sstatesig.py')
-rw-r--r-- | meta/lib/oe/sstatesig.py | 27 |
1 files changed, 21 insertions, 6 deletions
diff --git a/meta/lib/oe/sstatesig.py b/meta/lib/oe/sstatesig.py index 5828a9def8..b2319ff213 100644 --- a/meta/lib/oe/sstatesig.py +++ b/meta/lib/oe/sstatesig.py | |||
@@ -189,20 +189,35 @@ class SignatureGeneratorOEBasicHash(bb.siggen.SignatureGeneratorBasicHash): | |||
189 | f.write('SIGGEN_LOCKEDSIGS_TYPES_%s = "%s"' % (self.machine, " ".join(types.keys()))) | 189 | f.write('SIGGEN_LOCKEDSIGS_TYPES_%s = "%s"' % (self.machine, " ".join(types.keys()))) |
190 | 190 | ||
191 | def checkhashes(self, missed, ret, sq_fn, sq_task, sq_hash, sq_hashfn, d): | 191 | def checkhashes(self, missed, ret, sq_fn, sq_task, sq_hash, sq_hashfn, d): |
192 | checklevel = d.getVar("SIGGEN_LOCKEDSIGS_CHECK_LEVEL", True) | 192 | warn_msgs = [] |
193 | error_msgs = [] | ||
194 | sstate_missing_msgs = [] | ||
195 | |||
193 | for task in range(len(sq_fn)): | 196 | for task in range(len(sq_fn)): |
194 | if task not in ret: | 197 | if task not in ret: |
195 | for pn in self.lockedsigs: | 198 | for pn in self.lockedsigs: |
196 | if sq_hash[task] in self.lockedsigs[pn].itervalues(): | 199 | if sq_hash[task] in self.lockedsigs[pn].itervalues(): |
197 | if sq_task[task] == 'do_shared_workdir': | 200 | if sq_task[task] == 'do_shared_workdir': |
198 | continue | 201 | continue |
199 | self.mismatch_msgs.append("Locked sig is set for %s:%s (%s) yet not in sstate cache?" | 202 | sstate_missing_msgs.append("Locked sig is set for %s:%s (%s) yet not in sstate cache?" |
200 | % (pn, sq_task[task], sq_hash[task])) | 203 | % (pn, sq_task[task], sq_hash[task])) |
201 | 204 | ||
202 | if self.mismatch_msgs and checklevel == 'warn': | 205 | checklevel = d.getVar("SIGGEN_LOCKEDSIGS_TASKSIG_CHECK", True) |
203 | bb.warn("\n".join(self.mismatch_msgs)) | 206 | if checklevel == 'warn': |
204 | elif self.mismatch_msgs and checklevel == 'error': | 207 | warn_msgs += self.mismatch_msgs |
205 | bb.fatal("\n".join(self.mismatch_msgs)) | 208 | elif checklevel == 'error': |
209 | error_msgs += self.mismatch_msgs | ||
210 | |||
211 | checklevel = d.getVar("SIGGEN_LOCKEDSIGS_SSTATE_EXISTS_CHECK", True) | ||
212 | if checklevel == 'warn': | ||
213 | warn_msgs += sstate_missing_msgs | ||
214 | elif checklevel == 'error': | ||
215 | error_msgs += sstate_missing_msgs | ||
216 | |||
217 | if warn_msgs: | ||
218 | bb.warn("\n".join(warn_msgs)) | ||
219 | if error_msgs: | ||
220 | bb.fatal("\n".join(error_msgs)) | ||
206 | 221 | ||
207 | 222 | ||
208 | # Insert these classes into siggen's namespace so it can see and select them | 223 | # Insert these classes into siggen's namespace so it can see and select them |