summaryrefslogtreecommitdiff
path: root/www/tor-browser
diff options
context:
space:
mode:
Diffstat (limited to 'www/tor-browser')
-rw-r--r--www/tor-browser/Makefile49
-rw-r--r--www/tor-browser/distinfo22
-rw-r--r--www/tor-browser/files/patch-bug1559213131
-rw-r--r--www/tor-browser/files/patch-bug185975242
-rw-r--r--www/tor-browser/files/patch-bug187405925
-rw-r--r--www/tor-browser/files/patch-bug187636623
-rw-r--r--www/tor-browser/files/patch-bug84756883
-rw-r--r--www/tor-browser/files/patch-build_gn__processor.py (renamed from www/tor-browser/files/patch-python_mozbuild_mozbuild_gn__processor.py)26
-rw-r--r--www/tor-browser/files/patch-dom_media_webrtc_libwebrtc__overrides_moz.build25
-rw-r--r--www/tor-browser/files/patch-gfx_skia_skia_src_core_SkRasterPipeline.h13
-rw-r--r--www/tor-browser/files/patch-ipc_glue_GeckoChildProcessHost.cpp13
-rw-r--r--www/tor-browser/files/patch-memory_mozalloc_throw__gcc.h69
-rw-r--r--www/tor-browser/files/patch-python_sites_mach.txt18
-rw-r--r--www/tor-browser/files/patch-third__party_chromium_build_toolchain_toolchain.gni18
-rw-r--r--www/tor-browser/files/patch-third__party_libwebrtc_build_config_BUILDCONFIG.gn98
-rw-r--r--www/tor-browser/files/patch-third__party_libwebrtc_modules_desktop__capture_linux_wayland__egl__dmabuf.cc23
-rw-r--r--www/tor-browser/files/patch-third__party_libwebrtc_modules_portal_pipewire__utils.h19
-rw-r--r--www/tor-browser/files/patch-third__party_sqlite3_ext_sqlite-vec_sqlite-vec.c15
-rw-r--r--www/tor-browser/files/patch-toolkit_components_processtools_procinfo__bsd.c104
19 files changed, 248 insertions, 568 deletions
diff --git a/www/tor-browser/Makefile b/www/tor-browser/Makefile
index ed510b698151..dc17a4db1534 100644
--- a/www/tor-browser/Makefile
+++ b/www/tor-browser/Makefile
@@ -1,15 +1,15 @@
PORTNAME= tor-browser
-DISTVERSION= 14.5.2
+DISTVERSION= 16.0a1
CATEGORIES= www net security wayland
-TAG_BASE= b54e21b36db35ad390c4f385b76cbd293a58cbc6
-TAG_TOR= 94aae5dcdfa2e99b516acb6a834a54f7de76e54f
+TAG_BASE= d366318349af0977ff23b492fa87e436e8672fdd
+TAG_TOR= 45b67d3be52f79e8a4b361fd04ab12f342ab0016
MASTER_SITES= TOR \
LOCAL/vvd \
https://build-sources.tbb.torproject.org/:source1 \
LOCAL/vvd:source1 \
LOCAL/jsm:source2 \
LOCAL/vvd:source2 \
- https://secure.informaction.com/:source3 \
+ https://dist.torproject.org/torbrowser/noscript/:source3 \
LOCAL/vvd:source3 \
https://gitlab.torproject.org/tpo/translation/-/archive/${TAG_BASE}.tar.gz?dummy=/:source4 \
LOCAL/vvd:source4 \
@@ -17,9 +17,9 @@ MASTER_SITES= TOR \
LOCAL/vvd:source5
MASTER_SITE_SUBDIR= torbrowser/${DISTVERSION}/:DEFAULT \
download/releases/:source3
-DISTNAME= src-firefox-tor-browser-128.10.1esr-14.5-1-build1
+DISTNAME= src-firefox-tor-browser-146.0a1-16.0-2-build2
MANUAL= manual_215922.zip
-NOSCRIPT= noscript-12.1.1.xpi
+NOSCRIPT= noscript-13.5.4.1984.xpi
DISTFILES= ${DISTNAME}.tar.xz \
${MANUAL}:source1 \
fonts-3--4348e1.tar.zst:source2 \
@@ -35,12 +35,12 @@ LICENSE= MPL20
LICENSE_FILE= ${WRKSRC}/LICENSE
BUILD_DEPENDS= nspr>=4.32:devel/nspr \
- nss>=3.101:security/nss \
- icu>=73.1,1:devel/icu \
+ nss>=3.112:security/nss \
+ icu>=76.1:devel/icu \
libevent>=2.1.8:devel/libevent \
- harfbuzz>=8.5.0:print/harfbuzz \
+ harfbuzz>=10.1.0:print/harfbuzz \
graphite2>=1.3.14:graphics/graphite2 \
- png>=1.6.43:graphics/png \
+ png>=1.6.45:graphics/png \
dav1d>=1.0.0:multimedia/dav1d \
libvpx>=1.14:multimedia/libvpx \
${PYTHON_PKGNAMEPREFIX}sqlite3>0:databases/py-sqlite3@${PY_FLAVOR} \
@@ -56,7 +56,7 @@ USES= compiler:c++11-lib libtool localbase:ldflags perl5 pkgconfig \
python shebangfix tar:xz
USE_GECKO= gecko
USE_GITHUB= nodefault
-TAG_L10N= fcd0300e8478d1ec4d1c097a073ddb8e1e0351e3
+TAG_L10N= 4b41b2ae00d50633e5e9d8204b0f45e468920743
GH_TUPLE= mozilla-l10n:firefox-l10n:${TAG_L10N}:ffl10n
USE_MOZILLA= -sqlite
@@ -65,8 +65,8 @@ LOCALES= af ar az be bg bs ca cs da de el es-ES et fa fi fr ga-IE gu-IN \
nb-NO nl nn-NO pa-IN pl pt-BR pt-PT ro ru sk sl sq sr sv-SE ta \
te th tl tr uk ur vi zh-CN zh-TW
-CONFIGURE_ENV+= BINDGEN_CFLAGS="-I${LOCALBASE}/include" \
- MOZ_CHROME_MULTILOCALE="${LOCALES}"
+CONFIGURE_ENV+= BINDGEN_CFLAGS="-I${LOCALBASE}/include"
+CONFIGURE_ENV+= MOZ_CHROME_MULTILOCALE="${LOCALES}"
MAKE_ENV+= LOCALES="${LOCALES}"
@@ -78,7 +78,7 @@ SUB_FILES= fonts.conf tor-browser.desktop torrc-defaults
WRKSRC= ${WRKDIR}/${DISTNAME:S/src-//}
-MOZ_EXPORT+= MOZ_TELEMETRY_REPORTING="" \
+MOZ_EXPORT= MOZ_TELEMETRY_REPORTING="" \
MOZILLA_OFFICIAL="1" \
MOZ_OFFICIAL_BRANDING="1" \
MOZ_APP_DISPLAYNAME="Tor Browser" \
@@ -104,6 +104,12 @@ MOZ_OPTIONS= --with-base-browser-version=${DISTVERSION} \
.include <bsd.port.options.mk>
+.if ${ARCH} == i386 && ${MACHINE_CPU:Msse2}
+# is not enabled on i386 by default
+# Fix for error: always_inline function '_mm_setzero_si64' requires target feature 'sse2'
+CFLAGS_i386+= -msse2
+.endif
+
.if ${ARCH} == amd64
MOZ_OPTIONS+= --enable-rust-simd
.endif
@@ -140,11 +146,11 @@ post-configure:
${WRKDIR}/.mozbuild/l10n-central/${i}/toolkit/toolkit/global/
${CP} ${WRKDIR}/translation-${TAG_TOR}/${i}/tor-browser.ftl \
${WRKDIR}/.mozbuild/l10n-central/${i}/toolkit/toolkit/global/
- ${MKDIR} ${WRKDIR}/.mozbuild/l10n-central/${i}/browser/branding/tb-release
+ ${MKDIR} ${WRKDIR}/.mozbuild/l10n-central/${i}/browser/branding/tb-release \
+ ${WRKSRC}/toolkit/torbutton/chrome/locale/${i}
${CP} ${WRKDIR}/translation-${TAG_TOR}/${i}/brand.properties \
${WRKDIR}/translation-${TAG_TOR}/${i}/branding/brand.ftl \
${WRKDIR}/.mozbuild/l10n-central/${i}/browser/branding/tb-release
- ${MKDIR} ${WRKSRC}/toolkit/torbutton/chrome/locale/${i}/
. for j in onionLocation.properties settings.properties torConnect.properties \
torlauncher.properties
${CP} ${WRKDIR}/translation-${TAG_TOR}/${i}/${j} \
@@ -160,18 +166,17 @@ post-build:
${WRKSRC}/mach package-multi-locale --locales ${LOCALES}
post-install:
- @${MKDIR} ${STAGEDIR}${DATADIR}
+ ${MKDIR} ${STAGEDIR}${DATADIR} \
+ ${STAGEDIR}${PREFIX}/lib/tor-browser/fontconfig \
+ ${STAGEDIR}${PREFIX}/lib/tor-browser/fonts \
+ ${STAGEDIR}${PREFIX}/lib/tor-browser/distribution/extensions
${INSTALL_DATA} ${WRKDIR}/torrc-defaults \
${STAGEDIR}${DATADIR}/torrc-defaults
- ${INSTALL_DATA} ${WRKDIR}/tor-browser.desktop \
- ${STAGEDIR}${PREFIX}/share/applications/tor-browser.desktop
- ${MKDIR} ${STAGEDIR}${PREFIX}/lib/tor-browser/fontconfig
- ${MKDIR} ${STAGEDIR}${PREFIX}/lib/tor-browser/fonts
+ ${INSTALL_DATA} ${WRKDIR}/tor-browser.desktop ${STAGEDIR}${DESKTOPDIR}
${INSTALL_DATA} ${WRKDIR}/fonts.conf \
${STAGEDIR}${PREFIX}/lib/tor-browser/fontconfig/fonts.conf
(cd ${WRKDIR}/fonts && \
${COPYTREE_SHARE} "*.otf *.ttf" ${STAGEDIR}${PREFIX}/lib/tor-browser/fonts)
- ${MKDIR} ${STAGEDIR}${PREFIX}/lib/tor-browser/distribution/extensions
${INSTALL_DATA} ${DISTDIR}/${NOSCRIPT} \
"${STAGEDIR}${PREFIX}/lib/tor-browser/distribution/extensions/{73a6fe31-595d-460b-a920-fcc0f8843232}.xpi"
diff --git a/www/tor-browser/distinfo b/www/tor-browser/distinfo
index ba1810215ff8..9dc1dc197464 100644
--- a/www/tor-browser/distinfo
+++ b/www/tor-browser/distinfo
@@ -1,15 +1,15 @@
-TIMESTAMP = 1747646474
-SHA256 (src-firefox-tor-browser-128.10.1esr-14.5-1-build1.tar.xz) = 221056bed25507e84d74bf679580b66762f718506b98e4f0b2ca3687cd46b11f
-SIZE (src-firefox-tor-browser-128.10.1esr-14.5-1-build1.tar.xz) = 611165768
+TIMESTAMP = 1765909794
+SHA256 (src-firefox-tor-browser-146.0a1-16.0-2-build2.tar.xz) = 669e5cc998224f1ba1624cade95d4344615f8cdd21066f1b6ad44c9025e1fb67
+SIZE (src-firefox-tor-browser-146.0a1-16.0-2-build2.tar.xz) = 704013880
SHA256 (manual_215922.zip) = b5ed703f54d52e9f197320f3698e936d585a3fed23cc4f9fbf59edce2869f885
SIZE (manual_215922.zip) = 28305786
SHA256 (fonts-3--4348e1.tar.zst) = 7fbbecece6de777f196982f6eb567970a6d8e7ac2bf5b1ad6b90e1ea36374032
SIZE (fonts-3--4348e1.tar.zst) = 27441580
-SHA256 (noscript-12.1.1.xpi) = f9639e63ffcfc352036de00e4ff6694bb0ca65a0bb8fbd103bd08f32dc1ff31a
-SIZE (noscript-12.1.1.xpi) = 980626
-SHA256 (tpo-translation-b54e21b36db35ad390c4f385b76cbd293a58cbc6_GL0.tar.gz) = 3548ab34d48c8d4a6eaf74130fb3ae4040acb3fcea6d3463ff95669b839e3112
-SIZE (tpo-translation-b54e21b36db35ad390c4f385b76cbd293a58cbc6_GL0.tar.gz) = 792132
-SHA256 (tpo-translation-94aae5dcdfa2e99b516acb6a834a54f7de76e54f_GL0.tar.gz) = 0962ba706da369264b659308f64824d0a7ba87a8438f539bff9ca922e2f0d9ff
-SIZE (tpo-translation-94aae5dcdfa2e99b516acb6a834a54f7de76e54f_GL0.tar.gz) = 2831434
-SHA256 (mozilla-l10n-firefox-l10n-fcd0300e8478d1ec4d1c097a073ddb8e1e0351e3_GH0.tar.gz) = d07ecc7fe021998b523357849f71d52c9cb5248cb79bba29793e1ba353bae5bb
-SIZE (mozilla-l10n-firefox-l10n-fcd0300e8478d1ec4d1c097a073ddb8e1e0351e3_GH0.tar.gz) = 68409826
+SHA256 (noscript-13.5.4.1984.xpi) = ce83b75d2d6c15c3ffbab412dddbb26ddf55977aacd2ba8f99301b9a0b1766f1
+SIZE (noscript-13.5.4.1984.xpi) = 1049081
+SHA256 (tpo-translation-d366318349af0977ff23b492fa87e436e8672fdd_GL0.tar.gz) = 190fe79bc223db676cd6d405adddeb8ef16175e13de806d1daff04ec06aeabce
+SIZE (tpo-translation-d366318349af0977ff23b492fa87e436e8672fdd_GL0.tar.gz) = 1024797
+SHA256 (tpo-translation-45b67d3be52f79e8a4b361fd04ab12f342ab0016_GL0.tar.gz) = 1474e0c3bbfdc50cd0930fb941677ee45a35d5bfd84a1876464c194a49b243fa
+SIZE (tpo-translation-45b67d3be52f79e8a4b361fd04ab12f342ab0016_GL0.tar.gz) = 2901730
+SHA256 (mozilla-l10n-firefox-l10n-4b41b2ae00d50633e5e9d8204b0f45e468920743_GH0.tar.gz) = cdd9341832325d24067bf752250e52e61035b762066c7cb0b4dde2b6c4b951d2
+SIZE (mozilla-l10n-firefox-l10n-4b41b2ae00d50633e5e9d8204b0f45e468920743_GH0.tar.gz) = 72440248
diff --git a/www/tor-browser/files/patch-bug1559213 b/www/tor-browser/files/patch-bug1559213
deleted file mode 100644
index ead3425fa70b..000000000000
--- a/www/tor-browser/files/patch-bug1559213
+++ /dev/null
@@ -1,131 +0,0 @@
-commit 25a5572d5cd137aa6d893e09a00bd39908a59a18
-Author: Christoph Moench-Tegeder <cmt@burggraben.net>
-Date: Tue Sep 10 22:23:32 2024 +0200
-
- based on:
- commit 717bba28411c
- Author: Jory A. Pratt <anarchy@gentoo.org>
- Date: Thu Jun 13 11:53:00 2019 -0700
-
- Bug 1559213 - Allow to use system av1 libs instead of bundled.
-
-diff --git config/external/moz.build config/external/moz.build
-index a24b470396cf..547f5f5c9e04 100644
---- config/external/moz.build
-+++ config/external/moz.build
-@@ -40,8 +40,9 @@ if not CONFIG["MOZ_SYSTEM_LIBVPX"]:
- external_dirs += ["media/libvpx"]
-
- if CONFIG["MOZ_AV1"]:
-- external_dirs += ["media/libaom"]
-- external_dirs += ["media/libdav1d"]
-+ if not CONFIG["MOZ_SYSTEM_AV1"]:
-+ external_dirs += ["media/libaom"]
-+ external_dirs += ["media/libdav1d"]
-
- if not CONFIG["MOZ_SYSTEM_PNG"]:
- external_dirs += ["media/libpng"]
-diff --git dom/media/platforms/moz.build dom/media/platforms/moz.build
-index 61536cc6e225..29cf635bbb44 100644
---- dom/media/platforms/moz.build
-+++ dom/media/platforms/moz.build
-@@ -71,6 +71,11 @@ if CONFIG["MOZ_AV1"]:
- "agnostic/AOMDecoder.cpp",
- "agnostic/DAV1DDecoder.cpp",
- ]
-+ if CONFIG['MOZ_SYSTEM_AV1']:
-+ CXXFLAGS += CONFIG['MOZ_SYSTEM_LIBAOM_CFLAGS']
-+ OS_LIBS += CONFIG['MOZ_SYSTEM_LIBAOM_LIBS']
-+ CXXFLAGS += CONFIG['MOZ_SYSTEM_LIBDAV1D_CFLAGS']
-+ OS_LIBS += CONFIG['MOZ_SYSTEM_LIBDAV1D_LIBS']
-
- if CONFIG["MOZ_OMX"]:
- EXPORTS += [
-diff --git media/ffvpx/libavcodec/moz.build media/ffvpx/libavcodec/moz.build
-index 6f09049a6068..90a82a19a9d1 100644
---- media/ffvpx/libavcodec/moz.build
-+++ media/ffvpx/libavcodec/moz.build
-@@ -119,10 +119,16 @@ if not CONFIG['MOZ_FFVPX_AUDIOONLY']:
- 'vp9recon.c',
- 'vpx_rac.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']
-+ CFLAGS += CONFIG['MOZ_SYSTEM_LIBAOM_CFLAGS']
-+ OS_LIBS += CONFIG['MOZ_SYSTEM_LIBAOM_LIBS']
-+ else:
-+ USE_LIBS += [
-+ 'dav1d',
-+ 'media_libdav1d_asm',
-+ ]
- if CONFIG["MOZ_WIDGET_TOOLKIT"] == "gtk":
- LOCAL_INCLUDES += ['/media/mozva']
- SOURCES += [
-diff --git media/libopus/moz.build media/libopus/moz.build
-index 943aee79ee99..4ad07e3e98af 100644
---- media/libopus/moz.build
-+++ media/libopus/moz.build
-@@ -58,7 +58,7 @@ if not CONFIG["MOZ_SAMPLE_TYPE_FLOAT32"]:
- DEFINES["FIXED_POINT"] = 1
- DEFINES["DISABLE_FLOAT_API"] = True
-
--if CONFIG["OS_ARCH"] == "Linux":
-+if CONFIG["OS_ARCH"] in ("FreeBSD", "Linux"):
- OS_LIBS += [
- "m",
- ]
-diff --git media/libvorbis/moz.build media/libvorbis/moz.build
-index cd17d4f89759..816edd72a000 100644
---- media/libvorbis/moz.build
-+++ media/libvorbis/moz.build
-@@ -45,7 +45,7 @@ LOCAL_INCLUDES += ['lib']
- if CONFIG['OS_ARCH'] == 'SunOS':
- DEFINES['HAVE_ALLOCA_H'] = True
-
--if CONFIG["OS_ARCH"] == "Linux":
-+if CONFIG["OS_ARCH"] in ("FreeBSD", "Linux"):
- OS_LIBS += [
- "m",
- ]
-diff --git toolkit/moz.configure toolkit/moz.configure
-index 1f85d2831f2f..07294b93f850 100644
---- toolkit/moz.configure
-+++ toolkit/moz.configure
-@@ -883,7 +883,23 @@ def av1(value):
- return True
-
-
--@depends(target, when=av1 & compile_environment)
-+option("--with-system-av1",
-+ help="Use system av1 (located with pkgconfig)")
-+
-+system_libaom_info = pkg_check_modules("MOZ_SYSTEM_LIBAOM", "aom >= 1.0.0",
-+ when="--with-system-av1")
-+
-+system_libdav1d_info = pkg_check_modules("MOZ_SYSTEM_LIBDAV1D", "dav1d >= 0.1.1",
-+ when="--with-system-av1")
-+
-+@depends(system_libaom_info, system_libdav1d_info)
-+def system_av1(system_libaom_info, system_libdav1d_info):
-+ has_av1_libs = False
-+ if system_libaom_info and system_libdav1d_info:
-+ has_av1_libs = True
-+ return has_av1_libs
-+
-+@depends(target, when=av1 & depends(system_av1)(lambda v: not v) & compile_environment)
- def dav1d_asm(target):
- if target.cpu in ("aarch64", "x86", "x86_64"):
- return True
-@@ -899,6 +915,7 @@ set_config("MOZ_DAV1D_ASM", dav1d_asm)
- set_define("MOZ_DAV1D_ASM", dav1d_asm)
- set_config("MOZ_AV1", av1)
- set_define("MOZ_AV1", av1)
-+set_config("MOZ_SYSTEM_AV1", depends_if(system_av1)(lambda _: True))
-
- # JXL Image Codec Support
- # ==============================================================
diff --git a/www/tor-browser/files/patch-bug1859752 b/www/tor-browser/files/patch-bug1859752
deleted file mode 100644
index 3050a31cf0cf..000000000000
--- a/www/tor-browser/files/patch-bug1859752
+++ /dev/null
@@ -1,42 +0,0 @@
-# HG changeset patch
-# User André Bargull <andre.bargull@gmail.com>
-# Date 1699346749 0
-# Node ID 0e7eefda24250041d7f008cc77dfa79045afa791
-# Parent 1e39572cb1c784039a9e14b8c36396c66cf58a5d
-Bug 1859752 - Part 9: Add new line break classes. r=platform-i18n-reviewers,dminor
-
-Use `CLASS_CHARACTER` because that matches the previous character class for most
-characters which are now part of the new character classes.
-
-Depends on D192733
-
-Differential Revision: https://phabricator.services.mozilla.com/D192734
-
-diff --git intl/lwbrk/LineBreaker.cpp intl/lwbrk/LineBreaker.cpp
---- intl/lwbrk/LineBreaker.cpp
-+++ intl/lwbrk/LineBreaker.cpp
-@@ -443,17 +443,23 @@ static int8_t GetClass(uint32_t u, LineB
- /* JT = 34, [JT] */ CLASS_CHARACTER,
- /* JV = 35, [JV] */ CLASS_CHARACTER,
- /* CLOSE_PARENTHESIS = 36, [CP] */ CLASS_CLOSE_LIKE_CHARACTER,
- /* CONDITIONAL_JAPANESE_STARTER = 37, [CJ] */ CLASS_CLOSE,
- /* HEBREW_LETTER = 38, [HL] */ CLASS_CHARACTER,
- /* REGIONAL_INDICATOR = 39, [RI] */ CLASS_CHARACTER,
- /* E_BASE = 40, [EB] */ CLASS_BREAKABLE,
- /* E_MODIFIER = 41, [EM] */ CLASS_CHARACTER,
-- /* ZWJ = 42, [ZWJ]*/ CLASS_CHARACTER};
-+ /* ZWJ = 42, [ZWJ]*/ CLASS_CHARACTER,
-+ /* AKSARA = 43, [AK] */ CLASS_CHARACTER,
-+ /* AKSARA_PREBASE = 44, [AP] */ CLASS_CHARACTER,
-+ /* AKSARA_START = 45, [AS] */ CLASS_CHARACTER,
-+ /* VIRAMA_FINAL = 46, [VF] */ CLASS_CHARACTER,
-+ /* VIRAMA = 47, [VI] */ CLASS_CHARACTER,
-+ };
-
- static_assert(U_LB_COUNT == mozilla::ArrayLength(sUnicodeLineBreakToClass),
- "Gecko vs ICU LineBreak class mismatch");
-
- auto cls = GetLineBreakClass(u);
- MOZ_ASSERT(cls < mozilla::ArrayLength(sUnicodeLineBreakToClass));
-
- // Overrides based on rules for the different line-break values given in
diff --git a/www/tor-browser/files/patch-bug1874059 b/www/tor-browser/files/patch-bug1874059
deleted file mode 100644
index 3fa954ef9def..000000000000
--- a/www/tor-browser/files/patch-bug1874059
+++ /dev/null
@@ -1,25 +0,0 @@
-commit 56c888446600991803fd92d668349101ad4bf160
-Author: Christoph Moench-Tegeder <cmt@burggraben.net>
-Date: Tue Feb 6 22:51:27 2024 +0100
-
- switch to -fvisibility flags
-
- this fixes linkage with llvm18 (which does not like the former
- approach via the #pragma in gcc_hidden.h
-
- PR: 276746
- Submitted by: dim@
-
-diff --git build/moz.configure/toolchain.configure build/moz.configure/toolchain.configure
-index d08b748db250..4696f69153f6 100644
---- build/moz.configure/toolchain.configure
-+++ build/moz.configure/toolchain.configure
-@@ -2186,7 +2186,7 @@ set_define("_LIBCPP_HIDE_FROM_ABI", libcxx_override_visibility.hide_from_abi)
- @depends(target, build_environment)
- def visibility_flags(target, env):
- if target.os != "WINNT":
-- if target.kernel == "Darwin":
-+ if target.kernel == "Darwin" or target.kernel == "FreeBSD":
- return ("-fvisibility=hidden", "-fvisibility-inlines-hidden")
- return (
- "-I%s/system_wrappers" % os.path.join(env.dist),
diff --git a/www/tor-browser/files/patch-bug1876366 b/www/tor-browser/files/patch-bug1876366
deleted file mode 100644
index 78483c3fbab7..000000000000
--- a/www/tor-browser/files/patch-bug1876366
+++ /dev/null
@@ -1,23 +0,0 @@
-commit 46a89fb0319d673b3139a068e3d89aed9f44fc16
-Author: Christoph Moench-Tegeder <cmt@burggraben.net>
-
- use gdk legacy cursor interface by default
-
- Upstream https://bugzilla.mozilla.org/show_bug.cgi?id=1876366#c16
- hints that we could re-test this once we have GTK 3.24.42 (with the
- now-current gtk3-3.24.41 the original problem is still reproducable,
- but toggling this flag does fix it for me)
-
-diff --git modules/libpref/init/StaticPrefList.yaml modules/libpref/init/StaticPrefList.yaml
-index 835450712a12..f2249006c36d 100644
---- modules/libpref/init/StaticPrefList.yaml
-+++ modules/libpref/init/StaticPrefList.yaml
-@@ -16070,7 +16070,7 @@
- # Whether to use gtk legacy cursor API.
- - name: widget.gtk.legacy-cursors.enabled
- type: bool
-- value: false
-+ value: true
- mirror: always
-
- # Whether to use gtk high contrast themes to disable content styling like on
diff --git a/www/tor-browser/files/patch-bug847568 b/www/tor-browser/files/patch-bug847568
index 2ee46579d43d..5b557e0e5a86 100644
--- a/www/tor-browser/files/patch-bug847568
+++ b/www/tor-browser/files/patch-bug847568
@@ -1,10 +1,10 @@
-# Allow building against system-wide graphite2/harfbuzz.
+Allow building against system-wide graphite2/harfbuzz
diff --git config/system-headers.mozbuild config/system-headers.mozbuild
-index 0c06f581b33b..10f125be25ab 100644
+index af44c89057fc..c0ac271917fb 100644
--- config/system-headers.mozbuild
+++ config/system-headers.mozbuild
-@@ -1307,6 +1307,19 @@ if CONFIG["MOZ_ENABLE_LIBPROXY"]:
+@@ -1304,6 +1304,19 @@ if CONFIG["MOZ_ENABLE_LIBPROXY"]:
"proxy.h",
]
@@ -25,10 +25,10 @@ index 0c06f581b33b..10f125be25ab 100644
system_headers += [
"unicode/calendar.h",
diff --git dom/base/moz.build dom/base/moz.build
-index 14c9f9dd96fb..bd1c8f241e9b 100644
+index 170d19f09aa9..a47fc8b1193c 100644
--- dom/base/moz.build
+++ dom/base/moz.build
-@@ -606,6 +606,9 @@ FINAL_LIBRARY = "xul"
+@@ -620,6 +620,9 @@ FINAL_LIBRARY = "xul"
if CONFIG["MOZ_WIDGET_TOOLKIT"] == "gtk":
CXXFLAGS += CONFIG["MOZ_GTK3_CFLAGS"]
@@ -40,7 +40,7 @@ index 14c9f9dd96fb..bd1c8f241e9b 100644
script="gen-usecounters.py",
diff --git gfx/graphite2/geckoextra/moz.build gfx/graphite2/geckoextra/moz.build
new file mode 100644
-index 000000000000..24e8d7a03274
+index 000000000000..ed0323eba9d5
--- /dev/null
+++ gfx/graphite2/geckoextra/moz.build
@@ -0,0 +1,21 @@
@@ -104,10 +104,10 @@ index 56ea317bedfc..07dd7f66f1bc 100644
"thebes",
"ipc",
diff --git gfx/skia/generate_mozbuild.py gfx/skia/generate_mozbuild.py
-index c161d24df853..8c7dd395b371 100755
+index b589efde1c5c..47f49e10df70 100755
--- gfx/skia/generate_mozbuild.py
+++ gfx/skia/generate_mozbuild.py
-@@ -91,6 +91,9 @@ if CONFIG['CC_TYPE'] in ('clang', 'clang-cl'):
+@@ -95,6 +95,9 @@ if CONFIG['CC_TYPE'] in ('clang', 'clang-cl'):
'-Wno-unused-private-field',
]
@@ -118,10 +118,10 @@ index c161d24df853..8c7dd395b371 100755
LOCAL_INCLUDES += [
"/gfx/cairo/cairo/src",
diff --git gfx/skia/moz.build gfx/skia/moz.build
-index 83aa2957a938..0859316a1f09 100644
+index 7fee54534878..ba1a4038e4a0 100644
--- gfx/skia/moz.build
+++ gfx/skia/moz.build
-@@ -601,6 +601,9 @@ if CONFIG['CC_TYPE'] in ('clang', 'clang-cl'):
+@@ -623,6 +623,9 @@ if CONFIG['CC_TYPE'] in ('clang', 'clang-cl'):
'-Wno-unused-private-field',
]
@@ -132,10 +132,10 @@ index 83aa2957a938..0859316a1f09 100644
LOCAL_INCLUDES += [
"/gfx/cairo/cairo/src",
diff --git gfx/thebes/moz.build gfx/thebes/moz.build
-index fd1fcf236d81..958d3f699ffd 100644
+index 48f2849e2025..7d0a161a91b4 100644
--- gfx/thebes/moz.build
+++ gfx/thebes/moz.build
-@@ -293,7 +293,13 @@ if CONFIG["MOZ_WAYLAND"]:
+@@ -295,7 +295,13 @@ if CONFIG["MOZ_WAYLAND"]:
LOCAL_INCLUDES += CONFIG["SKIA_INCLUDES"]
@@ -151,7 +151,7 @@ index fd1fcf236d81..958d3f699ffd 100644
CXXFLAGS += ["-Werror=switch"]
diff --git intl/unicharutil/util/moz.build intl/unicharutil/util/moz.build
-index 2bbd00415cae..f66bd37695d4 100644
+index 2396210428ee..092baac6f79c 100644
--- intl/unicharutil/util/moz.build
+++ intl/unicharutil/util/moz.build
@@ -24,6 +24,9 @@ UNIFIED_SOURCES += [
@@ -165,10 +165,10 @@ index 2bbd00415cae..f66bd37695d4 100644
GeneratedFile(
diff --git netwerk/dns/moz.build netwerk/dns/moz.build
-index c926d14707d1..35a3f33e2885 100644
+index 1bb0430f01aa..0360e0f468c0 100644
--- netwerk/dns/moz.build
+++ netwerk/dns/moz.build
-@@ -112,6 +112,9 @@ GeneratedFile(
+@@ -111,6 +111,9 @@ GeneratedFile(
"etld_data.inc", script="prepare_tlds.py", inputs=["effective_tld_names.dat"]
)
@@ -178,43 +178,24 @@ index c926d14707d1..35a3f33e2885 100644
# need to include etld_data.inc
LOCAL_INCLUDES += [
"/netwerk/base",
-diff --git old-configure.in old-configure.in
-index 2ca88a20a4b3..88bc9b873eff 100644
---- old-configure.in
-+++ old-configure.in
-@@ -1067,6 +1067,27 @@ fi
- AC_DEFINE_UNQUOTED(MOZ_MACBUNDLE_ID,$MOZ_MACBUNDLE_ID)
- AC_SUBST(MOZ_MACBUNDLE_ID)
-
-+dnl ========================================================
-+dnl Check for graphite2
-+dnl ========================================================
-+if test -n "$MOZ_SYSTEM_GRAPHITE2"; then
-+ dnl graphite2.pc has bogus version, check manually
-+ _SAVE_CFLAGS=$CFLAGS
-+ CFLAGS="$CFLAGS $MOZ_GRAPHITE2_CFLAGS"
-+ AC_TRY_COMPILE([ #include <graphite2/Font.h>
-+ #define GR2_VERSION_REQUIRE(major,minor,bugfix) \
-+ ( GR2_VERSION_MAJOR * 10000 + GR2_VERSION_MINOR \
-+ * 100 + GR2_VERSION_BUGFIX >= \
-+ (major) * 10000 + (minor) * 100 + (bugfix) )
-+ ], [
-+ #if !GR2_VERSION_REQUIRE(1,3,14)
-+ #error "Insufficient graphite2 version."
-+ #endif
-+ ], [],
-+ [AC_MSG_ERROR([--with-system-graphite2 requested but no working libgraphite2 found])])
-+ CFLAGS=$_SAVE_CFLAGS
-+fi
-+
- dnl ========================================================
- dnl = Child Process Name for IPC
- dnl ========================================================
+diff --git security/rlbox/moz.build security/rlbox/moz.build
+index 7ad8d076f0f1..835b9d905e03 100644
+--- security/rlbox/moz.build
++++ security/rlbox/moz.build
+@@ -47,6 +47,8 @@ if CONFIG["MOZ_WASM_SANDBOXING_GRAPHITE"]:
+ for k, v in graphite_defines:
+ WASM_DEFINES[k] = v
+ LOCAL_INCLUDES += ["/gfx/graphite2/src"]
++ if CONFIG["MOZ_SYSTEM_GRAPHITE2"]:
++ WASM_CXXFLAGS += CONFIG["MOZ_GRAPHITE2_CFLAGS"]
+
+ if CONFIG["MOZ_WASM_SANDBOXING_OGG"]:
+ include("/media/libogg/sources.mozbuild")
diff --git toolkit/library/moz.build toolkit/library/moz.build
-index 76746f308011..f6844f4c400b 100644
+index ee6051567c8e..c24a5a513bbc 100644
--- toolkit/library/moz.build
+++ toolkit/library/moz.build
-@@ -292,6 +292,12 @@ if CONFIG["MOZ_SYSTEM_PNG"]:
+@@ -298,6 +298,12 @@ if CONFIG["MOZ_SYSTEM_PNG"]:
if CONFIG["MOZ_SYSTEM_WEBP"]:
OS_LIBS += CONFIG["MOZ_WEBP_LIBS"]
@@ -228,10 +209,10 @@ index 76746f308011..f6844f4c400b 100644
OS_LIBS += CONFIG["MOZ_LIBEVENT_LIBS"]
diff --git toolkit/moz.configure toolkit/moz.configure
-index a060a59f728f..f0778d1ae2d6 100644
+index 1f85d2831f2f..04ce56e2cc0b 100644
--- toolkit/moz.configure
+++ toolkit/moz.configure
-@@ -1218,6 +1218,26 @@ def enable_cairo_ft(target, tree_freetype, freetype2_info):
+@@ -1397,6 +1397,26 @@ def enable_cairo_ft(target, tree_freetype, freetype2_info):
set_config("MOZ_ENABLE_CAIRO_FT", True, when=enable_cairo_ft)
set_config("CAIRO_FT_CFLAGS", ft2_info.cflags, when=enable_cairo_ft)
diff --git a/www/tor-browser/files/patch-python_mozbuild_mozbuild_gn__processor.py b/www/tor-browser/files/patch-build_gn__processor.py
index 94584d8b160b..08e7f1211613 100644
--- a/www/tor-browser/files/patch-python_mozbuild_mozbuild_gn__processor.py
+++ b/www/tor-browser/files/patch-build_gn__processor.py
@@ -1,13 +1,13 @@
-commit 6bfdff4afcc9e3843b9c3a5d7e884e281a305398
-Author: Christoph Moench-Tegeder <cmt@burggraben.net>
+commit bcf74d8c7a315c4f8ef70f1a60d4ce957cebac1d
+Author: Christoph Moench-Tegeder <cmt@FreeBSD.org>
- chase gn_processor.py changes
+ FreeBSD workings for webrtc configure (gn_processor.py)
-diff --git python/mozbuild/mozbuild/gn_processor.py python/mozbuild/mozbuild/gn_processor.py
-index a77b6c7759f1..e5498ac5e9df 100644
---- python/mozbuild/mozbuild/gn_processor.py
-+++ python/mozbuild/mozbuild/gn_processor.py
-@@ -185,6 +185,7 @@ def filter_gn_config(path, gn_result, sandbox_vars, input_vars, gn_target):
+diff --git build/gn_processor.py build/gn_processor.py
+index 36cc6bdfe492..ed0fb2b7aa45 100644
+--- build/gn_processor.py
++++ build/gn_processor.py
+@@ -186,6 +186,7 @@ def filter_gn_config(path, gn_result, sandbox_vars, input_vars, gn_target):
}
oses = {
"android": "Android",
@@ -15,7 +15,7 @@ index a77b6c7759f1..e5498ac5e9df 100644
"linux": "Linux",
"mac": "Darwin",
"openbsd": "OpenBSD",
-@@ -742,17 +743,17 @@ def main():
+@@ -801,17 +802,17 @@ def main():
vars_set = []
for is_debug in (True, False):
@@ -35,15 +35,15 @@ index a77b6c7759f1..e5498ac5e9df 100644
target_cpus.append("riscv64")
- if target_os == "linux":
+ if target_os in ("freebsd", "linux"):
- target_cpus.extend(["ppc64", "mipsel", "mips64el"])
+ target_cpus.extend(["loong64", "ppc64", "mipsel", "mips64el"])
for target_cpu in target_cpus:
vars = {
-@@ -761,7 +762,7 @@ def main():
+@@ -820,7 +821,7 @@ def main():
"target_cpu": target_cpu,
"target_os": target_os,
}
- if target_os == "linux":
+ if target_os in ("freebsd", "linux"):
- for use_x11 in (True, False):
- vars["use_x11"] = use_x11
+ for enable_x11 in (True, False):
+ vars["ozone_platform_x11"] = enable_x11
vars_set.append(vars.copy())
diff --git a/www/tor-browser/files/patch-dom_media_webrtc_libwebrtc__overrides_moz.build b/www/tor-browser/files/patch-dom_media_webrtc_libwebrtc__overrides_moz.build
new file mode 100644
index 000000000000..ac01cff0e211
--- /dev/null
+++ b/www/tor-browser/files/patch-dom_media_webrtc_libwebrtc__overrides_moz.build
@@ -0,0 +1,25 @@
+commit 18ea032974539d7f4db64d21a87fd174333b9e2c
+Author: Christoph Moench-Tegeder <cmt@FreeBSD.org>
+
+ build XErrorTrap for FreeBSD, too
+
+diff --git dom/media/webrtc/libwebrtc_overrides/moz.build dom/media/webrtc/libwebrtc_overrides/moz.build
+index ed9c450e5649..1ac213e48b28 100644
+--- dom/media/webrtc/libwebrtc_overrides/moz.build
++++ dom/media/webrtc/libwebrtc_overrides/moz.build
+@@ -49,13 +49,13 @@
+ "call/call_basic_stats.cc",
+ ]
+
+-if CONFIG["OS_TARGET"] == "OpenBSD":
++if CONFIG["OS_TARGET"] in ("FreeBSD", "OpenBSD"):
+ CXXFLAGS += CONFIG["MOZ_X11_CFLAGS"]
+ UNIFIED_SOURCES += [
+ "modules/desktop_capture/linux/x11/x_error_trap.cc",
+ ]
+
+-if CONFIG["TARGET_CPU"] in ("loongarch64", "ppc64"):
++if CONFIG["TARGET_CPU"] in ("loongarch64"):
+ UNIFIED_SOURCES += [
+ "modules/desktop_capture/linux/x11/x_error_trap.cc",
+ ]
diff --git a/www/tor-browser/files/patch-gfx_skia_skia_src_core_SkRasterPipeline.h b/www/tor-browser/files/patch-gfx_skia_skia_src_core_SkRasterPipeline.h
deleted file mode 100644
index 05cf110b1192..000000000000
--- a/www/tor-browser/files/patch-gfx_skia_skia_src_core_SkRasterPipeline.h
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git gfx/skia/skia/src/core/SkRasterPipeline.h gfx/skia/skia/src/core/SkRasterPipeline.h
-index 2475ea0d398d..67967483656d 100644
---- gfx/skia/skia/src/core/SkRasterPipeline.h
-+++ gfx/skia/skia/src/core/SkRasterPipeline.h
-@@ -27,7 +27,7 @@ struct SkImageInfo;
- struct skcms_TransferFunction;
-
- #if __has_cpp_attribute(clang::musttail) && !defined(__EMSCRIPTEN__) && !defined(SK_CPU_ARM32) && \
-- !defined(SK_CPU_LOONGARCH)
-+ !defined(SK_CPU_LOONGARCH) && !defined(__powerpc__)
- #define SK_HAS_MUSTTAIL 1
- #else
- #define SK_HAS_MUSTTAIL 0
diff --git a/www/tor-browser/files/patch-ipc_glue_GeckoChildProcessHost.cpp b/www/tor-browser/files/patch-ipc_glue_GeckoChildProcessHost.cpp
new file mode 100644
index 000000000000..42f5f25add33
--- /dev/null
+++ b/www/tor-browser/files/patch-ipc_glue_GeckoChildProcessHost.cpp
@@ -0,0 +1,13 @@
+diff --git ipc/glue/GeckoChildProcessHost.cpp ipc/glue/GeckoChildProcessHost.cpp
+index 9bb8314bd98c..2bc0382a9385 100644
+--- ipc/glue/GeckoChildProcessHost.cpp
++++ ipc/glue/GeckoChildProcessHost.cpp
+@@ -1121,7 +1121,7 @@ Result<Ok, LaunchError> BaseProcessLauncher::DoSetup() {
+ #if defined(MOZ_WIDGET_COCOA) || defined(XP_WIN)
+ geckoargs::sCrashReporter.Put(CrashReporter::GetChildNotificationPipe(),
+ mChildArgs);
+-#elif defined(XP_UNIX) && !defined(XP_IOS)
++#elif defined(XP_UNIX) && !defined(XP_IOS) && !defined(XP_FREEBSD)
+ UniqueFileHandle childCrashFd = CrashReporter::GetChildNotificationPipe();
+ if (!childCrashFd) {
+ return Err(LaunchError("DuplicateFileHandle failed"));
diff --git a/www/tor-browser/files/patch-memory_mozalloc_throw__gcc.h b/www/tor-browser/files/patch-memory_mozalloc_throw__gcc.h
deleted file mode 100644
index 53db05bc0803..000000000000
--- a/www/tor-browser/files/patch-memory_mozalloc_throw__gcc.h
+++ /dev/null
@@ -1,69 +0,0 @@
---- memory/mozalloc/throw_gcc.h.orig 2022-03-05 00:14:41 UTC
-+++ memory/mozalloc/throw_gcc.h
-@@ -74,50 +74,66 @@ __throw_bad_function_call(void) {
- mozalloc_abort("fatal: STL threw bad_function_call");
- }
-
-+#if !defined(_LIBCPP_VERSION)
- MOZ_THROW_NORETURN MOZ_THROW_EXPORT MOZ_THROW_INLINE void __throw_logic_error(
- const char* msg) {
- mozalloc_abort(msg);
- }
-+#endif // _LIBCPP_VERSION
-
-+#if !defined(_LIBCPP_VERSION)
- MOZ_THROW_NORETURN MOZ_THROW_EXPORT MOZ_THROW_INLINE void __throw_domain_error(
- const char* msg) {
- mozalloc_abort(msg);
- }
-+#endif // _LIBCPP_VERSION
-
-+#if !defined(_LIBCPP_VERSION)
- MOZ_THROW_NORETURN MOZ_THROW_EXPORT MOZ_THROW_INLINE void
- __throw_invalid_argument(const char* msg) {
- mozalloc_abort(msg);
- }
-+#endif // _LIBCPP_VERSION
-
-+#if !defined(_LIBCPP_VERSION)
- MOZ_THROW_NORETURN MOZ_THROW_EXPORT MOZ_THROW_INLINE void __throw_length_error(
- const char* msg) {
- mozalloc_abort(msg);
- }
-+#endif // _LIBCPP_VERSION
-
-+#if !defined(_LIBCPP_VERSION)
- MOZ_THROW_NORETURN MOZ_THROW_EXPORT MOZ_THROW_INLINE void __throw_out_of_range(
- const char* msg) {
- mozalloc_abort(msg);
- }
-+#endif // _LIBCPP_VERSION
-
- MOZ_THROW_NORETURN MOZ_THROW_EXPORT MOZ_THROW_INLINE void __throw_runtime_error(
- const char* msg) {
- mozalloc_abort(msg);
- }
-
-+#if !defined(_LIBCPP_VERSION)
- MOZ_THROW_NORETURN MOZ_THROW_EXPORT MOZ_THROW_INLINE void __throw_range_error(
- const char* msg) {
- mozalloc_abort(msg);
- }
-+#endif // _LIBCPP_VERSION
-
-+#if !defined(_LIBCPP_VERSION)
- MOZ_THROW_NORETURN MOZ_THROW_EXPORT MOZ_THROW_INLINE void
- __throw_overflow_error(const char* msg) {
- mozalloc_abort(msg);
- }
-+#endif // _LIBCPP_VERSION
-
-+#if !defined(_LIBCPP_VERSION)
- MOZ_THROW_NORETURN MOZ_THROW_EXPORT MOZ_THROW_INLINE void
- __throw_underflow_error(const char* msg) {
- mozalloc_abort(msg);
- }
-+#endif // _LIBCPP_VERSION
-
- MOZ_THROW_NORETURN MOZ_THROW_EXPORT MOZ_THROW_INLINE void __throw_ios_failure(
- const char* msg) {
diff --git a/www/tor-browser/files/patch-python_sites_mach.txt b/www/tor-browser/files/patch-python_sites_mach.txt
new file mode 100644
index 000000000000..706f285b0731
--- /dev/null
+++ b/www/tor-browser/files/patch-python_sites_mach.txt
@@ -0,0 +1,18 @@
+commit 10ee367cbe7ff5a19acfcfe3bfb75a49671e4132
+Author: Christoph Moench-Tegeder <cmt@FreeBSD.org>
+
+ bump psutil (same as ports)
+
+ 5.9.x breaks mach
+
+diff --git python/sites/mach.txt python/sites/mach.txt
+index 6e3db1c848f7..10ba12c2f13b 100644
+--- python/sites/mach.txt
++++ python/sites/mach.txt
+@@ -108,5 +108,5 @@ pypi-optional:glean-sdk==63.1.0:telemetry will not be collected
+ # Mach gracefully handles the case where `psutil` is unavailable.
+ # We aren't (yet) able to pin packages in automation, so we have to
+ # support down to the oldest locally-installed version (5.4.2).
+-pypi-optional:psutil>=5.4.2,<=5.9.4:telemetry will be missing some data
++pypi-optional:psutil>=5.4.2,<=7.0.0:telemetry will be missing some data
+ pypi-optional:zstandard>=0.11.1,<=0.24.0:zstd archives will not be possible to extract
diff --git a/www/tor-browser/files/patch-third__party_chromium_build_toolchain_toolchain.gni b/www/tor-browser/files/patch-third__party_chromium_build_toolchain_toolchain.gni
new file mode 100644
index 000000000000..7cfd8c79d2da
--- /dev/null
+++ b/www/tor-browser/files/patch-third__party_chromium_build_toolchain_toolchain.gni
@@ -0,0 +1,18 @@
+commit 66fb0f122ef1ddf961b333c8377b84b603d75b27
+Author: Christoph Moench-Tegeder <cmt@FreeBSD.org>
+
+ support FreeBSD as a host platform
+
+diff --git third_party/chromium/build/toolchain/toolchain.gni third_party/chromium/build/toolchain/toolchain.gni
+index 754f0e3bbd7e..238d79631ba8 100644
+--- third_party/chromium/build/toolchain/toolchain.gni
++++ third_party/chromium/build/toolchain/toolchain.gni
+@@ -75,7 +75,7 @@ if (host_os == "mac") {
+ host_shlib_extension = ".dylib"
+ } else if (host_os == "win") {
+ host_shlib_extension = ".dll"
+-} else if (host_os == "linux" || host_os == "aix" || host_os == "zos") {
++} else if (host_os == "linux" || host_os == "aix" || host_os == "freebsd" || host_os == "zos") {
+ host_shlib_extension = ".so"
+ } else {
+ assert(false, "Host platform not supported")
diff --git a/www/tor-browser/files/patch-third__party_libwebrtc_build_config_BUILDCONFIG.gn b/www/tor-browser/files/patch-third__party_libwebrtc_build_config_BUILDCONFIG.gn
index 331a94015301..7774855c7941 100644
--- a/www/tor-browser/files/patch-third__party_libwebrtc_build_config_BUILDCONFIG.gn
+++ b/www/tor-browser/files/patch-third__party_libwebrtc_build_config_BUILDCONFIG.gn
@@ -1,26 +1,13 @@
-commit 93615ae859d1d819b33bbe0e32c5260a467b3625
-Author: Christoph Moench-Tegeder <cmt@burggraben.net>
+commit e8a3b91abdc00edd7633aabbe5e63bfc0d0825e4
+Author: Christoph Moench-Tegeder <cmt@FreeBSD.org>
enable pipewire on bsd
-diff --git third_party/libwebrtc/BUILD.gn third_party/libwebrtc/BUILD.gn
-index 6eb14773b0a7..d63fd1d5529f 100644
---- third_party/libwebrtc/BUILD.gn
-+++ third_party/libwebrtc/BUILD.gn
-@@ -106,7 +106,7 @@ if (!build_with_chromium && !build_with_mozilla) {
- "tools_webrtc/perf:webrtc_dashboard_upload",
- ]
- }
-- if ((is_linux || is_chromeos) && rtc_use_pipewire) {
-+ if ((is_linux || is_chromeos || is_bsd) && rtc_use_pipewire) {
- deps += [ "modules/desktop_capture:shared_screencast_stream_test" ]
- }
- if (is_fuchsia) {
-diff --git third_party/libwebrtc/build/config/BUILDCONFIG.gn third_party/libwebrtc/build/config/BUILDCONFIG.gn
-index 571ae5f0d60d..863d428fc676 100644
---- third_party/libwebrtc/build/config/BUILDCONFIG.gn
-+++ third_party/libwebrtc/build/config/BUILDCONFIG.gn
-@@ -132,6 +132,7 @@ declare_args() {
+diff --git third_party/chromium/build/config/BUILDCONFIG.gn third_party/chromium/build/config/BUILDCONFIG.gn
+index 4bb38fe31ff2..b10eb19f521a 100644
+--- third_party/chromium/build/config/BUILDCONFIG.gn
++++ third_party/chromium/build/config/BUILDCONFIG.gn
+@@ -137,6 +137,7 @@ declare_args() {
# Set to true when compiling with the Clang compiler.
is_clang = current_os != "linux" || current_os == "openbsd" ||
@@ -28,25 +15,25 @@ index 571ae5f0d60d..863d428fc676 100644
(current_cpu != "s390x" && current_cpu != "s390" &&
current_cpu != "ppc64" && current_cpu != "ppc" &&
current_cpu != "mips" && current_cpu != "mips64" &&
-@@ -184,7 +185,7 @@ if (host_toolchain == "") {
+@@ -206,7 +207,7 @@ if (host_toolchain == "") {
# TODO(dpranke): Add some sort of assert here that verifies that
# no toolchain omitted host_toolchain from its toolchain_args().
- if (host_os == "linux" || host_os == "openbsd") {
+ if (host_os == "linux" || host_os == "openbsd" || host_os == "freebsd") {
if (target_os != "linux") {
- host_toolchain = "//build/toolchain/linux:clang_$host_cpu"
+ host_toolchain = "//chromium/build/toolchain/linux:clang_$host_cpu"
} else if (is_clang) {
-@@ -222,7 +223,7 @@ if (target_os == "android") {
- assert(host_os == "linux" || host_os == "mac",
- "Android builds are only supported on Linux and Mac hosts.")
- _default_toolchain = "//build/toolchain/android:android_clang_$target_cpu"
+@@ -246,7 +247,7 @@ if (target_os == "android") {
+ # Targeting android on Mac is best-effort and not guaranteed to work.
+ #assert(host_os == "linux", "Android builds are only supported on Linux.")
+ _default_toolchain = "//chromium/build/toolchain/android:android_clang_$target_cpu"
-} else if (target_os == "chromeos" || target_os == "linux" || target_os == "openbsd") {
+} else if (target_os == "chromeos" || target_os == "linux" || target_os == "openbsd" || target_os == "freebsd") {
# See comments in build/toolchain/cros/BUILD.gn about board compiles.
if (is_clang) {
- _default_toolchain = "//build/toolchain/linux:clang_$target_cpu"
-@@ -288,7 +289,7 @@ is_chromeos = current_os == "chromeos"
+ _default_toolchain = "//chromium/build/toolchain/linux:clang_$target_cpu"
+@@ -314,7 +315,7 @@ is_chromeos = current_os == "chromeos"
is_fuchsia = current_os == "fuchsia"
is_ios = current_os == "ios"
is_linux = current_os == "linux"
@@ -54,12 +41,25 @@ index 571ae5f0d60d..863d428fc676 100644
+is_bsd = current_os == "openbsd" || current_os == "freebsd"
is_mac = current_os == "mac"
is_nacl = current_os == "nacl"
- is_win = current_os == "win" || current_os == "winuwp"
+ is_wasm = current_os == "emscripten"
+diff --git third_party/libwebrtc/BUILD.gn third_party/libwebrtc/BUILD.gn
+index ac8569efaa40..5d6c5953491c 100644
+--- third_party/libwebrtc/BUILD.gn
++++ third_party/libwebrtc/BUILD.gn
+@@ -111,7 +111,7 @@ if (!build_with_chromium && !build_with_mozilla) {
+ "tools_webrtc/perf:webrtc_dashboard_upload",
+ ]
+ }
+- if ((is_linux || is_chromeos) && rtc_use_pipewire) {
++ if ((is_linux || is_chromeos || is_bsd) && rtc_use_pipewire) {
+ deps += [ "modules/desktop_capture:shared_screencast_stream_test" ]
+ }
+ }
diff --git third_party/libwebrtc/modules/desktop_capture/BUILD.gn third_party/libwebrtc/modules/desktop_capture/BUILD.gn
-index c184e2fbbcac..e1af29734d8b 100644
+index 5c843cfc2b6a..0ed9f98a964f 100644
--- third_party/libwebrtc/modules/desktop_capture/BUILD.gn
+++ third_party/libwebrtc/modules/desktop_capture/BUILD.gn
-@@ -75,7 +75,7 @@ if (rtc_include_tests) {
+@@ -76,7 +76,7 @@ if (rtc_include_tests) {
"window_finder_unittest.cc",
]
@@ -68,7 +68,7 @@ index c184e2fbbcac..e1af29734d8b 100644
configs += [ "../portal:gio" ]
}
-@@ -87,7 +87,7 @@ if (rtc_include_tests) {
+@@ -88,7 +88,7 @@ if (rtc_include_tests) {
}
}
@@ -77,7 +77,7 @@ index c184e2fbbcac..e1af29734d8b 100644
rtc_test("shared_screencast_stream_test") {
testonly = true
-@@ -146,7 +146,7 @@ if (rtc_include_tests) {
+@@ -148,7 +148,7 @@ if (rtc_include_tests) {
"test_utils_unittest.cc",
]
@@ -86,16 +86,25 @@ index c184e2fbbcac..e1af29734d8b 100644
configs += [ "../portal:gio" ]
}
-@@ -255,7 +255,7 @@ if (rtc_include_tests) {
+@@ -215,7 +215,7 @@ if (rtc_include_tests) {
+ "screen_drawer.h",
+ ]
+
+- if (is_linux || is_chromeos) {
++ if (is_linux || is_chromeos || is_bsd) {
+ sources += [ "screen_drawer_linux.cc" ]
+ libs = [ "X11" ]
+ }
+@@ -254,7 +254,7 @@ if (rtc_include_tests) {
"mock_desktop_capturer_callback.h",
]
- if ((is_linux || is_chromeos) && rtc_use_pipewire) {
-+ if ((is_linux || is_chromeos || is_bsd) && rtc_use_pipewire) {
++ if ((is_linux || is_chromeos || us_bsd) && rtc_use_pipewire) {
configs += [ "../portal:gio" ]
}
-@@ -268,7 +268,7 @@ if (rtc_include_tests) {
+@@ -267,7 +267,7 @@ if (rtc_include_tests) {
}
# TODO(bugs.webrtc.org/14187): remove when all users are gone
@@ -104,20 +113,11 @@ index c184e2fbbcac..e1af29734d8b 100644
config("pipewire_config") {
configs = [ "../portal:pipewire_config" ]
}
-@@ -326,7 +326,7 @@ rtc_library("desktop_capture") {
- "window_finder.cc",
- "window_finder.h",
- ]
-- if (is_linux && !is_castos && rtc_use_pipewire) {
-+ if ((is_linux || is_bsd) && !is_castos && rtc_use_pipewire) {
- sources += [ "desktop_capture_metadata.h" ]
- }
- if (is_mac) {
diff --git third_party/libwebrtc/modules/portal/BUILD.gn third_party/libwebrtc/modules/portal/BUILD.gn
-index d7768b2323c9..3593a6959277 100644
+index 70b4739ad0c4..99ab95d441f3 100644
--- third_party/libwebrtc/modules/portal/BUILD.gn
+++ third_party/libwebrtc/modules/portal/BUILD.gn
-@@ -10,7 +10,7 @@ import("//build/config/linux/pkg_config.gni")
+@@ -10,7 +10,7 @@ import("//chromium/build/config/linux/pkg_config.gni")
import("//tools/generate_stubs/rules.gni")
import("../../webrtc.gni")
@@ -127,10 +127,10 @@ index d7768b2323c9..3593a6959277 100644
pkg_config("gio") {
packages = [
diff --git third_party/libwebrtc/webrtc.gni third_party/libwebrtc/webrtc.gni
-index b1db8ff88415..64e0cb8f7c79 100644
+index 1e87de20e545..77a8a55d8659 100644
--- third_party/libwebrtc/webrtc.gni
+++ third_party/libwebrtc/webrtc.gni
-@@ -153,7 +153,7 @@ declare_args() {
+@@ -151,7 +151,7 @@ declare_args() {
# By default it's only enabled on desktop Linux (excludes ChromeOS) and
# only when using the sysroot as PipeWire is not available in older and
# supported Ubuntu and Debian distributions.
diff --git a/www/tor-browser/files/patch-third__party_libwebrtc_modules_desktop__capture_linux_wayland__egl__dmabuf.cc b/www/tor-browser/files/patch-third__party_libwebrtc_modules_desktop__capture_linux_wayland__egl__dmabuf.cc
index e83c56760a7c..13a23c835960 100644
--- a/www/tor-browser/files/patch-third__party_libwebrtc_modules_desktop__capture_linux_wayland__egl__dmabuf.cc
+++ b/www/tor-browser/files/patch-third__party_libwebrtc_modules_desktop__capture_linux_wayland__egl__dmabuf.cc
@@ -1,26 +1,19 @@
-commit 3524023ca1d2184ab9a5a7cc61695923e6834cc1
-Author: Christoph Moench-Tegeder <cmt@burggraben.net>
+commit f53507857647459d4a48935901f80f27a5ae58a9
+Author: Christoph Moench-Tegeder <cmt@FreeBSD.org>
avoid linux-only includes
diff --git third_party/libwebrtc/modules/desktop_capture/linux/wayland/egl_dmabuf.cc third_party/libwebrtc/modules/desktop_capture/linux/wayland/egl_dmabuf.cc
-index 6a019c64b4b3..18bb43d797dd 100644
+index 821fdfb487b7..e000c1c104fe 100644
--- third_party/libwebrtc/modules/desktop_capture/linux/wayland/egl_dmabuf.cc
+++ third_party/libwebrtc/modules/desktop_capture/linux/wayland/egl_dmabuf.cc
-@@ -10,12 +10,16 @@
-
- #include "modules/desktop_capture/linux/wayland/egl_dmabuf.h"
-
+@@ -15,7 +15,9 @@
+ #include <EGL/eglplatform.h>
+ #include <GL/gl.h>
+ #include <GL/glext.h>
+#if !defined(__FreeBSD__)
#include <asm/ioctl.h>
+#endif
#include <dlfcn.h>
#include <fcntl.h>
- #include <gdk/gdk.h>
- #include <libdrm/drm_fourcc.h>
-+#if !defined(__FreeBSD__)
- #include <linux/types.h>
-+#endif
- #include <spa/param/video/format-utils.h>
- #include <unistd.h>
- #include <xf86drm.h>
+ #include <gbm.h>
diff --git a/www/tor-browser/files/patch-third__party_libwebrtc_modules_portal_pipewire__utils.h b/www/tor-browser/files/patch-third__party_libwebrtc_modules_portal_pipewire__utils.h
new file mode 100644
index 000000000000..14ed30920d6a
--- /dev/null
+++ b/www/tor-browser/files/patch-third__party_libwebrtc_modules_portal_pipewire__utils.h
@@ -0,0 +1,19 @@
+commit 9f34111f6f4e2ebefd878a3c256fc012826e6936
+Author: Christoph Moench-Tegeder <cmt@FreeBSD.org>
+
+ FreeBSD does not know asm-generic/ioctl.h
+
+diff --git third_party/libwebrtc/modules/portal/pipewire_utils.h third_party/libwebrtc/modules/portal/pipewire_utils.h
+index c3d4f347a8cd..14a36260c292 100644
+--- third_party/libwebrtc/modules/portal/pipewire_utils.h
++++ third_party/libwebrtc/modules/portal/pipewire_utils.h
+@@ -11,7 +11,9 @@
+ #ifndef MODULES_PORTAL_PIPEWIRE_UTILS_H_
+ #define MODULES_PORTAL_PIPEWIRE_UTILS_H_
+
++#if !defined(__FreeBSD__)
+ #include <asm-generic/ioctl.h>
++#endif
+ #include <sys/ioctl.h>
+ #include <sys/mman.h>
+
diff --git a/www/tor-browser/files/patch-third__party_sqlite3_ext_sqlite-vec_sqlite-vec.c b/www/tor-browser/files/patch-third__party_sqlite3_ext_sqlite-vec_sqlite-vec.c
new file mode 100644
index 000000000000..662857e65bc5
--- /dev/null
+++ b/www/tor-browser/files/patch-third__party_sqlite3_ext_sqlite-vec_sqlite-vec.c
@@ -0,0 +1,15 @@
+diff --git third_party/sqlite3/ext/sqlite-vec/sqlite-vec.c third_party/sqlite3/ext/sqlite-vec/sqlite-vec.c
+index 96612e26d385..c43c46136bef 100644
+--- third_party/sqlite3/ext/sqlite-vec/sqlite-vec.c
++++ third_party/sqlite3/ext/sqlite-vec/sqlite-vec.c
+@@ -11,6 +11,10 @@
+ #include <stdlib.h>
+ #include <string.h>
+
++#ifdef __FreeBSD__
++#include <sys/types.h>
++#endif
++
+ #ifndef SQLITE_VEC_OMIT_FS
+ #include <stdio.h>
+ #endif
diff --git a/www/tor-browser/files/patch-toolkit_components_processtools_procinfo__bsd.c b/www/tor-browser/files/patch-toolkit_components_processtools_procinfo__bsd.c
deleted file mode 100644
index e2e9a3cc88f4..000000000000
--- a/www/tor-browser/files/patch-toolkit_components_processtools_procinfo__bsd.c
+++ /dev/null
@@ -1,104 +0,0 @@
-diff --git toolkit/components/processtools/ProcInfo_bsd.cpp toolkit/components/processtools/ProcInfo_bsd.cpp
-index a6ff4881940c..f041ed5e50ce 100644
---- toolkit/components/processtools/ProcInfo_bsd.cpp
-+++ toolkit/components/processtools/ProcInfo_bsd.cpp
-@@ -18,6 +18,9 @@
- #include <cstdio>
- #include <cstring>
- #include <unistd.h>
-+#ifdef __FreeBSD__
-+#include <sys/user.h>
-+#endif
-
- namespace mozilla {
-
-@@ -50,25 +53,39 @@ ProcInfoPromise::ResolveOrRejectValue GetProcInfoSync(
- }
- for (const auto& request : aRequests) {
- size_t size;
-+#ifdef __FreeBSD__
-+ int mib[4];
-+ int mibsize = 4;
-+ mib[0] = CTL_KERN;
-+ mib[1] = KERN_PROC;
-+ mib[2] = KERN_PROC_PID | KERN_PROC_INC_THREAD;
-+ mib[3] = request.pid;
-+#else
- int mib[6];
-+ int mibsize = 6;
- mib[0] = CTL_KERN;
- mib[1] = KERN_PROC;
- mib[2] = KERN_PROC_PID | KERN_PROC_SHOW_THREADS;
- mib[3] = request.pid;
- mib[4] = sizeof(kinfo_proc);
- mib[5] = 0;
-- if (sysctl(mib, 6, nullptr, &size, nullptr, 0) == -1) {
-+#endif
-+ if (sysctl(mib, mibsize, nullptr, &size, nullptr, 0) == -1) {
- // Can't get info for this process. Skip it.
- continue;
- }
-
-+#ifdef __FreeBSD__
-+ auto procs = MakeUniqueFallible<kinfo_proc[]>(size / sizeof(kinfo_proc));
-+#else
- mib[5] = size / sizeof(kinfo_proc);
- auto procs = MakeUniqueFallible<kinfo_proc[]>(mib[5]);
-+#endif
- if (!procs) {
- result.SetReject(NS_ERROR_OUT_OF_MEMORY);
- return result;
- }
-- if (sysctl(mib, 6, procs.get(), &size, nullptr, 0) == -1 &&
-+ if (sysctl(mib, mibsize, procs.get(), &size, nullptr, 0) == -1 &&
- errno != ENOMEM) {
- continue;
- }
-@@ -84,19 +101,34 @@ ProcInfoPromise::ResolveOrRejectValue GetProcInfoSync(
- bool found = false;
- for (size_t i = 0; i < size / sizeof(kinfo_proc); i++) {
- const auto& p = procs[i];
-+#ifdef __FreeBSD__
-+ if (i == 0) {
-+#else
- if (p.p_tid == -1) {
-+#endif
- // This is the process.
- found = true;
-+#ifdef __FreeBSD__
-+ info.cpuTime = uint64_t(p.ki_runtime) * 1'000u;
-+ info.memory = (p.ki_tsize + p.ki_dsize + p.ki_ssize) * getpagesize();
-+#else
- info.cpuTime = uint64_t(p.p_rtime_sec) * 1'000'000'000u +
- uint64_t(p.p_rtime_usec) * 1'000u;
- info.memory =
- (p.p_vm_tsize + p.p_vm_dsize + p.p_vm_ssize) * getpagesize();
-+#endif
-+
- } else {
- // This is one of its threads.
- ThreadInfo threadInfo;
-+#ifdef __FreeBSD__
-+ threadInfo.tid = p.ki_tid;
-+ threadInfo.cpuTime = uint64_t(p.ki_runtime) * 1'000u;
-+#else
- threadInfo.tid = p.p_tid;
- threadInfo.cpuTime = uint64_t(p.p_rtime_sec) * 1'000'000'000u +
- uint64_t(p.p_rtime_usec) * 1'000u;
-+#endif
- info.threads.AppendElement(threadInfo);
- }
- }
-diff --git toolkit/components/processtools/moz.build toolkit/components/processtools/moz.build
-index b7c164c1b0ac..a41dad52c343 100644
---- toolkit/components/processtools/moz.build
-+++ toolkit/components/processtools/moz.build
-@@ -39,7 +39,7 @@ BROWSER_CHROME_MANIFESTS += ["tests/browser/browser.ini"]
- # Platform-specific implementations of `ProcInfo`.
- toolkit = CONFIG["MOZ_WIDGET_TOOLKIT"]
- if toolkit == "gtk" or toolkit == "android":
-- if CONFIG["OS_TARGET"] == "OpenBSD":
-+ if CONFIG["OS_TARGET"] == "FreeBSD" or CONFIG["OS_TARGET"] == "OpenBSD":
- UNIFIED_SOURCES += ["ProcInfo_bsd.cpp"]
- else:
- UNIFIED_SOURCES += ["ProcInfo_linux.cpp"]