Commit Graph

145 Commits

Author SHA1 Message Date
Marcus Schäfer
ae6effd5de
Change package manager dnf to dnf4
With dnf5 there is a successor for dnf but there will also
be a transition period where there will be both, the former
dnf and the new dnf5 available. For a clear distinction
between the two we got the recommendation from the RedHat
team to support both in different namespaces. This commit
now implements a backward compatible change for kiwi which
includes the following modifications:

* XSL stylesheet for automatic schema transformation from

  <packagemanager>dnf</packagemanager> to
  <packagemanager>dnf4</packagemanager>

* Code copy of dnf API interface from

  PackageManagerDnf -> PackageManagerDnf4
  RepositoryDnf -> RepositoryDnf4

* Deprecation of former Dnf API interface

The code change here will force developers to adapt
their code if they used RepositoryDnf / PackageManagerDnf
classes in their python code. After this change developers
will be dropped into a raise condition which exits kiwi
at the time of the call. Related to Issue #2300
and Issue #2262
2023-06-12 17:44:06 +02:00
Marcus Schäfer
e8bb1cd04b
Add support for dnf5 package manager
dnf5 is the next generation of the dnf package manager.
dnf5 is not a drop in replacement to dnf which is the reason
why this commit adds a new interface class for package and
repository management under a new name: dnf5. Beginning with
Fedora >= 39 dnf5 will be the standard. Thus the requirements
on the packaging level were adapted too.
This Fixes #2300
This Fixes #2262
2023-06-12 13:58:36 +02:00
Jiri Srain
e1b6faa874 Do not depend on dnf for SUSE ALP 2023-05-22 15:13:26 +02:00
Neal Gompa
f0e056375f
Merge pull request #2291 from OSInside/cpio_archive
Allow to create plain cpio archives
2023-05-16 07:22:49 -04:00
Marcus Schäfer
76664d0ba5
Added appx-util as WSL requires for Fedora/RHEL
Make sure the kiwi-systemdeps-containers-wsl meta package
pulls in the required tools for Fedora/RHEL when building
WSL containers. This is a followup to #2286
2023-05-16 10:05:22 +02:00
Marcus Schäfer
0a6f192c9a
Add cpio to core systemdeps requires list 2023-05-16 10:00:11 +02:00
Marcus Schäfer
60d9c077a6
Split container systemdeps in OCI and WSL 2023-04-21 21:32:21 +02:00
Marcus Schäfer
d68605d246
Update kiwi-systemdeps-containers requires list
Do not strictly require fb-util-for-appx. In order to create
WSL containers fb-util-for-appx is a requirement but usually
users create OCI containers and WSL containers are still a
niche case. Thus it's ok to reduce the requirement into a
recommends. This Fixes #2284
2023-04-20 14:46:59 +02:00
David Cassany
0947fce33a
Use parted only in s390 arch
This commit ensures parted is only called in dracut-kiwi-lib for s390
arch. It also fixes the spec to only require parted for
s390 builds.

In addition parted requirement has been removed from dracut-kiwi-live
package since parted is not used in any other dracut module beyond
kiwi-lib.

Signed-off-by: David Cassany <dcassany@suse.com>
2023-04-12 11:07:00 +02:00
Marcus Schäfer
d7f5d64e36
Fixed build of dracut-kiwi-verity
The spec file was missing the package definition to actually
create the dracut-kiwi-verity package. In addition the fixed
setting to the C standard 17 caused build errors for me on
distributions that uses C standard 11/12.
2023-03-16 15:55:56 +01:00
Marcus Schäfer
c4643ea15a Add dracut-kiwi-verity dracut module package
When building an image with an embedded verity hash via the
embed_verity_metadata="true" type attribute it is required
to setup the device map at boot time accordingly. The dracut
module in this commit provides the needed tooling as a
POSIX C implementation which is able to read the kiwi embedded
verityhash from the offset of the partition. Kudos goes to
Isaac True <isaac.true@canonical.com>

Co-authored-by: Isaac True <isaac.true@canonical.com>
Signed-off-by: Isaac True <isaac.true@canonical.com>
2023-03-16 11:09:57 +01:00
Joachim Gleissner
ad430a9b08
Use module anymarkup-core instead of anymarkup
Use 'anymarkup-core' directly instead of wrapper 'anymarkup'.
2023-03-10 13:00:14 +00:00
Marcus Schäfer
28955561d9
Provide schema version v7.5 in spec 2022-03-09 18:19:31 +01:00
Marcus Schäfer
09d3b85a47
Fixed unconditional grub2 package requirement
The grub2 package does not exist on all distributions
as a name provider independent of the architecture.
On for example Debian and Ubuntu the packages are
handled differently and grub2 is only provided on
supported architectures. Thus the spec file should
set the grub2 requirement only if the distribution
provides it in any case
2022-03-04 14:05:27 +01:00
Marcus Schäfer
9a7accdc49
Fix requirements for kiwi-systemdeps-filesystems
Extend btrfs condition applying for EL8 to apply for EL9 too
2022-01-18 06:37:58 -05:00
Neal Gompa
fb440c57e7 Add util-linux dep for -systemdeps-disk-images subpackage
Without this dependency, kiwi fails to work properly in minimal image
build environments, like in a mock chroot where util-linux is not installed.
2022-01-02 09:19:42 -05:00
Marcus Schäfer
bf5c9d0d55 Revert "Cleanup xattr requirement"
This reverts commit 6754b3f9e2.
It has turned out that SLE15 still uses the other xattr
module :/
2021-11-02 07:32:41 -04:00
Marcus Schäfer
6754b3f9e2 Cleanup xattr requirement
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
2021-10-27 09:42:02 -04:00
Marcus Schäfer
d26d66b86e
Added lsof to kiwi-systemdeps-core 2021-10-20 22:57:44 +02:00
Marcus Schäfer
cded86afec
Add support for portable result data (#1949)
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
2021-10-12 18:31:49 -04:00
Marcus Schäfer
8bc1a819b3
Added mdadm to requires for systemdeps
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
2021-10-06 16:13:58 +02:00
Marcus Schäfer
7fa6cda579
Run scripts via a screen session in debug mode
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.
2021-09-22 11:48:47 +02:00
Dan Čermák
91b56dc670
Remove util-linux-systemd & util-linux Requires from dracut-kiwi-overlay
These dependencies are pulled in via dracut-kiwi-lib.
2021-06-30 14:26:20 +02:00
Dan Čermák
4e297a934a
Add missing util-linux-systemd Requires to dracut-kiwi-[live,libs] 2021-06-30 14:24:50 +02:00
Dan Čermák
186b2bd7f7
Add missing util-linux-systemd dependency to dracut-kiwi-overlay
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
2021-06-23 16:15:25 +02:00
Marcus Schäfer
47f307e9bf
Fixed spec file on Debian tool settings
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
2021-04-19 10:15:21 +02:00
Marcus Schäfer
341ed2061f
Added openssl to the core requires
openssl is used in kiwi to construct a password hash
if the plaintext password feature for user settings
is used. This Fixes bsc#1184128
2021-04-12 10:43:33 +02:00
Marcus Schäfer
93d72e78dc
Change packagemanager setting from apt-get to apt
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
2021-03-15 16:13:02 +01:00
ec12cb4c2f
Merge pull request #1760 from OSInside/require_iso-media_for_disk-images
Add a requirement for kiwi-systemdeps-iso-media on disk images
2021-03-12 05:53:00 -05:00
David Cassany
4e91e028eb
Require qemu-img in any filesystem based image
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).
2021-03-11 14:42:30 +01:00
David Cassany
307b7e0234
Add a requirement for kiwi-systemdeps-iso-media on disk images
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.
2021-03-11 14:25:55 +01:00
Marcus Schäfer
4361f7de22
Fixed kiwi-systemdeps-filesystems requires
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
2021-02-15 16:44:47 +01:00
David Cassany
851a4f3388
Include missing qemu-tools dependency for iso images
This commit includes a missing qemu-tools dependency for iso
image type.
2021-01-20 13:02:33 +01:00
Marcus Schäfer
12bad3c304
Fixed missing systemdisk provides
kiwi-systemdeps-filesystems did not provide kiwi-filesystem:ext2
2021-01-15 15:02:21 +01:00
Marcus Schäfer
a54a16247f
Update kiwi-systemdeps-image-validation
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
2020-12-18 14:31:57 +01:00
Marcus Schäfer
cc5e0f4fdb
Fixed missing provides tag
When building WSL images the image type is set to appx.
Therefore obs is looking for what provides kiwi-image:appx
This provides tag was missing
2020-12-18 13:13:20 +01:00
Marcus Schäfer
531ab36d4d
Update spec file
Complete and cleanup spec for drop in replacement of new
systemdeps sub-packages
2020-12-17 18:09:11 +01:00
Marcus Schäfer
1ebc4c9177
Set min version python requirement
The use of new features like type hinting and annotations
requires a python version >= 3.6
2020-12-17 16:49:09 +01:00
bd77efd7eb Refactor packaging to split out system dependencies into subpackages
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
2020-12-17 10:20:12 -05:00
40167a8360 Drop useless chkconfig dependency
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.
2020-12-17 10:20:12 -05:00
0c995704be Require gnupg on Debian/Ubuntu
Without this, it's not possible to do GPG verification of Debian/Ubuntu
repositories.
2020-12-17 10:20:12 -05:00
5572dee3c9 Add DNF as a proper dependency for openSUSE
This is required so that OBS can build openSUSE containers and appliances
using DNF as the package manager.
2020-11-24 12:09:41 -05:00
Marcus Schäfer
995ee4b631
Fixed spec file microdnf requirement
SUSE/SLES doesn't provide microdnf within the official channels yet
2020-11-24 18:05:29 +01:00
Marcus Schäfer
02d955ec6e
Merge pull request #1619 from OSInside/microdnf-package-manager
Add support for the Micro DNF package manager
2020-11-13 15:28:04 +01:00
388eeef349 Add support for the Micro DNF package manager
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.
2020-11-12 10:09:23 -05:00
Frank Schreiner
02a3ae4069
use BuildRequires for distros which use fdupes 2020-11-11 11:51:35 +01:00
Marcus Schäfer
750261a056
Fixed install of bash completion
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
2020-11-03 18:04:22 +01:00
Marcus Schäfer
89f85e4504
Use custom tmpfs for managing overlays
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
2020-10-08 15:04:13 +02:00
David Cassany
26b0269593
Make dependencies to dracut-kiwi-lib release specific
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.
2020-10-05 14:56:48 +02:00
David Cassany
866cb6e0de
Align dracut-kiwi-lib version with packages requiring it
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
2020-10-02 12:06:31 +02:00