In addition to the volume volume management settings also
allow to setup low level table entries like in the following
example:
<partitions>
<partition name="var" size="100" mountpoint="/var" filesystem="ext3"/>
</partitions>
Fedora based integration tests should install the fedora-release
package. If no release package is specified the generic-release
package is choosen which is unexpected. This Fixes#1957
When building debian based images the bootstrap phase
is done by calling debootstrap. If kiwi is called on
an already existing root tree via --allow-existing-root
this will make debootstrap to fail in any case. This
is because for debootstrap it's an error condition if
there is already data in the root. However, for kiwi
and the explicitly requested re-use of the root tree
this is not an error. Thus this commit skips the
bootstrap by debootstrap and directly continues with
the image phase.
There is no version of suse we support that provides
the old xattr module. Thus the requirement can be set
in a clean way to pyxattr and the setup.py trickery
can be deleted
The ramdisk unit generator reads the config.bootoptions
file and extracts the root_uuid from it. This is done
with a very simple shell read using a space as separator.
However the last element is never read by that code.
As long as there was yet another kernel cmdline option
after the root= option this bug was not an issue. But
as soon as the root= option is last in the list it will
not be read and the generator exits prior creating the
sysroot.mount target. This commit fixes it in a way
that it makes sure there is always a space at the end
of the config.bootoptions file
Allow to specify a bundle_format per <type> which is used
at the time of the result bundle creation to create image
output names matching the provided pattern.
This Fixes#1943
Up to now kiwi tried to umount a resource it has mounted for some
time and if it was not possible due to a busy state the process
continued. In any of these situations it was not possible to free
up the nested resources and it could also happen that the image
build result got corrupted because there is still data that can
be consumed but shouldn't be there anymore. The change here makes
kiwi to stop the process and raise with an error also including
the information that there are now resources still active but
busy on the host and a manual cleanup is unfortunately needed.
This Fixes#1914
The systemd-remount-fs.service expects devices to be present
in their UUID representation. When booting without an initrd
there is no udev and the root= device must be provided with
the kernel exposed unix device name. In addition there is no
UUID device representation for virtio devices which are used
together with the small kvmsmall kernel of this example.
Since booting of this appliance is done via:
$ kvm --kernel (kernel-kvmsmall) \
-drive file=kiwi-test-image-embedded.raw,if=virtio \
-append "root=/dev/vda1 console=ttyS0 rw"
The kernel rootfs is mounted in rw mode anyway. Thus the systemd
remount service is not useful in this case and switched off
For initial provisioning of LUKS encrypted disk images an
empty passphrase key is handy to avoid interaction in the
deployment process. However, the dracut kiwi modules were
lacking the information that the luks keyfile could be an
empty passphrase key which must not be opened with the
potential risk to get prompted for input. This commit
introduces a new profile environment variable evaluated
by the dracut kiwi lib code to open the LUKS pool and
allows to distinguish the situation on key files with
or without a passphrase
It's allowed to configure an image building without an
initrd and/or bootloader setup. These are settings mostly
used in the embedded world and this build test makes sure
images of that kind can be build
In addition to the serialized Result instance kiwi.result
file this commit also creates a portable version of this
information in kiwi.result.json. Only the information that
can be expressed as json document is part of the portable
version. This is related to Issue #1918
Restructure the documentation to put all plugin documentation
under its own category. Add a chapter about the stackbuild
plugin, it's concepts and use cases. This Fixes#1907
On the toplevel of an image description you can now
specify include directive(s) like in the following
example
<image ...>
...
<include from="filename_a.xml"/>
...
<include from="filename_b.xml"/>
</image>
At the place of their occurrence the include statement
will be replaced with the contents of the given filename.
The implementation is based on a XSLT stylesheet and
applies very early in the process. The stylesheet reads
the contents of the given file as XML document().
Thus only valid XML documents gets accepted by this
include concept. This Fixes#1929 and is related to
Issue #1918
When building raid based images the buildhost needs mdadm.
In addition rework the place to require disk based tools.
Most of them were added to the filesystem systemdeps but
belong to the disk systemdeps
Errors due to missing or no type definitions were reported
provding the internal object reference of the XML parse
result. This is useless information for users and needs
to be done better. This commit fixes the error message to
avoid showing object references and includes information
about the applied profiles used for this XML state.
The documentation for building a legacy pxe image was not
using the profiles (Flat or Compressed) as the actual image
description for this example requires it. This Fixes#1923
If an extra boot partition is in use the creation of the config
file for the loopback boot feature was using the wrong path.
This commit fixes it and also introduces integration checks
which builds in this condition
The value for GRUB_CMDLINE_LINUX_DEFAULT should only be
changed if custom kernelcmdline values are provided. In
case there are none kiwi should not change this value.
The test to check for this condition is based on the
result cmdline reduced by the root setting. However the
default cmdline setting in kiwi appends 'rw' in addition
to the root device information. This means the default
kernelcmdline is never empty and therefore the grub
setting GRUB_CMDLINE_LINUX_DEFAULT="rw" is always set.
This commit fixes the conditional change by making sure
the default cmdline only consists out of the root
device information. This Fixes#1650
The option setting '--logfile stdout' is now a special form
and logs the messages usually written to a file to stdout
instead. This is handy if all messages of the build are
requested but the --debug switch is not because it does more
than that, e.g calling scripts through debug'able screen
sessions
In suse there are many programs replaced by the busybox
alternative and also preferred by the package manager.
However there are also packages like the kernel in suse
which wants gawk and not busybox-gawk. In kiwi to build
images there are two installation phases, the bootstrap
phase which installs mandatory packages to allow chroot
operations and the image phase which installs the rest
of the requested packages as chroot operation. In this
two pass step the package manager is called twice to
resolve dependencies and that causes the issue with the
preferred busybox packages which gets pulled in in the
first phase. To prevent this there are only two options:
1. Explicitly list the non busybox packages in the
bootstrap phase
2. Prevent the image phase and put all packages to
the bootstrap phase such there is only one package
manager call for dependency resolution
This commit implementes option 1. because having all
packages in the bootstrap phase means that the host
packagemanager resolves and if the host packagemanager
is somehow not compatible with the image target this
leads to other weird issues which are not obvious and
hard to debug.
kiwi is called with --debug in obs which triggers the scripts
to be called through screen. However the obs caller is not
associated with a terminal thus it fails. This commit creates
an exception for debug mode when running in obs
This patch fixes#1911 and makes secure boot images to work again in Ubuntu 20.04
Co-authored-by: Luis Ladislao Gonzalez Fernandez <luislgf@inditex.com>
When creating a custom script it usually takes some iterations of
try and testing until a final stable state is reached. To support
developers with this task kiwi calls scripts associated with a
screen session. The connection to screen is only done if kiwi
is called with the --debug option.