Commit Graph
114 Commits
Author SHA1 Message Date
Ryan Hughes fc3226ff94 Build each package in an isolated container 2026-09-08 22:49:08 -04:00
Ryan Hughes de57b5dfc2 Publish only intended package artifacts 2026-09-05 00:07:11 -04:00
Ryan Hughes 0b67dbab8e Harden emulated ARM builds 2026-09-04 23:40:49 -04:00
Ryan Hughes 76687fcc82 Harden multi-architecture release pipeline 2026-09-04 23:40:49 -04:00
Marcelo Alcantara b677f50358 Pin PKGEXT to .pkg.tar.zst in the builder image
Arch Linux ARM's makepkg.conf defaults PKGEXT to .pkg.tar.xz. build/sign.sh
only signs *.pkg.tar.zst, and push-build, sync-rebuilds and the notifier
parse the same suffix, so an aarch64 package built under the stacked
pipeline came out as .xz and would have been skipped at signing. Seen on a
plain x86_64 runner building aarch64 under QEMU (fork run 33642125077).
Same fix as the PKGEXT line in #240.
2026-09-04 23:40:49 -04:00
Marcelo Alcantara 91843ab099 Make aarch64 a first-class architecture in the scheduled pipeline
One list, PUBLISHED_ARCHES in helpers/paths.sh (default x86_64,
overridable with OMARCHY_ARCHES), now drives everything the repository
host schedules. check-versions compares PKGBUILDs against each
architecture's channel databases and writes one queue per channel and
architecture; auto-release works through the queues one architecture at
a time, each with its own backoff, so a failing build on one never
blocks the other; advance-channel --arch all re-runs an advance for every
published architecture and omarchy-release uses it for start and ship,
building the pinned pair once per architecture in its rc trigger; the
train observes channels through the reference (first) architecture
instead of a hard-coded x86_64. Queue and backoff files written under
the old per-channel names are treated as x86_64 until consumed.

Two things made an aarch64 builder image impossible to create: the
keyring bootstrap fetched omarchy-keyring from the target architecture's
own channel tree, which does not exist before that architecture has
published anything, and the QEMU probe only knew the x86_64-host,
aarch64-target case. The keyring (arch=any) now always comes from the
x86_64 tree, and the probe compares host and target architectures and
runs a container for the target platform.

clean-repo grouped versions with a regex that only knew any, x86_64 and
i686, so aarch64 packages would never have been pruned.
2026-09-04 23:40:49 -04:00
Marcelo Alcantara 191e1e7db5 Add builder flags for CI and resumed builds
Three opt-in knobs for bin/build, each defaulting to today's behaviour:

OMARCHY_KEEP_BUILD_WORKSPACE=1 keeps build-output/$MIRROR/$ARCH instead
of wiping it, and build/build.sh now folds any packages already there
into omarchy-build.db even when no database exists yet, so packages
built by an earlier job (or a previous, interrupted run) resolve as
dependencies of what builds next.

OMARCHY_SKIP_BUILDER_IMAGE=1 uses the omarchy-pkg-builder image already
present instead of building it, so a workflow can build the image once
with an external BuildKit cache and fan out over package jobs that all
run the same bytes. A missing image is an error, not a silent rebuild.

OMARCHY_DEFER_RUNTIME_DEPS=true builds the omarchy/omarchy-settings pair
with --nodeps, installing only their makedepends and checkdepends
explicitly. The pair depends on each other and on packages a sharded
pipeline builds in other jobs, so they cannot resolve in isolation; the
assembled set is installed in one verified transaction downstream. The
request is refused for anything but exactly that pair, on the host
before Docker starts and again inside the container.

Also fix make_dir_writable: chown -R can succeed on part of the tree
and fail on files a previous container left behind as another uid, and
the old `|| chmod` fallback only ran when chown failed outright. Always
follow with chmod.
2026-09-02 23:15:30 +10:00
Ryan Hughes e50f868a10 Channel-correct Docker images: keyring from own channel; repo-add uses edge
The builder stage never declared ARG MIRROR, so the keyring [omarchy] repo
pointed at the channel-less legacy pkgs.omarchy.org/$arch path — it works
only because a stale copy of the old layout still answers there, and it would
miss a keyring rotation. Each image now pulls omarchy-keyring from its own
channel (edge/rc/stable), matching the base mirror it already selects.

update-repo and remove-package switch to the edge x86_64 image: repo-add and
repo-remove compile nothing, and using the channel image would deadlock
bootstrap-rc — the rc image can only build once the rc channel it pulls the
keyring from exists remotely.
2026-08-27 01:10:33 -04:00
Ryan Hughes e73b843bd2 Add rc as a first-class channel: validation, shared repo root, rc build mirror
- helpers/paths.sh: validate_mirror/require_valid_mirror for the edge|rc|stable
  set, and REPO_ROOT (OMARCHY_REPO_ROOT override) so a secondary checkout like
  the rc branch worktree publishes into the same channel tree as the primary
- validate --mirror everywhere it previously accepted any string (sync-repo,
  promote-build, update-repo, clean-repo, remove-package) and widen the
  edge|stable checks in build, deploy, push-build, auto-release
- build/Dockerfile: rc builds compile against rc-mirror.omarchy.org
2026-08-27 01:10:33 -04:00
David Heinemeier HanssonandClaude Opus 5 7732831889 Update the build container before installing makedepends
The builder image is layer-cached, so its glibc drifts behind the
mirror while makepkg -s installs makedepends from the freshly synced
database. omarchy-settings-dev died on that partial upgrade: the new
imagemagick needs GLIBC_2.44 and magick refused to run in package().

pacman -Syu runs before the Omarchy repos are appended, so only
core/extra take part -- in-flight build-output packages can't be
pulled into the container.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-27 10:03:52 -07:00
Ryan Hughes 515b566cb9 Add skip_build 2026-07-13 19:55:23 -04:00
Ryan Hughes 162e9c0ec9 Update to restore .1 if patched 2026-06-26 00:25:52 -04:00
Ryan Hughes c1aed0d8f1 Squash merge omarchy-4 into master 2026-06-02 22:25:07 -04:00
Ryan Hughes 2bca7a3f91 Make existing checks more efficient 2026-05-08 17:14:14 -04:00
Ryan Hughes 830e5aab6c Fix git comparison logic 2026-05-08 16:42:43 -04:00
Ryan Hughes 2ffe4f811c Refactor 2026-05-08 01:04:52 -04:00
Ryan Hughes c1be0f4ecc packages files not needed anymore 2026-05-08 01:04:52 -04:00
David Heinemeier Hansson 6d2a59c33c Add Amiga, C64, Amstrad libretro libraries for RetroArch 2026-05-06 09:10:26 +02:00
David Heinemeier Hansson c10bb6b116 Add omazed package 2026-05-05 21:15:29 +02:00
David Heinemeier Hansson 6b99f777df Add retroarch-joypad-autoconfig-git for preconfigured joypads 2026-05-04 17:30:21 +02:00
David Heinemeier Hansson ad9e338956 Ensure -git pkgs are not needlessly rebuild 2026-05-04 14:13:21 +02:00
David Heinemeier Hansson f8f718b70d Add retroarch db package 2026-05-04 10:50:44 +02:00
David Heinemeier Hansson d2361d8f71 Add heroic games launcher 2026-05-04 10:22:27 +02:00
David Heinemeier Hansson 6883050837 Add xbox controller package 2026-05-04 09:26:51 +02:00
David Heinemeier Hansson 709a051a34 Add the umu-launcher needed for Battle.net installer 2026-05-04 08:36:55 +02:00
David Heinemeier Hansson e4f88ddeb2 Add libretro-fbneo-git so we can get full retroarch install without AUR 2026-05-03 20:41:51 +02:00
Ryan Hughes 14849ec4f5 Remove gpu-screen-recorder
gpu-screen-recorder is now on the Extra repo
https://archlinux.org/packages/extra/x86_64/gpu-screen-recorder/
2026-05-02 12:46:40 -04:00
David Heinemeier Hansson ee077b2c0e Use the unified elephant-all provider 2026-04-30 11:09:23 +02:00
David Heinemeier Hansson 5f0e0731ec Import validpgpkeys instead from PKGBUILD 2026-04-23 08:44:17 +02:00
Pierre Olivier MartelandDavid Heinemeier Hansson 495994f1b4 Add nautilus-open-any-terminal (#80)
* feat: add nautilus-open-any-terminal

* Make this a normal edge package

* Move to correct package list

---------

Co-authored-by: David Heinemeier Hansson <david@hey.com>
2026-04-22 15:12:01 +02:00
Kevin McConnell 84b51452c6 Add once-bin to edge (#70)
This package provides the ONCE tool (https://github.com/basecamp/once).
ONCE is a tool for easy self-hosting of Docker-based web applications.
2026-04-01 16:03:38 +02:00
Spencer Bull ad14b24066 add v4l2-relayd to omarchy package mirror and as a dep to intel-ipu7-camera
Signed-off-by: Spencer Bull <Spencer.Bull@Dell.com>
2026-03-25 10:12:51 -05:00
David Heinemeier Hansson 258e3b581a Add basecamp-cli 2026-03-25 13:45:19 +01:00
David Heinemeier Hansson d9dfad1ab3 Add cliamp 2026-03-20 23:33:33 +01:00
David Heinemeier Hansson a314df9a19 Setup kernel gpg keys 2026-03-20 04:16:46 +01:00
David Heinemeier Hansson 724de34cb1 Add intel-lmp for Intel laptop power management 2026-03-20 04:11:19 +01:00
David Heinemeier Hansson 516d5329a4 Build custom kernel with panther lake patches 2026-03-18 19:19:24 +01:00
David Heinemeier Hansson 8e946630da Add drivers for Slimbook Executive keyboard backlighting 2026-03-11 21:50:07 +01:00
Ryan Hughes ad61f12c11 Remove stable pkgbuilds 2026-03-07 16:25:40 -05:00
David Heinemeier Hansson ee72356e63 Add makima-bin so we can remap the copilot key to the omarchy menu 2026-03-05 14:27:59 -04:00
Ryan Hughes 139d836e81 Swap lmstudio -> lmstudio-bin 2026-02-17 11:32:11 -05:00
Ryan Hughes fdcce9465c Better logs and resolution 2026-02-17 11:12:52 -05:00
Steve Godlewski 1a7afc81d3 feat: add qmk-hid package for Framework 16 RGB keyboard support 2026-02-08 08:55:34 -07:00
Ryan Hughes 976902ebab Remove 2026-02-04 23:03:10 -05:00
Ryan Hughes 6f6c4a800a Add yt-6801-dkms 2026-02-04 12:53:31 -05:00
Ryan Hughes 5f814765d8 Fix asusctl 2026-01-31 22:58:29 -05:00
Ryan Hughes 45a356eb70 Create shared / fast track for certain packages 2026-01-10 20:18:35 -05:00
Ryan Hughes a9b87528fd Add new packages 2026-01-07 12:00:48 -05:00
Ryan Hughes d87dd64e07 Add nvidia 580 packages 2025-12-27 21:25:57 -05:00
Ryan Hughes 056683017b Fix 2025-12-20 18:06:02 -05:00