Message ID | 20230210084044.714348-1-felix.moessbauer@siemens.com |
---|---|
State | Accepted, archived |
Headers | show |
Series | [v3,1/1] replace custom OVA logic with imagetype logic | expand |
Am Fri, 10 Feb 2023 08:40:44 +0000 schrieb Felix Moessbauer <felix.moessbauer@siemens.com>: > 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. Thanks! My understanding is that it still works, even with bitbake2. But it always generated nasty warnings and with bitbake2 there seem to be even more of them. Nice to see them finally go. Scenario is: Layer2 builds a vmware image with ova from Layer1 (product) Layer1 overloads the default template from Isar (product line) Isar ... some modern "next" Henning > Acked-by: Adriaan Schmidt <adriaan.schmidt@siemens.com> > Signed-off-by: Felix Moessbauer <felix.moessbauer@siemens.com> > --- > Changes since v2: > > - removed API-CHANGELOG-ENTRY as recommended by reviewer > > 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 > > .../images/virtualbox}/vm-img-virtualbox.ovf.tmpl | 0 > .../recipes-core/images/vmware}/vm-img-vmware.ovf.tmpl | 0 > meta/classes/imagetypes_vm.bbclass | 9 > +++------ 3 files changed, 3 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%) > > diff --git a/meta/classes/vm-img/vm-img-virtualbox.ovf.tmpl > b/meta-isar/recipes-core/images/virtualbox/vm-img-virtualbox.ovf.tmpl > 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 > diff --git a/meta/classes/vm-img/vm-img-vmware.ovf.tmpl > b/meta-isar/recipes-core/images/vmware/vm-img-vmware.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 diff > --git a/meta/classes/imagetypes_vm.bbclass > b/meta/classes/imagetypes_vm.bbclass index 81ef866f..41f2af06 100644 > --- a/meta/classes/imagetypes_vm.bbclass +++ > b/meta/classes/imagetypes_vm.bbclass @@ -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() {
In the email from Friday, 10 February 2023 11:40:44 +03 user Felix Moessbauer wrote: > 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. > > Acked-by: Adriaan Schmidt <adriaan.schmidt@siemens.com> > Signed-off-by: Felix Moessbauer <felix.moessbauer@siemens.com> > --- > Changes since v2: > > - removed API-CHANGELOG-ENTRY as recommended by reviewer > > 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 > > .../images/virtualbox}/vm-img-virtualbox.ovf.tmpl | 0 > .../recipes-core/images/vmware}/vm-img-vmware.ovf.tmpl | 0 > meta/classes/imagetypes_vm.bbclass | 9 +++------ > 3 files changed, 3 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%) > > diff --git a/meta/classes/vm-img/vm-img-virtualbox.ovf.tmpl > b/meta-isar/recipes-core/images/virtualbox/vm-img-virtualbox.ovf.tmpl > 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 diff > --git a/meta/classes/vm-img/vm-img-vmware.ovf.tmpl > b/meta-isar/recipes-core/images/vmware/vm-img-vmware.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 > diff --git a/meta/classes/imagetypes_vm.bbclass > b/meta/classes/imagetypes_vm.bbclass index 81ef866f..41f2af06 100644 > --- a/meta/classes/imagetypes_vm.bbclass > +++ b/meta/classes/imagetypes_vm.bbclass > @@ -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() { Applied to next, thanks
Am Fri, 10 Feb 2023 08:40:44 +0000 schrieb Felix Moessbauer <felix.moessbauer@siemens.com>: > 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. > > Acked-by: Adriaan Schmidt <adriaan.schmidt@siemens.com> > Signed-off-by: Felix Moessbauer <felix.moessbauer@siemens.com> > --- > Changes since v2: > > - removed API-CHANGELOG-ENTRY as recommended by reviewer > > 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 > > .../images/virtualbox}/vm-img-virtualbox.ovf.tmpl | 0 > .../recipes-core/images/vmware}/vm-img-vmware.ovf.tmpl | 0 > meta/classes/imagetypes_vm.bbclass | 9 Why that rename actually? This is an API change for downstream layers who do not overwrite OVF_TEMPLATE_FILE but only have meta not meta-isar. I think it should be moved back to meta so other projects do not have to include meta-isar as a layer. Henning > +++------ 3 files changed, 3 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%) > > diff --git a/meta/classes/vm-img/vm-img-virtualbox.ovf.tmpl > b/meta-isar/recipes-core/images/virtualbox/vm-img-virtualbox.ovf.tmpl > 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 > diff --git a/meta/classes/vm-img/vm-img-vmware.ovf.tmpl > b/meta-isar/recipes-core/images/vmware/vm-img-vmware.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 diff > --git a/meta/classes/imagetypes_vm.bbclass > b/meta/classes/imagetypes_vm.bbclass index 81ef866f..41f2af06 100644 > --- a/meta/classes/imagetypes_vm.bbclass +++ > b/meta/classes/imagetypes_vm.bbclass @@ -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() {
diff --git a/meta/classes/vm-img/vm-img-virtualbox.ovf.tmpl b/meta-isar/recipes-core/images/virtualbox/vm-img-virtualbox.ovf.tmpl 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 diff --git a/meta/classes/vm-img/vm-img-vmware.ovf.tmpl b/meta-isar/recipes-core/images/vmware/vm-img-vmware.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 diff --git a/meta/classes/imagetypes_vm.bbclass b/meta/classes/imagetypes_vm.bbclass index 81ef866f..41f2af06 100644 --- a/meta/classes/imagetypes_vm.bbclass +++ b/meta/classes/imagetypes_vm.bbclass @@ -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() {