Skip to content

Re-add Xcode and OpenJDK dependencies to macOS wasm local_engine builders - #192238

Merged
auto-submit[bot] merged 4 commits into
flutter:masterfrom
mdebbar:fix-wasm-mac-local-engine
Sep 9, 2026
Merged

auto-submit[bot] merged 4 commits into
flutter:masterfrom
mdebbar:fix-wasm-mac-local-engine

Conversation

@mdebbar

@mdebbar mdebbar commented Sep 3, 2026 •

Copy link
Copy Markdown
Contributor

This PR fixes macOS web engine builds in local_engine.json by addressing two requirements:

  1. Xcode dependency: With the addition of Wimp (Impeller on Web) to flutter_web_sdk_archive in [wimp] Initial Impeller on Web implementation. #175442, wasm builds now pull in Impeller, which compiles host utilities (impellerc and flatc). On macOS hosts, compiled_action evaluates the macOS host toolchain which requires the Darwin SDK / Xcode. When skip_xcode_install: true was added in Don't install xcode when doing local_engine web builds on mac. #162164, Web SDK only compiled Skia and Skwasm targets via Emscripten without host tools. Re-adds "sdk_version": "17c52" to macos/wasm_release and macos/wasm_debug_unopt.

  2. OpenJDK dependency: On Apple Silicon (arm64) macOS bots without Rosetta 2, Emscripten's google-closure-compiler fails when attempting to spawn its native x86_64 binary (EBADARCH, errno: -86). It falls back to its Java implementation, which requires a JDK on $PATH. Adds OpenJDK 21 to properties.dependencies so flutter_deps installs the native mac-arm64 OpenJDK and prepends it to $PATH.

Fixes #180648

Pre-launch Checklist

With the addition of Wimp (Impeller on Web) to flutter_web_sdk_archive (flutter#175442), wasm builds now pull in Impeller, which compiles host utilities (impellerc and flatc). On macOS hosts, compiled_action evaluates the macOS host toolchain which requires the Darwin SDK / Xcode.

Re-adds the Xcode dependency to macos/wasm_release and macos/wasm_debug_unopt in local_engine.json, fixing GN configuration failures when building without Xcode mounted.

Fixes flutter#180648
@flutter-dashboard flutter-dashboard Bot added the CICD Run CI/CD label Sep 3, 2026
@github-actions github-actions Bot added the engine flutter/engine related. See also e: labels. label Sep 3, 2026

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Code Review

This pull request updates the local engine builder configuration in engine/src/flutter/ci/builders/local_engine.json by replacing the skip_xcode_install property with a specific sdk_version ("17c52") under the $flutter/osx_sdk configuration in two locations. There are no review comments, and I have no feedback to provide.

@mdebbar

mdebbar commented Sep 4, 2026 •

Copy link
Copy Markdown
Contributor Author

Ran led with and without the PR to confirm the build is fixed:

  1. Before the PR (failed):
    https://ci.chromium.org/ui/p/flutter/builders/staging.shadow/Linux%20local_engine_builds/2/overview
    https://ci.chromium.org/ui/p/flutter/builders/staging.shadow/Mac%20Staging%20Engine%20Drone/715/overview
led get-builder 'luci.flutter.staging:Linux local_engine_builds' \
  | led edit -pa git_ref='refs/heads/master' \
  | led edit -pa git_url='https://github.com/flutter/flutter' \
  | led launch
  1. After the PR (succeeded):
    https://ci.chromium.org/ui/p/flutter/builders/staging.shadow/Linux%20local_engine_builds/1/overview
    https://ci.chromium.org/ui/p/flutter/builders/staging.shadow/Mac%20Staging%20Engine%20Drone/696/overview
led get-builder 'luci.flutter.staging:Linux local_engine_builds' \
  | led edit -pa git_ref='refs/pull/192238/head' \
  | led edit -pa git_url='https://github.com/flutter/flutter' \
  | led launch

@mdebbar

mdebbar commented Sep 4, 2026 •

Copy link
Copy Markdown
Contributor Author

I spoke too soon. The gn step that used to fail succeeded, but there's still another failure that happens later.

New led attempt here:
https://ci.chromium.org/ui/p/flutter/builders/staging.shadow/Linux%20local_engine_builds/3/overview

On Apple Silicon macOS bots without Rosetta 2, Emscripten's google-closure-compiler native binary cannot execute (EBADARCH). Closure compiler falls back to Java, which requires OpenJDK on PATH.

Adds open_jdk (version:21) dependency to properties for macos/wasm_release and macos/wasm_debug_unopt so flutter_deps installs OpenJDK into the drone environment.
@mdebbar mdebbar changed the title Re-add Xcode dependency to macOS wasm local_engine builders Re-add Xcode and OpenJDK dependencies to macOS wasm local_engine builders Sep 4, 2026
….json

builder.py reads deps via build.get('dependencies', []), not from build.get('properties'). Moving dependencies to top-level ensures flutter_deps installs OpenJDK.
@mdebbar

mdebbar commented Sep 5, 2026

Copy link
Copy Markdown
Contributor Author

@jtmcdole jtmcdole added the autosubmit Merge PR when tree becomes green via auto submit App label Sep 9, 2026
@auto-submit
auto-submit Bot added this pull request to the merge queue Sep 9, 2026
Merged via the queue into flutter:master with commit 5c71e6c Sep 9, 2026
23 checks passed
@flutter-dashboard flutter-dashboard Bot removed the autosubmit Merge PR when tree becomes green via auto submit App label Sep 9, 2026
auto-submit Bot pushed a commit to flutter/packages that referenced this pull request Sep 9, 2026
flutter/flutter@b444e78...63b9518

2026-09-09 [email protected] Roll Packages from 9af9c60 to 36e088a (24 revisions) (flutter/flutter#192485)
2026-09-09 [email protected] Re-add Xcode and OpenJDK dependencies to macOS wasm local_engine builders (flutter/flutter#192238)
2026-09-09 [email protected] Roll Dart SDK from 77094991d1c1 to 4be1b711b4ba (5 revisions) (flutter/flutter#192453)
2026-09-09 [email protected] [material] Use super parameters in more places (flutter/flutter#192149)
2026-09-09 [email protected] [cupertino] Use super parameters in more places (flutter/flutter#192148)
2026-09-09 [email protected] [flutter_tools] Gracefully handle EROFS and write-protected file system errors (flutter/flutter#192431)
2026-09-09 [email protected] [tool] Migrate BuildIOSCommand and BuildIOSArchiveCommand to modular dependency injection (flutter/flutter#192250)
2026-09-09 [email protected] Replace more enum instances comparison to use `equality ==` instead of `identical` and update related tests (flutter/flutter#192229)
2026-09-09 [email protected] [web] Support local screenshot and golden testing in felt test (flutter/flutter#191318)
2026-09-09 [email protected] [tool] Migrate DaemonCommand and DebugAdapterCommand to modular dependency injection (flutter/flutter#190793)
2026-09-09 [email protected] [web] Support local golden testing in flutter test (flutter/flutter#191386)
2026-09-09 [email protected] [flutter_tools] Ignore widget previews outside lib/ during LSP code generation (flutter/flutter#192326)
2026-09-09 [email protected] [flutter_tools] Read package_config.json asynchronously in loadPackageConfigWithLogging (flutter/flutter#192443)
2026-09-08 [email protected] Add precacheTestImage to flutter_test and unskip web image tests (flutter/flutter#191435)
2026-09-08 [email protected] et: Fix compile_commands.json post-processing (flutter/flutter#192395)
2026-09-08 [email protected] Refactor createDebuggingOptions and option registrations to OptionDescriptor (flutter/flutter#192307)
2026-09-08 [email protected] [flutter_tools] Fix test separation between `VersionFreshnessValidator` and `FlutterVersion.checkFlutterVersionFreshness` (flutter/flutter#191593)
2026-09-08 [email protected] [tool] Migrate EmulatorsCommand to modular dependency injection (flutter/flutter#190769)
2026-09-08 [email protected] [tool] Migrate Desktop build subcommands and toolchain to modular dependency injection (flutter/flutter#190781)
2026-09-08 [email protected] [tool] Migrate Tooling and Analysis commands to modular dependency injection (flutter/flutter#190788)
2026-09-08 [email protected] Skip KGP version validation for AGP built-in Kotlin (flutter/flutter#192206)

If this roll has caused a breakage, revert this CL and set the roller
to dry run mode using the controls here:
https://autoroll.skia.org/r/flutter-packages
Please CC [email protected],[email protected] on the revert to ensure that a human
is aware of the problem.

To file a bug in Packages: https://github.com/flutter/flutter/issues/new/choose

To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
victorsanni pushed a commit to victorsanni/packages that referenced this pull request Sep 9, 2026
…r#12814)

flutter/flutter@b444e78...63b9518

2026-09-09 [email protected] Roll Packages from 9af9c60 to 36e088a (24 revisions) (flutter/flutter#192485)
2026-09-09 [email protected] Re-add Xcode and OpenJDK dependencies to macOS wasm local_engine builders (flutter/flutter#192238)
2026-09-09 [email protected] Roll Dart SDK from 77094991d1c1 to 4be1b711b4ba (5 revisions) (flutter/flutter#192453)
2026-09-09 [email protected] [material] Use super parameters in more places (flutter/flutter#192149)
2026-09-09 [email protected] [cupertino] Use super parameters in more places (flutter/flutter#192148)
2026-09-09 [email protected] [flutter_tools] Gracefully handle EROFS and write-protected file system errors (flutter/flutter#192431)
2026-09-09 [email protected] [tool] Migrate BuildIOSCommand and BuildIOSArchiveCommand to modular dependency injection (flutter/flutter#192250)
2026-09-09 [email protected] Replace more enum instances comparison to use `equality ==` instead of `identical` and update related tests (flutter/flutter#192229)
2026-09-09 [email protected] [web] Support local screenshot and golden testing in felt test (flutter/flutter#191318)
2026-09-09 [email protected] [tool] Migrate DaemonCommand and DebugAdapterCommand to modular dependency injection (flutter/flutter#190793)
2026-09-09 [email protected] [web] Support local golden testing in flutter test (flutter/flutter#191386)
2026-09-09 [email protected] [flutter_tools] Ignore widget previews outside lib/ during LSP code generation (flutter/flutter#192326)
2026-09-09 [email protected] [flutter_tools] Read package_config.json asynchronously in loadPackageConfigWithLogging (flutter/flutter#192443)
2026-09-08 [email protected] Add precacheTestImage to flutter_test and unskip web image tests (flutter/flutter#191435)
2026-09-08 [email protected] et: Fix compile_commands.json post-processing (flutter/flutter#192395)
2026-09-08 [email protected] Refactor createDebuggingOptions and option registrations to OptionDescriptor (flutter/flutter#192307)
2026-09-08 [email protected] [flutter_tools] Fix test separation between `VersionFreshnessValidator` and `FlutterVersion.checkFlutterVersionFreshness` (flutter/flutter#191593)
2026-09-08 [email protected] [tool] Migrate EmulatorsCommand to modular dependency injection (flutter/flutter#190769)
2026-09-08 [email protected] [tool] Migrate Desktop build subcommands and toolchain to modular dependency injection (flutter/flutter#190781)
2026-09-08 [email protected] [tool] Migrate Tooling and Analysis commands to modular dependency injection (flutter/flutter#190788)
2026-09-08 [email protected] Skip KGP version validation for AGP built-in Kotlin (flutter/flutter#192206)

If this roll has caused a breakage, revert this CL and set the roller
to dry run mode using the controls here:
https://autoroll.skia.org/r/flutter-packages
Please CC [email protected],[email protected] on the revert to ensure that a human
is aware of the problem.

To file a bug in Packages: https://github.com/flutter/flutter/issues/new/choose

To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
victorsanni pushed a commit to victorsanni/packages that referenced this pull request Sep 9, 2026
…r#12814)

flutter/flutter@b444e78...63b9518

2026-09-09 [email protected] Roll Packages from 9af9c60 to 36e088a (24 revisions) (flutter/flutter#192485)
2026-09-09 [email protected] Re-add Xcode and OpenJDK dependencies to macOS wasm local_engine builders (flutter/flutter#192238)
2026-09-09 [email protected] Roll Dart SDK from 77094991d1c1 to 4be1b711b4ba (5 revisions) (flutter/flutter#192453)
2026-09-09 [email protected] [material] Use super parameters in more places (flutter/flutter#192149)
2026-09-09 [email protected] [cupertino] Use super parameters in more places (flutter/flutter#192148)
2026-09-09 [email protected] [flutter_tools] Gracefully handle EROFS and write-protected file system errors (flutter/flutter#192431)
2026-09-09 [email protected] [tool] Migrate BuildIOSCommand and BuildIOSArchiveCommand to modular dependency injection (flutter/flutter#192250)
2026-09-09 [email protected] Replace more enum instances comparison to use `equality ==` instead of `identical` and update related tests (flutter/flutter#192229)
2026-09-09 [email protected] [web] Support local screenshot and golden testing in felt test (flutter/flutter#191318)
2026-09-09 [email protected] [tool] Migrate DaemonCommand and DebugAdapterCommand to modular dependency injection (flutter/flutter#190793)
2026-09-09 [email protected] [web] Support local golden testing in flutter test (flutter/flutter#191386)
2026-09-09 [email protected] [flutter_tools] Ignore widget previews outside lib/ during LSP code generation (flutter/flutter#192326)
2026-09-09 [email protected] [flutter_tools] Read package_config.json asynchronously in loadPackageConfigWithLogging (flutter/flutter#192443)
2026-09-08 [email protected] Add precacheTestImage to flutter_test and unskip web image tests (flutter/flutter#191435)
2026-09-08 [email protected] et: Fix compile_commands.json post-processing (flutter/flutter#192395)
2026-09-08 [email protected] Refactor createDebuggingOptions and option registrations to OptionDescriptor (flutter/flutter#192307)
2026-09-08 [email protected] [flutter_tools] Fix test separation between `VersionFreshnessValidator` and `FlutterVersion.checkFlutterVersionFreshness` (flutter/flutter#191593)
2026-09-08 [email protected] [tool] Migrate EmulatorsCommand to modular dependency injection (flutter/flutter#190769)
2026-09-08 [email protected] [tool] Migrate Desktop build subcommands and toolchain to modular dependency injection (flutter/flutter#190781)
2026-09-08 [email protected] [tool] Migrate Tooling and Analysis commands to modular dependency injection (flutter/flutter#190788)
2026-09-08 [email protected] Skip KGP version validation for AGP built-in Kotlin (flutter/flutter#192206)

If this roll has caused a breakage, revert this CL and set the roller
to dry run mode using the controls here:
https://autoroll.skia.org/r/flutter-packages
Please CC [email protected],[email protected] on the revert to ensure that a human
is aware of the problem.

To file a bug in Packages: https://github.com/flutter/flutter/issues/new/choose

To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CICD Run CI/CD engine flutter/engine related. See also e: labels.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

wasm_release / wasm_debug_unopt broken in staging

2 participants