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
During the image build the custom rpm macro %_install_langs
is configured with the <locale> setup from the KIWI XML
description. This allows to filter language specific packages
on the rpm level and Fixes#771
This commit adds a runtime check for preferences metadata. More
specfic verifies there is a packagemanager defined and an image version
defined.
Fixes#925
Calling kiwi result bundle will take the image build results
and bundle the relevant image files according to their image
type. Depending on the result configuration this could instruct
the bundler to compress one or more files from the result.
By default this compression is switched off in the bundler but
can be activated to save storage space and speedup download
of the image with the following runtime configuration:
bundle:
- compress: true|false
If compression is activated the result image has to be
uncompressed before it can be used. This Fixes#901
Disk size calculation must take into account the empty volumes that
are to be mounted in a directory that does not exist in the root tree
otherwise there is KeyError. The result of
storate/setup._calculate_volume_mbytes must be a dict including all
defined volumes.
Fixes#904
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
An initiative to formulate industry standards around container
formats and runtime is available at https://www.opencontainers.org
Different tools to implement the specifications had been
created. The purpose of this class and its sub-classes is
to provide a common interface in kiwi to allow using all
tools such that the container support in kiwi covers every
linux distribution no matter what tooling was preferred.
Related to Issue #859
In fate#323743 the decision was made to drop dmraid from
the distribution. Along with the low business case for those
controllers and the support for linux softraid via mdadm
we also drop the support in kiwi for oem-ataraid-scan
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
Change the ContainerBuilder class to evaluate on the
configuration options to decide if the container archive
should be compressed or not. By default the archive will
be compressed, thus there is no change to the former behavior
but can be setup in ~/.config/kiwi/config.yml as follows:
container:
- compress: none|xz
This Fixes#725
This commit adds a new `uninstall` type for packages. Packages listed
with this type will be removed by the package manager cleaning also any
unneeded dependency. The removal is executed after running `config.sh`.
Also in this commit `delete` type for packages is now executed after
`uninstall` packages, meaing it also happens after `config.sh`.
Fixes#625
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
As the kiwi build dracut initrd is a generic one which
includes all installed dracut modules we missed a way to
exclude modules from beeing incorporated even if we know
it would not be needed. One example is the multipath module
which would only be useful if the oem multipath scan is
configured in the image description
With the move of the boot descriptions in its own package
the kiwi search path needs to be adapted to look for boot
descriptions in /usr/share/kiwi/custom_boot. In addition
a runtime check to exit early if the boot description could
not be found or is not specified will be provided. Related
to Issue #576
The installation of the above mentioned dracut module package
is required for oem images which uses dracut as initrd system
and have the creation of an installation image requested.
This is related to Issue #576
If an image description only contains package requests
from a bootstrap section but no image packages, it's not
required to install a package manager package into the
system
The new rule allows to check for required attributes for a specific
image type and is used for the filesystem attribute which is required
for the image type oem, vmx and pxe. This Fixes#476
Make sure the default initrd_system is set to dracut
for the vmx image type and to kiwi if no initrd_system
is specified. This allows to simplify other code parts
as we can trust there is a value set
Custom disk format options passed in the formatoptions
attribute were not handled. In addition options with a
value passed to qemu were handled in the wrong way.
This commit addresses both problems and Fixes#463
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
If an element like displayname or oem-boot-title contains
characters outside of the ascii table this causes trouble
when kiwi writes out the profile file and the code is called
through python2. The reason here is that the default encoding
on write() (and other methods) is set to ascii in python2
and when it receives unicode characters outside of the
ascii spec a UnicodeEncodeError is thrown. Now all of kiwi
is using Unicode which means this does not produce a problem
when calling the code through python3 because the default
encoding is utf-8 there. This patch introduces a method
which allows to change python's default encoding and calls
it at the code point where we write the profile because we
got unicode and we want to write unicode in any case.
This fixes at least one situation for python2-kiwi to
allow the use of non ascii characters in the XML setup.
If other places will be found the same approach should allow
to fix it for python2
Updates all XML descriptions to latest schema version and
also includes adaptions to the test XML descriptions for
testing the new Xen guest and server setup
* Delete kiwi internal ibs: and suse: types
* Delete handling for --obs-repo-internal and provide a
compatibility message to the user
* Buildservice download server url and scope can be configured
via ~/.config/kiwi/config.yml
* Translate obs urls to http in import_repositories_marked_as_imageinclude
* Use new Uri.is_public method in renamed runtime check
check_image_include_repos_publicly_resolvable
This commit fixes#395, with it, using --ignore-repos, does not
delete imageonly repositories from the description file. This way
imageonly is prepared to be used in the buildservice even when using
the 'obsrepositories:/' reference style.
This commit adds support for the rpm-check-signatures flag, which
sets the package manager to verify or not each package signature.
By default KIWI assumes no gpg checks are done.
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.
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
If a kiwi initrd is used, the kernel used to build the kiwi
initrd and the kernel used in the system image must be the
same in order to avoid an inconsistent boot setup. This is
related to (bsc#1027610)
Runtime check to check for required docker tools umoci and
skopeo. As long as tools tools are not available in the
core distro of all distributions we avoid spec file requirements
and check at runtime if they can be found
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>
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