Repository navigation
Updates through Sparkle 2: progress window, reliable relaunch - #54
Merged
Merged
Conversation
Updates now run through Sparkle's standard UI (checking, release notes,
download progress, installing) and the app relaunches as the new version,
which the old swap-script path did silently and sometimes not at all.
Trust stays on our existing Ed25519 release key: SUPublicEDKey is the same
public key, the release job adds a Sparkle-format signature over the DMG
(sign-update now emits both), and SUVerifyUpdateBeforeExtraction checks it
before the image is mounted. With the app ad-hoc signed, Sparkle accepts
EdDSA alone ("Either DSA must be valid, or Apple Code Signing must be
valid", SUUpdateValidator.m); the framework and its XPC services are
re-signed innermost-first in package-app.sh and the executable gets an
@executable_path/../Frameworks rpath.
Both feeds are published: appcast.xml for Sparkle and the legacy
appcast.json, so 0.18.3–0.18.5 copies still receive this release through
their old updater. CFBundleVersion becomes a monotonic build number
(major*10000+minor*100+patch) for Sparkle's comparison.
Verified end to end on this Mac over local HTTP: 99.0.0 → 99.0.1 showed the
Software Update window, swapped the bundle and relaunched (new pid),
settings intact. 257 tests pass.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Replaces the hand-rolled updater with Sparkle 2 (
SPUStandardUpdaterController), like Mac Mouse Fix. Same Ed25519 release key (SUPublicEDKey), update verified before the image is mounted; ad-hoc host accepted because Sparkle takes EdDSA or a code-signing match. Framework + XPC services embedded and re-signed inpackage-app.sh; CFBundleVersion becomes a monotonic build number. CI publishes bothappcast.xml(Sparkle) andappcast.json(legacy, so 0.18.3–0.18.5 still update to this one).Verified end to end on a real Mac over local HTTP: 99.0.0 → 99.0.1 showed Software Update, swapped the bundle, relaunched (new pid), settings intact. 257 tests pass. Ships as 0.18.6.