Skip to content

Fix macOS VLC integration on Apple Silicon/Intel; add Homebrew cask - #7

Merged
asayed18 merged 2 commits into
mainfrom
claude/fix-macos-apple-silicon
Oct 1, 2026
Merged

asayed18 merged 2 commits into
mainfrom
claude/fix-macos-apple-silicon

Conversation

@asayed18

Copy link
Copy Markdown
Owner

Summary

  • macOS plugin was never loaded: VLC for macOS only scans lib*_plugin.dylib, but the plugin was built with CMake's default .so suffix. It is now built as .dylib.
  • Pin CMAKE_OSX_DEPLOYMENT_TARGET to 14.0. Use ONNX Runtime 1.23.2 for Intel/universal2 (1.26.0 has no x86_64 macOS archive). Ad-hoc sign packaged dylibs.
  • Installer (install_icop_plugin.sh): ships inside the archives and adds --release-dir, --arch and --uninstall. It finds VLC.app (DMG, Homebrew cask, ~/Applications, MacPorts, Spotlight) and matches the payload to VLC's architecture (Rosetta aware). It also rejects VLC 4, clears quarantine and tolerates a missing vlc-cache-gen.
  • CI: adds verify_macos_package.sh and macos_vlc_smoke_test.sh to release CI, and a plugin-registration check to PR CI.
  • Homebrew: a new homebrew-tap workflow notifies asayed18/homebrew-icop on release (brew install --cask icop).
  • Version bumped to 0.1.7 so the fixed packages don't reuse the v0.1.6 draft.

Local verification (macOS arm64, VLC 3.0.23)

  • make release: v0.1.7 mac package built (7 payload files).
  • verify_macos_package.sh releases/v0.1.7/mac arm64: passed.
  • macos_vlc_smoke_test.sh /Applications/VLC.app sample.mp4 releases/v0.1.7/mac/plugins: VLC registered icop, and the ONNX session was ready with the coreml,cpu provider.
  • Unit tests (make test) were not run locally.

🤖 Generated with Claude Code

VLC for macOS only loads lib*_plugin.dylib, but the plugin was built with
CMake's default .so module suffix, so every macOS release was silently
ignored by VLC. Build it as .dylib.

- Pin CMAKE_OSX_DEPLOYMENT_TARGET to 14.0 (the osx-arm64 ONNX Runtime
  minimum) so packages built on the newest runners load on older Macs.
- Use ONNX Runtime 1.23.2 for Intel/universal2 macOS; 1.26.0 has no
  x86_64 macOS archive, so the Intel package shipped without a runtime.
  Never pick up a Homebrew onnxruntime for macOS packages.
- Ad-hoc sign packaged dylibs that do not verify (optional Developer ID).
- Ship install_icop_plugin.sh inside Linux/macOS archives; add
  --release-dir and --arch. On macOS, find VLC.app from the DMG, Homebrew
  cask (incl. --appdir), ~/Applications, MacPorts or Spotlight; match the
  payload to VLC's architecture (Rosetta aware); reject VLC 4; clear
  download quarantine; remove the stale .so; tolerate a missing
  vlc-cache-gen.
- Add verify_macos_package.sh and macos_vlc_smoke_test.sh, run them in
  release CI with Homebrew VLC, and check plugin registration in PR CI.
- Document macOS installation paths and troubleshooting.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VDfqb9f52nSf89az5rPZBz
- install_icop_plugin.sh --uninstall removes exactly the files listed in
  the release SHA256SUMS; the Homebrew cask uses it on uninstall.
- New homebrew-tap workflow dispatches icop-release to
  asayed18/homebrew-icop when a release is published (optional
  HOMEBREW_TAP_TOKEN; the tap also polls on a schedule).
- Document `brew install --cask icop`.
- Bump to 0.1.7 so the fixed macOS packages do not reuse the v0.1.6 draft.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VDfqb9f52nSf89az5rPZBz
@asayed18
asayed18 merged commit 0b4e52a into main Oct 1, 2026
7 checks passed
@asayed18
asayed18 deleted the claude/fix-macos-apple-silicon branch October 1, 2026 00:43
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.

2 participants