git: d10bce7e0b03 - main - multimedia/ringrtc: Update to 2.50.5

From: Mikael Urankar <mikael_at_FreeBSD.org>
Date: Fri, 25 Apr 2025 07:12:27 UTC
The branch main has been updated by mikael:

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

commit d10bce7e0b03496695aa55d52d96d8813cff550f
Author:     Mikael Urankar <mikael@FreeBSD.org>
AuthorDate: 2025-04-25 07:05:59 +0000
Commit:     Mikael Urankar <mikael@FreeBSD.org>
CommitDate: 2025-04-25 07:09:09 +0000

    multimedia/ringrtc: Update to 2.50.5
---
 multimedia/ringrtc/Makefile                        | 32 +++++-----
 multimedia/ringrtc/Makefile.crates                 |  6 +-
 multimedia/ringrtc/distinfo                        | 74 +++++++++++-----------
 .../files/patch-build_config_clang_BUILD.gn        | 11 ++++
 .../files/patch-build_config_compiler_BUILD.gn     | 73 ++++++++-------------
 .../files/patch-cargo-crates_cubeb-sys_build.rs    |  9 ++-
 ...rust_src_webrtc_audio__device__module__utils.rs |  4 +-
 ...h-src_webrtc_src_third__party_libevent_BUILD.gn | 16 -----
 ..._perfetto_include_perfetto_base_build__config.h | 40 ++++++------
 ...tch-third__party_perfetto_src_base_event__fd.cc | 12 ++--
 ...hird__party_perfetto_src_base_periodic__task.cc |  8 +--
 ...third__party_perfetto_src_base_string__utils.cc | 15 ++---
 ...d__party_perfetto_src_base_subprocess__posix.cc |  8 +--
 ...party_perfetto_src_base_thread__task__runner.cc | 12 ++--
 ...-third__party_perfetto_src_base_unix__socket.cc | 14 ++--
 .../patch-third__party_perfetto_src_base_utils.cc  | 49 ++++++++++----
 ...-third__party_perfetto_src_tracing_ipc_memfd.cc |  6 +-
 multimedia/ringrtc/update.txt                      |  2 +-
 multimedia/ringrtc/webrtc_fetch.sh                 |  3 +-
 19 files changed, 196 insertions(+), 198 deletions(-)

diff --git a/multimedia/ringrtc/Makefile b/multimedia/ringrtc/Makefile
index a20511bdf67c..f6f5e675967a 100644
--- a/multimedia/ringrtc/Makefile
+++ b/multimedia/ringrtc/Makefile
@@ -1,6 +1,6 @@
 PORTNAME=	ringrtc
 DISTVERSIONPREFIX=	v
-DISTVERSION=	2.50.3
+DISTVERSION=	2.50.5
 CATEGORIES=	multimedia
 MASTER_SITES=	LOCAL/mikael/ringrtc/:base \
 		LOCAL/mikael/ringrtc/:boringssl \
@@ -64,28 +64,28 @@ GH_TUPLE=	signalapp:ringrtc:${DISTVERSIONPREFIX}${DISTVERSION} \
 		signalapp:webrtc:${WEBRTC_REV}:webrtc
 
 # sh net-im/signal-desktop/get_deps.sh
-WEBRTC_REV=	6834g
+WEBRTC_REV=	6998a
 
 # modify webrtc_fetch.sh, then sh webrtc_fetch.sh
-BASE_REV=		69f3676cdbd05660c136a6cc3b23383cbabe53d8
-BORINGSSL_REV=		0fa9014d861f024e28fb491ed7b1cfd44103dee7
-BUILD_REV=		05874e6c9429039f1747034af61de1fe2ea1ed06
-BUILDTOOLS_REV=		db0eae9640184fb132061f248f6108771a6ea2d4
-CATAPULT_REV=		44791916611acec1cd74c492c7453e46d9b0dbd2
-ICU_REV=		4239b1559d11d4fa66c100543eda4161e060311e
-LIBCUBEB_VER=		0.22.0
+BASE_REV=		e0914b7606a151a3a12e994c400519f2e291c53f
+BORINGSSL_REV=		d4b6eb542d4fd109baacd550935efd00c521e674
+BUILD_REV=		64e296c42a93fbd27acc9a94713e4289273409b2
+BUILDTOOLS_REV=		a660247d3c14a172b74b8e832ba1066b30183c97
+CATAPULT_REV=		b15611f18b506cf9dbc03e9bf87dbc8df549ccce
+ICU_REV=		bbccc2f6efc1b825de5f2c903c48be685cd0cf22
+LIBCUBEB_VER=		0.27.0
 LIBJPEG_TURBO_REV=	927aabfcd26897abb9776ecf2a6c38ea5bb52ab6
-LIBSRTP_REV=		000edd791434c8738455f10e0dd6b268a4852c0b
-LIBVPX_REV=		906334ac1de2b0afa666472dce5545b82c1251fb
-LIBYUV_REV=		a8e59d207483f75b87dd5fc670e937672cdf5776
+LIBSRTP_REV=		a52756acb1c5e133089c798736dd171567df11f5
+LIBVPX_REV=		7a65480684b1b28bb9defae164bf0dc78b32653e
+LIBYUV_REV=		10592b60c0b2c33210b7752454253dc2625b4305
 NASM_REV=		f477acb1049f5e043904b87b825c5915084a9a29
 OPUS_REV=		0e30966b198ad28943799eaf5b3b08100b6f70c3
-PERFETTO_REV=		e57316a6ae4e85e9bc8ba82a6c6a93eb5d9a72aa
+PERFETTO_REV=		a0c2bc7919f7467cf4a8287c8389c3f96a3fcbac
 PROTOBUFJS_REV=		e34549db516f8712f678fcd4bc411613b5cc5295
 RE2_REV=		6dcd83d60f7944926bfd308cc13979fc53dd69ca
-TESTING_REV=		eac4c18f749488d7232af275405e0e1b67d84cb3
-THIRD_PARTY_REV=	9d80a193fbfe8e2f2a29be2efeee93de9a826dcb
-TOOLS_REV=		c809c4133185094fbd75508202221ff14fc92f7c
+TESTING_REV=		63412fdcdfe281e6b9531a5e1086a59c0b9e6909
+THIRD_PARTY_REV=	d212a71416ad7c6ceca04d6d27dfdd84fd00c04c
+TOOLS_REV=		6820cc03cc8a4b1fb99747f30e8249d138a70981
 
 BINARY_ALIAS=	vpython3=${PYTHON_CMD}
 
diff --git a/multimedia/ringrtc/Makefile.crates b/multimedia/ringrtc/Makefile.crates
index d19750c2ac4e..7ca08eca8ec2 100644
--- a/multimedia/ringrtc/Makefile.crates
+++ b/multimedia/ringrtc/Makefile.crates
@@ -68,9 +68,9 @@ CARGO_CRATES=	addr2line-0.24.2 \
 		crossbeam-utils-0.8.21 \
 		crypto-common-0.1.6 \
 		ctr-0.9.2 \
-		cubeb-0.22.0 \
-		cubeb-core-0.22.0 \
-		cubeb-sys-0.22.0 \
+		cubeb-0.27.0 \
+		cubeb-core-0.27.0 \
+		cubeb-sys-0.27.0 \
 		darling-0.20.10 \
 		darling_core-0.20.10 \
 		darling_macro-0.20.10 \
diff --git a/multimedia/ringrtc/distinfo b/multimedia/ringrtc/distinfo
index 9e9f1d050372..375ca95f4285 100644
--- a/multimedia/ringrtc/distinfo
+++ b/multimedia/ringrtc/distinfo
@@ -1,40 +1,40 @@
-TIMESTAMP = 1744301997
-SHA256 (base-69f3676cdbd05660c136a6cc3b23383cbabe53d8.tar.gz) = 8bb88524bb987c2d2d97f3bfd709fbf159e4474ce23b0385783b823b376491dd
-SIZE (base-69f3676cdbd05660c136a6cc3b23383cbabe53d8.tar.gz) = 6152471
-SHA256 (boringssl-0fa9014d861f024e28fb491ed7b1cfd44103dee7.tar.gz) = 54c51f7fb452bae7e01ff78b4722895b2021a43c8c3c64a6b8f0ba1f2e819a34
-SIZE (boringssl-0fa9014d861f024e28fb491ed7b1cfd44103dee7.tar.gz) = 45751284
-SHA256 (build-05874e6c9429039f1747034af61de1fe2ea1ed06.tar.gz) = d816e57290237327030a105d6d058f9d999f4d57f6d11984deac045bb648e160
-SIZE (build-05874e6c9429039f1747034af61de1fe2ea1ed06.tar.gz) = 1620123
-SHA256 (buildtools-db0eae9640184fb132061f248f6108771a6ea2d4.tar.gz) = b5c897cd47cecee5a0350a14c5e6c6cf550c489fb72da4e1480cbc95a757985b
-SIZE (buildtools-db0eae9640184fb132061f248f6108771a6ea2d4.tar.gz) = 94942
-SHA256 (catapult-44791916611acec1cd74c492c7453e46d9b0dbd2.tar.gz) = 95a705b08d968d6c16a17710a26a47a1dc3e4a25327d551e4b9d820093638db4
-SIZE (catapult-44791916611acec1cd74c492c7453e46d9b0dbd2.tar.gz) = 155539182
-SHA256 (icu-4239b1559d11d4fa66c100543eda4161e060311e.tar.gz) = 2c55ca1a01d7d60c89853c7b620ed4703b28263e0d115b5604986ea775eb5b9c
-SIZE (icu-4239b1559d11d4fa66c100543eda4161e060311e.tar.gz) = 51852746
+TIMESTAMP = 1745480399
+SHA256 (base-e0914b7606a151a3a12e994c400519f2e291c53f.tar.gz) = 229f6e5a99deb45f3a02972596580508d7535ba40c752388c09f925ea3a99a75
+SIZE (base-e0914b7606a151a3a12e994c400519f2e291c53f.tar.gz) = 6223200
+SHA256 (boringssl-d4b6eb542d4fd109baacd550935efd00c521e674.tar.gz) = f013a4a63bb00fd543ba40ec2f992e5a29904b814f630ba6755fecf1457c4c8e
+SIZE (boringssl-d4b6eb542d4fd109baacd550935efd00c521e674.tar.gz) = 44807312
+SHA256 (build-64e296c42a93fbd27acc9a94713e4289273409b2.tar.gz) = 65804e8c3f4056f8868722c566567685fa2f4ec97484fa482c1b426da973b54c
+SIZE (build-64e296c42a93fbd27acc9a94713e4289273409b2.tar.gz) = 1629343
+SHA256 (buildtools-a660247d3c14a172b74b8e832ba1066b30183c97.tar.gz) = a058615005fd6d08462e45f0ef77eff007afd776576c31f3c04d9a55425ff03d
+SIZE (buildtools-a660247d3c14a172b74b8e832ba1066b30183c97.tar.gz) = 95158
+SHA256 (catapult-b15611f18b506cf9dbc03e9bf87dbc8df549ccce.tar.gz) = a0054689a29c303bd225944f7aa4c36a8df62edd5a7caaa9ffbcea9297f9d3e6
+SIZE (catapult-b15611f18b506cf9dbc03e9bf87dbc8df549ccce.tar.gz) = 155605402
+SHA256 (icu-bbccc2f6efc1b825de5f2c903c48be685cd0cf22.tar.gz) = baef3b0791e4df7cf7bdec6bc7bd4493dcc8aeba3fb284e89bd333994cbebcc1
+SIZE (icu-bbccc2f6efc1b825de5f2c903c48be685cd0cf22.tar.gz) = 54315206
 SHA256 (nasm-f477acb1049f5e043904b87b825c5915084a9a29.tar.gz) = fa0c68caca289e2e9dac4fee0142150faf7c8bf2f15ff156e738e619a9c76bbd
 SIZE (nasm-f477acb1049f5e043904b87b825c5915084a9a29.tar.gz) = 1546897
 SHA256 (libjpeg_turbo-927aabfcd26897abb9776ecf2a6c38ea5bb52ab6.tar.gz) = 5ea5de65f1e437778dcd9c02e7c263d524171fa36fd621fab455c6dbeee2db3a
 SIZE (libjpeg_turbo-927aabfcd26897abb9776ecf2a6c38ea5bb52ab6.tar.gz) = 2388896
-SHA256 (libsrtp-000edd791434c8738455f10e0dd6b268a4852c0b.tar.gz) = 8d7446da3fb7a451e155dd3b260fe0585778ab124d83d68446f968edf4ff7777
-SIZE (libsrtp-000edd791434c8738455f10e0dd6b268a4852c0b.tar.gz) = 139178
-SHA256 (libvpx-906334ac1de2b0afa666472dce5545b82c1251fb.tar.gz) = 0faf23749b2f2bcafc3d08b23ef786f1a6b399d1119b46cc0187feab3ce40e99
-SIZE (libvpx-906334ac1de2b0afa666472dce5545b82c1251fb.tar.gz) = 5725563
-SHA256 (libyuv-a8e59d207483f75b87dd5fc670e937672cdf5776.tar.gz) = 1c8b6fd0290684072977ef7466b7ea9b759bf7b085ad572645b0ee73427a3a0e
-SIZE (libyuv-a8e59d207483f75b87dd5fc670e937672cdf5776.tar.gz) = 601030
+SHA256 (libsrtp-a52756acb1c5e133089c798736dd171567df11f5.tar.gz) = c1105b5c1c34c3d069b8e2561de9d568ea1b8d4d7d1cd5a049f70a830e8cf71c
+SIZE (libsrtp-a52756acb1c5e133089c798736dd171567df11f5.tar.gz) = 140953
+SHA256 (libvpx-7a65480684b1b28bb9defae164bf0dc78b32653e.tar.gz) = 5c37d9d7fffb2fc7b4b863d6ef7bd97da8dddde7b06ba01b2028ab6ffcb035a7
+SIZE (libvpx-7a65480684b1b28bb9defae164bf0dc78b32653e.tar.gz) = 5738196
+SHA256 (libyuv-10592b60c0b2c33210b7752454253dc2625b4305.tar.gz) = 82e8d053bcceb95ab2803806d7e731c320d9e7f0ee126e170fc9ac35997a7055
+SIZE (libyuv-10592b60c0b2c33210b7752454253dc2625b4305.tar.gz) = 616511
 SHA256 (opus-0e30966b198ad28943799eaf5b3b08100b6f70c3.tar.gz) = 60867154cda4ae4f3d4ba37328b0dac1649b07462945b19c4b7c51a22aa1fae6
 SIZE (opus-0e30966b198ad28943799eaf5b3b08100b6f70c3.tar.gz) = 4205884
-SHA256 (perfetto-e57316a6ae4e85e9bc8ba82a6c6a93eb5d9a72aa.tar.gz) = 724786bd29cd2a6c77451af44835f999aae06cc9753405867b0c04bbe83b0187
-SIZE (perfetto-e57316a6ae4e85e9bc8ba82a6c6a93eb5d9a72aa.tar.gz) = 27668239
+SHA256 (perfetto-a0c2bc7919f7467cf4a8287c8389c3f96a3fcbac.tar.gz) = d720b18db8c9935761703449fbf21f5143075069b59f9fe172b3eb8a827583a6
+SIZE (perfetto-a0c2bc7919f7467cf4a8287c8389c3f96a3fcbac.tar.gz) = 28597556
 SHA256 (protobuf_javascript-e34549db516f8712f678fcd4bc411613b5cc5295.tar.gz) = 2b4822c56f654945c0e71ba309b716899f93f7b1a4db1a23959f47f11096396f
 SIZE (protobuf_javascript-e34549db516f8712f678fcd4bc411613b5cc5295.tar.gz) = 414088
 SHA256 (re2-6dcd83d60f7944926bfd308cc13979fc53dd69ca.tar.gz) = 073bd6d4bc96d880972e7a3eee99bfcd690e03b8cbc1b3199468e105575c9749
 SIZE (re2-6dcd83d60f7944926bfd308cc13979fc53dd69ca.tar.gz) = 394685
-SHA256 (testing-eac4c18f749488d7232af275405e0e1b67d84cb3.tar.gz) = 37d6091dbf48b614ac0382bc61d86d63e39e4f06815c09935af6dfd6b6433b6f
-SIZE (testing-eac4c18f749488d7232af275405e0e1b67d84cb3.tar.gz) = 2268367
-SHA256 (third_party-9d80a193fbfe8e2f2a29be2efeee93de9a826dcb.tar.gz) = e7a8ef9b35e940f56bebd117b60bc956878efbe0561a5ad63b447684ac671a42
-SIZE (third_party-9d80a193fbfe8e2f2a29be2efeee93de9a826dcb.tar.gz) = 833353776
-SHA256 (tools-c809c4133185094fbd75508202221ff14fc92f7c.tar.gz) = 8980b3c991553218277f0da678c050990fc67f600d22881ef670f7bc7b0ca11c
-SIZE (tools-c809c4133185094fbd75508202221ff14fc92f7c.tar.gz) = 15206411
+SHA256 (testing-63412fdcdfe281e6b9531a5e1086a59c0b9e6909.tar.gz) = 7736bf756fbfc347ae950c3536b67eae6d71b348b880e00d13fa46869c006d3e
+SIZE (testing-63412fdcdfe281e6b9531a5e1086a59c0b9e6909.tar.gz) = 2138948
+SHA256 (third_party-d212a71416ad7c6ceca04d6d27dfdd84fd00c04c.tar.gz) = ac352fd4ec91b848dd13e272afd09140f93a7cdbd6bbb530b8f9f4d16e7a8517
+SIZE (third_party-d212a71416ad7c6ceca04d6d27dfdd84fd00c04c.tar.gz) = 845470295
+SHA256 (tools-6820cc03cc8a4b1fb99747f30e8249d138a70981.tar.gz) = 68099de97ff0ca495d61bae0a2d597432e748ca662759ab8c8c06e7c5a078d29
+SIZE (tools-6820cc03cc8a4b1fb99747f30e8249d138a70981.tar.gz) = 15363489
 SHA256 (rust/crates/addr2line-0.24.2.crate) = dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1
 SIZE (rust/crates/addr2line-0.24.2.crate) = 39015
 SHA256 (rust/crates/adler2-2.0.0.crate) = 512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627
@@ -175,12 +175,12 @@ SHA256 (rust/crates/crypto-common-0.1.6.crate) = 1bfb12502f3fc46cca1bb51ac28df9d
 SIZE (rust/crates/crypto-common-0.1.6.crate) = 8760
 SHA256 (rust/crates/ctr-0.9.2.crate) = 0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835
 SIZE (rust/crates/ctr-0.9.2.crate) = 18344
-SHA256 (rust/crates/cubeb-0.22.0.crate) = 0372a01dfe93dbe0f2749dc5e5a10556691d2476afb41a8ee7967221cd373348
-SIZE (rust/crates/cubeb-0.22.0.crate) = 8104
-SHA256 (rust/crates/cubeb-core-0.22.0.crate) = 0a104beb37330acb012855a6ec1e2b1802fc8553d8ccc2644cd1444108ad49e5
-SIZE (rust/crates/cubeb-core-0.22.0.crate) = 12611
-SHA256 (rust/crates/cubeb-sys-0.22.0.crate) = a390ab6e7d98f0df07afdaf39768976c4d7e88a5c10cc9b63ee1e1cb0cd9aebc
-SIZE (rust/crates/cubeb-sys-0.22.0.crate) = 399374
+SHA256 (rust/crates/cubeb-0.27.0.crate) = 161012aab8ac9fbe7e367cce9004d2936b860b960ed308e21ad8f65c87f55938
+SIZE (rust/crates/cubeb-0.27.0.crate) = 8115
+SHA256 (rust/crates/cubeb-core-0.27.0.crate) = c16577b3e7e18e584867a5f364ff4c0c07c7b1850c3b410369cc5cccde878ecb
+SIZE (rust/crates/cubeb-core-0.27.0.crate) = 12615
+SHA256 (rust/crates/cubeb-sys-0.27.0.crate) = 9dc6dce42299ac8a1943d947742329fe13ed0e59b466abf6babed04f1725b732
+SIZE (rust/crates/cubeb-sys-0.27.0.crate) = 404087
 SHA256 (rust/crates/darling-0.20.10.crate) = 6f63b86c8a8826a49b8c21f08a2d07338eec8d900540f8630dc76284be802989
 SIZE (rust/crates/darling-0.20.10.crate) = 32031
 SHA256 (rust/crates/darling_core-0.20.10.crate) = 95133861a8032aaea082871032f5815eb9e98cef03fa916ab4500513994df9e5
@@ -829,7 +829,7 @@ SHA256 (signalapp-curve25519-dalek-signal-curve25519-4.1.3_GH0.tar.gz) = 8dd338d
 SIZE (signalapp-curve25519-dalek-signal-curve25519-4.1.3_GH0.tar.gz) = 808022
 SHA256 (signalapp-libsignal-v0.65.1_GH0.tar.gz) = d3f05a04a7ec31416012e6db6747244d09095d3fd006593164430ff26a9003a0
 SIZE (signalapp-libsignal-v0.65.1_GH0.tar.gz) = 1905182
-SHA256 (signalapp-ringrtc-v2.50.3_GH0.tar.gz) = a772bcc08f4cc82f0959e46b819a623129bb682985ccad2f5cea9b290fe58f17
-SIZE (signalapp-ringrtc-v2.50.3_GH0.tar.gz) = 813691
-SHA256 (signalapp-webrtc-6834g_GH0.tar.gz) = 1708d4078936f02e75bc452a21aff32eeabcbaddc933c6871dc1e7362a8730d6
-SIZE (signalapp-webrtc-6834g_GH0.tar.gz) = 39905131
+SHA256 (signalapp-ringrtc-v2.50.5_GH0.tar.gz) = 57a1ac87308937519d603160dbf97831cc66ace5bdb59acd26035b6a0066179c
+SIZE (signalapp-ringrtc-v2.50.5_GH0.tar.gz) = 813908
+SHA256 (signalapp-webrtc-6998a_GH0.tar.gz) = fe2801e318f0358b524185c7b24f6e79fd318d5a614f6642bda5289159b985fe
+SIZE (signalapp-webrtc-6998a_GH0.tar.gz) = 39945339
diff --git a/multimedia/ringrtc/files/patch-build_config_clang_BUILD.gn b/multimedia/ringrtc/files/patch-build_config_clang_BUILD.gn
new file mode 100644
index 000000000000..f2dd7f101af1
--- /dev/null
+++ b/multimedia/ringrtc/files/patch-build_config_clang_BUILD.gn
@@ -0,0 +1,11 @@
+--- src/webrtc/src/build/config/clang/BUILD.gn.orig	2024-07-30 11:12:21 UTC
++++ src/webrtc/src/build/config/clang/BUILD.gn
+@@ -224,7 +224,7 @@ clang_lib("compiler_builtins") {
+       libname = "ios"
+     }
+   } else {
+-    libname = "builtins"
++    #libname = "builtins"
+   }
+ }
+ 
diff --git a/multimedia/ringrtc/files/patch-build_config_compiler_BUILD.gn b/multimedia/ringrtc/files/patch-build_config_compiler_BUILD.gn
index 322de8d5ed72..92fcd9a9cd56 100644
--- a/multimedia/ringrtc/files/patch-build_config_compiler_BUILD.gn
+++ b/multimedia/ringrtc/files/patch-build_config_compiler_BUILD.gn
@@ -1,6 +1,6 @@
 --- src/webrtc/src/build/config/compiler/BUILD.gn.orig	2024-06-18 16:34:35 UTC
 +++ src/webrtc/src/build/config/compiler/BUILD.gn
-@@ -199,7 +199,7 @@ declare_args() {
+@@ -198,7 +198,7 @@ declare_args() {
    # This greatly reduces the size of debug builds, at the cost of
    # debugging information which is required by some specialized
    # debugging tools.
@@ -9,7 +9,7 @@
  }
  
  declare_args() {
-@@ -256,13 +256,16 @@ config("no_unresolved_symbols") {
+@@ -255,13 +255,16 @@ config("no_unresolved_symbols") {
  # Compiler instrumentation can introduce dependencies in DSOs to symbols in
  # the executable they are loaded into, so they are unresolved at link-time.
  config("no_unresolved_symbols") {
@@ -27,7 +27,7 @@
  }
  
  # compiler ---------------------------------------------------------------------
-@@ -508,6 +511,10 @@ config("compiler") {
+@@ -519,6 +522,10 @@ config("compiler") {
      }
    }
  
@@ -38,7 +38,7 @@
    # Linux-specific compiler flags setup.
    # ------------------------------------
    if (use_icf && (!is_apple || use_lld)) {
-@@ -561,7 +568,7 @@ config("compiler") {
+@@ -578,7 +585,7 @@ config("compiler") {
      ldflags += [ "-Wl,-z,keep-text-section-prefix" ]
    }
  
@@ -47,25 +47,25 @@
      cflags += [ "-fcrash-diagnostics-dir=" + clang_diagnostic_dir ]
      if (save_reproducers_on_lld_crash && use_lld) {
        ldflags += [
-@@ -1220,7 +1227,7 @@ config("compiler_cpu_abi") {
+@@ -1240,7 +1247,7 @@ config("compiler_cpu_abi") {
          ]
        }
      } else if (current_cpu == "arm") {
--      if (is_clang && !is_android && !is_nacl &&
-+      if (is_clang && !is_android && !is_nacl && !is_bsd &&
-           !(is_chromeos_lacros && is_chromeos_device)) {
+-      if (is_clang && !is_android && !is_nacl && !is_chromeos_device) {
++      if (is_clang && !is_android && !is_nacl && !is_chromeos_device && !is_bsd) {
          cflags += [ "--target=arm-linux-gnueabihf" ]
          ldflags += [ "--target=arm-linux-gnueabihf" ]
-@@ -1235,7 +1242,7 @@ config("compiler_cpu_abi") {
-         cflags += [ "-mtune=$arm_tune" ]
+       }
+@@ -1255,7 +1262,7 @@ config("compiler_cpu_abi") {
        }
      } else if (current_cpu == "arm64") {
--      if (is_clang && !is_android && !is_nacl && !is_fuchsia &&
-+      if (is_clang && !is_android && !is_nacl && !is_fuchsia && !is_bsd &&
-           !(is_chromeos_lacros && is_chromeos_device)) {
+       if (is_clang && !is_android && !is_nacl && !is_fuchsia &&
+-          !is_chromeos_device) {
++          !is_chromeos_device && !is_bsd) {
          cflags += [ "--target=aarch64-linux-gnu" ]
          ldflags += [ "--target=aarch64-linux-gnu" ]
-@@ -1570,7 +1577,7 @@ config("compiler_deterministic") {
+       }
+@@ -1589,7 +1596,7 @@ config("compiler_deterministic") {
      # different build directory like "out/feature_a" and "out/feature_b" if
      # we build same files with same compile flag.
      # Other paths are already given in relative, no need to normalize them.
@@ -74,7 +74,7 @@
        # TODO(https://crbug.com/1231236): Use -ffile-compilation-dir= here.
        cflags += [
          "-Xclang",
-@@ -1628,7 +1635,7 @@ config("clang_revision") {
+@@ -1647,7 +1654,7 @@ config("clang_revision") {
  }
  
  config("clang_revision") {
@@ -83,46 +83,29 @@
        current_os != "zos") {
      update_args = [
        "--print-revision",
-@@ -1741,7 +1748,7 @@ config("runtime_library") {
-   # the C++ symbols. This config ensures the C++ symbols exist and are strong in
-   # order to cause that replacement to occur by explicitly linking in clang's
-   # compiler-rt library.
--  if (is_clang && !is_nacl && !is_cronet_build) {
-+  if (is_clang && !is_bsd && !is_nacl && !is_cronet_build) {
-     configs += [ "//build/config/clang:compiler_builtins" ]
-   }
+@@ -1965,20 +1972,12 @@ config("default_warnings") {
+         ]
+       }
  
-@@ -1952,9 +1959,6 @@ config("default_warnings") {
-       cflags += [
-         # TODO(crbug.com/330524456): -Wcast-function-type is under -Wextra now.
-         "-Wno-cast-function-type",
+-      cflags += [
+-        # TODO(crbug.com/330524456): -Wcast-function-type is under -Wextra now.
+-        "-Wno-cast-function-type",
 -
 -        # TODO(crbug.com/40284799): Fix and re-enable.
 -        "-Wno-thread-safety-reference-return",
-       ]
- 
+-      ]
+-
        cflags_cc += [
-@@ -1962,18 +1966,12 @@ config("default_warnings") {
+         # TODO(crbug.com/328490295): Fix and re-enable for C flags.
          "-Wenum-compare-conditional",
        ]
  
 -      if (!is_nacl) {
-+      if (!is_nacl && !is_openbsd) {
++      if (!is_nacl && !is_bsd) {
          cflags_cc += [
            # TODO(crbug.com/41486292): Fix and re-enable.
            "-Wno-c++11-narrowing-const-reference",
-         ]
- 
--        # TODO(crbug.com/344680447): Fix and re-enable.
--        cflags_cc += [ "-Wno-missing-template-arg-list-after-template-kw" ]
--
--        # TODO(crbug.com/356172342): Fix and re-enable.
--        cflags_cc += [ "-Wno-dangling-assignment-gsl" ]
--
-         if (llvm_force_head_revision) {
-           # TODO(crbug.com/373130005): Fix and re-enable.
-           cflags_cc += [ "-Wno-deprecated-literal-operator" ]
-@@ -2711,7 +2709,7 @@ config("afdo") {
+@@ -2769,7 +2768,7 @@ config("afdo") {
  # There are some targeted places that AFDO regresses, so we provide a separate
  # config to allow AFDO to be disabled per-target.
  config("afdo") {
@@ -131,7 +114,7 @@
      cflags = []
      if (clang_emit_debug_info_for_profiling) {
        # Add the following flags to generate debug info for profiling.
-@@ -2738,7 +2736,7 @@ config("afdo") {
+@@ -2796,7 +2795,7 @@ config("afdo") {
        cflags += [ "-Wno-backend-plugin" ]
        inputs = [ _clang_sample_profile ]
      }
@@ -140,7 +123,7 @@
      cflags = [ "-fauto-profile=${auto_profile_path}" ]
      inputs = [ auto_profile_path ]
    }
-@@ -2915,7 +2913,7 @@ config("symbols") {
+@@ -2973,7 +2972,7 @@ config("symbols") {
      cflags += [ "-gomit-unreferenced-methods" ]
    }
  
diff --git a/multimedia/ringrtc/files/patch-cargo-crates_cubeb-sys_build.rs b/multimedia/ringrtc/files/patch-cargo-crates_cubeb-sys_build.rs
index f39a0827b475..d57795e9369c 100644
--- a/multimedia/ringrtc/files/patch-cargo-crates_cubeb-sys_build.rs
+++ b/multimedia/ringrtc/files/patch-cargo-crates_cubeb-sys_build.rs
@@ -1,14 +1,13 @@
---- cargo-crates/cubeb-sys-0.22.0/build.rs.orig	2025-02-01 09:46:43 UTC
-+++ cargo-crates/cubeb-sys-0.22.0/build.rs
-@@ -161,23 +161,6 @@ fn main() {
+--- cargo-crates/cubeb-sys-0.27.0/build.rs.orig	2025-02-01 09:46:43 UTC
++++ cargo-crates/cubeb-sys-0.27.0/build.rs
+@@ -155,22 +155,6 @@ fn main() {
          // Ignore the result of find_library. We don't care if the
          // libraries are missing.
          let _ = pkg_config::find_library("alsa");
 -        if pkg_config::find_library("libpulse").is_ok() {
 -            // Do not link the rust backends for tests: doing so causes duplicate
 -            // symbol definitions.
--            #[cfg(not(feature = "unittest-build"))]
--            {
+-            if build_rust_libs {
 -                println!("cargo:rustc-link-lib=static=cubeb_pulse");
 -                let mut search_path = std::env::current_dir().unwrap();
 -                search_path.push(&(libcubeb_path + "/src/cubeb-pulse-rs/target"));
diff --git a/multimedia/ringrtc/files/patch-src_rust_src_webrtc_audio__device__module__utils.rs b/multimedia/ringrtc/files/patch-src_rust_src_webrtc_audio__device__module__utils.rs
index dbc1bb40b350..9d75b5641e26 100644
--- a/multimedia/ringrtc/files/patch-src_rust_src_webrtc_audio__device__module__utils.rs
+++ b/multimedia/ringrtc/files/patch-src_rust_src_webrtc_audio__device__module__utils.rs
@@ -1,5 +1,5 @@
---- src/rust/src/webrtc/audio_device_module_utils.rs.orig	2024-11-18 16:04:01.050553000 +0100
-+++ src/rust/src/webrtc/audio_device_module_utils.rs	2024-11-18 16:06:58.737883000 +0100
+--- src/rust/src/webrtc/audio_device_module_utils.rs.orig	2024-11-18 16:04:01 UTC
++++ src/rust/src/webrtc/audio_device_module_utils.rs
 @@ -10,7 +10,7 @@ use cubeb_core::DevicePref;
  use anyhow::anyhow;
  use cubeb::{DeviceCollection, DeviceState};
diff --git a/multimedia/ringrtc/files/patch-src_webrtc_src_third__party_libevent_BUILD.gn b/multimedia/ringrtc/files/patch-src_webrtc_src_third__party_libevent_BUILD.gn
deleted file mode 100644
index 4c2a5a7a8e61..000000000000
--- a/multimedia/ringrtc/files/patch-src_webrtc_src_third__party_libevent_BUILD.gn
+++ /dev/null
@@ -1,16 +0,0 @@
---- src/webrtc/src/third_party/libevent/BUILD.gn.orig	2021-03-15 17:07:00 UTC
-+++ src/webrtc/src/third_party/libevent/BUILD.gn
-@@ -48,6 +48,13 @@ static_library("libevent") {
-       "mac/event-config.h",
-     ]
-     include_dirs += [ "mac" ]
-+  } else if (is_bsd) {
-+    sources += [
-+      "kqueue.c",
-+      "freebsd/config.h",
-+      "freebsd/event-config.h",
-+    ]
-+    include_dirs = [ "freebsd" ]
-   } else if (is_linux || is_chromeos) {
-     sources += [
-       "epoll.c",
diff --git a/multimedia/ringrtc/files/patch-third__party_perfetto_include_perfetto_base_build__config.h b/multimedia/ringrtc/files/patch-third__party_perfetto_include_perfetto_base_build__config.h
index 5b54ed2fbd47..526cbf4b6a80 100644
--- a/multimedia/ringrtc/files/patch-third__party_perfetto_include_perfetto_base_build__config.h
+++ b/multimedia/ringrtc/files/patch-third__party_perfetto_include_perfetto_base_build__config.h
@@ -5,62 +5,66 @@
  #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_ANDROID() 1
  #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_LINUX() 0
 +#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_BSD() 0
+ #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_LINUX_BUT_NOT_QNX() 0
  #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_WIN() 0
  #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_APPLE() 0
- #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_MAC() 0
-@@ -38,6 +39,7 @@
+@@ -41,6 +42,7 @@
  #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_ANDROID() 0
  #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_APPLE() 1
  #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_LINUX() 0
 +#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_BSD() 0
+ #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_LINUX_BUT_NOT_QNX() 0
  #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_WIN() 0
  #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_WASM() 0
- #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_FUCHSIA() 0
-@@ -51,9 +53,10 @@
- #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_MAC() 1
+@@ -62,9 +64,10 @@
  #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_IOS() 0
+ #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_APPLE_TVOS() 0
  #endif
 -#elif defined(__linux__)
 +#elif defined(__linux__) || defined(__OpenBSD__) || defined(__FreeBSD__)
  #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_ANDROID() 0
  #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_LINUX() 1
 +#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_BSD() 1
+ #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_LINUX_BUT_NOT_QNX() 1
  #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_WIN() 0
  #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_APPLE() 0
- #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_MAC() 0
-@@ -64,6 +67,8 @@
+@@ -78,6 +81,7 @@
+ #elif defined(__QNXNTO__)
+ #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_ANDROID() 0
+ #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_LINUX() 1
++#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_BSD() 0
+ #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_LINUX_BUT_NOT_QNX() 0
+ #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_WIN() 0
+ #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_APPLE() 0
+@@ -91,6 +95,7 @@
  #elif defined(_WIN32)
  #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_ANDROID() 0
  #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_LINUX() 0
 +#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_BSD() 0
-+#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_FREEBSD() 0
+ #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_LINUX_BUT_NOT_QNX() 0
  #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_WIN() 1
  #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_APPLE() 0
- #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_MAC() 0
-@@ -74,6 +79,8 @@
+@@ -104,6 +109,7 @@
  #elif defined(__EMSCRIPTEN__)
  #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_ANDROID() 0
  #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_LINUX() 0
 +#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_BSD() 0
-+#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_FREEBSD() 0
+ #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_LINUX_BUT_NOT_QNX() 0
  #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_WIN() 0
  #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_APPLE() 0
- #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_MAC() 0
-@@ -87,6 +94,8 @@
+@@ -120,6 +126,7 @@
  #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_MAC() 0
  #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_IOS() 0
  #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_LINUX() 0
 +#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_BSD() 0
-+#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_FREEBSD() 0
+ #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_LINUX_BUT_NOT_QNX() 0
  #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_WIN() 0
  #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_WASM() 0
- #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_FUCHSIA() 1
-@@ -94,6 +103,8 @@
+@@ -130,6 +137,7 @@
  #elif defined(__native_client__)
  #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_ANDROID() 0
  #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_LINUX() 0
 +#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_BSD() 0
-+#define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_FREEBSD() 0
+ #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_LINUX_BUT_NOT_QNX() 0
  #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_WIN() 0
  #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_APPLE() 0
- #define PERFETTO_BUILDFLAG_DEFINE_PERFETTO_OS_MAC() 0
diff --git a/multimedia/ringrtc/files/patch-third__party_perfetto_src_base_event__fd.cc b/multimedia/ringrtc/files/patch-third__party_perfetto_src_base_event__fd.cc
index 9fdae231084d..d4fa937b5483 100644
--- a/multimedia/ringrtc/files/patch-third__party_perfetto_src_base_event__fd.cc
+++ b/multimedia/ringrtc/files/patch-third__party_perfetto_src_base_event__fd.cc
@@ -1,21 +1,21 @@
 --- src/webrtc/src/third_party/perfetto/src/base/event_fd.cc.orig	2022-02-07 13:39:41 UTC
 +++ src/webrtc/src/third_party/perfetto/src/base/event_fd.cc
-@@ -22,7 +22,8 @@
- #if PERFETTO_BUILDFLAG(PERFETTO_OS_WIN)
- #include <Windows.h>
+@@ -24,7 +24,8 @@
  #include <synchapi.h>
+ #elif PERFETTO_BUILDFLAG(PERFETTO_OS_QNX)
+ #include <unistd.h>
 -#elif PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) || \
 +#elif (PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) && \
 +    !PERFETTO_BUILDFLAG(PERFETTO_OS_BSD)) || \
      PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID)
  #include <sys/eventfd.h>
  #include <unistd.h>
-@@ -57,7 +58,8 @@ void EventFd::Clear() {
+@@ -59,7 +60,8 @@ void EventFd::Clear() {
      PERFETTO_DFATAL("EventFd::Clear()");
  }
  
--#elif PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) || \
-+#elif (PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) && \
+-#elif PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX_BUT_NOT_QNX) || \
++#elif (PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX_BUT_NOT_QNX) && \
 +    !PERFETTO_BUILDFLAG(PERFETTO_OS_BSD)) || \
      PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID)
  
diff --git a/multimedia/ringrtc/files/patch-third__party_perfetto_src_base_periodic__task.cc b/multimedia/ringrtc/files/patch-third__party_perfetto_src_base_periodic__task.cc
index d1011adb7006..c85611286293 100644
--- a/multimedia/ringrtc/files/patch-third__party_perfetto_src_base_periodic__task.cc
+++ b/multimedia/ringrtc/files/patch-third__party_perfetto_src_base_periodic__task.cc
@@ -4,8 +4,8 @@
  #include "perfetto/base/time.h"
  #include "perfetto/ext/base/file_utils.h"
  
--#if PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) || \
-+#if (PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) && !PERFETTO_BUILDFLAG(PERFETTO_OS_BSD)) || \
+-#if PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX_BUT_NOT_QNX) || \
++#if (PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX_BUT_NOT_QNX) && !PERFETTO_BUILDFLAG(PERFETTO_OS_BSD)) || \
      (PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID) && __ANDROID_API__ >= 19)
  #include <sys/timerfd.h>
  #endif
@@ -13,8 +13,8 @@
  }
  
  ScopedPlatformHandle CreateTimerFd(const PeriodicTask::Args& args) {
--#if PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) || \
-+#if (PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) && !PERFETTO_BUILDFLAG(PERFETTO_OS_BSD)) || \
+-#if PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX_BUT_NOT_QNX) || \
++#if (PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX_BUT_NOT_QNX) && !PERFETTO_BUILDFLAG(PERFETTO_OS_BSD)) || \
      (PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID) && __ANDROID_API__ >= 19)
    ScopedPlatformHandle tfd(
        timerfd_create(CLOCK_BOOTTIME, TFD_CLOEXEC | TFD_NONBLOCK));
diff --git a/multimedia/ringrtc/files/patch-third__party_perfetto_src_base_string__utils.cc b/multimedia/ringrtc/files/patch-third__party_perfetto_src_base_string__utils.cc
index 94d07456f39f..19116d9de29f 100644
--- a/multimedia/ringrtc/files/patch-third__party_perfetto_src_base_string__utils.cc
+++ b/multimedia/ringrtc/files/patch-third__party_perfetto_src_base_string__utils.cc
@@ -1,15 +1,12 @@
 --- src/webrtc/src/third_party/perfetto/src/base/string_utils.cc.orig	2023-12-10 06:10:27 UTC
 +++ src/webrtc/src/third_party/perfetto/src/base/string_utils.cc
-@@ -38,9 +38,10 @@ namespace base {
- 
+@@ -39,7 +39,8 @@ namespace base { 
  // Locale-independant as possible version of strtod.
  double StrToD(const char* nptr, char** endptr) {
--#if PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID) || \
-+#if (PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID) || \
-     PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) ||   \
--    PERFETTO_BUILDFLAG(PERFETTO_OS_APPLE)
-+    PERFETTO_BUILDFLAG(PERFETTO_OS_APPLE)) && \
-+    !PERFETTO_BUILDFLAG(PERFETTO_OS_BSD)
+ #if PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID) || \
+-    PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX_BUT_NOT_QNX) || \
++    (PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX_BUT_NOT_QNX) && \
++    !PERFETTO_BUILDFLAG(PERFETTO_OS_BSD)) || \
+     PERFETTO_BUILDFLAG(PERFETTO_OS_APPLE)
    static auto c_locale = newlocale(LC_ALL, "C", nullptr);
    return strtod_l(nptr, endptr, c_locale);
- #else
diff --git a/multimedia/ringrtc/files/patch-third__party_perfetto_src_base_subprocess__posix.cc b/multimedia/ringrtc/files/patch-third__party_perfetto_src_base_subprocess__posix.cc
index cd342dc750aa..215839dc1cef 100644
--- a/multimedia/ringrtc/files/patch-third__party_perfetto_src_base_subprocess__posix.cc
+++ b/multimedia/ringrtc/files/patch-third__party_perfetto_src_base_subprocess__posix.cc
@@ -4,8 +4,8 @@
  #include <thread>
  #include <tuple>
  
--#if PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) || \
-+#if (PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) && \
+-#if PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX_BUT_NOT_QNX) || \
++#if (PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX_BUT_NOT_QNX) && \
 +    !PERFETTO_BUILDFLAG(PERFETTO_OS_BSD)) || \
      PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID)
  #include <sys/prctl.h>
@@ -14,8 +14,8 @@
  // Don't add any dynamic allocation in this function. This will be invoked
  // under a fork(), potentially in a state where the allocator lock is held.
  void __attribute__((noreturn)) ChildProcess(ChildProcessArgs* args) {
--#if PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) || \
-+#if (PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) && \
+-#if PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX_BUT_NOT_QNX) || \
++#if (PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX_BUT_NOT_QNX) && \
 +    !PERFETTO_BUILDFLAG(PERFETTO_OS_BSD)) || \
      PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID)
    // In no case we want a child process to outlive its parent process. This is
diff --git a/multimedia/ringrtc/files/patch-third__party_perfetto_src_base_thread__task__runner.cc b/multimedia/ringrtc/files/patch-third__party_perfetto_src_base_thread__task__runner.cc
index cd18831f9f0e..f6205c7a2e9b 100644
--- a/multimedia/ringrtc/files/patch-third__party_perfetto_src_base_thread__task__runner.cc
+++ b/multimedia/ringrtc/files/patch-third__party_perfetto_src_base_thread__task__runner.cc
@@ -1,14 +1,12 @@
 --- src/webrtc/src/third_party/perfetto/src/base/thread_task_runner.cc.orig	2022-02-07 13:39:41 UTC
 +++ src/webrtc/src/third_party/perfetto/src/base/thread_task_runner.cc
-@@ -27,8 +27,9 @@
+@@ -27,7 +27,8 @@
  #include "perfetto/ext/base/thread_utils.h"
  #include "perfetto/ext/base/unix_task_runner.h"
  
--#if PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) || \
--    PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID)
-+#if (PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) || \
-+    PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID)) && \
-+    !PERFETTO_BUILDFLAG(PERFETTO_OS_BSD)
+-#if PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX_BUT_NOT_QNX) || \
++#if (PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX_BUT_NOT_QNX) && \
++    !PERFETTO_BUILDFLAG(PERFETTO_OS_BSD)) || \
+     PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID)
  #include <sys/prctl.h>
  #endif
- 
diff --git a/multimedia/ringrtc/files/patch-third__party_perfetto_src_base_unix__socket.cc b/multimedia/ringrtc/files/patch-third__party_perfetto_src_base_unix__socket.cc
index d6b68eca4885..028feed9de5b 100644
--- a/multimedia/ringrtc/files/patch-third__party_perfetto_src_base_unix__socket.cc
+++ b/multimedia/ringrtc/files/patch-third__party_perfetto_src_base_unix__socket.cc
@@ -1,6 +1,6 @@
 --- src/webrtc/src/third_party/perfetto/src/base/unix_socket.cc.orig	2023-09-13 12:11:42 UTC
 +++ src/webrtc/src/third_party/perfetto/src/base/unix_socket.cc
-@@ -44,7 +44,7 @@
+@@ -45,7 +45,7 @@
  #include <unistd.h>
  #endif
  
@@ -9,12 +9,12 @@
  #include <sys/ucred.h>
  #endif
  
-@@ -917,9 +917,13 @@ void UnixSocket::ReadPeerCredentialsPosix() {
-     return;
-   PERFETTO_CHECK(peer_cred_mode_ != SockPeerCredMode::kIgnore);
- 
--#if PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) || \
-+#if !defined(__FreeBSD__) && PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) || \
+@@ -977,9 +977,13 @@ void UnixSocket::ReadPeerCredentialsPosix() {
+   int res = getpeereid(fd, &peer_uid_, nullptr);
+   PERFETTO_CHECK(res == 0);
+   // There is no pid when obtaining peer credentials for QNX
+-#elif PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) || \
++#elif !defined(__FreeBSD__) && PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) || \
      PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID)
 +#if PERFETTO_BUILDFLAG(PERFETTO_OS_BSD)
 +  struct sockpeercred user_cred;
diff --git a/multimedia/ringrtc/files/patch-third__party_perfetto_src_base_utils.cc b/multimedia/ringrtc/files/patch-third__party_perfetto_src_base_utils.cc
index 24c3e85f50de..8a17ae1d9c42 100644
--- a/multimedia/ringrtc/files/patch-third__party_perfetto_src_base_utils.cc
+++ b/multimedia/ringrtc/files/patch-third__party_perfetto_src_base_utils.cc
@@ -1,26 +1,47 @@
 --- src/webrtc/src/third_party/perfetto/src/base/utils.cc.orig	2024-10-22 08:31:56 UTC
 +++ src/webrtc/src/third_party/perfetto/src/base/utils.cc
-@@ -38,8 +38,9 @@
+@@ -38,7 +38,8 @@
  #include <mach/vm_page_size.h>
  #endif
  
--#if PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) || \
--    PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID)
-+#if (PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) || \
-+     PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID)) && \
-+    !PERFETTO_BUILDFLAG(PERFETTO_OS_BSD)
+-#if PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX_BUT_NOT_QNX) || \
++#if (PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX_BUT_NOT_QNX) && \
++    !PERFETTO_BUILDFLAG(PERFETTO_OS_BSD)) || \
+     PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID)
  #include <sys/prctl.h>
  
- #ifndef PR_GET_TAGGED_ADDR_CTRL
-@@ -337,8 +338,9 @@ void AlignedFree(void* ptr) {
+@@ -279,14 +280,22 @@ void Daemonize(std::function<int()> parent_cb) {
+ 
+ std::string GetCurExecutablePath() {
+   std::string self_path;
+-#if PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) ||   \
++#if (PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) ||   \
+     PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID) || \
+-    PERFETTO_BUILDFLAG(PERFETTO_OS_FUCHSIA)
++    PERFETTO_BUILDFLAG(PERFETTO_OS_FUCHSIA)) && \
++    !PERFETTO_BUILDFLAG(PERFETTO_OS_BSD)
+   char buf[PATH_MAX];
+   ssize_t size = readlink("/proc/self/exe", buf, sizeof(buf));
+   PERFETTO_CHECK(size != -1);
+   // readlink does not null terminate.
+   self_path = std::string(buf, static_cast<size_t>(size));
++#elif PERFETTO_BUILDFLAG(PERFETTO_OS_BSD)
++  char *buf;
++  const char *cpath = "/usr/local/chrome/chrome";
++  if ((buf = getenv("CHROME_EXE_PATH")) != NULL)
++    self_path = std::string(buf);
++  else
++    self_path = std::string(cpath);
+ #elif PERFETTO_BUILDFLAG(PERFETTO_OS_APPLE)
+   uint32_t size = 0;
+   PERFETTO_CHECK(_NSGetExecutablePath(nullptr, &size));
+@@ -338,7 +347,8 @@ void AlignedFree(void* ptr) {
  }
  
  bool IsSyncMemoryTaggingEnabled() {
--#if PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) || \
--    PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID)
-+#if (PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) || \
-+     PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID)) && \
-+    !PERFETTO_BUILDFLAG(PERFETTO_OS_BSD)
+-#if PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX_BUT_NOT_QNX) || \
++#if (PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX_BUT_NOT_QNX) && \
++    !PERFETTO_BUILDFLAG(PERFETTO_OS_BSD)) || \
+     PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID)
    // Compute only once per lifetime of the process.
    static bool cached_value = [] {
-     const int res = prctl(PR_GET_TAGGED_ADDR_CTRL, 0, 0, 0, 0);
diff --git a/multimedia/ringrtc/files/patch-third__party_perfetto_src_tracing_ipc_memfd.cc b/multimedia/ringrtc/files/patch-third__party_perfetto_src_tracing_ipc_memfd.cc
index 7176f04ac4d4..8fc6f48670d5 100644
--- a/multimedia/ringrtc/files/patch-third__party_perfetto_src_tracing_ipc_memfd.cc
+++ b/multimedia/ringrtc/files/patch-third__party_perfetto_src_tracing_ipc_memfd.cc
@@ -4,9 +4,9 @@
  
  #define PERFETTO_MEMFD_ENABLED()             \
    PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID) || \
--      PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX)
-+      (PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) && \
-+      !PERFETTO_BUILDFLAG(PERFETTO_OS_BSD))
+-  PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX_BUT_NOT_QNX)
++  (PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX_BUT_NOT_QNX) && \
++  !PERFETTO_BUILDFLAG(PERFETTO_OS_BSD))
  
  #if PERFETTO_MEMFD_ENABLED()
  
diff --git a/multimedia/ringrtc/update.txt b/multimedia/ringrtc/update.txt
index da7e6ba707c8..ff9229357ffc 100644
--- a/multimedia/ringrtc/update.txt
+++ b/multimedia/ringrtc/update.txt
@@ -2,4 +2,4 @@ To update this port:
 Bump DISTVERSION
 eventually bump WEBRTC_REV (sh net-im/signal-desktop/get_deps.sh)
 eventually update *_REV (sh multimedia/ringrtc/webrtc_fetch.sh)
-eventually update CARGO_CRATES (fetch -qo - https://raw.githubusercontent.com/signalapp/ringrtc/v2.50.3/Cargo.lock | awk -f /usr/ports/Mk/Scripts/cargo-crates.awk | portedit merge -i Makefile.crates)
+eventually update CARGO_CRATES (fetch -qo - https://raw.githubusercontent.com/signalapp/ringrtc/v2.50.5/Cargo.lock | awk -f /usr/ports/Mk/Scripts/cargo-crates.awk | portedit merge -i Makefile.crates)
diff --git a/multimedia/ringrtc/webrtc_fetch.sh b/multimedia/ringrtc/webrtc_fetch.sh
index ce5981ed2c81..837add72a7bd 100644
--- a/multimedia/ringrtc/webrtc_fetch.sh
+++ b/multimedia/ringrtc/webrtc_fetch.sh
@@ -1,6 +1,6 @@
 #!/bin/sh
 
-WEBRTC_REV=6834g
+WEBRTC_REV=6998a
 
 base_url="https://chromium.googlesource.com/chromium/src/base.git/+archive/"
 boringssl_url="https://boringssl.googlesource.com/boringssl.git/+archive/"
@@ -123,3 +123,4 @@ if [ ! -f /usr/ports/distfiles/opus-${opus_hash}.tar.gz ] && [ ! -f dist_good/op
 fi
 
 echo "Copy dist_good/* in /usr/ports/distfiles and run make makesum"
+echo "rsync dist_good/ freefall:public_distfiles/ringrtc/"