Aurora Silicon's fork of the Asahi kernel (DisplayPort alt-mode and USB4
for external displays, VRR, ISP and AOP drivers) as an aarch64-only split
package, linux-aurora and linux-aurora-headers, pinned to an immutable
commit that was cold-boot qualified on a MacBook Pro 14" M1 Pro and 16"
M2 Max. It provides and conflicts with linux-asahi so Macs move over in
one explicit transaction, and pkgrel 9 orders it after the last build the
maralcbr fork published, so already-installed Macs upgrade on -Syu.
Metadata: skip_build like the x86 kernels (built only by its own PR),
release_ring fast with channels edge and rc, so one merge publishes the
same artifact to edge/aarch64 and rc/aarch64 and stable keeps asahi-alarm's
linux-asahi. No x86 job is emitted and no shared tooling changes.
Update both package recipes and source checksums to OWE 0.2.6. This release includes the transition-image timeout and output-selection fixes. Package builds pass on x86_64 and aarch64.
0.2.3 adds one-shot intro playback: owe intro, intro-status, and intro-stop, plus the renderer once/mute load and keep-open hold. Both PKGBUILDs take the v0.2.3 tarball; checksums verified with makepkg --verifysource.
Co-authored-by: Bjarne Oeverli <1419214+bjarneo@users.noreply.github.com>
The all-themes.lua spec references "gthelding/monokai-pro.nvim", a fork
that no longer exists on GitHub (HTTP 404). On every launch lazy.nvim
fails to clone it and reports "repository not found", and leaves a stale
lazy/monokai-pro.nvim.cloning marker so the error repeats.
Restore the canonical, actively maintained upstream
"loctvl842/monokai-pro.nvim" -- the value this line held before
80a278206 ("Match nvim themes"). It registers the same "monokai-pro"
colorscheme and still supports filter = "ristretto" plus the setup
override used by Omarchy 3.8's themes/ristretto/neovim.lua, so nothing
downstream changes except that the plugin resolves again.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011FcsS1gPeUiLSqqi4iKgzm
Both upstreams set fat LTO in their release profile (strata also
codegen-units = 1), which compiles the final crate on one thread. That
is a reasonable trade for the binary users run, and build() keeps it.
check() then compiled the same crate a second time under the same
profile for the test harness, and threw it away. On the aarch64 builds,
which run under QEMU, those two serial compiles were 106 of strata's
118 minutes.
check() now builds the harness with thin LTO and 16 codegen units in
its own target directory. The shipped binary is unchanged. Measured on
the x86_64 builder for strata's test binary: 708 s serial, 223 s with
this profile. Local run: shipped strata still 7m30s from target/, tests
3m43s from target-check/, 1998 passed.
ttfx has the same upstream profile but no check(), so nothing to do.
flea 0.3.0 never published: its shelfundo suite (new in 0.3.0) failed check() on the 2026-09-18 publish build, and 0.3.1 fails the same way on the sync PR. undo_refuses_to_walk_a_stranger_back deletes a file, creates another under the same name, and expects undo to tell them apart by (dev, ino, kind). ext4 hands the freed inode number straight back to the next create, so on the droplet's /tmp the stranger is identical and undo walks it back into a directory that does not exist. tmpfs allocates inode numbers from a counter and never reuses one. The suite joins the filesystem tests that already run with TMPDIR on /dev/shm.
On aarch64 three more tests fail: two in backend::child and one in menu_registry expect spawning a missing program to be reported as not started. Under QEMU user-mode emulation glibc's posix_spawn cannot observe the child's failed execve; the spawn succeeds with exit 127. Skipped on aarch64 only.
0.19.0 adds two restart_waiter tests that run `sh -c 'while kill -0 "$1"; do sleep; done'` with the pid u32::MAX. Arch's sh is bash 5.3, whose kill builtin in POSIX mode prints "not a pid or valid job spec" for that number but exits 0, so the loop never ends; every droplet build of 0.19.0 sat there until the 180-minute job timeout. Upstream CI runs on Ubuntu, where sh is dash and rejects the number.
It also adds ownership_probe_errors_disable_in_place_updates, which points the pacman path at a directory and expects Command::output() to fail. aarch64 builds run under QEMU user-mode emulation, where glibc's posix_spawn cannot observe the child's failed execve; the spawn succeeds with exit 127 and the assertion fails. Skipped on aarch64 only; it passes natively.
Both skips carry comments; the sync bot rewrites only version fields, so they survive future syncs.
Every push to a PR rebuilt every package the PR touches, on every
architecture, even when only one of them changed. The daily sync PR
carries around thirty package/arch pairs; fixing one package meant
rebuilding all of them, and an aarch64 build under QEMU takes up to an
hour. Nine runs of that PR cost about 36 droplet-hours in two days.
The planner now asks the artifact store for <pkg>-<arch>-<tree hash>
before adding an entry to the matrix and drops entries that already
have one. That is the same lookup publish.yml makes on merge, so a
reused entry publishes exactly the file it would have anyway. Dry run
against the current sync PR: 27 of 31 entries reused, 4 built.
Pack and Upload no longer run with always(): only a successful build
uploads, so an artifact's existence means that tree built.
workflow_dispatch always builds; it is an explicit request.