There is a code path that fixes the grub2-mkconfig used root device
when building in an environment that does not allow to resolve the
by-X path names, e.g an obs build worker without udev. For images
that explicitly defines a root=... value in the kernelcmdline
attribute the root device check was not called because the
_get_root_cmdline_parameter method returns None. This commit fixes
the method to return the expected root device in any case such that
the grub2-mkconfig root device check has a chance to fix what
grub2-mkconfig has created. This fixes bsc#1172928
In agreement with IBM the sle12 integration test has been moved
into the internal buildservice. The reason for this change is
a python 3.4 compatibility problem. This version of python is
used in sle12 but would require patching of upstream kiwi in
terms of type hints and annotations to continue to work.
We don't want to cary this patch upstream but in the sle12_kiwi
repository which contains the kiwi used in sle12. Therefore
also the integration test needs to move into the internal
sle12 space.
An update of vim in Tumbleweed will move /etc/vimrc to /usr/share/vim as part of
the /usr - /etc split. This makes the sed call fail because /etc/vimrc no longer
exists.
However, the fix is not required anymore then, as the vim package dropped the
"syntax on" line from the default vimrc.
When building a custom kiwi initrd the root directory
has the permissions of the mkdtemp created directory
but should have the permissions of a linux root dir
which is 0755. This Fixes#1394
Allow to put a disk.sh script as part of the image description
which is called for the disk image types `vmx` and `oem`
only and runs after the synchronisation of the root tree into the
disk image loop file. At call time of the script the device name
of the currently mapped root device is passed as a parameter.
The chroot environment for the call is the mounted disk itself
which makes this different from the config.sh/images.sh caller
environment. This Fixes#1464
The width of the dialog was set to a small value which
causes the message to be choped. I found this when testing
pxe deployments. The error messages on "Failed to fetch..."
were missing the interesting part
instances of VolumeManager creates temporary directories but
only stores the latest one. The cleanup leaves former directories
behind which is fixed by this commit
In preparation to allow a chroot operation into the loop
mounted disk this commit refactors the process when filesystems
gets umounted and also fixes the canonical order for calling
the destructors. Related to Issue #1464
There are still people who like many extra static inflexible
entries in a partition table instead of using LVM or filesystem
volume capabilities for sometimes good but often questionable
reasons. In kiwi we intentionally support partition table
entries on a restricted basis but that does not mean you can't
create an image with a highly customized partition table.
However it includes some bits of custom code as part of the
image description and that's what this reference implementation
of an image with custom partitions demonstrates. The image
described here adds three extra partitions, var, var/log and
var/audit. The concept to create custom partitions is based on
specifying a spare partition which is by default created before
the root partition. The spare space can now be sliced into as
many partitions as needed and that needs to be implemented by
the author of the image description. Of course the partition
table itself comes with limitations which has to be respected
depending on the partition table type.
This commit fixes the patch applied on grub.cfg when EFI mode is
selected and grub < 2.04. There are some distros that make use of the
`linux16` command instead of `linux` in grub configuration, this commit
extends the regex to also consider `linux16` command.
The way the post_init method was used to test custom arguments
leads to a broken I/O wrapper. As consequence the test failed
when called with "pytest -s" and also leaves files around from
other test I/O redirections.
on e.g Fedora Rawhide rpm complains about bare word comparison
error: bare words are no longer supported, please use "..."
This patch fixes the spec template to respect this
The current way to detect the dracut output file format was
based on a lookup of the format used in the dracut tool itself.
However there are distributions like Ubuntu which calls dracut
and passes the name of the initrd file as options to the call.
This invalidates the checking done by kiwi. The only chance
for kiwi to do the same than the distributions does is by
looking for an initrd file pre-created by the package
installations and use the same format. Only if no such initrd
file exists the former format detection code applies. The
additional code expects any initrd file to match the glob
pattern 'init*'. This Fixes#1450
In kiwi we support a one time patch for the grub config file
that changes the static use of linuxefi to be dynamic. In
grub2 >= 2.04 all this has already been fixed but for grub2
version older than this version we applied the patch. The
patch however was only applied based on the presence of a
grub setting named GRUB_USE_LINUXEFI. It has turned out that
this variable is a custom extension not part of grub upstream
which makes the test functional only on distributions that
supports this setting. The use of linuxefi however is code
that belongs to grub upstream. Therefore this patch changes
the scope of the one time patch to be only based on the
version of grub no matter if GRUB_USE_LINUXEFI is supported
by the distro or not. This Fixes#1453
In addition to the root device setup in grub.cfg we also
need to patch the vendor grubenv file which contains an
invalid kernelopts value written by grub2-mkconfig under
the conditions explained in Issue #1287. This Fixes
Issue #1454
The object that holds the parse result also contains an
information about description_dir and derived_description_dir.
The change on the markup processing impacted the value for
description_dir to be no longer the origin (user provided)
directory. That broke any reference of files that belongs
to the description directory like custom scripts config.sh,
images.sh and so on.