edition: "2024"
releasever: 45
automatic-version-prefix: "${releasever}.<date:%Y%m%d>"
mutate-os-release: "${releasever}"
metadata:
license: MIT
variables:
bootable_container: true
distro: "fedora"
releasever_ref: "rawhide"
ref: ${distro}/${releasever_ref}/${basearch}/${variant}
container-cmd:
- /usr/bin/bash
include:
- packages/common.yaml
- bootupd.yaml
- initramfs.yaml
- sysroot-ro.yaml
- kernel-install.yaml
- composefs.yaml
- 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:
- if: distro == "fedora"
include:
- fedora.yaml
- if: bootable_container == false
include:
- ostree-classic.yaml
- if: bootable_container == true
include:
- dnf5.yaml
packages:
- kernel
- kernel-modules
- kernel-modules-extra
- git-core
- git-core-doc
- nss-altfiles
- buildah
- podman
- skopeo
- slirp4netns
- fuse-overlayfs
- systemd-container
- ncurses
- flatpak
- xdg-desktop-portal
- fedora-repos-archive
- langpacks-en
- dosfstools
- lvm2
- nvme-cli
- xfsprogs
- hfsplus-tools
- c2esp
- dymo-cups-drivers
- printer-driver-brlaser
- ptouch-driver
- splix
- wireguard-tools
- gnupg2-scdaemon
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
- efibootmgr
- shim
packages-x86_64:
- grub2-efi-ia32
- grub2-efi-x64
- grub2-pc
- efibootmgr
- shim-ia32
- shim-x64
exclude-packages:
- PackageKit
- gstreamer1-plugin-openh264
- mozilla-openh264
- openh264
- dnf
- dnf-plugins-core
- grubby
- sdubby
- tk
- qemu-kvm
- qemu-kvm-core
- qemu-device-display-virtio-gpu
- qemu-device-display-virtio-vga
- hplip-gui
- perl-interpreter
- perl-libs
- gnome-software-fedora-langpacks
- wcurl
- polkit-pkla-compat
- fuse
- fuselibs
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 Destkops 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 Destkops 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