Download a working Crisp ASR build on Intel Macs - #13899
Merged
Merged
Conversation
Upstream's crispasr-macos.tar.gz is arm64-only and always has been: the build job runs on macos-latest, which is Apple Silicon since macos-13 was retired, and sets no CMAKE_OSX_ARCHITECTURES. An Intel Mac downloads 15 MB and gets "Bad CPU type in executable", or crashes inside ggml-metal when the backend is forced. Rosetta cannot bridge it - it translates x86_64 to arm64, never the reverse. Subtitle Edit now builds the x86_64 slice itself from the same pinned v0.8.29 tag (SubtitleEdit/support-files, build-crispasr-macos-x64-release.yml) and Intel Macs download that instead: a CPU + Accelerate build with Metal off, ggml's portable x86 baseline (AVX2/FMA/F16C/BMI2 - Haswell and up, which covers every Intel Mac that runs macOS 12) and a pinned macOS 12 deployment target. The archive's inner folder matches upstream's, so the unpack path is unchanged. The Intel archive gets its own hash keys rather than sharing CrispAsr.MacOs: the two are different files with separate histories, and an arm64 hash must never read as up to date on an Intel install. Verified by running the published x86_64 binary under Rosetta: reports arch x86_64, backends cpu,blas, AVX2/FMA/ACCELERATE enabled, and transcribes a sample. Fixes #13559 Co-Authored-By: Claude Opus 5 <[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.
Fixes #13559.
Upstream's
crispasr-macos.tar.gzis arm64-only — its build job runs onmacos-latest, which has been Apple Silicon since macos-13 was retired, and it sets noCMAKE_OSX_ARCHITECTURES. I checked every release from v0.1.0 through the pinned v0.8.29: all of them are arm64. An Intel Mac downloads 15 MB and getsBad CPU type in executable, or crashes inside ggml-metal when the backend is forced. Rosetta can't bridge it — it translates x86_64 → arm64, never the reverse.So Subtitle Edit now builds the Intel slice itself, from the same pinned tag:
build-crispasr-macos-x64-release.ymlinSubtitleEdit/support-files, cross-compiling x86_64 on the arm64 runner.crispasr-macos-x86_64.tar.gz(17 MB).CrispAsrDownloadServicepicks that URL on non-arm64 macOS, and the Intel archive gets its own hash keys.How the Intel build differs from upstream's macOS recipe
-DGGML_METAL=OFF-DGGML_NATIVE=OFF-mcpu=apple-mNflags land in an x86 compile. ggml then picks its portable baseline: SSE4.2 + AVX + AVX2 + FMA + F16C + BMI2 — Haswell and up, i.e. every Intel Mac that runs macOS 12.-DCMAKE_OSX_DEPLOYMENT_TARGET=12.0-DCRISPASR_C2PA_FETCH=ONderives its triple fromCMAKE_SYSTEM_PROCESSOR, which on a cross-arch Apple build is still the host — it would drop an aarch64libc2pa_c.dylibinto an x86_64 build.The archive's inner folder is
crispasr-macos, same as upstream's, so the unpack path needs no arch-specific case. The workflow's Verify step gates on all of it: x86_64-only slices, no arm64 leftovers, the expectedminos, and no links outside/Systemand/usr/lib.Verification
The published artifact, run under Rosetta on an M-series Mac:
(the wording is tiny.en being tiny.en — the point is that it runs and decodes.)
Note for a follow-up
Upstream's arm64 binary is stamped
minos 26.0from v0.8.20 onwards (v0.7.0 was 15.0), because their runner moved to macOS 26. dyld refuses to launch a binary whose minimum is newer than the OS, so the pinned v0.8.29 likely won't start on Apple Silicon Macs running macOS 15 or older either. Not addressed here — worth an upstream issue asking them to pin the deployment target, or the same treatment as this Intel build.🤖 Generated with Claude Code