mirror of
https://git.yoctoproject.org/poky
synced 2026-06-01 13:09:50 +00:00
sstatesig: Avoid resetting taskhash within siggen for locked sigs
Since get_unihash uses taskhash as a key internally, changing it means different bebahour when locked sigs are active verses not active. Under corner cases this leads to a signature mismatch. Avoid this by by adding a wrapper for the place its externally exposed and then not changing the internals. (From OE-Core rev: 23b7484d326cf7fac013384598d7745a042eaa75) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
@@ -193,7 +193,6 @@ class SignatureGeneratorOEBasicHashMixIn(object):
|
|||||||
self._internal = True
|
self._internal = True
|
||||||
unihash = self.get_unihash(tid)
|
unihash = self.get_unihash(tid)
|
||||||
self._internal = False
|
self._internal = False
|
||||||
self.taskhash[tid] = h_locked
|
|
||||||
#bb.warn("Using %s %s %s" % (recipename, task, h))
|
#bb.warn("Using %s %s %s" % (recipename, task, h))
|
||||||
|
|
||||||
if h != h_locked and h_locked != unihash:
|
if h != h_locked and h_locked != unihash:
|
||||||
@@ -206,6 +205,11 @@ class SignatureGeneratorOEBasicHashMixIn(object):
|
|||||||
#bb.warn("%s %s %s" % (recipename, task, h))
|
#bb.warn("%s %s %s" % (recipename, task, h))
|
||||||
return h
|
return h
|
||||||
|
|
||||||
|
def get_stampfile_hash(self, tid):
|
||||||
|
if tid in self.lockedhashes and self.lockedhashes[tid]:
|
||||||
|
return self.lockedhashes[tid]
|
||||||
|
return super().get_stampfile_hash(tid)
|
||||||
|
|
||||||
def get_unihash(self, tid):
|
def get_unihash(self, tid):
|
||||||
if tid in self.lockedhashes and self.lockedhashes[tid] and not self._internal:
|
if tid in self.lockedhashes and self.lockedhashes[tid] and not self._internal:
|
||||||
return self.lockedhashes[tid]
|
return self.lockedhashes[tid]
|
||||||
|
|||||||
Reference in New Issue
Block a user