@@ -476,3 +476,13 @@ Bitbake 2.0 for better performance. It also requires isar-sstate script to be
migrated to zstd.
Mixing old Gzip-based and new ZStandatd-based sstate cache is not recommended
and should be avoid for correct compatibility.
+
+### VM Image
+
+As a result of the Bitbake 2.0 migration, the vm image type has to be reworked:
+Previously, a path to the `OVF_TEMPLATE_FILE` had to be somehow injected so
+that the description file was located. This is now replaced by the imagetype
+logic. By that, the `OVF_TEMPLATE_FILE` needs to be located in a directory
+named according to the machine, next to the image file. If this is not possible
+(e.g. in cross-layer scenarios), add the location to the FILESEXTRAPATHS of the
+corresponding machine.conf.
similarity index 100%
rename from meta/classes/vm-img/vm-img-virtualbox.ovf.tmpl
rename to meta-isar/recipes-core/images/virtualbox/vm-img-virtualbox.ovf.tmpl
similarity index 100%
rename from meta/classes/vm-img/vm-img-vmware.ovf.tmpl
rename to meta-isar/recipes-core/images/vmware/vm-img-vmware.ovf.tmpl
@@ -6,11 +6,8 @@
inherit buildchroot
-USING_OVA = "${@bb.utils.contains('IMAGE_BASETYPES', 'ova', '1', '0', d)}"
-
-FILESEXTRAPATHS:prepend := "${LAYERDIR_core}/classes/vm-img:"
OVF_TEMPLATE_FILE ?= "vm-img-virtualbox.ovf.tmpl"
-SRC_URI += "${@'file://${OVF_TEMPLATE_FILE}' if d.getVar('USING_OVA') == '1' else ''}"
+IMAGE_SRC_URI:ova = "file://${OVF_TEMPLATE_FILE}"
IMAGE_TYPEDEP:ova = "wic"
IMAGER_INSTALL:ova += "qemu-utils gawk uuid-runtime"
@@ -67,8 +64,8 @@ OVA_VARS = "OVA_NAME OVA_MEMORY OVA_NUMBER_OF_CPU OVA_VRAM \
OVA_FIRMWARE OVA_ACPI OVA_3D_ACCEL \
OVA_SHA_ALG VIRTUAL_MACHINE_IMAGE_FILE"
-TEMPLATE_FILES += "${@'${OVF_TEMPLATE_FILE}' if d.getVar('USING_OVA') == '1' else ''}"
-TEMPLATE_VARS += "${OVA_VARS}"
+IMAGE_TEMPLATE_FILES:ova = "${OVF_TEMPLATE_FILE}"
+IMAGE_TEMPLATE_VARS:ova = "${OVA_VARS}"
do_image_ova[prefuncs] += "convert_wic"
IMAGE_CMD:ova() {
This patch refactors the imagetypes_vm class for virtualbox and vmware images. The existing manual implementation does not work anymore when referencing ova config files across layers. Instead, we now use the imagetypes logic, which avoids the problematic changes of FILESEXTRAPATHS and SRC_URI. Signed-off-by: Felix Moessbauer <felix.moessbauer@siemens.com> --- Changes since v1: - append with += to IMAGER_INSTALL:ova Note: The following pattern does NOT work: IMAGER_INSTALL:append:ova. The reason is that we unconditionally append to the variable in the machine config. This pattern is known as not supported. Felix RECIPE-API-CHANGELOG.md | 10 ++++++++++ .../images/virtualbox}/vm-img-virtualbox.ovf.tmpl | 0 .../recipes-core/images/vmware}/vm-img-vmware.ovf.tmpl | 0 meta/classes/imagetypes_vm.bbclass | 9 +++------ 4 files changed, 13 insertions(+), 6 deletions(-) rename {meta/classes/vm-img => meta-isar/recipes-core/images/virtualbox}/vm-img-virtualbox.ovf.tmpl (100%) rename {meta/classes/vm-img => meta-isar/recipes-core/images/vmware}/vm-img-vmware.ovf.tmpl (100%)