mirror of
https://git.yoctoproject.org/poky
synced 2026-02-12 11:43:04 +01:00
sstatesig: Include all dependencies in SPDX task signatures
SDPX generation involves looking through BB_TASKDEPDATA for dependencies, then linking to the generated documents for those dependencies. These document links use a checksum to validate the document, which means that if a upstream document changes, all downstream documents must be regenerated to get the new checksum, otherwise the compendium of documents produced by the build will have broken links; therefore all dependent task should be included in the signature (even from "ABI safe" recipes). (From OE-Core rev: 5fe543b9ceec971cf0297ff0ae3b0ccc4703cece) Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
2ebe100184
commit
f414763fa0
@@ -24,10 +24,19 @@ def sstate_rundepfilter(siggen, fn, recipename, task, dep, depname, dataCaches):
|
||||
return "/allarch.bbclass" in inherits
|
||||
def isImage(mc, fn):
|
||||
return "/image.bbclass" in " ".join(dataCaches[mc].inherits[fn])
|
||||
def isSPDXTask(task):
|
||||
return task in ("do_create_spdx", "do_create_runtime_spdx")
|
||||
|
||||
depmc, _, deptaskname, depmcfn = bb.runqueue.split_tid_mcfn(dep)
|
||||
mc, _ = bb.runqueue.split_mc(fn)
|
||||
|
||||
# Keep all dependencies between SPDX tasks in the signature. SPDX documents
|
||||
# are linked together by hashes, which means if a dependent document changes,
|
||||
# all downstream documents must be re-written (even if they are "safe"
|
||||
# dependencies).
|
||||
if isSPDXTask(task) and isSPDXTask(deptaskname):
|
||||
return True
|
||||
|
||||
# (Almost) always include our own inter-task dependencies (unless it comes
|
||||
# from a mcdepends). The exception is the special
|
||||
# do_kernel_configme->do_unpack_and_patch dependency from archiver.bbclass.
|
||||
|
||||
Reference in New Issue
Block a user