git: afcc7e8a7365 - main - mail/thunderbird: update to 115.3.0 (ga)

From: Christoph Moench-Tegeder <cmt_at_FreeBSD.org>
Date: Tue, 26 Sep 2023 19:16:07 UTC
The branch main has been updated by cmt:

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

commit afcc7e8a7365f9378d6ce30d41fdc41c818f8f17
Author:     Christoph Moench-Tegeder <cmt@FreeBSD.org>
AuthorDate: 2023-09-26 19:14:51 +0000
Commit:     Christoph Moench-Tegeder <cmt@FreeBSD.org>
CommitDate: 2023-09-26 19:14:51 +0000

    mail/thunderbird: update to 115.3.0 (ga)
    
    Release Notes:
      https://www.thunderbird.net/en-US/thunderbird/115.3.0/releasenotes/
---
 mail/thunderbird/Makefile                          |    23 +-
 mail/thunderbird/distinfo                          |     6 +-
 mail/thunderbird/files/patch-addon-search          |    26 +-
 mail/thunderbird/files/patch-bug1504834_comment10  |    10 +-
 mail/thunderbird/files/patch-bug1504834_comment5   |    73 +-
 mail/thunderbird/files/patch-bug1504834_comment9   |    49 -
 mail/thunderbird/files/patch-bug1559213            |    39 +-
 mail/thunderbird/files/patch-bug1640982            |    15 -
 mail/thunderbird/files/patch-bug1659612            |    22 +-
 mail/thunderbird/files/patch-bug1729459_comment12  |    93 -
 mail/thunderbird/files/patch-bug847568             |    10 +-
 .../files/patch-i386-protobuf-alignment            |    15 +
 mail/thunderbird/files/patch-js_public_Utility.h   |    35 +
 mail/thunderbird/files/patch-libwebrtc-generated   | 50556 ++++++++++++++-----
 .../files/patch-modules_fdlibm_src_math__private.h |    27 +
 mail/thunderbird/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-third__party_sqlite3_src_moz.build |    12 +
 .../files/patch-toolkit_xre_glxtest.cpp            |    17 +
 21 files changed, 38445 insertions(+), 12752 deletions(-)

diff --git a/mail/thunderbird/Makefile b/mail/thunderbird/Makefile
index 932a2c01c868..d9550f9d9feb 100644
--- a/mail/thunderbird/Makefile
+++ b/mail/thunderbird/Makefile
@@ -1,8 +1,9 @@
 PORTNAME=	thunderbird
-DISTVERSION=	102.15.1
+DISTVERSION=	115.3.0
+PORTREVISION=	1
 CATEGORIES=	mail news net-im wayland
 MASTER_SITES=	MOZILLA/${PORTNAME}/releases/${DISTVERSION}/source \
-		MOZILLA/${PORTNAME}/candidates/${DISTVERSION}-candidates/build1/source
+		MOZILLA/${PORTNAME}/candidates/${DISTVERSION}-candidates/build2/source
 DISTFILES=	${DISTNAME}.source${EXTRACT_SUFX}
 
 MAINTAINER=	gecko@FreeBSD.org
@@ -10,14 +11,13 @@ COMMENT=	Mozilla Thunderbird is standalone mail and news that stands above
 WWW=		https://www.mozilla.com/thunderbird/
 
 BUILD_DEPENDS=	nspr>=4.32:devel/nspr \
-		nss>=3.79:security/nss \
-		icu>=71.1,1:devel/icu \
+		nss>=3.90:security/nss \
 		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 \
@@ -29,7 +29,9 @@ LIB_DEPENDS=	libjson-c.so:devel/json-c \
 
 SSP_UNSAFE=	yes
 USE_GECKO=	gecko
-USE_MOZILLA=	-sqlite
+# cannot use system icu: calendar is completely broken by
+# https://unicode-org.atlassian.net/browse/ICU-22132 (fix ETA 74.1)
+USE_MOZILLA=	-icu -sqlite
 CFLAGS_powerpc64le=	-DSQLITE_BYTEORDER=1234
 
 USES=		tar:xz
@@ -67,11 +69,6 @@ post-patch:
 	@${REINPLACE_CMD} -e 's|%%LOCALBASE%%|${LOCALBASE}|g' \
 		${WRKSRC}/comm/mail/app/nsMailApp.cpp
 
-pre-configure:
-	(cd ${WRKSRC} && ${LOCALBASE}/bin/autoconf2.13)
-	(cd ${MOZSRC} && ${LOCALBASE}/bin/autoconf2.13)
-	(cd ${MOZSRC}/js/src/ && ${LOCALBASE}/bin/autoconf2.13)
-
 port-pre-install:
 	${MKDIR} ${STAGEDIR}${PREFIX}/lib/${PORTNAME}/defaults
 
diff --git a/mail/thunderbird/distinfo b/mail/thunderbird/distinfo
index 0c7bf367415f..5f41ee990f59 100644
--- a/mail/thunderbird/distinfo
+++ b/mail/thunderbird/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1694536359
-SHA256 (thunderbird-102.15.1.source.tar.xz) = a20d53bbb3c01cea86b34da3907536f750421ae283cb527eef6bf81acbb8a038
-SIZE (thunderbird-102.15.1.source.tar.xz) = 504786376
+TIMESTAMP = 1695746048
+SHA256 (thunderbird-115.3.0.source.tar.xz) = 2b9ba16d737fdfb91055d75e43e20cd457254e9fa5b097cecdc1b0cc64818fc3
+SIZE (thunderbird-115.3.0.source.tar.xz) = 533553340
diff --git a/mail/thunderbird/files/patch-addon-search b/mail/thunderbird/files/patch-addon-search
index 26e9043e4d1a..3ad8200e72c1 100644
--- a/mail/thunderbird/files/patch-addon-search
+++ b/mail/thunderbird/files/patch-addon-search
@@ -1,9 +1,9 @@
 https://github.com/mozilla/addons/issues/708
 https://github.com/mozilla/addons-frontend/issues/4610
 
---- comm/mail/app/profile/all-thunderbird.js.orig	2022-09-10 23:48:23.616215000 +0200
-+++ comm/mail/app/profile/all-thunderbird.js	2022-09-11 00:01:06.140736000 +0200
-@@ -167,10 +167,10 @@
+--- comm/mail/app/profile/all-thunderbird.js.orig	2023-09-18 22:38:56.049701000 +0200
++++ comm/mail/app/profile/all-thunderbird.js	2023-09-18 22:41:26.840390000 +0200
+@@ -207,10 +207,10 @@
  pref("extensions.getAddons.compatOverides.url", "https://services.addons.thunderbird.net/api/v3/addons/compat-override/?guid=%IDS%&lang=%LOCALE%");
  pref("extensions.getAddons.link.url", "https://addons.thunderbird.net/%LOCALE%/%APP%/");
  pref("browser.dictionaries.download.url", "https://addons.thunderbird.net/%LOCALE%/%APP%/language-tools/");
@@ -18,7 +18,7 @@ https://github.com/mozilla/addons-frontend/issues/4610
  pref("extensions.getAddons.langpacks.url", "https://services.addons.thunderbird.net/api/v3/addons/language-tools/?app=thunderbird&type=language&appversion=%VERSION%");
  pref("extensions.getAddons.discovery.api_url", "https://services.addons.thunderbird.net/api/v4/discovery/?lang=%LOCALE%&edition=%DISTRIBUTION%");
  
-@@ -202,9 +202,9 @@
+@@ -242,9 +242,9 @@
  //  .. etc ..
  //
  pref("extensions.update.enabled", true);
@@ -30,20 +30,20 @@ https://github.com/mozilla/addons-frontend/issues/4610
  
  pref("extensions.update.interval", 86400);  // Check for updates to Extensions and
                                              // Themes every day
---- toolkit/mozapps/extensions/internal/AddonRepository.jsm.orig	2022-09-11 00:01:40.212952000 +0200
-+++ toolkit/mozapps/extensions/internal/AddonRepository.jsm	2022-09-11 00:07:14.587890000 +0200
-@@ -592,7 +592,7 @@
+--- toolkit/mozapps/extensions/internal/AddonRepository.sys.mjs.orig	2023-09-18 22:35:42.082170000 +0200
++++ toolkit/mozapps/extensions/internal/AddonRepository.sys.mjs	2023-09-18 22:36:14.313490000 +0200
+@@ -596,7 +596,7 @@
        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);
              }
---- toolkit/mozapps/extensions/internal/XPIDatabase.jsm.orig	2022-09-11 00:08:09.244518000 +0200
-+++ toolkit/mozapps/extensions/internal/XPIDatabase.jsm	2022-09-11 00:09:56.387390000 +0200
-@@ -569,7 +569,7 @@
+--- toolkit/mozapps/extensions/internal/XPIDatabase.jsm.orig	2023-09-18 22:36:52.473447000 +0200
++++ toolkit/mozapps/extensions/internal/XPIDatabase.jsm	2023-09-18 22:37:26.177990000 +0200
+@@ -634,7 +634,7 @@
      // Something is causing errors in here
      try {
        for (let platform of this.targetPlatforms) {
diff --git a/mail/thunderbird/files/patch-bug1504834_comment10 b/mail/thunderbird/files/patch-bug1504834_comment10
index e8e28bace434..2d584adb17ef 100644
--- a/mail/thunderbird/files/patch-bug1504834_comment10
+++ b/mail/thunderbird/files/patch-bug1504834_comment10
@@ -14,10 +14,11 @@ Solution: This is not a real solution, but a hack. The real solution would have
           are readable, albeit not as pretty to look at as they could be. 
 Side-effects: I have not yet found an unwanted side-effect.
 
-diff -r 46ea866ca3ac -r 6ef20eee3f8f gfx/2d/DrawTargetSkia.cpp
---- gfx/2d/DrawTargetSkia.cpp	Tue Oct 22 12:27:22 2019 +0200
-+++ gfx/2d/DrawTargetSkia.cpp	Thu Oct 31 09:11:56 2019 +0100
-@@ -1861,6 +1861,14 @@
+diff --git gfx/2d/DrawTargetSkia.cpp gfx/2d/DrawTargetSkia.cpp
+index 6bbef8d..161b96f 100644
+--- gfx/2d/DrawTargetSkia.cpp
++++ gfx/2d/DrawTargetSkia.cpp
+@@ -1903,6 +1903,14 @@ void DrawTargetSkia::PushLayerWithBlend(bool aOpaque, Float aOpacity,
        SkCanvas::kPreserveLCDText_SaveLayerFlag |
            (aCopyBackground ? SkCanvas::kInitWithPrevious_SaveLayerFlag : 0));
  
@@ -32,3 +33,4 @@ diff -r 46ea866ca3ac -r 6ef20eee3f8f gfx/2d/DrawTargetSkia.cpp
    mCanvas->saveLayer(saveRec);
  
    SetPermitSubpixelAA(aOpaque);
+
diff --git a/mail/thunderbird/files/patch-bug1504834_comment5 b/mail/thunderbird/files/patch-bug1504834_comment5
index db2663ccfb34..b9897e0b7f66 100644
--- a/mail/thunderbird/files/patch-bug1504834_comment5
+++ b/mail/thunderbird/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/mail/thunderbird/files/patch-bug1504834_comment9 b/mail/thunderbird/files/patch-bug1504834_comment9
deleted file mode 100644
index c3d149ffa37b..000000000000
--- a/mail/thunderbird/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/mail/thunderbird/files/patch-bug1559213 b/mail/thunderbird/files/patch-bug1559213
index 09b4dcc58e83..49bbb0fb05ff 100644
--- a/mail/thunderbird/files/patch-bug1559213
+++ b/mail/thunderbird/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/mail/thunderbird/files/patch-bug1640982 b/mail/thunderbird/files/patch-bug1640982
deleted file mode 100644
index dae6ca5fa7b5..000000000000
--- a/mail/thunderbird/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/mail/thunderbird/files/patch-bug1659612 b/mail/thunderbird/files/patch-bug1659612
index dce125b883d2..a7aea97734a0 100644
--- a/mail/thunderbird/files/patch-bug1659612
+++ b/mail/thunderbird/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/mail/thunderbird/files/patch-bug1729459_comment12 b/mail/thunderbird/files/patch-bug1729459_comment12
deleted file mode 100644
index dda42170f71b..000000000000
--- a/mail/thunderbird/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/mail/thunderbird/files/patch-bug847568 b/mail/thunderbird/files/patch-bug847568
index 3161dbb88d08..2b3c5e14e99e 100644
--- a/mail/thunderbird/files/patch-bug847568
+++ b/mail/thunderbird/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/mail/thunderbird/files/patch-i386-protobuf-alignment b/mail/thunderbird/files/patch-i386-protobuf-alignment
new file mode 100644
index 000000000000..0d58c8644e79
--- /dev/null
+++ b/mail/thunderbird/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/mail/thunderbird/files/patch-js_public_Utility.h b/mail/thunderbird/files/patch-js_public_Utility.h
new file mode 100644
index 000000000000..4c2e16bc932c
--- /dev/null
+++ b/mail/thunderbird/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/mail/thunderbird/files/patch-libwebrtc-generated b/mail/thunderbird/files/patch-libwebrtc-generated
index d7f0fdecd9c8..9790b777a007 100644
--- a/mail/thunderbird/files/patch-libwebrtc-generated
+++ b/mail/thunderbird/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":
++    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("aec3_config_gn")
 diff --git third_party/libwebrtc/api/audio/aec3_factory_gn/moz.build third_party/libwebrtc/api/audio/aec3_factory_gn/moz.build
*** 77163 LINES SKIPPED ***