Commit Graph
38 Commits
Author SHA1 Message Date
40ea1555f2 Ship the complete passwordless-sudo lifecycle in settings-dev (#645)
* Move the dev sudo grant lifecycle into omarchy-settings-dev

The hardened omarchy-sudo-passwordless publishes a grant only when its revocation hook is installed and no package transaction has left /run/omarchy-sudo-passwordless-package-removing behind. The hook sets that marker before every settings upgrade, and the settings scriptlets are what clear it, so shipping the hook alone let the first grant work and then refused every grant after the next update until a reboot.

omarchy-settings-dev now ships the command, omarchy-security-functions, the boot cleanup rule and the hook together, with the scriptlets from #257 that revoke before the package changes and clear the marker once no grant remains. omarchy-dev stops shipping the two helpers and requires the settings release that does: without it omarchy-update has no library to source.

Co-authored-by: Afonso Oliveira <afonso.oliveira707@gmail.com>

* Check that settings-dev registers the scriptlet the lifecycle test exercises

The lifecycle test reads the .install file directly, so it kept passing with the recipe's install= line gone, which is the one change that would strand the hook's marker again.

Co-Authored-By: Codex XHigh <noreply@openai.com>

* Keep omarchy-dev's settings dependency unversioned

The dev pair builds each package on its own against the published edge repository, in the PR build and in publish alike, so omarchy-dev cannot require a settings-dev release that only this change produces: the floor failed both omarchy-dev builds on this PR, and an exact pkgver match would fail the same way on every upstream pin bump. Nothing needs it. The upstream watch moves both pins together, publish stops the run before anything is published when one package fails, and a new settings-dev over an old runtime is refused on the files they would both own.

* Refuse settings-dev releases that predate the grant helper move

With the dependency unversioned, a new omarchy-dev could still install over a settings-dev that is held back or not yet published, removing omarchy-security-functions from both, and omarchy-update cannot start without it. A versioned conflict refuses that pairing at install time without constraining the per-package builds, which resolve only depends.

Co-Authored-By: Codex XHigh <noreply@openai.com>

* Require the security library as a capability instead of a version floor

The conflict named the last settings-dev release without the helpers, a version that moves with every upstream pin bump and settings-only pkgrel while this change waits to merge, and a rebase that kept a stale floor still passed the tests while the published release slipped past it. omarchy-settings-dev now provides omarchy-security-functions and omarchy-dev's package() requires it. makepkg checks only the top-level depends before building, so the per-package builds still resolve against the published repository, while pacman refuses a runtime without a settings release that ships the library, and pulls that release in when only the runtime is asked for.

Co-Authored-By: Codex XHigh <noreply@openai.com>

---------

Co-authored-by: Spencer Bull <spencer@omarchy.org>
Co-authored-by: Afonso Oliveira <afonso.oliveira707@gmail.com>
Co-authored-by: Codex XHigh <noreply@openai.com>
2026-10-11 09:56:47 -05:00
ryanrhughes be8f68c212 Track upstream branches: omarchy-dev 4.0.0.r6897.g4df5459-1, omarchy-settings-dev 4.0.0.r6897.g4df5459-1 2026-10-11 09:12:08 +00:00
ryanrhughes 9fe85272cb Track upstream branches: omarchy-dev 4.0.0.r6871.g04b374a-1, omarchy-settings-dev 4.0.0.r6871.g04b374a-1 2026-10-11 02:05:13 +00:00
ryanrhughes 1b75e24451 Track upstream branches: omarchy-dev 4.0.0.r6868.gf2a39c4-1, omarchy-settings-dev 4.0.0.r6868.gf2a39c4-1 2026-10-10 22:50:51 +00:00
Birk Skyum 4997d4beb4 Merge remote-tracking branch 'origin/master' into drop-iwd-from-arm-runtime
# Conflicts:
#	pkgbuilds/omarchy-dev/PKGBUILD
2026-10-10 23:16:39 +02:00
ryanrhughes 51c492e708 Track upstream branches: omarchy-dev 4.0.0.r6866.g77bfaca-1, omarchy-settings-dev 4.0.0.r6866.g77bfaca-1 2026-10-10 19:28:48 +00:00
Birk Skyum 2b04aa5bf6 Leave iwd to omarchy-mac on aarch64
omarchy and omarchy-dev pulled iwd in on every aarch64 machine. Only
Apple Silicon uses it, and omarchy-mac depends on it already. On other
ARM laptops its 80-iwd.link renames the Wi-Fi interface to wlan0 at the
next boot, so a saved NetworkManager connection tied to the old name
stops connecting.
2026-10-10 17:47:25 +02:00
emirb c0ff0692f0 Track upstream branches: omarchy-dev 4.0.0.r6863.ga15636b-1, omarchy-settings-dev 4.0.0.r6863.ga15636b-1 2026-10-10 06:26:14 +00:00
ryanrhughes f54d045df3 Track upstream branches: omarchy-dev 4.0.0.r6860.g7cc6a55-1, omarchy-settings-dev 4.0.0.r6860.g7cc6a55-1 2026-10-10 01:53:04 +00:00
emirb cfd1b9a554 Track upstream branches: omarchy-dev 4.0.0.r6857.ge1b0e5e-1, omarchy-settings-dev 4.0.0.r6857.ge1b0e5e-1 2026-10-10 00:54:20 +00:00
emirb 7f010b273e Track upstream branches: omarchy-dev 4.0.0.r6856.g6126321-1, omarchy-settings-dev 4.0.0.r6856.g6126321-1 2026-10-09 22:51:26 +00:00
ryanrhughes 76c1de2185 Track upstream branches: claude-code 2.1.296, claude-desktop 2.31226.1, github-copilot-cli 1.0.95, mise-bin 2026.10.5, omarchy-dev 4.0.0.r6848.g2519fd9, omarchy-settings-dev 4.0.0.r6848.g2519fd9, perplexity 26.10.1+build108257, zen-browser-bin 1.23.2b 2026-10-09 22:05:49 +00:00
David Heinemeier Hansson c104b20285 Install passwordless revoke hook in omarchy-dev (#896) 2026-10-09 14:42:00 +00:00
ryanrhughes 83778ddcb0 Track upstream branches: omarchy-dev 4.0.0.r6818.gc352b62, omarchy-settings-dev 4.0.0.r6818.gc352b62 2026-10-09 06:37:15 +00:00
ryanrhughes 2ac2319b55 Track upstream branches: omarchy-dev 4.0.0.r6815.g50d687a, omarchy-settings-dev 4.0.0.r6815.g50d687a 2026-10-08 20:02:51 +00:00
David Heinemeier Hansson a1ad25bbae Bump releases for packages with mismatched cached archives (#858) 2026-10-08 15:01:06 +02:00
ryanrhughes 963cbf1230 Track upstream branches: omarchy-dev 4.0.0.r6807.g902fd8a, omarchy-settings-dev 4.0.0.r6807.g902fd8a 2026-10-08 06:31:32 +00:00
ryanrhughes 56e0434e64 Track upstream branches: omarchy-dev 4.0.0.r6720.g8e02fc8, omarchy-settings-dev 4.0.0.r6720.g8e02fc8 2026-10-03 21:39:34 +00:00
ryanrhughes 1436a0a210 Track upstream branches: omarchy-dev 4.0.0.r6713.ga85e29a, omarchy-settings-dev 4.0.0.r6713.ga85e29a 2026-10-03 05:37:06 +00:00
ryanrhughes 8fe3683579 Track upstream branches: omarchy-dev 4.0.0.r6694.g821ae58, omarchy-settings-dev 4.0.0.r6694.g821ae58 2026-10-02 06:01:16 +00:00
ryanrhughes 577ed75dd0 Track upstream branches: omarchy-dev 4.0.0.r6693.gf45461a, omarchy-settings-dev 4.0.0.r6693.gf45461a 2026-10-02 00:03:00 +00:00
ryanrhughes 5c4abb5146 Track upstream branches: omarchy-dev 4.0.0.r6692.gc05d901, omarchy-settings-dev 4.0.0.r6692.gc05d901 2026-10-01 13:46:24 +00:00
ryanrhughes bfad81267a Track upstream branches: omarchy-dev 4.0.0.r6691.g8b4eae6, omarchy-settings-dev 4.0.0.r6691.g8b4eae6 2026-09-29 19:34:56 +00:00
ryanrhughes c830be2720 Track upstream branches: omarchy-dev 4.0.0.r6689.gb421b1b, omarchy-settings-dev 4.0.0.r6689.gb421b1b 2026-09-29 13:14:04 +00:00
ryanrhughes af19ab222b Track upstream branches: omarchy-dev 4.0.0.r6688.ge332dc9, omarchy-settings-dev 4.0.0.r6688.ge332dc9 2026-09-28 23:27:06 +00:00
ryanrhughes f0ebc8a80b Track upstream branches: omarchy-dev 4.0.0.r6687.gb18ab49, omarchy-settings-dev 4.0.0.r6687.gb18ab49 2026-09-28 18:14:32 +00:00
ryanrhughes 62f3df2378 Track upstream branches: omarchy-dev 4.0.0.r6663.g3faafba, omarchy-settings-dev 4.0.0.r6663.g3faafba 2026-09-27 21:31:46 +00:00
Ryan Hughes 3de5f0af4b Pin the tracked packages to today's upstream tips
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)
2026-09-27 12:41:43 -04:00
Ryan Hughes d87686ca4f Track upstream branches as pinned releases on an unattended lane
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.
2026-09-27 12:39:53 -04:00
Marcelo Alcantara 4ed5f14629 Build the omarchy package pair for aarch64
The Omarchy payload is architecture-independent, but the package is not.
On x86_64 omarchy pulls the Limine + mkinitcpio hook + Snapper boot stack;
on Apple Silicon the system boots through m1n1 + GRUB from the Asahi
packages on Arch Linux ARM's kernel, so that stack does not apply, and
Wi-Fi on the Broadcom parts needs the iwd backend. The shipped /etc tree
differs too: mkinitcpio reads every file under /etc/mkinitcpio.conf.d/,
so shipping omarchy_hooks.conf on aarch64 injects the Limine hooks into
the Asahi kernel's initramfs, and the zram/zswap/oomd drop-ins and the
zram-tuned vm.* sysctls belong to the x86_64 memory stack.

makepkg only honours depends_<arch> and optdepends_<arch> on
arch-specific packages, so arch=('any') becomes ('x86_64' 'aarch64').
backup=() has no arch-suffixed form, so the x86_64-only entries are
appended under CARCH and each of those paths is removed from the aarch64
package in package(). The x86_64 package keeps exactly the contents it
had; only its filename suffix changes.

The install scriptlet applies the hardened cups-files.conf on every
platform, then on Apple Silicon keeps the Arch Linux ARM system identity
(/etc/os-release stays the distribution's symlink) instead of the
etc-overrides. The -dev pair carries the same change so the pairs stay in
lockstep.
2026-09-02 21:59:45 +10:00
Ryan Hughes 26bde8fae3 Add channels metadata: membership and build-channel rules for edge/rc/stable
A package's .omarchy/package.json may now pin where it lives with
"channels": [...]. With the key present the package builds in each listed
channel except stable (stable is only fed by promotion); without it, today's
defaults hold (build for edge; fast-ring also builds stable directly).

package_moves_to_channel() is the advance/promote eligibility rule: a member
of the destination channel that is not built there natively.

The release pair (omarchy, omarchy-settings) is edge+rc+stable — edge stays
during the client-migration overlap window and drops later. The dev pair is
pinned to edge only.
2026-08-27 01:10:33 -04:00
Ryan Hughes 1b8f0b47ce Elim system migrations 2026-06-12 13:25:36 -04:00
Ryan Hughes 097ffbf9bb Install Hyprland reload guard hooks 2026-06-09 14:20:41 -04:00
David Heinemeier Hansson 3fc5894099 Start building from the new quattro branch 2026-06-08 16:34:08 +02:00
Signal User 7fb7827930 We nixed those 2026-06-08 15:50:09 +02:00
Ryan Hughes 7f82cdf857 Remove omarchy-dev optional dependencies 2026-06-07 16:36:03 -04:00
Ryan Hughes 9b7e17dfb3 Add update checker deps to omarchy-dev 2026-06-07 15:39:15 -04:00
Ryan Hughes c1aed0d8f1 Squash merge omarchy-4 into master 2026-06-02 22:25:07 -04:00