Skip to content

Avoid duplicate Swift symbols from apple-cf - #159

Merged
1313 merged 2 commits into
doom-fish:mainfrom
grishy:fix/core-media-bridge-symbols
Jul 18, 2026
Merged

Avoid duplicate Swift symbols from apple-cf#159
1313 merged 2 commits into
doom-fish:mainfrom
grishy:fix/core-media-bridge-symbols

Conversation

@grishy

@grishy grishy commented Jul 18, 2026

Copy link
Copy Markdown
Contributor

I encountered duplicate-symbol linker warnings while using screencapturekit with apple-cf after update on latest Rust 1.97.

Both crates build a Swift target named CoreMediaBridge and define AudioBufferBridge and AudioBufferListRaw. When a downstream binary pulls in both object files, their Swift metadata symbols collide. Rust 1.97 now exposes this linker output by default.

This PR renames screencapturekit's private target toScreenCaptureKitCoreMediaBridge, giving it a distinct Swift module namespace. The source path and all @_cdecl exports remain unchanged, so there is no Rust or C API change.

The second commit removes three redundant borrows reported by Rust 1.97 Clippy so the existing all-target CI check remains clean.

Used gpt5.6 sol model for it, but I keep only small changes to fix old bug and lint for latest Rust.

@grishy

grishy commented Jul 18, 2026

Copy link
Copy Markdown
Contributor Author

Hey @1313 again 😄
could you check when you have a free time as prev. time
Thanks!

@1313
1313 merged commit 4b7f75d into doom-fish:main Jul 18, 2026
9 checks passed
@1313 1313 mentioned this pull request Jul 18, 2026
injaneity added a commit to trycua/cua that referenced this pull request Sep 9, 2026
Update only screencapturekit from 6.0.1 to 8.0.1, the smallest published release containing the upstream private Swift module rename. Existing Cua capture and recording call sites compile unchanged; other locked dependencies are unchanged.

Salvaged from doom-fish/screencapturekit-rs#159 via its published 8.0.1 release. The upstream fix by grishy is reused rather than reimplemented or vendored.

Native red: fresh release build succeeded with 64 duplicate-symbol diagnostic lines; the regression check exited 1. Green: the identical fresh build check exits 0 with no duplicate symbols; unrelated rpath and dead-code warnings remain visible. All 365 platform unit tests pass, 2 ignored. Native capture/recording certification remains pending.

Co-authored-by: Sergei G. <13949080+grishy@users.noreply.github.com>
injaneity added a commit to trycua/cua that referenced this pull request Sep 10, 2026
* test(cua-driver): check real macos linker output for duplicate symbols

* fix(cua-driver): consume namespaced ScreenCaptureKit Swift bridge

Update only screencapturekit from 6.0.1 to 8.0.1, the smallest published release containing the upstream private Swift module rename. Existing Cua capture and recording call sites compile unchanged; other locked dependencies are unchanged.

Salvaged from doom-fish/screencapturekit-rs#159 via its published 8.0.1 release. The upstream fix by grishy is reused rather than reimplemented or vendored.

Native red: fresh release build succeeded with 64 duplicate-symbol diagnostic lines; the regression check exited 1. Green: the identical fresh build check exits 0 with no duplicate symbols; unrelated rpath and dead-code warnings remain visible. All 365 platform unit tests pass, 2 ignored. Native capture/recording certification remains pending.

Co-authored-by: Sergei G. <13949080+grishy@users.noreply.github.com>

* ci(cua-driver): gate native macos duplicate-symbol diagnostics

---------

Co-authored-by: Sergei G. <13949080+grishy@users.noreply.github.com>
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