* [PATCH 1/4] meta/lib/oe/sbom30.py: correct alias
@ 2024-12-17 3:47 Hongxu Jia
2024-12-17 3:47 ` [PATCH 2/4] meta/lib/oe/spdx30_tasks.py: fix hash link conflict while multiconfig enabled Hongxu Jia
` (3 more replies)
0 siblings, 4 replies; 8+ messages in thread
From: Hongxu Jia @ 2024-12-17 3:47 UTC (permalink / raw)
To: openembedded-core, jpewhacker
After commit [spdx 3.0: Rework how SPDX aliases are linked] applied,
it added extra "/" to namespace, which causing the replacement of
UNIHASH missing a "/"
http://spdxdocs.org/openembedded-alias/by-doc-hash/0b308e4b9ad979f642d8787c61f76c31bdcad04837eeaaf8bc383f33f99bbeb8/flex-nativeUNIHASH/build/recipe
After applying this commit to remove "/" from namespace.
http://spdxdocs.org/openembedded-alias/by-doc-hash/0b308e4b9ad979f642d8787c61f76c31bdcad04837eeaaf8bc383f33f99bbeb8/flex-native/UNIHASH/build/recipe
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
---
meta/lib/oe/sbom30.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta/lib/oe/sbom30.py b/meta/lib/oe/sbom30.py
index 29cb9e45ad..08fea2aca3 100644
--- a/meta/lib/oe/sbom30.py
+++ b/meta/lib/oe/sbom30.py
@@ -267,7 +267,7 @@ class ObjectSet(oe.spdx30.SHACLObjectSet):
def new_alias_id(self, obj, replace):
unihash = self.d.getVar("BB_UNIHASH")
- namespace = self.get_namespace() + "/"
+ namespace = self.get_namespace()
if unihash not in obj._id:
bb.warn(f"Unihash {unihash} not found in {obj._id}")
return None
--
2.25.1
^ permalink raw reply related [flat|nested] 8+ messages in thread* [PATCH 2/4] meta/lib/oe/spdx30_tasks.py: fix hash link conflict while multiconfig enabled 2024-12-17 3:47 [PATCH 1/4] meta/lib/oe/sbom30.py: correct alias Hongxu Jia @ 2024-12-17 3:47 ` Hongxu Jia 2024-12-17 3:47 ` [PATCH V2 3/4] gcc-cross.inc: add var-SSTATE_ARCHS_TUNEPKG to vardeps of do_create_spdx Hongxu Jia ` (2 subsequent siblings) 3 siblings, 0 replies; 8+ messages in thread From: Hongxu Jia @ 2024-12-17 3:47 UTC (permalink / raw) To: openembedded-core, jpewhacker 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(-) 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 + "/", ), ) ) -- 2.25.1 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH V2 3/4] gcc-cross.inc: add var-SSTATE_ARCHS_TUNEPKG to vardeps of do_create_spdx 2024-12-17 3:47 [PATCH 1/4] meta/lib/oe/sbom30.py: correct alias Hongxu Jia 2024-12-17 3:47 ` [PATCH 2/4] meta/lib/oe/spdx30_tasks.py: fix hash link conflict while multiconfig enabled Hongxu Jia @ 2024-12-17 3:47 ` Hongxu Jia 2024-12-17 3:47 ` [PATCH V3 4/4] meta/lib/oe/sbom30.py: fix alias in simplelicensing_customIdToUri not extracted Hongxu Jia 2024-12-17 7:37 ` [OE-core] [PATCH 1/4] meta/lib/oe/sbom30.py: correct alias Mathieu Dubois-Briand 3 siblings, 0 replies; 8+ messages in thread From: Hongxu Jia @ 2024-12-17 3:47 UTC (permalink / raw) To: openembedded-core, jpewhacker The recipe gcc-cross inherited cross.bbclass which had class-native recipe behavior, but depends on class-target recipe linux-libc-headers. It caused the tweaking of ${TUNE_PKGARCH} for 32bit arm did not trigger rebuild of do_create_spdx in gcc-cross-arm Due to commit [meta/lib/oe/spdx30_tasks.py: fix hash link conflict while multiconfig enabled] applied, it added ${SSTATE_PKGARCH} to link prefix. While tweaking ${TUNE_PKGARCH} for 32bit arm, use do_create_spdx from sstate cache will caused ${SSTATE_PKGARCH} did not match In the following case, the link hash has no change while machine was changed $ echo 'MACHINE = "qemuarmv5"' >> conf/local.conf $ bitbake gcc-cross-arm $ grep linux-libc-headers tmp/deploy/spdx/3.0.1/x86_64/recipes/recipe-gcc-cross-arm.spdx.json "http://spdxdocs.org/openembedded-alias/by-doc-hash/09523e44e7b6fe1aed03347e30191c00d93500ce6e1f453e8dfdfae98d325f3e/linux-libc-headers/UNIHASH/build/recipe", $ echo 'MACHINE = "qemuarm"' >> conf/local.conf $ bitbake gcc-cross-arm $ grep linux-libc-headers tmp/deploy/spdx/3.0.1/x86_64/recipes/recipe-gcc-cross-arm.spdx.json "http://spdxdocs.org/openembedded-alias/by-doc-hash/09523e44e7b6fe1aed03347e30191c00d93500ce6e1f453e8dfdfae98d325f3e/linux-libc-headers/UNIHASH/build/recipe", Explicitly add var-SSTATE_ARCHS_TUNEPKG to vardeps of do_create_spdx to trigger rebuild in this situation. After applying this commit, the link hash has changed along with machine changed $ echo 'MACHINE = "qemuarmv5"' >> conf/local.conf $ bitbake gcc-cross-arm $ grep linux-libc-headers tmp/deploy/spdx/3.0.1/x86_64/recipes/recipe-gcc-cross-arm.spdx.json "http://spdxdocs.org/openembedded-alias/by-doc-hash/09523e44e7b6fe1aed03347e30191c00d93500ce6e1f453e8dfdfae98d325f3e/linux-libc-headers/UNIHASH/build/recipe", $ echo 'MACHINE = "qemuarm"' >> conf/local.conf $ bitbake gcc-cross-arm $ grep linux-libc-headers tmp/deploy/spdx/3.0.1/x86_64/recipes/recipe-gcc-cross-arm.spdx.json "http://spdxdocs.org/openembedded-alias/by-doc-hash/087e29d3627a06f5377effa627b99907607f5af0fe8f6d116b4490650c404a55/linux-libc-headers/UNIHASH/build/recipe", Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> --- meta/recipes-devtools/gcc/gcc-cross.inc | 1 + 1 file changed, 1 insertion(+) diff --git a/meta/recipes-devtools/gcc/gcc-cross.inc b/meta/recipes-devtools/gcc/gcc-cross.inc index f85ccd5c23..f82228f55a 100644 --- a/meta/recipes-devtools/gcc/gcc-cross.inc +++ b/meta/recipes-devtools/gcc/gcc-cross.inc @@ -4,6 +4,7 @@ INHIBIT_DEFAULT_DEPS = "1" EXTRADEPENDS = "" DEPENDS = "virtual/${TARGET_PREFIX}binutils ${EXTRADEPENDS} ${NATIVEDEPS}" PROVIDES = "virtual/${TARGET_PREFIX}gcc virtual/${TARGET_PREFIX}g++" +do_create_spdx[vardeps] += "SSTATE_ARCHS_TUNEPKG" python () { if d.getVar("TARGET_OS").startswith("linux"): d.setVar("EXTRADEPENDS", "linux-libc-headers") -- 2.25.1 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH V3 4/4] meta/lib/oe/sbom30.py: fix alias in simplelicensing_customIdToUri not extracted 2024-12-17 3:47 [PATCH 1/4] meta/lib/oe/sbom30.py: correct alias Hongxu Jia 2024-12-17 3:47 ` [PATCH 2/4] meta/lib/oe/spdx30_tasks.py: fix hash link conflict while multiconfig enabled Hongxu Jia 2024-12-17 3:47 ` [PATCH V2 3/4] gcc-cross.inc: add var-SSTATE_ARCHS_TUNEPKG to vardeps of do_create_spdx Hongxu Jia @ 2024-12-17 3:47 ` Hongxu Jia 2024-12-17 7:37 ` [OE-core] [PATCH 1/4] meta/lib/oe/sbom30.py: correct alias Mathieu Dubois-Briand 3 siblings, 0 replies; 8+ messages in thread From: Hongxu Jia @ 2024-12-17 3:47 UTC (permalink / raw) To: openembedded-core, jpewhacker After commit [spdx 3.0: Rework how SPDX aliases are linked] applied, it set license_text_map with SPDX alias other than actual ID The property of simplelicensing_customIdToUri is ListProp(ObjectProp(DictionaryEntry))), and class DictionaryEntry has key and value, the property of value is StringProp other than ObjectProp in which could not support to decode/extract SPDX alias with actual ID in image jsonld file ----------- "simplelicensing_customIdToUri": [ { "type": "DictionaryEntry", "key": "LicenseRef-PD", "value": "http://spdxdocs.org/openembedded-alias/by-doc-hash/d53e90e23b12c4ad640809a74a810e86f31c76cdbdf36487712d22a33d53362a/sqlite3-native/UNIHASH/license-text/PD" } ], ----------- Add special code in the linking to manually go through all of the simplelicensing_customIdToUri DictionaryEntry items and resolve any aliases to actual objects ----------- "simplelicensing_customIdToUri": [ { "type": "DictionaryEntry", "key": "LicenseRef-PD", "value": "http://spdx.org/spdxdocs/sqlite3-native-e5cc0672-d8dd-57e8-a2df-fe4615831fda/162c62b5b011cd3f82f413b3dae4d6d1542201552c964d5ce69fe170e0720b85/license-text/PD" } ] ----------- Suggested-by: Joshua Watt <jpewhacker@gmail.com> Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> --- meta/lib/oe/sbom30.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/meta/lib/oe/sbom30.py b/meta/lib/oe/sbom30.py index 65603e69b7..3264cb2f7e 100644 --- a/meta/lib/oe/sbom30.py +++ b/meta/lib/oe/sbom30.py @@ -855,6 +855,18 @@ class ObjectSet(oe.spdx30.SHACLObjectSet): self.doc.import_ = sorted(imports.values(), key=lambda e: e.externalSpdxId) bb.debug(1, "Linking...") self.link() + + # Manually go through all of the simplelicensing_customIdToUri DictionaryEntry + # items and resolve any aliases to actual objects. + for lic in self.foreach_type(oe.spdx30.simplelicensing_LicenseExpression): + for d in lic.simplelicensing_customIdToUri: + if d.value.startswith(OE_ALIAS_PREFIX): + obj = self.find_by_id(d.value) + if obj is not None: + d.value = obj._id + else: + self.missing_ids.add(d.value) + self.missing_ids -= set(imports.keys()) return self.missing_ids -- 2.25.1 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [OE-core] [PATCH 1/4] meta/lib/oe/sbom30.py: correct alias 2024-12-17 3:47 [PATCH 1/4] meta/lib/oe/sbom30.py: correct alias Hongxu Jia ` (2 preceding siblings ...) 2024-12-17 3:47 ` [PATCH V3 4/4] meta/lib/oe/sbom30.py: fix alias in simplelicensing_customIdToUri not extracted Hongxu Jia @ 2024-12-17 7:37 ` Mathieu Dubois-Briand 2024-12-17 12:49 ` hongxu 3 siblings, 1 reply; 8+ messages in thread From: Mathieu Dubois-Briand @ 2024-12-17 7:37 UTC (permalink / raw) To: hongxu.jia, openembedded-core, jpewhacker On Tue Dec 17, 2024 at 4:47 AM CET, hongxu via lists.openembedded.org wrote: > After commit [spdx 3.0: Rework how SPDX aliases are linked] applied, > it added extra "/" to namespace, which causing the replacement of > UNIHASH missing a "/" > > http://spdxdocs.org/openembedded-alias/by-doc-hash/0b308e4b9ad979f642d8787c61f76c31bdcad04837eeaaf8bc383f33f99bbeb8/flex-nativeUNIHASH/build/recipe > > After applying this commit to remove "/" from namespace. > > http://spdxdocs.org/openembedded-alias/by-doc-hash/0b308e4b9ad979f642d8787c61f76c31bdcad04837eeaaf8bc383f33f99bbeb8/flex-native/UNIHASH/build/recipe > > Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> > --- Hi Hongxu, Sorry, but I still get the SPDX IDs were unable to be resolved warning. E.g.: WARNING: core-image-sato-sdk-1.0-r0 do_create_image_sbom_spdx: The following SPDX IDs were unable to be resolved: http://spdxdocs.org/openembedded-alias/by-doc-hash/82b2ddffbd624bcb26b4c93f8e7bf31e456ea81a1e5720354726d1fc7e433dd0/openssl/UNIHASH/package/openssl-bin http://spdxdocs.org/openembedded-alias/by-doc-hash/882a5d190518b194aea7380573eeee8a79f524131463308e414d0cb51f9a8099/openssl/UNIHASH/package/openssl http://spdxdocs.org/openembedded-alias/by-doc-hash/974e7ddc5b8f9307c770783e7d96e9e9fc65cd5b3f9cdd5a8578e4ed121dd8d1/initscripts/UNIHASH/build/recipe http://spdxdocs.org/openembedded-alias/by-doc-hash/f63cc948b407d32cfacbfc288d66c3fb64a6a611debfd7989d2cda55d7a957ca/openssh/UNIHASH/package/openssh https://valkyrie.yoctoproject.org/#/builders/6/builds/668/steps/12/logs/stdio https://valkyrie.yoctoproject.org/#/builders/8/builds/666/steps/15/logs/stdio https://valkyrie.yoctoproject.org/#/builders/9/builds/646/steps/12/logs/stdio -- Mathieu Dubois-Briand, Bootlin Embedded Linux and Kernel engineering https://bootlin.com ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 1/4] meta/lib/oe/sbom30.py: correct alias 2024-12-17 7:37 ` [OE-core] [PATCH 1/4] meta/lib/oe/sbom30.py: correct alias Mathieu Dubois-Briand @ 2024-12-17 12:49 ` hongxu 2024-12-20 16:09 ` [OE-core] " Mathieu Dubois-Briand 0 siblings, 1 reply; 8+ messages in thread From: hongxu @ 2024-12-17 12:49 UTC (permalink / raw) To: openembedded-core [-- Attachment #1: Type: text/plain, Size: 4927 bytes --] Hi Mathieu, After apply all the 4 patches, [PATCH 1/4] meta/lib/oe/sbom30.py: correct alias ( https://lists.openembedded.org/g/openembedded-core/message/208802?p=%2C%2C%2C20%2C0%2C0%2C0%3A%3ACreated%2C%2C%2C20%2C2%2C20%2C110158019%2Cd%253D3&d=3 ) [PATCH 2/4] meta/lib/oe/spdx30_tasks.py: fix hash link conflict while multiconfig enabled ( https://lists.openembedded.org/g/openembedded-core/message/208798?p=%2C%2C%2C20%2C0%2C0%2C0%3A%3ACreated%2C%2C%2C20%2C2%2C20%2C110158020%2Cd%253D3&d=3 ) [PATCH V2 3/4] gcc-cross.inc: add var-SSTATE_ARCHS_TUNEPKG to vardeps of do_create_spdx ( https://lists.openembedded.org/g/openembedded-core/message/208799?p=%2C%2C%2C20%2C0%2C0%2C0%3A%3ACreated%2C%2C%2C20%2C2%2C20%2C110158021%2Cd%253D3&d=3 ) [PATCH V3 4/4] meta/lib/oe/sbom30.py: fix alias in simplelicensing_customIdToUri not extracted ( https://lists.openembedded.org/g/openembedded-core/message/208800?p=%2C%2C%2C20%2C0%2C0%2C0%3A%3ACreated%2C%2C%2C20%2C2%2C20%2C110158022%2Cd%253D3&d=3 ) $ bitbake core-image-sato core-image-sato-sdk core-image-minimal core-image-sato:do_populate_sdk core-image-minimal:do_populate_sdk_ext core-image-sato:do_populate_sdk_ext I could not re-produce the WARNING, f rom the autobuilder log [1], I doubt the issue was caused by sstate cache between multiple builds with different poky sources $ grep openssl stdio -n | grep spdx 2775:NOTE: Running setscene task 1619 of 7903 (virtual:nativesdk:/srv/pokybuild/yocto-worker/qemuarm64-armhost/build/meta/recipes-connectivity/openssl/openssl_3.4.0.bb:do_create_packa ge_spdx_setscene) 2805:NOTE: recipe nativesdk-openssl-3.4.0-r0: task do_create_package_spdx_setscene: Started 2823:NOTE: recipe nativesdk-openssl-3.4.0-r0: task do_create_package_spdx_setscene: Succeeded 6774:NOTE: Running setscene task 3110 of 7903 (/srv/pokybuild/yocto-worker/qemuarm64-armhost/build/meta/recipes-connectivity/openssl/openssl_3.4.0.bb:do_create_package_spdx_setscene) 6799:NOTE: recipe openssl-3.4.0-r0: task do_create_package_spdx_setscene: Started 6823:NOTE: recipe openssl-3.4.0-r0: task do_create_package_spdx_setscene: Succeeded 7879:NOTE: Running setscene task 3505 of 7903 (virtual:native:/srv/pokybuild/yocto-worker/qemuarm64-armhost/build/meta/recipes-connectivity/openssl/openssl_3.4.0.bb:do_create_package spdx_setscene) 7909:NOTE: recipe openssl-native-3.4.0-r0: task do_create_package_spdx_setscene: Started 7929:NOTE: recipe openssl-native-3.4.0-r0: task do_create_package_spdx_setscene: Succeeded 13460:NOTE: Running setscene task 5732 of 7903 (virtual:nativesdk:/srv/pokybuild/yocto-worker/qemuarm64-armhost/build/meta/recipes-connectivity/openssl/openssl_3.4.0.bb:do_create_spd _setscene) 13494:NOTE: recipe nativesdk-openssl-3.4.0-r0: task do_create_spdx_setscene: Started 13512:NOTE: recipe nativesdk-openssl-3.4.0-r0: task do_create_spdx_setscene: Succeeded 15764:NOTE: Running setscene task 7051 of 7903 (/srv/pokybuild/yocto-worker/qemuarm64-armhost/build/meta/recipes-connectivity/openssl/openssl_3.4.0.bb:do_create_spdx_setscene) 15788:NOTE: recipe openssl-3.4.0-r0: task do_create_spdx_setscene: Started 15814:NOTE: recipe openssl-3.4.0-r0: task do_create_spdx_setscene: Succeeded 16806:NOTE: Running setscene task 7666 of 7903 (virtual:native:/srv/pokybuild/yocto-worker/qemuarm64-armhost/build/meta/recipes-connectivity/openssl/openssl_3.4.0.bb:do_create_spdx_se tscene) 16823:NOTE: recipe openssl-native-3.4.0-r0: task do_create_spdx_setscene: Started 16832:NOTE: recipe openssl-native-3.4.0-r0: task do_create_spdx_setscene: Succeeded 19470: http://spdxdocs.org/openembedded-alias/by-doc-hash/82b2ddffbd624bcb26b4c93f8e7bf31e456ea81a1e5720354726d1fc7e433dd0/openssl/UNIHASH/package/openssl-bin 19471: http://spdxdocs.org/openembedded-alias/by-doc-hash/882a5d190518b194aea7380573eeee8a79f524131463308e414d0cb51f9a8099/openssl/UNIHASH/package/openssl 19482: http://spdxdocs.org/openembedded-alias/by-doc-hash/abb77695d73c96547fa2c4d5d658cd5c44a6ca7b4f0c07889cbf868d6c832bb1/openssl-native/UNIHASH/build/recipe 19866: http://spdxdocs.org/openembedded-alias/by-doc-hash/abb77695d73c96547fa2c4d5d658cd5c44a6ca7b4f0c07889cbf868d6c832bb1/openssl-native/UNIHASH/build/recipe 19965: http://spdxdocs.org/openembedded-alias/by-doc-hash/82b2ddffbd624bcb26b4c93f8e7bf31e456ea81a1e5720354726d1fc7e433dd0/openssl/UNIHASH/package/openssl-bin 19967: http://spdxdocs.org/openembedded-alias/by-doc-hash/882a5d190518b194aea7380573eeee8a79f524131463308e414d0cb51f9a8099/openssl/UNIHASH/package/openssl 19982: http://spdxdocs.org/openembedded-alias/by-doc-hash/abb77695d73c96547fa2c4d5d658cd5c44a6ca7b4f0c07889cbf868d6c832bb1/openssl-native/UNIHASH/build/recipe 20069: http://spdxdocs.org/openembedded-alias/by-doc-hash/abb77695d73c96547fa2c4d5d658cd5c44a6ca7b4f0c07889cbf868d6c832bb1/openssl-native/UNIHASH/build/recipe [1] https://valkyrie.yoctoproject.org/api/v2/logs/928428/raw //Hongxu [-- Attachment #2: Type: text/html, Size: 5833 bytes --] ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [OE-core] [PATCH 1/4] meta/lib/oe/sbom30.py: correct alias 2024-12-17 12:49 ` hongxu @ 2024-12-20 16:09 ` Mathieu Dubois-Briand 2024-12-25 2:41 ` Hongxu Jia 0 siblings, 1 reply; 8+ messages in thread From: Mathieu Dubois-Briand @ 2024-12-20 16:09 UTC (permalink / raw) To: hongxu.jia, openembedded-core [-- Attachment #1.1: Type: text/plain, Size: 1531 bytes --] Hi Hongxu, I'm back on this issue. So yesterday I tried again to pick these patches, and got warnings again: https://valkyrie.yoctoproject.org/#/builders/29/builds/682 If I relaunch the builds, sometimes they will success, sometimes I still get the warnings. Something seems to be intermittent here. I tried to reproduce locally, and again, I get the warnings in some intermittent way. My setup was: - Clean build directory, empty sstate cache. - The local.conf attached. This is mainly the configuration used for https://valkyrie.yoctoproject.org/#/builders/8/builds/698, with some minor changes (like disabling the shared sstate configuration). - Using meta, meta-poky and meta-yocto-bsp at this revision: https://git.yoctoproject.org/poky-ci-archive/tag/?h=a-full-685 - Used: bitbake core-image-sato core-image-sato-sdk core-image-minimal core-image-minimal-dev core-image-full-cmdline core-image-sato:do_populate_sdk Now here is how it went: - On my very first build, I got some SPDX warnings. - On my next build they were all gone. - I tried to tweak a bit my config, cleaned my cache again and still got no warnings. - Then after some various modifications, I switched back again to my very first configuration, and got again some SPDX warnings. So I'm sorry, I cannot give you some exact instructions to reproduce this issue, but still we have some intermittent warnings :( -- Mathieu Dubois-Briand, Bootlin Embedded Linux and Kernel engineering https://bootlin.com [-- Attachment #2: local.conf --] [-- Type: text/plain, Size: 14170 bytes --] # # This file is your local configuration file and is where all local user settings # are placed. The comments in this file give some guide to the options a new user # to the system might want to change but pretty much any configuration option can # be set in this file. More adventurous users can look at # local.conf.sample.extended which contains other examples of configuration which # can be placed in this file but new users likely won't need any of them # initially. There's also site.conf.sample which contains examples of site specific # information such as proxy server addresses. # # Lines starting with the '#' character are commented out and in some cases the # default values are provided as comments to show people example syntax. Enabling # the option is a question of removing the # character and making any change to the # variable as required. # # Machine Selection # # You need to select a specific machine to target the build with. There are a selection # of emulated machines available which can boot and run in the QEMU emulator: # #MACHINE ?= "qemuarm" #MACHINE ?= "qemuarm64" #MACHINE ?= "qemumips" #MACHINE ?= "qemumips64" #MACHINE ?= "qemuppc" #MACHINE ?= "qemux86" #MACHINE ?= "qemux86-64" # # There are also the following hardware board target machines included for # demonstration purposes: # #MACHINE ?= "beaglebone-yocto" #MACHINE ?= "genericarm64" #MACHINE ?= "genericx86" #MACHINE ?= "genericx86-64" # # This sets the default machine to be qemux86-64 if no other machine is selected: MACHINE ??= "qemux86-64" # These are some of the more commonly used values. Looking at the files in the # meta/conf/machine directory, or the conf/machine directory of any additional layers # you add in will show all the available machines. # # Where to place downloads # # During a first build the system will download many different source code tarballs # from various upstream projects. This can take a while, particularly if your network # connection is slow. These are all stored in DL_DIR. When wiping and rebuilding you # can preserve this directory to speed up this part of subsequent builds. This directory # is safe to share between multiple builds on the same machine too. # # The default is a downloads directory under TOPDIR which is the build directory. # #DL_DIR ?= "${TOPDIR}/../build/downloads" # # Where to place shared-state files # # BitBake has the capability to accelerate builds based on previously built output. # This is done using "shared state" files which can be thought of as cache objects # and this option determines where those files are placed. # # You can wipe out TMPDIR leaving this directory intact and the build would regenerate # from these files if no changes were made to the configuration. If changes were made # to the configuration, only shared state files where the state was still valid would # be used (done using checksums). # # The default is a sstate-cache directory under TOPDIR. # #SSTATE_DIR ?= "${TOPDIR}/sstate-cache" # # Where to place the build output # # This option specifies where the bulk of the building work should be done and # where BitBake should place its temporary files and output. Keep in mind that # this includes the extraction and compilation of many applications and the toolchain # which can use Gigabytes of hard disk space. # # The default is a tmp directory under TOPDIR. # #TMPDIR = "${TOPDIR}/tmp" # # Default policy config # # The distribution setting controls which policy settings are used as defaults. # The default value is fine for general Yocto project use, at least initially. # Ultimately when creating custom policy, people will likely end up subclassing # these defaults. # DISTRO ?= "poky" # As an example of a subclass there is a "bleeding" edge policy configuration # where many versions are set to the absolute latest code from the upstream # source control systems. This is just mentioned here as an example, its not # useful to most new users. # DISTRO ?= "poky-bleeding" # # Package Management configuration # # This variable lists which packaging formats to enable. Multiple package backends # can be enabled at once and the first item listed in the variable will be used # to generate the root filesystems. # Options are: # - 'package_deb' for debian style deb files # - 'package_ipk' for ipk files are used by opkg (a debian style embedded package manager) # - 'package_rpm' for rpm style packages # E.g.: PACKAGE_CLASSES ?= "package_rpm package_deb package_ipk" # OE-Core defaults to ipkg, whilst Poky defaults to rpm: # PACKAGE_CLASSES ?= "package_rpm" # # SDK target architecture # # This variable specifies the architecture to build SDK items for and means # you can build the SDK packages for architectures other than the machine you are # running the build on (i.e. building i686 packages on an x86_64 host). # Supported values are i686, x86_64, aarch64 #SDKMACHINE ?= "i686" # # Extra image configuration defaults # # The EXTRA_IMAGE_FEATURES variable allows extra packages to be added to the generated # images. Some of these options are added to certain image types automatically. Some # of the features available are: # "dbg-pkgs" - add -dbg packages for all installed packages # (adds symbol information for debugging/profiling) # "src-pkgs" - add -src packages for all installed packages # (adds source code for debugging) # "dev-pkgs" - add -dev packages for all installed packages # (useful if you want to develop against libs in the image) # "ptest-pkgs" - add -ptest packages for all ptest-enabled packages # (useful if you want to run the package test suites) # "tools-sdk" - add development tools (gcc, make, pkgconfig etc.) # "tools-debug" - add debugging tools (gdb, strace) # "eclipse-debug" - add Eclipse remote debugging support # "tools-profile" - add profiling tools (oprofile, lttng, valgrind) # "tools-testapps" - add useful testing tools (ts_print, aplay, arecord etc.) # "allow-empty-password" - allow users to have an empty password # "empty-root-password" - the root user has no password set # "allow-root-login - the root user can login # There are other features that can be used here too, see # meta/classes-recipe/image.bbclass and # meta/classes-recipe/core-image.bbclass for more details. # We default to allowing root login without a password for convenience. EXTRA_IMAGE_FEATURES ?= "allow-empty-password empty-root-password allow-root-login" # # Additional image features # # The following is a list of additional classes to use when building images which # enable extra features. Some available options which can be included in this variable # are: # - 'buildstats' collect build statistics USER_CLASSES ?= "buildstats" # # Runtime testing of images # # The build system can test booting virtual machine images under qemu (an emulator) # after any root filesystems are created and run tests against those images. It can also # run tests against any SDK that are built. To enable this uncomment these lines. # See meta/classes-recipe/test{image,sdk}.bbclass for further details. #IMAGE_CLASSES += "testimage testsdk" #TESTIMAGE_AUTO:qemuall = "1" # # Interactive shell configuration # # Under certain circumstances the system may need input from you and to do this it # can launch an interactive shell. It needs to do this since the build is # multithreaded and needs to be able to handle the case where more than one parallel # process may require the user's attention. The default is iterate over the available # terminal types to find one that works. # # Examples of the occasions this may happen are when resolving patches which cannot # be applied, to use the devshell or the kernel menuconfig # # Supported values are auto, gnome, xfce, rxvt, screen, konsole (KDE 3.x only), none # Note: currently, Konsole support only works for KDE 3.x due to the way # newer Konsole versions behave #OE_TERMINAL = "auto" # By default disable interactive patch resolution (tasks will just fail instead): PATCHRESOLVE = "noop" # # Disk Space Monitoring during the build # # Monitor the disk space during the build. If there is less that 1GB of space or less # than 100K inodes in any key build location (TMPDIR, DL_DIR, SSTATE_DIR), gracefully # shutdown the build. If there is less than 100MB or 1K inodes, perform a hard halt # of the build. The reason for this is that running completely out of space can corrupt # files and damages the build in ways which may not be easily recoverable. # It's necessary to monitor /tmp, if there is no space left the build will fail # with very exotic errors. BB_DISKMON_DIRS ??= "\ STOPTASKS,${TMPDIR},1G,100K \ STOPTASKS,${DL_DIR},1G,100K \ STOPTASKS,${SSTATE_DIR},1G,100K \ STOPTASKS,/tmp,100M,100K \ HALT,${TMPDIR},100M,1K \ HALT,${DL_DIR},100M,1K \ HALT,${SSTATE_DIR},100M,1K \ HALT,/tmp,10M,1K" # # Shared-state files from other locations # # As mentioned above, shared state files are prebuilt cache data objects which can be # used to accelerate build time. This variable can be used to configure the system # to search other mirror locations for these objects before it builds the data itself. # # This can be a filesystem directory, or a remote url such as https or ftp. These # would contain the sstate-cache results from previous builds (possibly from other # machines). This variable works like fetcher MIRRORS/PREMIRRORS and points to the # cache locations to check for the shared objects. # NOTE: if the mirror uses the same structure as SSTATE_DIR, you need to add PATH # at the end as shown in the examples below. This will be substituted with the # correct path within the directory structure. #SSTATE_MIRRORS ?= "\ #file://.* https://someserver.tld/share/sstate/PATH;downloadfilename=PATH \ #file://.* file:///some/local/dir/sstate/PATH" # # Yocto Project SState Mirror # # The Yocto Project has prebuilt artefacts available for its releases, you can enable # use of these by uncommenting some of the following lines. This will mean the build uses # the network to check for artefacts at the start of builds, which does slow it down # initially but it will then speed up the builds by not having to build things if they are # present in the cache. It assumes you can download something faster than you can build it # which will depend on your network. # Note: For this to work you also need hash-equivalence passthrough to the matching server # There is a choice between our sstate server directly and a faster content delivery network # (CDN) kindly provided by JSDelivr, uncomment one of the SSTATE_MIRRORS lines, not both. # Using the CDN rather than the yoctoproject.org address is suggested/preferred. # #BB_HASHSERVE_UPSTREAM = 'wss://hashserv.yoctoproject.org/ws' #SSTATE_MIRRORS ?= "file://.* http://cdn.jsdelivr.net/yocto/sstate/all/PATH;downloadfilename=PATH" # ###SSTATE_MIRRORS ?= "file://.* http://sstate.yoctoproject.org/all/PATH;downloadfilename=PATH" # # Qemu configuration # # By default native qemu will build with a builtin VNC server where graphical output can be # seen. The line below enables the SDL UI frontend too. PACKAGECONFIG:append:pn-qemu-system-native = " sdl" # By default libsdl2-native will be built, if you want to use your host's libSDL instead of # the minimal libsdl built by libsdl2-native then uncomment the ASSUME_PROVIDED line below. #ASSUME_PROVIDED += "libsdl2-native" # You can also enable the Gtk UI frontend, which takes somewhat longer to build, but adds # a handy set of menus for controlling the emulator. #PACKAGECONFIG:append:pn-qemu-system-native = " gtk+" # # Hash Equivalence # # Enable support for automatically running a local hash equivalence server and # instruct bitbake to use a hash equivalence aware signature generator. Hash # equivalence improves reuse of sstate by detecting when a given sstate # artifact can be reused as equivalent, even if the current task hash doesn't # match the one that generated the artifact. # # A shared hash equivalent server can be set with "<HOSTNAME>:<PORT>" format # #BB_HASHSERVE = "auto" #BB_SIGNATURE_HANDLER = "OEEquivHash" # # Memory Resident Bitbake # # Bitbake's server component can stay in memory after the UI for the current command # has completed. This means subsequent commands can run faster since there is no need # for bitbake to reload cache files and so on. Number is in seconds, after which the # server will shut down. # #BB_SERVER_TIMEOUT = "60" # CONF_VERSION is increased each time build/conf/ changes incompatibly and is used to # track the version of this file when it was generated. This can safely be ignored if # this doesn't mean anything to you. CONF_VERSION = "2" MACHINE = "qemuarm64" DISTRO = "poky" SDKMACHINE = "aarch64" PACKAGE_CLASSES = "package_rpm package_deb package_ipk" INHERIT += 'image-buildinfo' IMAGE_BUILDINFO_VARS:append = ' IMAGE_BASENAME IMAGE_NAME' QEMU_USE_KVM = 'True' INHERIT += 'report-error' PREMIRRORS = '' BB_GENERATE_MIRROR_TARBALLS = '1' BB_NUMBER_THREADS = '16' BB_NUMBER_PARSE_THREADS = '16' PARALLEL_MAKE = '-j 16 -l 75' BB_PRESSURE_MAX_CPU = '20000' BB_PRESSURE_MAX_IO = '20000' XZ_MEMLIMIT = '5%' XZ_THREADS = '8' ZSTD_THREADS = '8' BB_TASK_NICE_LEVEL = '5' BB_TASK_NICE_LEVEL:task-testimage = '0' BB_TASK_IONICE_LEVEL = '2.7' BB_TASK_IONICE_LEVEL:task-testimage = '2.1' IMAGE_CLASSES += 'testimage' TEST_QEMUBOOT_TIMEOUT = '1500' SANITY_TESTED_DISTROS = '' SDK_EXT_TYPE = 'minimal' SDK_INCLUDE_TOOLCHAIN = '1' ESDK_LOCALCONF_REMOVE:append = 'BB_HASHSERVE' BB_DISKMON_DIRS = 'STOPTASKS,${TMPDIR},1G,100K STOPTASKS,${DL_DIR},1G STOPTASKS,${SSTATE_DIR},1G STOPTASKS,/tmp,100M,30K HALT,${TMPDIR},100M,1K HALT,${DL_DIR},100M HALT,${SSTATE_DIR},100M HALT,/tmp,10M,1K' BB_HEARTBEAT_EVENT = '60' BB_LOG_HOST_STAT_ON_INTERVAL = '1' BB_LOG_HOST_STAT_CMDS_INTERVAL = 'oe-time-dd-test.sh -c 100 -t 3' BB_LOG_HOST_STAT_ON_FAILURE = '1' BB_LOG_HOST_STAT_CMDS_FAILURE = 'oe-time-dd-test.sh -l' BB_SERVER_TIMEOUT = '60' BB_LOADFACTOR_MAX = '1.5' ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [OE-core] [PATCH 1/4] meta/lib/oe/sbom30.py: correct alias 2024-12-20 16:09 ` [OE-core] " Mathieu Dubois-Briand @ 2024-12-25 2:41 ` Hongxu Jia 0 siblings, 0 replies; 8+ messages in thread From: Hongxu Jia @ 2024-12-25 2:41 UTC (permalink / raw) To: Mathieu Dubois-Briand, hongxu.jia, openembedded-core On 12/21/24 00:09, Mathieu Dubois-Briand wrote: > CAUTION: This email comes from a non Wind River email account! > Do not click links or open attachments unless you recognize the sender and know the content is safe. > > Hi Hongxu, > > I'm back on this issue. So yesterday I tried again to pick these > patches, and got warnings again: > > https://valkyrie.yoctoproject.org/#/builders/29/builds/682 > > If I relaunch the builds, sometimes they will success, sometimes I still > get the warnings. Something seems to be intermittent here. > > I tried to reproduce locally, and again, I get the warnings in some > intermittent way. > > My setup was: > - Clean build directory, empty sstate cache. > - The local.conf attached. This is mainly the configuration used for > https://valkyrie.yoctoproject.org/#/builders/8/builds/698, with some > minor changes (like disabling the shared sstate configuration). > - Using meta, meta-poky and meta-yocto-bsp at this revision: > https://git.yoctoproject.org/poky-ci-archive/tag/?h=a-full-685 > - Used: bitbake core-image-sato core-image-sato-sdk core-image-minimal core-image-minimal-dev core-image-full-cmdline core-image-sato:do_populate_sdk > > Now here is how it went: > - On my very first build, I got some SPDX warnings. > - On my next build they were all gone. > - I tried to tweak a bit my config, cleaned my cache again and still got > no warnings. > - Then after some various modifications, I switched back again to my > very first configuration, and got again some SPDX warnings. > > So I'm sorry, I cannot give you some exact instructions to reproduce > this issue, but still we have some intermittent warnings :( Hi Mathieu, Thanks for the information you provided, it helps me to reproduce two issues 1. While hosts with different archs (such as x86-64, aarch64) sharing same sstate cache, build image from existed sstate cache reported SPDX ID missing warnings. Here is steps: On x86-64 host, build image core-image-minimal for qemuarm64 $ echo 'MACHINE = "qemuarm64"' >> conf/local.conf $ bitbake core-image-sato On aarch64 host, sharing above sstate cache and build image core-image-minimal for qemuarm64 $ echo 'MACHINE = "qemuarm64"' >> conf/local.conf $ bitbake core-image-sato 2. Sharing same sstate cache for different machines $ echo 'MACHINE = "qemux86-64"' >> conf/local.conf $ bitbake core-image-minimal $ echo 'MACHINE = "qemuarm64"' >> conf/local.conf $ bitbake core-image-minimal The issue was caused by the following two patches, [OE-core] [PATCH 2/4] meta/lib/oe/spdx30_tasks.py: fix hash link conflict while multiconfig enabled [OE-core] [PATCH V2 3/4] gcc-cross.inc: add var-SSTATE_ARCHS_TUNEPKG to vardeps of do_create_spdx I will resend review and drop them //Hongxu > -- > Mathieu Dubois-Briand, Bootlin > Embedded Linux and Kernel engineering > https://bootlin.com > > ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2024-12-25 2:41 UTC | newest] Thread overview: 8+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2024-12-17 3:47 [PATCH 1/4] meta/lib/oe/sbom30.py: correct alias Hongxu Jia 2024-12-17 3:47 ` [PATCH 2/4] meta/lib/oe/spdx30_tasks.py: fix hash link conflict while multiconfig enabled Hongxu Jia 2024-12-17 3:47 ` [PATCH V2 3/4] gcc-cross.inc: add var-SSTATE_ARCHS_TUNEPKG to vardeps of do_create_spdx Hongxu Jia 2024-12-17 3:47 ` [PATCH V3 4/4] meta/lib/oe/sbom30.py: fix alias in simplelicensing_customIdToUri not extracted Hongxu Jia 2024-12-17 7:37 ` [OE-core] [PATCH 1/4] meta/lib/oe/sbom30.py: correct alias Mathieu Dubois-Briand 2024-12-17 12:49 ` hongxu 2024-12-20 16:09 ` [OE-core] " Mathieu Dubois-Briand 2024-12-25 2:41 ` Hongxu Jia
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox