From: "'Clara Kowalsky' via isar-users" <isar-users@googlegroups.com>
To: isar-users@googlegroups.com
Cc: Clara Kowalsky <clara.kowalsky@siemens.com>
Subject: [PATCH v2 2/2] imagetypes_vm: add support for standalone vmdk images
Date: Wed, 4 Nov 2026 08:26:00 +0100 [thread overview]
Message-ID: <20261104072600.3229817-2-clara.kowalsky@siemens.com> (raw)
In-Reply-To: <20261104072600.3229817-1-clara.kowalsky@siemens.com>
This adds vmdk as an image type, so virtual machine disks can be
generated without OVA packaging. OVA depends on the vmdk image and
reuses its output. The generic image cleanup removes the intermediate
vmdk unless it is explicitly requested in IMAGE_FSTYPES.
Signed-off-by: Clara Kowalsky <clara.kowalsky@siemens.com>
---
doc/user_manual.md | 1 +
meta/classes-recipe/imagetypes_vm.bbclass | 18 ++++++++++++++----
2 files changed, 15 insertions(+), 4 deletions(-)
diff --git a/doc/user_manual.md b/doc/user_manual.md
index 09ac080b..199eb931 100644
--- a/doc/user_manual.md
+++ b/doc/user_manual.md
@@ -540,6 +540,7 @@ Currently, the following image types are provided:
- `wic` - full disk image with user-specified partitions created and populated using the wic tool
- `ubi` - image for use on mtd nand partitions employing UBI
- `ubifs` - raw UBI filesystem image, normally used together with UBI partitions
+ - `vmdk` - virtual machine disk image
- `ova` - Open Virtual Appliance: image for use on VirtualBox or VMware
- `wsl` - tar file for Windows Subsystem for Linux
- `squashfs` - raw squashfs filesystem image
diff --git a/meta/classes-recipe/imagetypes_vm.bbclass b/meta/classes-recipe/imagetypes_vm.bbclass
index fd4e97ed..32a72bf4 100644
--- a/meta/classes-recipe/imagetypes_vm.bbclass
+++ b/meta/classes-recipe/imagetypes_vm.bbclass
@@ -8,9 +8,13 @@ FILESEXTRAPATHS:prepend = "${LAYERDIR_core}/recipes-core/images:"
OVF_TEMPLATE_FILE ?= "virtualbox/vm-img-virtualbox.ovf.tmpl"
IMAGE_SRC_URI:ova = "file://${OVF_TEMPLATE_FILE}"
-IMAGE_TYPEDEP:ova = "wic"
+IMAGE_TYPEDEP:ova = "${@'vmdk' if d.getVar('VIRTUAL_MACHINE_IMAGE_TYPE') == 'vmdk' else 'wic'}"
IMAGER_INSTALL:ova += "qemu-utils gawk uuid-runtime"
+IMAGE_TYPEDEP:vmdk = "wic"
+IMAGER_INSTALL:vmdk += "qemu-utils"
+IMAGE_CMD:vmdk = "${convert_wic}"
+
# virtual machine disk settings
SOURCE_IMAGE_FILE ?= "${IMAGE_FULLNAME}.wic"
@@ -19,9 +23,16 @@ SOURCE_IMAGE_FILE ?= "${IMAGE_FULLNAME}.wic"
VMDK_SUBFORMAT ?= "monolithicSparse"
VIRTUAL_MACHINE_IMAGE_TYPE ?= "vmdk"
-VIRTUAL_MACHINE_IMAGE_FILE = "${IMAGE_FULLNAME}-disk001.${VIRTUAL_MACHINE_IMAGE_TYPE}"
+VIRTUAL_MACHINE_IMAGE_FILE = "${@get_ova_disk_file(d)}"
+VIRTUAL_MACHINE_IMAGE_TYPE:vmdk = "vmdk"
VIRTUAL_MACHINE_DISK = "${PP_DEPLOY}/${VIRTUAL_MACHINE_IMAGE_FILE}"
+def get_ova_disk_file(d):
+ if d.getVar("VIRTUAL_MACHINE_IMAGE_TYPE") == "vmdk":
+ return "%s.vmdk" % d.getVar("IMAGE_FULLNAME")
+ return "%s-disk001.%s" % (
+ d.getVar("IMAGE_FULLNAME"), d.getVar("VIRTUAL_MACHINE_IMAGE_TYPE"))
+
def set_convert_options(d):
format = d.getVar("VIRTUAL_MACHINE_IMAGE_TYPE")
if format == "vmdk":
@@ -66,7 +77,7 @@ OVA_VARS = "OVA_NAME OVA_MEMORY OVA_NUMBER_OF_CPU OVA_VRAM \
IMAGE_TEMPLATE_FILES:ova = "${OVF_TEMPLATE_FILE}"
IMAGE_TEMPLATE_VARS:ova = "${OVA_VARS}"
-do_image_ova[prefuncs] += "convert_wic"
+do_image_ova[prefuncs] += "${@'convert_wic' if d.getVar('VIRTUAL_MACHINE_IMAGE_TYPE') != 'vmdk' else ''}"
IMAGE_CMD:ova() {
if [ ! ${VIRTUAL_MACHINE_IMAGE_TYPE} = "vmdk" ]; then
exit 0
@@ -96,7 +107,6 @@ IMAGE_CMD:ova() {
tar -uvf ${PP_DEPLOY}/${IMAGE_FULLNAME}.ova -C ${PP_DEPLOY} ${VIRTUAL_MACHINE_IMAGE_FILE}
rm -f '${DEPLOY_DIR_IMAGE}/${IMAGE_FULLNAME}.mf'
rm -f '${DEPLOY_DIR_IMAGE}/${IMAGE_FULLNAME}.ovf'
- rm -f '${DEPLOY_DIR_IMAGE}/${VIRTUAL_MACHINE_IMAGE_FILE}'
EOIMAGER
}
IMAGE_CMD:ova[depends] = "${PN}:do_transform_template"
--
2.56.0
--
You received this message because you are subscribed to the Google Groups "isar-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to isar-users+unsubscribe@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/isar-users/20261104072600.3229817-2-clara.kowalsky%40siemens.com.
prev parent reply other threads:[~2026-11-04 7:26 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-11-04 7:25 [PATCH v2 1/2] image: remove unrequested intermediate image types 'Clara Kowalsky' via isar-users
2026-11-04 7:26 ` 'Clara Kowalsky' via isar-users [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20261104072600.3229817-2-clara.kowalsky@siemens.com \
--to=isar-users@googlegroups.com \
--cc=clara.kowalsky@siemens.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox