Commit Graph

70 Commits

Author SHA1 Message Date
Dusty Mabe 848b29bfaf container: add back util-linux-core package
The F39 minimal and generic container both had util-linux-core in
them. If this wasn't an intentional change, let's add it back.

Also note that util-linux wasn't actually removed in the change linked
in https://bugzilla.redhat.com/show_bug.cgi?id=1951111#c1
2024-05-01 12:45:07 +00:00
Yanko Kaneti aa89e5e004 cloud: exclude fwupd from cloud images 2024-05-01 15:08:25 +03:00
Neal Gompa 00cafda86f components/desktops/kde: Install LibreOffice
LibreOffice is expected on a KDE desktop image.
2024-04-20 18:10:55 +00:00
Neal Gompa 9d578c30b5 components/desktops/kde: Add firefox group
Firefox is expected to be preinstalled for KDE based variants.
2024-04-20 18:10:55 +00:00
Neal Gompa e4481149f4 components/desktops/common: Drop nonexistent groups
This also includes an adjustment to use the correct group for printing.
2024-04-20 18:10:55 +00:00
Major Hayden 72083f7ba0
cloud: Consistent device naming
Use consistent network device names for network devices instead of
forcing the old "ethX" names from pre-2017. This ensures that
specialized network devices, such as SR-IOV devices, are easy to
recognize and configure inside a Fedora instance on a public cloud or
OpenStack cloud.

FESCo ticket: https://pagure.io/fesco/issue/3190
Change proposal: https://fedoraproject.org/wiki/Changes/EnableConsistentDeviceNamingCloud

Signed-off-by: Major Hayden <major@redhat.com>
2024-04-15 10:09:41 -05:00
František Zatloukal 3668bfa9c6 teams/cloud/cloud: add console="serial" to grub2
Fixes booting the Generic image on systems without any video device.

ref. https://github.com/teemtee/tmt/issues/2771
2024-04-03 22:55:58 +02:00
Debarshi Ray 7316ac278f teams/cloud/container: Remove dracut from Toolbx
The dracut package contains tools to create bootable initramfses for the
Linux kernel.  Historically, neither the Container/Dockerfile nor the
Kickstart equivalents of the fedora-toolbox OCI images contained dracut.
The KIWI description of the image was including dracut because it's
listed as a Requires(pre) of the grub2-tools package [1].

Unless someone comes forward and says that they are using Toolbx to hack
on the boot stack, it's better to retain the status quo for the sake of
a smaller image.

Since an RPM's %pre scriptlet is run before a package is installed [2],
it should be safe to remove dracut after the grub2-tools package has
been installed.

[1] https://src.fedoraproject.org/rpms/grub2

[2] https://docs.fedoraproject.org/en-US/packaging-guidelines/Scriptlets/

https://pagure.io/fedora-kiwi-descriptions/pull-request/40
2024-04-02 13:56:37 +00:00
Debarshi Ray 5c131992d0 teams/cloud/container: Add cpio and file to Toolbx
They are currently being pulled in as dependencies of dracut and
grub2-tools respectively.  However, since they are explicitly mentioned
in the list of default RPMs on Fedora Silverblue and Workstation [1],
they should be mentioned here too, especially since packages like dracut
and grub2-tools are related to booting the host operating system and
might not be useful in a container.

[1] https://pagure.io/fedora-comps/

https://pagure.io/fedora-kiwi-descriptions/pull-request/40
2024-04-02 13:56:37 +00:00
Neal Gompa cf376d1721 uki: Take 2 to drop custom logic for discoverable partitions
Since kiwi v10.0.10, it automatically sets the partition GUIDs to
values from the UAPI group's discoverable partition standard.
2024-04-02 08:01:40 -04:00
Debarshi Ray 875d1c3dd1 teams/cloud/container: Add langpacks-en to Toolbx
Fedora Silverblue and Workstation, and so the Kickstart equivalent of
the fedora-toolbox OCI image, contain langpacks-en by default.  It's
absence leads to a significant difference in the list of RPMs, which is
better to avoid so close to the Fedora 40 final release:
  -abattis-cantarell-vf-fonts-0.301-12.fc40.noarch
  -default-fonts-core-sans-4.0-12.fc40.noarch
  -fonts-filesystem-2.0.5-14.fc40.noarch
  -google-noto-fonts-common-20240301-3.fc41.noarch
  -google-noto-sans-mono-vf-fonts-20240301-3.fc41.noarch
  -google-noto-sans-vf-fonts-20240301-3.fc41.noarch
  -google-noto-serif-vf-fonts-20240301-3.fc41.noarch
  -hunspell-1.7.2-7.fc40.x86_64
  -hunspell-en-0.20201207-9.fc40.noarch
  -hunspell-en-GB-0.20201207-9.fc40.noarch
  -hunspell-en-US-0.20201207-9.fc40.noarch
  -hunspell-filesystem-1.7.2-7.fc40.x86_64
  -langpacks-core-en-4.0-12.fc40.noarch
  -langpacks-fonts-en-4.0-12.fc40.noarch
  -liberation-fonts-common-2.1.5-9.fc40.noarch
  -liberation-mono-fonts-2.1.5-9.fc40.noarch
  -liberation-sans-fonts-2.1.5-9.fc40.noarch
  -liberation-serif-fonts-2.1.5-9.fc40.noarch
  -sil-mingzat-fonts-1.100-5.fc40.noarch

The plan is to investigate if Toolbx containers can use some of these
packages from the host.  However, that needs to be co-ordinated with the
toolbox(1) binary, and has to be a done in a way that works across a
wide variety of container and host combinations.

Until then, it's safer to retain the status quo.

https://pagure.io/fedora-kiwi-descriptions/pull-request/37
2024-04-02 13:06:19 +02:00
Neal Gompa 34aafd9f09 Revert "uki: Drop custom logic for discoverable partitions"
This is not yet properly supported in kiwi.

This reverts commit 571f7e79d4.
2024-03-26 11:01:33 -04:00
Neal Gompa 571f7e79d4 uki: Drop custom logic for discoverable partitions
Since kiwi v10.0.1, it automatically sets the partition GUIDs to
values from the UAPI group's discoverable partition standard.
2024-03-26 08:00:55 -04:00
Gerd Hoffmann 436e9d6e48 fix aarch64 uki build
There is no biosboot partition on aarch64, so the root filesystem
on aarch64 is partition 2.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2024-03-26 10:24:22 +01:00
Michal Hlavinka 64e5cf610e remove passwd, it was retired
passwd was retired, it's function was replaced by shadow-utils,
which is already included
see https://fedoraproject.org/wiki/Changes/LibuserDeprecation
2024-03-25 23:53:21 +01:00
Neal Gompa 64b3ca0b20 config.sh: Add snippet to configure sudo for Vagrant images
The vagrant user used in Vagrant images needs the ability
to use sudo with no restrictions. This is fine and expected
for Vagrant images, as they are only intended to be used
for development purposes.
2024-03-25 11:24:13 -04:00
Adam Williamson 08243564f3 cloud: set Google root size to 10 GB and EC2 back to 5 GB
It's the *Google* image that's required to have a 10 GB root
for performance reasons, not the EC2 image, as the comment says,
but the change was inadvertently applied to the EC2 image not
the Google one. This means our Google image is slow and our EC2
images are failing to be published as AMIs.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2024-03-20 09:10:53 -07:00
Jeremy Cline 319e5e8153 container: update package list to match f39 more closely
Gary Buhrmaster noticed gzip was missing from the Fedora 40 container.
An extremely quick and gross diff produced by doing:

podman run -it --rm --entrypoint /usr/bin/rpm fedora:39 -qa \
  | sort | uniq | awk '{ split($0,a,"-[0-9]"); print a[1] }' > f39.txt

shows the following for Fedora Minimal 39 -> 40:

-abattis-cantarell-vf-fonts
+audit-libs
-default-fonts-core-sans
-fonts-filesystem
-google-noto-fonts-common
-google-noto-sans-mono-vf-fonts
-google-noto-sans-vf-fonts
-google-noto-serif-vf-fonts
-gpg-pubkey
+gpg-pubkey-a15b79cc
+json-c
-langpacks-core-en
-langpacks-en
-langpacks-fonts-en
+libcap-ng
+libeconf
-libsigsegv
+libtool-ltdl
+pam-libs
-systemd-libs
-util-linux-core
-zlib
+zlib-ng-compat

For Fedora 39 -> 40:

-authselect
-authselect-libs
-cracklib
-gpg-pubkey
+gpg-pubkey-a15b79cc
-gzip
-libdb
-libpwquality
-libsigsegv
+libtool-ltdl
-pam
-sudo
-systemd-libs
-util-linux-core
-zlib
+zlib-ng-compat

This adds gzip and sudo back to the non-minimal container, as well as
bzip2, xz, and zstd to round out the set of [de]compression tools.
2024-03-18 11:57:38 -04:00
Kevin Fenzi 92b028992c Keep kbd-misc for now
On ppc64le, power-utils is pulled in by being default in Core group.
This in turn pulls in power-utils-core, which pulls in systemd-udev.
When kiwi goes to remove kbd-misc on ppc64le only, it fails because
systemd-udev is a protected package. On other arches since it's not
installed, it works.

So, we are going to just drop this for now and revisit solutions after
Beta is out the door.

Signed-off-by: Kevin Fenzi <kevin@scrye.com>
2024-03-13 17:41:55 -07:00
Neal Gompa ac559c73fd teams/cloud/container: Add name labels for the containers
These were accidentally omitted when they were ported over.
2024-03-12 22:13:14 -04:00
Neal Gompa ff7affb890 teams/cloud/container: Filter out mesa-va-drivers for s390x for Toolbox
VA-API does not exist in s390x, so we need this filtered out for
that architecture.
2024-03-12 07:14:11 -04:00
Neal Gompa 12cb853ad9 Add s390x variant for Cloud-Base-Generic
This allows building cloud images for Z systems.
2024-03-11 21:36:23 -04:00
Debarshi Ray 734e5d0679 teams/cloud/container: Use vim-minimal, not vim-enhanced, for Toolbx
Fedora Silverblue and Workstation [1], and so the Container/Dockerfile
and Kickstart [2] equivalents of the fedora-toolbox OCI images, contain
vim-minimal by default, not vim-enhanced.  This is because the default
editor is GNU nano, not Vim [3].

[1] https://pagure.io/fedora-comps/

[2] fedora-kickstarts commit d6aac886a01ae625
    https://pagure.io/fedora-kickstarts/c/d6aac886a01ae625
    https://pagure.io/fedora-kickstarts/pull-request/1003

[3] https://fedoraproject.org/wiki/Changes/UseNanoByDefault

https://pagure.io/fedora-kiwi-descriptions/pull-request/24
2024-03-11 17:36:58 +01:00
Debarshi Ray 5eddb74619 teams/cloud/container: Use 'toolbx' as VARIANT_ID in os-release(5)
The same change was made to the Kickstart equivalent of the
fedora-toolbox:41 OCI image recently [1].

This is meant to distinguish OCI containers and images that are designed
specifically for Toolbx from others.  Toolbx containers are long-lasting
pet containers for interactive command line use, which makes them
substantially different from short-lived containers running services.

Therefore, it can be useful to be able to identify Toolbx containers and
images when generating statistics about Fedora usage.

[1] fedora-kickstarts commit 0d99c64eb2721c5b
    https://pagure.io/fedora-kickstarts/c/0d99c64eb2721c5b
    https://pagure.io/fedora-kickstarts/pull-request/1015

https://pagure.io/Fedora-Council/tickets/issue/449
2024-03-11 16:03:20 +01:00
Debarshi Ray 4a5017422f teams/cloud/container: Drop zstd from Toolbx
The zstd RPM is neither part of the default Fedora Silverblue
and Workstation installation [1], nor the Container/Dockerfile and
Kickstart equivalents of the fedora-toolbox images [2,3].  Therefore,
there's no need to need to include it in the KIWI description.

Fallout from d27e4c3f6c

[1] https://pagure.io/fedora-comps/

[2] https://src.fedoraproject.org/container/fedora-toolbox
    https://github.com/containers/toolbox/tree/main/images/fedora

[3] https://pagure.io/fedora-kickstarts/blob/main/f/fedora-container-toolbox.ks

https://pagure.io/fedora-kiwi-descriptions/pull-request/21
2024-03-11 15:51:30 +01:00
Debarshi Ray e44856603d teams/cloud/container: Install languages & weak dependencies for Toolbx
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
2024-03-11 15:27:09 +01:00
Debarshi Ray 5966419ca5 VARIANTS: Fix the image type of the container images
Otherwise, the build fails with:
  $ sudo kiwi-ng \
           --type tbz \
           --profile Container-Toolbox \
           system build \
           --description . \
           --target-dir ./outdir
  [ INFO    ]: 01:40:41 | Reading runtime config file: '/etc/kiwi.yml'
  [ INFO    ]: 01:40:41 | Loading XML description
  [ INFO    ]: 01:40:41 | Support for multiple markup descriptions
                          available
  [ ERROR   ]: 01:40:41 | KiwiTypeNotFound: Build type 'tbz' not found
                          for applied profiles: ['Container-Toolbox',
                          'ContainerCore']

Fallout from 0becdd4d43

https://pagure.io/fedora-kiwi-descriptions/pull-request/20
2024-03-07 01:48:32 +01:00
Neal Gompa 0becdd4d43 teams/cloud/container, tmt: Build the container images as OCI images
This incorporates the labels that are expected for Fedora images.
2024-03-06 17:41:28 -05:00
Neal Gompa 31d0b2a70f teams/cloud/cloud: Bump the Google Cloud image to 10G
Anything lower than that causes performance problems.
2024-03-06 13:51:35 -05:00
Neal Gompa 31f9f8a743 components/boot: Force grubby at bootstrap phase
If no preference is expressed, sdubby will be selected instead of
grubby, which breaks image builds. Thus, install grubby early to
avoid this issue.
2024-03-04 21:25:39 -05:00
Neal Gompa b558e172c1 Install fedora-release-* at bootstrap phase for various images
This ensures that the correct variant packages are installed.
2024-03-04 20:18:11 -05:00
Jeremy Cline f874d413eb No longer enable waagent.service via config.sh
The service is now enabled via systemd presets.
2024-02-29 11:24:53 -05:00
Neal Gompa 4f5bafccf3 tmt: Install kiwi-systemdeps for containers and disk images
These are needed for the images currently being validated in CI.
2024-02-24 14:57:26 -05:00
Neal Gompa 12275dff55 Add ppc64le variant for Cloud-Base-Generic
This allows building cloud images for POWER systems.
2024-02-24 14:57:26 -05:00
Neal Gompa 3ac0ae9240 teams/cloud: Define compatible architectures for existing profiles
Most of the Fedora Cloud-owned profiles are limited to a subset of
architectures, generally x86_64 and aarch64 (with the exception of
the VirtualBox Vagrant image, which is x86_64 only).
2024-02-24 14:57:26 -05:00
Neal Gompa ce013b2c21 components/desktops/mate: Switch from earlyoom to systemd-oomd 2024-02-24 14:29:45 -05:00
Neal Gompa 7cc5101bcc Rename MATE desktop snippets from MATE-Compiz to MATE
This prepares for the future change to another compositor with Wayland.
2024-02-24 14:29:39 -05:00
Neal Gompa 7235c1e6f4 teams/cloud: Reformat profile image types for readability
This makes it easier to read what all the settings are.
2024-02-23 05:15:15 -05:00
Neal Gompa 10d4f7c9ae components/boot: Drop duplicate profiles section
Multiple profiles can be defined in a profiles section.
2024-02-22 19:49:16 -05:00
Neal Gompa bc0a22eae0 Set version to Rawhide 2024-02-22 19:45:01 -05:00
Jeremy Cline 9322f54b49 azure: install the hyperv-daemons package
This pulls in a number of services to integrate a guest running under
Hyper-V. These services are all automatically activated via udev rules.
2024-02-23 00:31:35 +00:00
Jeremy Cline 83a43059d3 azure: support accelerated networking feature
Azure provides an optional "Accelerated Networking" feature. Enabling
this feature when creating a VM enables SR-IOV and provides the guest
with a virtual function.

Supporting this requires two changes. Firstly, the kernel-modules
package is required as it contains the Mellanox drivers required for the
VF provided to the guest. Secondly, the interface needs to be ignored by
NetworkManager or it'll try and fail to bring up the device and the VM
will be unreachable except by serial console. If this is observed, it's
likely new hardware has been deployed and additional drivers need to be
added to the NetworkManager config.

See https://learn.microsoft.com/en-us/azure/virtual-network/accelerated-networking-overview
for details.
2024-02-23 00:31:35 +00:00
Jeremy Cline d9584ccd70 azure: ensure early boot messages are directed to the serial console
In the event that there's an issue with early boot, setting
earlyprintk=ttyS0 ensures that the messages are routed to the serial
console so it can be debugged.

This particular option is documented as required in the Azure VM
certification FAQ[0].

[0] https://learn.microsoft.com/en-us/partner-center/marketplace/azure-vm-certification-faq#linux-test-cases
2024-02-23 00:31:35 +00:00
Jeremy Cline 78ea0154a4 azure: enable the Azure Linux Agent service
The WALinuxAgent package was already being installed, but the service
was enabled. This ensures it'll start when the VM is created.
2024-02-23 00:31:35 +00:00
Neal Gompa 7497716476 Reorganize configuration around Fedora teams
This realigns the configuration into separate files/folders that
would be modified by specific teams (e.g. WGs and SIGs).
2024-02-22 19:15:21 -05:00
Gerd Hoffmann 41c9052e09 tmt: add test plan for Cloud-Base-UEFI-UKI
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2024-01-25 15:41:02 +01:00
Gerd Hoffmann 1de547fc3d platforms/cloud: add Cloud-Base-UEFI-UKI profile
This is a variation of Cloud-Base-Generic which boots using UKIs.

This also adds uki-editbootconfig.sh script which makes the
image bootable via "UEFI firmware -> shim.efi -> UKI.efi".

Some background information:
https://fedoraproject.org/wiki/Changes/Unified_Kernel_Support_Phase_2

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2024-01-25 15:06:58 +01:00
Neal Gompa 573870b3a4 platforms/workstation: Add live media variants for numerous desktops
This enables building live ISO images for all the various spins.
2024-01-13 17:09:35 -05:00
Neal Gompa 74f06fd207 config.sh: Add configuration for numerous desktops
This makes adjustments for the script part for configuring images
of the various desktops.
2024-01-13 17:03:41 -05:00
Neal Gompa 30ef6928bf components/desktop-environments, config.sh: Add SoaS variant
This adds the basic configuration for Sugar on a Stick.
2024-01-13 16:56:47 -05:00