Skip to content

Download a working Crisp ASR build on Intel Macs - #13899

Merged
niksedk merged 1 commit into
mainfrom
claude/crispasr-macos-intel
Aug 20, 2026
Merged

Download a working Crisp ASR build on Intel Macs#13899
niksedk merged 1 commit into
mainfrom
claude/crispasr-macos-intel

Conversation

@niksedk

@niksedk niksedk commented Aug 20, 2026

Copy link
Copy Markdown
Member

Fixes #13559.

Upstream's crispasr-macos.tar.gz is arm64-only — its build job runs on macos-latest, which has been Apple Silicon since macos-13 was retired, and it sets no CMAKE_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 gets Bad 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: build-crispasr-macos-x64-release.yml in SubtitleEdit/support-files, cross-compiling x86_64 on the arm64 runner.
  • Release: crispasr-0829-macos-x64crispasr-macos-x86_64.tar.gz (17 MB).
  • This PR: CrispAsrDownloadService picks 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

why
-DGGML_METAL=OFF ggml's Metal kernels target Apple-family GPUs; on the AMD GPUs in Intel Macs they crash — exactly the failure in the report. CPU + Accelerate BLAS instead.
-DGGML_NATIVE=OFF otherwise the runner's -mcpu=apple-mN flags 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 left unset, clang targets the runner's own macOS and dyld refuses to launch the binary on anything older.
c2pa prebuilt fetched explicitly -DCRISPASR_C2PA_FETCH=ON derives its triple from CMAKE_SYSTEM_PROCESSOR, which on a cross-arch Apple build is still the host — it would drop an aarch64 libc2pa_c.dylib into 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 expected minos, and no links outside /System and /usr/lib.

Verification

The published artifact, run under Rosetta on an M-series Mac:

  arch          : x86_64
  ggml backends : cpu,blas
system_info: ... AVX = 1 | AVX2 = 1 | F16C = 1 | FMA = 1 | BMI2 = 1 | ACCELERATE = 1
[00:00:00.000 --> 00:00:03.800]   Subtitly added now, will crisp AS alpha Intel Max.

(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.0 from 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

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]>
@niksedk
niksedk merged commit 7aadba7 into main Aug 20, 2026
1 check passed
@niksedk
niksedk deleted the claude/crispasr-macos-intel branch August 20, 2026 06:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Regression: crispasr binary is missing x86_64 architecture (Intel support broken since recent updates)

1 participant