From 00fac82ad342afa0be2cec83ad08b0d8691b2f0c Mon Sep 17 00:00:00 2001 From: Marcelo Alcantara Date: Fri, 25 Sep 2026 19:23:36 +1000 Subject: [PATCH 1/4] omarchy-settings: ship the pacman platform guard when the source has it The guard hook and the script it runs install together from omarchy-settings, so they are resident before the runtime and hardware packages. Conditional, so builds from sources without them are unchanged. --- pkgbuilds/omarchy-settings-dev/PKGBUILD | 11 +++++++++++ pkgbuilds/omarchy-settings/PKGBUILD | 11 +++++++++++ 2 files changed, 22 insertions(+) diff --git a/pkgbuilds/omarchy-settings-dev/PKGBUILD b/pkgbuilds/omarchy-settings-dev/PKGBUILD index 4023b89d..70fb2389 100644 --- a/pkgbuilds/omarchy-settings-dev/PKGBUILD +++ b/pkgbuilds/omarchy-settings-dev/PKGBUILD @@ -364,6 +364,17 @@ EOF install -Dm755 default/systemd/system-sleep/unmount-fuse \ "$pkgdir/usr/lib/systemd/system-sleep/unmount-fuse" + # Pacman platform guard: refuses packages tagged for another hardware + # platform. It ships here, not in omarchy, so it is resident before the + # runtime and any hardware package install; the hook and the script it runs + # travel together. Conditional until the pinned source carries them. + if [[ -f default/libalpm/hooks/00-omarchy-platform-guard.hook ]]; then + install -Dm644 default/libalpm/hooks/00-omarchy-platform-guard.hook \ + "$pkgdir/usr/share/libalpm/hooks/00-omarchy-platform-guard.hook" + install -Dm755 default/libalpm/scripts/omarchy-platform-guard \ + "$pkgdir/usr/share/libalpm/scripts/omarchy-platform-guard" + fi + # Branding assets (logos, icons). install -Dm644 logo.txt "$pkgdir/usr/share/omarchy/logo.txt" install -Dm644 logo.svg "$pkgdir/usr/share/omarchy/logo.svg" diff --git a/pkgbuilds/omarchy-settings/PKGBUILD b/pkgbuilds/omarchy-settings/PKGBUILD index 5eb5ca80..093af887 100644 --- a/pkgbuilds/omarchy-settings/PKGBUILD +++ b/pkgbuilds/omarchy-settings/PKGBUILD @@ -362,6 +362,17 @@ EOF install -Dm755 default/systemd/system-sleep/unmount-fuse \ "$pkgdir/usr/lib/systemd/system-sleep/unmount-fuse" + # Pacman platform guard: refuses packages tagged for another hardware + # platform. It ships here, not in omarchy, so it is resident before the + # runtime and any hardware package install; the hook and the script it runs + # travel together. Conditional until the pinned source carries them. + if [[ -f default/libalpm/hooks/00-omarchy-platform-guard.hook ]]; then + install -Dm644 default/libalpm/hooks/00-omarchy-platform-guard.hook \ + "$pkgdir/usr/share/libalpm/hooks/00-omarchy-platform-guard.hook" + install -Dm755 default/libalpm/scripts/omarchy-platform-guard \ + "$pkgdir/usr/share/libalpm/scripts/omarchy-platform-guard" + fi + # Branding assets (logos, icons). install -Dm644 logo.txt "$pkgdir/usr/share/omarchy/logo.txt" install -Dm644 logo.svg "$pkgdir/usr/share/omarchy/logo.svg" From 0a65168b0992416dd141209849d5a9a25562e1dc Mon Sep 17 00:00:00 2001 From: Marcelo Alcantara Date: Fri, 25 Sep 2026 19:56:22 +1000 Subject: [PATCH 2/4] Move the platform detector to omarchy-settings with the guard The settings package's platform guard runs omarchy-hw-platform before the omarchy runtime is installed. omarchy leaves the detector out of its bin/ loop and settings ships it, with the /usr/share/omarchy/bin link the Apple predicate and the CLI router use, whenever the source has it. --- pkgbuilds/omarchy-dev/PKGBUILD | 5 +++-- pkgbuilds/omarchy-settings-dev/PKGBUILD | 12 ++++++++++-- pkgbuilds/omarchy-settings/PKGBUILD | 12 ++++++++++-- pkgbuilds/omarchy/PKGBUILD | 5 +++-- 4 files changed, 26 insertions(+), 8 deletions(-) diff --git a/pkgbuilds/omarchy-dev/PKGBUILD b/pkgbuilds/omarchy-dev/PKGBUILD index 58630edd..ce16459b 100644 --- a/pkgbuilds/omarchy-dev/PKGBUILD +++ b/pkgbuilds/omarchy-dev/PKGBUILD @@ -110,14 +110,15 @@ package() { # Runtime binaries — ship everything in bin/ except the debug helpers # that ship from omarchy-settings (needed before omarchy is installed, - # e.g. on the ISO live env). + # e.g. on the ISO live env), and the platform detector, which the settings + # package's pacman platform guard runs before omarchy is installed. install -d "$pkgdir/usr/bin" "$pkgdir/usr/share/omarchy/bin" for bin in bin/*; do [[ -f $bin ]] || continue local base base=$(basename "$bin") case "$base" in - omarchy-debug|omarchy-debug-idle|omarchy-upload-log) + omarchy-debug|omarchy-debug-idle|omarchy-upload-log|omarchy-hw-platform) continue ;; esac diff --git a/pkgbuilds/omarchy-settings-dev/PKGBUILD b/pkgbuilds/omarchy-settings-dev/PKGBUILD index 70fb2389..d5bd59f9 100644 --- a/pkgbuilds/omarchy-settings-dev/PKGBUILD +++ b/pkgbuilds/omarchy-settings-dev/PKGBUILD @@ -366,8 +366,16 @@ EOF # Pacman platform guard: refuses packages tagged for another hardware # platform. It ships here, not in omarchy, so it is resident before the - # runtime and any hardware package install; the hook and the script it runs - # travel together. Conditional until the pinned source carries them. + # runtime and any hardware package install; the hook, the script it runs and + # the platform detector that script asks all travel together. omarchy leaves + # the detector out of its bin/ loop; the share/bin link keeps the Apple + # predicate's "detector beside me" lookup and the CLI router working. + # Conditional until the pinned source carries them. + if [[ -f bin/omarchy-hw-platform ]]; then + install -Dm755 bin/omarchy-hw-platform "$pkgdir/usr/bin/omarchy-hw-platform" + install -d "$pkgdir/usr/share/omarchy/bin" + ln -s /usr/bin/omarchy-hw-platform "$pkgdir/usr/share/omarchy/bin/omarchy-hw-platform" + fi if [[ -f default/libalpm/hooks/00-omarchy-platform-guard.hook ]]; then install -Dm644 default/libalpm/hooks/00-omarchy-platform-guard.hook \ "$pkgdir/usr/share/libalpm/hooks/00-omarchy-platform-guard.hook" diff --git a/pkgbuilds/omarchy-settings/PKGBUILD b/pkgbuilds/omarchy-settings/PKGBUILD index 093af887..d44015a5 100644 --- a/pkgbuilds/omarchy-settings/PKGBUILD +++ b/pkgbuilds/omarchy-settings/PKGBUILD @@ -364,8 +364,16 @@ EOF # Pacman platform guard: refuses packages tagged for another hardware # platform. It ships here, not in omarchy, so it is resident before the - # runtime and any hardware package install; the hook and the script it runs - # travel together. Conditional until the pinned source carries them. + # runtime and any hardware package install; the hook, the script it runs and + # the platform detector that script asks all travel together. omarchy leaves + # the detector out of its bin/ loop; the share/bin link keeps the Apple + # predicate's "detector beside me" lookup and the CLI router working. + # Conditional until the pinned source carries them. + if [[ -f bin/omarchy-hw-platform ]]; then + install -Dm755 bin/omarchy-hw-platform "$pkgdir/usr/bin/omarchy-hw-platform" + install -d "$pkgdir/usr/share/omarchy/bin" + ln -s /usr/bin/omarchy-hw-platform "$pkgdir/usr/share/omarchy/bin/omarchy-hw-platform" + fi if [[ -f default/libalpm/hooks/00-omarchy-platform-guard.hook ]]; then install -Dm644 default/libalpm/hooks/00-omarchy-platform-guard.hook \ "$pkgdir/usr/share/libalpm/hooks/00-omarchy-platform-guard.hook" diff --git a/pkgbuilds/omarchy/PKGBUILD b/pkgbuilds/omarchy/PKGBUILD index 41314eab..1ac7d532 100644 --- a/pkgbuilds/omarchy/PKGBUILD +++ b/pkgbuilds/omarchy/PKGBUILD @@ -110,14 +110,15 @@ package() { # Runtime binaries — ship everything in bin/ except the debug helpers # that ship from omarchy-settings (needed before omarchy is installed, - # e.g. on the ISO live env). + # e.g. on the ISO live env), and the platform detector, which the settings + # package's pacman platform guard runs before omarchy is installed. install -d "$pkgdir/usr/bin" "$pkgdir/usr/share/omarchy/bin" for bin in bin/*; do [[ -f $bin ]] || continue local base base=$(basename "$bin") case "$base" in - omarchy-debug|omarchy-debug-idle|omarchy-upload-log) + omarchy-debug|omarchy-debug-idle|omarchy-upload-log|omarchy-hw-platform) continue ;; esac From fb2ade61fc344ff1c898b6727726f6b08d0c0867 Mon Sep 17 00:00:00 2001 From: Marcelo Alcantara Date: Fri, 25 Sep 2026 20:01:13 +1000 Subject: [PATCH 3/4] Give the platform guard its own detector copy instead of moving it Moving omarchy-hw-platform from omarchy to omarchy-settings loses the file when the dev pair installs in separate transactions, since omarchy-dev does not pin omarchy-settings-dev's version. Settings now installs a copy beside the guard script and omarchy keeps its detector, so no file changes owner. --- pkgbuilds/omarchy-dev/PKGBUILD | 5 ++--- pkgbuilds/omarchy-settings-dev/PKGBUILD | 14 +++++--------- pkgbuilds/omarchy-settings/PKGBUILD | 14 +++++--------- pkgbuilds/omarchy/PKGBUILD | 5 ++--- 4 files changed, 14 insertions(+), 24 deletions(-) diff --git a/pkgbuilds/omarchy-dev/PKGBUILD b/pkgbuilds/omarchy-dev/PKGBUILD index ce16459b..58630edd 100644 --- a/pkgbuilds/omarchy-dev/PKGBUILD +++ b/pkgbuilds/omarchy-dev/PKGBUILD @@ -110,15 +110,14 @@ package() { # Runtime binaries — ship everything in bin/ except the debug helpers # that ship from omarchy-settings (needed before omarchy is installed, - # e.g. on the ISO live env), and the platform detector, which the settings - # package's pacman platform guard runs before omarchy is installed. + # e.g. on the ISO live env). install -d "$pkgdir/usr/bin" "$pkgdir/usr/share/omarchy/bin" for bin in bin/*; do [[ -f $bin ]] || continue local base base=$(basename "$bin") case "$base" in - omarchy-debug|omarchy-debug-idle|omarchy-upload-log|omarchy-hw-platform) + omarchy-debug|omarchy-debug-idle|omarchy-upload-log) continue ;; esac diff --git a/pkgbuilds/omarchy-settings-dev/PKGBUILD b/pkgbuilds/omarchy-settings-dev/PKGBUILD index d5bd59f9..6eb62e19 100644 --- a/pkgbuilds/omarchy-settings-dev/PKGBUILD +++ b/pkgbuilds/omarchy-settings-dev/PKGBUILD @@ -367,20 +367,16 @@ EOF # Pacman platform guard: refuses packages tagged for another hardware # platform. It ships here, not in omarchy, so it is resident before the # runtime and any hardware package install; the hook, the script it runs and - # the platform detector that script asks all travel together. omarchy leaves - # the detector out of its bin/ loop; the share/bin link keeps the Apple - # predicate's "detector beside me" lookup and the CLI router working. - # Conditional until the pinned source carries them. - if [[ -f bin/omarchy-hw-platform ]]; then - install -Dm755 bin/omarchy-hw-platform "$pkgdir/usr/bin/omarchy-hw-platform" - install -d "$pkgdir/usr/share/omarchy/bin" - ln -s /usr/bin/omarchy-hw-platform "$pkgdir/usr/share/omarchy/bin/omarchy-hw-platform" - fi + # the script's own copy of the platform detector travel together (omarchy + # keeps /usr/bin/omarchy-hw-platform). Conditional until the pinned source + # carries them. if [[ -f default/libalpm/hooks/00-omarchy-platform-guard.hook ]]; then install -Dm644 default/libalpm/hooks/00-omarchy-platform-guard.hook \ "$pkgdir/usr/share/libalpm/hooks/00-omarchy-platform-guard.hook" install -Dm755 default/libalpm/scripts/omarchy-platform-guard \ "$pkgdir/usr/share/libalpm/scripts/omarchy-platform-guard" + install -Dm755 bin/omarchy-hw-platform \ + "$pkgdir/usr/share/libalpm/scripts/omarchy-hw-platform" fi # Branding assets (logos, icons). diff --git a/pkgbuilds/omarchy-settings/PKGBUILD b/pkgbuilds/omarchy-settings/PKGBUILD index d44015a5..3299e6cf 100644 --- a/pkgbuilds/omarchy-settings/PKGBUILD +++ b/pkgbuilds/omarchy-settings/PKGBUILD @@ -365,20 +365,16 @@ EOF # Pacman platform guard: refuses packages tagged for another hardware # platform. It ships here, not in omarchy, so it is resident before the # runtime and any hardware package install; the hook, the script it runs and - # the platform detector that script asks all travel together. omarchy leaves - # the detector out of its bin/ loop; the share/bin link keeps the Apple - # predicate's "detector beside me" lookup and the CLI router working. - # Conditional until the pinned source carries them. - if [[ -f bin/omarchy-hw-platform ]]; then - install -Dm755 bin/omarchy-hw-platform "$pkgdir/usr/bin/omarchy-hw-platform" - install -d "$pkgdir/usr/share/omarchy/bin" - ln -s /usr/bin/omarchy-hw-platform "$pkgdir/usr/share/omarchy/bin/omarchy-hw-platform" - fi + # the script's own copy of the platform detector travel together (omarchy + # keeps /usr/bin/omarchy-hw-platform). Conditional until the pinned source + # carries them. if [[ -f default/libalpm/hooks/00-omarchy-platform-guard.hook ]]; then install -Dm644 default/libalpm/hooks/00-omarchy-platform-guard.hook \ "$pkgdir/usr/share/libalpm/hooks/00-omarchy-platform-guard.hook" install -Dm755 default/libalpm/scripts/omarchy-platform-guard \ "$pkgdir/usr/share/libalpm/scripts/omarchy-platform-guard" + install -Dm755 bin/omarchy-hw-platform \ + "$pkgdir/usr/share/libalpm/scripts/omarchy-hw-platform" fi # Branding assets (logos, icons). diff --git a/pkgbuilds/omarchy/PKGBUILD b/pkgbuilds/omarchy/PKGBUILD index 1ac7d532..41314eab 100644 --- a/pkgbuilds/omarchy/PKGBUILD +++ b/pkgbuilds/omarchy/PKGBUILD @@ -110,15 +110,14 @@ package() { # Runtime binaries — ship everything in bin/ except the debug helpers # that ship from omarchy-settings (needed before omarchy is installed, - # e.g. on the ISO live env), and the platform detector, which the settings - # package's pacman platform guard runs before omarchy is installed. + # e.g. on the ISO live env). install -d "$pkgdir/usr/bin" "$pkgdir/usr/share/omarchy/bin" for bin in bin/*; do [[ -f $bin ]] || continue local base base=$(basename "$bin") case "$base" in - omarchy-debug|omarchy-debug-idle|omarchy-upload-log|omarchy-hw-platform) + omarchy-debug|omarchy-debug-idle|omarchy-upload-log) continue ;; esac From 7ed92ad039e0348640a446caad892984ea5537bf Mon Sep 17 00:00:00 2001 From: Marcelo Alcantara Date: Fri, 25 Sep 2026 20:57:33 +1000 Subject: [PATCH 4/4] omarchy-settings: bump pkgrel for the platform guard lines CI builds a changed recipe and needs a new package; 4.0.4-1 is already published. The pinned upstream source has no guard files, so 4.0.4-2 has the same contents. --- pkgbuilds/omarchy-settings/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgbuilds/omarchy-settings/PKGBUILD b/pkgbuilds/omarchy-settings/PKGBUILD index 3299e6cf..9fce62f8 100644 --- a/pkgbuilds/omarchy-settings/PKGBUILD +++ b/pkgbuilds/omarchy-settings/PKGBUILD @@ -13,7 +13,7 @@ pkgname='omarchy-settings' _tag='v4.0.4' _commit='c668141e9c42b13c80c9ca4ea108e11708c5e8a5' pkgver=4.0.4 -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