config/common.yaml
2026-10-05 19:24:47 +02:00

285 lines
8.8 KiB
YAML

edition: "2024"
releasever: 46
automatic-version-prefix: "${releasever}.<date:%Y%m%d>"
mutate-os-release: "${releasever}"
metadata:
license: MIT
variables:
# Default to Bootable Containers and override in classic ostree manifests
bootable_container: true
# Default to including Fedora branding and specific packages
distro: "fedora"
# Used in ref. Equal to releasever, unless it's for Rawhide
releasever_ref: "rawhide"
# Default ref, overriden for some variants with legacy names
ref: ${distro}/${releasever_ref}/${basearch}/${variant}
# Default to `bash` in our container, the same as other containers we ship.
container-cmd:
- /usr/bin/bash
include:
# Packages common to all variants
- packages/common.yaml
# See: https://gitlab.com/fedora/ostree/sig/-/issues/1
- bootupd.yaml
# Dracut configuration for the initramfs
- initramfs.yaml
# Read only sysroot
- sysroot-ro.yaml
# Enable kernel-install support
- kernel-install.yaml
# Enable composefs
- composefs.yaml
# Selected ownership fixes for files in /etc & /var owned by a dynamic UID/GID
- dynamic-ugid-ownership-fixes.yaml
arch-include:
x86_64:
- qemu-user-static-x86_64.yaml
aarch64:
- qemu-user-static-non-x86_64.yaml
conditional-include:
# Manifests included only if we are building for Fedora
- if: distro == "fedora"
include:
- fedora.yaml
# Manifests included only for classic ostree variants
- if: bootable_container == false
include:
- ostree-classic.yaml
# Manifests included only for the Bootable Container variants
- if: bootable_container == true
include:
- dnf5.yaml
packages:
# Ensure that we have a kernel. Kernel packages are not in any comps group
- kernel
- kernel-modules
- kernel-modules-extra
# Do not include "full" Git as it brings in Perl
- git-core
# Explicitely add Git docs
- git-core-doc
# Required until we've completed the move to systemd-sysusers
# See: https://github.com/fedora-silverblue/issue-tracker/issues/362
- nss-altfiles
# Container management
- buildah
- podman
- skopeo
# Keep fuse-overlayfs for compatibilty and rootless containers use cases
# See: https://github.com/coreos/fedora-coreos-tracker/issues/1749
- fuse-overlayfs
# See: https://github.com/fedora-silverblue/issue-tracker/issues/503
- systemd-container
# Provides terminal tools like clear, reset, tput, and tset
- ncurses
# Flatpak support
- flatpak
- xdg-desktop-portal
# the archive repo for more reliable package layering
# https://github.com/coreos/fedora-coreos-tracker/issues/400
- fedora-repos-archive
# Always include at least full English language support by default
# https://gitlab.com/fedora/ostree/sig/-/issues/14
- langpacks-en
# Selected packages from the anaconda-tools group. See: https://gitlab.com/fedora/ostree/sig/-/issues/5
- dosfstools
- lvm2
- nvme-cli
- xfsprogs
# HFS filesystem tools for Apple hardware
# See https://github.com/projectatomic/rpm-ostree/issues/1380
- hfsplus-tools
# More printer drivers. See: https://gitlab.com/fedora/ostree/sig/-/issues/63
- c2esp
- dymo-cups-drivers
- printer-driver-brlaser
- ptouch-driver
- splix
# See: https://github.com/fedora-silverblue/issue-tracker/issues/390
- wireguard-tools
# See: https://gitlab.com/fedora/ostree/sig/-/issues/101
- gnupg2-scdaemon
# Make sure we include the full curl build and not libcurl-minimal
- libcurl
selinux: true
documentation: true
etc-group-members:
- wheel
ignore-removed-users:
- root
ignore-removed-groups:
- root
check-passwd:
type: file
filename: passwd
check-groups:
type: file
filename: group
default_target: graphical.target
packages-aarch64:
- grub2-efi-aa64
- efibootmgr
- shim-aa64
packages-x86_64:
- grub2-efi-ia32
- grub2-efi-x64
- grub2-pc
- efibootmgr
- shim-ia32
- shim-x64
# Make sure the following are not pulled in when Recommended by other packages
exclude-packages:
- PackageKit
# We can not include openh264. See https://fedoraproject.org/wiki/OpenH264
- gstreamer1-plugin-openh264
- mozilla-openh264
- openh264
# Do not include dnf4. Classic ostree also exclude dnf5 in another manifest
- dnf
- dnf-plugins-core
# https://github.com/fedora-silverblue/issue-tracker/issues/517
- grubby
- sdubby
# Exclude Tk. We can not exclude Tcl as it is neeeded for usb_modeswitch
- tk
# Exclude QEMU. See: https://gitlab.com/fedora/ostree/sig/-/issues/58
- qemu-kvm
- qemu-kvm-core
- qemu-device-display-virtio-gpu
- qemu-device-display-virtio-vga
# See: https://github.com/fedora-silverblue/issue-tracker/issues/646
- hplip-gui
# Ensure that we do not include any Perl package
- perl-interpreter
- perl-libs
# Exclude GNOME Software's langpack plugin to avoid layering langpacks on
# systems where GNOME Software is included
- gnome-software-fedora-langpacks
# We include wget instead
- wcurl
# See: https://fedoraproject.org/wiki/Changes/AtomicDesktopDropPklaCompat
- polkit-pkla-compat
# See: https://fedoraproject.org/wiki/Changes/AtomicDesktopDropFuse2
# See: https://gitlab.com/fedora/ostree/sig/-/issues/50
- fuse
- fuse-libs
# Exclude uncommon NetworkManager plugins
- NetworkManager-fortisslvpn
- NetworkManager-iodine
- NetworkManager-l2tp
- NetworkManager-libreswan
- NetworkManager-pptp
- NetworkManager-ssh
- NetworkManager-sstp-gnome
- NetworkManager-strongswan
- NetworkManager-vpnc
# Make sure we include the full curl build and not libcurl-minimal
- libcurl-minimal
postprocess:
- |
#!/usr/bin/env bash
set -xeuo pipefail
# Work around https://bugzilla.redhat.com/show_bug.cgi?id=1265295
# From https://github.com/coreos/fedora-coreos-config/blob/testing-devel/overlay.d/05core/usr/lib/systemd/journald.conf.d/10-coreos-persistent.conf
install -dm0755 /usr/lib/systemd/journald.conf.d/
echo -e "[Journal]\nStorage=persistent" > /usr/lib/systemd/journald.conf.d/10-persistent.conf
# See: https://src.fedoraproject.org/rpms/glibc/pull-request/4
# Basically that program handles deleting old shared library directories
# mid-transaction, which never applies to rpm-ostree. This is structured as a
# loop/glob to avoid hardcoding (or trying to match) the architecture.
for x in /usr/sbin/glibc_post_upgrade.*; do
if test -f ${x}; then
ln -srf /usr/bin/true ${x}
fi
done
# Remove loader directory causing issues in Anaconda in unified core mode
# Will be obsolete once we start using bootupd
rm -rf /usr/lib/ostree-boot/loader
# Undo RPM scripts enabling units; we want the presets to be canonical
# https://github.com/projectatomic/rpm-ostree/issues/1803
rm -rf /etc/systemd/system/*
systemctl preset-all
rm -rf /etc/systemd/user/*
systemctl --user --global preset-all
# Fix triggerin for samba-client in cups package (not supported by rpm-ostree yet)
# https://github.com/fedora-silverblue/issue-tracker/issues/532
ln -snf /usr/libexec/samba/cups_backend_smb /usr/lib/cups/backend/smb
# Workaround broken appstream cache update
# See: https://gitlab.com/fedora/ostree/sig/-/work_items/103
cat > /usr/lib/systemd/system/fedora-atomic-desktop-appstream-cache-refresh.service << 'EOF'
[Unit]
Description=Workaround for Atomic Desktops to refresh the appstream cache
Documentation=https://gitlab.com/fedora/ostree/sig/-/work_items/103
ConditionPathIsReadWrite=/var
ConditionPathExists=/run/ostree-booted
After=local-fs.target
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=appstreamcli refresh --force
Nice=19
IOWeight=10
[Install]
WantedBy=multi-user.target
EOF
cat >> /usr/lib/systemd/system-preset/81-atomic-desktop.preset << 'EOF'
# See: https://gitlab.com/fedora/ostree/sig/-/work_items/103
enable fedora-atomic-desktop-appstream-cache-refresh.service
EOF
systemctl preset fedora-atomic-desktop-appstream-cache-refresh.service
# Workaround broken mandb cache update
# See: https://gitlab.com/fedora/ostree/sig/-/work_items/62
cat > /usr/lib/systemd/system/fedora-atomic-desktop-mandb-update.service << 'EOF'
[Unit]
Description=Workaround for Atomic Desktops to update mandb cache
Documentation=https://gitlab.com/fedora/ostree/sig/-/work_items/62
ConditionPathIsReadWrite=/var
ConditionPathExists=/run/ostree-booted
After=local-fs.target
[Service]
Type=oneshot
RemainAfterExit=yes
Environment=MAN_NO_LOCALE_WARNING=1
ExecStart=mandb -q
Nice=19
IOWeight=10
[Install]
WantedBy=multi-user.target
EOF
cat >> /usr/lib/systemd/system-preset/81-atomic-desktop.preset << 'EOF'
# See: https://gitlab.com/fedora/ostree/sig/-/work_items/62
enable fedora-atomic-desktop-mandb-update.service
EOF
systemctl preset fedora-atomic-desktop-mandb-update.service