Message ID | 20241211120728.3737604-2-hongxu.jia@windriver.com |
---|---|
State | New |
Headers | show |
Series | [1/3] meta/lib/oe/sbom30.py: correct alias | expand |
diff --git a/meta/lib/oe/sbom30.py b/meta/lib/oe/sbom30.py index 08fea2aca3..65603e69b7 100644 --- a/meta/lib/oe/sbom30.py +++ b/meta/lib/oe/sbom30.py @@ -786,7 +786,7 @@ class ObjectSet(oe.spdx30.SHACLObjectSet): OEIdAliasExtension( alias=objset.new_alias_id( document, - OE_DOC_ALIAS_PREFIX + d.getVar("PN") + "/" + name + "/", + OE_DOC_ALIAS_PREFIX + d.getVar("SSTATE_PKGARCH") + "/" + d.getVar("PN") + "/" + name + "/", ), ) )
While enabling multiconfig, build recipe (such as linux-libc-headers) in different arch directories but generating duplicated hash link, and these directories are listed in ${SPDX_MULTILIB_SSTATE_ARCHS} In the following case, build recipe linux-libc-headers in multiconfig to generate duplicated hash link in core2-32 and core2-64 $ echo 'MACHINE = qemux86-64' >> conf/local.conf $ mkdir conf/multiconfig $ echo 'MACHINE = "qemux86"' >> conf/multiconfig/qemux86.conf $ echo 'BBMULTICONFIG = qemux86' >> conf/local.conf $ bitbake linux-libc-headers mc:qemux86:linux-libc-headers $ ls -al tmp/deploy/spdx/3.0.1/*/by-spdxid-hash/*/*.spdx.json |grep recipe-linux-libc-headers.spdx.json tmp/deploy/spdx/3.0.1/core2-32/by-spdxid-hash/c5/c57f1b9dbf27d2c83c77ca49f971b31d6d6c5830434104c88a12c6e2eb687094.spdx.json -> ../../recipes/recipe-linux-libc-headers.spdx.json tmp/deploy/spdx/3.0.1/core2-64/by-spdxid-hash/c5/c57f1b9dbf27d2c83c77ca49f971b31d6d6c5830434104c88a12c6e2eb687094.spdx.json -> ../../recipes/recipe-linux-libc-headers.spdx.json According to [1], and after [spdx 3.0: Rework how SPDX aliases are linked] applied, SPDX 3.0 have a loop on ${SPDX_MULTILIB_SSTATE_ARCHS} to search for the hash link to find jsonld file, return on first match If hash link duplicated, the first match may not be right. Add ${SSTATE_PKGARCH} to link prefix which could distinguish arch directories in spdxId prefix. After applying this commit, the hash link of linux-libc-headers differs ls -al tmp/deploy/spdx/3.0.1/*/by-spdxid-hash/*/*.spdx.json |grep recipe-linux-libc-headers.spdx.json tmp/deploy/spdx/3.0.1/core2-32/by-spdxid-hash/4f/4f80c220686f345bce561f6d745165ee803e6390ba5e047f54cb28f4e23c167f.spdx.json -> ../../recipes/recipe-linux-libc-headers.spdx.json tmp/deploy/spdx/3.0.1/core2-64/by-spdxid-hash/22/22db6f7b9cf02bbd3e64ffe2b9bceb17bf6f2f1366db1e72d8d82c337954b112.spdx.json -> ../../recipes/recipe-linux-libc-headers.spdx.json [1] https://github.com/openembedded/openembedded-core/commit/f1499c36c1054fc90f7b7268cc95285f2eca72f7#diff-253805ec3eaba58c6c3967711921d5a2748974ba533c6d864d86a8e5ad4df4c4L923 Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> --- meta/lib/oe/sbom30.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)