fix(builder): auto-detect Rosetta 2 availability, fall back to QEMU#1826
Open
lohitkolluri wants to merge 1 commit into
Open
fix(builder): auto-detect Rosetta 2 availability, fall back to QEMU#1826lohitkolluri wants to merge 1 commit into
lohitkolluri wants to merge 1 commit into
Conversation
1 task
The builder VM enables Rosetta translation by default for x86_64 builds on Apple Silicon. This crashes when Rosetta 2 is not installed on the host. Auto-detect Rosetta 2 availability by checking for the Rosetta runtime library. If it's not installed, fall back to QEMU via --enable-qemu instead of failing. Signed-off-by: Lohit Kolluri <lohitkolluri@gmail.com>
e894e1f to
1360d6b
Compare
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 builder VM enables Rosetta translation by default for x86_64 builds on Apple Silicon. This crashes when Rosetta 2 is not installed on the host.
Root cause:
BuilderStart.swiftunconditionally usescontainerSystemConfig.build.rosetta(defaults totrue) as the Rosetta enable flag for the builder VM. If Rosetta 2 is not installed, the VM creation fails.Fix: Auto-detect Rosetta 2 at runtime by checking for the Rosetta runtime library at
/Library/Apple/usr/libexec/oah/libRosettaRuntime. The builder only enables Rosetta if it's configured AND actually available. When unavailable, QEMU handles cross-architecture builds via--enable-qemu.Behavior matrix:
rosettatrue(default)true(default)falseChanges:
BuilderStart.swift: 1-line change — add&& FileManager.default.fileExists(...)checkcontainer-system-config.md: document auto-detection behaviorhow-to.md: update Rosetta section to explain auto-detectionAI disclosure: Assisted by Claude Code (Claude Opus 4.8)
Closes #1825