Skip to content

Require macOS 10.15 minimum so whisper.cpp builds for the universal macOS release #536

Closed

Description

@smart-ssh-planner

Target branch: release/0.7.0

Goal

The macOS release build sets an explicit minimum macOS version of 10.15 (Catalina), so whisper.cpp (speech input) compiles for aarch64-apple-darwin and the universal macOS build succeeds. The minimum is documented for users.

Context

  • crates/speech depends on whisper-rs 0.16.0, which builds whisper.cpp through whisper-rs-sys 0.15.0.
  • The universal macOS release build fails compiling whisper.cpp for aarch64-apple-darwin:
    • ggml/src/ggml-backend-reg.cpp:91:39: error: 'path' is unavailable: introduced in macOS 10.15
    • 'u8string' is unavailable: introduced in macOS 10.15 (std::filesystem)
  • apps/smart-ssh-community/tauri.conf.json (bundle.macOS, ~line 44) sets no minimumSystemVersion, so Tauri's default 10.13 drives MACOSX_DEPLOYMENT_TARGET. std::filesystem needs 10.15.
  • Tauri 2 itself documents macOS 10.15 (Catalina) as its minimum supported version, so this change only makes an existing requirement explicit; it drops no platform that was actually supported.
  • .cargo/config.toml (added by Build whisper.cpp without native CPU flags (GGML_NATIVE=OFF) for release builds #534) has an [env] section with GGML_NATIVE = "OFF".
  • README.md:76 (download section) lists the macOS .dmg without a minimum version. No spec lists supported OS versions.

Requirements

  • Minimum macOS version is 10.15 (decided by maintainer).
  • apps/smart-ssh-community/tauri.conf.json: add "minimumSystemVersion": "10.15" to bundle.macOS.
  • .cargo/config.toml: add MACOSX_DEPLOYMENT_TARGET = "10.15" to the existing [env] section with a short comment (whisper.cpp uses std::filesystem, available from macOS 10.15; keeps plain cargo builds and build scripts such as the whisper-rs-sys CMake build on the same target as the bundle).
  • README.md: state the minimum in the download section (e.g. macOS line: "ab macOS 10.15 (Catalina)"; keep the README's language). If README_DEV.md lists build/platform requirements, add the same minimum there.
  • Changelog: a raised minimum OS version is user-visible. release/0.7.0 already has its changelog assembled (## [0.7.0] section in CHANGELOG.md), so add the entry directly to the ### Changed subsection of ## [0.7.0] in CHANGELOG.md (English, at most two lines, e.g. "macOS 10.15 (Catalina) or later is now required."), not as a fragment in changelog.d/.

Acceptance Criteria

  • apps/smart-ssh-community/tauri.conf.json contains bundle.macOS.minimumSystemVersion: "10.15".
  • .cargo/config.toml [env] contains MACOSX_DEPLOYMENT_TARGET = "10.15" with a short comment; GGML_NATIVE = "OFF" stays.
  • On macOS: cargo build --release --target aarch64-apple-darwin -p <speech crate> compiles, and target/**/build/whisper-rs-sys-*/out/**/CMakeCache.txt contains CMAKE_OSX_DEPLOYMENT_TARGET = 10.15 (or the build output shows -mmacosx-version-min=10.15). Without macOS available: both config values verified by inspection and stated in the PR description.
  • README.md states macOS 10.15 (Catalina) or later as the minimum.
  • CHANGELOG.md section ## [0.7.0] contains the entry about the macOS 10.15 minimum; no new file in changelog.d/.
  • CI is green.

Technical Notes

  • Not a security-critical area; no data model change. No workflow change.
  • An explicit MACOSX_DEPLOYMENT_TARGET in a build environment wins over Cargo [env] (no force = true); the Tauri bundler sets it from minimumSystemVersion, which then matches.
  • [env] values apply on every host; MACOSX_DEPLOYMENT_TARGET is ignored outside Apple targets.

Spec impact: none

Related Work

Activity

  1. added this to the 0.7.0 milestone on Oct 15, 2026
  2. added
    bugSomething isn't working
    release-blockerMust be fixed on the release branch before the version ships
    on Oct 15, 2026
  3. smart-ssh-coder commented on Oct 15, 2026

    @smart-ssh-coder
    Contributor

    Implementation update

    PR: #537
    Implemented:

    • minimumSystemVersion: 10.15 in tauri.conf.json, MACOSX_DEPLOYMENT_TARGET = "10.15" in .cargo/config.toml (GGML_NATIVE kept), README/README_DEV, CHANGELOG [0.7.0] Changed.
      Remaining / open:
    • macOS build not verified here (no macOS); config verified by inspection. No CI checks were reported on the PR.
      Decisions: none.
  4. smart-ssh-reviewer commented on Oct 15, 2026

    @smart-ssh-reviewer

    Review result

    Approved — see review on #537.

    Findings:

    • All acceptance criteria met by inspection; CI was still running at review time (macOS job is the real proof).

    Recommended next step: merge once CI is green

  5. smart-ssh-coordinator commented on Oct 15, 2026

    @smart-ssh-coordinator
    Contributor

    CI of PR #537 is still running (4 check(s) pending). Parked until it finishes; the merge continues automatically.

  6. brokoskokoli commented on Oct 15, 2026

    @brokoskokoli
    Member

    PR #537 merged into release/0.7.0 by the maintainer (all checks green, approved; the merge step cannot merge into the ruleset-protected release branch).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingrelease-blockerMust be fixed on the release branch before the version ships

    Type

    Fields

    Priority

    P0 - Critical

    Stage

    Done

    Role

    None

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions