git: 12434f9d5dfb - main - www/firefox-esr: update to 115.3.0

From: Christoph Moench-Tegeder <cmt_at_FreeBSD.org>
Date: Mon, 18 Sep 2023 20:10:40 UTC
The branch main has been updated by cmt:

URL: https://cgit.FreeBSD.org/ports/commit/?id=12434f9d5dfb6fca8fec491661f3ff2738cd167b

commit 12434f9d5dfb6fca8fec491661f3ff2738cd167b
Author:     Christoph Moench-Tegeder <cmt@FreeBSD.org>
AuthorDate: 2023-09-18 20:10:07 +0000
Commit:     Christoph Moench-Tegeder <cmt@FreeBSD.org>
CommitDate: 2023-09-18 20:10:07 +0000

    www/firefox-esr: update to 115.3.0
    
    Release Notes (soon):
      https://www.mozilla.org/en-US/firefox/115.3.0/releasenotes/
---
 www/firefox-esr/Makefile                           |    18 +-
 www/firefox-esr/distinfo                           |     6 +-
 www/firefox-esr/files/patch-addon-search           |    34 +-
 www/firefox-esr/files/patch-bug1427152             |    10 +
 www/firefox-esr/files/patch-bug1504834_comment5    |    73 +-
 www/firefox-esr/files/patch-bug1504834_comment9    |    49 -
 www/firefox-esr/files/patch-bug1559213             |    39 +-
 www/firefox-esr/files/patch-bug1640982             |    15 -
 www/firefox-esr/files/patch-bug1659612             |    22 +-
 www/firefox-esr/files/patch-bug1729459_comment12   |    93 -
 www/firefox-esr/files/patch-bug847568              |    10 +-
 .../files/patch-gfx_skia_skia_src_base_SkEndian.h  |    11 +
 ...patch-gfx_skia_skia_src_core_SkRasterPipeline.h |    11 +
 .../files/patch-i386-protobuf-alignment            |    15 +
 www/firefox-esr/files/patch-js_public_Utility.h    |    35 +
 www/firefox-esr/files/patch-libwebrtc-generated    | 50556 ++++++++++++++-----
 .../files/patch-modules_fdlibm_src_math__private.h |    27 +
 www/firefox-esr/files/patch-pipewire_init          |    67 +-
 ...patch-python_mozbuild_mozbuild_gn__processor.py |    48 +
 ...rd__party_libwebrtc_build_config_BUILDCONFIG.gn |    31 +-
 ...third__party_libwebrtc_rtc__base_ip__address.cc |    23 +
 .../files/patch-toolkit_xre_glxtest.cpp            |    17 +
 22 files changed, 38460 insertions(+), 12750 deletions(-)

diff --git a/www/firefox-esr/Makefile b/www/firefox-esr/Makefile
index 415fa4fcf096..9f88f360f1d3 100644
--- a/www/firefox-esr/Makefile
+++ b/www/firefox-esr/Makefile
@@ -1,9 +1,9 @@
 PORTNAME=	firefox
-DISTVERSION=	102.15.1
+DISTVERSION=	115.3.0
 PORTEPOCH=	1
 CATEGORIES=	www wayland
 MASTER_SITES=	MOZILLA/${PORTNAME}/releases/${DISTVERSION}esr/source \
-		MOZILLA/${PORTNAME}/candidates/${DISTVERSION}esr-candidates/build2/source
+		MOZILLA/${PORTNAME}/candidates/${DISTVERSION}esr-candidates/build1/source
 PKGNAMESUFFIX=	-esr
 DISTFILES=	${DISTNAME}esr.source${EXTRACT_SUFX}
 
@@ -12,14 +12,14 @@ COMMENT=	Web browser based on the browser portion of Mozilla
 WWW=		https://www.mozilla.com/firefox
 
 BUILD_DEPENDS=	nspr>=4.32:devel/nspr \
-		nss>=3.79.1:security/nss \
-		icu>=71.1,1:devel/icu \
+		nss>=3.90:security/nss \
+		icu>=73.1,1:devel/icu \
 		libevent>=2.1.8:devel/libevent \
-		harfbuzz>=4.1.0:print/harfbuzz \
+		harfbuzz>=7.3.0:print/harfbuzz \
 		graphite2>=1.3.14:graphics/graphite2 \
-		png>=1.6.37:graphics/png \
+		png>=1.6.39:graphics/png \
 		dav1d>=1.0.0:multimedia/dav1d \
-		libvpx>=1.11.0:multimedia/libvpx \
+		libvpx>=1.13.0:multimedia/libvpx \
 		${PYTHON_PKGNAMEPREFIX}sqlite3>0:databases/py-sqlite3@${PY_FLAVOR} \
 		v4l_compat>0:multimedia/v4l_compat \
 		autoconf2.13:devel/autoconf2.13 \
@@ -62,10 +62,6 @@ post-patch:
 	@${REINPLACE_CMD} -e 's|%%LOCALBASE%%|${LOCALBASE}|g' \
 		${WRKSRC}/browser/app/nsBrowserApp.cpp
 
-pre-configure:
-	(cd ${WRKSRC} && ${LOCALBASE}/bin/autoconf2.13)
-	(cd ${WRKSRC}/js/src/ && ${LOCALBASE}/bin/autoconf2.13)
-
 post-install:
 	${INSTALL_DATA} ${FIREFOX_DESKTOP} ${STAGEDIR}${PREFIX}/share/applications/
 	${MKDIR} ${STAGEDIR}${PREFIX}/share/pixmaps
diff --git a/www/firefox-esr/distinfo b/www/firefox-esr/distinfo
index 3ae1da28debd..835b06c68bc5 100644
--- a/www/firefox-esr/distinfo
+++ b/www/firefox-esr/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1694536278
-SHA256 (firefox-102.15.1esr.source.tar.xz) = 09194fb765953bc6979a35aa8834118c453b9d6060bf1ec4e134551bad740113
-SIZE (firefox-102.15.1esr.source.tar.xz) = 483198220
+TIMESTAMP = 1695064384
+SHA256 (firefox-115.3.0esr.source.tar.xz) = 8a1dc50b3d81df3b8ee8ef191551a355c9b139f09688a3fb61234b2f6d7670ca
+SIZE (firefox-115.3.0esr.source.tar.xz) = 510157064
diff --git a/www/firefox-esr/files/patch-addon-search b/www/firefox-esr/files/patch-addon-search
index f04e5599bbe7..b6dbf7924b43 100644
--- a/www/firefox-esr/files/patch-addon-search
+++ b/www/firefox-esr/files/patch-addon-search
@@ -2,10 +2,10 @@ https://github.com/mozilla/addons/issues/708
 https://github.com/mozilla/addons-frontend/issues/4610
 
 diff --git browser/app/profile/firefox.js browser/app/profile/firefox.js
-index 75c2c5e435e35..4d8c09c02759b 100644
---- browser/app/profile/firefox.js.orig	2021-11-02 16:33:38.105280000 +0100
-+++ browser/app/profile/firefox.js	2021-11-02 16:37:53.792644000 +0100
-@@ -39,7 +39,7 @@
+index 621900f90fc1..401ef9074bd0 100644
+--- browser/app/profile/firefox.js
++++ browser/app/profile/firefox.js
+@@ -38,7 +38,7 @@ pref("extensions.postDownloadThirdPartyPrompt", true);
  // Preferences for AMO integration
  pref("extensions.getAddons.cache.enabled", true);
  pref("extensions.getAddons.get.url", "https://services.addons.mozilla.org/api/v4/addons/search/?guid=%IDS%&lang=%LOCALE%");
@@ -14,7 +14,7 @@ index 75c2c5e435e35..4d8c09c02759b 100644
  pref("extensions.getAddons.link.url", "https://addons.mozilla.org/%LOCALE%/firefox/");
  pref("extensions.getAddons.langpacks.url", "https://services.addons.mozilla.org/api/v4/addons/language-tools/?app=firefox&type=language&appversion=%VERSION%");
  pref("extensions.getAddons.discovery.api_url", "https://services.addons.mozilla.org/api/v4/discovery/?lang=%LOCALE%&edition=%DISTRIBUTION%");
-@@ -206,8 +206,8 @@
+@@ -204,8 +204,8 @@ pref("app.update.langpack.enabled", true);
  //  .. etc ..
  //
  pref("extensions.update.enabled", true);
@@ -25,24 +25,24 @@ index 75c2c5e435e35..4d8c09c02759b 100644
  pref("extensions.update.interval", 86400);  // Check for updates to Extensions and
                                              // Themes every day
  
-diff --git toolkit/mozapps/extensions/internal/AddonRepository.jsm toolkit/mozapps/extensions/internal/AddonRepository.jsm
-index f70fd8d7e3bd8..81e8cd7764fdf 100644
---- toolkit/mozapps/extensions/internal/AddonRepository.jsm.orig	2021-11-02 16:38:22.800491000 +0100
-+++ toolkit/mozapps/extensions/internal/AddonRepository.jsm	2021-11-02 16:39:24.255593000 +0100
-@@ -584,7 +584,7 @@
+diff --git toolkit/mozapps/extensions/internal/AddonRepository.sys.mjs toolkit/mozapps/extensions/internal/AddonRepository.sys.mjs
+index f906f244b658..7bb2eb6697c6 100644
+--- toolkit/mozapps/extensions/internal/AddonRepository.sys.mjs
++++ toolkit/mozapps/extensions/internal/AddonRepository.sys.mjs
+@@ -596,7 +596,7 @@ export var AddonRepository = {
        addon.version = String(aEntry.current_version.version);
        if (Array.isArray(aEntry.current_version.files)) {
          for (let file of aEntry.current_version.files) {
--          if (file.platform == "all" || file.platform == PLATFORM) {
-+          if (file.platform == "all" || file.platform == "linux" || file.platform == PLATFORM) {
+-          if (file.platform == "all" || file.platform == lazy.PLATFORM) {
++          if (file.platform == "all" || file.platform == "linux" || file.platform == lazy.PLATFORM) {
              if (file.url) {
-               addon.sourceURI = NetUtil.newURI(file.url);
+               addon.sourceURI = lazy.NetUtil.newURI(file.url);
              }
 diff --git toolkit/mozapps/extensions/internal/XPIDatabase.jsm toolkit/mozapps/extensions/internal/XPIDatabase.jsm
-index f70fd8d7e3bd8..81e8cd7764fdf 100644
---- toolkit/mozapps/extensions/internal/XPIDatabase.jsm.orig	2021-11-02 16:39:45.832056000 +0100
-+++ toolkit/mozapps/extensions/internal/XPIDatabase.jsm	2021-11-02 16:40:38.136056000 +0100
-@@ -483,7 +483,7 @@
+index 03186dad43a4..4053fc6f2702 100644
+--- toolkit/mozapps/extensions/internal/XPIDatabase.jsm
++++ toolkit/mozapps/extensions/internal/XPIDatabase.jsm
+@@ -634,7 +634,7 @@ class AddonInternal {
      // Something is causing errors in here
      try {
        for (let platform of this.targetPlatforms) {
diff --git a/www/firefox-esr/files/patch-bug1427152 b/www/firefox-esr/files/patch-bug1427152
new file mode 100644
index 000000000000..49bd5a581ac8
--- /dev/null
+++ b/www/firefox-esr/files/patch-bug1427152
@@ -0,0 +1,10 @@
+--- modules/libpref/Preferences.cpp.orig	2023-05-11 21:42:41 UTC
++++ modules/libpref/Preferences.cpp
+@@ -6126,6 +6126,7 @@ static const PrefListEntry sDynamicPrefOverrideList[]{
+     PREF_LIST_ENTRY("logging.config.LOG_FILE"),
+     PREF_LIST_ENTRY("media.audio_loopback_dev"),
+     PREF_LIST_ENTRY("media.decoder-doctor."),
++    PREF_LIST_ENTRY("media.cubeb.backend"),
+     PREF_LIST_ENTRY("media.cubeb.output_device"),
+     PREF_LIST_ENTRY("media.getusermedia.fake-camera-name"),
+     PREF_LIST_ENTRY("media.hls.server.url"),
diff --git a/www/firefox-esr/files/patch-bug1504834_comment5 b/www/firefox-esr/files/patch-bug1504834_comment5
index db2663ccfb34..b9897e0b7f66 100644
--- a/www/firefox-esr/files/patch-bug1504834_comment5
+++ b/www/firefox-esr/files/patch-bug1504834_comment5
@@ -3,9 +3,42 @@ https://bugzilla.mozilla.org/attachment.cgi?id=9028600
 Rough progress patch
 
 
-diff -r 53107afbc21e gfx/skia/skia/third_party/skcms/skcms.cc
---- gfx/skia/skia/third_party/skcms/skcms.cc	Wed Nov 07 04:50:21 2018 +0000
-+++ gfx/skia/skia/third_party/skcms/skcms.cc	Thu Nov 29 12:49:35 2018 +0000
+diff --git gfx/2d/DrawTargetSkia.cpp gfx/2d/DrawTargetSkia.cpp
+index 6bbef8d..82b04ba 100644
+--- gfx/2d/DrawTargetSkia.cpp
++++ gfx/2d/DrawTargetSkia.cpp
+@@ -154,8 +154,7 @@ static IntRect CalculateSurfaceBounds(const IntSize& aSize, const Rect* aBounds,
+   return surfaceBounds.Intersect(bounds);
+ }
+ 
+-static const int kARGBAlphaOffset =
+-    SurfaceFormat::A8R8G8B8_UINT32 == SurfaceFormat::B8G8R8A8 ? 3 : 0;
++static const int kARGBAlphaOffset = 0;
+ 
+ static bool VerifyRGBXFormat(uint8_t* aData, const IntSize& aSize,
+                              const int32_t aStride, SurfaceFormat aFormat) {
+diff --git gfx/2d/Types.h gfx/2d/Types.h
+index 6b3bdc7..7c6c342 100644
+--- gfx/2d/Types.h
++++ gfx/2d/Types.h
+@@ -90,15 +90,8 @@ enum class SurfaceFormat : int8_t {
+ // The following values are endian-independent synonyms. The _UINT32 suffix
+ // indicates that the name reflects the layout when viewed as a uint32_t
+ // value.
+-#if MOZ_LITTLE_ENDIAN()
+   A8R8G8B8_UINT32 = B8G8R8A8,  // 0xAARRGGBB
+   X8R8G8B8_UINT32 = B8G8R8X8,  // 0x00RRGGBB
+-#elif MOZ_BIG_ENDIAN()
+-  A8R8G8B8_UINT32 = A8R8G8B8,  // 0xAARRGGBB
+-  X8R8G8B8_UINT32 = X8R8G8B8,  // 0x00RRGGBB
+-#else
+-#  error "bad endianness"
+-#endif
+ 
+   // The following values are OS and endian-independent synonyms.
+   //
+--- gfx/skia/skia/modules/skcms/skcms.cc.orig
++++ gfx/skia/skia/modules/skcms/skcms.cc
 @@ -30,6 +30,8 @@
          #include <avx512fintrin.h>
          #include <avx512dqintrin.h>
@@ -14,8 +47,8 @@ diff -r 53107afbc21e gfx/skia/skia/third_party/skcms/skcms.cc
 +    #define SKCMS_PORTABLE
  #endif
  
- // sizeof(x) will return size_t, which is 32-bit on some machines and 64-bit on others.
-@@ -280,20 +282,28 @@ enum {
+ static bool runtime_cpu_detection = true;
+@@ -324,20 +326,28 @@
  static uint16_t read_big_u16(const uint8_t* ptr) {
      uint16_t be;
      memcpy(&be, ptr, sizeof(be));
@@ -48,33 +81,3 @@ diff -r 53107afbc21e gfx/skia/skia/third_party/skcms/skcms.cc
  #endif
  }
  
---- gfx/2d/DrawTargetSkia.cpp.orig	2019-09-21 15:51:04.129603000 +0200
-+++ gfx/2d/DrawTargetSkia.cpp	2019-09-21 15:52:11.900316000 +0200
-@@ -138,8 +138,7 @@ static IntRect CalculateSurfaceBounds(const IntSize& a
-   return surfaceBounds.Intersect(bounds);
- }
- 
--static const int kARGBAlphaOffset =
--    SurfaceFormat::A8R8G8B8_UINT32 == SurfaceFormat::B8G8R8A8 ? 3 : 0;
-+static const int kARGBAlphaOffset = 0;
- 
- static bool VerifyRGBXFormat(uint8_t* aData, const IntSize& aSize,
-                              const int32_t aStride, SurfaceFormat aFormat) {
---- gfx/2d/Types.h.orig	2019-09-21 15:52:47.044803000 +0200
-+++ gfx/2d/Types.h	2019-09-21 15:53:40.113641000 +0200
-@@ -87,15 +87,8 @@ enum class SurfaceFormat : int8_t {
- // The following values are endian-independent synonyms. The _UINT32 suffix
- // indicates that the name reflects the layout when viewed as a uint32_t
- // value.
--#if MOZ_LITTLE_ENDIAN()
-   A8R8G8B8_UINT32 = B8G8R8A8,  // 0xAARRGGBB
-   X8R8G8B8_UINT32 = B8G8R8X8,  // 0x00RRGGBB
--#elif MOZ_BIG_ENDIAN()
--  A8R8G8B8_UINT32 = A8R8G8B8,  // 0xAARRGGBB
--  X8R8G8B8_UINT32 = X8R8G8B8,  // 0x00RRGGBB
--#else
--#  error "bad endianness"
--#endif
- 
-   // The following values are OS and endian-independent synonyms.
-   //
diff --git a/www/firefox-esr/files/patch-bug1504834_comment9 b/www/firefox-esr/files/patch-bug1504834_comment9
deleted file mode 100644
index c3d149ffa37b..000000000000
--- a/www/firefox-esr/files/patch-bug1504834_comment9
+++ /dev/null
@@ -1,49 +0,0 @@
-https://bugzilla.mozilla.org/show_bug.cgi?id=1504834#c9
-https://bugzilla.mozilla.org/attachment.cgi?id=9111146
-mozilla-bmo1504834-part3.patch
-
-
-# HG changeset patch
-# Parent  aecb4600e5da17443b224c79eee178c1d8e155e3
-For FF68, AntiAliasing of XULTexts seem to be broken on big endian (s390x). Text and icons of the sandwich-menu to the
-right of the address bar, as well as plugin-windows appears transparant, which usually means unreadable (white on white).
-
-diff -r aecb4600e5da gfx/skia/skia/include/private/SkNx.h
---- gfx/skia/skia/include/private/SkNx.h	Tue Aug 20 09:46:55 2019 +0200
-+++ gfx/skia/skia/include/private/SkNx.h	Mon Sep 09 10:04:06 2019 +0200
-@@ -238,7 +238,18 @@
-     AI SkNx operator*(const SkNx& y) const { return fVal * y.fVal; }
-     AI SkNx operator/(const SkNx& y) const { return fVal / y.fVal; }
- 
-+    // On Big endian the commented out variant doesn't work,
-+    // and honestly, I have no idea why it exists in the first place.
-+    // The reason its broken is, I think, that it defaults to the double-variant of ToBits()
-+    // which gets a 64-bit integer, and FromBits returns 32-bit,
-+    // cutting off the wrong half again.
-+    // Overall, I see no reason to have ToBits and FromBits at all (even for floats/doubles).
-+    // Still we are only "fixing" this for big endian and leave little endian alone (never touch a running system)
-+#ifdef SK_CPU_BENDIAN
-+    AI SkNx operator&(const SkNx& y) const { return fVal & y.fVal; }
-+#else
-     AI SkNx operator&(const SkNx& y) const { return FromBits(ToBits(fVal) & ToBits(y.fVal)); }
-+#endif
-     AI SkNx operator|(const SkNx& y) const { return FromBits(ToBits(fVal) | ToBits(y.fVal)); }
-     AI SkNx operator^(const SkNx& y) const { return FromBits(ToBits(fVal) ^ ToBits(y.fVal)); }
- 
-diff -r aecb4600e5da gfx/skia/skia/src/opts/SkBlitMask_opts.h
---- gfx/skia/skia/src/opts/SkBlitMask_opts.h	Tue Aug 20 09:46:55 2019 +0200
-+++ gfx/skia/skia/src/opts/SkBlitMask_opts.h	Mon Sep 09 10:04:06 2019 +0200
-@@ -203,7 +203,13 @@
-             //   ~~~>
-             // a = 1*aa + d(1-1*aa) = aa + d(1-aa)
-             // c = 0*aa + d(1-1*aa) =      d(1-aa)
-+
-+            // For big endian we have to swap the alpha-mask from 0,0,0,255 to 255,0,0,0
-+#ifdef SK_CPU_BENDIAN
-+            return Sk4px(Sk16b(aa) & Sk16b(255,0,0,0, 255,0,0,0, 255,0,0,0, 255,0,0,0))
-+#else
-             return Sk4px(Sk16b(aa) & Sk16b(0,0,0,255, 0,0,0,255, 0,0,0,255, 0,0,0,255))
-+#endif
-                  + d.approxMulDiv255(aa.inv());
-         };
-         while (h --> 0) {
diff --git a/www/firefox-esr/files/patch-bug1559213 b/www/firefox-esr/files/patch-bug1559213
index 09b4dcc58e83..49bbb0fb05ff 100644
--- a/www/firefox-esr/files/patch-bug1559213
+++ b/www/firefox-esr/files/patch-bug1559213
@@ -63,26 +63,27 @@ index 8509aec..eb6f129 100644
      EXPORTS += [
 diff --git media/ffvpx/libavcodec/moz.build media/ffvpx/libavcodec/moz.build
 index 0069865..e806fc8 100644
---- media/ffvpx/libavcodec/moz.build
+--- media/ffvpx/libavcodec/moz.build.orig
 +++ media/ffvpx/libavcodec/moz.build
-@@ -112,9 +112,15 @@ if not CONFIG['MOZ_FFVPX_AUDIOONLY']:
-             'vaapi_vp8.c',
-             'vaapi_vp9.c',
-         ]
-+        if CONFIG["MOZ_SYSTEM_AV1"]:
-+          CFLAGS += CONFIG['MOZ_SYSTEM_LIBDAV1D_CFLAGS']
-+          OS_LIBS += CONFIG['MOZ_SYSTEM_LIBDAV1D_LIBS']
-+        else:
-+          USE_LIBS += [
-+            'dav1d',
-+            'media_libdav1d_asm',
-+          ]
-         USE_LIBS += [
--          'dav1d',
--          'media_libdav1d_asm',
-           'mozva'
-         ]
- 
+@@ -108,10 +108,14 @@
+         'vp9prob.c',
+         'vp9recon.c'
+     ]
+-    USE_LIBS += [
+-        'dav1d',
+-        'media_libdav1d_asm',
+-    ]
++    if CONFIG["MOZ_SYSTEM_AV1"]:
++      CFLAGS += CONFIG['MOZ_SYSTEM_LIBDAV1D_CFLAGS']
++      OS_LIBS += CONFIG['MOZ_SYSTEM_LIBDAV1D_LIBS']
++    else:
++      USE_LIBS += [
++          'dav1d',
++          'media_libdav1d_asm',
++      ]
+     if CONFIG['MOZ_WAYLAND']:
+         LOCAL_INCLUDES += ['/media/mozva']
+         SOURCES += [
 diff --git toolkit/moz.configure toolkit/moz.configure
 index 0069865..e806fc8 100644
 --- toolkit/moz.configure
diff --git a/www/firefox-esr/files/patch-bug1640982 b/www/firefox-esr/files/patch-bug1640982
deleted file mode 100644
index dae6ca5fa7b5..000000000000
--- a/www/firefox-esr/files/patch-bug1640982
+++ /dev/null
@@ -1,15 +0,0 @@
-Unbreak build with Rust 1.45.0
-
-error: options `-C embed-bitcode=no` and `-C lto` are incompatible
-
---- config/makefiles/rust.mk.orig	2020-05-12 09:36:22 UTC
-+++ config/makefiles/rust.mk
-@@ -61,7 +61,7 @@ ifndef MOZ_DEBUG_RUST
- # Enable link-time optimization for release builds, but not when linking
- # gkrust_gtest.
- ifeq (,$(findstring gkrust_gtest,$(RUST_LIBRARY_FILE)))
--cargo_rustc_flags += -Clto
-+cargo_rustc_flags += 
- endif
- endif
- endif
diff --git a/www/firefox-esr/files/patch-bug1659612 b/www/firefox-esr/files/patch-bug1659612
index dce125b883d2..a7aea97734a0 100644
--- a/www/firefox-esr/files/patch-bug1659612
+++ b/www/firefox-esr/files/patch-bug1659612
@@ -20,16 +20,22 @@ media/libcubeb/src/cubeb_alsa.c:1168:3: note: include the header <stdlib.h> or e
                                                         ^
 2 errors generated.
 
---- media/libcubeb/src/cubeb_alsa.c.orig	2021-08-31 14:26:24.530548000 +0200
-+++ media/libcubeb/src/cubeb_alsa.c	2021-08-31 14:26:43.081470000 +0200
-@@ -5,9 +5,7 @@
+--- media/libcubeb/src/cubeb_alsa.c.orig	2023-03-29 20:51:00.139281000 +0200
++++ media/libcubeb/src/cubeb_alsa.c	2023-03-29 20:51:46.219013000 +0200
+@@ -5,12 +5,16 @@
   * accompanying file LICENSE for details.
   */
  #undef NDEBUG
--#define _DEFAULT_SOURCE
--#define _BSD_SOURCE
--#define _XOPEN_SOURCE 500
-+#define _GNU_SOURCE 1
++#if defined(__FreeBSD__)
++#define _GNU_SOURCE
++#else
+ #define _DEFAULT_SOURCE
+ #define _BSD_SOURCE
+ #if defined(__NetBSD__)
+ #define _NETBSD_SOURCE /* timersub() */
+ #endif
+ #define _XOPEN_SOURCE 500
++#endif
  #include "cubeb-internal.h"
  #include "cubeb/cubeb.h"
- #include <alsa/asoundlib.h>
+ #include "cubeb_tracing.h"
diff --git a/www/firefox-esr/files/patch-bug1729459_comment12 b/www/firefox-esr/files/patch-bug1729459_comment12
deleted file mode 100644
index dda42170f71b..000000000000
--- a/www/firefox-esr/files/patch-bug1729459_comment12
+++ /dev/null
@@ -1,93 +0,0 @@
---- modules/fdlibm/src/math_private.h.orig	2021-09-30 19:32:33.764224000 +0200
-+++ modules/fdlibm/src/math_private.h	2021-10-02 22:15:33.265122000 +0200
-@@ -30,7 +30,11 @@
-  * Adapted from https://github.com/freebsd/freebsd-src/search?q=__double_t
-  */
- 
--typedef double      __double_t;
-+#ifdef __LP64__
-+typedef double __double_t;
-+#else
-+typedef long double __double_t;
-+#endif
- typedef __double_t  double_t;
- 
- /*
-@@ -630,7 +634,37 @@
- 	return ((double)(x + 0x1.8p52) - 0x1.8p52);
- }
- 
-+static inline float
-+rnintf(__float_t x)
-+{
-+	/*
-+	 * As for rnint(), except we could just call that to handle the
-+	 * extra precision case, usually without losing efficiency.
-+	 */
-+	return ((float)(x + 0x1.8p23F) - 0x1.8p23F);
-+}
-+
-+#ifdef LDBL_MANT_DIG
- /*
-+ * The complications for extra precision are smaller for rnintl() since it
-+ * can safely assume that the rounding precision has been increased from
-+ * its default to FP_PE on x86.  We don't exploit that here to get small
-+ * optimizations from limiting the rangle to double.  We just need it for
-+ * the magic number to work with long doubles.  ld128 callers should use
-+ * rnint() instead of this if possible.  ld80 callers should prefer
-+ * rnintl() since for amd64 this avoids swapping the register set, while
-+ * for i386 it makes no difference (assuming FP_PE), and for other arches
-+ * it makes little difference.
-+ */
-+static inline long double
-+rnintl(long double x)
-+{
-+	return (x + __CONCAT(0x1.8p, LDBL_MANT_DIG) / 2 -
-+		__CONCAT(0x1.8p, LDBL_MANT_DIG) / 2);
-+}
-+#endif /* LDBL_MANT_DIG */
-+
-+/*
-  * irint() and i64rint() give the same result as casting to their integer
-  * return type provided their arg is a floating point integer.  They can
-  * sometimes be more efficient because no rounding is required.
-@@ -644,6 +678,39 @@
-     sizeof(x) == sizeof(long double) ? irintl(x) : (int)(x))
- #else
- #define	irint(x)	((int)(x))
-+#endif
-+
-+#define	i64rint(x)	((int64_t)(x))	/* only needed for ld128 so not opt. */
-+
-+#if defined(__i386__) && defined(__GNUCLIKE_ASM)
-+static __inline int
-+irintf(float x)
-+{
-+	int n;
-+
-+	__asm("fistl %0" : "=m" (n) : "t" (x));
-+	return (n);
-+}
-+
-+static __inline int
-+irintd(double x)
-+{
-+	int n;
-+
-+	__asm("fistl %0" : "=m" (n) : "t" (x));
-+	return (n);
-+}
-+#endif
-+
-+#if (defined(__amd64__) || defined(__i386__)) && defined(__GNUCLIKE_ASM)
-+static __inline int
-+irintl(long double x)
-+{
-+	int n;
-+
-+	__asm("fistl %0" : "=m" (n) : "t" (x));
-+	return (n);
-+}
- #endif
- 
- #ifdef DEBUG
diff --git a/www/firefox-esr/files/patch-bug847568 b/www/firefox-esr/files/patch-bug847568
index 3161dbb88d08..2b3c5e14e99e 100644
--- a/www/firefox-esr/files/patch-bug847568
+++ b/www/firefox-esr/files/patch-bug847568
@@ -97,13 +97,9 @@ index b91d9c1..a97e6eb 100755
  echo If gfx/graphite2/src/files.mk has changed, please make corresponding
 diff --git gfx/harfbuzz/README-mozilla gfx/harfbuzz/README-mozilla
 index 3180257..4587a3b 100644
---- gfx/harfbuzz/README-mozilla
-+++ gfx/harfbuzz/README-mozilla
-@@ -21,3 +21,8 @@ from within the gfx/harfbuzz directory.
- 
- If the collection of source files changes, manual updates to moz.build may be
- needed as we don't use the upstream makefiles.
-+
+--- /dev/null
++++ gfx/harfbuzz/README-mozilla.fbsd
+@@ -0,0 +1,4 @@
 +The in-tree copy may be omitted during build by --with-system-harfbuzz.
 +Make sure to keep pkg-config version check within toolkit/moz.configure in sync
 +with checkout version or increment latest tag by one if it's not based
diff --git a/www/firefox-esr/files/patch-gfx_skia_skia_src_base_SkEndian.h b/www/firefox-esr/files/patch-gfx_skia_skia_src_base_SkEndian.h
new file mode 100644
index 000000000000..656127071a78
--- /dev/null
+++ b/www/firefox-esr/files/patch-gfx_skia_skia_src_base_SkEndian.h
@@ -0,0 +1,11 @@
+--- gfx/skia/skia/src/base/SkEndian.h.orig	2023-06-16 01:32:16.999830000 +0200
++++ gfx/skia/skia/src/base/SkEndian.h	2023-06-16 01:32:41.701673000 +0200
+@@ -131,7 +131,7 @@
+     #define SkTEndian_SwapLE64(n)    (n)
+ #else   // SK_CPU_BENDIAN
+     #define SkEndian_SwapBE16(n)    (n)
+-    #define SkEndian_SwapBE32(n)    (n)
++    #define SkEndian_SwapBE32(n)    uint32_t(n)
+     #define SkEndian_SwapBE64(n)    (n)
+     #define SkEndian_SwapLE16(n)    SkEndianSwap16(n)
+     #define SkEndian_SwapLE32(n)    SkEndianSwap32(n)
diff --git a/www/firefox-esr/files/patch-gfx_skia_skia_src_core_SkRasterPipeline.h b/www/firefox-esr/files/patch-gfx_skia_skia_src_core_SkRasterPipeline.h
new file mode 100644
index 000000000000..64e279cf29f0
--- /dev/null
+++ b/www/firefox-esr/files/patch-gfx_skia_skia_src_core_SkRasterPipeline.h
@@ -0,0 +1,11 @@
+--- gfx/skia/skia/src/core/SkRasterPipeline.h.orig	2023-06-10 14:20:18.155477000 +0200
++++ gfx/skia/skia/src/core/SkRasterPipeline.h	2023-06-10 14:20:30.760915000 +0200
+@@ -24,7 +24,7 @@
+ struct SkImageInfo;
+ struct skcms_TransferFunction;
+ 
+-#if __has_cpp_attribute(clang::musttail) && !defined(__EMSCRIPTEN__) && !defined(SK_CPU_ARM32)
++#if __has_cpp_attribute(clang::musttail) && !defined(__EMSCRIPTEN__) && !defined(SK_CPU_ARM32) && !defined(__powerpc__)
+     #define SK_HAS_MUSTTAIL 1
+ #else
+     #define SK_HAS_MUSTTAIL 0
diff --git a/www/firefox-esr/files/patch-i386-protobuf-alignment b/www/firefox-esr/files/patch-i386-protobuf-alignment
new file mode 100644
index 000000000000..0d58c8644e79
--- /dev/null
+++ b/www/firefox-esr/files/patch-i386-protobuf-alignment
@@ -0,0 +1,15 @@
+# On FreeBSD/i386's LLVM, actual alignment for atomic types requires
+# stricter alignment rules, mostly on 8 byte boundaries instead of 4 byte
+# as indicated by max_align_t.
+
+--- ./toolkit/components/protobuf/src/google/protobuf/arena_impl.h.orig	2022-08-20 20:07:57.096818000 +0200
++++ ./toolkit/components/protobuf/src/google/protobuf/arena_impl.h	2022-08-20 21:40:47.821690000 +0200
+@@ -640,7 +640,7 @@
+ #ifdef _MSC_VER
+ #pragma warning(disable : 4324)
+ #endif
+-  struct alignas(kCacheAlignment) CacheAlignedLifecycleIdGenerator {
++  struct alignas(alignof(std::atomic<LifecycleIdAtomic>)) CacheAlignedLifecycleIdGenerator {
+     std::atomic<LifecycleIdAtomic> id;
+   };
+   static CacheAlignedLifecycleIdGenerator lifecycle_id_generator_;
diff --git a/www/firefox-esr/files/patch-js_public_Utility.h b/www/firefox-esr/files/patch-js_public_Utility.h
new file mode 100644
index 000000000000..4c2e16bc932c
--- /dev/null
+++ b/www/firefox-esr/files/patch-js_public_Utility.h
@@ -0,0 +1,35 @@
+commit 57b30241311091b5a6a5a0bb1c19a8e073860fc3
+Author: Christoph Moench-Tegeder <cmt@burggraben.net>
+
+    do not assert on alignment when not having the bits
+    
+    the underlying issue seemed to be win-only anyways?
+
+diff --git js/public/Utility.h js/public/Utility.h
+index 0d745e9df785..f0ca7ea37162 100644
+--- js/public/Utility.h
++++ js/public/Utility.h
+@@ -480,6 +480,7 @@ static inline void js_free(void* p) {
+  * Note: Do not add a ; at the end of a use of JS_DECLARE_NEW_METHODS,
+  * or the build will break.
+  */
++#if !defined(__i386__)
+ #define JS_DECLARE_NEW_METHODS(NEWNAME, ALLOCATOR, QUALIFIERS)              \
+   template <class T, typename... Args>                                      \
+   QUALIFIERS T* MOZ_HEAP_ALLOCATOR NEWNAME(Args&&... args) {                \
+@@ -490,6 +491,15 @@ static inline void js_free(void* p) {
+     return MOZ_LIKELY(memory) ? new (memory) T(std::forward<Args>(args)...) \
+                               : nullptr;                                    \
+   }
++#else
++#define JS_DECLARE_NEW_METHODS(NEWNAME, ALLOCATOR, QUALIFIERS)              \
++  template <class T, typename... Args>                                      \
++  QUALIFIERS T* MOZ_HEAP_ALLOCATOR NEWNAME(Args&&... args) {                \
++    void* memory = ALLOCATOR(sizeof(T));                                    \
++    return MOZ_LIKELY(memory) ? new (memory) T(std::forward<Args>(args)...) \
++                              : nullptr;                                    \
++  }
++#endif
+ 
+ /*
+  * Given a class which should provide a 'new' method that takes an arena as
diff --git a/www/firefox-esr/files/patch-libwebrtc-generated b/www/firefox-esr/files/patch-libwebrtc-generated
index d7f0fdecd9c8..9790b777a007 100644
--- a/www/firefox-esr/files/patch-libwebrtc-generated
+++ b/www/firefox-esr/files/patch-libwebrtc-generated
@@ -1,19 +1,25 @@
+commit c15a16ffc6046403213dc435ecb26962706a0da4
+Author: Christoph Moench-Tegeder <cmt@FreeBSD.org>
+
+    regenerate FreeBSD libwebrtc patch for Firefox 115esr
+
 diff --git third_party/libwebrtc/api/adaptation/resource_adaptation_api_gn/moz.build third_party/libwebrtc/api/adaptation/resource_adaptation_api_gn/moz.build
-index 445f027e82b0..c286ec3735a7 100644
+index aa958f70420c..e6a2d969a1fd 100644
 --- third_party/libwebrtc/api/adaptation/resource_adaptation_api_gn/moz.build
 +++ third_party/libwebrtc/api/adaptation/resource_adaptation_api_gn/moz.build
-@@ -11,10 +11,19 @@ AllowCompilerWarnings()
- 
+@@ -12,11 +12,20 @@ AllowCompilerWarnings()
  DEFINES["ABSL_ALLOCATOR_NOTHROW"] = "1"
+ DEFINES["RTC_DAV1D_IN_INTERNAL_DECODER_FACTORY"] = True
  DEFINES["RTC_ENABLE_VP9"] = True
 +DEFINES["USE_GLIB"] = "1"
-+DEFINES["USE_X11"] = "1"
++DEFINES["USE_OZONE"] = "1"
 +DEFINES["WEBRTC_BSD"] = True
  DEFINES["WEBRTC_ENABLE_PROTOBUF"] = "0"
  DEFINES["WEBRTC_LIBRARY_IMPL"] = True
  DEFINES["WEBRTC_MOZILLA_BUILD"] = True
  DEFINES["WEBRTC_NON_STATIC_TRACE_EVENT_HANDLERS"] = "0"
 +DEFINES["WEBRTC_POSIX"] = True
+ DEFINES["WEBRTC_STRICT_FIELD_TRIALS"] = "0"
 +DEFINES["_FILE_OFFSET_BITS"] = "64"
 +DEFINES["_LARGEFILE64_SOURCE"] = True
 +DEFINES["_LARGEFILE_SOURCE"] = True
@@ -22,7 +28,7 @@ index 445f027e82b0..c286ec3735a7 100644
  
  FINAL_LIBRARY = "webrtc"
  
-@@ -40,164 +49,17 @@ if not CONFIG["MOZ_DEBUG"]:
+@@ -43,179 +52,32 @@ if not CONFIG["MOZ_DEBUG"]:
  if CONFIG["MOZ_DEBUG"] == "1":
  
      DEFINES["DYNAMIC_ANNOTATIONS_ENABLED"] = "1"
@@ -30,7 +36,7 @@ index 445f027e82b0..c286ec3735a7 100644
 -if CONFIG["OS_TARGET"] == "Android":
 -
 -    DEFINES["ANDROID"] = True
--    DEFINES["ANDROID_NDK_VERSION_ROLL"] = "r20_1"
+-    DEFINES["ANDROID_NDK_VERSION_ROLL"] = "r22_1"
 -    DEFINES["HAVE_SYS_UIO_H"] = True
 -    DEFINES["WEBRTC_ANDROID"] = True
 -    DEFINES["WEBRTC_ANDROID_OPENSLES"] = True
@@ -71,6 +77,7 @@ index 445f027e82b0..c286ec3735a7 100644
 -if CONFIG["OS_TARGET"] == "OpenBSD":
 -
 -    DEFINES["USE_GLIB"] = "1"
+-    DEFINES["USE_OZONE"] = "1"
 -    DEFINES["USE_X11"] = "1"
 -    DEFINES["WEBRTC_BSD"] = True
 -    DEFINES["WEBRTC_POSIX"] = True
@@ -105,10 +112,6 @@ index 445f027e82b0..c286ec3735a7 100644
 -    DEFINES["_WIN32_WINNT"] = "0x0A00"
 -    DEFINES["_WINDOWS"] = True
 -    DEFINES["__STD_C"] = True
--
--    OS_LIBS += [
--        "winmm"
--    ]
 +    DEFINES["_DEBUG"] = True
  
  if CONFIG["CPU_ARCH"] == "aarch64":
@@ -125,6 +128,24 @@ index 445f027e82b0..c286ec3735a7 100644
 -    DEFINES["WEBRTC_ARCH_ARM"] = True
 -    DEFINES["WEBRTC_ARCH_ARM_V7"] = True
 -    DEFINES["WEBRTC_HAS_NEON"] = True
+-
+ if CONFIG["CPU_ARCH"] == "mips32":
+ 
+     DEFINES["MIPS32_LE"] = True
+     DEFINES["MIPS_FPU_LE"] = True
+-    DEFINES["_GNU_SOURCE"] = True
+-
+-if CONFIG["CPU_ARCH"] == "mips64":
+-
+-    DEFINES["_GNU_SOURCE"] = True
+ 
+ if CONFIG["CPU_ARCH"] == "x86":
+ 
+-    DEFINES["WEBRTC_ENABLE_AVX2"] = True
+-
+-if CONFIG["CPU_ARCH"] == "x86_64":
+-
+-    DEFINES["WEBRTC_ENABLE_AVX2"] = True
 -
 -if CONFIG["MOZ_DEBUG"] == "1" and CONFIG["OS_TARGET"] == "Android":
 -
@@ -159,10 +180,10 @@ index 445f027e82b0..c286ec3735a7 100644
 -
 -if CONFIG["CPU_ARCH"] == "x86" and CONFIG["OS_TARGET"] == "Android":
 -
--    CXXFLAGS += [
--        "-msse2"
--    ]
--
+     CXXFLAGS += [
+         "-msse2"
+     ]
+ 
 -    OS_LIBS += [
 -        "android_support"
 -    ]
@@ -176,35 +197,40 @@ index 445f027e82b0..c286ec3735a7 100644
 -    DEFINES["_GNU_SOURCE"] = True
 -
 -if CONFIG["CPU_ARCH"] == "x86" and CONFIG["OS_TARGET"] == "Linux":
-+if CONFIG["CPU_ARCH"] == "x86":
++    DEFINES["WEBRTC_ENABLE_AVX2"] = True
  
-     CXXFLAGS += [
-         "-msse2"
-     ]
+-    CXXFLAGS += [
+-        "-msse2"
+-    ]
++if CONFIG["CPU_ARCH"] == "x86_64":
  
 -    DEFINES["_GNU_SOURCE"] = True
--
++    DEFINES["WEBRTC_ENABLE_AVX2"] = True
+ 
 -if CONFIG["CPU_ARCH"] == "x86_64" and CONFIG["OS_TARGET"] == "Linux":
--
++if CONFIG["MOZ_X11"] == "1" and CONFIG["OS_TARGET"] == "FreeBSD":
+ 
 -    DEFINES["_GNU_SOURCE"] = True
--
++    DEFINES["USE_X11"] = "1"
+ 
  Library("resource_adaptation_api_gn")
 diff --git third_party/libwebrtc/api/array_view_gn/moz.build third_party/libwebrtc/api/array_view_gn/moz.build
-index 0ae35513c8c6..efaa7dd2f99c 100644
+index e453cb8585d0..552c7e77985a 100644
 --- third_party/libwebrtc/api/array_view_gn/moz.build
 +++ third_party/libwebrtc/api/array_view_gn/moz.build
-@@ -11,10 +11,19 @@ AllowCompilerWarnings()
- 
+@@ -12,11 +12,20 @@ AllowCompilerWarnings()
  DEFINES["ABSL_ALLOCATOR_NOTHROW"] = "1"
+ DEFINES["RTC_DAV1D_IN_INTERNAL_DECODER_FACTORY"] = True
  DEFINES["RTC_ENABLE_VP9"] = True
 +DEFINES["USE_GLIB"] = "1"
-+DEFINES["USE_X11"] = "1"
++DEFINES["USE_OZONE"] = "1"
 +DEFINES["WEBRTC_BSD"] = True
  DEFINES["WEBRTC_ENABLE_PROTOBUF"] = "0"
  DEFINES["WEBRTC_LIBRARY_IMPL"] = True
  DEFINES["WEBRTC_MOZILLA_BUILD"] = True
  DEFINES["WEBRTC_NON_STATIC_TRACE_EVENT_HANDLERS"] = "0"
 +DEFINES["WEBRTC_POSIX"] = True
+ DEFINES["WEBRTC_STRICT_FIELD_TRIALS"] = "0"
 +DEFINES["_FILE_OFFSET_BITS"] = "64"
 +DEFINES["_LARGEFILE64_SOURCE"] = True
 +DEFINES["_LARGEFILE_SOURCE"] = True
@@ -213,7 +239,7 @@ index 0ae35513c8c6..efaa7dd2f99c 100644
  
  FINAL_LIBRARY = "webrtc"
  
-@@ -36,148 +45,11 @@ if not CONFIG["MOZ_DEBUG"]:
+@@ -39,107 +48,17 @@ if not CONFIG["MOZ_DEBUG"]:
  if CONFIG["MOZ_DEBUG"] == "1":
  
      DEFINES["DYNAMIC_ANNOTATIONS_ENABLED"] = "1"
@@ -221,7 +247,7 @@ index 0ae35513c8c6..efaa7dd2f99c 100644
 -if CONFIG["OS_TARGET"] == "Android":
 -
 -    DEFINES["ANDROID"] = True
--    DEFINES["ANDROID_NDK_VERSION_ROLL"] = "r20_1"
+-    DEFINES["ANDROID_NDK_VERSION_ROLL"] = "r22_1"
 -    DEFINES["HAVE_SYS_UIO_H"] = True
 -    DEFINES["WEBRTC_ANDROID"] = True
 -    DEFINES["WEBRTC_ANDROID_OPENSLES"] = True
@@ -262,6 +288,7 @@ index 0ae35513c8c6..efaa7dd2f99c 100644
 -if CONFIG["OS_TARGET"] == "OpenBSD":
 -
 -    DEFINES["USE_GLIB"] = "1"
+-    DEFINES["USE_OZONE"] = "1"
 -    DEFINES["USE_X11"] = "1"
 -    DEFINES["WEBRTC_BSD"] = True
 -    DEFINES["WEBRTC_POSIX"] = True
@@ -309,6 +336,22 @@ index 0ae35513c8c6..efaa7dd2f99c 100644
 -    DEFINES["WEBRTC_ARCH_ARM_V7"] = True
 -    DEFINES["WEBRTC_HAS_NEON"] = True
 -
+ if CONFIG["CPU_ARCH"] == "mips32":
+ 
+     DEFINES["MIPS32_LE"] = True
+     DEFINES["MIPS_FPU_LE"] = True
+-    DEFINES["_GNU_SOURCE"] = True
+-
+-if CONFIG["CPU_ARCH"] == "mips64":
+-
+-    DEFINES["_GNU_SOURCE"] = True
+ 
+ if CONFIG["CPU_ARCH"] == "x86":
+ 
+@@ -149,57 +68,8 @@ if CONFIG["CPU_ARCH"] == "x86_64":
+ 
+     DEFINES["WEBRTC_ENABLE_AVX2"] = True
+ 
 -if CONFIG["MOZ_DEBUG"] == "1" and CONFIG["OS_TARGET"] == "Android":
 -
 -    DEFINES["_DEBUG"] = True
@@ -330,9 +373,10 @@ index 0ae35513c8c6..efaa7dd2f99c 100644
 -    DEFINES["_HAS_ITERATOR_DEBUGGING"] = "0"
 -
 -if CONFIG["MOZ_X11"] == "1" and CONFIG["OS_TARGET"] == "Linux":
--
--    DEFINES["USE_X11"] = "1"
--
++if CONFIG["MOZ_X11"] == "1" and CONFIG["OS_TARGET"] == "FreeBSD":
+ 
+     DEFINES["USE_X11"] = "1"
+ 
 -if CONFIG["CPU_ARCH"] == "arm" and CONFIG["OS_TARGET"] == "Android":
 -
 -    OS_LIBS += [
@@ -364,21 +408,22 @@ index 0ae35513c8c6..efaa7dd2f99c 100644
 -
  Library("array_view_gn")
 diff --git third_party/libwebrtc/api/audio/aec3_config_gn/moz.build third_party/libwebrtc/api/audio/aec3_config_gn/moz.build
-index fd8b99d9255f..682ad0f9d8bd 100644
+index c2d256488d9b..1b3eb3a6acb6 100644
 --- third_party/libwebrtc/api/audio/aec3_config_gn/moz.build
 +++ third_party/libwebrtc/api/audio/aec3_config_gn/moz.build
-@@ -11,10 +11,19 @@ AllowCompilerWarnings()
- 
+@@ -12,11 +12,20 @@ AllowCompilerWarnings()
  DEFINES["ABSL_ALLOCATOR_NOTHROW"] = "1"
+ DEFINES["RTC_DAV1D_IN_INTERNAL_DECODER_FACTORY"] = True
  DEFINES["RTC_ENABLE_VP9"] = True
 +DEFINES["USE_GLIB"] = "1"
-+DEFINES["USE_X11"] = "1"
++DEFINES["USE_OZONE"] = "1"
 +DEFINES["WEBRTC_BSD"] = True
  DEFINES["WEBRTC_ENABLE_PROTOBUF"] = "0"
  DEFINES["WEBRTC_LIBRARY_IMPL"] = True
  DEFINES["WEBRTC_MOZILLA_BUILD"] = True
  DEFINES["WEBRTC_NON_STATIC_TRACE_EVENT_HANDLERS"] = "0"
 +DEFINES["WEBRTC_POSIX"] = True
+ DEFINES["WEBRTC_STRICT_FIELD_TRIALS"] = "0"
 +DEFINES["_FILE_OFFSET_BITS"] = "64"
 +DEFINES["_LARGEFILE64_SOURCE"] = True
 +DEFINES["_LARGEFILE_SOURCE"] = True
@@ -387,7 +432,7 @@ index fd8b99d9255f..682ad0f9d8bd 100644
  
  FINAL_LIBRARY = "webrtc"
  
-@@ -40,164 +49,17 @@ if not CONFIG["MOZ_DEBUG"]:
+@@ -43,179 +52,32 @@ if not CONFIG["MOZ_DEBUG"]:
  if CONFIG["MOZ_DEBUG"] == "1":
  
      DEFINES["DYNAMIC_ANNOTATIONS_ENABLED"] = "1"
@@ -395,7 +440,7 @@ index fd8b99d9255f..682ad0f9d8bd 100644
 -if CONFIG["OS_TARGET"] == "Android":
 -
 -    DEFINES["ANDROID"] = True
--    DEFINES["ANDROID_NDK_VERSION_ROLL"] = "r20_1"
+-    DEFINES["ANDROID_NDK_VERSION_ROLL"] = "r22_1"
 -    DEFINES["HAVE_SYS_UIO_H"] = True
 -    DEFINES["WEBRTC_ANDROID"] = True
 -    DEFINES["WEBRTC_ANDROID_OPENSLES"] = True
@@ -436,6 +481,7 @@ index fd8b99d9255f..682ad0f9d8bd 100644
 -if CONFIG["OS_TARGET"] == "OpenBSD":
 -
 -    DEFINES["USE_GLIB"] = "1"
+-    DEFINES["USE_OZONE"] = "1"
 -    DEFINES["USE_X11"] = "1"
 -    DEFINES["WEBRTC_BSD"] = True
 -    DEFINES["WEBRTC_POSIX"] = True
@@ -470,10 +516,6 @@ index fd8b99d9255f..682ad0f9d8bd 100644
 -    DEFINES["_WIN32_WINNT"] = "0x0A00"
 -    DEFINES["_WINDOWS"] = True
 -    DEFINES["__STD_C"] = True
--
--    OS_LIBS += [
--        "winmm"
--    ]
 +    DEFINES["_DEBUG"] = True
  
  if CONFIG["CPU_ARCH"] == "aarch64":
@@ -490,6 +532,24 @@ index fd8b99d9255f..682ad0f9d8bd 100644
 -    DEFINES["WEBRTC_ARCH_ARM"] = True
 -    DEFINES["WEBRTC_ARCH_ARM_V7"] = True
 -    DEFINES["WEBRTC_HAS_NEON"] = True
+-
+ if CONFIG["CPU_ARCH"] == "mips32":
+ 
+     DEFINES["MIPS32_LE"] = True
+     DEFINES["MIPS_FPU_LE"] = True
+-    DEFINES["_GNU_SOURCE"] = True
+-
+-if CONFIG["CPU_ARCH"] == "mips64":
+-
+-    DEFINES["_GNU_SOURCE"] = True
+ 
+ if CONFIG["CPU_ARCH"] == "x86":
+ 
+-    DEFINES["WEBRTC_ENABLE_AVX2"] = True
+-
+-if CONFIG["CPU_ARCH"] == "x86_64":
+-
+-    DEFINES["WEBRTC_ENABLE_AVX2"] = True
 -
 -if CONFIG["MOZ_DEBUG"] == "1" and CONFIG["OS_TARGET"] == "Android":
 -
@@ -524,10 +584,10 @@ index fd8b99d9255f..682ad0f9d8bd 100644
 -
 -if CONFIG["CPU_ARCH"] == "x86" and CONFIG["OS_TARGET"] == "Android":
 -
--    CXXFLAGS += [
--        "-msse2"
--    ]
--
+     CXXFLAGS += [
+         "-msse2"
+     ]
+ 
 -    OS_LIBS += [
 -        "android_support"
 -    ]
@@ -541,29 +601,33 @@ index fd8b99d9255f..682ad0f9d8bd 100644
 -    DEFINES["_GNU_SOURCE"] = True
 -
 -if CONFIG["CPU_ARCH"] == "x86" and CONFIG["OS_TARGET"] == "Linux":
-+if CONFIG["CPU_ARCH"] == "x86":
*** 77169 LINES SKIPPED ***