Skip to content

Bump archinstall to 4.4; move Plymouth into Phase A#16

Merged
AdamJHall merged 1 commit into
mainfrom
archinstall-4.4-plymouth
Jun 30, 2026
Merged

Bump archinstall to 4.4; move Plymouth into Phase A#16
AdamJHall merged 1 commit into
mainfrom
archinstall-4.4-plymouth

Conversation

@AdamJHall

Copy link
Copy Markdown
Owner

What

archinstall 4.4 released. This bumps our pinned schema version and takes advantage of its new bootloader_config.plymouth field to move Plymouth setup from a Phase B stage into archinstall (Phase A).

4.3 → 4.4 review

Diffed the schema-relevant code (config/creds parsing in args.py, lib/models/*, configuration.py). No breaking changes to anything we render — config input parsing, the creds format (!root-password / users[].!password), disk_config serialization, and the --config/--creds/--silent flags are all unchanged. New 4.4 additions are optional (locale_config.console_font defaults if absent; network iwd; share-log subcommand) — none required.

The one field we adopt is bootloader_config.plymouth: when set, archinstall installs plymouth, inserts the initramfs hook, appends quiet splash to the kernel cmdline, runs plymouth-set-default-theme and rebuilds the initramfs — all during the install.

Changes

  • Bump pinned Version 4.3 → 4.4; regenerate goldens (version field only, no behavioural drift).
  • Render plymouth.theme into bootloader_config.plymouth (omitempty → unset configs stay byte-identical).
  • Restrict plymouth.theme to archinstall's 10 built-in themes. archinstall sys.exit(1)s on an unknown theme, so we reject it at validation rather than aborting a destructive Phase A. Custom Plymouth themes are no longer supported via this path — deliberate tradeoff.
  • Drop grub.cmdline_extra — archinstall now supplies quiet splash, and it was only ever applied by the plymouth stage.
  • Remove the Phase B plymouth stage plus the now-dead ensureKernelParam / regenerateBootConfig helpers and plymouth-only test files.

New behaviour proven by inline field-assertion tests; goldens unchanged except the version bump.

Side effect: a bug goes away

This resolves docs/bugs/plymouth-bootctl-update-fails-systemd-boot.md — the always-on Phase B bootctl update that broke every systemd-boot bootstrap no longer exists.

⚠️ VM-validation-pending

The bootloader_config.plymouth shape is reverse-engineered from 4.4 source. Per the CLAUDE.md archinstall-drift rule, confirm on a real archinstall run in a VM that the spinner theme is set and quiet splash reaches the cmdline before trusting on hardware. Added a tracking row in docs/vm-validation.md.

🤖 Generated with Claude Code

archinstall 4.4 adds a `bootloader_config.plymouth` field that installs and
configures the boot splash during the install (initramfs hook, `quiet splash`
on the cmdline, theme, initramfs rebuild). Render `plymouth.theme` into it and
retire the Phase B plymouth stage.

- Bump pinned archinstall Version 4.3 -> 4.4; regenerate goldens (version field
  only — no behavioural drift).
- Render Plymouth in `internal/archinstall`; `plymouth` is omitempty so configs
  without a theme stay byte-identical.
- Restrict `plymouth.theme` to archinstall's 10 built-in themes: archinstall
  sys.exit(1)s on an unknown value, so reject it at validation rather than
  aborting a destructive install. Custom themes are unsupported via this path.
- Drop `grub.cmdline_extra` (archinstall now supplies `quiet splash`; it was
  only ever applied by the plymouth stage).
- Remove the Phase B plymouth stage plus the now-dead ensureKernelParam /
  regenerateBootConfig helpers and the plymouth-only test files.

Side effect: resolves plymouth-bootctl-update-fails-systemd-boot.md — the
always-on Phase B `bootctl update` path that broke systemd-boot bootstrap no
longer exists.

VM-validation-pending: the bootloader_config.plymouth shape is reverse-
engineered from 4.4 source and must be confirmed on a real run.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@AdamJHall AdamJHall merged commit 7744395 into main Jun 30, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant