e44856603d
The Container/Dockerfile and Kickstart equivalents of the fedora-toolbox OCI images installed all locale definitions, translations, and weak dependencies (barring exceptions) [1,2]. In fact, the Containerfile tried very hard to restore any content that was stripped out by the fedora base image. Hence, the KIWI descriptions should do the same. Sometimes, like in the case of the gawk and gawk-all-langpacks RPMs, skipping weak dependencies also strips out translations. The Kickstart files did this by decoupling fedora-container-common.ks from fedora-container-common.ks [3], and this is the KIWI equivalent of the same change. The separate 'packages' elements of types 'bootstrap' and 'image' [4] are no longer needed and have been fused into one. This avoids the need to specify the 'ignore' child elements separately. This change has two workarounds that deserve mention. First, enabling weak dependencies for the packages that used to come from the ContainerCore profile pulls in systemd, and config.xml specifies a keytable for all the KIWI descriptions. These two combined makes KIWI try to set the keymap/keytable using systemd-firstboot(1), and it fails the build with: [ INFO ]: Setting up keytable: [ DEBUG ]: EXEC: [chroot /path/to/image-root systemd-firstboot --help] [ DEBUG ]: EXEC: [chroot /path/to/image-root systemd-firstboot --keymap=us] [ DEBUG ]: EXEC: Failed with stderr: Keymap us is not installed. , stdout: (no output on stdout) [ ERROR ]: KiwiCommandError: chroot: stderr: Keymap us is not installed. , stdout: (no output on stdout) This has been worked around by making the keymaps available during the image build through the kbd-misc RPM, which is later uninstalled. Second, KIWI isn't passing the 'ignore' child elements to DNF [5], and hence they currently have no effect. This has been worked around by uninstalling the RPMs later. Some noteworthy changes in the list of RPMs in the fedora-toolbox image after this change: ... +gawk-all-langpacks-5.3.0-3.fc40.x86_64 ... -glibc-2.39.9000-5.fc41.i686 -glibc-gconv-extra-2.39.9000-5.fc41.i686 -glibc-minimal-langpack-2.39.9000-5.fc41.x86_64 ... -libgcc-14.0.1-0.8.fc41.i686 ... +python-unversioned-command-3.12.2-2.fc41.noarch They are all in line with the latest Kickstart equivalent of the image. [1] https://src.fedoraproject.org/container/fedora-toolbox https://github.com/containers/toolbox/tree/main/images/fedora [2] https://pagure.io/fedora-kickstarts/blob/main/f/fedora-container-toolbox.ks [3] fedora-kickstarts commit 30f76d387d9e7f5c https://pagure.io/fedora-kickstarts/c/30f76d387d9e7f5c https://pagure.io/fedora-kickstarts/pull-request/1002 [4] https://osinside.github.io/kiwi/concept_and_workflow/packages.html [5] https://github.com/OSInside/kiwi/issues/2499 https://pagure.io/fedora-kiwi-descriptions/pull-request/21 |
||
---|---|---|
.. | ||
cloud.xml | ||
container.xml | ||
vagrant.xml |