sm-commit AT lists.ibiblio.org
Subject: Source Mage code commit list
List archive
[[SM-Commit] ] GIT changes to master grimoire by Pavel Vinogradov (4060e7230b41033ac870f817d29f27b7b97456bd)
- From: Pavel Vinogradov <scm AT sourcemage.org>
- To: sm-commit AT lists.ibiblio.org, sm-commit AT lists.sourcemage.org
- Subject: [[SM-Commit] ] GIT changes to master grimoire by Pavel Vinogradov (4060e7230b41033ac870f817d29f27b7b97456bd)
- Date: Tue, 30 Jun 2026 03:07:07 +0000
GIT changes to master grimoire by Pavel Vinogradov <public AT sourcemage.org>:
http/firefox/DETAILS
| 2
http/firefox/HISTORY
| 4
http/firefox/patches-for-musl/0017-bmo-1988166-musl-remove-nonexisting-system-header-req.patch
| 10
http/firefox/patches-for-musl/0019-bgo-967694-musl-prctrl-exception-on-musl.patch
| 14
http/firefox/patches-for-musl/0020-bgo-967694-musl-prctrl-exception-on-musl.patch
| 14
http/firefox/patches-for-musl/0020-bgo-970694-fix-missing-stdint.h-on-musl.patch
| 11
http/firefox/patches-for-musl/0021-bgo-970537-add-missing-header-for-musl.patch
| 12
http/firefox/patches-for-musl/0021-bgo-970694-fix-missing-stdint.h-on-musl.patch
| 11
http/firefox/patches-for-musl/0022-bgo-970537-add-missing-header-for-musl.patch
| 12
http/firefox/patches/0001-Fortify-sources-properly.patch
| 4
http/firefox/patches/0002-bmo-847568-support-system-harfbuzz-graphite2.patch
| 54 +-
http/firefox/patches/0016-bgo-962985-libcxx-visibility-fix.patch
| 4
http/firefox/patches/0017-bgo-910309-dont-link-widevineplugin-to-libgcc_s.patch
| 23 +
http/firefox/patches/0018-bgo-910309-dont-link-widevineplugin-to-libgcc_s.patch
| 23 -
http/firefox/patches/0018-bgo-966424-PR_GetEnv-non-unified-build-fix.patch
| 20
http/firefox/patches/0019-bgo-966424-PR_GetEnv-non-unified-build-fix.patch
| 20
http/firefox/patches/0022-ignore-Wincompatible-pointer-types-with-gcc-when-building-ffmpeg.patch
| 20
http/firefox/patches/0023-bgo-973544-add-cstdints-to-ipc-glue-and-woff2.patch
| 21 +
http/firefox/patches/0023-ignore-Wincompatible-pointer-types-with-gcc-when-building-ffmpeg.patch
| 20
http/firefox/patches/0024-bgo-973544-add-cstdints-to-ipc-glue-and-woff2.patch
| 21 -
http/firefox/patches/0024-bmo-2040125-addGetSystemProxyDirect-to-libproxy-path.patch
| 47 ++
http/firefox/patches/0025-bgo-976592-file-path-include-fstream-gcc-17-fix.patch
| 10
http/firefox/patches/0025-bmo-2040125-addGetSystemProxyDirect-to-libproxy-path.patch
| 47 --
http/firefox/patches/0026-bgo-976592-file-path-include-fstream-gcc-17-fix.patch
| 10
http/firefox/patches/0026-bmo-2039878-fix-Vulkan-Video-decoder-build-on-32-bit.patch
| 202 ++++++++++
http/firefox/patches/0027-bmo-1988166-only-wrap-single_threaded-when-it-actually-exists.patch
| 49 ++
26 files changed, 465 insertions(+), 220 deletions(-)
New commits:
commit 4060e7230b41033ac870f817d29f27b7b97456bd
Author: Pavel Vinogradov <public AT sourcemage.org>
Commit: Pavel Vinogradov <public AT sourcemage.org>
http/firefox: version 152.0.4
diff --git a/http/firefox/DETAILS b/http/firefox/DETAILS
index 03c0907..036f197 100755
--- a/http/firefox/DETAILS
+++ b/http/firefox/DETAILS
@@ -1,5 +1,5 @@
SPELL=firefox
- VERSION=152.0.3
+ VERSION=152.0.4
SECURITY_PATCH=227
SOURCE="${SPELL}-${VERSION}.source.tar.xz"
# Watch: http://releases.mozilla.org/pub/firefox/releases/
/releases/([0-9.]+)/
diff --git a/http/firefox/HISTORY b/http/firefox/HISTORY
index be64a54..c82d3b6 100644
--- a/http/firefox/HISTORY
+++ b/http/firefox/HISTORY
@@ -1,3 +1,7 @@
+2026-06-29 Pavel Vinogradov <public AT sourcemage.org>
+ * DETAILS: version 152.0.4
+ * patches/*, patches-for-musl/*: updated
+
2026-06-25 Pavel Vinogradov <public AT sourcemage.org>
* DETAILS: version 152.0.3
diff --git
a/http/firefox/patches-for-musl/0017-bmo-1988166-musl-remove-nonexisting-system-header-req.patch
b/http/firefox/patches-for-musl/0017-bmo-1988166-musl-remove-nonexisting-system-header-req.patch
deleted file mode 100644
index c1652d0..0000000
---
a/http/firefox/patches-for-musl/0017-bmo-1988166-musl-remove-nonexisting-system-header-req.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- a/config/system-headers.mozbuild
-+++ b/config/system-headers.mozbuild
-@@ -864,7 +864,6 @@
- "sys/shm.h",
- "sys/siginfo.h",
- "sys/signal.h",
-- "sys/single_threaded.h",
- "sys/socket.h",
- "sys/sockio.h",
- "sys/sparc/frame.h",
diff --git
a/http/firefox/patches-for-musl/0019-bgo-967694-musl-prctrl-exception-on-musl.patch
b/http/firefox/patches-for-musl/0019-bgo-967694-musl-prctrl-exception-on-musl.patch
new file mode 100644
index 0000000..94a4f5b
--- /dev/null
+++
b/http/firefox/patches-for-musl/0019-bgo-967694-musl-prctrl-exception-on-musl.patch
@@ -0,0 +1,14 @@
+Including linux/prrctl.h and sys/prctl.h with musl results in the
redifinition
+of `struct prctl_mm_map`.
+--- a/third_party/libwebrtc/rtc_base/platform_thread_types.cc
++++ b/third_party/libwebrtc/rtc_base/platform_thread_types.cc
+@@ -12,7 +12,9 @@
+
+ // IWYU pragma: begin_keep
+ #if defined(WEBRTC_LINUX)
++#if defined(__GLIBC__)
+ #include <linux/prctl.h>
++#endif
+ #include <sys/prctl.h>
+ #include <sys/syscall.h>
+
diff --git
a/http/firefox/patches-for-musl/0020-bgo-967694-musl-prctrl-exception-on-musl.patch
b/http/firefox/patches-for-musl/0020-bgo-967694-musl-prctrl-exception-on-musl.patch
deleted file mode 100644
index 94a4f5b..0000000
---
a/http/firefox/patches-for-musl/0020-bgo-967694-musl-prctrl-exception-on-musl.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-Including linux/prrctl.h and sys/prctl.h with musl results in the
redifinition
-of `struct prctl_mm_map`.
---- a/third_party/libwebrtc/rtc_base/platform_thread_types.cc
-+++ b/third_party/libwebrtc/rtc_base/platform_thread_types.cc
-@@ -12,7 +12,9 @@
-
- // IWYU pragma: begin_keep
- #if defined(WEBRTC_LINUX)
-+#if defined(__GLIBC__)
- #include <linux/prctl.h>
-+#endif
- #include <sys/prctl.h>
- #include <sys/syscall.h>
-
diff --git
a/http/firefox/patches-for-musl/0020-bgo-970694-fix-missing-stdint.h-on-musl.patch
b/http/firefox/patches-for-musl/0020-bgo-970694-fix-missing-stdint.h-on-musl.patch
new file mode 100644
index 0000000..0598a9a
--- /dev/null
+++
b/http/firefox/patches-for-musl/0020-bgo-970694-fix-missing-stdint.h-on-musl.patch
@@ -0,0 +1,11 @@
+$ cat /etc/portage/patches/www-client/firefox/missing-stdint.h
+--- a/xpcom/base/nsVersionComparator.h 2026-02-16 13:37:51.000000000 -0500
++++ b/xpcom/base/nsVersionComparator.h 2026-02-28 06:44:50.529920953 -0500
+@@ -8,6 +8,7 @@
+ #ifndef nsVersionComparator_h_
+ #define nsVersionComparator_h_
+
++#include <stdint.h>
+ #include <stdlib.h>
+ #include <string.h>
+ #include <assert.h>
diff --git
a/http/firefox/patches-for-musl/0021-bgo-970537-add-missing-header-for-musl.patch
b/http/firefox/patches-for-musl/0021-bgo-970537-add-missing-header-for-musl.patch
new file mode 100644
index 0000000..59716d8
--- /dev/null
+++
b/http/firefox/patches-for-musl/0021-bgo-970537-add-missing-header-for-musl.patch
@@ -0,0 +1,12 @@
+diff --git
a/third_party/libwebrtc/modules/desktop_capture/desktop_capturer.h
b/third_party/libwebrtc/modules/desktop_capture/desktop_capturer.h
+index 9b1efa0..a2dbee2 100644
+--- a/third_party/libwebrtc/modules/desktop_capture/desktop_capturer.h
++++ b/third_party/libwebrtc/modules/desktop_capture/desktop_capturer.h
+@@ -17,6 +17,7 @@
+ #include <string>
+ #include <type_traits>
+ #include <vector>
++#include <sys/types.h>
+
+ // TODO(alcooper): Update include usage in downstream consumers and then
change
+ // this to a forward declaration.
diff --git
a/http/firefox/patches-for-musl/0021-bgo-970694-fix-missing-stdint.h-on-musl.patch
b/http/firefox/patches-for-musl/0021-bgo-970694-fix-missing-stdint.h-on-musl.patch
deleted file mode 100644
index 15f1abd..0000000
---
a/http/firefox/patches-for-musl/0021-bgo-970694-fix-missing-stdint.h-on-musl.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-$ cat /etc/portage/patches/www-client/firefox/missing-stdint.h
---- a/xpcom/base/nsVersionComparator.h 2026-02-16 13:37:51.000000000 -0500
-+++ b/xpcom/base/nsVersionComparator.h 2026-02-28 06:44:50.529920953 -0500
-@@ -10,6 +10,7 @@
- #ifndef nsVersionComparator_h__
- #define nsVersionComparator_h__
-
-+#include <stdint.h>
- #include <stdlib.h>
- #include <string.h>
- #include <assert.h>
diff --git
a/http/firefox/patches-for-musl/0022-bgo-970537-add-missing-header-for-musl.patch
b/http/firefox/patches-for-musl/0022-bgo-970537-add-missing-header-for-musl.patch
deleted file mode 100644
index 59716d8..0000000
---
a/http/firefox/patches-for-musl/0022-bgo-970537-add-missing-header-for-musl.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git
a/third_party/libwebrtc/modules/desktop_capture/desktop_capturer.h
b/third_party/libwebrtc/modules/desktop_capture/desktop_capturer.h
-index 9b1efa0..a2dbee2 100644
---- a/third_party/libwebrtc/modules/desktop_capture/desktop_capturer.h
-+++ b/third_party/libwebrtc/modules/desktop_capture/desktop_capturer.h
-@@ -17,6 +17,7 @@
- #include <string>
- #include <type_traits>
- #include <vector>
-+#include <sys/types.h>
-
- // TODO(alcooper): Update include usage in downstream consumers and then
change
- // this to a forward declaration.
diff --git a/http/firefox/patches/0001-Fortify-sources-properly.patch
b/http/firefox/patches/0001-Fortify-sources-properly.patch
index 009ca80..6e90cd1 100644
--- a/http/firefox/patches/0001-Fortify-sources-properly.patch
+++ b/http/firefox/patches/0001-Fortify-sources-properly.patch
@@ -1,8 +1,8 @@
diff -Naur a/config/system-headers.mozbuild b/config/system-headers.mozbuild
--- a/config/system-headers.mozbuild 2023-07-04 13:57:53.418421221 +0300
+++ b/config/system-headers.mozbuild 2023-07-04 13:58:41.177179152 +0300
-@@ -227,7 +227,6 @@
- "execinfo.h",
+@@ -222,7 +222,6 @@ system_headers = [
+ "exe386.h",
"extras.h",
"fcntl.h",
- "features.h",
diff --git
a/http/firefox/patches/0002-bmo-847568-support-system-harfbuzz-graphite2.patch
b/http/firefox/patches/0002-bmo-847568-support-system-harfbuzz-graphite2.patch
index 5705164..c3c0882 100644
---
a/http/firefox/patches/0002-bmo-847568-support-system-harfbuzz-graphite2.patch
+++
b/http/firefox/patches/0002-bmo-847568-support-system-harfbuzz-graphite2.patch
@@ -1,8 +1,8 @@
diff --git a/config/system-headers.mozbuild b/config/system-headers.mozbuild
-index b14afa4..e0ac105 100644
+index 0202ed3..2d8fbdf 100644
--- a/config/system-headers.mozbuild
+++ b/config/system-headers.mozbuild
-@@ -1327,6 +1327,19 @@ if CONFIG["MOZ_SYSTEM_AV1"]:
+@@ -1321,6 +1321,19 @@ if CONFIG["MOZ_SYSTEM_AV1"]:
"dav1d/dav1d.h",
]
@@ -23,10 +23,10 @@ index b14afa4..e0ac105 100644
system_headers += [
"unicode/calendar.h",
diff --git a/dom/base/moz.build b/dom/base/moz.build
-index cd9090c..f42d490 100644
+index 7e8d942..93b1822 100644
--- a/dom/base/moz.build
+++ b/dom/base/moz.build
-@@ -608,6 +608,9 @@ FINAL_LIBRARY = "xul"
+@@ -610,6 +610,9 @@ FINAL_LIBRARY = "xul"
if CONFIG["MOZ_WIDGET_TOOLKIT"] == "gtk":
CXXFLAGS += CONFIG["MOZ_GTK3_CFLAGS"]
@@ -68,10 +68,10 @@ index 0000000..e0c5c51
+
+FINAL_LIBRARY = 'xul'
diff --git a/gfx/moz.build b/gfx/moz.build
-index c9077b3..56e3497 100644
+index 853d855..bdcbb48 100644
--- a/gfx/moz.build
+++ b/gfx/moz.build
-@@ -10,6 +10,14 @@ with Files("**"):
+@@ -8,6 +8,14 @@ with Files("**"):
with Files("wr/**"):
BUG_COMPONENT = ("Core", "Graphics: WebRender")
@@ -86,7 +86,7 @@ index c9077b3..56e3497 100644
DIRS += [
"cairo",
"2d",
-@@ -19,8 +27,6 @@ DIRS += [
+@@ -17,8 +25,6 @@ DIRS += [
"qcms",
"gl",
"layers",
@@ -96,12 +96,12 @@ index c9077b3..56e3497 100644
"thebes",
"ipc",
diff --git a/gfx/skia/generate_mozbuild.py b/gfx/skia/generate_mozbuild.py
-index 8f2fa5d..42a7b2c 100755
+index c9332ae..e593f2d 100755
--- a/gfx/skia/generate_mozbuild.py
+++ b/gfx/skia/generate_mozbuild.py
-@@ -91,6 +91,9 @@ if CONFIG['CC_TYPE'] in ('clang', 'clang-cl'):
- '-Wno-unused-private-field',
- ]
+@@ -98,6 +98,9 @@ LOCAL_INCLUDES += [
+ "/gfx/harfbuzz/src",
+ ]
+if CONFIG['MOZ_SYSTEM_HARFBUZZ']:
+ CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS']
@@ -110,12 +110,12 @@ index 8f2fa5d..42a7b2c 100755
LOCAL_INCLUDES += [
"/gfx/cairo/cairo/src",
diff --git a/gfx/skia/moz.build b/gfx/skia/moz.build
-index b944b3f..dd565ab 100644
+index 4f0f150..c74ac83 100644
--- a/gfx/skia/moz.build
+++ b/gfx/skia/moz.build
-@@ -644,6 +644,9 @@ if CONFIG['CC_TYPE'] in ('clang', 'clang-cl'):
- '-Wno-unused-private-field',
- ]
+@@ -651,6 +651,9 @@ LOCAL_INCLUDES += [
+ "/gfx/harfbuzz/src",
+ ]
+if CONFIG['MOZ_SYSTEM_HARFBUZZ']:
+ CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS']
@@ -124,7 +124,7 @@ index b944b3f..dd565ab 100644
LOCAL_INCLUDES += [
"/gfx/cairo/cairo/src",
diff --git a/gfx/thebes/moz.build b/gfx/thebes/moz.build
-index ea2e2cc..81de7da 100644
+index 2bb893d..d69c722 100644
--- a/gfx/thebes/moz.build
+++ b/gfx/thebes/moz.build
@@ -294,7 +294,13 @@ if CONFIG["MOZ_WAYLAND"]:
@@ -140,13 +140,13 @@ index ea2e2cc..81de7da 100644
+if CONFIG["MOZ_SYSTEM_HARFBUZZ"]:
+ CXXFLAGS += CONFIG["MOZ_HARFBUZZ_CFLAGS"]
- CXXFLAGS += ["-Werror=switch"]
+ COMPILE_FLAGS["WARNINGS_CXXFLAGS"] += ["-Werror=switch"]
diff --git a/intl/unicharutil/util/moz.build
b/intl/unicharutil/util/moz.build
-index 2396210..092baac 100644
+index c936134..3528895 100644
--- a/intl/unicharutil/util/moz.build
+++ b/intl/unicharutil/util/moz.build
-@@ -24,6 +24,9 @@ UNIFIED_SOURCES += [
+@@ -22,6 +22,9 @@ UNIFIED_SOURCES += [
"nsUnicodeProperties.cpp",
]
@@ -157,10 +157,10 @@ index 2396210..092baac 100644
GeneratedFile(
diff --git a/netwerk/dns/moz.build b/netwerk/dns/moz.build
-index b2456d2..a174ec4 100644
+index 2369794..186d279 100644
--- a/netwerk/dns/moz.build
+++ b/netwerk/dns/moz.build
-@@ -107,6 +107,9 @@ GeneratedFile(
+@@ -105,6 +105,9 @@ GeneratedFile(
"etld_data.inc", script="prepare_tlds.py",
inputs=["effective_tld_names.dat"]
)
@@ -171,10 +171,10 @@ index b2456d2..a174ec4 100644
LOCAL_INCLUDES += [
"/netwerk/base",
diff --git a/security/rlbox/moz.build b/security/rlbox/moz.build
-index feb85c6..f676e24 100644
+index 64545f5..a8f9235 100644
--- a/security/rlbox/moz.build
+++ b/security/rlbox/moz.build
-@@ -47,6 +47,9 @@ if CONFIG["MOZ_WASM_SANDBOXING_GRAPHITE"]:
+@@ -45,6 +45,9 @@ if CONFIG["MOZ_WASM_SANDBOXING_GRAPHITE"]:
for k, v in graphite_defines:
WASM_DEFINES[k] = v
LOCAL_INCLUDES += ["/gfx/graphite2/src"]
@@ -185,10 +185,10 @@ index feb85c6..f676e24 100644
if CONFIG["MOZ_WASM_SANDBOXING_OGG"]:
include("/media/libogg/sources.mozbuild")
diff --git a/toolkit/library/moz.build b/toolkit/library/moz.build
-index de16e73..d2ae3d7 100644
+index 08de21d..1214623 100644
--- a/toolkit/library/moz.build
+++ b/toolkit/library/moz.build
-@@ -290,6 +290,12 @@ if CONFIG["MOZ_SYSTEM_PNG"]:
+@@ -293,6 +293,12 @@ if CONFIG["MOZ_SYSTEM_PNG"]:
if CONFIG["MOZ_SYSTEM_WEBP"]:
OS_LIBS += CONFIG["MOZ_WEBP_LIBS"]
@@ -202,10 +202,10 @@ index de16e73..d2ae3d7 100644
OS_LIBS += CONFIG["MOZ_LIBEVENT_LIBS"]
diff --git a/toolkit/moz.configure b/toolkit/moz.configure
-index 52bca06..168291d 100644
+index 75e99bb..30058b3 100644
--- a/toolkit/moz.configure
+++ b/toolkit/moz.configure
-@@ -1381,6 +1381,26 @@ def enable_cairo_ft(target, tree_freetype,
freetype2_info):
+@@ -1341,6 +1341,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/http/firefox/patches/0016-bgo-962985-libcxx-visibility-fix.patch
b/http/firefox/patches/0016-bgo-962985-libcxx-visibility-fix.patch
index 6ec33cf..13f7e71 100644
--- a/http/firefox/patches/0016-bgo-962985-libcxx-visibility-fix.patch
+++ b/http/firefox/patches/0016-bgo-962985-libcxx-visibility-fix.patch
@@ -2,8 +2,8 @@ diff --git a/build/moz.configure/toolchain.configure
b/build/moz.configure/toolc
index b2192e4066..9c8de4636b 100644
--- a/build/moz.configure/toolchain.configure
+++ b/build/moz.configure/toolchain.configure
-@@ -2423,10 +2423,11 @@ set_define("_LIBCPP_ALWAYS_INLINE",
libcxx_override_visibility.empty)
- set_define("_LIBCPP_HIDE_FROM_ABI",
libcxx_override_visibility.hide_from_abi)
+@@ -2217,10 +2217,11 @@ set_define("_LIBCPP_HIDE_FROM_ABI",
libcxx_override_visibility.hide_from_abi)
+ set_define("_LIBCPP_REMOVE_TRANSITIVE_INCLUDES", True, when=using_libcxx)
-@depends(target, build_environment)
diff --git
a/http/firefox/patches/0017-bgo-910309-dont-link-widevineplugin-to-libgcc_s.patch
b/http/firefox/patches/0017-bgo-910309-dont-link-widevineplugin-to-libgcc_s.patch
new file mode 100644
index 0000000..74220e2
--- /dev/null
+++
b/http/firefox/patches/0017-bgo-910309-dont-link-widevineplugin-to-libgcc_s.patch
@@ -0,0 +1,23 @@
+diff '--color=auto' -Naur a/security/sandbox/linux/Sandbox.cpp
b/security/sandbox/linux/Sandbox.cpp
+--- a/security/sandbox/linux/Sandbox.cpp 2025-12-08 16:42:41.692767283
+0200
++++ b/security/sandbox/linux/Sandbox.cpp 2025-12-08 17:08:51.260959576
+0200
+@@ -18,9 +18,7 @@
+ #include "SandboxLogging.h"
+
+ #include <dirent.h>
+-#ifdef NIGHTLY_BUILD
+-# include "dlfcn.h"
+-#endif
++#include <dlfcn.h>
+ #include <errno.h>
+ #include <fcntl.h>
+ #include <linux/futex.h>
+@@ -776,7 +774,7 @@
+ files->Add("/proc/stat", SandboxOpenedFile::Error{});
+ files->Add("/proc/net/unix", SandboxOpenedFile::Error{});
+ files->Add("/proc/self/maps", SandboxOpenedFile::Error{});
+-
++ (void)dlopen("libgcc_s.so.1", RTLD_GLOBAL|RTLD_LAZY);
+ // Finally, start the sandbox.
+ SetCurrentProcessSandbox(GetMediaSandboxPolicy(files));
+ }
diff --git
a/http/firefox/patches/0018-bgo-910309-dont-link-widevineplugin-to-libgcc_s.patch
b/http/firefox/patches/0018-bgo-910309-dont-link-widevineplugin-to-libgcc_s.patch
deleted file mode 100644
index 74220e2..0000000
---
a/http/firefox/patches/0018-bgo-910309-dont-link-widevineplugin-to-libgcc_s.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-diff '--color=auto' -Naur a/security/sandbox/linux/Sandbox.cpp
b/security/sandbox/linux/Sandbox.cpp
---- a/security/sandbox/linux/Sandbox.cpp 2025-12-08 16:42:41.692767283
+0200
-+++ b/security/sandbox/linux/Sandbox.cpp 2025-12-08 17:08:51.260959576
+0200
-@@ -18,9 +18,7 @@
- #include "SandboxLogging.h"
-
- #include <dirent.h>
--#ifdef NIGHTLY_BUILD
--# include "dlfcn.h"
--#endif
-+#include <dlfcn.h>
- #include <errno.h>
- #include <fcntl.h>
- #include <linux/futex.h>
-@@ -776,7 +774,7 @@
- files->Add("/proc/stat", SandboxOpenedFile::Error{});
- files->Add("/proc/net/unix", SandboxOpenedFile::Error{});
- files->Add("/proc/self/maps", SandboxOpenedFile::Error{});
--
-+ (void)dlopen("libgcc_s.so.1", RTLD_GLOBAL|RTLD_LAZY);
- // Finally, start the sandbox.
- SetCurrentProcessSandbox(GetMediaSandboxPolicy(files));
- }
diff --git
a/http/firefox/patches/0018-bgo-966424-PR_GetEnv-non-unified-build-fix.patch
b/http/firefox/patches/0018-bgo-966424-PR_GetEnv-non-unified-build-fix.patch
new file mode 100644
index 0000000..c78e4c5
--- /dev/null
+++
b/http/firefox/patches/0018-bgo-966424-PR_GetEnv-non-unified-build-fix.patch
@@ -0,0 +1,20 @@
+--- a/intl/components/src/TimeZone.cpp
++++ b/intl/components/src/TimeZone.cpp
+@@ -4,6 +4,7 @@
+
+ #include "mozilla/intl/TimeZone.h"
+
++#include "mozilla/Try.h"
+ #include "mozilla/Vector.h"
+
+ #include <algorithm>
+--- a/widget/gtk/WakeLockListener.cpp
++++ b/widget/gtk/WakeLockListener.cpp
+@@ -14,6 +14,7 @@
+ #include "nsIStringBundle.h"
+ #include "nsReadableUtils.h"
+ #include "nsContentUtils.h"
++#include "prenv.h"
+
+ #ifdef MOZ_ENABLE_DBUS
+ # include <gio/gio.h>
diff --git
a/http/firefox/patches/0019-bgo-966424-PR_GetEnv-non-unified-build-fix.patch
b/http/firefox/patches/0019-bgo-966424-PR_GetEnv-non-unified-build-fix.patch
deleted file mode 100644
index c78e4c5..0000000
---
a/http/firefox/patches/0019-bgo-966424-PR_GetEnv-non-unified-build-fix.patch
+++ /dev/null
@@ -1,20 +0,0 @@
---- a/intl/components/src/TimeZone.cpp
-+++ b/intl/components/src/TimeZone.cpp
-@@ -4,6 +4,7 @@
-
- #include "mozilla/intl/TimeZone.h"
-
-+#include "mozilla/Try.h"
- #include "mozilla/Vector.h"
-
- #include <algorithm>
---- a/widget/gtk/WakeLockListener.cpp
-+++ b/widget/gtk/WakeLockListener.cpp
-@@ -14,6 +14,7 @@
- #include "nsIStringBundle.h"
- #include "nsReadableUtils.h"
- #include "nsContentUtils.h"
-+#include "prenv.h"
-
- #ifdef MOZ_ENABLE_DBUS
- # include <gio/gio.h>
diff --git
a/http/firefox/patches/0022-ignore-Wincompatible-pointer-types-with-gcc-when-building-ffmpeg.patch
b/http/firefox/patches/0022-ignore-Wincompatible-pointer-types-with-gcc-when-building-ffmpeg.patch
new file mode 100644
index 0000000..5454760
--- /dev/null
+++
b/http/firefox/patches/0022-ignore-Wincompatible-pointer-types-with-gcc-when-building-ffmpeg.patch
@@ -0,0 +1,20 @@
+# Shuffle -Wno-incompatible-pointer-types from clang-only to match with gcc
as well.
+#
+# <+sam_> I'd expect that to fail with clang too, but I think only with >=22
(https://github.com/llvm/llvm-project/issues/74605)
+
+diff '--color=auto' -Naur a/media/ffvpx/ffvpxcommon.mozbuild
b/media/ffvpx/ffvpxcommon.mozbuild
+--- a/media/ffvpx/ffvpxcommon.mozbuild 2026-04-20 19:12:06.303537185 +0300
++++ b/media/ffvpx/ffvpxcommon.mozbuild 2026-04-20 19:13:00.046200239 +0300
+@@ -35,11 +35,11 @@
+ '-Wno-unused-function',
+ # XXX This does not seem to have any effect on some versions of GCC.
+ '-Wno-deprecated-declarations',
++ '-Wno-incompatible-pointer-types',
+ ]
+ if CONFIG['CC_TYPE'] in ('clang', 'clang-cl'):
+ CFLAGS += [
+ '-Wno-absolute-value',
+- '-Wno-incompatible-pointer-types',
+ '-Wno-string-conversion',
+ '-Wno-visibility',
+ ]
diff --git
a/http/firefox/patches/0023-bgo-973544-add-cstdints-to-ipc-glue-and-woff2.patch
b/http/firefox/patches/0023-bgo-973544-add-cstdints-to-ipc-glue-and-woff2.patch
new file mode 100644
index 0000000..5adc2a3
--- /dev/null
+++
b/http/firefox/patches/0023-bgo-973544-add-cstdints-to-ipc-glue-and-woff2.patch
@@ -0,0 +1,21 @@
+--- a/ipc/glue/SharedMemoryHandle.h 2026-05-08 09:41:05.625846466 -0400
++++ b/ipc/glue/SharedMemoryHandle.h 2026-05-08 09:40:58.170035583 -0400
+@@ -5,6 +5,7 @@
+ #ifndef mozilla_ipc_SharedMemoryHandle_h
+ #define mozilla_ipc_SharedMemoryHandle_h
+
++#include <cstdint>
+ #include <utility>
+
+ #include "mozilla/UniquePtrExtensions.h"
+--- a/modules/woff2/include/woff2/output.h 2026-04-27 09:33:07.000000000
-0400
++++ b/modules/woff2/include/woff2/output.h 2026-05-08 20:55:09.770322838
-0400
+@@ -10,6 +10,7 @@
+ #define WOFF2_WOFF2_OUT_H_
+
+ #include <algorithm>
++#include <cstdint>
+ #include <cstring>
+ #include <memory>
+ #include <string>
+
\ No newline at end of file
diff --git
a/http/firefox/patches/0023-ignore-Wincompatible-pointer-types-with-gcc-when-building-ffmpeg.patch
b/http/firefox/patches/0023-ignore-Wincompatible-pointer-types-with-gcc-when-building-ffmpeg.patch
deleted file mode 100644
index 5454760..0000000
---
a/http/firefox/patches/0023-ignore-Wincompatible-pointer-types-with-gcc-when-building-ffmpeg.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-# Shuffle -Wno-incompatible-pointer-types from clang-only to match with gcc
as well.
-#
-# <+sam_> I'd expect that to fail with clang too, but I think only with >=22
(https://github.com/llvm/llvm-project/issues/74605)
-
-diff '--color=auto' -Naur a/media/ffvpx/ffvpxcommon.mozbuild
b/media/ffvpx/ffvpxcommon.mozbuild
---- a/media/ffvpx/ffvpxcommon.mozbuild 2026-04-20 19:12:06.303537185 +0300
-+++ b/media/ffvpx/ffvpxcommon.mozbuild 2026-04-20 19:13:00.046200239 +0300
-@@ -35,11 +35,11 @@
- '-Wno-unused-function',
- # XXX This does not seem to have any effect on some versions of GCC.
- '-Wno-deprecated-declarations',
-+ '-Wno-incompatible-pointer-types',
- ]
- if CONFIG['CC_TYPE'] in ('clang', 'clang-cl'):
- CFLAGS += [
- '-Wno-absolute-value',
-- '-Wno-incompatible-pointer-types',
- '-Wno-string-conversion',
- '-Wno-visibility',
- ]
diff --git
a/http/firefox/patches/0024-bgo-973544-add-cstdints-to-ipc-glue-and-woff2.patch
b/http/firefox/patches/0024-bgo-973544-add-cstdints-to-ipc-glue-and-woff2.patch
deleted file mode 100644
index 5adc2a3..0000000
---
a/http/firefox/patches/0024-bgo-973544-add-cstdints-to-ipc-glue-and-woff2.patch
+++ /dev/null
@@ -1,21 +0,0 @@
---- a/ipc/glue/SharedMemoryHandle.h 2026-05-08 09:41:05.625846466 -0400
-+++ b/ipc/glue/SharedMemoryHandle.h 2026-05-08 09:40:58.170035583 -0400
-@@ -5,6 +5,7 @@
- #ifndef mozilla_ipc_SharedMemoryHandle_h
- #define mozilla_ipc_SharedMemoryHandle_h
-
-+#include <cstdint>
- #include <utility>
-
- #include "mozilla/UniquePtrExtensions.h"
---- a/modules/woff2/include/woff2/output.h 2026-04-27 09:33:07.000000000
-0400
-+++ b/modules/woff2/include/woff2/output.h 2026-05-08 20:55:09.770322838
-0400
-@@ -10,6 +10,7 @@
- #define WOFF2_WOFF2_OUT_H_
-
- #include <algorithm>
-+#include <cstdint>
- #include <cstring>
- #include <memory>
- #include <string>
-
\ No newline at end of file
diff --git
a/http/firefox/patches/0024-bmo-2040125-addGetSystemProxyDirect-to-libproxy-path.patch
b/http/firefox/patches/0024-bmo-2040125-addGetSystemProxyDirect-to-libproxy-path.patch
new file mode 100644
index 0000000..51a9685
--- /dev/null
+++
b/http/firefox/patches/0024-bmo-2040125-addGetSystemProxyDirect-to-libproxy-path.patch
@@ -0,0 +1,47 @@
+
+# HG changeset patch
+# User Christoph Moench-Tegeder <cmt AT burggraben.net>
+# Date 1779091292 0
+# Node ID 6ad0c97b2327484e240b6d2e2cdefada0dc3a9fb
+# Parent 0fca3f59f8b7268de25c4e04a3283171442d0320
+Bug 2040125 - add GetSystemProxyDirect() to libproxy path
r=valentin,necko-reviewers
+
+In bmo #2028356 a "fast-path to skip proxy resolution[...]" was added,
+but the required method GetSystemProxyDirect() was not added for
+libproxy-enabled builds (all other cases - general Unix without
+libproxy, OSX, Windows - got that function).
+
+This makes a "--enable-libproxy" build (MOZ_ENABLE_LIBPROXY) fail at
+startup, as the symbol for nsUnixSystemProxySettings::GetSystemProxyDirect()
+does not resolve.
+
+This adds GetSystemProxyDirect() to the MOZ_ENABLE_LIBPROXY case - it's
+trivial, as we cannot know what libproxy will return for a specific URL,
+thus the fast-path does not apply and we can just return "false".
+
+Differential Revision: https://phabricator.services.mozilla.com/D300937
+
+
+diff --git a/toolkit/system/unixproxy/nsLibProxySettings.cpp
b/toolkit/system/unixproxy/nsLibProxySettings.cpp
+--- a/toolkit/system/unixproxy/nsLibProxySettings.cpp
++++ b/toolkit/system/unixproxy/nsLibProxySettings.cpp
+@@ -106,11 +106,18 @@ nsresult nsUnixSystemProxySettings::GetP
+ }
+
+ NS_IMETHODIMP
+ nsUnixSystemProxySettings::GetSystemWPADSetting(bool* aSystemWPADSetting) {
+ *aSystemWPADSetting = false;
+ return NS_OK;
+ }
+
++// we do not know if libproxy would return DIRECT or PROXY
++NS_IMETHODIMP
++nsUnixSystemProxySettings::GetSystemProxyDirect(bool* aResult) {
++ *aResult = false;
++ return NS_OK;
++}
++
+ NS_IMPL_COMPONENT_FACTORY(nsUnixSystemProxySettings) {
+ return do_AddRef(new nsUnixSystemProxySettings()).downcast<nsISupports>();
+ }
+
diff --git
a/http/firefox/patches/0025-bgo-976592-file-path-include-fstream-gcc-17-fix.patch
b/http/firefox/patches/0025-bgo-976592-file-path-include-fstream-gcc-17-fix.patch
new file mode 100644
index 0000000..8cc49e7
--- /dev/null
+++
b/http/firefox/patches/0025-bgo-976592-file-path-include-fstream-gcc-17-fix.patch
@@ -0,0 +1,10 @@
+--- a/ipc/chromium/src/base/file_path.h 2026-06-01 23:46:34.196804054
+0100
++++ b/ipc/chromium/src/base/file_path.h 2026-06-01 23:46:50.452943680
+0100
+@@ -65,6 +65,7 @@
+ #ifndef BASE_FILE_PATH_H_
+ #define BASE_FILE_PATH_H_
+
++#include <fstream>
+ #include <string>
+
+ #include "base/basictypes.h"
diff --git
a/http/firefox/patches/0025-bmo-2040125-addGetSystemProxyDirect-to-libproxy-path.patch
b/http/firefox/patches/0025-bmo-2040125-addGetSystemProxyDirect-to-libproxy-path.patch
deleted file mode 100644
index 51a9685..0000000
---
a/http/firefox/patches/0025-bmo-2040125-addGetSystemProxyDirect-to-libproxy-path.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-
-# HG changeset patch
-# User Christoph Moench-Tegeder <cmt AT burggraben.net>
-# Date 1779091292 0
-# Node ID 6ad0c97b2327484e240b6d2e2cdefada0dc3a9fb
-# Parent 0fca3f59f8b7268de25c4e04a3283171442d0320
-Bug 2040125 - add GetSystemProxyDirect() to libproxy path
r=valentin,necko-reviewers
-
-In bmo #2028356 a "fast-path to skip proxy resolution[...]" was added,
-but the required method GetSystemProxyDirect() was not added for
-libproxy-enabled builds (all other cases - general Unix without
-libproxy, OSX, Windows - got that function).
-
-This makes a "--enable-libproxy" build (MOZ_ENABLE_LIBPROXY) fail at
-startup, as the symbol for nsUnixSystemProxySettings::GetSystemProxyDirect()
-does not resolve.
-
-This adds GetSystemProxyDirect() to the MOZ_ENABLE_LIBPROXY case - it's
-trivial, as we cannot know what libproxy will return for a specific URL,
-thus the fast-path does not apply and we can just return "false".
-
-Differential Revision: https://phabricator.services.mozilla.com/D300937
-
-
-diff --git a/toolkit/system/unixproxy/nsLibProxySettings.cpp
b/toolkit/system/unixproxy/nsLibProxySettings.cpp
---- a/toolkit/system/unixproxy/nsLibProxySettings.cpp
-+++ b/toolkit/system/unixproxy/nsLibProxySettings.cpp
-@@ -106,11 +106,18 @@ nsresult nsUnixSystemProxySettings::GetP
- }
-
- NS_IMETHODIMP
- nsUnixSystemProxySettings::GetSystemWPADSetting(bool* aSystemWPADSetting) {
- *aSystemWPADSetting = false;
- return NS_OK;
- }
-
-+// we do not know if libproxy would return DIRECT or PROXY
-+NS_IMETHODIMP
-+nsUnixSystemProxySettings::GetSystemProxyDirect(bool* aResult) {
-+ *aResult = false;
-+ return NS_OK;
-+}
-+
- NS_IMPL_COMPONENT_FACTORY(nsUnixSystemProxySettings) {
- return do_AddRef(new nsUnixSystemProxySettings()).downcast<nsISupports>();
- }
-
diff --git
a/http/firefox/patches/0026-bgo-976592-file-path-include-fstream-gcc-17-fix.patch
b/http/firefox/patches/0026-bgo-976592-file-path-include-fstream-gcc-17-fix.patch
deleted file mode 100644
index 8cc49e7..0000000
---
a/http/firefox/patches/0026-bgo-976592-file-path-include-fstream-gcc-17-fix.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- a/ipc/chromium/src/base/file_path.h 2026-06-01 23:46:34.196804054
+0100
-+++ b/ipc/chromium/src/base/file_path.h 2026-06-01 23:46:50.452943680
+0100
-@@ -65,6 +65,7 @@
- #ifndef BASE_FILE_PATH_H_
- #define BASE_FILE_PATH_H_
-
-+#include <fstream>
- #include <string>
-
- #include "base/basictypes.h"
diff --git
a/http/firefox/patches/0026-bmo-2039878-fix-Vulkan-Video-decoder-build-on-32-bit.patch
b/http/firefox/patches/0026-bmo-2039878-fix-Vulkan-Video-decoder-build-on-32-bit.patch
new file mode 100644
index 0000000..fd8bfb2
--- /dev/null
+++
b/http/firefox/patches/0026-bmo-2039878-fix-Vulkan-Video-decoder-build-on-32-bit.patch
@@ -0,0 +1,202 @@
+From 18668a40373e592d5619fda1df0f57a53d068e17 Mon Sep 17 00:00:00 2001
+From: Tymur Boiko <tboiko AT nvidia.com>
+Date: Mon, 18 May 2026 10:20:02 +0000
+Subject: [PATCH] Bug 2039878 - Use VK_NULL_HANDLE for Vulkan object handles
in
+ FFmpegVulkanVideoDecoder on 32-bit. r=stransky
+
+Non-dispatchable handles (VkImage, VkDeviceMemory, VkSemaphore, etc.) and
+VkDevice are not pointer-sized on all ABIs; nullptr is ill-typed. Use
+VK_NULL_HANDLE for clears/defaults and explicit != VK_NULL_HANDLE guards.
+PFN_vk* and Vulkan pAllocator parameters stay nullptr.
+
+Differential Revision: https://phabricator.services.mozilla.com/D300757
+---
+ .../ffmpeg/FFmpegVulkanVideoDecoder.cpp | 56 ++++++++++---------
+ .../ffmpeg/FFmpegVulkanVideoDecoder.h | 2 +-
+ 2 files changed, 30 insertions(+), 28 deletions(-)
+
+diff --git a/dom/media/platforms/ffmpeg/FFmpegVulkanVideoDecoder.cpp
b/dom/media/platforms/ffmpeg/FFmpegVulkanVideoDecoder.cpp
+index 3d350c6a081c3..e077a4a2e69fc 100644
+--- a/dom/media/platforms/ffmpeg/FFmpegVulkanVideoDecoder.cpp
++++ b/dom/media/platforms/ffmpeg/FFmpegVulkanVideoDecoder.cpp
+@@ -58,7 +58,7 @@ FFmpegVideoDecoder<
+ // Resources should already be cleaned up by ProcessShutdown()
+ // If mDevice is not null here, it means ProcessShutdown wasn't called
+ // and the device may already be destroyed - don't try to clean up
+- if (mDevice) {
++ if (mDevice != VK_NULL_HANDLE) {
+ NS_WARNING(
+ "~FFmpegVulkanVideoDecoder called with device still set - resources
"
+ "may leak");
+@@ -67,18 +67,19 @@ FFmpegVideoDecoder<
+
+ void FFmpegVideoDecoder<LIBAV_VER>::FFmpegVulkanVideoDecoder::Cleanup() {
+ FFMPEGV_LOG("FFmpegVulkanVideoDecoder::Cleanup()");
+- if (mDevice) {
++ if (mDevice != VK_NULL_HANDLE) {
+ if (mDeviceWaitIdle) {
+ mDeviceWaitIdle(mDevice);
+ }
+ for (uint32_t qi = 0; qi < mCopyQueueCount; qi++) {
+- if (mCopyCmdBuf[qi] && mCopyCmdPool[qi] && mFreeCommandBuffers) {
++ if ((mCopyCmdBuf[qi] != VK_NULL_HANDLE) &&
++ (mCopyCmdPool[qi] != VK_NULL_HANDLE) && mFreeCommandBuffers) {
+ mFreeCommandBuffers(mDevice, mCopyCmdPool[qi], 1, &mCopyCmdBuf[qi]);
+ }
+- if (mCopyCmdPool[qi] && mDestroyCommandPool) {
++ if (mCopyCmdPool[qi] != VK_NULL_HANDLE && mDestroyCommandPool) {
+ mDestroyCommandPool(mDevice, mCopyCmdPool[qi], nullptr);
+ }
+- if (mCopyFence[qi] && mDestroyFence) {
++ if (mCopyFence[qi] != VK_NULL_HANDLE && mDestroyFence) {
+ mDestroyFence(mDevice, mCopyFence[qi], nullptr);
+ }
+ }
+@@ -90,23 +91,23 @@ void
FFmpegVideoDecoder<LIBAV_VER>::FFmpegVulkanVideoDecoder::Cleanup() {
+ }
+ mCopyDoneSemValue[i] = 0;
+ mCopyDoneSemSignaled[i] = false;
+- if (mCopyDoneSem[i] && mDestroySemaphore) {
++ if ((mCopyDoneSem[i] != VK_NULL_HANDLE) && mDestroySemaphore) {
+ mDestroySemaphore(mDevice, mCopyDoneSem[i], nullptr);
+ mCopyDoneSem[i] = VK_NULL_HANDLE;
+ }
+ if (mNv12BaseFd[i] >= 0) {
+ close(mNv12BaseFd[i]);
+ }
+- if (mNv12Image[i] && mDestroyImage) {
++ if ((mNv12Image[i] != VK_NULL_HANDLE) && mDestroyImage) {
+ mDestroyImage(mDevice, mNv12Image[i], nullptr);
+ }
+- if (mNv12Mem[i] && mFreeMemory) {
++ if ((mNv12Mem[i] != VK_NULL_HANDLE) && mFreeMemory) {
+ mFreeMemory(mDevice, mNv12Mem[i], nullptr);
+ }
+ }
+ }
+
+- mDevice = nullptr;
++ mDevice = VK_NULL_HANDLE;
+ mCopyQueueCount = 0;
+ mCopyQueueIsDedicatedTransfer = false;
+ mCopyQueueRoundRobin = 0;
+@@ -117,8 +118,8 @@ void
FFmpegVideoDecoder<LIBAV_VER>::FFmpegVulkanVideoDecoder::Cleanup() {
+ mDeviceFunctions.Clear();
+
+ for (int i = 0; i < kNumBuffers; i++) {
+- mNv12Image[i] = nullptr;
+- mNv12Mem[i] = nullptr;
++ mNv12Image[i] = VK_NULL_HANDLE;
++ mNv12Mem[i] = VK_NULL_HANDLE;
+ mNv12BaseFd[i] = -1;
+ mCopyDoneSem[i] = VK_NULL_HANDLE;
+ mCopyDoneSemFd[i] = -1;
+@@ -774,7 +775,7 @@ bool
FFmpegVideoDecoder<LIBAV_VER>::FFmpegVulkanVideoDecoder::InitCtx(
+ .get());
+ }
+
+- return mDevice != nullptr;
++ return mDevice != VK_NULL_HANDLE;
+ }
+
+ MediaResult
+@@ -794,13 +795,13 @@
FFmpegVideoDecoder<LIBAV_VER>::FFmpegVulkanVideoDecoder::InitCopyRingBuffer(
+ close(mNv12BaseFd[buf]);
+ mNv12BaseFd[buf] = -1;
+ }
+- if (mNv12Image[buf]) {
++ if (mNv12Image[buf] != VK_NULL_HANDLE) {
+ mDestroyImage(mDevice, mNv12Image[buf], nullptr);
+- mNv12Image[buf] = nullptr;
++ mNv12Image[buf] = VK_NULL_HANDLE;
+ }
+- if (mNv12Mem[buf]) {
++ if (mNv12Mem[buf] != VK_NULL_HANDLE) {
+ mFreeMemory(mDevice, mNv12Mem[buf], nullptr);
+- mNv12Mem[buf] = nullptr;
++ mNv12Mem[buf] = VK_NULL_HANDLE;
+ }
+ }
+
+@@ -840,13 +841,13 @@
FFmpegVideoDecoder<LIBAV_VER>::FFmpegVulkanVideoDecoder::InitCopyRingBuffer(
+ close(mNv12BaseFd[b]);
+ mNv12BaseFd[b] = -1;
+ }
+- if (mNv12Mem[b]) {
++ if (mNv12Mem[b] != VK_NULL_HANDLE) {
+ mFreeMemory(mDevice, mNv12Mem[b], nullptr);
+- mNv12Mem[b] = nullptr;
++ mNv12Mem[b] = VK_NULL_HANDLE;
+ }
+- if (mNv12Image[b]) {
++ if (mNv12Image[b] != VK_NULL_HANDLE) {
+ mDestroyImage(mDevice, mNv12Image[b], nullptr);
+- mNv12Image[b] = nullptr;
++ mNv12Image[b] = VK_NULL_HANDLE;
+ }
+ }
+ });
+@@ -924,7 +925,7 @@
FFmpegVideoDecoder<LIBAV_VER>::FFmpegVulkanVideoDecoder::InitCopyRingBuffer(
+ }
+ if (memTypeIndex == UINT32_MAX) {
+ mDestroyImage(mDevice, mNv12Image[buf], nullptr);
+- mNv12Image[buf] = nullptr;
++ mNv12Image[buf] = VK_NULL_HANDLE;
+ return MediaResult(
+ NS_ERROR_DOM_MEDIA_FATAL_ERR,
+ RESULT_DETAIL("No compatible memory type for NV12 image"));
+@@ -944,7 +945,7 @@
FFmpegVideoDecoder<LIBAV_VER>::FFmpegVulkanVideoDecoder::InitCopyRingBuffer(
+ res = mAllocateMemory(mDevice, &allocInfo, nullptr, &mNv12Mem[buf]);
+ if (res != VK_SUCCESS) {
+ mDestroyImage(mDevice, mNv12Image[buf], nullptr);
+- mNv12Image[buf] = nullptr;
++ mNv12Image[buf] = VK_NULL_HANDLE;
+ return MediaResult(NS_ERROR_DOM_MEDIA_FATAL_ERR,
+ RESULT_DETAIL("Failed to alloc NV12 memory"));
+ }
+@@ -953,8 +954,8 @@
FFmpegVideoDecoder<LIBAV_VER>::FFmpegVulkanVideoDecoder::InitCopyRingBuffer(
+ if (res != VK_SUCCESS) {
+ mFreeMemory(mDevice, mNv12Mem[buf], nullptr);
+ mDestroyImage(mDevice, mNv12Image[buf], nullptr);
+- mNv12Mem[buf] = nullptr;
+- mNv12Image[buf] = nullptr;
++ mNv12Mem[buf] = VK_NULL_HANDLE;
++ mNv12Image[buf] = VK_NULL_HANDLE;
+ return MediaResult(NS_ERROR_DOM_MEDIA_FATAL_ERR,
+ RESULT_DETAIL("Failed to bind NV12 memory"));
+ }
+@@ -981,8 +982,8 @@
FFmpegVideoDecoder<LIBAV_VER>::FFmpegVulkanVideoDecoder::InitCopyRingBuffer(
+ if (res != VK_SUCCESS) {
+ mFreeMemory(mDevice, mNv12Mem[buf], nullptr);
+ mDestroyImage(mDevice, mNv12Image[buf], nullptr);
+- mNv12Mem[buf] = nullptr;
+- mNv12Image[buf] = nullptr;
++ mNv12Mem[buf] = VK_NULL_HANDLE;
++ mNv12Image[buf] = VK_NULL_HANDLE;
+ return MediaResult(NS_ERROR_DOM_MEDIA_FATAL_ERR,
+ RESULT_DETAIL("Failed to export NV12 FD"));
+ }
+@@ -1052,7 +1053,8 @@
FFmpegVideoDecoder<LIBAV_VER>::FFmpegVulkanVideoDecoder::InitExternalSemaphores(
+ mCreateSemaphore(mDevice, &semInfo, nullptr, &mCopyDoneSem[buf]);
+ if (res != VK_SUCCESS) {
+ for (int b = 0; b < kNumBuffers; b++) {
+- if (created[b] && mCopyDoneSem[b] && mDestroySemaphore) {
++ if (created[b] && (mCopyDoneSem[b] != VK_NULL_HANDLE) &&
++ mDestroySemaphore) {
+ mDestroySemaphore(mDevice, mCopyDoneSem[b], nullptr);
+ mCopyDoneSem[b] = VK_NULL_HANDLE;
+ }
+diff --git a/dom/media/platforms/ffmpeg/FFmpegVulkanVideoDecoder.h
b/dom/media/platforms/ffmpeg/FFmpegVulkanVideoDecoder.h
+index 22902bdc5deff..158e7d614fb73 100644
+--- a/dom/media/platforms/ffmpeg/FFmpegVulkanVideoDecoder.h
++++ b/dom/media/platforms/ffmpeg/FFmpegVulkanVideoDecoder.h
+@@ -17,7 +17,7 @@ struct FFmpegVulkanVideoDecoder {
+ static constexpr int kNumBuffers = 32;
+
+ // Device & copy queues (decode queue is owned by FFmpeg)
+- VkDevice mDevice = nullptr;
++ VkDevice mDevice = VK_NULL_HANDLE;
+ uint32_t mQueueFamilyIndex = 0;
+ uint32_t mCopyQueueCount = 0;
+ bool mCopyQueueIsDedicatedTransfer = false;
+
diff --git
a/http/firefox/patches/0027-bmo-1988166-only-wrap-single_threaded-when-it-actually-exists.patch
b/http/firefox/patches/0027-bmo-1988166-only-wrap-single_threaded-when-it-actually-exists.patch
new file mode 100644
index 0000000..665a174
--- /dev/null
+++
b/http/firefox/patches/0027-bmo-1988166-only-wrap-single_threaded-when-it-actually-exists.patch
@@ -0,0 +1,49 @@
+diff --git a/config/system-headers.mozbuild b/config/system-headers.mozbuild
+--- a/config/system-headers.mozbuild
++++ b/config/system-headers.mozbuild
+@@ -855,11 +855,10 @@
+ "sys/sem.h",
+ "sys/sendfile.h",
+ "sys/shm.h",
+ "sys/siginfo.h",
+ "sys/signal.h",
+- "sys/single_threaded.h",
+ "sys/socket.h",
+ "sys/sockio.h",
+ "sys/sparc/frame.h",
+ "sys/stack.h",
+ "sys/statfs.h",
+@@ -1030,10 +1029,15 @@
+ if CONFIG["HAVE_EXECINFO"]:
+ system_headers += [
+ "execinfo.h",
+ ]
+
++if CONFIG["HAVE_SINGLE_THREADED_H"]:
++ system_headers += [
++ "sys/single_threaded.h",
++ ]
++
+ if CONFIG["MOZ_X11"]:
+ system_headers += [
+ "gdk/gdkx.h",
+ "gtk/gtkx.h",
+ "X11/cursorfont.h",
+diff --git a/toolkit/moz.configure b/toolkit/moz.configure
+--- a/toolkit/moz.configure
++++ b/toolkit/moz.configure
+@@ -1622,10 +1622,12 @@
+ with only_when(compile_environment & depends(target.os)(lambda os: os !=
"WINNT")):
+ set_define("HAVE_SYSIOCCOM_H", check_header("sys/ioccom.h"))
+
+ set_config("HAVE_EXECINFO", check_header("execinfo.h"))
+
++ set_config("HAVE_SINGLE_THREADED_H",
check_header("sys/single_threaded.h"))
++
+ # Elfhack
+ # ==============================================================
+ with only_when("--enable-compile-environment"):
+
+ @depends(host, target)
+
+
- [[SM-Commit] ] GIT changes to master grimoire by Pavel Vinogradov (4060e7230b41033ac870f817d29f27b7b97456bd), Pavel Vinogradov, 06/29/2026
Archive powered by MHonArc 2.6.24.