Author SHA1 Message Date
Lukas Greve e74a88d133 fix: explicitly include dbus-daemon and systemd-pam session-system essentials
With --exclude-weakdeps, two packages that nothing else hard-requires were
being silently dropped from the installed system:

- dbus-daemon (provides /usr/bin/dbus-run-session): gdm-wayland-session
  needs it to spawn the per-session D-Bus bus. Only anaconda-core requires
  it, and that is not installed into the target system.
- systemd-pam (provides pam_systemd.so): 'systemd' merely recommends it.
  Without pam_systemd, PAM 'optional' session rules fail silently, login
  sessions never register with logind, user@.service never starts, and the
  session bus lacks org.freedesktop.systemd1.

Result of either gap: gdm logs 'Session never registered, failing' five
times, then 'maximum number of display failures reached. Giving up.' and
the screen stays black — on VMs and bare metal alike (laptop bug).
Both packages validated live on a Fedora 44 guest; dnf5 check passes.
2026-09-11 22:14:06 +02:00
Lukas Greve ccf4f9d881 feat: break down core into explicit packages for Fedora remix compatibility
generic-release conflicts with fedora-release and generic-logos conflicts
with fedora-logos, so dishes shipping the remix packages cannot coexist
with @core pulling Fedora branding — the RPM transaction fails at prepare
time. Replace @core with the explicit core package list (mandatory +
default, plus basesystem/kernel/dhcp-client), add fedora-repos explicitly,
and deselect fedora-release/fedora-logos; the remix packages provide
system-release, system-release(44) and system-logos instead.

Verified on nuc6i7kyb: a Fedora 44 GNOME hypervisor desktop VM installed
cleanly from this configuration (982-package resolution scratch-tested
before the install).
2026-09-11 20:39:54 +02:00
Lukas Greve 698c7679be feat: enable Fedora 44 hypervisor recipe with systemd-boot
- uncomment the hypervisor recipe, targeting Fedora 44 with
  systemd-boot, hardware-support and the intelcpu variant
- make intelcpu.ks bootloader-aware: with systemd-boot kernel
  arguments must go to /etc/kernel/cmdline, not /etc/default/grub
2026-09-10 13:14:03 +02:00
Lukas Greve cdda0a57a3 Revert "fix: include weak dependencies to prevent scriptlet failures"
This reverts commit 6e040e05a7.
2026-09-05 21:45:42 +02:00
Lukas Greve b4010ee2fb fix: use grub2-tools, grub2-common %posttrans also needs grub2-mkconfig 2026-09-05 21:36:01 +02:00
Lukas Greve cd442c555f fix: add grub2-tools-minimal so grub2-common %posttrans does not fail the transaction 2026-09-05 21:27:16 +02:00
Lukas Greve 6e040e05a7 fix: include weak dependencies to prevent scriptlet failures 2026-09-05 21:17:01 +02:00
Lukas Greve 8a6a97559d feat: enable Fedora 44 server variant with systemd-boot
- re-enable the commented-out server recipe group
- repository: Fedora 44 only (was 43/rawhide)
- bootloader: systemd-boot (was grub)
- explicit initial-setup: server choice
- yields dish server_44_standard_systemd-boot_server_guest-agents.cfg
2026-09-05 13:51:16 +02:00
5 changed files with 120 additions and 21 deletions
+5 -1
View File
@@ -2,7 +2,11 @@
%post --nochroot --log=/mnt/sysimage/root/hypervisor-intelcpu-post.log # Beginning of %post section. Those commands are executed outside the chroot environment. Logging is enabled to help with post-installation troubleshooting
sed -i 's/\(quiet\)/\1 intel_iommu=on iommu=pt rd.driver.pre=vfio-pci/i' /mnt/sysimage/etc/default/grub # Load kernel modules in GRUB.
if [ -f /mnt/sysimage/etc/kernel/cmdline ]; then # systemd-boot: kernel arguments live in /etc/kernel/cmdline
grep -q "intel_iommu=on" /mnt/sysimage/etc/kernel/cmdline || sed -i 's/$/ intel_iommu=on iommu=pt rd.driver.pre=vfio-pci/' /mnt/sysimage/etc/kernel/cmdline # Append IOMMU arguments once
else # GRUB: kernel arguments live in /etc/default/grub
sed -i 's/\(quiet\)/\1 intel_iommu=on iommu=pt rd.driver.pre=vfio-pci/i' /mnt/sysimage/etc/default/grub # Load kernel modules in GRUB.
fi
echo "options kvm_intel nested=1" >> /mnt/sysimage/etc/modprobe.d/kvm.conf # Add support for nested virtualization on Intel CPUs
@@ -0,0 +1,93 @@
# __ ____ ____ _____
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
# / /_/ / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
# /_/ /____/
# Core packages, broken down explicitly instead of using the `@core` group.
#
# Why: dishes that keep the Fedora remix packages (generic-release,
# generic-logos, fedora-remix-logos) cannot coexist with fedora-release /
# fedora-logos — both pairs hard-conflict. Listing the core packages
# explicitly deselects the Fedora release/branding packages while the
# remix packages provide `system-release`, `system-release(44)`,
# `fedora-release-identity` and `system-logos` in their place.
#
# Package list mirrors the Fedora 44 `core` comps group (mandatory +
# default packages), plus `basesystem`, `kernel` and `dhcp-client` from
# the hidden core group, plus `fedora-repos` (usually pulled in via
# fedora-release-common, which is deselected here), plus session-system
# essentials (`dbus-daemon`, `systemd-pam`) that would otherwise be
# dropped by --exclude-weakdeps.
%packages --exclude-weakdeps # Beginning of the packages section. Package description courtesy of the Fedora project
## Mandatory packages found in `core` group (dnf group info --hidden core)
audit # User space tools for kernel auditing
basesystem # The skeleton package which defines a simple Fedora system
bash # The Bourne Again SHell, a command-line interpreter.
coreutils # A set of basic GNU tools commonly used in shell scripts
curl # A utility for getting files from remote servers (FTP, HTTP, and others)
dhcp-client # Provides the ISC DHCP client daemon and dhclient-script
dnf5 # Command-line package manager
e2fsprogs # Utilities for managing ext2, ext3, and ext4 file systems
filesystem # The basic directory layout for a Linux system
glibc # The GNU libc libraries
hostname # Utility to set/show the host name or domain name
iproute # Advanced IP routing and network device configuration tools
iputils # Network monitoring tools including ping
kbd # Tools for configuring the console (keyboard, virtual terminals, etc.)
kernel # The Linux kernel
less # A text file browser similar to more, but better. Can be excluded
man-db # Tools for searching and reading man pages. Can be excluded
ncurses # Ncurses support utilities
openssh-clients # An open source SSH client applications. Can be excluded
openssh-server # An open source SSH server daemon. Can be excluded
parted # The GNU disk partition manipulation program
policycoreutils # SELinux policy core utilities. Can be excluded
procps-ng # System and process monitoring utilities
rootfiles # The basic required files for the root user's directory
rpm # The RPM package management system
selinux-policy-targeted # SELinux targeted policy. Can be excluded
setup # A set of system configuration and setup files
shadow-utils # Utilities for managing accounts and shadow password files
sssd-common # Common files for the SSSD. Can be excluded
sssd-kcm # An implementation of a Kerberos KCM server. Can be excluded
sudo # Allows restricted root access for specified users
systemd # System and Service Manager
util-linux # Collection of basic system utilities
vim-minimal # A minimal version of the VIM editor
## Default packages found in `core` group (dnf group info --hidden core)
NetworkManager # Network connection manager and user applications
dnf5-plugins # Plugins for dnf5
dracut-config-rescue # dracut configuration to turn on rescue image generation
firewalld # A firewall daemon with D-Bus interface providing a dynamic firewall
fwupd # Firmware update daemon
plymouth # Graphical Boot Animation and Logger
prefixdevname # Udev helper utility that provides network interface naming using user defined prefix
systemd-resolved # Network Name Resolution manager
zram-generator-defaults # Default configuration for zram-generator
## Repository definitions, pulled explicitly since fedora-release is deselected
fedora-repos # Fedora package repositories
## Session-system essentials that nothing else hard-requires: with
## --exclude-weakdeps they would be dropped (systemd merely recommends
## systemd-pam; only anaconda requires dbus-daemon during installation).
## Without them, login sessions never register with logind (no
## pam_systemd.so) and display managers cannot spawn the session bus
## (no /usr/bin/dbus-run-session), which yields a silent black screen.
dbus-daemon # D-BUS message bus (provides /usr/bin/dbus-run-session, used by gdm-wayland-session et al.)
systemd-pam # systemd PAM module (pam_systemd.so — registers login sessions with logind, starts user@.service)
## Deselect Fedora release/branding packages — the remix packages below
## provide system-release, system-release(44), fedora-release-identity and
## system-logos instead
-fedora-release
-fedora-release-common
-fedora-release-identity-basic
-fedora-logos
%end # End of the packages section
+1
View File
@@ -2,6 +2,7 @@
%packages --exclude-weakdeps
grub2-tools # Provides grub2-mkconfig and grub2-editenv, required by the grub2-common %posttrans scriptlet (exit 127 otherwise, which fails the whole dnf transaction)
pciutils # PCI bus related utilities
libusb # Library for accessing USB devices
usbutils # Linux USB utilities
+1 -1
View File
@@ -23,7 +23,7 @@ base:
- core/locale.ks
- core/network.ks
- core/services.ks
- packages/core.ks
- packages/core-explicit.ks
- packages/fedora-remix.ks
- packages/hand-picked.ks
+20 -19
View File
@@ -26,25 +26,26 @@ recipes:
hardware-support: [true, false]
guest-agents: [true, false]
# # Server variants
# - name: server
# variants:
# - repository: ["43", "rawhide"]
# storage: standard
# bootloader: grub
# hardware-support: false
# guest-agents: true
#
# # Hypervisor variants
# - name: hypervisor
# variants:
# - repository: 43
# storage: standard
# bootloader: grub
# hardware-support: true
# guest-agents: false
# hypervisor: base
# hypervisor_type: ["amdcpu", "intelcpu"]
# Server variants
- name: server
variants:
- repository: ["44"]
storage: standard
bootloader: systemd-boot
hardware-support: false
guest-agents: true
initial-setup: server
# Hypervisor variants
- name: hypervisor
variants:
- repository: ["44"]
storage: standard
bootloader: systemd-boot
hardware-support: true
guest-agents: false
hypervisor: base
hypervisor_type: intelcpu
#
# # Desktop-hypervisor variants
# - name: desktop-hypervisor