diff options
author | bors-servo <infra@servo.org> | 2023-05-12 08:15:52 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-05-12 08:15:52 +0200 |
commit | d798376d7ce218ccf45b49073e104c0eb80dd470 (patch) | |
tree | 25ae36eb5ea248e6052e173a56d8199300e41bf5 /components/script/dom/xrwebglbinding.rs | |
parent | 03574d81917086a36f9235e5a8f87bdc277d3442 (diff) | |
parent | 8cfb19a8fba80a809af028223dd3a58d38123d02 (diff) | |
download | servo-d798376d7ce218ccf45b49073e104c0eb80dd470.tar.gz servo-d798376d7ce218ccf45b49073e104c0eb80dd470.zip |
Auto merge of #29731 - mukilan:consumer-offical-gstreamer-for-macos, r=mrobinson
Consume official GStreamer binaries on MacOS
This PR re-enables support for the gstreamer mediastack in macOS by consuming the official binary '.pkg' files from gstreamer.freedesktop.org
To maintain symmetry with other platforms, the '.pkg' files are uploaded to servo-build-deps and fetched from there using the new script 'etc/install_macos_gstreamer.sh'.
Unlike the Homebrew version, the official GStreamer is distributed as a 'relocatable' framework i.e the dylibs all have @rpath-relative install names and also link to other dylibs using @rpath relative path. To address this difference the 'servo' binary needs to be patched with 'install_name_tool' to add an LC_RPATH command that sets the relative paths that the dynamic linker should search when trying to satify dependencies. In Servo's case, this will be a path relative to the 'servo' binary itself i.e '@executable_path/lib/'
The additional 'lib' is due to a flaw in the gstreamer packaging where the install names of some of the dylibs have the prefix '@rpath/lib' and some of them just have '@rpath'.
This PR also fixes a couple of issues present in the `mach build` process on MacOS:
1. `mach build` process was not copying transitive dependencies of servo binary but only the first level dylibs
2. `mach build` process didn't patch the links to dylibs in servo binary (and dependencies). This meant though (some) dylibs were copied to local path, the binary still loaded the dylibs from system GStreamer installation i.e homebrew instead of the copieds dylibs
The build and runtime dependencies in etc/homebrew/Brewfile and etc/homebrew/Brewfile-build have also been removed in This PR.
<!-- Please describe your changes on the following line: -->
---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `___` with appropriate data: -->
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix #29653 me
<!-- Either: -->
- [ ] There are tests for these changes OR
- [X] These changes do not require tests because they broken build and package process.
<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->
<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->
Diffstat (limited to 'components/script/dom/xrwebglbinding.rs')
0 files changed, 0 insertions, 0 deletions