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.
Monologue now publishes a GitHub release for every version, so declare
its v{pkgver} tags as the upstream feed, as Hype does. The scheduled sync
picks up new releases and hashes the tag archive, instead of pinning a
commit by hand. This first release brings Monologue to 0.2.0, which
builds trimming in, so the omacut optdepend goes.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Elsewhen moved into the Omarchy shell as omarchy.elsewhen (basecamp/omarchy#13429),
and a migration there removes the installed package. Nothing else in the repo
references it.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The first pins (quattro ee8ebf6, omasnap eb22bfe) date from 2026-09-21.
Edge has since published omarchy-dev from quattro 7b336b1 through a
manual rebuild, so merging the old pin would ship older code under a
higher version. Moved with the tracker's own code:
bin/sync-upstream --lane auto-merge (BYPASS_MIN_RELEASE_AGE=1)
Since publishing moved to CI on merge, a package whose PKGBUILD never
changes while its source moves was never rebuilt: omarchy-dev and
omarchy-settings-dev followed quattro through "#branch=" and a pkgver()
function, and nothing in this repository changed when quattro did. The
host timers that used to notice are off, so edge fell days behind.
The rule now: no git source without a commit or tag pin
(tests/pinned-sources.sh, run in CI). A package that has to follow a
branch declares a git_branch upstream watch, and the pin moves through
the same PR/build/publish path as every other version bump.
Watch (helpers/upstream-watch.py)
git_branch gains tag_pattern: the newest release tag in the pinned
commit's own history, exposed as {tag}/{version}/{distance}, so a
branch build is versioned <tag>.r<n>.g<sha>, above the release it
follows and below the next one. One blobless clone per branch per
run, shared by every package on it. min_release_age selects the
newest commit older than the window, so a push burst builds once.
Lane (helpers/package-metadata.sh, bin/sync-upstream --lane)
"auto_merge": true moves a package from the reviewed 6-hourly sync
PR to the unattended lane. Packages pinned from the same branch move
together: a failure on one restores the others and fails the group,
so the dev pair can never ship from two quattro commits.
Tracker (.github/workflows/track-branches.yml)
Every two hours: pin, open one PR with a GitHub App token, enable
auto-merge. Branch protection still gates the merge on result,
self-tests and build-isolation. A tip that fails to build stays an
open red PR until the next tick supersedes it. The App is required:
a PR opened with GITHUB_TOKEN has its checks held for approval and
its auto-merge would not fire publish.yml.
The reviewed workflows (sync-upstream, sync-rebuilds) open their PRs
with the same App so their builds start without a maintainer clicking
"Approve workflows to run"; without the App they fall back to
GITHUB_TOKEN and behave as before.
Recipes
The dev pair pins _commit and a real sha256sum, keeps the OMARCHY_SRC
override, and drops pkgver(). Its r-number stays the branch's total
commit count because the published history used it and pacman must
never see the version go down. omasnap-git is new: omacom/omasnap
main, versioned <tag>.r<distance>.g<sha>, provides/conflicts omasnap.
With the search race skipped, the aarch64 main suite ran to the end:
2339 passed, 2 failed. a_missing_working_directory_... expects spawn to
fail on a missing cwd, which posix_spawn cannot report under QEMU
user-mode. in_place_retirement_... identifies its process by
/proc/<pid>/exe, which names /usr/bin/qemu-aarch64 there, not sleep.
Apple Silicon Macs install the aarch64 package too, and an unconditional
HOOKS= line would replace their asahi hooks. Apply Omarchy's HOOKS line only
when the incoming hooks lack asahi, in whichever drop-in carries it, and
rebuild omarchy-settings (4.0.4-3) so existing installs get the fix.
From omacom/omarchy-mac#567 the add-on enables speakersafetyd itself and its
README says the recipe declares mkinitcpio and the protected speaker stack
(asahi-audio, which pulls speakersafetyd, alsa-ucm-conf-asahi, rtkit,
pipewire-alsa).
Both packages move to the same omarchy-mac commit, so speakersafetyd keeps
one owner (#567 with #535) and the boot entrypoints the runtime needs publish
first. omarchy-mac gains the Apple Silicon platform group its source's guard
contract names.
strata: the example actions' image test needs ImageMagick with WebP
(checkdepends), the checksum example dies printing a non-UTF-8 name
under the builder's en_US.UTF-8 locale (upstream bug, skipped), and on
aarch64 a search refresh test loses a race to the index worker.
flea: on aarch64 the 1900-deep dirsize walk hits its 2 s deadline, and a
process-group cancel test loses its 5 s race under emulation.
owe: on aarch64 the transition test cannot render enough blended frames
under emulation; run every other test there.
Versions and checksums as in sync PR #660.
TMOG 1.0.0 moved the site under /rtm/ and publishes each Linux tarball
under a versioned name with a .sha256 sidecar. The versionless
/downloads/TMOG-Task-Manager-Linux-x86_64.tar.gz path the hook fetched
now returns 404, so every upstream sync since 1.0.0 has failed.
Point source=() at the versioned tarball and have the hook read the
version from /rtm/version.txt and the checksum from the sidecar, which
drops the 8 MB download and the directory-name check the mutable URL
needed.
set_pkgbuild_array ended its skip over the old array at the first line
holding a ")", comments included. voxtype-bin annotates its arrays with
"# Quickshell OSD launcher + audio-bridge sidecar (new in v0.7.5)", so
the rewrite stopped there and left the rest of the old array behind a
stray ")". Every scheduled sync since voxtype 1.1.0 failed with
"Rewritten PKGBUILD is not valid shell".
Strip comments before looking for the closing paren, add a self-test
fixture that fails on the old awk, and take the update it was blocking:
voxtype-bin 1.0.1 -> 1.1.0.
The deb's /etc/cron.daily/microsoft-edge runs a script that writes an
apt keyring to /usr/share/keyrings every day. pacman doesn't track that
file, so it stays behind after Edge is removed. Remove the cron job and
its script the way the Chrome recipe already does, and skip the empty
/etc left behind. pkgrel 2 so this build replaces AUR-installed copies.
Found in a Codex review.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
omarchy-install-browser still reaches for yay to install Chrome, Edge,
Brave, Brave Origin and Zen. These were the only packages anywhere in
Omarchy's installers and menus that aren't available from core, extra,
multilib or OPR. Serving them from OPR means installing any Omarchy
browser no longer depends on the AUR being up.
Imported once from the AUR with bin/add-package, on the fast ring so
browser security releases reach stable promptly, each with a direct
vendor watch:
- google-chrome: Google's stable apt index
- microsoft-edge-stable-bin: Microsoft's stable apt index
- brave-bin, brave-origin-bin: Brave's stable apt index. Brave's
GitHub releases can't be used because nightlies aren't marked as
prereleases there.
- zen-browser-bin: GitHub releases (the twilight tag doesn't match)
Package names match what Omarchy's scripts already check for, so the
existing omarchy-pkg-aur-add calls resolve to the repo package without
any change on the Omarchy side.
Validation: upstream-watch check reports all five as current. A sync
of downgraded copies of zen-browser-bin and brave-origin-bin reproduces
the checked-in pkgver and both architectures' checksums. All five build
with makepkg on x86_64, and the launchers, desktop IDs and /opt paths
match what omarchy-default-browser and omarchy-theme-set-browser use.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
ttfx releases are now published on GitHub only, so sync-upstream picks up new
versions through a github watch instead of ttfx's release script editing this
recipe. The recipe also points at the repository's current home, and x86_64
builds pull in NASM, which the new assembly engine needs (without it the
build silently falls back to the Rust engine).
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MxJcVYpBxFDam6czK4bGjp
Refresh the #16343 backport to carry the upstream follow-up that
matches llvmpipe/softpipe/Software Rasterizer with ASCII
case-insensitive, string_view-based matching.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Hype now publishes a GitHub release for every version, so declare its
v{pkgver} tags as the upstream feed. The scheduled sync picks up new
releases and hashes the tag archive, instead of a hand-written PR each
time. This first sync brings Hype to 0.4.2.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Carry a v0.56.2 backport of hyprwm/Hyprland#16343 so display-only KMS
drivers paired with llvmpipe are classified as software rendering.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
The snapshot restore hooks under /etc/boot/hooks are symlinks, which the
backup list leaves out. omarchy-drive-password needs luks-slots only for the
system disk.
omarchy-lifecycle-dispatch requires reset-* (#552) and luks-slots (#553) on
Apple Silicon, so a runtime carrying them before this package blocks factory
reset, owner setup and omarchy-drive-password on Macs.
The boot check and, from #560, the snapshot restore check read the kernel out
of the Limine UKI with objcopy. mkinitcpio pulls binutils in today, but the
package calls it directly.
Moves the pin from f7ea7ecc to the head of quattro-upstream, which adds
#552's reset-prepare, reset-verify, reset-commit and reset-rollback
entrypoints, #553's luks-slots entrypoint and recovery key handling,
#556's encrypt unit output to kmsg at notice, and #560's snapshot restore
check with its limine-snapper-sync pre and post hooks. The pin's UTC date is
still 20260925, so pkgrel goes to 4. #544 is not in it, so the Plymouth
fragment still ships and no HOOKS baseline dependency applies.
Moves the pin from the boot-set integration commit to quattro-upstream,
which now has #541 with its review fixes (first boot hands off only for a
failed step, and the retry waits for NetworkManager), #543's update-verify
entrypoint, #545's provision entrypoints and #549's keyslot-only LUKS check.
#544 is not in it, so the Plymouth fragment still ships and no HOOKS baseline
dependency applies.
A pin with omacom/omarchy-mac#544 needs the settings HOOKS baseline (#542)
published first; a pin with #543's update-verify entrypoint must publish
before any runtime carrying #543. pkgrel 3 so this rebuild does not reuse the
published 20260925-2 filename.
From omacom/omarchy-mac#544 the Apple drop-ins no longer add Plymouth
themselves and build on omarchy-settings' 00-omarchy-hooks.conf (#536). A
settings version cannot express that (quattro candidates sort below stock
releases and omarchy pins its settings exactly), so a build whose payload has
no 93-omarchy-mac-plymouth.conf depends on the name
omarchy-mkinitcpio-hooks-baseline, which settings packages that ship the
baseline must provide.
Pin a09ee0ca, the head of omacom/omarchy-mac integ/boot-set-1 (#547): quattro-upstream with #527, #540, #545 and #541 merged. The package then carries the Apple provisioning entrypoints from #545 and can publish before those PRs merge.
groups=('omarchy-platform-apple-silicon') is the platform tag the pacman
platform guard reads (omacom/omarchy-mac#539); the package is not published
yet, so it carries the tag from its first build. The pin moves to 3a58abb5,
omacom/omarchy-mac#541 with #527's current head merged in.
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.
DRM.cpp needs more than 8 MiB of compiler stack. GCC raises its own limit
natively, but the aarch64 builder runs under QEMU user-mode emulation, which
fixes the guest stack at exec and ignores setrlimit, so cc1plus segfaulted.
Unpatched 0.15.1 fails the same way. QEMU_STACK_SIZE sizes it at exec; native
builds ignore it and the object code is identical.