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.
Allow network interface names to be filtered by the given
regular expression. The expression is handled by the bash
regexp operator. Interface names matching the rule will be
filtered out, all others stay. It is also possible to pass
the variable kiwi_oemnicfilter as kernel command line in a
PXE deployment. Fixes#245
This commit includes the root import feature. A `derived_from`
attribute has been included with the <type> section to make
reference to the image file to import. The image format to import
is assumed to be the same as the build type to import.
The current format supported is docker
Instead of creating a simple tarball the tools umoci and skopeo
from the docker tool chain are used to create official docker
images. Along with those tools more information to describe a
container has been added to the schema. A complete container
setup now consists of the following elements
<type image="docker">
<containerconfig name="..." maintainer="..." user="..." workingdir="...">
<entrypoint execute="command">
<argument name="option"/>
...
</entrypoint>
<subcommand execute="command">
<argument name="option"/>
...
</subcommand>
<expose>
<port number="..."/>
...
</expose>
<volumes>
<volume name="..."/>
...
</volumes>
<environment>
<env name="variable" value="value"/>
...
</environment>
<labels>
<label name="..." value="..."/>
...
</labels>
</containerconfig>
</type>
DNF is the package manager used on Fedora systems and will also most
likely replace yum for the next generation of RHEL. Along with the
implementation here an example JeOS image description for Fedora can
be found on: https://github.com/SUSE/kiwi-descriptions.
This Fixes#36
The type attribute force_mbr allows to convert a system selected
for use with a GPT to use an MBR (msdos table). The attribute
only takes effect on image configurations which would select the
GPT partitioner. This Fixes#236
If specified as such the bootloader configuration and
installation will be skipped. However the editbootinstall
and editbootconfig scripts will still be called. This
Fixes#235
spare_part receives a size value with an optional unit (M|G)
and is used for disk images to allow the creaton of a spare
partition of the configured size. Issue #234
The vboot firmware setup was a workaround on arm for the
chromebook platform several years ago. From a todays
perspective the setup and the way to boot would be different
and obsoletes the special case implementation. Thus this
is gone now. Related to Issue #234
The schema defintions for kiwi v8 still contained the
product schema definitions aka instsource which is no
longer supported by this version of kiwi. Building
SUSE products is done with the kiwi v7 code base and
will most probably be handled by an extra product
builder tool in the future maintained and developed
by the buildservice team. We would be proud if the api
of the kiwi v8 code base can be helpful for the product
builder in the future
The packages subsection <ignore> only accepted a package
name to become ignored. However a <package> subsection
to install a package allows for an arch selection. The
same should apply to ignore a package. In addition the
allowed content for the arch attribute has been changed
from simple text to a regular expression. Allowed is a
comma seperated list of reserved architecture words like
they are displayed by uname -m
In preparation to support creation of native docker containers the
way docker likes it, the kiwi schema has to be adapted. So far there
was no way to specify additional metadata information for containers.
With this commit a new section called <containerconfig> is provided.
containerconfig is a subsection of the type and only allowed for
the docker image type. This constraint is checked via a schematron
rule. In addition an xslt stylesheet moves the currently existing
container attribute, which was used to set a name for the container,
into the new containerconfig section as name attribute
For the use case to add additional image description information
an extension section exists which allows to add custom section
and attributes. Custom XML information must be connected to a
namespace in order to avoid conflicts with the existing
structure. The following example shows how to place additional
XML information:
<image>
<extension xmlns:my_plugin="http://www.my_plugin.com">
<my_plugin:my_feature>
<my_plugin:title name="cool stuff"/>
</my_plugin:my_feature>
</extension>
</image>