buildMozillaMach: fix vp8/vp9 WebRTC video support

The WebRTC parts of Firefox 122.0 are unconditionally linked against the
vendored libvpx that they ship with This lead to an ABI mismatch¹, when
building with --with-system-libvpx, since our libvpx version differs.

An upstream fix is expected to be shipped in Firefox 122.0.1, which is
due in the next few days.

[1] https://bugzilla.mozilla.org/show_bug.cgi?id=1875201#c11
This commit is contained in:
Martin Weinelt 2024-02-04 13:32:09 +01:00
parent 1be8478d00
commit 8e0ce57c63
No known key found for this signature in database
GPG Key ID: 87C1E9888F856759
2 changed files with 83 additions and 0 deletions

View File

@ -0,0 +1,80 @@
This patch is a rebase of https://bugzilla.mozilla.org/attachment.cgi?id=9377318
on top of Firefox 122.0.
Fixes: https://bugzilla.mozilla.org/show_bug.cgi?id=1875201
diff --git a/third_party/libwebrtc/modules/video_coding/webrtc_libvpx_interface_gn/moz.build b/third_party/libwebrtc/modules/video_coding/webrtc_libvpx_interface_gn/moz.build
index c5dabce8b0..e325905282 100644
--- a/third_party/libwebrtc/modules/video_coding/webrtc_libvpx_interface_gn/moz.build
+++ b/third_party/libwebrtc/modules/video_coding/webrtc_libvpx_interface_gn/moz.build
@@ -5,6 +5,8 @@
### This moz.build was AUTOMATICALLY GENERATED from a GN config, ###
### DO NOT edit it by hand. ###
+if not CONFIG["MOZ_SYSTEM_LIBVPX"]:
+ LOCAL_INCLUDES += [ "/media/libvpx/libvpx/" ]
COMPILE_FLAGS["OS_INCLUDES"] = []
AllowCompilerWarnings()
@@ -25,7 +27,6 @@ LOCAL_INCLUDES += [
"!/ipc/ipdl/_ipdlheaders",
"!/third_party/libwebrtc/gen",
"/ipc/chromium/src",
- "/media/libvpx/libvpx/",
"/third_party/libwebrtc/",
"/third_party/libwebrtc/third_party/abseil-cpp/",
"/tools/profiler/public"
diff --git a/third_party/libwebrtc/modules/video_coding/webrtc_vp8_gn/moz.build b/third_party/libwebrtc/modules/video_coding/webrtc_vp8_gn/moz.build
index 77a6b3870b..d515bc0595 100644
--- a/third_party/libwebrtc/modules/video_coding/webrtc_vp8_gn/moz.build
+++ b/third_party/libwebrtc/modules/video_coding/webrtc_vp8_gn/moz.build
@@ -5,6 +5,8 @@
### This moz.build was AUTOMATICALLY GENERATED from a GN config, ###
### DO NOT edit it by hand. ###
+if not CONFIG["MOZ_SYSTEM_LIBVPX"]:
+ LOCAL_INCLUDES += [ "/media/libvpx/libvpx/" ]
COMPILE_FLAGS["OS_INCLUDES"] = []
AllowCompilerWarnings()
@@ -25,7 +27,6 @@ LOCAL_INCLUDES += [
"!/ipc/ipdl/_ipdlheaders",
"!/third_party/libwebrtc/gen",
"/ipc/chromium/src",
- "/media/libvpx/libvpx/",
"/media/libyuv/",
"/media/libyuv/libyuv/include/",
"/third_party/libwebrtc/",
diff --git a/third_party/libwebrtc/modules/video_coding/webrtc_vp9_gn/moz.build b/third_party/libwebrtc/modules/video_coding/webrtc_vp9_gn/moz.build
index 4bece72807..5cc8d30e1a 100644
--- a/third_party/libwebrtc/modules/video_coding/webrtc_vp9_gn/moz.build
+++ b/third_party/libwebrtc/modules/video_coding/webrtc_vp9_gn/moz.build
@@ -5,6 +5,8 @@
### This moz.build was AUTOMATICALLY GENERATED from a GN config, ###
### DO NOT edit it by hand. ###
+if not CONFIG["MOZ_SYSTEM_LIBVPX"]:
+ LOCAL_INCLUDES += [ "/media/libvpx/libvpx/" ]
COMPILE_FLAGS["OS_INCLUDES"] = []
AllowCompilerWarnings()
@@ -25,7 +27,6 @@ LOCAL_INCLUDES += [
"!/ipc/ipdl/_ipdlheaders",
"!/third_party/libwebrtc/gen",
"/ipc/chromium/src",
- "/media/libvpx/libvpx/",
"/media/libyuv/",
"/media/libyuv/libyuv/include/",
"/third_party/libwebrtc/",
diff --git a/third_party/libwebrtc/moz.build b/third_party/libwebrtc/moz.build
index 7baea55b7e..86d4f0f288 100644
--- a/third_party/libwebrtc/moz.build
+++ b/third_party/libwebrtc/moz.build
@@ -436,7 +436,6 @@ DIRS += [
"/third_party/libwebrtc/third_party/abseil-cpp/absl/types/span_gn",
"/third_party/libwebrtc/third_party/abseil-cpp/absl/types/variant_gn",
"/third_party/libwebrtc/third_party/abseil-cpp/absl/utility/utility_gn",
- "/third_party/libwebrtc/third_party/libvpx/libvpx_gn",
"/third_party/libwebrtc/third_party/libyuv/libyuv_gn",
"/third_party/libwebrtc/third_party/pffft/pffft_gn",
"/third_party/libwebrtc/third_party/rnnoise/rnn_vad_gn",

View File

@ -245,6 +245,9 @@ buildStdenv.mkDerivation {
hash = "sha256-cWOyvjIPUU1tavPRqg61xJ53XE4EJTdsFzadfVxyTyM=";
})
]
++ lib.optionals (lib.versionAtLeast version "122" && lib.versionOlder version "122.0.1") [
./122.0-libvpx-mozbz1875201.patch
]
++ extraPatches;
postPatch = ''