Skip to content

build: update squirrel.mac to 8d808803, drop upstreamed patches#51584

Merged
MarshallOfSound merged 1 commit into
mainfrom
sam/update-squirrel-mac
May 13, 2026
Merged

build: update squirrel.mac to 8d808803, drop upstreamed patches#51584
MarshallOfSound merged 1 commit into
mainfrom
sam/update-squirrel-mac

Conversation

@MarshallOfSound
Copy link
Copy Markdown
Member

@MarshallOfSound MarshallOfSound commented May 11, 2026

Description

Bumps squirrel.mac from 0e5d146ba1 to 8d808803bc (latest main)
and removes 14 of our 15 patches — all of which have been upstreamed into
Squirrel/Squirrel.Mac.

Patches removed

Electron patch Upstreamed in
feat_add_new_squirrel_mac_bundle_installation_method_behind_flag Squirrel/Squirrel.Mac#312
fix_abort_installation_attempt_at_the_final_mile_if_the_app_is Squirrel/Squirrel.Mac#312
fix_resolve_target_bundle_path_once_at_start_of_install Squirrel/Squirrel.Mac#312
feat_add_ability_to_prevent_version_downgrades Squirrel/Squirrel.Mac#312
refactor_use_posix_spawn_instead_of_nstask_so_we_can_disclaim_the Squirrel/Squirrel.Mac#312
fix_trigger_shipit_mach_service_after_smjobsubmit_to_unblock Squirrel/Squirrel.Mac#312
chore_turn_off_launchapplicationaturl_deprecation_errors_in_squirrel Squirrel/Squirrel.Mac#312
refactor_use_non-deprecated_nskeyedarchiver_apis Squirrel/Squirrel.Mac#312
fix_clean_up_orphaned_staged_updates_before_downloading_new_update Squirrel/Squirrel.Mac#312
fix_add_explicit_json_property_mappings_for_shipit_request_model Squirrel/Squirrel.Mac#312
fix_use_kseccschecknestedcode_kseccsstrictvalidate_in_the_sec Squirrel/Squirrel.Mac#302
fix_crash_when_process_to_extract_zip_cannot_be_launched Squirrel/Squirrel.Mac#308
fix_ensure_that_self_is_retained_until_the_racsignal_is_complete Squirrel/Squirrel.Mac#312
use_uttype_class_instead_of_deprecated_uttypeconformsto (not upstreamed — see below)

The use_uttype_class_instead_of_deprecated_uttypeconformsto patch is
dropped without an upstream equivalent. It was added in the Chromium 139
bump (#47348) when mac_deployment_target moved to 12.0 and
squirrel_framework did not yet carry -Wno-deprecated-declarations.
That flag was added later in #38437, making the patch a no-op — verified
by building squirrel_framework against the new pin (which still uses
UTTypeConformsTo).

Patch kept

build_add_gn_config.patch — slimmed down. Squirrel/Squirrel.Mac#298
upstreamed the ReactiveCocoaReactiveObjC import renames the patch
was carrying, so it now only adds BUILD.gn, filenames.gni,
build/xcrun.gni, build/xcrun.py, and the .gitignore tweaks for the
DEPS-managed vendor/ checkouts. It no longer touches any .m/.h
source files.

Notable upstream changes pulled in by the bump

Checklist

  • script/lint.js --patches passes
  • gn gen succeeds
  • squirrel_framework, squirrel_shipit, stripped_squirrel_framework
    build cleanly

Notes: Updated the Squirrel.Mac autoUpdater backend on macOS to pick up upstream fixes, including correct version-string validation when downgrade prevention is enabled, fixes for stale launcher errors persisting across update checks, and forwarding of custom download request headers.

Bumps squirrel.mac from 0e5d146ba1 to 8d808803bc and removes 14 patches
that have been upstreamed into Squirrel/Squirrel.Mac (mainly via
Squirrel/Squirrel.Mac#312, plus Squirrel/Squirrel.Mac#298,
Squirrel/Squirrel.Mac#302, Squirrel/Squirrel.Mac#308). Only
build_add_gn_config.patch remains, slimmed down to GN-only changes
since Squirrel/Squirrel.Mac#298 upstreamed the ReactiveCocoa ->
ReactiveObjC import renames it was carrying.
@MarshallOfSound MarshallOfSound added the semver/patch backwards-compatible bug fixes label May 11, 2026
@MarshallOfSound MarshallOfSound requested review from a team as code owners May 11, 2026 16:36
Copy link
Copy Markdown
Member

@VerteDinde VerteDinde left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for doing this, Sam, glad we're just aligned with upstream and not carrying patches! 🙇‍♀️

@nikwen
Copy link
Copy Markdown
Member

nikwen commented May 11, 2026

Thanks for upstreaming all the patches, Sam!

I'm a bit concerned that we don't have proper code review for changes to our updater now though. For example, this PR pulls in various upstream changes beyond the upstreamed patches. Those changes are probably useful, but they didn't go through code review. The updater is a pretty critical path in Electron.

Obviously you could argue that this version bump PR was reviewed and approved, but I'm worried that "bump Squirrel.Mac to <commit hash>" PRs won't get the in-depth review that changes to our auto updater would have previously gotten.

Would appreciate any thoughts on how to improve this.

Copy link
Copy Markdown
Member

@ckerr ckerr left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Love to see it!

Copy link
Copy Markdown
Member

@jkleinsc jkleinsc left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. @MarshallOfSound would we want to backport Squirrel/Squirrel.Mac#314 to older Electron branches since we are not backporting this PR?

@MarshallOfSound
Copy link
Copy Markdown
Member Author

@jkleinsc ElectronSquirrelPreventDowngrades is an undocumented flag that apparently never worked 😅 not super worried about backporting

@nikwen The upstreaming has no review, but is fully auditable (as some folks in this thread have checked). Future PRs will be approved before landing upstream.

@MarshallOfSound MarshallOfSound merged commit ea09542 into main May 13, 2026
78 checks passed
@release-clerk
Copy link
Copy Markdown

release-clerk Bot commented May 13, 2026

Release Notes Persisted

Updated the Squirrel.Mac autoUpdater backend on macOS to pick up upstream fixes, including correct version-string validation when downgrade prevention is enabled, fixes for stale launcher errors persisting across update checks, and forwarding of custom download request headers.

@MarshallOfSound MarshallOfSound deleted the sam/update-squirrel-mac branch May 13, 2026 05:07
@dsanders11
Copy link
Copy Markdown
Member

For posterity, I updated the PR description here as a bunch of the links in the last bullet point in "Notable upstream changes pulled in by the bump" were incorrectly autolinking to issue numbers on this repo, not Squirrel/Squirrel.Mac. 🙂

@nikwen
Copy link
Copy Markdown
Member

nikwen commented May 13, 2026

Future PRs will be approved before landing upstream.

@MarshallOfSound Thanks! In concrete terms, who will review the PRs?

ckerr added a commit that referenced this pull request May 14, 2026
jkleinsc pushed a commit that referenced this pull request May 14, 2026
* fix: don't return a `nullptr` from `TargetForRect`

Co-authored-by: Noah Gregory <nmggithub@electronjs.org>

* fix: address concerns

Co-authored-by: Noah Gregory <nmggithub@electronjs.org>

* chore: use promise's context for memory dump callback. (#51570)

Co-authored-by: BILL SHEN <15865969+cucbin@users.noreply.github.com>

* build: only fallback to CHROMIUM_BUILDTOOLS_PATH if needed (#51558)

* build: only fallback to CHROMIUM_BUILDTOOLS_PATH if needed

* ci: fix lint workflow detection of src/buildtools

* ci: bump build-tools SHA

Co-authored-by: David Sanders <dsanders11@ucsbalum.com>

* build: update squirrel.mac to 8d808803, drop upstreamed patches (#51584)

Bumps squirrel.mac from 0e5d146ba1 to 8d808803bc and removes 14 patches
that have been upstreamed into Squirrel/Squirrel.Mac (mainly via
Squirrel/Squirrel.Mac#312, plus Squirrel/Squirrel.Mac#298,
Squirrel/Squirrel.Mac#302, Squirrel/Squirrel.Mac#308). Only
build_add_gn_config.patch remains, slimmed down to GN-only changes
since Squirrel/Squirrel.Mac#298 upstreamed the ReactiveCocoa ->
ReactiveObjC import renames it was carrying.

Co-authored-by: Samuel Attard <sam@electronjs.org>

* Revert "build: update squirrel.mac to 8d808803, drop upstreamed patches (#51584)"

This reverts commit d4e9004.

* Revert "build: only fallback to CHROMIUM_BUILDTOOLS_PATH if needed (#51558)"

This reverts commit 090b568.

* Revert "chore: use promise's context for memory dump callback. (#51570)"

This reverts commit a74d8a1.

---------

Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Noah Gregory <nmggithub@electronjs.org>
Co-authored-by: BILL SHEN <15865969+cucbin@users.noreply.github.com>
Co-authored-by: David Sanders <dsanders11@ucsbalum.com>
Co-authored-by: Samuel Attard <sam@electronjs.org>
Co-authored-by: Charles Kerr <charles@charleskerr.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

no-backport semver/patch backwards-compatible bug fixes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants