Add hardware requirements element#2797
Merged
Merged
Conversation
st0012
added a commit
to st0012/cctop
that referenced
this pull request
May 12, 2026
* Update auto-update scripts to support Intel * Minor changes * Bump Sparkle to 2.9.1 for hardwareRequirements support Sparkle 2.8.1 (the previously pinned version) does not parse sparkle:hardwareRequirements — that element was added in sparkle-project/Sparkle#2797 and first shipped in Sparkle 2.9.0. Without this bump, the multi-item appcast generated by the parent commit would still serve Intel Macs the arm64 ZIP, because 2.8.1's SUAppcastDriver.filterSupportedAppcast performs no CPU/hardware filtering and bestItemFromAppcastItems breaks ties by first item — which is the arm64-restricted entry. 2.9.0 changelog is additive (markdown release notes, signed feeds, hardwareRequirements, minimumUpdateVersion); 2.9.1 adds bug fixes and SKIP_INSTALL=YES for XPCServices. No API removals that affect this codebase. Sparkle.xcframework's internal layout (Versions/B/Autoupdate, XPCServices/*.xpc, Updater.app) is unchanged, so scripts/sign-and-notarize.sh's discovery logic continues to work. SparkleUpdater.swift typechecks against 2.9.1 against the new NS_SWIFT_UI_ACTOR annotation on SPUUpdaterDelegate. Refs: https://github.com/sparkle-project/Sparkle/releases/tag/2.9.1 * Document Intel manual-download workaround for users on ≤ v0.15.2 The structural appcast fix and Sparkle 2.9.1 bump only take effect after a user is running a cctop build that ships Sparkle 2.9+. Intel users currently on cctop v0.15.2 (which bundles Sparkle 2.8.1) will still be handed the arm64 ZIP by the in-app updater on the release that finally fixes them — because the resolution happens in the *currently-running* Sparkle, not the one inside the new download. Add an FAQ entry in both README.md and site/index.html walking affected Intel users through a one-time manual download of the x86_64 DMG to get over that bridge. After the manual upgrade, subsequent updates will pick the correct architecture automatically. --------- Co-authored-by: Jonas Skoogh <[email protected]>
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.
The first requirement we support is arm64 which allows updates to mark themselves as Apple silicon only.
The message that shows up when users check for updates tells them their Mac is too old and a newer Apple silicon Mac is required for new updates. This introduces a new localizable string.
This requirement is also inferred if the minimum system version is >= 27.0
generate_appcast is also updated to handle a new branch for hardwareRequirements element, and for automatically populating it if needed.
Fixes #2796
Misc Checklist
Testing
I tested and verified my change by using one or multiple of these methods:
<sparkle:hardwareRequirements>arm64</sparkle:hardwareRequirements>on AS (where it's no-op) and Intel Macs.macOS version tested: 26.1 (25B78)