Is image type vmx obsolete?

14 views
Skip to first unread message

Sven Wölfel

unread,
Jan 30, 2023, 3:37:43 AM1/30/23
to kiwi
Hello,
while playing around with some of the image descriptions and building images of the type vmx I stumbled upon an "issue".
In the xml description there is a section like this:

    <packages type="oem">
        <package name="dracut-kiwi-oem-repart"/>
        <package name="dracut-kiwi-oem-dump"/>
    </packages>

So, since I was building Images of type vmx I payed this section no mind. Until I had a look at the deployment log and saw that the kiwi build type was oem and the section above was used in the package selection for the Image.
So after digging in to the Documetation I saw no mention of the vmx image type. After some more reading on the issue page on Github I found this issue.
There the following section was described as solution to substitute vmx with oem.

<type image="oem" ...>
    <oemconfig>
        <oem-resize>false</oem-resize>
    </oemconfig>
</type>

So is this now the standard behavior of kiwi-ng and the descriptions should be ported to the above oem definition since vmx is just a legacy descriptor?  Or is there just a gap in the documentaion?

For someone new working with kiwi-ng this is quite confusing especially when working with existing descriptions and the official documentation.

With kind regards

Sven

David Cassany

unread,
Jan 30, 2023, 4:17:57 AM1/30/23
to kiwi-...@googlegroups.com
Hi Sven,

Indeed you are right. `vmx` image type is a legacy one as this turns to
be a specific case of the `oem` type. Kiwi automatically converts old
descriptions into the schema version of the running kiwi.

As noted in the issue link you found the `vmx` type turned to be
limiting for anyone aiming to build non expandable disk VMs with some
specific configuration available as part of the `oemconfig` section. So
that the `oem-resize` section in `oemconfig` was introduced. At this
point `vmx` type execution path compared with the one of the `oem` type
including `<oem-resize>false</oem-resize>` were completely equivalent.

So, the dracut modules to dump and repartition disk are only activated
and included within the initrd if `oem-resize` is set to true. Yes,
having a `vmx` type with some `oem` package types listed will result in
also including those. You can also make use of the command

```
kiwi-ng image info --print-xml
```

to actually render the XML converted to latest version known by the
current kiwi. This is what will be really processed and evaluated by
kiwi. This is helpful to realize and notice eventual schema changes.
Documentation is expected to be aligned with the latest upstream
release, so having a look on the converted XML to latest version with
the `image info` command can be helpful to better align your
descriptions with the current docs.

> So is this now the standard behavior of kiwi-ng and the descriptions
> should be ported to the above oem definition since vmx is just a legacy
> descriptor?  Or is there just a gap in the documentaion?

Yes, vmx is a legacy, as this is, in fact, an specific use case of `oem`
type. KIWI automatically converts from one to the other. I'd say it is a
good practice to keep XML schema up to date, even though we take special
care to make all schema changes backward compatible.

> For someone new working with kiwi-ng this is quite confusing especially
> when working with existing descriptions and the official documentation.

I can see you confusion and doubts, I am wondering how this could be
documented to make it easier to understand and follow. Do you think
having a note or section explaining `vmx` type is legacy and how this is
converted to `oem` would have been clarifying for you?

I hope the explanation is helpful.

Regards,
David

Sven Wölfel

unread,
Jan 30, 2023, 6:56:36 AM1/30/23
to kiwi
Thank you very much for the clarification! That answered all my questions.

> I can see you confusion and doubts, I am wondering how this could be
> documented to make it easier to understand and follow. Do you think
> having a note or section explaining `vmx` type is legacy and how this is
> converted to `oem` would have been clarifying for you?

Yes maybe a short note on the image types section of the documentation would help.
At least for someone like me who starts aout with kiwi and tries to get into it by working with existing descriptions.
Thanks again!

Regards

Sven


Reply all
Reply to author
Forward
0 new messages