mirror-fedora-workstation-o.../common.yaml
Timothée Ravier c23d23e933 common: Add workaround for issue with newer GRUB2
New GRUB2 config modules are causing issues on Atomic Desktops systems
as the new GRUB2 config get regenerated with new options that are not
supported by the currently installed version of GRUB2.

The root cause is that we don't (yet) systematically update the
bootloader on Atomic Desktops. This is related to:
https://gitlab.com/fedora/ostree/sig/-/issues/1

Temporarily remove / modify those config modules from the GRUB2 set of
configs used to generate the final GRUB2 config, until we are able to
enable bootloader updates by default.

See: https://github.com/fedora-silverblue/issue-tracker/issues/587
See: https://bugzilla.redhat.com/show_bug.cgi?id=2305291
2024-08-29 18:41:18 +02:00

173 lines
5.3 KiB
YAML

releasever: 42
automatic-version-prefix: "${releasever}.<date:%Y%m%d>"
mutate-os-release: "${releasever}"
# Default to `bash` in our container, the same as other containers we ship.
container-cmd:
- /usr/bin/bash
include:
# Packages common to all variants
- common-packages.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
# Workaround for https://github.com/fedora-silverblue/issue-tracker/issues/587
- grub2-workaround.yaml
# systemd-pcrphase module fails on ppc64le:
# https://gitlab.com/fedora/ostree/sig/-/issues/44
arch-include:
x86_64:
- initramfs-tpm-luks.yaml
aarch64:
- initramfs-tpm-luks.yaml
conditional-include:
# 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:
- composefs.yaml
- bootc.yaml
- 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
- lvm2
# Required for compatibility with old bootloaders until we have bootupd
# See https://github.com/fedora-silverblue/issue-tracker/issues/120
- ostree-grub2
# 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 slirp4netns for rootless containers until it's fully deprecated in podman
# See: https://github.com/fedora-silverblue/issue-tracker/issues/547
- slirp4netns
# 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
# HFS filesystem tools for Apple hardware
# See https://github.com/projectatomic/rpm-ostree/issues/1380
- hfsplus-tools
# Contains default ostree remote config to be used on client's
# system for fetching ostree update
- fedora-repos-ostree
# 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
# Workaround for https://github.com/ostreedev/ostree/issues/1469
- add-determinism
# Kept for backward compatibility for AppImages
# See: https://gitlab.com/fedora/ostree/sig/-/issues/50
- fuse
selinux: true
documentation: true
boot-location: modules
etc-group-members:
- wheel
tmp-is-dir: true
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-ppc64le:
- grub2
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
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 for https://github.com/ostreedev/ostree/issues/1469
add-determinism -j --handler pyc-zero-mtime /usr