mail/thunderbird: update to 137.0 (rc1)

Release Notes (soon):
  https://www.thunderbird.net/en-US/thunderbird/137.0/releasenotes/

Mention the big upgrade and the new thunderbird-esr port in UPDATING.
This commit is contained in:
Christoph Moench-Tegeder 2025-03-27 20:08:07 +01:00
parent a9097e0cd9
commit 7eb19a67e0
11 changed files with 23929 additions and 12779 deletions

View file

@ -5,6 +5,15 @@ they are unavoidable.
You should get into the habit of checking this file for changes each time You should get into the habit of checking this file for changes each time
you update your ports collection, before attempting any port upgrades. you update your ports collection, before attempting any port upgrades.
20250327:
AFFECTS: users of thunderbird
AUTHOR: cmt@FreeBSD.org
The mail/thunderbird port switched to Thunderbird's new release train,
with frequent major releases (ca. 4-weeks-cycle). Users wanting to
stay with the 128-releases for now and the ESR releases in general
should switch to the mail/thunderbird-esr port.
20250325: 20250325:
AFFECTS: users of TeX* AFFECTS: users of TeX*
AUTHOR: bofh@FreeBSD.org AUTHOR: bofh@FreeBSD.org

View file

@ -1,22 +1,22 @@
PORTNAME= thunderbird PORTNAME= thunderbird
DISTVERSION= 128.9.0 DISTVERSION= 137.0
CATEGORIES= mail news net-im wayland CATEGORIES= mail news net-im wayland
MASTER_SITES= MOZILLA/${PORTNAME}/releases/${DISTVERSION}esr/source \ MASTER_SITES= MOZILLA/${PORTNAME}/releases/${DISTVERSION}${DISTVERSIONSUFFIX}/source \
MOZILLA/${PORTNAME}/candidates/${DISTVERSION}esr-candidates/build1/source MOZILLA/${PORTNAME}/candidates/${DISTVERSION}${DISTVERSIONSUFFIX}-candidates/build1/source
DISTFILES= ${DISTNAME}esr.source${EXTRACT_SUFX} DISTFILES= ${DISTNAME}.source${EXTRACT_SUFX}
MAINTAINER= gecko@FreeBSD.org MAINTAINER= gecko@FreeBSD.org
COMMENT= Mozilla Thunderbird is standalone mail and news that stands above COMMENT= Mozilla Thunderbird is standalone mail and news that stands above
WWW= https://www.mozilla.com/thunderbird/ WWW= https://www.mozilla.com/thunderbird/
BUILD_DEPENDS= nspr>=4.32:devel/nspr \ BUILD_DEPENDS= nspr>=4.32:devel/nspr \
nss>=3.101:security/nss \ nss>=3.109:security/nss \
libevent>=2.1.8:devel/libevent \ libevent>=2.1.8:devel/libevent \
harfbuzz>=8.5.0:print/harfbuzz \ harfbuzz>=10.1.0:print/harfbuzz \
graphite2>=1.3.14:graphics/graphite2 \ graphite2>=1.3.14:graphics/graphite2 \
png>=1.6.43:graphics/png \ png>=1.6.45:graphics/png \
dav1d>=1.0.0:multimedia/dav1d \ dav1d>=1.0.0:multimedia/dav1d \
libvpx>=1.14.0:multimedia/libvpx \ libvpx>=1.15.0:multimedia/libvpx \
${PYTHON_PKGNAMEPREFIX}sqlite3>0:databases/py-sqlite3@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}sqlite3>0:databases/py-sqlite3@${PY_FLAVOR} \
v4l_compat>0:multimedia/v4l_compat \ v4l_compat>0:multimedia/v4l_compat \
autoconf2.13:devel/autoconf2.13 \ autoconf2.13:devel/autoconf2.13 \
@ -29,12 +29,16 @@ BUILD_DEPENDS= nspr>=4.32:devel/nspr \
LIB_DEPENDS= libjson-c.so:devel/json-c LIB_DEPENDS= libjson-c.so:devel/json-c
USE_GECKO= gecko USE_GECKO= gecko
# cannot use system icu: calendar is completely broken by CONFLICTS_INSTALL= thunderbird-esr
# https://unicode-org.atlassian.net/browse/ICU-22132 (fix not in 74.1) # cannot use system icu: too old on 2025Q1
# before re-enabling, check:
# https://unicode-org.atlassian.net/browse/ICU-22132 (fix not in 74.1)
USE_MOZILLA= -icu -sqlite USE_MOZILLA= -icu -sqlite
CFLAGS_powerpc64le= -DSQLITE_BYTEORDER=1234 CFLAGS_powerpc64le= -DSQLITE_BYTEORDER=1234
USES= tar:xz USES= tar:xz
# helpful when testing beta
WRKSRC= ${WRKDIR}/${PORTNAME}-${DISTVERSION}
MOZ_OPTIONS= --enable-application=comm/mail --enable-official-branding MOZ_OPTIONS= --enable-application=comm/mail --enable-official-branding
MOZ_OPTIONS+= --with-system-bz2 --with-system-jsonc MOZ_OPTIONS+= --with-system-bz2 --with-system-jsonc

View file

@ -1,3 +1,3 @@
TIMESTAMP = 1742928407 TIMESTAMP = 1743079619
SHA256 (thunderbird-128.9.0esr.source.tar.xz) = 735579c7fd7018ef16ad3b28ba3f254d957da33435b3b1af945d95fd20f9407b SHA256 (thunderbird-137.0.source.tar.xz) = e4b103686f264339f322501f4d2591cfd8e90e8c105a1ce9d99941db096c342c
SIZE (thunderbird-128.9.0esr.source.tar.xz) = 676939592 SIZE (thunderbird-137.0.source.tar.xz) = 719178836

View file

@ -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
# ==============================================================

View file

@ -0,0 +1,50 @@
commit 43b044fe8adaccb46868ac00c70a4e7a5d354a9c
Author: Christoph Moench-Tegeder <cmt@burggraben.net>
Bug 1948776 - handle non-existence of MAP_NORESERVE for FreeBSD, r=afranchuk,jld,nika
The MAP_NORESERVE flag does not exist in FreeBSD. As the minimally-
invasive workaround, I decided to remove that flag directly in the
mmap() calls, instead of defining our own MAP_NORESERVE as 0
possibly far away and not obviously connected to these places.
Differential Revision: https://phabricator.services.mozilla.com/D238531
diff --git ipc/glue/SharedMemoryPlatform_posix.cpp ipc/glue/SharedMemoryPlatform_posix.cpp
index 61121bcbaf8d..b31f2200e8e6 100644
--- ipc/glue/SharedMemoryPlatform_posix.cpp
+++ ipc/glue/SharedMemoryPlatform_posix.cpp
@@ -447,8 +447,12 @@ bool Platform::Protect(char* aAddr, size_t aSize, Access aAccess) {
}
void* Platform::FindFreeAddressSpace(size_t aSize) {
- void* memory = mmap(nullptr, aSize, PROT_NONE,
- MAP_ANONYMOUS | MAP_NORESERVE | MAP_PRIVATE, -1, 0);
+#ifndef __FreeBSD__
+ constexpr int flags = MAP_ANONYMOUS | MAP_NORESERVE | MAP_PRIVATE;
+#else
+ constexpr int flags = MAP_ANONYMOUS | MAP_PRIVATE;
+#endif
+ void* memory = mmap(nullptr, aSize, PROT_NONE, flags, -1, 0);
if (memory == MAP_FAILED) {
return nullptr;
}
diff --git ipc/glue/SharedMemory_posix.cpp ipc/glue/SharedMemory_posix.cpp
index da279f469237..9ed83af4b1f2 100644
--- ipc/glue/SharedMemory_posix.cpp
+++ ipc/glue/SharedMemory_posix.cpp
@@ -61,8 +61,12 @@ SharedMemory::Handle SharedMemory::CloneHandle(const Handle& aHandle) {
}
void* SharedMemory::FindFreeAddressSpace(size_t size) {
- void* memory = mmap(nullptr, size, PROT_NONE,
- MAP_ANONYMOUS | MAP_NORESERVE | MAP_PRIVATE, -1, 0);
+#ifndef __FreeBSD__
+ constexpr int flags = MAP_ANONYMOUS | MAP_NORESERVE | MAP_PRIVATE;
+#else
+ constexpr int flags = MAP_ANONYMOUS | MAP_PRIVATE;
+#endif
+ void* memory = mmap(nullptr, size, PROT_NONE, flags, -1, 0);
if (memory == MAP_FAILED) {
return nullptr;
}

View file

@ -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 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
+++ 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", "proxy.h",
] ]
@ -25,10 +25,10 @@ index 0c06f581b33b..10f125be25ab 100644
system_headers += [ system_headers += [
"unicode/calendar.h", "unicode/calendar.h",
diff --git dom/base/moz.build dom/base/moz.build 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
+++ 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": if CONFIG["MOZ_WIDGET_TOOLKIT"] == "gtk":
CXXFLAGS += CONFIG["MOZ_GTK3_CFLAGS"] CXXFLAGS += CONFIG["MOZ_GTK3_CFLAGS"]
@ -40,7 +40,7 @@ index 14c9f9dd96fb..bd1c8f241e9b 100644
script="gen-usecounters.py", script="gen-usecounters.py",
diff --git gfx/graphite2/geckoextra/moz.build gfx/graphite2/geckoextra/moz.build diff --git gfx/graphite2/geckoextra/moz.build gfx/graphite2/geckoextra/moz.build
new file mode 100644 new file mode 100644
index 000000000000..24e8d7a03274 index 000000000000..ed0323eba9d5
--- /dev/null --- /dev/null
+++ gfx/graphite2/geckoextra/moz.build +++ gfx/graphite2/geckoextra/moz.build
@@ -0,0 +1,21 @@ @@ -0,0 +1,21 @@
@ -104,10 +104,10 @@ index 56ea317bedfc..07dd7f66f1bc 100644
"thebes", "thebes",
"ipc", "ipc",
diff --git gfx/skia/generate_mozbuild.py gfx/skia/generate_mozbuild.py 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
+++ 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', '-Wno-unused-private-field',
] ]
@ -118,10 +118,10 @@ index c161d24df853..8c7dd395b371 100755
LOCAL_INCLUDES += [ LOCAL_INCLUDES += [
"/gfx/cairo/cairo/src", "/gfx/cairo/cairo/src",
diff --git gfx/skia/moz.build gfx/skia/moz.build 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
+++ 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', '-Wno-unused-private-field',
] ]
@ -132,10 +132,10 @@ index 83aa2957a938..0859316a1f09 100644
LOCAL_INCLUDES += [ LOCAL_INCLUDES += [
"/gfx/cairo/cairo/src", "/gfx/cairo/cairo/src",
diff --git gfx/thebes/moz.build gfx/thebes/moz.build 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
+++ 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"] LOCAL_INCLUDES += CONFIG["SKIA_INCLUDES"]
@ -151,7 +151,7 @@ index fd1fcf236d81..958d3f699ffd 100644
CXXFLAGS += ["-Werror=switch"] CXXFLAGS += ["-Werror=switch"]
diff --git intl/unicharutil/util/moz.build intl/unicharutil/util/moz.build 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
+++ intl/unicharutil/util/moz.build +++ intl/unicharutil/util/moz.build
@@ -24,6 +24,9 @@ UNIFIED_SOURCES += [ @@ -24,6 +24,9 @@ UNIFIED_SOURCES += [
@ -165,10 +165,10 @@ index 2bbd00415cae..f66bd37695d4 100644
GeneratedFile( GeneratedFile(
diff --git netwerk/dns/moz.build netwerk/dns/moz.build 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
+++ 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"] "etld_data.inc", script="prepare_tlds.py", inputs=["effective_tld_names.dat"]
) )
@ -179,10 +179,10 @@ index c926d14707d1..35a3f33e2885 100644
LOCAL_INCLUDES += [ LOCAL_INCLUDES += [
"/netwerk/base", "/netwerk/base",
diff --git old-configure.in old-configure.in diff --git old-configure.in old-configure.in
index 2ca88a20a4b3..88bc9b873eff 100644 index 1af75c496b15..f1c7d7c48d28 100644
--- old-configure.in --- old-configure.in
+++ old-configure.in +++ old-configure.in
@@ -1067,6 +1067,27 @@ fi @@ -167,6 +167,27 @@ fi
AC_DEFINE_UNQUOTED(MOZ_MACBUNDLE_ID,$MOZ_MACBUNDLE_ID) AC_DEFINE_UNQUOTED(MOZ_MACBUNDLE_ID,$MOZ_MACBUNDLE_ID)
AC_SUBST(MOZ_MACBUNDLE_ID) AC_SUBST(MOZ_MACBUNDLE_ID)
@ -210,11 +210,24 @@ index 2ca88a20a4b3..88bc9b873eff 100644
dnl ======================================================== dnl ========================================================
dnl = Child Process Name for IPC dnl = Child Process Name for IPC
dnl ======================================================== 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 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
+++ 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"]: if CONFIG["MOZ_SYSTEM_WEBP"]:
OS_LIBS += CONFIG["MOZ_WEBP_LIBS"] OS_LIBS += CONFIG["MOZ_WEBP_LIBS"]
@ -228,10 +241,10 @@ index 76746f308011..f6844f4c400b 100644
OS_LIBS += CONFIG["MOZ_LIBEVENT_LIBS"] OS_LIBS += CONFIG["MOZ_LIBEVENT_LIBS"]
diff --git toolkit/moz.configure toolkit/moz.configure diff --git toolkit/moz.configure toolkit/moz.configure
index a060a59f728f..f0778d1ae2d6 100644 index 1f85d2831f2f..04ce56e2cc0b 100644
--- toolkit/moz.configure --- toolkit/moz.configure
+++ 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("MOZ_ENABLE_CAIRO_FT", True, when=enable_cairo_ft)
set_config("CAIRO_FT_CFLAGS", ft2_info.cflags, when=enable_cairo_ft) set_config("CAIRO_FT_CFLAGS", ft2_info.cflags, when=enable_cairo_ft)

View file

@ -1,13 +1,13 @@
commit cb7967f55ab2f34635a10da523f277083ebd97a5 commit e884ff2873b6ef8f3c8ee0a09e7651f46b3add95
Author: Christoph Moench-Tegeder <cmt@FreeBSD.org> Author: Christoph Moench-Tegeder <cmt@burggraben.net>
chase gn_processor.py changes chase gn_processor.py move
diff --git python/mozbuild/mozbuild/gn_processor.py python/mozbuild/mozbuild/gn_processor.py diff --git build/gn_processor.py build/gn_processor.py
index 3a9b9e7f3b..656a28ae6a 100644 index 2ba8b92c27..962479b228 100644
--- python/mozbuild/mozbuild/gn_processor.py --- build/gn_processor.py
+++ python/mozbuild/mozbuild/gn_processor.py +++ build/gn_processor.py
@@ -185,6 +185,7 @@ def filter_gn_config(path, gn_result, sandbox_vars, input_vars, gn_target): @@ -186,6 +186,7 @@ def filter_gn_config(path, gn_result, sandbox_vars, input_vars, gn_target):
} }
oses = { oses = {
"android": "Android", "android": "Android",
@ -15,7 +15,7 @@ index 3a9b9e7f3b..656a28ae6a 100644
"linux": "Linux", "linux": "Linux",
"mac": "Darwin", "mac": "Darwin",
"openbsd": "OpenBSD", "openbsd": "OpenBSD",
@@ -742,17 +743,17 @@ def main(): @@ -780,17 +781,17 @@ def main():
vars_set = [] vars_set = []
for is_debug in (True, False): for is_debug in (True, False):
@ -31,14 +31,14 @@ index 3a9b9e7f3b..656a28ae6a 100644
+ if target_os in ("android", "freebsd", "linux", "win"): + if target_os in ("android", "freebsd", "linux", "win"):
target_cpus.append("x86") target_cpus.append("x86")
- if target_os in ("linux", "openbsd"): - if target_os in ("linux", "openbsd"):
+ if target_os in ("freebsd", "linux", "openbsd"): + if target_os in ("linux", "freebsd", "openbsd"):
target_cpus.append("riscv64") target_cpus.append("riscv64")
- if target_os == "linux": - if target_os == "linux":
+ if target_os in ("freebsd", "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: for target_cpu in target_cpus:
vars = { vars = {
@@ -761,7 +762,7 @@ def main(): @@ -799,7 +800,7 @@ def main():
"target_cpu": target_cpu, "target_cpu": target_cpu,
"target_os": target_os, "target_os": target_os,
} }

View file

@ -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

File diff suppressed because it is too large Load diff

View file

@ -1,30 +1,17 @@
commit 6e6860b4ecb7cea4ecbc07f45f491c562d1a83e7 commit 79334dba3e5be4a7bb17a22b2fde70933991d6f4
Author: Christoph Moench-Tegeder <cmt@FreeBSD.org> Author: Christoph Moench-Tegeder <cmt@FreeBSD.org>
enable pipewire on bsd enable pipewire on bsd
diff --git third_party/libwebrtc/BUILD.gn third_party/libwebrtc/BUILD.gn diff --git third_party/chromium/build/config/BUILDCONFIG.gn third_party/chromium/build/config/BUILDCONFIG.gn
index 85ead4162f..7dc64543dc 100644 index 889bdb9235..1566833175 100644
--- third_party/libwebrtc/BUILD.gn --- third_party/chromium/build/config/BUILDCONFIG.gn
+++ third_party/libwebrtc/BUILD.gn +++ third_party/chromium/build/config/BUILDCONFIG.gn
@@ -107,7 +107,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/build/config/BUILDCONFIG.gn third_party/libwebrtc/build/config/BUILDCONFIG.gn
index 571ae5f0d6..863d428fc6 100644
--- third_party/libwebrtc/build/config/BUILDCONFIG.gn
+++ third_party/libwebrtc/build/config/BUILDCONFIG.gn
@@ -132,6 +132,7 @@ declare_args() { @@ -132,6 +132,7 @@ declare_args() {
# Set to true when compiling with the Clang compiler. # Set to true when compiling with the Clang compiler.
is_clang = current_os != "linux" || current_os == "openbsd" || is_clang = current_os != "linux" || current_os == "openbsd" ||
+ current_os == "freebsd" || + current_os != "freebsd" ||
(current_cpu != "s390x" && current_cpu != "s390" && (current_cpu != "s390x" && current_cpu != "s390" &&
current_cpu != "ppc64" && current_cpu != "ppc" && current_cpu != "ppc64" && current_cpu != "ppc" &&
current_cpu != "mips" && current_cpu != "mips64" && current_cpu != "mips" && current_cpu != "mips64" &&
@ -35,17 +22,17 @@ index 571ae5f0d6..863d428fc6 100644
- if (host_os == "linux" || host_os == "openbsd") { - if (host_os == "linux" || host_os == "openbsd") {
+ if (host_os == "linux" || host_os == "openbsd" || host_os == "freebsd") { + if (host_os == "linux" || host_os == "openbsd" || host_os == "freebsd") {
if (target_os != "linux") { 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) { } else if (is_clang) {
@@ -222,7 +223,7 @@ if (target_os == "android") { @@ -222,7 +223,7 @@ if (target_os == "android") {
assert(host_os == "linux" || host_os == "mac", assert(host_os == "linux" || host_os == "mac",
"Android builds are only supported on Linux and Mac hosts.") "Android builds are only supported on Linux and Mac hosts.")
_default_toolchain = "//build/toolchain/android:android_clang_$target_cpu" _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") {
+} else if (target_os == "chromeos" || target_os == "linux" || target_os == "openbsd" || target_os == "freebsd") { +} 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. # See comments in build/toolchain/cros/BUILD.gn about board compiles.
if (is_clang) { if (is_clang) {
_default_toolchain = "//build/toolchain/linux:clang_$target_cpu" _default_toolchain = "//chromium/build/toolchain/linux:clang_$target_cpu"
@@ -288,7 +289,7 @@ is_chromeos = current_os == "chromeos" @@ -288,7 +289,7 @@ is_chromeos = current_os == "chromeos"
is_fuchsia = current_os == "fuchsia" is_fuchsia = current_os == "fuchsia"
is_ios = current_os == "ios" is_ios = current_os == "ios"
@ -55,11 +42,24 @@ index 571ae5f0d6..863d428fc6 100644
is_mac = current_os == "mac" is_mac = current_os == "mac"
is_nacl = current_os == "nacl" is_nacl = current_os == "nacl"
is_win = current_os == "win" || current_os == "winuwp" is_win = current_os == "win" || current_os == "winuwp"
diff --git third_party/libwebrtc/BUILD.gn third_party/libwebrtc/BUILD.gn
index 14c47ef2be..31a86a41c0 100644
--- third_party/libwebrtc/BUILD.gn
+++ third_party/libwebrtc/BUILD.gn
@@ -110,7 +110,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 diff --git third_party/libwebrtc/modules/desktop_capture/BUILD.gn third_party/libwebrtc/modules/desktop_capture/BUILD.gn
index 0634e0e9c4..d5deba7ee7 100644 index 2f99e3f75f..7dc6c36aab 100644
--- third_party/libwebrtc/modules/desktop_capture/BUILD.gn --- third_party/libwebrtc/modules/desktop_capture/BUILD.gn
+++ third_party/libwebrtc/modules/desktop_capture/BUILD.gn +++ third_party/libwebrtc/modules/desktop_capture/BUILD.gn
@@ -75,7 +75,7 @@ if (rtc_include_tests) { @@ -74,7 +74,7 @@ if (rtc_include_tests) {
"window_finder_unittest.cc", "window_finder_unittest.cc",
] ]
@ -68,7 +68,7 @@ index 0634e0e9c4..d5deba7ee7 100644
configs += [ "../portal:gio" ] configs += [ "../portal:gio" ]
} }
@@ -87,7 +87,7 @@ if (rtc_include_tests) { @@ -86,7 +86,7 @@ if (rtc_include_tests) {
} }
} }
@ -77,7 +77,7 @@ index 0634e0e9c4..d5deba7ee7 100644
rtc_test("shared_screencast_stream_test") { rtc_test("shared_screencast_stream_test") {
testonly = true testonly = true
@@ -146,7 +146,7 @@ if (rtc_include_tests) { @@ -145,7 +145,7 @@ if (rtc_include_tests) {
"test_utils_unittest.cc", "test_utils_unittest.cc",
] ]
@ -86,16 +86,7 @@ index 0634e0e9c4..d5deba7ee7 100644
configs += [ "../portal:gio" ] configs += [ "../portal:gio" ]
} }
@@ -255,7 +255,7 @@ if (rtc_include_tests) { @@ -267,7 +267,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) {
configs += [ "../portal:gio" ]
}
@@ -268,7 +268,7 @@ if (rtc_include_tests) {
} }
# TODO(bugs.webrtc.org/14187): remove when all users are gone # TODO(bugs.webrtc.org/14187): remove when all users are gone
@ -104,7 +95,7 @@ index 0634e0e9c4..d5deba7ee7 100644
config("pipewire_config") { config("pipewire_config") {
configs = [ "../portal:pipewire_config" ] configs = [ "../portal:pipewire_config" ]
} }
@@ -326,7 +326,7 @@ rtc_library("desktop_capture") { @@ -329,7 +329,7 @@ rtc_library("desktop_capture") {
"window_finder.cc", "window_finder.cc",
"window_finder.h", "window_finder.h",
] ]
@ -114,10 +105,10 @@ index 0634e0e9c4..d5deba7ee7 100644
} }
if (is_mac) { if (is_mac) {
diff --git third_party/libwebrtc/modules/portal/BUILD.gn third_party/libwebrtc/modules/portal/BUILD.gn diff --git third_party/libwebrtc/modules/portal/BUILD.gn third_party/libwebrtc/modules/portal/BUILD.gn
index d7768b2323..3593a69592 100644 index 6828388b31..7e1857d861 100644
--- third_party/libwebrtc/modules/portal/BUILD.gn --- third_party/libwebrtc/modules/portal/BUILD.gn
+++ 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("//tools/generate_stubs/rules.gni")
import("../../webrtc.gni") import("../../webrtc.gni")
@ -127,10 +118,10 @@ index d7768b2323..3593a69592 100644
pkg_config("gio") { pkg_config("gio") {
packages = [ packages = [
diff --git third_party/libwebrtc/webrtc.gni third_party/libwebrtc/webrtc.gni diff --git third_party/libwebrtc/webrtc.gni third_party/libwebrtc/webrtc.gni
index e1273475b9..9bdbd7ec5e 100644 index 7155b1db72..22ed06166a 100644
--- third_party/libwebrtc/webrtc.gni --- third_party/libwebrtc/webrtc.gni
+++ third_party/libwebrtc/webrtc.gni +++ third_party/libwebrtc/webrtc.gni
@@ -157,7 +157,7 @@ declare_args() { @@ -151,7 +151,7 @@ declare_args() {
# By default it's only enabled on desktop Linux (excludes ChromeOS) and # 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 # only when using the sysroot as PipeWire is not available in older and
# supported Ubuntu and Debian distributions. # supported Ubuntu and Debian distributions.

View file

@ -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"]