The new element controls the behavior of the repart/resize code
in the oem-repart dracut module. By default the repart/resize
happens on every reboot and therefore also allows for disk
geometry changes during the livetime of the machine. If the
element is set to false the repart/resize operation happens
only once and then never again. To check for this condition
a new profile environment variable kiwi_rootpartuuid which
holds the PARTUUID of the root partition has been added to
the disk builder.
Regexp patterns used in the schema are translated into python
expressions by generateDS. It's required to use the XSD schema
to run generateDS, xsd however has some restrictions on pattern
use which leads to a warning message for the ones fixed here
This commit adds the `squashfscompression` attribute in type element. It
can take `gzip`, `zstd`, `xz`, `lzo`, `lz4` or `none`. The default is `xz`.
Fixes#1315
Added new type attribute:
```xml
<type ... spare_part_fs_attributes="..."/>
```
which can be a comma separated list of the following currently
supported filesystem attributes:
* no-copy-on-write
* synchronous-updates
See chattr and filesystem manual pages for details on those
attributes. More attributes for the spare part context can be
added on request. This Fixes#1233
This commit updates xml_parser.py autogenerated code using a newer
generateDS version. The previous generateDS version is not properly
handling the regular expressions of some element's content.
Fixes#1217
Repository source paths can be more than just a baseurl.
There is also the opportunity to point to a metalink
file or a mirrorlist. In both cases the packagemanager
needs to know the type of this target. Therefore a new
attribute called sourcetype exists which allows to
specify the type the repo path uri is associated with.
Currently the dnf repository class is the only one that
makes use of the information. This change is required to
support Fedora >= 30 images. I also expect this concept
to be used by other distributions in the future
Along with the fsmountoptions attribute there is now also the
fscreateoptions attribute which allows to control the options
used for creating the filesystem. Please note, it's not kiwi's
task to validate that the given option string is supported
by the selected filesystem. This means providing wrong values
here will cause the build to fail at the time the filesystem
gets created. This Fixes#1109
This element allows the user to specify a relative path to an alternative
Vagrantfile that will be embedded inside the finished Vagrant box.
- update XML schema
- add additional logic to DiskFormatVagrantBase.create_image_format
- add unit test for the custom Vagrantfile
- fix other vagrant unit tests
The spare partition could be used to introduce one additional
partition table entry. With this patch the following new type
attributes will be added:
* spare_part_fs="fsname"
* spare_part_mountpoint="/location"
* spare_part_is_last="true|false"
Along with the setup of the partition size the filesystem and
its mountpoint can be specified. If set the contents of the
rootfs at the specified spare location will be synced to that
partition. The spare_part_is_last attribute will place the
spare partition at the end of the disk. Note this attribute
is only available for the simple vmx disk type. This is
related to bsc#1129566
There is no further demand in the client config creation for the
legacy netboot code. Customers using the netboot initrd already
create the client config.<MAC> file manually or through another
system. With the next generation kiwi we also recommend the disk
based network deployment using the dracut capabilities and marked
the netboot code as still supported but on the legacy stream.
Along with the deletion in the schema the following changes
were also done:
* Deleted use of pxedeploy section in implementation
* Increase schema version to v7.0
* Update documentation on schema version update
* Added xsl stylesheet conversion from v6.9 to v7.0
Automatic schema version upgrade from v6.9 to v7.0 deletes
the pxedeploy section from any type specification
This Fixes#19
@classmethod are used in Python to represent methods that can
query and update the class (cls parameter). Is expected to be
used for metaprograming, or advanced techniques that require the
access to the class itself, before we have an instance.
@staticmethod are used to associate a function to a class. It will
not be have access to the instance (self) not the class (cls). In
other programming languages are known as class methods.
This patch replace all the @classmethod with @staticmethod when
there is not need to access to the cls parameter, because the
intention is to be used as normal functions.
This commits adds initial support to build Vagrant boxes with the Virtualbox
provider.
- The attribute 'provider' of the option <vagrantconfig> now supports the option
"virtualbox".
- A new boolean attribute 'virtualbox_guest_additions_present' was added to
<vagrantconfig>. When set to true, KIWI will assume that guest additions have
been installed into the base image and configure the shared folders to use
vboxfs, otherwise rsync will be used.
This fixes#532 (https://github.com/SUSE/kiwi/issues/532).
In the preferences section the following optional subsection
can be configured:
<rpm-locale-filtering>true|false</rpm-locale-filtering>
If set to true the default locales POSIX, C, and C.UTF-8 are
applied as rpm install_lang macro. If the locale section is
configured in addition the list is extended by that information
too
This commit adds a new attribute called:
<type ... install_continue_on_timeout="true|false"/>
It allows to setup the boot timeout for install images
build with KIWI. If not set or set to 'true' the configured
boottimeout or its default applies to the install image
as it was before. If set to 'false' there will be no
timeout in the install image bootloader setup and the boot
only continues on manual intervention.
With this commit it is possible to set tcp or upd (e.g. "80/tcp") for
exposed container ports. If no protocol is provided OCI defaults are
applied.
Fixes#906
This commit adds the history section in contianerconfig. With it
'author', 'created_by' and 'comment' can be customized. In addition
'created' is always included with the image creation date time.
'created_by' entry is set to 'KIWI __version__' by default if nothing
is provided.
Fixes#852
For some reason the xml_parse code generated by generateDS v2.29.24
caused warnings on simple type XSD patterns. Therefore I rebuild
the code with the stable build version v2.29.14 which fixed that
issue
This commit makes volid attribute also available for OEM images.
The installation media makes use of the volid value. Only posix
safe names are allowed, up to 32 characters.
Fixes#811
Along with the change we pin generateDS version to 2.29.14
because the newer version (2.29.19) creates broken python
syntax for elements with a value list for their content
like it's the case for the packagemanager element. The
tool uses the name k.packagemanager.content as class name
which is invalid for python.
The optional label attribute in a volume section allows
to specify a filesystem label for the selected volume.
The label setup will have no effect on filesystems
which implements their own volume management like it's
the case for btrfs. This Fixes#738
If the new type attribute btrfs_quota_groups is set to true
this will enable the quota group system for btrfs based systems.
This Fixes#772 and bsc#1093518
This license tag does not effect the resulting image in any way. The tag
is just included to state the license of the kiwi image sources in case
they are distributed.
Fixes#728
Any iso image we create will be a hybrid image. That was
already the default for any install iso image and was a
configuration option for live images. The optional selection
only existed for systems which do not provide tools to
make an iso hybrid. All distributions kiwi supports provides
this capabilities and there is no good reason why a live
or install iso should not be hybrid and bootable as iso
and as disk. Also the boot in disk mode became the preferred
boot method for the majority of our users which requires
to provide a hybrid iso
With this commit the profile can include other profiles as a dependency.
This way it is possible build an image defined by multiple profiles by just
calling a single composed profile from the command line.
Fixes#658
A profile could be relevant for only a specific architecture.
There was no way to express that in the XML description. With
the change in this commit a specification like the following
is possible:
<profiles>
<profile name="A" description="..." arch="aarch64"/>
<profile name="B" description="..."
</profiles>
Profile A is only usable on the aarch64 architecture, whereas
profile B would be usable on all architectures.
* Selecting an arch specific profile from the commandline via
the --profile option on a system which is not of that architecture
will result in an error message.
* Using the import="true" attribute in the <profile> definition
for an arch specific profile will cause the import of that
profile only on that architecture and silently ignore the
import on any other architecture
This Fixes#637
Now the locale pattern in the schema also supports POSIX. Note
that POSIX will be only accepted if listed in the first place of the comma
separated list.
This commit fixes#570
There is the standard dracut dmsquash-live module based on
the device mapper technology and the kiwi-live module based
on the overlayfs technology. The setup of the live iso structure
in kiwi is compatible to both modules. Thus it makes sense
to allow to choose the technology via the flags attribute
<type image="iso" ... flags="overlay|dmsquash"/>
Please note both modules supports a different set of live
features. This Fixes#568
This commit rearranges some method and variable names and includes
a new runtimecheck to ensure the mediacheck attribute is not set
when building non x86 images.
Patch related to bsc#1049304
This commit adds the checkiso attribute in type tag, only available for
iso image types. Checkiso is boolean that determines the presence of0
a Mediacheck menu entry or not in the bootloader.
This patch is related to bsc#1049304
Cleanup of the schema, delete obsolete and unused attributes
and sections. Details of the change can be found in the
conversion stylesheet convert66to67.xsl
* Deleted domain attribute from machine section
* Added xen_server attribute to specify a type to be a Xen dom0
* Added xen_loader attribute in machine section to specify the
target guest loader this image is expected to become loaded
with
Given there is a valid Oxygen license owned by the company
as described in https://www.oxygenxml.com/oxygen_scripting.html
the schema documentation can be created using Oxygen. This
commit allows building the schema docs with alternative
doc builders and in case of Oxygen would change the way the
schema docs are generated in the following way:
1. Install Oxygen and setup the license to activate the tool
2. Setup the KIWI development shell environment to export
the schema_tool variable to point to the schemaDocumentation.sh
script provided by the Oxygen installation
export oxygen_tool=/path/to/Oxygen/schemaDocumentation.sh
3. In any case of a schema change manually call:
tox -e schema
This step was done before as part of the tox doc target
but can't be done automatically because it would require
a correctly licensed Oxygen installation in the travis
environment. Thus the result data has to be part of the
pull request
4. Build the documentation and review the result
tox -e doc
5. Create the pull request
This commit adds imageonly attribute support for the repository
element. imageonly is a boolean attribute that if true indicates
that the repository is no used for the build but needs to be
configured for the resulting image.
Fixes#362
This commit adds repository_gpgcheck and package_gpgcheck attributes
to the repository tag in schema. With this change each repository
can be configured individualy to enable repository signatures check
and/or enable signature package check. The configuration is done at
repository level, thus it is not conflicting with the wide package
manager configuration flag <rpm-signatures-check>.
Fixes#358
The data structures are auto generated by the generateDS
tool which works nicely except for the arch-name xsd pattern
used in the RelaxNG schema. For some reason the used regular
expression is translated by generateDS into a python
expression not matching the original expression from the
schema. The result is an invalid python warning message after
the schema has successfully validated the arch string.
The problem has been reported to the generateDS developer.
As long as their is no fix available in generateDS the
following workaround in kiwi applies: The original xs:token
pattern validation will be disabled on the generateDS
level and applies only to the schema. This Fixes#347
This commit adds the possibility of clearing asny subcommand or
entrypoint. This is relevant for docker derived images, as they
inherit the configuration and it might lead to some bad behavior.