Skip to content

Fix macOS SDL runtime packaging - #1

Merged
Cycl0o0 merged 2 commits into
mainfrom
agent/fix-macos-sdl-runtime
Jul 16, 2026
Merged

Fix macOS SDL runtime packaging#1
Cycl0o0 merged 2 commits into
mainfrom
agent/fix-macos-sdl-runtime

Conversation

@Cycl0o0

@Cycl0o0 Cycl0o0 commented Jul 16, 2026

Copy link
Copy Markdown
Owner

What changed

  • Build pinned genuine SDL2 2.30.3 and SDL2_net 2.2.0 for macOS release jobs.
  • Give the CMake bundle fixup the job-local SDL library directory so @rpath dependencies are copied and rewritten.
  • Reject sdl2-compat, SDL3, wrong-architecture libraries, and package-manager paths during DMG verification.
  • Bundle the SDL2, SDL2_net, HIDAPI, and yuv2rgb notices and verify them in every OS package.

Why

Homebrew now resolves its sdl2 package to sdl2-compat, which loads SDL3 with dlopen. The v0.1.0 DMGs bundled the compatibility library but not SDL3, causing Failed loading SDL3 library. at launch.

User impact

The macOS hotfix packages no longer have a hidden SDL3 runtime dependency. Windows and Linux runtime contents remain unchanged; their archives gain the complete SDL notices.

Validation

  • Pinned SDL2 and SDL2_net source archives verified by SHA-256.
  • Full arm64 application build passed.
  • wallpaper_core_tests passed.
  • CPack generated and mounted the v0.1.1 arm64 DMG.
  • Bundle architecture, dependency paths, and strict deep code signature passed.
  • Bundled SDL2 contains no SDL3 loader marker and SDL_Init(0) succeeds.
  • The actual v0.1.0 shim is rejected by the binary-safe package guard.
  • Independent Claude and Codex audits found no remaining blocker.

Summary by CodeRabbit

  • New Features

    • Added bundled licensing information for SDL2 and related multimedia components.
    • Improved macOS dependency setup with pinned, architecture-specific SDL libraries.
  • Bug Fixes

    • Strengthened release packaging checks to detect incompatible or externally linked libraries.
    • Improved macOS bundle validation and dependency handling.
  • Documentation

    • Expanded third-party notices and included required license texts in packaged releases.

@coderabbitai

coderabbitai Bot commented Jul 16, 2026

Copy link
Copy Markdown

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 5bf5608e-4f0b-43fb-ac0b-dcdeaa63db7e

📥 Commits

Reviewing files that changed from the base of the PR and between 1dbdf18 and 0c40496.

📒 Files selected for processing (8)
  • .github/actions/install-wallpaper-macos-sdl/action.yml
  • .github/workflows/build-and-release.yml
  • CMakeLists.txt
  • LICENSES/SDL2-HIDAPI-BSD.txt
  • LICENSES/SDL2-yuv2rgb.txt
  • LICENSES/SDL2.txt
  • LICENSES/SDL2_net.txt
  • NOTICE.md

📝 Walkthrough

Walkthrough

Adds a cacheable, checksum-verified macOS SDL2/SDL2_net installation action, integrates its prefix into CMake packaging, adds SDL2 license files, and strengthens Linux, macOS, and Windows artifact validation.

Changes

SDL2 packaging and verification

Layer / File(s) Summary
Pinned macOS SDL dependencies
.github/actions/install-wallpaper-macos-sdl/action.yml
Builds and installs pinned shared SDL2 and SDL2_net dependencies with checksum verification, cache validation, architecture settings, and deployment-target settings.
macOS bundle integration and validation
.github/workflows/build-and-release.yml, CMakeLists.txt
Uses the pinned SDL2 prefix for configuration, validates the dependency directory during bundle fixup, and checks macOS bundles for external links, architectures, SDL3 libraries, and compatibility shims.
License packaging and artifact checks
LICENSES/SDL2*.txt, CMakeLists.txt, NOTICE.md, .github/workflows/build-and-release.yml
Adds SDL2-related license texts, installs and documents them, and requires them in Linux, macOS, and Windows release artifacts.

Estimated code review effort: 4 (Complex) | ~45 minutes

Sequence Diagram(s)

sequenceDiagram
  participant BuildWorkflow
  participant InstallSDLAction
  participant CMake
  participant ArtifactChecks
  BuildWorkflow->>InstallSDLAction: install pinned SDL2 dependencies
  InstallSDLAction->>CMake: provide SDL2 and SDL2_net prefix
  CMake->>ArtifactChecks: package application and dependency licenses
  ArtifactChecks->>BuildWorkflow: validate libraries, links, architectures, and license files
Loading
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch agent/fix-macos-sdl-runtime

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@Cycl0o0
Cycl0o0 marked this pull request as ready for review July 16, 2026 18:03
@Cycl0o0
Cycl0o0 merged commit b55d1bb into main Jul 16, 2026
10 checks passed
@Cycl0o0
Cycl0o0 deleted the agent/fix-macos-sdl-runtime branch July 16, 2026 18:03
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