[v2,1/2] sbom: derive rootfs sbom name from ROOTFS_PACKAGE_SUFFIX

Message ID 20260331073856.1281781-2-felix.moessbauer@siemens.com
State New
Headers show
Series Make SBOM naming more robust against downstream changes | expand

Commit Message

Felix Moessbauer March 31, 2026, 7:38 a.m. UTC
Previously we open coded the name of the rootfs image, however this
breaks in case the name is changed in a downstream layer. We now
directly use the ROOTFS_PACKAGE_SUFFIX variable.

By that, we also adjust the sbom test, as SBOMs generated for non image
rootfs have a different ROOTFS_PACKAGE_SUFFIX.

Signed-off-by: Felix Moessbauer <felix.moessbauer@siemens.com>
---
 meta/classes/sbom.bbclass | 2 +-
 testsuite/cibase.py       | 6 +++---
 2 files changed, 4 insertions(+), 4 deletions(-)

Patch

diff --git a/meta/classes/sbom.bbclass b/meta/classes/sbom.bbclass
index caab3f24..10a99f37 100644
--- a/meta/classes/sbom.bbclass
+++ b/meta/classes/sbom.bbclass
@@ -50,7 +50,7 @@  generate_sbom() {
         --bind ${SBOM_CHROOT} / \
         --bind ${ROOTFSDIR} /mnt/rootfs \
         --bind ${DEPLOY_DIR_SBOM} /mnt/deploy-dir \
-        -- debsbom -v generate ${SBOM_DEBSBOM_TYPE_ARGS} -r /mnt/rootfs -o /mnt/deploy-dir/'${PN}-${DISTRO}-${MACHINE}' \
+        -- debsbom -v generate ${SBOM_DEBSBOM_TYPE_ARGS} -r /mnt/rootfs -o /mnt/deploy-dir/'${ROOTFS_PACKAGE_SUFFIX}' \
             --distro-name '${SBOM_DISTRO_NAME}' --distro-supplier '${SBOM_DISTRO_SUPPLIER}' \
             --distro-version '${SBOM_DISTRO_VERSION}' --distro-arch '${DISTRO_ARCH}' \
             --base-distro-vendor '${SBOM_BASE_DISTRO_VENDOR}' \
diff --git a/testsuite/cibase.py b/testsuite/cibase.py
index fd6a3df9..3205b4be 100755
--- a/testsuite/cibase.py
+++ b/testsuite/cibase.py
@@ -154,11 +154,11 @@  class CIBaseTest(CIBuilder):
         )
 
         for t in targets:
-            ds, pn, distro, machine = \
-                CIUtils.getVars('DEPLOY_DIR_SBOM', 'PN', 'DISTRO', 'MACHINE',
+            ds, rootfs_name = \
+                CIUtils.getVars('DEPLOY_DIR_SBOM', 'ROOTFS_PACKAGE_SUFFIX',
                                 target=t)
             for t in ["cdx", "spdx"]:
-                sbom_path = os.path.join(ds, f'{pn}-{distro}-{machine}.{t}.json')
+                sbom_path = os.path.join(ds, f'{rootfs_name}.{t}.json')
                 self.log.info(f"Check {t} SBOM in {sbom_path}")
                 with open(sbom_path) as f:
                     sbom = json.load(f)