servo/etc
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
..
ci Don't report test results for closed PRs 2023-05-05 08:41:01 +02:00
doc.servo.org Update MPL license to https (part 1) 2018-11-19 14:46:43 +01:00
homebrew Consume official GStreamer binaries on MacOS 2023-05-12 00:14:38 +05:30
layout_viewer [Layout 2020] Adapt layout viewer to new box and fragment tree structs 2020-05-19 09:31:24 +02:00
cert_generator.js Update cert-generator and certs 2017-03-14 08:01:54 -07:00
cert_generator.sh Apply format change to cert_generator.sh 2019-05-08 19:24:32 +02:00
crates-graph.py Add a minimal alternative to cargo graph 2020-04-21 10:54:21 +02:00
install_macos_gstreamer.sh Consume official GStreamer binaries on MacOS 2023-05-12 00:14:38 +05:30
jsdefine Use #!/usr/bin/env bash in shell scripts for NixOS compatibility 2021-06-14 22:06:09 +09:00
memory_chart.html Add tool to chart memory usage from reports. 2018-03-08 22:46:42 -05:00
memory_reports_over_time.py Port some code to Python3 2021-02-18 09:35:46 -05:00
patch-trace-template.py profile: Integrate the time profiler with the macOS signpost 2016-10-01 00:12:49 -07:00
profilicate.py Add a sampling profiler and a script to generate profiles for use with Gecko tooling. 2019-03-26 16:35:08 -04:00
run_in_headless_android_emulator.py com.mozilla to org.mozilla 2018-10-02 08:09:35 +02:00
rustdoc-style.html Cargoify servo 2014-09-08 20:21:42 -06:00
rustdoc-with-private Use #!/usr/bin/env bash in shell scripts for NixOS compatibility 2021-06-14 22:06:09 +09:00
servo.sb Cargoify servo 2014-09-08 20:21:42 -06:00
servo_automation_screenshot.py Fix remaining flake8 warnings 2020-06-21 03:34:32 +02:00
servo_gdb.py Fix remaining flake8 warnings 2020-06-21 03:34:32 +02:00
shell.nix Update shell.nix 2023-04-09 23:35:17 +03:00
start_servo.py Update getopts 2018-08-24 17:49:58 +02:00
unused_wpt_results.py Add script to find unused WPT results. 2019-09-25 12:38:00 -04:00
valgrind-memcheck.supp Add a valgrind suppression file. 2015-12-17 10:36:03 -06:00
wpt-summarize.py Fix remaining flake8 warnings 2020-06-21 03:34:32 +02:00
wpt-timing.py Fix remaining flake8 warnings 2020-06-21 03:34:32 +02:00
wpt_result_analyzer.py Add explanatory comment for wpt_result_analyzer.py. 2019-11-22 13:23:43 -05:00