servo/components
Mukilan Thiyagarajan 8cfb19a8fb 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.

Signed-off-by: Mukilan Thiyagarajan <me@mukilan.in>
2023-05-12 00:14:38 +05:30
..
allocator
atoms Implement GPUUncapturedErrorEvent 2020-08-11 14:24:58 +05:30
background_hang_monitor fix(bhm): deliver exit signal reliably (for real) 2021-06-21 00:07:26 +09:00
bluetooth feat: shorten thread names 2021-07-19 00:57:48 +09:00
bluetooth_traits Fix some Clippy lints. 2022-08-04 00:13:36 +08:00
canvas Bump surfman to 0.6 2023-02-24 19:00:57 +11:00
canvas_traits Bump euclid to 0.22 2023-01-26 08:59:21 +01:00
compositing Fix scrolling on root element 2023-05-05 12:42:02 +02:00
config Clean up debug options 2023-05-01 14:09:28 +02:00
config_plugins cargo-fix for 2021 2023-05-07 15:45:56 +02:00
constellation Make sender and receiver name more coherent 2023-05-08 09:23:10 +02:00
deny_public_fields
derive_common Upgrade remaining components to edition 2018 2023-02-18 09:42:37 +01:00
devtools Upgrade Hyper 2022-01-16 09:34:17 -08:00
devtools_traits Fix some Clippy lints. 2022-08-04 00:13:36 +08:00
dom_struct Upgrade remaining components to edition 2018 2023-02-18 09:42:37 +01:00
domobject_derive revert: Introduce Untransplantable trait to indicate transplantability at the type level 2023-03-23 18:06:17 +08:00
embedder_traits Move hit testing information out of WebRender 2023-03-15 12:25:29 +01:00
fallible Upgrade remaining components to edition 2018 2023-02-18 09:42:37 +01:00
geometry Bump euclid to 0.22 2023-01-26 08:59:21 +01:00
gfx Bump euclid to 0.22 2023-01-26 08:59:21 +01:00
gfx_traits Update webrender. 2020-06-11 14:07:39 -04:00
hashglobe cargo-fix for 2021 2023-05-07 15:45:56 +02:00
jstraceable_derive
layout Eliminate duplicate Layout DOM wrappers 2023-05-05 17:16:38 +02:00
layout_2020 Auto merge of #29677 - mrobinson:resolved-insets, r=delan 2023-05-09 12:09:51 +02:00
layout_thread Eliminate duplicate Layout DOM wrappers 2023-05-05 17:16:38 +02:00
layout_thread_2020 Eliminate duplicate Layout DOM wrappers 2023-05-05 17:16:38 +02:00
layout_traits Clean up arguments passed to and stored in LayoutThread 2023-05-01 14:10:05 +02:00
malloc_size_of Switch to the sha2 crate for SRI digests. 2023-02-24 18:38:06 -08:00
media Bump euclid to 0.22 2023-01-26 08:59:21 +01:00
metrics Remove support for energy profiling 2020-06-04 16:39:08 +02:00
msg Fix some Clippy lints. 2022-08-04 00:13:36 +08:00
net Make sender and receiver name more coherent 2023-05-08 09:23:10 +02:00
net_traits Fix return value of concept-header-list-get to Option<Vec<u8>> 2023-03-26 19:57:39 +09:00
pixels Bump euclid to 0.22 2023-01-26 08:59:21 +01:00
profile feat: shorten thread names 2021-07-19 00:57:48 +09:00
profile_traits Clean up debug options 2023-05-01 14:09:28 +02:00
rand Removed the commented code. 2022-12-01 18:27:59 +04:00
range More Cargo.toml updates 2020-05-30 18:18:57 -07:00
remutex Fix rust's remutex source code link 2020-06-01 21:24:05 +09:00
script Add value argument to URLSearchParams's has() and delete() 2023-05-11 08:34:17 +02:00
script_layout_interface Eliminate duplicate Layout DOM wrappers 2023-05-05 17:16:38 +02:00
script_plugins Upgrade remaining components to edition 2018 2023-02-18 09:42:37 +01:00
script_traits Clean up arguments passed to ScriptThread 2023-05-01 14:10:32 +02:00
selectors Auto merge of #29364 - delan:selectors-servo_arc, r=jdm 2023-02-20 16:53:35 +01:00
servo Consume official GStreamer binaries on MacOS 2023-05-12 00:14:38 +05:30
servo_arc Auto merge of #29364 - delan:selectors-servo_arc, r=jdm 2023-02-20 16:53:35 +01:00
size_of_test Upgrade remaining components to edition 2018 2023-02-18 09:42:37 +01:00
std_test_override Upgrade remaining components to edition 2018 2023-02-18 09:42:37 +01:00
style Don't go through app-units-ratio to convert absolute lengths 2023-05-06 02:02:07 +02:00
style_derive Upgrade remaining components to edition 2018 2023-02-18 09:42:37 +01:00
style_traits Upgrade remaining components to edition 2018 2023-02-18 09:42:37 +01:00
to_shmem Auto merge of #29364 - delan:selectors-servo_arc, r=jdm 2023-02-20 16:53:35 +01:00
to_shmem_derive Auto merge of #29364 - delan:selectors-servo_arc, r=jdm 2023-02-20 16:53:35 +01:00
url Fix some build warnings 2023-01-11 12:50:36 +01:00
webdriver_server Bump euclid to 0.22 2023-01-26 08:59:21 +01:00
webgpu Bump euclid to 0.22 2023-01-26 08:59:21 +01:00
webrender_surfman Bump surfman to 0.6 2023-02-24 19:00:57 +11:00
webrender_traits Bump euclid to 0.22 2023-01-26 08:59:21 +01:00