Skip to content

Keep an administrator's migration target as it is in the Mac bootstrap - #607

Merged
maralcbr merged 2 commits into
quattro-upstreamfrom
mac/53-keep-repo-target
Sep 27, 2026
Merged

maralcbr merged 2 commits into
quattro-upstreamfrom
mac/53-keep-repo-target

Conversation

@maralcbr

Copy link
Copy Markdown
Collaborator

Ticket 53 follow-up to #602. omarchy-mac-migrate-bootstrap let an existing /etc/omarchy-mac/migration-target override --channel, then either rewrote the file without server= (when its channel differed from the packaged target's) or passed the packaged target instead (when equal). A Mac with channel=rc and a custom mirror migrated to public rc, and an explicit --channel edge silently stayed rc.

Now:

  • An existing repository target always wins for a new migration and reaches the engine unchanged (server=, packages=, keyring= and all). A target without a stable/rc/edge channel defers (75).
  • A --channel that disagrees with it is ignored with a warning naming both channels and the file. Deferring instead would strand the mx-mac prime migration, which passes --channel and gates the later conversion on its success.
  • Without a target: an explicit --channel is now kept even when it matches the package's own, and a package refetched from the channel the stable target names is checked again (activation, --payload, repository channel) before its target is used.
  • Unchanged: non-Apple early exit, the resume path, signature and checksum verification, the engine's official-dev "nothing to migrate".

The package still downloads from pkgs.omarchy.org's channel; a mirror in server= governs the engine's transaction only (fetching the payload from a mirror is left for a separate change).

Tests: test/shell.d/mac-migrate-bootstrap-test.sh gains cases for a custom server/packages target passed unchanged (packaged channel equal and different), channel kept, a conflicting --channel on run and prime, an unknown channel, an explicit --channel equal to the package's, and a refetched package that names another channel or does not activate; the existing no-target case still gets the packaged target. 15/15 pass on Arch; the new cases fail on the old script. Approach debated over two rounds; second review: no verified findings, two wording nits fixed.

Follow-up: mx-mac #276 vendors this script and needs the same change synced.

An existing /etc/omarchy-mac/migration-target now reaches the engine unchanged
(server=, packages= and all) instead of being replaced by the packaged target
or rewritten without server=. A --channel that disagrees with it is ignored
with a warning. An explicit --channel is kept even when it matches the
package's own, and a refetched package is checked again.
@maralcbr
maralcbr merged commit 051e7f7 into quattro-upstream Sep 27, 2026
5 checks passed
maralcbr added a commit to maralcbr/omarchy-mx-mac that referenced this pull request Sep 27, 2026
Same change as omacom#607: an existing
/etc/omarchy-mac/migration-target reaches the engine unchanged (server=,
packages= and all), a --channel that disagrees with it is ignored with a
warning, an explicit --channel is kept even when it matches the package's
own, and a refetched package is checked again.
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