Skip to content

Bump grandiose pin to fix macOS arm64 build#96

Open
ktamas77 wants to merge 1 commit into
rse:masterfrom
ktamas77:fix/grandiose-pin-arm64
Open

Bump grandiose pin to fix macOS arm64 build#96
ktamas77 wants to merge 1 commit into
rse:masterfrom
ktamas77:fix/grandiose-pin-arm64

Conversation

@ktamas77
Copy link
Copy Markdown

Summary

The current grandiose pin (rse/grandiose#cf09bb84) lacks the mac && arm64 case in binding.gyp. As a result, on Apple Silicon grandiose.node builds without linking libndi, and the app SIGSEGVs on the first NDI call from the renderer.

rse/grandiose@456f3132 ("fix ARM64 usage") adds the missing case along with a separate ndi/lib/mac-a64/libndi.dylib. Bumping the pin is a one-line fix that makes electron-builder --mac --arm64 produce a working Vingester.app on Apple Silicon — no patches, no extra config.

What changes

-        "grandiose":                     "rse/grandiose#cf09bb84",
+        "grandiose":                     "rse/grandiose#456f3132ef60d068d989a208147d396596012dfb",

Verification

Locally tested on macOS 26.4 / Apple Silicon (M1 Pro):

  • npm installgrandiose rebuilds cleanly via node-gyp 12; the new mac && arm64 case in binding.gyp correctly copies mac-a64/libndi.dylib into build/Release/ and links -lndi.
  • npx electron-builder --mac --arm64 — produces dist/mac-arm64/Vingester.app.
  • otool -L confirms grandiose.node now resolves @rpath/libndi.dylib (previously: no libndi dependency at all).
  • App launches: main + GPU/renderer/network/audio helpers all start; AppleScript tell application "Vingester" to return version returns 2.8.0. No crash.

What this does NOT change

  • Existing macOS x64, Windows, and Linux builds. The bumped grandiose still has all original platform cases (win-x64, lnx-x64, mac-x64, etc.) plus the new mac-a64.
  • No source-code changes anywhere else in Vingester. vingester-ffmpeg.js already handles arch === "arm64" via @rse/ffmpeg.

Notes for the maintainer

  • The pin is a full SHA, matching the existing style in this file.
  • I had to use a recent node-gyp (12.x) on the build host because the bundled one in older electron-rebuild is incompatible with Python 3.12+. Not part of this PR — purely a build-host concern.

The pinned commit cf09bb84 of rse/grandiose lacks the
mac && arm64 case in binding.gyp, so on Apple Silicon
grandiose.node builds without linking libndi. The renderer
then crashes (SIGSEGV) on the first NDI call.

rse/grandiose@456f3132 ("fix ARM64 usage") adds the missing
case and a separate ndi/lib/mac-a64/libndi.dylib. After this
bump, `electron-builder --mac --arm64` produces a working
Vingester.app on Apple Silicon with no patches needed.

Verified locally on macOS 26.4 / Apple Silicon.
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.

1 participant