diff --git a/pkgbuilds/omarchy-settings-dev/PKGBUILD b/pkgbuilds/omarchy-settings-dev/PKGBUILD index 6c7f8d9..61dd516 100644 --- a/pkgbuilds/omarchy-settings-dev/PKGBUILD +++ b/pkgbuilds/omarchy-settings-dev/PKGBUILD @@ -6,10 +6,11 @@ _pkgver_base=4.0.0 _pkgver_base_tag=v3.8.2 pkgdesc='Omarchy user defaults, /etc/skel content, fonts, plymouth theme, and support helpers (quattro branch tip)' # Arch-specific because the shipped /etc tree is not the same on every -# architecture: the Limine, mkinitcpio, zram and oomd drop-ins belong to the -# x86_64 boot and memory stack and are left out of the aarch64 package (see -# package()). makepkg only honours the arch-suffixed arrays below on -# arch-specific packages. +# architecture: the zram and oomd drop-ins belong to the x86_64 memory stack +# and are left out of the aarch64 package (see package()). The Limine and +# mkinitcpio drop-ins ship on both: UEFI aarch64 installs (DGX Spark, +# Snapdragon X) boot with Limine and an encrypted root exactly like x86_64. +# makepkg only honours the arch-suffixed arrays below on arch-specific packages. arch=('x86_64' 'aarch64') url='https://github.com/basecamp/omarchy' license=('MIT') @@ -68,14 +69,17 @@ backup=( 'etc/udev/rules.d/99-omarchy-power-profile.rules' 'etc/udev/rules.d/99-omarchy-wifi-powersave.rules' ) +# Boot configuration is backed up on both architectures. +backup+=( + 'etc/mkinitcpio.conf.d/omarchy_hooks.conf' + 'etc/limine-entry-tool.d/omarchy-defaults.conf' + 'etc/limine-entry-tool.d/omarchy-uki.conf' +) # backup has no arch-suffixed form, so the x86_64-only drop-ins join it here. # Each of these paths is removed from the aarch64 package in package(). if [[ $CARCH == x86_64 ]]; then backup+=( - 'etc/mkinitcpio.conf.d/omarchy_hooks.conf' 'etc/mkinitcpio.conf.d/thunderbolt_module.conf' - 'etc/limine-entry-tool.d/omarchy-defaults.conf' - 'etc/limine-entry-tool.d/omarchy-uki.conf' 'etc/modprobe.d/omarchy-usb-autosuspend.conf' 'etc/systemd/oomd.conf.d/10-omarchy.conf' 'etc/systemd/zram-generator.conf' @@ -160,14 +164,6 @@ package() { install -d "$pkgdir/usr/share/omarchy/config" cp -a config/. "$pkgdir/usr/share/omarchy/config/" - # The Limine/Snapper notifier has nothing to notify about without the x86_64 - # boot stack; drop it from both seeds so aarch64 users don't autostart a - # helper whose backing tool is not installed. - if [[ $CARCH == aarch64 ]]; then - rm -f "$pkgdir/etc/skel/.config/autostart/limine-snapper-notify.desktop" \ - "$pkgdir/usr/share/omarchy/config/autostart/limine-snapper-notify.desktop" - fi - # Package-owned defaults with real system/XDG locations. User config remains # higher priority: ~/.config/uwsm/default, ~/.config/uwsm/env.d, # ~/.config/environment.d, ~/.config/fontconfig, ~/.config/xdg-terminals.list, @@ -217,11 +213,12 @@ package() { install -d "$pkgdir/etc" cp -a etc/. "$pkgdir/etc/" if [[ $CARCH == aarch64 ]]; then - # The x86_64 boot stack's drop-ins must not ship on aarch64: mkinitcpio - # reads every file under /etc/mkinitcpio.conf.d/, so omarchy_hooks.conf - # would inject the Limine hooks into the Asahi kernel's initramfs, and the - # Limine entry-tool config has no consumer without Limine. - rm -rf "$pkgdir/etc/limine-entry-tool.d" "$pkgdir/etc/mkinitcpio.conf.d" + # Keep omarchy_hooks.conf and the Limine entry-tool config: without them a + # kernel update on an encrypted aarch64 install rebuilds an initramfs with + # no encrypt hook and the machine cannot unlock its root. Only the + # Thunderbolt module request is x86-specific; ARM kernels lack the module + # and mkinitcpio treats a missing explicit module as an error. + rm -f "$pkgdir/etc/mkinitcpio.conf.d/thunderbolt_module.conf" # Memory stack: no zram device or zswap on the aarch64 install, and # systemd-oomd is not enabled there, so the vm.* reclaim tuning written # for zram would be wrong for it. Keep only the network tuning. @@ -325,11 +322,6 @@ EOF # live root config. install -d "$pkgdir/usr/share/omarchy/default" cp -a default/. "$pkgdir/usr/share/omarchy/default/" - # The Limine template is read by the x86_64 ISO orchestrator only. - if [[ $CARCH == aarch64 ]]; then - rm -rf "$pkgdir/usr/share/omarchy/default/limine" - fi - # Snapper config template used by the install-time `snapper create-config`. install -Dm644 default/snapper/root \ "$pkgdir/etc/snapper/config-templates/omarchy" diff --git a/pkgbuilds/omarchy-settings/PKGBUILD b/pkgbuilds/omarchy-settings/PKGBUILD index 0d063f3..346dbe2 100644 --- a/pkgbuilds/omarchy-settings/PKGBUILD +++ b/pkgbuilds/omarchy-settings/PKGBUILD @@ -13,13 +13,14 @@ pkgname='omarchy-settings' _tag='v4.0.3' _commit='0534987009061cbe2dacdde4ad564092ab698d12' pkgver=4.0.3 -pkgrel=1 +pkgrel=2 pkgdesc='Omarchy user defaults, /etc/skel content, fonts, plymouth theme, and support helpers' # Arch-specific because the shipped /etc tree is not the same on every -# architecture: the Limine, mkinitcpio, zram and oomd drop-ins belong to the -# x86_64 boot and memory stack and are left out of the aarch64 package (see -# package()). makepkg only honours the arch-suffixed arrays below on -# arch-specific packages. +# architecture: the zram and oomd drop-ins belong to the x86_64 memory stack +# and are left out of the aarch64 package (see package()). The Limine and +# mkinitcpio drop-ins ship on both: UEFI aarch64 installs (DGX Spark, +# Snapdragon X) boot with Limine and an encrypted root exactly like x86_64. +# makepkg only honours the arch-suffixed arrays below on arch-specific packages. arch=('x86_64' 'aarch64') url='https://github.com/basecamp/omarchy' license=('MIT') @@ -77,14 +78,17 @@ backup=( 'etc/udev/rules.d/99-omarchy-power-profile.rules' 'etc/udev/rules.d/99-omarchy-wifi-powersave.rules' ) +# Boot configuration is backed up on both architectures. +backup+=( + 'etc/mkinitcpio.conf.d/omarchy_hooks.conf' + 'etc/limine-entry-tool.d/omarchy-defaults.conf' + 'etc/limine-entry-tool.d/omarchy-uki.conf' +) # backup has no arch-suffixed form, so the x86_64-only drop-ins join it here. # Each of these paths is removed from the aarch64 package in package(). if [[ $CARCH == x86_64 ]]; then backup+=( - 'etc/mkinitcpio.conf.d/omarchy_hooks.conf' 'etc/mkinitcpio.conf.d/thunderbolt_module.conf' - 'etc/limine-entry-tool.d/omarchy-defaults.conf' - 'etc/limine-entry-tool.d/omarchy-uki.conf' 'etc/modprobe.d/omarchy-usb-autosuspend.conf' 'etc/systemd/oomd.conf.d/10-omarchy.conf' 'etc/systemd/zram-generator.conf' @@ -155,14 +159,6 @@ package() { install -d "$pkgdir/usr/share/omarchy/config" cp -a config/. "$pkgdir/usr/share/omarchy/config/" - # The Limine/Snapper notifier has nothing to notify about without the x86_64 - # boot stack; drop it from both seeds so aarch64 users don't autostart a - # helper whose backing tool is not installed. - if [[ $CARCH == aarch64 ]]; then - rm -f "$pkgdir/etc/skel/.config/autostart/limine-snapper-notify.desktop" \ - "$pkgdir/usr/share/omarchy/config/autostart/limine-snapper-notify.desktop" - fi - # Package-owned defaults with real system/XDG locations. User config remains # higher priority: ~/.config/uwsm/default, ~/.config/uwsm/env.d, # ~/.config/environment.d, ~/.config/fontconfig, ~/.config/xdg-terminals.list, @@ -215,11 +211,12 @@ package() { install -d "$pkgdir/etc" cp -a etc/. "$pkgdir/etc/" if [[ $CARCH == aarch64 ]]; then - # The x86_64 boot stack's drop-ins must not ship on aarch64: mkinitcpio - # reads every file under /etc/mkinitcpio.conf.d/, so omarchy_hooks.conf - # would inject the Limine hooks into the Asahi kernel's initramfs, and the - # Limine entry-tool config has no consumer without Limine. - rm -rf "$pkgdir/etc/limine-entry-tool.d" "$pkgdir/etc/mkinitcpio.conf.d" + # Keep omarchy_hooks.conf and the Limine entry-tool config: without them a + # kernel update on an encrypted aarch64 install rebuilds an initramfs with + # no encrypt hook and the machine cannot unlock its root. Only the + # Thunderbolt module request is x86-specific; ARM kernels lack the module + # and mkinitcpio treats a missing explicit module as an error. + rm -f "$pkgdir/etc/mkinitcpio.conf.d/thunderbolt_module.conf" # Memory stack: no zram device or zswap on the aarch64 install, and # systemd-oomd is not enabled there, so the vm.* reclaim tuning written # for zram would be wrong for it. Keep only the network tuning. @@ -323,11 +320,6 @@ EOF # live root config. install -d "$pkgdir/usr/share/omarchy/default" cp -a default/. "$pkgdir/usr/share/omarchy/default/" - # The Limine template is read by the x86_64 ISO orchestrator only. - if [[ $CARCH == aarch64 ]]; then - rm -rf "$pkgdir/usr/share/omarchy/default/limine" - fi - # Snapper config template used by the install-time `snapper create-config`. install -Dm644 default/snapper/root \ "$pkgdir/etc/snapper/config-templates/omarchy"