[v2,2/3] merge_wic_sbom: fix name of initrd sbom file when merging

Message ID 20260323103126.962344-3-felix.moessbauer@siemens.com
State Under Review
Headers show
Series [v2,1/3] merge_wic_sbom: use local variable instead of global one | expand

Commit Message

MOESSBAUER, Felix March 23, 2026, 10:31 a.m. UTC
In merge_wic_sbom the rootfs, initrd and imager SBOM ar merged. However,
the initrd one was never included, as it was accessed by an incorrect
name.

As there is no common ancestor of the initramfs and image recipe, the name
of the initrd that is generated is only coincidally coupled with the one
that is imaged. By that, we need to derive the INITRAMFS_FULLNAME variable
(set in initramfs.bbclass) from the INITRD_DEPLOY_FILE variable which
points to the initrd that is imaged.

Fixes: 174dd3e4 ("wic: create uniform SBOM describing all image ...")
Signed-off-by: Felix Moessbauer <felix.moessbauer@siemens.com>
---
 meta/classes-recipe/imagetypes_wic.bbclass | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

Patch

diff --git a/meta/classes-recipe/imagetypes_wic.bbclass b/meta/classes-recipe/imagetypes_wic.bbclass
index 5adea149..f31ea61f 100644
--- a/meta/classes-recipe/imagetypes_wic.bbclass
+++ b/meta/classes-recipe/imagetypes_wic.bbclass
@@ -212,10 +212,15 @@  EOIMAGER
 merge_wic_sbom() {
     BOMTYPE="$1"
     TIMESTAMP=$(date --iso-8601=s -d @${SOURCE_DATE_EPOCH})
+    # As there is no common ancestor of the initramfs and image recipe, the name of the
+    # initrd that is generated is only coincidally coupled with the one that is imaged.
+    # By that, we need to derive the INITRAMFS_FULLNAME variable (set in initramfs.bbclass)
+    # from the INITRD_DEPLOY_FILE variable which points to the initrd that is imaged.
+    INITRAMFS_FULLNAME="${@ d.getVar('INITRD_DEPLOY_FILE').removesuffix('-initrd.img') }"
     sbom_document_uuid="${@d.getVar('SBOM_DOCUMENT_UUID') or generate_document_uuid(d, False)}"
 
     cat ${DEPLOY_DIR_IMAGE}/${IMAGE_FULLNAME}.$BOMTYPE.json \
-        ${DEPLOY_DIR_IMAGE}/${INITRD_DEPLOY_FILE}.$BOMTYPE.json \
+        ${@ '${DEPLOY_DIR_IMAGE}/$INITRAMFS_FULLNAME.$BOMTYPE.json' if d.getVar('IMAGE_INITRD') else '' } \
         ${WORKDIR}/imager.$BOMTYPE.json 2>/dev/null | \
     bwrap \
         --unshare-user \