Skip to content

v0.4.2 — package-managed installs, imported services that actually run

Choose a tag to compare

@ajax80 ajax80 released this 06 Oct 00:47
· 124 commits to master since this release
e10d03b

Fedora 44 installer ISO — package-managed installs, imported services that actually run

schema-netinst44-installer-v0.4.2-e10d03b.iso installs Fedora 44 KDE with schema-init as PID 1. It's a netinst, so the machine needs network during install.

Tested on real hardware. On 2026-10-05 this ISO was installed on an HP laptop (Intel graphics, SATA hard disk, Wi-Fi), with no hand fixes. The first-boot wizard ran both switches. Afterwards schema-init is PID 1, schema-udev runs devices, schema-dbus runs the system and session buses, the network reports full connectivity, the journal shows no errors, and the desktop is up. The same build passed a fresh install in a QEMU/KVM VM first.

New since v0.4.1

  • Installs are package-managed: the ISO installs the schema-init RPMs (schema-init, -daemons, -session, -migrate) and enables the COPR repo, so later fixes arrive through dnf upgrade, with PID 1 re-executed in place (#258, #266).
  • systemctl works on installed systems: -migrate ships a systemctl shim. When an RPM enables a unit, the unit is translated to a .svc and started by schema-init.
  • The importer translates more of systemd: .timer units (#257), EnvironmentFile= (#259), ExecStartPre= (#260), socket activation (#261), Condition*/Assert* (#262), ordering deps (#263, #264), and forking daemons with PIDFile= (#253). Skipped units leave a .svc.skipped note that says why (#256).
  • PID 1: stops services in reverse dependency order on shutdown (#252), keeps crash records from the previous boot via pstore (#251), reads /etc/fstab live at every boot (#254), and sets INVOCATION_ID (#263).
  • Hardening: bluetoothd and tailscaled run with tighter sandboxing (#242).

Fixed (found testing this release)

  • With -migrate installed, an initramfs rebuilt after a kernel update could hold the systemctl shim without the real systemctl behind it. Boot then hung after initrd-cleanup. The real binary now goes into the initramfs, and on upgrade an already-broken image is repaired once (#265).
  • On a fresh install, systemd-resolved's tmpfiles rule restored a dangling DNS stub link, so NetworkManager reported limited connectivity. The installer now masks that rule (#266).
  • The first-boot wizard now calls the flip helper that sudoers actually allows (#266).
  • Autologin passes SIGTERM on to the desktop session instead of swallowing it (#255).

Safety net: the stock systemd boot entries stay in the GRUB menu, so if a schema-init boot fails you can always pick the systemd entry. Both switches roll themselves back if they don't come up healthy.

EXPERIMENTAL — test on a machine you can reinstall.

SHA256: 49ce45c1ed314685573e152190b7a70b6fb5200f6283943366c3934bf97c20b5