Skip to content

Build images from the aarch64-apple runtime layout - #52

Merged
maralcbr merged 7 commits into
mainfrom
platform-names
Oct 10, 2026
Merged

maralcbr merged 7 commits into
mainfrom
platform-names

Conversation

@maralcbr

Copy link
Copy Markdown
Collaborator

Summary

omacom/omarchy#14431 merged into quattro (e1b0e5e9b) with the platform rename (x86, aarch64, aarch64-apple). The image builder could not build against it: it looked only for omarchy-apple-silicon.packages / omarchy-apple.packages, and it fell back to the plain aarch64 pacman template (no asahi-alarm) because it skipped default/pacman/aarch64-apple/.

  • build-mac-image, candidate_set.py and inspection.py take the Apple list as omarchy-aarch64-apple.packages, then 5397950a2's omarchy-apple-silicon.packages, then the oldest omarchy-apple.packages (never a link, as before).
  • The installed pacman.conf comes from the runtime's default/pacman/aarch64-apple/ first, then omarchy-mac's /usr/share/omarchy-mac/pacman, apple-silicon or aarch64 as before. The mirror list comes from beside the aarch64-apple template (Omarchy's HTTPS Arch Linux ARM mirror), else aarch64/, else mirrorlist-aarch64. Inspection checks the same choice. Older runtimes resolve exactly as before.
  • The image-target manifest still says platform=apple-silicon. e1b0e5e9b reads it as aarch64-apple; 5397950a2, which released images and packages still run, rejects aarch64-apple in omarchy-hw-platform and install/helpers/image-target.sh. A comment next to the write says so.
  • Test fixtures now come in two shapes, one for each runtime (e1b0e5e9b and 5397950a2). Both must verify as a candidate set and pass inspection, and neither may install the plain aarch64 template. The shell tests now also cover how the Apple list and the installed pacman config are chosen.
  • Unchanged on purpose: the platform= field in IMAGE and PROVENANCE, omarchy_target: apple-silicon-full-os, and the aarch64-apple-silicon-mac zip names. These are contracts with the installer and catalog, not runtime platform names.

Behaviour change for review: on a runtime that ships default/pacman/aarch64-apple, the runtime's template now wins over omarchy-mac's /usr/share/omarchy-mac/pacman. That matches what the runtime installs itself (install/helpers/pacman.sh). Current omarchy-mac no longer ships that directory.

Test plan

  • image-builder/test/all in an Arch Linux ARM container: passes at each commit
  • The new tests fail against main's builder sources (Apple list, template choice, e1b0e5e9b layout)
  • Dry run against real runtime trees, packing each tree as the candidate omarchy archive. e1b0e5e9b resolves to omarchy-aarch64-apple.packages, aarch64-apple/pacman-edge.conf (with asahi-alarm) and the HTTPS mirror list. 5397950a2 resolves to omarchy-apple-silicon.packages, apple-silicon/pacman-edge.conf and aarch64/mirrorlist-edge, the same as before.
  • test/all (portable) on macOS: passes
  • Lab image build against an e1b0e5e9b candidate set. This needs Follow #14431's platform rename to aarch64-apple omarchy-mac-pkgs#24 or Remove older Asahi-based installs and return leftover free space #26 first: omarchy-mac-boot's require_apple_silicon still compares omarchy-hw-platform with apple-silicon.

omacom/omarchy e1b0e5e9b names the list for the platform. The builder, the
candidate-set check and inspection read it first, then 5397950a2's
omarchy-apple-silicon.packages, then the oldest omarchy-apple.packages.
e1b0e5e9b moved the Apple Silicon templates to default/pacman/aarch64-apple,
with a mirror list of its own (the HTTPS Arch Linux ARM mirror). The builder
fell back to the plain aarch64 template, without asahi-alarm. It now takes
aarch64-apple and the mirror list beside it, then omarchy-mac's, apple-silicon
or aarch64 as before; inspection checks the same choice.
Fixtures gain e1b0e5e9b's layout (omarchy-aarch64-apple.packages,
aarch64-apple templates) and 5397950a2's (omarchy-apple-silicon.packages,
apple-silicon templates); each must verify and pass inspection, and neither
may install the plain aarch64 template.
e1b0e5e9b reads apple-silicon as aarch64-apple, but 5397950a2, in released
images and packages, refuses aarch64-apple.
As in e1b0e5e9b, only the platform template carries [asahi-alarm], so the
check that an image does not install the plain aarch64 one tests that.
@maralcbr
maralcbr merged commit 00528c1 into main Oct 10, 2026
3 checks passed
@maralcbr
maralcbr deleted the platform-names branch October 10, 2026 02:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant