omacom/omarchy#13362 sets HOOKS per platform inside 00-omarchy-hooks.conf, with no column-0 HOOKS= line, so the aarch64 build failed on it; settings-dev tracks quattro automatically and would break as soon as it lands. Wrap only a single-line HOOKS=(...), refuse any other column-0 HOOKS=, then source the shipped files onto a Mac line and a stock line: the Mac line must come through unchanged and the stock one must not. Back up 00-omarchy-hooks.conf when it ships, and refuse it without the omarchy-hw-platform copy it asks. The test now uses the real v4.0.4 hooks file, #13362's two files and omarchy-mac-boot's 90-94 fragments, and covers upgrades over a hand-restored file.
38 lines
1.8 KiB
Plaintext
38 lines
1.8 KiB
Plaintext
# The platform's HOOKS baseline. mkinitcpio sources mkinitcpio.conf and then
|
|
# every drop-in here in name order, so the baseline sorts first and the drop-ins
|
|
# after it add their hooks to it instead of being overwritten by it.
|
|
#
|
|
# Apple Silicon boots a systemd initramfs, and its platform package adds the
|
|
# firmware and encryption hooks. Every other machine keeps the busybox line. The
|
|
# runtime's detector answers, or else the copy omarchy-settings ships for its
|
|
# platform guard, so a settings package newer than the runtime still places a
|
|
# Mac. Without either, the busybox line stays. A detector that cannot place the
|
|
# machine stops the build rather than let it produce an image for the wrong
|
|
# platform.
|
|
_omarchy_platform=""
|
|
_omarchy_detector=$(command -v omarchy-hw-platform) || _omarchy_detector=/usr/share/libalpm/scripts/omarchy-hw-platform
|
|
if [[ -x $_omarchy_detector ]]; then
|
|
_omarchy_platform=$("$_omarchy_detector") || return 1
|
|
fi
|
|
|
|
# A Mac whose mkinitcpio.conf carries the asahi hook, or the busybox encrypt
|
|
# hook that unlocks it through cryptdevice= (sd-encrypt cannot parse that), boots
|
|
# the initramfs its platform set up without the Apple boot package, as a legacy
|
|
# install does. Its line stays as it is. The asahi hook also marks such a root
|
|
# off a Mac, as in a chroot or a VM.
|
|
if [[ " ${HOOKS[*]:-} " == *" asahi "* ]] ||
|
|
[[ $_omarchy_platform == "apple-silicon" && " ${HOOKS[*]:-} " == *" encrypt "* ]]; then
|
|
_omarchy_platform=platform-owned
|
|
fi
|
|
|
|
case $_omarchy_platform in
|
|
platform-owned) ;;
|
|
apple-silicon)
|
|
HOOKS=(base systemd plymouth autodetect microcode modconf kms keyboard sd-vconsole block filesystems fsck)
|
|
;;
|
|
*)
|
|
HOOKS=(base udev plymouth keyboard autodetect microcode modconf kms keymap consolefont block encrypt filesystems fsck btrfs-overlayfs)
|
|
;;
|
|
esac
|
|
unset _omarchy_platform _omarchy_detector
|