Commit Graph
1421 Commits
Author SHA1 Message Date
Ryan Hughes 537c377fa5 Build PRs on ephemeral droplets; publish merged packages from CI
Every pull request now builds the package directories it touches on
ephemeral DigitalOcean droplets, and every merge to master publishes the
resulting artifacts into the channels each package belongs to. The
repository host's timers become the fallback rather than the pipeline.

Build (.github/workflows/build-pr.yml)
  One job per package per architecture, always against edge. The artifact
  is labelled with the package directory's git tree hash. Tooling (bin/,
  helpers/, build/) is checked out from the base branch; the PR supplies
  only pkgbuilds/, so a PR can change what is built, never how. Builds
  run only for trusted authors: collaborators, .github/VOUCHED.td, or a
  PR carrying the build-approved label. A single required check, result,
  aggregates the matrix.

Publish (.github/workflows/publish.yml, bin/publish-artifact)
  One job per merge. It collects the PR artifacts for the merged tree,
  builds anything that has none, then walks each channel/architecture
  slot once: pull that database, repo-add every package that belongs in
  it, upload packages, signatures, then the database. A published
  filename is immutable; identical bytes under an existing name only
  gain a database entry, different bytes are refused. Fast-ring packages
  reach edge, rc and stable in the same run from the same file.

Matrix (bin/build-matrix)
  Package x architecture, with the channels the artifact ships to,
  decided by package_builds_for_mirror so CI and the host agree.
  arch=any packages build once and land in every architecture database.

Builder (build/build.sh, bin/build, build/Dockerfile)
  With no local published tree, plan against and resolve from the public
  channel over HTTPS. PACKAGER is set to Omarchy. rclone is in the image.

Runners (ci/)
  A controller droplet polls GitHub with curl and creates one g5 droplet
  per queued job from cloud-init, deleting them when off or over-age.
  Builders carry QEMU with credential support for aarch64. Operator SSH
  keys come from GitHub. tests/controller.sh and tests/publish-artifact.sh
  cover the decisions against fixtures and real makepkg output.

Tests run on pull requests only; branch protection requires result,
self-tests and build-isolation with up-to-date branches.
2026-09-18 11:25:32 -04:00
Basti b422d37fa2 Drop privileges when seeding Dell haptic config (#497)
The root-run package hook changed ownership of paths below a
user-controlled home directory. A config symlink could redirect chown to
an arbitrary root-owned file during installation or upgrade.

Run the config writer as the target desktop user and remove the privileged
ownership changes. This also prevents the missing-config path from writing
through a user-controlled pathname as root. Add regression coverage and
bump the package release.

Reported-by: piratemoo (Esther) <22439214+piratemoo@users.noreply.github.com>
Link: https://github.com/piratemoo/Arbitrary-File-Ownership-Change-via-Symlink-LPE
2026-09-18 15:24:41 +02:00
Spencer Bull 5cccebaa17 Merge pull request #507 from omacom/cua-aquamarine-0151
Refresh Cua plugin profile for Aquamarine 0.15.1
2026-09-18 01:54:11 -05:00
Spencer BullandCodex GPT-6 Astra xhigh f7577b59a6 Refresh Cua plugin profile for Aquamarine 0.15.1
Derive an exact Aquamarine 0.15.1-1 profile from the verified upstream kit so edge installations resolve without weakening native compatibility checks.

Co-Authored-By: Codex GPT-6 Astra xhigh <noreply@openai.com>
2026-09-18 01:34:01 -05:00
Spencer Bull 686c599f53 Merge pull request #483 from omacom/add-elsewhen
Add elsewhen, the Omarchy shell world clock plugin
2026-09-17 20:59:21 -05:00
Krzysztof Wilczyński 03ef2e3ef7 Merge pull request #501 from kwilczynski/feature/update-kernel-releases
Update Linux kernel release to v7.2.5-6 for base and BORE kernels
2026-09-18 04:45:34 +09:00
Krzysztof Wilczyński 18433c2499 Update Linux kernel release to v7.2.5-6 for base and BORE kernels
Signed-off-by: Krzysztof Wilczyński <kwilczynski@omarchy.org>
2026-09-18 04:18:47 +09:00
Krzysztof Wilczyński ab5a4f9c5e Merge pull request #500 from kwilczynski/feature/disable-register-zeroing-on-exit
Disable register zeroing on function exit for base and BORE kernels
2026-09-18 03:44:11 +09:00
Krzysztof Wilczyński e2cea36daf Disable register zeroing on function exit for base and BORE kernels
Unset CONFIG_ZERO_CALL_USED_REGS to disable the kernel hardening
feature, allowing for older NVIDIA drivers to build successfully
against the new kernel.

Signed-off-by: Krzysztof Wilczyński <kwilczynski@omarchy.org>
2026-09-18 03:32:34 +09:00
Krzysztof Wilczyński 326cd6c7a0 Merge pull request #499 from kwilczynski/fix/add-missing-signature-files
Add missing patch signature files to the base and BORE kernels
2026-09-18 03:18:44 +09:00
Krzysztof Wilczyński 3e0cba033a Add missing patch signature files to the base and BORE kernels
Signed-off-by: Krzysztof Wilczyński <kwilczynski@omarchy.org>
2026-09-18 03:15:43 +09:00
Ryan Hughes 1f025695d5 Build t3code-bin for aarch64 2026-09-17 13:35:33 -04:00
Spencer Bull 164e4a4f05 Merge pull request #496 from omacom/xps13-dx13260-firmware
Add linux-firmware-cirrus stable-snapshot shim for the Dell XPS 13 DX13260
2026-09-17 11:38:01 -05:00
Spencer BullandClaude Fable 5.1 afd75bc571 Add linux-firmware-cirrus stable-snapshot shim for the Dell XPS 13 DX13260
The Panther Lake XPS 13 (audio subsystem 1028:0e54) drives all of its
speakers through two CS35L56 amplifiers behind the CS42L43 codec. Their
DSP firmware aliases (cs35l56-b2-dsp1-misc-10280e54-spkid{1,2,3}) were
added to linux-firmware on 2026-08-18 and ship in Arch's
linux-firmware-cirrus 20260910-2, but the stable channel's Arch snapshot
is still on 20260810-2. Without them the amps run ROM firmware and the
machine is completely silent; upstream 7.2 already selects the sidecar
amplifier path for this SSID, so no kernel change is involved.

Ship the 20260910-2 payload to stable as a self-retiring shim:

- fast ring, no upstream watch (sync: false): the version is deliberately
  20260810-3, above the snapshot's 20260810-2 and below Arch's real
  20260910-2, so the genuine package supersedes it in the same
  transaction that upgrades linux-firmware-other once the snapshot
  advances. Bumping pkgver would defeat that.
- the signed Arch package is verified against the Arch packager key in
  keys/pgp/ and reinstalled as-is, minus the cs42l45 SDCA tree that Arch
  moved out of linux-firmware-other in 20260910: on the stable snapshot
  those 190 files are still owned by -other 20260810-2 and would
  conflict. The nine 10280e54 links and the 39 new SDCA files are kept.

Verified on a DX13260: cold boot loads 10280e54-spkid1 v4.5.9 on both
amps with "Calibration applied", and a 440 Hz tone measured through the
internal microphones peaks 238x over the noise floor on the stock UCM
bridge route. Delete this recipe once stable's snapshot carries
linux-firmware >= 20260910.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-17 10:58:46 -05:00
David Heinemeier Hansson 259aa68129 Add Monologue webcam recorder package (#495)
* Add Monologue webcam recorder package

* Update Monologue to latest published source
2026-09-17 11:36:14 -04:00
David Heinemeier HanssonandClaude Fable 5.1 750eb611f5 Update herdr to 0.9.1 with Zig 0.16.0 for the vendored libghostty-vt (#493)
Upstream 0.9.1 bumps vendored libghostty-vt's minimum_zig_version to
0.16.0, so the pinned Zig tarballs move from 0.15.2 to 0.16.0 with
checksums taken from ziglang.org's download index.

Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-17 15:54:55 +02:00
Ryan Hughes 5434d7c6c6 Merge pull request #492 from omacom/auto/sync-upstream
chore: sync upstream releases
2026-09-17 06:37:50 -07:00
Ryan Hughes 1beee4695b Package Flea 0.3.0 phone backends and shelf 2026-09-17 09:34:56 -04:00
dhh 1bce595733 chore: sync upstream releases 2026-09-17 11:54:13 +00:00
github-actions[bot]anddhh afcd481422 chore: sync upstream releases (#481)
Co-authored-by: dhh <2741+dhh@users.noreply.github.com>
2026-09-17 13:20:13 +02:00
OmarchybotandClaude Opus 5 ce33f28414 Match flea's O_NOFOLLOW fix by behaviour, not by spelling (#488)
Upstream sync has failed on every run since flea v0.3.0 was published, with
"Release v0.3.0 does not contain every required upstream security fix". Eight
of the nine required fixes are present. The ninth is too: the check is wrong.

The check pinned the literal call `regfile::open_if_regular(src, O_NOFOLLOW)`.
v0.3.0 introduced directory-relative opens and the first argument became
`src.at`. O_NOFOLLOW is still passed to the same function, on the same line,
under the same comment, and the release hardened symlink handling further --
it added copy_symlink_at, opens directories with O_DIRECTORY | O_NOFOLLOW, and
reaches every child through this process's own descriptor. The guard refused a
release that is strictly safer than the one it accepted.

The property worth asserting is that the copy opens its source with
O_NOFOLLOW, so a symlink swapped in cannot redirect the read. Pinning the
exact expression asserted the spelling instead, which is why a rename read as
a removed fix. The check now matches the call and the flag together.

Verified against the real archives rather than by inspection:

  v0.3.0 (src.at, O_NOFOLLOW)      accepted
  v0.2.1 (src, O_NOFOLLOW)         accepted, so the change is backwards
                                   compatible with what is packaged today
  first argument renamed           accepted
  extra flag or argument added     accepted
  O_NOFOLLOW dropped               refused
  call replaced with File::open    refused
  flag left only in a comment      refused

End to end with the real feed: the hook on master exits 1 with the refusal,
and with this change exits 0 and reports 0.3.0 with its verified checksum.
The other eight literals are untouched.

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-17 12:40:45 +02:00
Krzysztof Wilczyński 72b7998935 Merge pull request #485 from kwilczynski/feature/update-kernel-releases
Update Linux kernel release to v7.2.5-5 for base and BORE kernels
2026-09-17 18:41:40 +09:00
Krzysztof Wilczyński 99b8005e73 Update Linux kernel release to v7.2.5-5 for base and BORE kernels
Signed-off-by: Krzysztof Wilczyński <kwilczynski@omarchy.org>
2026-09-17 18:39:05 +09:00
Krzysztof Wilczyński a38c04c84a Merge pull request #487 from kwilczynski/fix/amd-zen5-tlb-sizes-display
Add small AMD Zen 5 TLB sizes display fix to base and BORE kernels
2026-09-17 18:38:28 +09:00
Krzysztof Wilczyński d06bf4660a Add small AMD Zen 5 TLB sizes display fix to base and BORE kernels
Signed-off-by: Krzysztof Wilczyński <kwilczynski@omarchy.org>
2026-09-17 18:32:22 +09:00
Krzysztof Wilczyński 8b30e302b3 Merge pull request #486 from kwilczynski/feature/enable-o3-build-optimization
Use -O3 build optimization flag for base and BORE kernels
2026-09-17 18:29:31 +09:00
Krzysztof Wilczyński 1b8e0f3845 Use -O3 build optimization flag for base and BORE kernels
Signed-off-by: Krzysztof Wilczyński <kwilczynski@omarchy.org>
2026-09-17 18:25:54 +09:00
Spencer Bull 52cba6cd95 Merge pull request #447 from jacob-vincent-mink/feature/omawake-omaspeak-rc
Add Omawake and Omaspeak to edge
2026-09-17 00:05:59 -05:00
Spencer BullandClaude Fable 5.1 c2f2345f0d Put Omawake and Omaspeak on the fast release ring
A channels list of edge alone is the outer bound on where a package may build, so both packages were refused for rc and stable and could only ever reach edge users. The fast ring builds them natively for all three channels, each against its own base mirror, which is how the other prebuilt -bin applications here ship. The channels key has to go rather than sit beside the ring: package_builds_for_mirror checks it first, so an edge-only list would still block the rc and stable builds the ring asks for.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-16 23:47:49 -05:00
Krzysztof Wilczyński 1f65553df3 Merge pull request #484 from kwilczynski/fix/drm-ttm-swapout-bulk-move
Add fix for swapped-out TTM resources never leaving their bulk_move range
2026-09-17 09:01:20 +09:00
Krzysztof Wilczyński f5c9441888 Add fix for swapped-out TTM resources never leaving their bulk_move range
Signed-off-by: Krzysztof Wilczyński <kwilczynski@omarchy.org>
2026-09-17 08:54:42 +09:00
Spencer Bull 56eced522e Add elsewhen, the Omarchy shell world clock plugin 2026-09-16 13:17:37 -05:00
b836c23037 Declare the licenses of the bundled audio.cpp provider
Each package ships libaudiocpp, which upstream's own third-party notices describe as Apache-2.0 with BSD-3-Clause PocketFFT-derived code retained in it, and installs those texts under /usr/share/licenses. A license array of MIT alone describes only the project's own source, so pacman -Qi misreports what the package contains.

Co-Authored-By: GPT-6 Astra XHigh <noreply@openai.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-16 11:10:50 -05:00
Spencer BullandClaude Fable 5.1 6ea162d2a4 Turn off debug packaging alongside !strip
The builder's makepkg.conf enables debug and emptydirs. With strip off, makepkg still takes the debug branch of tidy_strip, creates usr/src/debug/<pkgbase> inside the package to hold debug sources, finds none in a prebuilt tree, and emptydirs then ships the empty directory to every user. Seven of the ten -bin packages here that disable strip already disable debug with it.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-16 11:10:50 -05:00
Spencer BullandClaude Fable 5.1 10a451abc7 Drop the .SRCINFO and .gitignore files the repository ignores
The top-level .gitignore excludes pkgbuilds/*/.SRCINFO and pkgbuilds/*/.gitignore, and none of the packages under pkgbuilds/ tracks either. These four were added under the retired pkgbuilds/edge/ path, which that rule does not cover, and the move to pkgbuilds/ carried them along as already-tracked files. The per-package .gitignore negates the repository rule for its own directory and its leading * hides every future file there, so a patch or an .omarchy/upstream.sh dropped beside the PKGBUILD would never show up in git status. The build planner reads PKGBUILD and .omarchy/package.json; the only other reader, bin/package-worktree, takes .SRCINFO as a fallback while importing from the AUR and then removes both files as AUR-only.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-16 11:10:50 -05:00
Ryan Hughes b8cdc38609 Merge pull request #464 from omacom/auto/sync-upstream
chore: sync upstream releases
2026-09-16 08:04:36 -07:00
dhh 97871759bb chore: sync upstream releases 2026-09-16 11:50:57 +00:00
Krzysztof Wilczyński 42f3afd142 Merge pull request #475 from kwilczynski/feature/update-kernel-releases
Update Linux kernel release to v7.2.5-4 for base and BORE kernels
2026-09-16 14:19:01 +09:00
Krzysztof Wilczyński e95c6f37de Update Linux kernel release to v7.2.5-4 for base and BORE kernels
Signed-off-by: Krzysztof Wilczyński <kwilczynski@omarchy.org>
2026-09-16 14:08:43 +09:00
Spencer Bull 1f5b7a0a30 Merge pull request #473 from spencerbull/cua-agent-keymap-remaps
Preserve user keyboard remaps in the Cua Hyprland plugin
2026-09-16 00:08:36 -05:00
Spencer Bull b2176d5cab Preserve Num Lock during compatible Cua foreground input 2026-09-15 23:55:59 -05:00
Krzysztof Wilczyński e68ded7f19 Merge pull request #474 from kwilczynski/fix/add-android-binder-support-back
Add Android Binder support back to the base and BORE kernels
2026-09-16 13:46:01 +09:00
Krzysztof Wilczyński b9a3863787 Add Android Binder support back to the base and BORE kernels
Signed-off-by: Krzysztof Wilczyński <kwilczynski@omarchy.org>
2026-09-16 13:39:52 +09:00
Spencer BullandCodex XHigh f868f3c767 Preserve user keymaps in the Cua Hyprland plugin
Give background agent seats independent keymaps and check foreground keyboard compatibility per operation. Package the downstream patch with separate source integrity and build provenance, retaining the upstream ABI verifier.

Co-Authored-By: Codex XHigh <noreply@openai.com>
2026-09-15 23:05:22 -05:00
Ryan Hughes 6c9bdbd0a2 Merge pull request #468 from omacom/chore/ghostty-fast-ring
Put Ghostty on the fast release ring
2026-09-15 19:24:00 -07:00
Ryan Hughes 3c671736ec Put Ghostty on the fast release ring 2026-09-15 22:21:52 -04:00
Jacob Mink 46306a12eb Package Omawake 0.0.2 and Omaspeak 0.0.1 2026-09-15 16:09:13 -05:00
Ryan Hughes 5fe2367366 Release omarchy 4.0.4 2026-09-15 17:07:20 -04:00
Ryan Hughes ea69034287 Merge pull request #462 from omacom/feat/ghostty-x86_64
Build Ghostty for x86_64 with pinned Zig toolchain
2026-09-15 13:19:44 -07:00
Ryan Hughes edc411ae4d Build Ghostty for x86_64 with pinned Zig toolchain 2026-09-15 16:13:12 -04:00