285 lines
8.8 KiB
YAML
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
|