[v2] imagetypes_vm: Use IMAGE_FULLNAME for OVA image filenames

Message ID 20250521200156.28627-1-badrikesh.prusty@siemens.com
State Under Review
Headers show
Series [v2] imagetypes_vm: Use IMAGE_FULLNAME for OVA image filenames | expand

Commit Message

Badrikesh Prusty May 21, 2025, 8:01 p.m. UTC
Fix ownership update in do_image_ova task for custom OVA names. The do_image_ova
task uses ${IMAGE_FULLNAME}.ova for ownership updates instead of ${OVA_NAME}.ova,
leading to build failures in virtualbox/VMware images.

Failure logs: (Here, OVA_NAME = "isar-image-base-test")
| isar-image-base-test.ovf
| isar-image-base-test.mf
| isar-image-base-debian-bookworm-virtualbox-disk001.vmdk
| Removing /etc/schroot/isar-builder-88786470-74dc-4172-8907-531a0306c699-2655
| Removing /etc/schroot/chroot.d/isar-builder-88786470-74dc-4172-8907-531a0306c699-2655
| chown: cannot access '/build/tmp/deploy/images/virtualbox/isar-image-base-debian-bookworm-virtualbox.ova': No such file or directory

Fix VM image filenames: Use IMAGE_FULLNAME for VM images (.ova, .ovf, .mf)

OVA_NAME is embedded in the VM's description (metadata), so the imported image
retains that name, independent of the filenames.

Signed-off-by: Badrikesh Prusty <badrikesh.prusty@siemens.com>
---
 meta/classes/imagetypes_vm.bbclass | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

Patch

diff --git a/meta/classes/imagetypes_vm.bbclass b/meta/classes/imagetypes_vm.bbclass
index b20a8e04..4057361e 100644
--- a/meta/classes/imagetypes_vm.bbclass
+++ b/meta/classes/imagetypes_vm.bbclass
@@ -70,9 +70,9 @@  IMAGE_CMD:ova() {
     if [ ! ${VIRTUAL_MACHINE_IMAGE_TYPE} = "vmdk" ]; then
         exit 0
     fi
-    rm -f '${DEPLOY_DIR_IMAGE}/${OVA_NAME}.ova'
-    rm -f '${DEPLOY_DIR_IMAGE}/${OVA_NAME}.ovf'
-    rm -f '${DEPLOY_DIR_IMAGE}/${OVA_NAME}.mf'
+    rm -f '${DEPLOY_DIR_IMAGE}/${IMAGE_FULLNAME}.ova'
+    rm -f '${DEPLOY_DIR_IMAGE}/${IMAGE_FULLNAME}.ovf'
+    rm -f '${DEPLOY_DIR_IMAGE}/${IMAGE_FULLNAME}.mf'
 
     export PRIMARY_MAC=$(macgen)
     export LAST_CHANGE=$(date -u "+%Y-%m-%dT%H:%M:%SZ")
@@ -85,16 +85,16 @@  IMAGE_CMD:ova() {
         export DISK_UUID=$(uuidgen)
         export VM_UUID=$(uuidgen)
         # create ovf
-        cat ${PP_WORK}/${OVF_TEMPLATE_STAGE2} | envsubst > ${PP_DEPLOY}/${OVA_NAME}.ovf
-        tar -cvf ${PP_DEPLOY}/${OVA_NAME}.ova -C ${PP_DEPLOY} ${OVA_NAME}.ovf
+        cat ${PP_WORK}/${OVF_TEMPLATE_STAGE2} | envsubst > ${PP_DEPLOY}/${IMAGE_FULLNAME}.ovf
+        tar -cvf ${PP_DEPLOY}/${IMAGE_FULLNAME}.ova -C ${PP_DEPLOY} ${IMAGE_FULLNAME}.ovf
 
         # VirtualBox needs here a manifest file. VMware does accept that format.
         if [ "${VMDK_SUBFORMAT}" = "monolithicSparse" ]; then
-            echo "SHA${OVA_SHA_ALG}(${VIRTUAL_MACHINE_IMAGE_FILE})=$(sha${OVA_SHA_ALG}sum ${PP_DEPLOY}/${VIRTUAL_MACHINE_IMAGE_FILE} | cut -d' ' -f1)" >> ${PP_DEPLOY}/${OVA_NAME}.mf
-            echo "SHA${OVA_SHA_ALG}(${OVA_NAME}.ovf)=$(sha${OVA_SHA_ALG}sum ${PP_DEPLOY}/${OVA_NAME}.ovf | cut -d' ' -f1)" >> ${PP_DEPLOY}/${OVA_NAME}.mf
-            tar -uvf ${PP_DEPLOY}/${OVA_NAME}.ova -C ${PP_DEPLOY} ${OVA_NAME}.mf
+            echo "SHA${OVA_SHA_ALG}(${VIRTUAL_MACHINE_IMAGE_FILE})=$(sha${OVA_SHA_ALG}sum ${PP_DEPLOY}/${VIRTUAL_MACHINE_IMAGE_FILE} | cut -d' ' -f1)" >> ${PP_DEPLOY}/${IMAGE_FULLNAME}.mf
+            echo "SHA${OVA_SHA_ALG}(${IMAGE_FULLNAME}.ovf)=$(sha${OVA_SHA_ALG}sum ${PP_DEPLOY}/${IMAGE_FULLNAME}.ovf | cut -d' ' -f1)" >> ${PP_DEPLOY}/${IMAGE_FULLNAME}.mf
+            tar -uvf ${PP_DEPLOY}/${IMAGE_FULLNAME}.ova -C ${PP_DEPLOY} ${IMAGE_FULLNAME}.mf
         fi
-        tar -uvf ${PP_DEPLOY}/${OVA_NAME}.ova -C ${PP_DEPLOY} ${VIRTUAL_MACHINE_IMAGE_FILE}
+        tar -uvf ${PP_DEPLOY}/${IMAGE_FULLNAME}.ova -C ${PP_DEPLOY} ${VIRTUAL_MACHINE_IMAGE_FILE}
 EOIMAGER
 }
 IMAGE_CMD:ova[depends] = "${PN}:do_transform_template"