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
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
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
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.
The script kiwi-overlay-root.sh requires lsblk which is provided by
util-linux-systemd. If that package is missing in the final image, then booting
an overlayroot image hangs with:
dracut-pre-mount[480]: //lib/dracut/hooks/pre-mount/30-kiwi-overlay-root.sh: line 46: lsblk: command not found
debootstrap should always come with dpkg because we don't
want to handle the architecture names used on Debian when
dpkg knows them better than we do. since debootstrap itself
considers the possibility of being called without dpkg on
the system we generate the dependency by a spec change
here. This Fixes#1778
In kiwi we use the name of the section as package name to install this
package manager capability. However on Debian based distros there is
no package named apt-get. There is only a package named apt which
provides a tool named apt-get. To avoid inconsistencies like we had it
in Issue #1735 and to bring this setting in line with all other
packagemanager settings the setting was moved to just apt.
This Fixes#1738
This commit moves the qemu-img requirement into the
`kiwi-systemdeps-filesystems` to ensure ISO, OEM and PXE images include
it in the build service. Also this is required for images that are
simple root-trees in a filesystem (image=ext4).
This commit adds a requirement for `kiwi-systemdeps-iso-media` in
`kiwi-systemdeps-disk-images`. This is to ensure that installing
`kiwi-systemdeps-disk-images` is enough to build OEM images including
install media.
The filesystems requires list also contains low level
tools to manage partitions, loops and subsystems. The tools
to manage LUKS(cryptsetup) are missing and imho belongs there
along with the LVM tools which are listed
Make python anymarkup to be only recommended. The package
does not exist on all distributions, e.g suse does not
provide it and for kiwi it's an optional plugin
The eventual goal is to eliminate the requirement to use magic in
build systems (e.g, OBS) to compose the necessary dependencies for
image builds, while making it easier for local users to discover
what they need to build appliances.
Fixes#1503
We originally had chkconfig as a dependency because alternatives(8)
is part of chkconfig in RH/Fedora systems. Since we don't use that
anymore, we don't need this dependency.
Micro DNF is a minimal C implementation of DNF that is usable for
minimal appliances and containers. While it is not at parity with
DNF, it implements enough functionality that it is mostly usable
for building appliance images.
The kiwi completion was installed as kiwi-ng.sh below
/usr/share/bash-completion/completions. This is wrong
because the completion does not pick up files with
a suffix like .sh. This commit changes the completion
file to be installed as kiwi-ng without the suffix
and Fixes#1603
Provide a method to manage the base mount point for overlay and
iso mount points and set the base directory to it because /run
has a RAM space limitation which is unfortunate to handle live
systems. This Fixes#1558
This commit adds a dracut-kiwi-lib dependency to dracut-kiwi-oem-dump and
darcut-kiwi-oem-repart to match up to the release level. This way the
dependency ensures the pulled binaries they are all part of the same build.
This commit enforces dracut-kiwi-oem-repart and
dracut-kiwi-oem-dump to require dracut-kiwi-lib of the same exact
version. This prevents dracut-kiwi-lib and the packages
dependent on it being installed on a image with inconsistent versions.
Fixes#1529
The way kiwi uses setup.py assumes that pip runs this script
like a spec file in rpm is processed. However this is not the
case given that pip implicitly creates a static zip file called
wheel which looses all the code logic done in setup.py. Therefore
setup.py should not contain code that needs to run at install
time. Of course this change comes with an effect which is that
the following files will not be available when installing kiwi
from pip:
* man pages: /usr/share/man/man8/...
* command completion: /etc/bash_completion.d/kiwi-ng.sh
* kiwi default config file: /etc/kiwi.yml
* package docs: /usr/share/doc/packages/kiwi-ng/...
(kiwi.pdf, LICENSE, README)
kiwi stays fully functional without this information. It is
expected that the installation of kiwi as a service will
be done by a package and its package manager. When using kiwi
from pip it is designed to provide a python module but not
a complete user application. The way pip and wheels interact
with each other seems to demonstrate that pip is not a
package manager but more a python module manager.
This Fixes#1415
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
This commit fixes the package spec for CentOS 7. In CentOS 7 there is no
support for weak dependencies. In 9792cea1 a recommended dependency on
gpg tools was included for all builds and this caused a failure for
CentOS 7. With this commit, the recommended dependency, is omitted for
any pre CentOS 8 distro.
This patch is two fold. First the py2 version of kiwi was
dropped since py2 is EOL. To indicate that correctly on the
package level python3-kiwi has to obsolete python2-kiwi.
The other part of the change is a file conflict of the
files:
etc/bash_completion.d/kiwi-ng.sh
/usr/share/doc/packages/python-kiwi/README
which were provided by the kiwi-man-pages sub-package but
were moved to be provided by the main python3-kiwi package
now. On update of the package with an older version of
kiwi that maintains this files to belong to kiwi-man-pages
a file conflict at install time appears. To solve this
python3-kiwi now conflicts with kiwi-man-pages < %{version}
This Fixes#1413 and Fixes bsc#1168973 and bsc#1156677
The bootloader settings are handled through attributes in the
type element. Over the years some attributes were added and
there are requests for more settings. Therefore the bootloader
setup deservers its own section. With this commit the schema
changes from v7.1 to v7.2 and moves bootloader, bootloader_console
boottimeout and zipl_targettype into a new bootloader subsection
below type. The commit also adds an auto transformation template
such that customers don't have to change their image descriptions.
This is related to Issue #1401
This commit adds a missing dependency on dracut-kiwi-oem-dump
package. In images where The `kpartx` tool is missing the
dracut-kiwi-oem-dump was not applied for the initrd.
Fixes#1364
Only on suse systems btrfs is eligable to be a required package
because it's the default filesystem of that distribution. In any
other case it should be a recommended package. As a side effect
of this change we will be able to activate the CentOS-8 build
target
With this commit we start requiring tftp system user package. This
user was created and managed by multiple packages before, with the
risk of having inconsistent criteria on its defaults. Now there there
a system user package so whatever package that requries this user should
just require this package and do not create or modify the tftp user.
Related with bsc#1143454
For the lookup of the kernel version kiwi provided a small
C program that reads the first bytes of the kernel binary
and extracts the version information. Given the various
compression formats and also the problem of kernel files
that contains the decompressor code which could be anything
it has turned out to be difficult to provide a stable tool
to read the version from the binary. Therefore the code in
kiwi was refactored to read the version via regexp match
from the filename which also makes kversion an obsolete
tool. This Fixes#1308
The kiwi-man-pages package provided data that belongs to
the main package, e.g the completion as well as the
license information. In addition kiwi-man-pages should
not be a requirement.