Skip to Content.
Sympa Menu

sm-commit - [[SM-Commit] ] GIT changes to master grimoire by Pavel Vinogradov (a0edef44a0f5afbad28baca76dc25c6f23ecef0b)

sm-commit AT lists.ibiblio.org

Subject: Source Mage code commit list

List archive

Chronological Thread  
  • 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 (a0edef44a0f5afbad28baca76dc25c6f23ecef0b)
  • Date: Thu, 15 Oct 2026 21:29:30 +0000

GIT changes to master grimoire by Pavel Vinogradov <public AT sourcemage.org>:

http/firefox/HISTORY
| 3
http/firefox/patches/0002-bmo-847568-support-system-harfbuzz-graphite2.patch
| 106 +-
http/firefox/patches/0008-gcc-lto-pgo-gentoo.patch
| 13
http/firefox/patches/0009-bgo-748849-RUST_TARGET_override.patch
| 61 +
http/firefox/patches/0010-bgo-748849-RUST_TARGET_override.patch
| 61 -
http/firefox/patches/0011-bgo-929967-fix-pgo-on-musl.patch
| 14
http/firefox/patches/0013-bmo-1657849-musl-sandbox-sched_setscheduler.patch
| 48 +
http/firefox/patches/0014-bmo-1657849-musl-sandbox-sched_setscheduler.patch
| 48 -
http/firefox/patches/0018-bgo-967694-musl-prctrl-exception-on-musl.patch
| 14
http/firefox/patches/0019-bgo-967694-musl-prctrl-exception-on-musl.patch
| 14
http/firefox/patches/0019-bgo-970694-fix-missing-stdint.h-on-musl.patch
| 12
http/firefox/patches/0020-bgo-970537-add-missing-header-for-musl.patch
| 12
http/firefox/patches/0020-bgo-970694-fix-missing-stdint.h-on-musl.patch
| 12
http/firefox/patches/0021-bgo-970537-add-missing-header-for-musl.patch
| 12

http/firefox/patches/0025-bgo-981931-musl-unkwown-type-name-uint32_t-fix.patch
| 9

http/firefox/patches/0026-bgo-981931-musl-unkwown-type-name-uint32_t-fix.patch
| 9
http/firefox/patches/0027-bmo-2071536-audio_thread_priority-musl-fix.patch
| 394 +++++++++
http/firefox/patches/0028-bmo-2071536-audio_thread_priority-musl-fix.patch
| 395 ----------
http/firefox/patches/0028-bmo-2074346-musl-fix-parakeet-cpp.patch
| 11
http/firefox/patches/0029-bmo-2074346-musl-fix-parakeet-cpp.patch
| 11

http/firefox/patches/0029-bmo-2080242-include-WidgetUtilsGtk.h-for-wayland-or-nodbus-builds.patch
| 32
http/firefox/patches/0029-firefox-158-fix-build-without-dbus.patch
| 15
22 files changed, 677 insertions(+), 629 deletions(-)

New commits:
commit a0edef44a0f5afbad28baca76dc25c6f23ecef0b
Author: Pavel Vinogradov <public AT sourcemage.org>
Commit: Pavel Vinogradov <public AT sourcemage.org>

http/firefox: updated patches for 158.0

diff --git a/http/firefox/HISTORY b/http/firefox/HISTORY
index 8fbe6ae..8001ad3 100644
--- a/http/firefox/HISTORY
+++ b/http/firefox/HISTORY
@@ -1,3 +1,6 @@
+2026-10-15 Pavel Vinogradov <public AT sourcemage.org>
+ * patches/* updated
+
2026-10-14 Pavel Vinogradov <public AT sourcemage.org>
* DEPENDS: zip is no longer needed (kudos to diego3kas)

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 31399d6..10fc128 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,6 @@
-diff --git a/config/system-headers.mozbuild b/config/system-headers.mozbuild
-index b8c1415..fafdbb9 100644
--- a/config/system-headers.mozbuild
+++ b/config/system-headers.mozbuild
-@@ -1331,6 +1331,19 @@ if CONFIG["MOZ_SYSTEM_AV1"]:
+@@ -1331,6 +1331,22 @@
"dav1d/dav1d.h",
]

@@ -14,40 +12,33 @@ index b8c1415..fafdbb9 100644
+
+if CONFIG['MOZ_SYSTEM_HARFBUZZ']:
+ system_headers += [
++ 'harfbuzz/hb-blob.h',
++ 'harfbuzz/hb-face.h',
+ 'harfbuzz/hb-glib.h',
+ 'harfbuzz/hb-ot.h',
+ 'harfbuzz/hb.h',
++ 'harfbuzz/hb-subset.h',
+ ]
+
if CONFIG["MOZ_SYSTEM_ICU"]:
system_headers += [
"unicode/calendar.h",
-diff --git a/dom/base/moz.build b/dom/base/moz.build
-index 108ccbf..73cbb21 100644
--- a/dom/base/moz.build
+++ b/dom/base/moz.build
-@@ -628,6 +628,9 @@ FINAL_LIBRARY = "xul"
+@@ -628,6 +628,10 @@
if CONFIG["MOZ_WIDGET_TOOLKIT"] == "gtk":
CXXFLAGS += CONFIG["MOZ_GTK3_CFLAGS"]

+if CONFIG["MOZ_SYSTEM_HARFBUZZ"]:
+ CXXFLAGS += CONFIG["MOZ_HARFBUZZ_CFLAGS"]
++ DEFINES["HB_EXTERN"] = 'extern __attribute__((visibility("default")))'
+
GeneratedFile(
"UseCounterList.h",
script="gen-usecounters.py",
-diff --git a/gfx/graphite2/geckoextra/moz.build
b/gfx/graphite2/geckoextra/moz.build
-new file mode 100644
-index 0000000..e0c5c51
---- /dev/null
+--- a/gfx/graphite2/geckoextra/moz.build
+++ b/gfx/graphite2/geckoextra/moz.build
-@@ -0,0 +1,25 @@
-+# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
-+# vim: set filetype=python:
-+# This Source Code Form is subject to the terms of the Mozilla Public
-+# License, v. 2.0. If a copy of the MPL was not distributed with this
-+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-+
+@@ -0,0 +1,19 @@
+EXPORTS.graphite2 += [
+ 'include/GraphiteExtra.h',
+ 'include/GraphiteStructsForRLBox.h',
@@ -67,11 +58,9 @@ index 0000000..e0c5c51
+AllowCompilerWarnings()
+
+FINAL_LIBRARY = 'xul'
-diff --git a/gfx/moz.build b/gfx/moz.build
-index 86d559e..9415cec 100644
--- a/gfx/moz.build
+++ b/gfx/moz.build
-@@ -14,6 +14,14 @@ with Files("skia/**"):
+@@ -14,6 +14,14 @@
with Files("angle/**"):
BUG_COMPONENT = ("Core", "Graphics: ANGLE")

@@ -86,7 +75,7 @@ index 86d559e..9415cec 100644
DIRS += [
"cairo",
"2d",
-@@ -23,8 +31,6 @@ DIRS += [
+@@ -23,8 +31,6 @@
"qcms",
"gl",
"layers",
@@ -95,39 +84,45 @@ index 86d559e..9415cec 100644
"ots/src",
"thebes",
"ipc",
-diff --git a/gfx/skia/generate_mozbuild.py b/gfx/skia/generate_mozbuild.py
-index 2599b54..4f24b22 100755
--- a/gfx/skia/generate_mozbuild.py
+++ b/gfx/skia/generate_mozbuild.py
-@@ -98,6 +98,9 @@ LOCAL_INCLUDES += [
- "/gfx/harfbuzz/src",
- ]
+@@ -97,7 +97,12 @@
+-LOCAL_INCLUDES += [
+- "/gfx/harfbuzz/src",
+-]
++if not CONFIG['MOZ_SYSTEM_HARFBUZZ']:
++ LOCAL_INCLUDES += [
++ "/gfx/harfbuzz/src",
++ ]

+if CONFIG['MOZ_SYSTEM_HARFBUZZ']:
+ CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS']
++ DEFINES['HB_EXTERN'] = 'extern __attribute__((visibility("default")))'
+
if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('gtk', 'android'):
LOCAL_INCLUDES += [
"/gfx/cairo/cairo/src",
-diff --git a/gfx/skia/moz.build b/gfx/skia/moz.build
-index 29e5adf..eeb3765 100644
--- a/gfx/skia/moz.build
+++ b/gfx/skia/moz.build
-@@ -650,6 +650,9 @@ LOCAL_INCLUDES += [
- "/gfx/harfbuzz/src",
- ]
+@@ -649,7 +649,12 @@
+-LOCAL_INCLUDES += [
+- "/gfx/harfbuzz/src",
+-]
++if not CONFIG['MOZ_SYSTEM_HARFBUZZ']:
++ LOCAL_INCLUDES += [
++ "/gfx/harfbuzz/src",
++ ]

+if CONFIG['MOZ_SYSTEM_HARFBUZZ']:
+ CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS']
++ DEFINES['HB_EXTERN'] = 'extern __attribute__((visibility("default")))'
+
if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('gtk', 'android'):
LOCAL_INCLUDES += [
"/gfx/cairo/cairo/src",
-diff --git a/gfx/thebes/moz.build b/gfx/thebes/moz.build
-index 68c4f26..1e3c14f 100644
--- a/gfx/thebes/moz.build
+++ b/gfx/thebes/moz.build
-@@ -287,7 +287,13 @@ if CONFIG["MOZ_WAYLAND"]:
+@@ -287,7 +287,14 @@

LOCAL_INCLUDES += CONFIG["SKIA_INCLUDES"]

@@ -139,42 +134,50 @@ index 68c4f26..1e3c14f 100644
+
+if CONFIG["MOZ_SYSTEM_HARFBUZZ"]:
+ CXXFLAGS += CONFIG["MOZ_HARFBUZZ_CFLAGS"]
++ DEFINES["HB_EXTERN"] = 'extern __attribute__((visibility("default")))'

COMPILE_FLAGS["WARNINGS_CXXFLAGS"] += ["-Werror=switch"]

-diff --git a/intl/unicharutil/util/moz.build
b/intl/unicharutil/util/moz.build
-index c936134..3528895 100644
+--- a/layout/inspector/moz.build
++++ b/layout/inspector/moz.build
+@@ -38,5 +38,8 @@
+ FINAL_LIBRARY = "xul"
+ LOCAL_INCLUDES += [
+ "../style",
+ "/dom/base",
+ ]
++if CONFIG["MOZ_SYSTEM_HARFBUZZ"]:
++ CXXFLAGS += CONFIG["MOZ_HARFBUZZ_CFLAGS"]
++ DEFINES["HB_EXTERN"] = 'extern __attribute__((visibility("default")))'
--- a/intl/unicharutil/util/moz.build
+++ b/intl/unicharutil/util/moz.build
-@@ -22,6 +22,9 @@ UNIFIED_SOURCES += [
+@@ -22,6 +22,10 @@
"nsUnicodeProperties.cpp",
]

+if CONFIG["MOZ_SYSTEM_HARFBUZZ"]:
+ CXXFLAGS += CONFIG["MOZ_HARFBUZZ_CFLAGS"]
++ DEFINES["HB_EXTERN"] = 'extern __attribute__((visibility("default")))'
+
include("/ipc/chromium/chromium-config.mozbuild")

GeneratedFile(
-diff --git a/netwerk/dns/moz.build b/netwerk/dns/moz.build
-index 7e3bff4..693292f 100644
--- a/netwerk/dns/moz.build
+++ b/netwerk/dns/moz.build
-@@ -107,6 +107,9 @@ GeneratedFile(
+@@ -107,6 +107,10 @@
"etld_data.inc", script="prepare_tlds.py",
inputs=["effective_tld_names.dat"]
)

+if CONFIG["MOZ_SYSTEM_HARFBUZZ"]:
+ CXXFLAGS += CONFIG["MOZ_HARFBUZZ_CFLAGS"]
++ DEFINES["HB_EXTERN"] = 'extern __attribute__((visibility("default")))'
+
# need to include etld_data.inc
LOCAL_INCLUDES += [
"/netwerk/base",
-diff --git a/security/rlbox/moz.build b/security/rlbox/moz.build
-index 64545f5..a8f9235 100644
--- a/security/rlbox/moz.build
+++ b/security/rlbox/moz.build
-@@ -45,6 +45,9 @@ if CONFIG["MOZ_WASM_SANDBOXING_GRAPHITE"]:
+@@ -45,6 +45,9 @@
for k, v in graphite_defines:
WASM_DEFINES[k] = v
LOCAL_INCLUDES += ["/gfx/graphite2/src"]
@@ -184,11 +187,9 @@ index 64545f5..a8f9235 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 7ce1adf..a590148 100644
--- a/toolkit/library/moz.build
+++ b/toolkit/library/moz.build
-@@ -294,6 +294,12 @@ if CONFIG["MOZ_SYSTEM_PNG"]:
+@@ -294,6 +294,13 @@
if CONFIG["MOZ_SYSTEM_WEBP"]:
OS_LIBS += CONFIG["MOZ_WEBP_LIBS"]

@@ -197,15 +198,14 @@ index 7ce1adf..a590148 100644
+
+if CONFIG["MOZ_SYSTEM_HARFBUZZ"]:
+ OS_LIBS += CONFIG["MOZ_HARFBUZZ_LIBS"]
++ OS_LIBS += CONFIG["MOZ_HARFBUZZ_SUBSET_LIBS"]
+
if CONFIG["MOZ_SYSTEM_LIBEVENT"]:
OS_LIBS += CONFIG["MOZ_LIBEVENT_LIBS"]

-diff --git a/toolkit/moz.configure b/toolkit/moz.configure
-index f8149b7..1efab61 100644
--- a/toolkit/moz.configure
+++ b/toolkit/moz.configure
-@@ -1289,6 +1289,26 @@ def enable_cairo_ft(target, tree_freetype,
freetype2_info):
+@@ -1316,6 +1316,30 @@
set_config("MOZ_ENABLE_CAIRO_FT", True, when=enable_cairo_ft)
set_config("CAIRO_FT_CFLAGS", ft2_info.cflags, when=enable_cairo_ft)

@@ -224,10 +224,14 @@ index f8149b7..1efab61 100644
+option("--with-system-harfbuzz",
+ help="Use system harfbuzz (located with pkgconfig)")
+
-+system_harfbuzz = pkg_check_modules("MOZ_HARFBUZZ", "harfbuzz >= 2.7.4",
++system_harfbuzz = pkg_check_modules("MOZ_HARFBUZZ", "harfbuzz >= 10.0.0",
+ when="--with-system-harfbuzz")
+
-+set_config("MOZ_SYSTEM_HARFBUZZ", depends_if(system_harfbuzz)(lambda _:
True))
++system_harfbuzz_subset = pkg_check_modules("MOZ_HARFBUZZ_SUBSET",
"harfbuzz-subset >= 10.0.0",
++ when="--with-system-harfbuzz")
++
++set_config("MOZ_SYSTEM_HARFBUZZ",
++ depends_if(system_harfbuzz)(lambda _: True))
+

# WebDriver (HTTP / BiDi)
diff --git a/http/firefox/patches/0008-gcc-lto-pgo-gentoo.patch
b/http/firefox/patches/0008-gcc-lto-pgo-gentoo.patch
index 8956bf7..561463e 100644
--- a/http/firefox/patches/0008-gcc-lto-pgo-gentoo.patch
+++ b/http/firefox/patches/0008-gcc-lto-pgo-gentoo.patch
@@ -149,4 +149,15 @@ diff --git
a/toolkit/components/terminator/nsTerminator.cpp b/toolkit/components
+
// Guarantee that gCrashAfterTicks is non-zero
gCrashAfterTicks = std::max(1, crashAfterMS / HEARTBEAT_INTERVAL_MS);
-
+
+diff '--color=auto' -Naur a/build/moz.configure/rust.configure
b/build/moz.configure/rust.configure
+--- a/build/moz.configure/rust.configure 2026-10-12
17:21:42.645361094 +0300
++++ b/build/moz.configure/rust.configure 2026-10-13
09:37:33.246223832 +0300
+@@ -1005,6 +1005,7 @@
+ & ~lto.rust_lto
+ & ~rust_sancov_flags
+ & ~code_coverage
++ & lto.enabled
+ )
+
+ set_config("RUST_LTO_ELIGIBLE", True, when=rust_lto_eligible)
diff --git a/http/firefox/patches/0009-bgo-748849-RUST_TARGET_override.patch
b/http/firefox/patches/0009-bgo-748849-RUST_TARGET_override.patch
new file mode 100644
index 0000000..b159cb5
--- /dev/null
+++ b/http/firefox/patches/0009-bgo-748849-RUST_TARGET_override.patch
@@ -0,0 +1,61 @@
+From: Sam James <sam AT gentoo.org>
+Subject: Allow RUST_TARGET override for detected Rust triplet (fixes musl
build)
+
+Respect RUST_TARGET from the environment to override Mozilla's
+own triplet detection.
+
+If the variable is unset, the old logic is used.
+
+The issue is that Gentoo supports both, say:
+- x86_64-unknown-linux-musl, and
+- x86-64-gentoo-linux-musl
+
+Our Rust is built to understand
+-gentoo- as a vendor target, but
+our Rust only actually includes
+-unknown-.
+
+Mozilla's configure sees -gentoo-
+in CHOST and that Rust _understands_
+-gentoo- and tries to use it, without
+verifying that we actually have
+-gentoo- installed as a Rust target.
+
+This requires exporting RUST_TARGET
+in the ebuild, possibly like:
+````
+inherit rust-toolchain
+
+src_configure() {
+ [...]
+ export RUST_TARGET=$(rust_abi)
+ [...]
+}
+````
+
+Inspired by Alpine's patch at
+https://git.alpinelinux.org/aports/tree/community/firefox/fix-rust-target.patch?id=740922900cf8042be6751fcfcccdd3fc11bd77d3.
+
+Bug: https://bugs.gentoo.org/748849
+Bug: https://bugs.gentoo.org/779178
+Bug: https://bugs.gentoo.org/836226
+Thanks-to: Georgy Yakovlev <gyakovlev AT gentoo.org>
+--- a/build/moz.configure/rust.configure
++++ b/build/moz.configure/rust.configure
+@@ -278,6 +278,7 @@ def rust_supported_targets(rustc):
+ return data
+
+
++@imports('os')
+ def detect_rustc_target(host_or_target, arm_target, rust_supported_targets):
+ # Rust's --target options are similar to, but not exactly the same
+ # as, the autoconf-derived targets we use. An example would be that
+@@ -431,7 +432,7 @@ def detect_rustc_target(host_or_target, arm_target,
rust_supported_targets):
+
+ return None
+
+- rustc_target = find_candidate(candidates)
++ rustc_target = os.environ.get('RUST_TARGET', find_candidate(candidates))
+
+ if rustc_target is None:
+ die("Don't know how to translate {} for
rustc".format(host_or_target.alias))
diff --git a/http/firefox/patches/0010-bgo-748849-RUST_TARGET_override.patch
b/http/firefox/patches/0010-bgo-748849-RUST_TARGET_override.patch
deleted file mode 100644
index b159cb5..0000000
--- a/http/firefox/patches/0010-bgo-748849-RUST_TARGET_override.patch
+++ /dev/null
@@ -1,61 +0,0 @@
-From: Sam James <sam AT gentoo.org>
-Subject: Allow RUST_TARGET override for detected Rust triplet (fixes musl
build)
-
-Respect RUST_TARGET from the environment to override Mozilla's
-own triplet detection.
-
-If the variable is unset, the old logic is used.
-
-The issue is that Gentoo supports both, say:
-- x86_64-unknown-linux-musl, and
-- x86-64-gentoo-linux-musl
-
-Our Rust is built to understand
--gentoo- as a vendor target, but
-our Rust only actually includes
--unknown-.
-
-Mozilla's configure sees -gentoo-
-in CHOST and that Rust _understands_
--gentoo- and tries to use it, without
-verifying that we actually have
--gentoo- installed as a Rust target.
-
-This requires exporting RUST_TARGET
-in the ebuild, possibly like:
-````
-inherit rust-toolchain
-
-src_configure() {
- [...]
- export RUST_TARGET=$(rust_abi)
- [...]
-}
-````
-
-Inspired by Alpine's patch at
-https://git.alpinelinux.org/aports/tree/community/firefox/fix-rust-target.patch?id=740922900cf8042be6751fcfcccdd3fc11bd77d3.
-
-Bug: https://bugs.gentoo.org/748849
-Bug: https://bugs.gentoo.org/779178
-Bug: https://bugs.gentoo.org/836226
-Thanks-to: Georgy Yakovlev <gyakovlev AT gentoo.org>
---- a/build/moz.configure/rust.configure
-+++ b/build/moz.configure/rust.configure
-@@ -278,6 +278,7 @@ def rust_supported_targets(rustc):
- return data
-
-
-+@imports('os')
- def detect_rustc_target(host_or_target, arm_target, rust_supported_targets):
- # Rust's --target options are similar to, but not exactly the same
- # as, the autoconf-derived targets we use. An example would be that
-@@ -431,7 +432,7 @@ def detect_rustc_target(host_or_target, arm_target,
rust_supported_targets):
-
- return None
-
-- rustc_target = find_candidate(candidates)
-+ rustc_target = os.environ.get('RUST_TARGET', find_candidate(candidates))
-
- if rustc_target is None:
- die("Don't know how to translate {} for
rustc".format(host_or_target.alias))
diff --git a/http/firefox/patches/0011-bgo-929967-fix-pgo-on-musl.patch
b/http/firefox/patches/0011-bgo-929967-fix-pgo-on-musl.patch
new file mode 100644
index 0000000..3c8457e
--- /dev/null
+++ b/http/firefox/patches/0011-bgo-929967-fix-pgo-on-musl.patch
@@ -0,0 +1,14 @@
+diff --git a/build/pgo/profileserver.py b/build/pgo/profileserver.py
+index 7354714..0385792 100755
+--- a/build/pgo/profileserver.py
++++ b/build/pgo/profileserver.py
+@@ -171,6 +171,9 @@ if __name__ == "__main__":
+ env["UPLOAD_PATH"], "profile-run-1.log"
+ )
+
++ # Workaround for https://bugs.gentoo.org/929967
++ env["LD_LIBRARY_PATH"] = os.path.join(os.getcwd(), "dist", "bin")
++
+ # Run Firefox a first time to initialize its profile
+ runner = FirefoxRunner(
+ profile=profile,
diff --git
a/http/firefox/patches/0013-bmo-1657849-musl-sandbox-sched_setscheduler.patch
b/http/firefox/patches/0013-bmo-1657849-musl-sandbox-sched_setscheduler.patch
new file mode 100644
index 0000000..4107656
--- /dev/null
+++
b/http/firefox/patches/0013-bmo-1657849-musl-sandbox-sched_setscheduler.patch
@@ -0,0 +1,48 @@
+diff --git a/security/sandbox/linux/SandboxFilter.cpp
b/security/sandbox/linux/SandboxFilter.cpp
+--- a/security/sandbox/linux/SandboxFilter.cpp
++++ b/security/sandbox/linux/SandboxFilter.cpp
+@@ -1924,12 +1924,20 @@ class GMPSandboxPolicy : public SandboxPolicyCommon {
+ // bug 2071378.
+ case __NR_sched_getaffinity:
+ case __NR_sched_getparam:
+- case __NR_sched_getscheduler:
+- case __NR_sched_setscheduler: {
++#if defined(LIBC_GLIBC)
++ case __NR_sched_setscheduler:
++#endif
++ case __NR_sched_getscheduler: {
+ Arg<pid_t> pid(0);
+ return If(pid == 0, Allow()).Else(Trap(SchedTrap, nullptr));
+ }
+
++#if !defined(LIBC_GLIBC)
++ // For pthread_create(3) on musl; bug 1657849.
++ case __NR_sched_setscheduler:
++ return Allow();
++#endif
++
+ // For clock(3) on older glibcs; bug 1304220.
+ case __NR_times:
+ return Allow();
+@@ -2209,13 +2217,21 @@ class RDDSandboxPolicy final : public
SandboxPolicyCommon {
+ case __NR_sched_getparam:
+ case __NR_sched_setparam:
+ case __NR_sched_getscheduler:
++#if defined(LIBC_GLIBC)
+ case __NR_sched_setscheduler:
++#endif
+ case __NR_sched_getattr:
+ case __NR_sched_setattr: {
+ Arg<pid_t> pid(0);
+ return If(pid == 0, Allow()).Else(Trap(SchedTrap, nullptr));
+ }
+
++#if !defined(LIBC_GLIBC)
++ // For pthread_create(3) on musl; bug 1657849.
++ case __NR_sched_setscheduler:
++ return Allow();
++#endif
++
+ // The priority bounds are also used, sometimes (bug 1838675):
+ case __NR_sched_get_priority_min:
+ case __NR_sched_get_priority_max:
diff --git
a/http/firefox/patches/0014-bmo-1657849-musl-sandbox-sched_setscheduler.patch
b/http/firefox/patches/0014-bmo-1657849-musl-sandbox-sched_setscheduler.patch
deleted file mode 100644
index 704e837..0000000
---
a/http/firefox/patches/0014-bmo-1657849-musl-sandbox-sched_setscheduler.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-diff --git a/security/sandbox/linux/SandboxFilter.cpp
b/security/sandbox/linux/SandboxFilter.cpp
---- a/security/sandbox/linux/SandboxFilter.cpp
-+++ b/security/sandbox/linux/SandboxFilter.cpp
-@@ -1924,12 +1924,20 @@ class GMPSandboxPolicy : public SandboxPolicyCommon {
- // bug 2071378.
- case __NR_sched_getaffinity:
- case __NR_sched_getparam:
-- case __NR_sched_getscheduler:
-- case __NR_sched_setscheduler: {
-+#if defined(__GLIBC__)
-+ case __NR_sched_setscheduler:
-+#endif
-+ case __NR_sched_getscheduler: {
- Arg<pid_t> pid(0);
- return If(pid == 0, Allow()).Else(Trap(SchedTrap, nullptr));
- }
-
-+#if !defined(__GLIBC__)
-+ // For pthread_create(3) on musl; bug 1657849.
-+ case __NR_sched_setscheduler:
-+ return Allow();
-+#endif
-+
- // For clock(3) on older glibcs; bug 1304220.
- case __NR_times:
- return Allow();
-@@ -2209,13 +2217,21 @@ class RDDSandboxPolicy final : public
SandboxPolicyCommon {
- case __NR_sched_getparam:
- case __NR_sched_setparam:
- case __NR_sched_getscheduler:
-+#if defined(__GLIBC__)
- case __NR_sched_setscheduler:
-+#endif
- case __NR_sched_getattr:
- case __NR_sched_setattr: {
- Arg<pid_t> pid(0);
- return If(pid == 0, Allow()).Else(Trap(SchedTrap, nullptr));
- }
-
-+#if !defined(__GLIBC__)
-+ // For pthread_create(3) on musl; bug 1657849.
-+ case __NR_sched_setscheduler:
-+ return Allow();
-+#endif
-+
- // The priority bounds are also used, sometimes (bug 1838675):
- case __NR_sched_get_priority_min:
- case __NR_sched_get_priority_max:
diff --git
a/http/firefox/patches/0018-bgo-967694-musl-prctrl-exception-on-musl.patch
b/http/firefox/patches/0018-bgo-967694-musl-prctrl-exception-on-musl.patch
new file mode 100644
index 0000000..94a4f5b
--- /dev/null
+++ b/http/firefox/patches/0018-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/0019-bgo-967694-musl-prctrl-exception-on-musl.patch
b/http/firefox/patches/0019-bgo-967694-musl-prctrl-exception-on-musl.patch
deleted file mode 100644
index 94a4f5b..0000000
--- a/http/firefox/patches/0019-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/0019-bgo-970694-fix-missing-stdint.h-on-musl.patch
b/http/firefox/patches/0019-bgo-970694-fix-missing-stdint.h-on-musl.patch
new file mode 100644
index 0000000..6155f06
--- /dev/null
+++ b/http/firefox/patches/0019-bgo-970694-fix-missing-stdint.h-on-musl.patch
@@ -0,0 +1,12 @@
+diff --git a/xpcom/base/nsVersionComparator.h
b/xpcom/base/nsVersionComparator.h
+index 1e16bcb..a5a19e3 100644
+--- a/xpcom/base/nsVersionComparator.h
++++ b/xpcom/base/nsVersionComparator.h
+@@ -9,6 +9,7 @@
+ #define nsVersionComparator_h_
+
+ #include <assert.h>
++#include <stdint.h>
+ #include <stdlib.h>
+ #include <string.h>
+ #if defined(XP_WIN) && !defined(UPDATER_NO_STRING_GLUE_STL)
diff --git
a/http/firefox/patches/0020-bgo-970537-add-missing-header-for-musl.patch
b/http/firefox/patches/0020-bgo-970537-add-missing-header-for-musl.patch
new file mode 100644
index 0000000..59716d8
--- /dev/null
+++ b/http/firefox/patches/0020-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/0020-bgo-970694-fix-missing-stdint.h-on-musl.patch
b/http/firefox/patches/0020-bgo-970694-fix-missing-stdint.h-on-musl.patch
deleted file mode 100644
index 6155f06..0000000
--- a/http/firefox/patches/0020-bgo-970694-fix-missing-stdint.h-on-musl.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/xpcom/base/nsVersionComparator.h
b/xpcom/base/nsVersionComparator.h
-index 1e16bcb..a5a19e3 100644
---- a/xpcom/base/nsVersionComparator.h
-+++ b/xpcom/base/nsVersionComparator.h
-@@ -9,6 +9,7 @@
- #define nsVersionComparator_h_
-
- #include <assert.h>
-+#include <stdint.h>
- #include <stdlib.h>
- #include <string.h>
- #if defined(XP_WIN) && !defined(UPDATER_NO_STRING_GLUE_STL)
diff --git
a/http/firefox/patches/0021-bgo-970537-add-missing-header-for-musl.patch
b/http/firefox/patches/0021-bgo-970537-add-missing-header-for-musl.patch
deleted file mode 100644
index 59716d8..0000000
--- a/http/firefox/patches/0021-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/0025-bgo-981931-musl-unkwown-type-name-uint32_t-fix.patch

b/http/firefox/patches/0025-bgo-981931-musl-unkwown-type-name-uint32_t-fix.patch
new file mode 100644
index 0000000..3590e71
--- /dev/null
+++
b/http/firefox/patches/0025-bgo-981931-musl-unkwown-type-name-uint32_t-fix.patch
@@ -0,0 +1,9 @@
+--- a/dom/base/PrefetchCandidates.h 2026-08-24 16:18:13.000000000 -0400
++++ b/dom/base/PrefetchCandidates.h 2026-09-04 08:15:11.208426255 -0400
+@@ -5,6 +5,7 @@
+ #ifndef mozilla_dom_PrefetchCandidates_h
+ #define mozilla_dom_PrefetchCandidates_h
+
++#include <stdint.h>
+ #include "mozilla/UniquePtr.h"
+ #include "nsTArrayForwardDeclare.h"
diff --git
a/http/firefox/patches/0026-bgo-981931-musl-unkwown-type-name-uint32_t-fix.patch

b/http/firefox/patches/0026-bgo-981931-musl-unkwown-type-name-uint32_t-fix.patch
deleted file mode 100644
index 3590e71..0000000
---
a/http/firefox/patches/0026-bgo-981931-musl-unkwown-type-name-uint32_t-fix.patch
+++ /dev/null
@@ -1,9 +0,0 @@
---- a/dom/base/PrefetchCandidates.h 2026-08-24 16:18:13.000000000 -0400
-+++ b/dom/base/PrefetchCandidates.h 2026-09-04 08:15:11.208426255 -0400
-@@ -5,6 +5,7 @@
- #ifndef mozilla_dom_PrefetchCandidates_h
- #define mozilla_dom_PrefetchCandidates_h
-
-+#include <stdint.h>
- #include "mozilla/UniquePtr.h"
- #include "nsTArrayForwardDeclare.h"
diff --git
a/http/firefox/patches/0027-bmo-2071536-audio_thread_priority-musl-fix.patch
b/http/firefox/patches/0027-bmo-2071536-audio_thread_priority-musl-fix.patch
new file mode 100644
index 0000000..a38f668
--- /dev/null
+++
b/http/firefox/patches/0027-bmo-2071536-audio_thread_priority-musl-fix.patch
@@ -0,0 +1,394 @@
+From 81443b2080eba962852906534a2b205ee11d5ad5 Mon Sep 17 00:00:00 2001
+From: Paul Adenot <paul AT paul.cx>
+Date: Wed, 7 Oct 2026 12:45:26 +0000
+Subject: [PATCH] Bug 2071536 - Fix the build on musl.
+ r=cubeb-reviewers,supply-chain-reviewers,pehrsons
+
+audio_thread_priority didn't compile on musl, this has been fixed
+upstream. audioipc is also updated, the tree now only uses 0.38.
+
+Differential Revision: https://phabricator.services.mozilla.com/D327331
+---
+ .cargo/config.toml.in | 4 +--
+ Cargo.lock | 10 +++---
+ supply-chain/imports.lock | 4 +--
+ .../.cargo-checksum.json | 2 +-
+ .../.cargo_vcs_info.json | 2 +-
+ .../.github/workflows/rust.yml | 36 +++++++++++++++++++
+ .../rust/audio_thread_priority/Cargo.lock | 2 +-
+ .../rust/audio_thread_priority/Cargo.toml | 2 +-
+ .../audio_thread_priority/Cargo.toml.orig | 2 +-
+ .../audio_thread_priority/src/rt_linux.rs | 6 ++--
+ .../src/rt_linux_native.rs | 32 +++++++++++++----
+ .../audioipc2-client/.cargo-checksum.json | 2 +-
+ third_party/rust/audioipc2-client/Cargo.toml | 2 +-
+ .../audioipc2-server/.cargo-checksum.json | 2 +-
+ third_party/rust/audioipc2-server/Cargo.toml | 2 +-
+ .../rust/audioipc2/.cargo-checksum.json | 2 +-
+ third_party/rust/audioipc2/Cargo.toml | 2 +-
+ toolkit/library/rust/shared/Cargo.toml | 6 ++--
+ 18 files changed, 89 insertions(+), 31 deletions(-)
+
+diff --git a/.cargo/config.toml.in b/.cargo/config.toml.in
+index a903b00463844..8b4f608287727 100644
+--- a/.cargo/config.toml.in
++++ b/.cargo/config.toml.in
+@@ -65,9 +65,9 @@ git = "https://github.com/martinthomson/ohttp";
+ rev = "600931b5a1e947776cbaad931ed78f1e89005352"
+ replace-with = "vendored-sources"
+
+-[source."git+https://github.com/mozilla/audioipc?rev=d3c9825";]
++[source."git+https://github.com/mozilla/audioipc?rev=ef46a7bd05032d1577208ff048d444cc7412c7b8";]
+ git = "https://github.com/mozilla/audioipc";
+-rev = "d3c9825"
++rev = "ef46a7bd05032d1577208ff048d444cc7412c7b8"
+ replace-with = "vendored-sources"
+
+ [source."git+https://github.com/mozilla/authenticator-rs?tag=v0.6.1";]
+diff --git a/Cargo.lock b/Cargo.lock
+index 02c727c6a2241..5ecd60bee9daa 100644
+--- a/Cargo.lock
++++ b/Cargo.lock
+@@ -336,9 +336,9 @@ dependencies = [
+
+ [[package]]
+ name = "audio_thread_priority"
+-version = "0.37.0"
++version = "0.38.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index";
+-checksum =
"e58c7a923538aa84eef9947d81924fb9f34d7db6004e179218ab57a7bb7700b6"
++checksum =
"e0b30b2f3d2da482d0faeaafd8f88a38fbc62abb58d3b402cfa195793f4c92ab"
+ dependencies = [
+ "cfg-if",
+ "dbus",
+@@ -351,7 +351,7 @@ dependencies = [
+ [[package]]
+ name = "audioipc2"
+ version = "0.6.0"
+-source =
"git+https://github.com/mozilla/audioipc?rev=d3c9825#d3c9825a876a5fc7b54101bd40d685acfc542917";
++source =
"git+https://github.com/mozilla/audioipc?rev=ef46a7bd05032d1577208ff048d444cc7412c7b8#ef46a7bd05032d1577208ff048d444cc7412c7b8";
+ dependencies = [
+ "arrayvec",
+ "ashmem",
+@@ -377,7 +377,7 @@ dependencies = [
+ [[package]]
+ name = "audioipc2-client"
+ version = "0.6.0"
+-source =
"git+https://github.com/mozilla/audioipc?rev=d3c9825#d3c9825a876a5fc7b54101bd40d685acfc542917";
++source =
"git+https://github.com/mozilla/audioipc?rev=ef46a7bd05032d1577208ff048d444cc7412c7b8#ef46a7bd05032d1577208ff048d444cc7412c7b8";
+ dependencies = [
+ "audio_thread_priority",
+ "audioipc2",
+@@ -388,7 +388,7 @@ dependencies = [
+ [[package]]
+ name = "audioipc2-server"
+ version = "0.6.0"
+-source =
"git+https://github.com/mozilla/audioipc?rev=d3c9825#d3c9825a876a5fc7b54101bd40d685acfc542917";
++source =
"git+https://github.com/mozilla/audioipc?rev=ef46a7bd05032d1577208ff048d444cc7412c7b8#ef46a7bd05032d1577208ff048d444cc7412c7b8";
+ dependencies = [
+ "audio_thread_priority",
+ "audioipc2",
+diff --git a/supply-chain/imports.lock b/supply-chain/imports.lock
+index 3ee5c35efa206..1f8eb40c6c31c 100644
+--- a/supply-chain/imports.lock
++++ b/supply-chain/imports.lock
+@@ -30,8 +30,8 @@ user-login = "Amanieu"
+ user-name = "Amanieu d'Antras"
+
+ [[publisher.audio_thread_priority]]
+-version = "0.37.0"
+-when = "2026-08-10"
++version = "0.38.0"
++when = "2026-09-17"
+ user-id = 1258
+ user-login = "padenot"
+ user-name = "Paul Adenot"
+diff --git a/third_party/rust/audio_thread_priority/.cargo-checksum.json
b/third_party/rust/audio_thread_priority/.cargo-checksum.json
+index 9690a6292e384..e1e8974824974 100644
+--- a/third_party/rust/audio_thread_priority/.cargo-checksum.json
++++ b/third_party/rust/audio_thread_priority/.cargo-checksum.json
+@@ -1 +1 @@
+-{"files":{".cargo_vcs_info.json":"13629c1e0aabfcffbae3bddf6a472231b10f973817c0bd549f5e2782036184dd",".github/workflows/rust.yml":"f1ff0376f6d30c204620d50af9c60c4374b7e5001ad290e3bf3595925923f8f2","Cargo.lock":"fff166a1e4746a81e6b2b060692ed73790e8472e7c0526f60f2870baf5edb480","Cargo.toml":"ada29a3c844b5aaa099cea6854b1ca73cf98795ab52b8085c196c2931d08688d","Cargo.toml.orig":"6bdedb288e992ab55fb7d728a7941b1c85fb430c75c72fae685126b87c5f9372","LICENSE":"32ee9dbf6196874fc9d406c54a888a6c4cbb9aa4a7f35b46befeaff43a78fe85","Makefile":"0f9a771cfb30c7c4b9961d82fdca4e9e229a955bb2e636474a4101389e18e938","README.md":"c123692b3b50dd621b896a8269814d609cbf1e532b461bf4a77854ddd607eb7a","atp_test.cpp":"8075a040941a65fb9e3f7cbf0535853ca6661c3ac442ec35569b42b24bbec797","audio_thread_priority.h":"c32ac62eaa6b9482e5a56c407a47ec470ccadcdc8c95b06d38bd593987975a74","generate_osx_bindings.sh":"06e4e03450f788ced18d31fff5660919e6f6ec1119ddace363ffeb82f0518a71","src/lib.rs":"6e384fb8103be42882a162f22f5f7350a427ef797d895f662f54953dd9aea59b","src/rt_android.rs":"2e54e3ac527bef0c11790013c9399e1f388752a952af667c85da0f6f53eeb7c9","src/rt_linux.rs":"53204f6aa158b270a22b4099cde58558ec5ff96292ac8955581b4bcfbf3443d3","src/rt_linux_native.rs":"283ba4e200a1de707a4c336cae5d7f2fec9fc9c7a5a0794c286b4228bfe926b4","src/rt_mach.rs":"723e29ee7392b10c30f803b90a23ec6cd7a8aaaf6e81fe711e86cb6588a13ff0","src/rt_win.rs":"1743f579aea1b29940fee2f0652e23f76e08153ec7cbca621e5720d526e25b96"},"package":"e58c7a923538aa84eef9947d81924fb9f34d7db6004e179218ab57a7bb7700b6"}
+\ No newline at end of file
++{"files":{".cargo_vcs_info.json":"941d7dd364a5ca6de04e5a1129197df302d661f809bab3d5ba6d63eb63e364e6",".github/workflows/rust.yml":"0b36b48d6f1976ae3a089596945ef398e02cfcb584a8dd04cb1fc2f16d2fd45f","Cargo.lock":"338d7d500e7cd330949216e3e9e7242cf91439b3eec90a5a75812df7f1fa4108","Cargo.toml":"8f76e327c4ac3c0e333491e7d35c52053574c7ec403b0cc4344893459eaadef8","Cargo.toml.orig":"0f774ee30569ad64f6de4affb15469b240f91086ef2e02320d60e248c853938f","LICENSE":"32ee9dbf6196874fc9d406c54a888a6c4cbb9aa4a7f35b46befeaff43a78fe85","Makefile":"0f9a771cfb30c7c4b9961d82fdca4e9e229a955bb2e636474a4101389e18e938","README.md":"c123692b3b50dd621b896a8269814d609cbf1e532b461bf4a77854ddd607eb7a","atp_test.cpp":"8075a040941a65fb9e3f7cbf0535853ca6661c3ac442ec35569b42b24bbec797","audio_thread_priority.h":"c32ac62eaa6b9482e5a56c407a47ec470ccadcdc8c95b06d38bd593987975a74","generate_osx_bindings.sh":"06e4e03450f788ced18d31fff5660919e6f6ec1119ddace363ffeb82f0518a71","src/lib.rs":"6e384fb8103be42882a162f22f5f7350a427ef797d895f662f54953dd9aea59b","src/rt_android.rs":"2e54e3ac527bef0c11790013c9399e1f388752a952af667c85da0f6f53eeb7c9","src/rt_linux.rs":"6bfb616de5a089279aaa306ca408433c873fe66812b144750f77f9d975cc166d","src/rt_linux_native.rs":"0634c3bc9ad4f4cf86f30735b3234fbd1d544ce28009305fede08ca27e745538","src/rt_mach.rs":"723e29ee7392b10c30f803b90a23ec6cd7a8aaaf6e81fe711e86cb6588a13ff0","src/rt_win.rs":"1743f579aea1b29940fee2f0652e23f76e08153ec7cbca621e5720d526e25b96"},"package":"e0b30b2f3d2da482d0faeaafd8f88a38fbc62abb58d3b402cfa195793f4c92ab"}
+\ No newline at end of file
+diff --git a/third_party/rust/audio_thread_priority/.cargo_vcs_info.json
b/third_party/rust/audio_thread_priority/.cargo_vcs_info.json
+index 7daddfc03701d..c818c1ab58f09 100644
+--- a/third_party/rust/audio_thread_priority/.cargo_vcs_info.json
++++ b/third_party/rust/audio_thread_priority/.cargo_vcs_info.json
+@@ -1,6 +1,6 @@
+ {
+ "git": {
+- "sha1": "0aa1ecd7719b582b54f7648eec1f76e9f18cdd3c"
++ "sha1": "f7823feae23ac705d09156eaa84a4deea75fa55e"
+ },
+ "path_in_vcs": ""
+ }
+\ No newline at end of file
+diff --git
a/third_party/rust/audio_thread_priority/.github/workflows/rust.yml
b/third_party/rust/audio_thread_priority/.github/workflows/rust.yml
+index 8c71d5acb1919..916a27cb5b3a5 100644
+--- a/third_party/rust/audio_thread_priority/.github/workflows/rust.yml
++++ b/third_party/rust/audio_thread_priority/.github/workflows/rust.yml
+@@ -91,3 +91,39 @@ jobs:
+ sudo prlimit --pid $$ --rtprio=10:10
+ echo "RLIMIT_RTPRIO soft=$(ulimit -Sr) hard=$(ulimit -Hr)"
+ rustup run ${{ matrix.rust }} cargo test --no-default-features
++
++ # musl defines pthread_t as a pointer instead of an integer, unlike glibc.
++ build-musl:
++ runs-on: ubuntu-24.04
++ strategy:
++ matrix:
++ rust: [stable, nightly]
++
++ steps:
++ - uses: actions/checkout@v2
++
++ - name: Install Rust (musl target)
++ run: |
++ rustup toolchain install ${{ matrix.rust }} --profile minimal
++ rustup target add x86_64-unknown-linux-musl --toolchain ${{
matrix.rust }}
++
++ - name: Install Dependencies
++ run: sudo apt-get update && sudo apt-get install libdbus-1-dev
++
++ - name: Build (musl, with dbus)
++ shell: bash
++ # The crate is a staticlib/rlib, so this doesn't link, and hence
needs no musl libdbus: only
++ # the headers, which pkg-config finds for the host.
++ run: PKG_CONFIG_ALLOW_CROSS=1 rustup run ${{ matrix.rust }} cargo
build --target x86_64-unknown-linux-musl --features dbus
++
++ - name: Build (musl, without dbus)
++ shell: bash
++ run: rustup run ${{ matrix.rust }} cargo build --target
x86_64-unknown-linux-musl --no-default-features
++
++ - name: Test (musl, without dbus)
++ shell: bash
++ # Statically linked musl test binaries run fine on the glibc runner.
As in the fallback job,
++ # the native promotion path needs permission to request real-time
scheduling.
++ run: |
++ sudo prlimit --pid $$ --rtprio=10:10
++ rustup run ${{ matrix.rust }} cargo test --target
x86_64-unknown-linux-musl --no-default-features -- --nocapture
+diff --git a/third_party/rust/audio_thread_priority/Cargo.lock
b/third_party/rust/audio_thread_priority/Cargo.lock
+index fa8f0b5f0a7a1..de676cf7f087e 100644
+--- a/third_party/rust/audio_thread_priority/Cargo.lock
++++ b/third_party/rust/audio_thread_priority/Cargo.lock
+@@ -4,7 +4,7 @@ version = 4
+
+ [[package]]
+ name = "audio_thread_priority"
+-version = "0.37.0"
++version = "0.38.0"
+ dependencies = [
+ "cfg-if",
+ "dbus",
+diff --git a/third_party/rust/audio_thread_priority/Cargo.toml
b/third_party/rust/audio_thread_priority/Cargo.toml
+index 8456277e7ed7f..fa1177ffeccf5 100644
+--- a/third_party/rust/audio_thread_priority/Cargo.toml
++++ b/third_party/rust/audio_thread_priority/Cargo.toml
+@@ -12,7 +12,7 @@
+ [package]
+ edition = "2018"
+ name = "audio_thread_priority"
+-version = "0.37.0"
++version = "0.38.0"
+ authors = ["Paul Adenot <paul AT paul.cx>"]
+ build = false
+ autolib = false
+diff --git a/third_party/rust/audio_thread_priority/Cargo.toml.orig
b/third_party/rust/audio_thread_priority/Cargo.toml.orig
+index 1d96d3d8e7a7a..cab6972721335 100644
+--- a/third_party/rust/audio_thread_priority/Cargo.toml.orig
++++ b/third_party/rust/audio_thread_priority/Cargo.toml.orig
+@@ -1,6 +1,6 @@
+ [package]
+ name = "audio_thread_priority"
+-version = "0.37.0"
++version = "0.38.0"
+ authors = ["Paul Adenot <paul AT paul.cx>"]
+ description = "Bump a thread to real-time priority, for audio work, on
Linux, Android, Windows and macOS"
+ license = "MPL-2.0"
+diff --git a/third_party/rust/audio_thread_priority/src/rt_linux.rs
b/third_party/rust/audio_thread_priority/src/rt_linux.rs
+index 982803c3242d5..82f9bff22a499 100644
+--- a/third_party/rust/audio_thread_priority/src/rt_linux.rs
++++ b/third_party/rust/audio_thread_priority/src/rt_linux.rs
+@@ -62,7 +62,9 @@ impl RtPriorityThreadInfoInternal {
+ /// struct, so no uninitialized padding bytes are ever read. Any
trailing padding stays zero.
+ pub fn serialize(&self) -> [u8; std::mem::size_of::<Self>()] {
+ let thread_id = self.thread_id.to_ne_bytes();
+- let pthread_id = self.pthread_id.to_ne_bytes();
++ // `pthread_t` is an integer with glibc but a pointer with musl: go
through `usize`, which
++ // is as wide as both.
++ let pthread_id = (self.pthread_id as usize).to_ne_bytes();
+ let pid = self.pid.to_ne_bytes();
+ let policy = self.policy.to_ne_bytes();
+ let priority = self.priority.to_ne_bytes();
+@@ -91,7 +93,7 @@ impl RtPriorityThreadInfoInternal {
+ let mut src = bytes.iter().copied();
+ RtPriorityThreadInfoInternal {
+ thread_id: kernel_pid_t::from_ne_bytes(take(&mut src)),
+- pthread_id: libc::pthread_t::from_ne_bytes(take(&mut src)),
++ pthread_id: usize::from_ne_bytes(take(&mut src)) as
libc::pthread_t,
+ pid: libc::pid_t::from_ne_bytes(take(&mut src)),
+ policy: libc::c_int::from_ne_bytes(take(&mut src)),
+ priority: libc::c_int::from_ne_bytes(take(&mut src)),
+diff --git a/third_party/rust/audio_thread_priority/src/rt_linux_native.rs
b/third_party/rust/audio_thread_priority/src/rt_linux_native.rs
+index def33b09f14ea..9420e89fe6e3f 100644
+--- a/third_party/rust/audio_thread_priority/src/rt_linux_native.rs
++++ b/third_party/rust/audio_thread_priority/src/rt_linux_native.rs
+@@ -78,7 +78,9 @@ impl RtPriorityThreadInfoInternal {
+ /// struct, so no uninitialized padding bytes are ever read. Any
trailing padding stays zero.
+ pub fn serialize(&self) -> [u8; std::mem::size_of::<Self>()] {
+ let thread_id = self.thread_id.to_ne_bytes();
+- let pthread_id = self.pthread_id.to_ne_bytes();
++ // `pthread_t` is an integer with glibc but a pointer with musl: go
through `usize`, which
++ // is as wide as both.
++ let pthread_id = (self.pthread_id as usize).to_ne_bytes();
+ let pid = self.pid.to_ne_bytes();
+ let policy = self.policy.to_ne_bytes();
+ let priority = self.priority.to_ne_bytes();
+@@ -107,7 +109,7 @@ impl RtPriorityThreadInfoInternal {
+ let mut src = bytes.iter().copied();
+ RtPriorityThreadInfoInternal {
+ thread_id: kernel_pid_t::from_ne_bytes(take(&mut src)),
+- pthread_id: libc::pthread_t::from_ne_bytes(take(&mut src)),
++ pthread_id: usize::from_ne_bytes(take(&mut src)) as
libc::pthread_t,
+ pid: libc::pid_t::from_ne_bytes(take(&mut src)),
+ policy: libc::c_int::from_ne_bytes(take(&mut src)),
+ priority: libc::c_int::from_ne_bytes(take(&mut src)),
+@@ -140,6 +142,26 @@ fn sched_error(context: &str) ->
AudioThreadPriorityError {
+ AudioThreadPriorityError::new(&format!("{}: {}", context,
OSError::last_os_error()))
+ }
+
++/// Set the scheduling policy and priority of the thread with tid `tid`.
++///
++/// This goes through the syscall directly because musl's
`sched_setscheduler` is a stub that always
++/// fails with `ENOSYS`: POSIX specifies it as process-scoped, which Linux
does not provide. The
++/// syscall is per-thread, which is what is needed here.
++fn sched_setscheduler(
++ tid: libc::pid_t,
++ policy: libc::c_int,
++ param: &libc::sched_param,
++) -> libc::c_long {
++ unsafe {
++ libc::syscall(
++ libc::SYS_sched_setscheduler,
++ tid,
++ policy,
++ param as *const libc::sched_param,
++ )
++ }
++}
++
+ /// A thread's system-wide tid narrowed to `pid_t` for the scheduler
syscalls. A tid always fits in
+ /// `pid_t` (it is a pid), but convert defensively rather than truncating.
+ fn scheduler_tid(thread_id: kernel_pid_t) -> Result<libc::pid_t,
AudioThreadPriorityError> {
+@@ -236,8 +258,7 @@ pub fn promote_thread_to_real_time_internal(
+ let mut param = unsafe { std::mem::zeroed::<libc::sched_param>() };
+ param.sched_priority = requested_priority();
+
+- let rc =
+- unsafe { libc::sched_setscheduler(tid, libc::SCHED_FIFO |
SCHED_RESET_ON_FORK, &param) };
++ let rc = sched_setscheduler(tid, libc::SCHED_FIFO |
SCHED_RESET_ON_FORK, &param);
+ if rc < 0 {
+ return Err(sched_error("could not promote thread"));
+ }
+@@ -254,8 +275,7 @@ pub fn demote_thread_from_real_time_internal(
+ let tid = scheduler_tid(thread_info.thread_id)?;
+ let mut param = unsafe { std::mem::zeroed::<libc::sched_param>() };
+ param.sched_priority = thread_info.priority;
+- let rc =
+- unsafe { libc::sched_setscheduler(tid, thread_info.policy |
SCHED_RESET_ON_FORK, &param) };
++ let rc = sched_setscheduler(tid, thread_info.policy |
SCHED_RESET_ON_FORK, &param);
+ if rc < 0 {
+ return Err(sched_error("could not demote thread"));
+ }
+diff --git a/third_party/rust/audioipc2-client/.cargo-checksum.json
b/third_party/rust/audioipc2-client/.cargo-checksum.json
+index d1b5b396f9b6b..d223c59ba80f7 100644
+--- a/third_party/rust/audioipc2-client/.cargo-checksum.json
++++ b/third_party/rust/audioipc2-client/.cargo-checksum.json
+@@ -1 +1 @@
+-{"files":{"Cargo.toml":"e16f57291b3e7be5e035f2b1793b5864ae091d573df060ff032d484ca608c6a8","cbindgen.toml":"fb6abe1671497f432a06e40b1db7ed7cd2cceecbd9a2382193ad7534e8855e34","src/context.rs":"c351b782e9bb83a1fbc5127e07a4d06c59978256bb0dc265df256eb948a6cf4e","src/lib.rs":"0322bba9529c81c891bc2c033d402590058014da0df0730dbf9532380c2dabe8","src/send_recv.rs":"cd396a704f205d4ef680f484461a065aa29f624603d5031f9973779826fb3c19","src/stream.rs":"d7d4967c8ef760a58592aff23157357646528c1c83c9de394e1f9c8043f72a81"},"package":null}
+\ No newline at end of file
++{"files":{"Cargo.toml":"b74876a8e35719161990b55d3b83127d883efcdddce79c866044ba59ab17e849","cbindgen.toml":"fb6abe1671497f432a06e40b1db7ed7cd2cceecbd9a2382193ad7534e8855e34","src/context.rs":"c351b782e9bb83a1fbc5127e07a4d06c59978256bb0dc265df256eb948a6cf4e","src/lib.rs":"0322bba9529c81c891bc2c033d402590058014da0df0730dbf9532380c2dabe8","src/send_recv.rs":"cd396a704f205d4ef680f484461a065aa29f624603d5031f9973779826fb3c19","src/stream.rs":"d7d4967c8ef760a58592aff23157357646528c1c83c9de394e1f9c8043f72a81"},"package":null}
+\ No newline at end of file
+diff --git a/third_party/rust/audioipc2-client/Cargo.toml
b/third_party/rust/audioipc2-client/Cargo.toml
+index 19c71182ce6fb..c0abc1f74e091 100644
+--- a/third_party/rust/audioipc2-client/Cargo.toml
++++ b/third_party/rust/audioipc2-client/Cargo.toml
+@@ -36,7 +36,7 @@ cubeb-backend = "0.34"
+ log = "0.4"
+
+ [dependencies.audio_thread_priority]
+-version = "0.37"
++version = "0.38"
+ default-features = false
+
+ [dependencies.audioipc]
+diff --git a/third_party/rust/audioipc2-server/.cargo-checksum.json
b/third_party/rust/audioipc2-server/.cargo-checksum.json
+index d7bab1720f7c1..931775e6ec78b 100644
+--- a/third_party/rust/audioipc2-server/.cargo-checksum.json
++++ b/third_party/rust/audioipc2-server/.cargo-checksum.json
+@@ -1 +1 @@
+-{"files":{"Cargo.toml":"80d2db99b52346498fbdfd082fa294bf962d2442eefaaeb001ef04b009e5100b","cbindgen.toml":"fb6abe1671497f432a06e40b1db7ed7cd2cceecbd9a2382193ad7534e8855e34","src/lib.rs":"a19c1bad94e16a0cfcd1e93c25b97bf58cc00e9666b5c31652d8a2242decb36c","src/server.rs":"28d494e2d4a6ad673f77912578179eb7b1b8b927d7fd63048d099284d03aeda7"},"package":null}
+\ No newline at end of file
++{"files":{"Cargo.toml":"7169f1242e389376f935ea01e29d17d7ebe52fcac3631c332357e1272fab1ba0","cbindgen.toml":"fb6abe1671497f432a06e40b1db7ed7cd2cceecbd9a2382193ad7534e8855e34","src/lib.rs":"a19c1bad94e16a0cfcd1e93c25b97bf58cc00e9666b5c31652d8a2242decb36c","src/server.rs":"28d494e2d4a6ad673f77912578179eb7b1b8b927d7fd63048d099284d03aeda7"},"package":null}
+\ No newline at end of file
+diff --git a/third_party/rust/audioipc2-server/Cargo.toml
b/third_party/rust/audioipc2-server/Cargo.toml
+index 7e00b45c32106..dc16be95944ea 100644
+--- a/third_party/rust/audioipc2-server/Cargo.toml
++++ b/third_party/rust/audioipc2-server/Cargo.toml
+@@ -38,7 +38,7 @@ once_cell = "1.2.0"
+ slab = "0.4"
+
+ [dependencies.audio_thread_priority]
+-version = "0.37"
++version = "0.38"
+ default-features = false
+
+ [dependencies.audioipc]
+diff --git a/third_party/rust/audioipc2/.cargo-checksum.json
b/third_party/rust/audioipc2/.cargo-checksum.json
+index cae4359f76de7..a49135bb208bc 100644
+--- a/third_party/rust/audioipc2/.cargo-checksum.json
++++ b/third_party/rust/audioipc2/.cargo-checksum.json
+@@ -1 +1 @@
+-{"files":{"Cargo.toml":"e5f446c16280d1294e630015be9bda06c489f20dde65c6d3c3b974325e676fdc","benches/serialization.rs":"495e9128fb7892c3460bf55c6dc56a3d9e8853331f566d43231e30fad2c00ff4","src/codec.rs":"49120cd77f09e4acace1629936157fc9afa0a846c9018ad2dd021b5f0e6577fd","src/errors.rs":"36fe5299aee55761366ddc5dcf2f6fb5d81d8a718c59394b6baeb4075fdfc1a7","src/ipccore.rs":"a06cf09aa600df1280538e7946223ab979f088848213fc9c1a394af312f81fbd","src/lib.rs":"98ba1fe514326d2ef374c9ccc3a7125836cdcc3abe62abcf9a4af0084205538a","src/messages.rs":"d294f24ce018603d2e141af3a06a983421a8da191275937bd2cfa8523064def1","src/rpccore.rs":"058477df2304b4d8c5d1a347663301bcdea3f772762f806963e63a0c8df9ea73","src/shm.rs":"61c9f5d158914cb0ed34d7ce898d1ab24d1a892c68ee0406ff03d01e5c172d32","src/sys/mod.rs":"e6fa1d260abf093e1f7b50185195e2d3aee0eb8c9774c6f253953b5896d838f3","src/sys/unix/cmsg.rs":"e7b7154d55ce57e16ba93d4982630077bf6c70fa56e572956f14ae15aa43cb4c","src/sys/unix/mod.rs":"de0cd5c7a44cfd7c1f5b8cd0260089dc7245373ff9baa0ce44acfdc2d407a9d1","src/sys/unix/msg.rs":"25244de3eba920fa42e032f8fa4ea4913a9fdeb5124ade61e707f6cc6dd946b0","src/sys/windows/mod.rs":"7eaabb76e62c6962b636320e2bbf79a78fce61659c799a798f7dd6d56b0be8a1"},"package":null}
+\ No newline at end of file
++{"files":{"Cargo.toml":"4381ef3bff9eb36cfb1f0ef7793f09204229d3f7260144a2501ae83ca40b70c1","benches/serialization.rs":"495e9128fb7892c3460bf55c6dc56a3d9e8853331f566d43231e30fad2c00ff4","src/codec.rs":"49120cd77f09e4acace1629936157fc9afa0a846c9018ad2dd021b5f0e6577fd","src/errors.rs":"36fe5299aee55761366ddc5dcf2f6fb5d81d8a718c59394b6baeb4075fdfc1a7","src/ipccore.rs":"a06cf09aa600df1280538e7946223ab979f088848213fc9c1a394af312f81fbd","src/lib.rs":"98ba1fe514326d2ef374c9ccc3a7125836cdcc3abe62abcf9a4af0084205538a","src/messages.rs":"d294f24ce018603d2e141af3a06a983421a8da191275937bd2cfa8523064def1","src/rpccore.rs":"058477df2304b4d8c5d1a347663301bcdea3f772762f806963e63a0c8df9ea73","src/shm.rs":"61c9f5d158914cb0ed34d7ce898d1ab24d1a892c68ee0406ff03d01e5c172d32","src/sys/mod.rs":"e6fa1d260abf093e1f7b50185195e2d3aee0eb8c9774c6f253953b5896d838f3","src/sys/unix/cmsg.rs":"e7b7154d55ce57e16ba93d4982630077bf6c70fa56e572956f14ae15aa43cb4c","src/sys/unix/mod.rs":"de0cd5c7a44cfd7c1f5b8cd0260089dc7245373ff9baa0ce44acfdc2d407a9d1","src/sys/unix/msg.rs":"25244de3eba920fa42e032f8fa4ea4913a9fdeb5124ade61e707f6cc6dd946b0","src/sys/windows/mod.rs":"7eaabb76e62c6962b636320e2bbf79a78fce61659c799a798f7dd6d56b0be8a1"},"package":null}
+\ No newline at end of file
+diff --git a/third_party/rust/audioipc2/Cargo.toml
b/third_party/rust/audioipc2/Cargo.toml
+index d9aba1e0d6c9e..c60630877f11e 100644
+--- a/third_party/rust/audioipc2/Cargo.toml
++++ b/third_party/rust/audioipc2/Cargo.toml
+@@ -68,7 +68,7 @@ features = ["html_reports"]
+ ashmem = "0.1.2"
+
+ [target.'cfg(target_os = "linux")'.dependencies.audio_thread_priority]
+-version = "0.37"
++version = "0.38"
+ default-features = false
+
+ [target."cfg(unix)".dependencies]
+diff --git a/toolkit/library/rust/shared/Cargo.toml
b/toolkit/library/rust/shared/Cargo.toml
+index 13f9259c2d5c5..a8cb59c7853eb 100644
+--- a/toolkit/library/rust/shared/Cargo.toml
++++ b/toolkit/library/rust/shared/Cargo.toml
+@@ -27,8 +27,8 @@ webrender_bindings = { path =
"../../../../gfx/webrender_bindings" }
+ cubeb-coreaudio = { git = "https://github.com/mozilla/cubeb-coreaudio-rs";,
rev = "840f69c1b3f95accd582555e10abcef8ee67514b", optional = true }
+ cubeb-pulse = { git = "https://github.com/mozilla/cubeb-pulse-rs";,
rev="88194f91c8778fa608a19af7b91306094525595d", optional = true,
features=["pulse-dlopen"] }
+ cubeb-sys = { version = "0.34", optional = true, features=["gecko-in-tree"]
}
+-audioipc2-client = { git = "https://github.com/mozilla/audioipc";, rev =
"d3c9825", optional = true }
+-audioipc2-server = { git = "https://github.com/mozilla/audioipc";, rev =
"d3c9825", optional = true }
++audioipc2-client = { git = "https://github.com/mozilla/audioipc";, rev =
"ef46a7bd05032d1577208ff048d444cc7412c7b8", optional = true }
++audioipc2-server = { git = "https://github.com/mozilla/audioipc";, rev =
"ef46a7bd05032d1577208ff048d444cc7412c7b8", optional = true }
+ encoding_glue = { path = "../../../../intl/encoding_glue" }
+ locale_service_glue = { path =
"../../../../intl/locale/rust/locale_service_glue" }
+ app_collator_glue = { path = "../../../../intl/app_collator_glue" }
+@@ -48,7 +48,7 @@ storage = { path = "../../../../storage/rust" }
+ bookmark_sync = { path = "../../../components/places/bookmark_sync",
optional = true }
+ buildid_reader_ffi = { path = "../../buildid_reader/ffi" }
+ chardetng_c = "1.0.0"
+-audio_thread_priority = { version = "0.37", default-features = false }
++audio_thread_priority = { version = "0.38.0", default-features = false }
+ mdns_service = {
path="../../../../dom/media/webrtc/transport/mdns_service", features =
["profiler"], optional = true }
+ neqo_glue = { path = "../../../../netwerk/socket/neqo_glue" }
+ wgpu_bindings = { path = "../../../../gfx/wgpu_bindings" }
diff --git
a/http/firefox/patches/0028-bmo-2071536-audio_thread_priority-musl-fix.patch
b/http/firefox/patches/0028-bmo-2071536-audio_thread_priority-musl-fix.patch
deleted file mode 100644
index 5568ec9..0000000
---
a/http/firefox/patches/0028-bmo-2071536-audio_thread_priority-musl-fix.patch
+++ /dev/null
@@ -1,395 +0,0 @@
-From 81443b2080eba962852906534a2b205ee11d5ad5 Mon Sep 17 00:00:00 2001
-From: Paul Adenot <paul AT paul.cx>
-Date: Wed, 7 Oct 2026 12:45:26 +0000
-Subject: [PATCH] Bug 2071536 - Fix the build on musl.
- r=cubeb-reviewers,supply-chain-reviewers,pehrsons
-
-audio_thread_priority didn't compile on musl, this has been fixed
-upstream. audioipc is also updated, the tree now only uses 0.38.
-
-Differential Revision: https://phabricator.services.mozilla.com/D327331
----
- .cargo/config.toml.in | 4 +--
- Cargo.lock | 10 +++---
- supply-chain/imports.lock | 4 +--
- .../.cargo-checksum.json | 2 +-
- .../.cargo_vcs_info.json | 2 +-
- .../.github/workflows/rust.yml | 36 +++++++++++++++++++
- .../rust/audio_thread_priority/Cargo.lock | 2 +-
- .../rust/audio_thread_priority/Cargo.toml | 2 +-
- .../audio_thread_priority/Cargo.toml.orig | 2 +-
- .../audio_thread_priority/src/rt_linux.rs | 6 ++--
- .../src/rt_linux_native.rs | 32 +++++++++++++----
- .../audioipc2-client/.cargo-checksum.json | 2 +-
- third_party/rust/audioipc2-client/Cargo.toml | 2 +-
- .../audioipc2-server/.cargo-checksum.json | 2 +-
- third_party/rust/audioipc2-server/Cargo.toml | 2 +-
- .../rust/audioipc2/.cargo-checksum.json | 2 +-
- third_party/rust/audioipc2/Cargo.toml | 2 +-
- toolkit/library/rust/shared/Cargo.toml | 6 ++--
- 18 files changed, 89 insertions(+), 31 deletions(-)
-
-diff --git a/.cargo/config.toml.in b/.cargo/config.toml.in
-index a903b00463844..8b4f608287727 100644
---- a/.cargo/config.toml.in
-+++ b/.cargo/config.toml.in
-@@ -65,9 +65,9 @@ git = "https://github.com/martinthomson/ohttp";
- rev = "600931b5a1e947776cbaad931ed78f1e89005352"
- replace-with = "vendored-sources"
-
--[source."git+https://github.com/mozilla/audioipc?rev=d3c9825";]
-+[source."git+https://github.com/mozilla/audioipc?rev=ef46a7bd05032d1577208ff048d444cc7412c7b8";]
- git = "https://github.com/mozilla/audioipc";
--rev = "d3c9825"
-+rev = "ef46a7bd05032d1577208ff048d444cc7412c7b8"
- replace-with = "vendored-sources"
-
- [source."git+https://github.com/mozilla/authenticator-rs?tag=v0.6.0";]
-diff --git a/Cargo.lock b/Cargo.lock
-index 02c727c6a2241..5ecd60bee9daa 100644
---- a/Cargo.lock
-+++ b/Cargo.lock
-@@ -336,9 +336,9 @@ dependencies = [
-
- [[package]]
- name = "audio_thread_priority"
--version = "0.37.0"
-+version = "0.38.0"
- source = "registry+https://github.com/rust-lang/crates.io-index";
--checksum =
"e58c7a923538aa84eef9947d81924fb9f34d7db6004e179218ab57a7bb7700b6"
-+checksum =
"e0b30b2f3d2da482d0faeaafd8f88a38fbc62abb58d3b402cfa195793f4c92ab"
- dependencies = [
- "cfg-if",
- "dbus",
-@@ -351,7 +351,7 @@ dependencies = [
- [[package]]
- name = "audioipc2"
- version = "0.6.0"
--source =
"git+https://github.com/mozilla/audioipc?rev=d3c9825#d3c9825a876a5fc7b54101bd40d685acfc542917";
-+source =
"git+https://github.com/mozilla/audioipc?rev=ef46a7bd05032d1577208ff048d444cc7412c7b8#ef46a7bd05032d1577208ff048d444cc7412c7b8";
- dependencies = [
- "arrayvec",
- "ashmem",
-@@ -377,7 +377,7 @@ dependencies = [
- [[package]]
- name = "audioipc2-client"
- version = "0.6.0"
--source =
"git+https://github.com/mozilla/audioipc?rev=d3c9825#d3c9825a876a5fc7b54101bd40d685acfc542917";
-+source =
"git+https://github.com/mozilla/audioipc?rev=ef46a7bd05032d1577208ff048d444cc7412c7b8#ef46a7bd05032d1577208ff048d444cc7412c7b8";
- dependencies = [
- "audio_thread_priority",
- "audioipc2",
-@@ -388,7 +388,7 @@ dependencies = [
- [[package]]
- name = "audioipc2-server"
- version = "0.6.0"
--source =
"git+https://github.com/mozilla/audioipc?rev=d3c9825#d3c9825a876a5fc7b54101bd40d685acfc542917";
-+source =
"git+https://github.com/mozilla/audioipc?rev=ef46a7bd05032d1577208ff048d444cc7412c7b8#ef46a7bd05032d1577208ff048d444cc7412c7b8";
- dependencies = [
- "audio_thread_priority",
- "audioipc2",
-diff --git a/supply-chain/imports.lock b/supply-chain/imports.lock
-index 3ee5c35efa206..1f8eb40c6c31c 100644
---- a/supply-chain/imports.lock
-+++ b/supply-chain/imports.lock
-@@ -30,8 +30,8 @@ user-login = "Amanieu"
- user-name = "Amanieu d'Antras"
-
- [[publisher.audio_thread_priority]]
--version = "0.37.0"
--when = "2026-08-10"
-+version = "0.38.0"
-+when = "2026-09-17"
- user-id = 1258
- user-login = "padenot"
- user-name = "Paul Adenot"
-diff --git a/third_party/rust/audio_thread_priority/.cargo-checksum.json
b/third_party/rust/audio_thread_priority/.cargo-checksum.json
-index 9690a6292e384..e1e8974824974 100644
---- a/third_party/rust/audio_thread_priority/.cargo-checksum.json
-+++ b/third_party/rust/audio_thread_priority/.cargo-checksum.json
-@@ -1 +1 @@
--{"files":{".cargo_vcs_info.json":"13629c1e0aabfcffbae3bddf6a472231b10f973817c0bd549f5e2782036184dd",".github/workflows/rust.yml":"f1ff0376f6d30c204620d50af9c60c4374b7e5001ad290e3bf3595925923f8f2","Cargo.lock":"fff166a1e4746a81e6b2b060692ed73790e8472e7c0526f60f2870baf5edb480","Cargo.toml":"ada29a3c844b5aaa099cea6854b1ca73cf98795ab52b8085c196c2931d08688d","Cargo.toml.orig":"6bdedb288e992ab55fb7d728a7941b1c85fb430c75c72fae685126b87c5f9372","LICENSE":"32ee9dbf6196874fc9d406c54a888a6c4cbb9aa4a7f35b46befeaff43a78fe85","Makefile":"0f9a771cfb30c7c4b9961d82fdca4e9e229a955bb2e636474a4101389e18e938","README.md":"c123692b3b50dd621b896a8269814d609cbf1e532b461bf4a77854ddd607eb7a","atp_test.cpp":"8075a040941a65fb9e3f7cbf0535853ca6661c3ac442ec35569b42b24bbec797","audio_thread_priority.h":"c32ac62eaa6b9482e5a56c407a47ec470ccadcdc8c95b06d38bd593987975a74","generate_osx_bindings.sh":"06e4e03450f788ced18d31fff5660919e6f6ec1119ddace363ffeb82f0518a71","src/lib.rs":"6e384fb8103be42882a162f22f5f7350a427ef797d895f662f54953dd9aea59b","src/rt_android.rs":"2e54e3ac527bef0c11790013c9399e1f388752a952af667c85da0f6f53eeb7c9","src/rt_linux.rs":"53204f6aa158b270a22b4099cde58558ec5ff96292ac8955581b4bcfbf3443d3","src/rt_linux_native.rs":"283ba4e200a1de707a4c336cae5d7f2fec9fc9c7a5a0794c286b4228bfe926b4","src/rt_mach.rs":"723e29ee7392b10c30f803b90a23ec6cd7a8aaaf6e81fe711e86cb6588a13ff0","src/rt_win.rs":"1743f579aea1b29940fee2f0652e23f76e08153ec7cbca621e5720d526e25b96"},"package":"e58c7a923538aa84eef9947d81924fb9f34d7db6004e179218ab57a7bb7700b6"}
-\ No newline at end of file
-+{"files":{".cargo_vcs_info.json":"941d7dd364a5ca6de04e5a1129197df302d661f809bab3d5ba6d63eb63e364e6",".github/workflows/rust.yml":"0b36b48d6f1976ae3a089596945ef398e02cfcb584a8dd04cb1fc2f16d2fd45f","Cargo.lock":"338d7d500e7cd330949216e3e9e7242cf91439b3eec90a5a75812df7f1fa4108","Cargo.toml":"8f76e327c4ac3c0e333491e7d35c52053574c7ec403b0cc4344893459eaadef8","Cargo.toml.orig":"0f774ee30569ad64f6de4affb15469b240f91086ef2e02320d60e248c853938f","LICENSE":"32ee9dbf6196874fc9d406c54a888a6c4cbb9aa4a7f35b46befeaff43a78fe85","Makefile":"0f9a771cfb30c7c4b9961d82fdca4e9e229a955bb2e636474a4101389e18e938","README.md":"c123692b3b50dd621b896a8269814d609cbf1e532b461bf4a77854ddd607eb7a","atp_test.cpp":"8075a040941a65fb9e3f7cbf0535853ca6661c3ac442ec35569b42b24bbec797","audio_thread_priority.h":"c32ac62eaa6b9482e5a56c407a47ec470ccadcdc8c95b06d38bd593987975a74","generate_osx_bindings.sh":"06e4e03450f788ced18d31fff5660919e6f6ec1119ddace363ffeb82f0518a71","src/lib.rs":"6e384fb8103be42882a162f22f5f7350a427ef797d895f662f54953dd9aea59b","src/rt_android.rs":"2e54e3ac527bef0c11790013c9399e1f388752a952af667c85da0f6f53eeb7c9","src/rt_linux.rs":"6bfb616de5a089279aaa306ca408433c873fe66812b144750f77f9d975cc166d","src/rt_linux_native.rs":"0634c3bc9ad4f4cf86f30735b3234fbd1d544ce28009305fede08ca27e745538","src/rt_mach.rs":"723e29ee7392b10c30f803b90a23ec6cd7a8aaaf6e81fe711e86cb6588a13ff0","src/rt_win.rs":"1743f579aea1b29940fee2f0652e23f76e08153ec7cbca621e5720d526e25b96"},"package":"e0b30b2f3d2da482d0faeaafd8f88a38fbc62abb58d3b402cfa195793f4c92ab"}
-\ No newline at end of file
-diff --git a/third_party/rust/audio_thread_priority/.cargo_vcs_info.json
b/third_party/rust/audio_thread_priority/.cargo_vcs_info.json
-index 7daddfc03701d..c818c1ab58f09 100644
---- a/third_party/rust/audio_thread_priority/.cargo_vcs_info.json
-+++ b/third_party/rust/audio_thread_priority/.cargo_vcs_info.json
-@@ -1,6 +1,6 @@
- {
- "git": {
-- "sha1": "0aa1ecd7719b582b54f7648eec1f76e9f18cdd3c"
-+ "sha1": "f7823feae23ac705d09156eaa84a4deea75fa55e"
- },
- "path_in_vcs": ""
- }
-\ No newline at end of file
-diff --git
a/third_party/rust/audio_thread_priority/.github/workflows/rust.yml
b/third_party/rust/audio_thread_priority/.github/workflows/rust.yml
-index 8c71d5acb1919..916a27cb5b3a5 100644
---- a/third_party/rust/audio_thread_priority/.github/workflows/rust.yml
-+++ b/third_party/rust/audio_thread_priority/.github/workflows/rust.yml
-@@ -91,3 +91,39 @@ jobs:
- sudo prlimit --pid $$ --rtprio=10:10
- echo "RLIMIT_RTPRIO soft=$(ulimit -Sr) hard=$(ulimit -Hr)"
- rustup run ${{ matrix.rust }} cargo test --no-default-features
-+
-+ # musl defines pthread_t as a pointer instead of an integer, unlike glibc.
-+ build-musl:
-+ runs-on: ubuntu-24.04
-+ strategy:
-+ matrix:
-+ rust: [stable, nightly]
-+
-+ steps:
-+ - uses: actions/checkout@v2
-+
-+ - name: Install Rust (musl target)
-+ run: |
-+ rustup toolchain install ${{ matrix.rust }} --profile minimal
-+ rustup target add x86_64-unknown-linux-musl --toolchain ${{
matrix.rust }}
-+
-+ - name: Install Dependencies
-+ run: sudo apt-get update && sudo apt-get install libdbus-1-dev
-+
-+ - name: Build (musl, with dbus)
-+ shell: bash
-+ # The crate is a staticlib/rlib, so this doesn't link, and hence
needs no musl libdbus: only
-+ # the headers, which pkg-config finds for the host.
-+ run: PKG_CONFIG_ALLOW_CROSS=1 rustup run ${{ matrix.rust }} cargo
build --target x86_64-unknown-linux-musl --features dbus
-+
-+ - name: Build (musl, without dbus)
-+ shell: bash
-+ run: rustup run ${{ matrix.rust }} cargo build --target
x86_64-unknown-linux-musl --no-default-features
-+
-+ - name: Test (musl, without dbus)
-+ shell: bash
-+ # Statically linked musl test binaries run fine on the glibc runner.
As in the fallback job,
-+ # the native promotion path needs permission to request real-time
scheduling.
-+ run: |
-+ sudo prlimit --pid $$ --rtprio=10:10
-+ rustup run ${{ matrix.rust }} cargo test --target
x86_64-unknown-linux-musl --no-default-features -- --nocapture
-diff --git a/third_party/rust/audio_thread_priority/Cargo.lock
b/third_party/rust/audio_thread_priority/Cargo.lock
-index fa8f0b5f0a7a1..de676cf7f087e 100644
---- a/third_party/rust/audio_thread_priority/Cargo.lock
-+++ b/third_party/rust/audio_thread_priority/Cargo.lock
-@@ -4,7 +4,7 @@ version = 4
-
- [[package]]
- name = "audio_thread_priority"
--version = "0.37.0"
-+version = "0.38.0"
- dependencies = [
- "cfg-if",
- "dbus",
-diff --git a/third_party/rust/audio_thread_priority/Cargo.toml
b/third_party/rust/audio_thread_priority/Cargo.toml
-index 8456277e7ed7f..fa1177ffeccf5 100644
---- a/third_party/rust/audio_thread_priority/Cargo.toml
-+++ b/third_party/rust/audio_thread_priority/Cargo.toml
-@@ -12,7 +12,7 @@
- [package]
- edition = "2018"
- name = "audio_thread_priority"
--version = "0.37.0"
-+version = "0.38.0"
- authors = ["Paul Adenot <paul AT paul.cx>"]
- build = false
- autolib = false
-diff --git a/third_party/rust/audio_thread_priority/Cargo.toml.orig
b/third_party/rust/audio_thread_priority/Cargo.toml.orig
-index 1d96d3d8e7a7a..cab6972721335 100644
---- a/third_party/rust/audio_thread_priority/Cargo.toml.orig
-+++ b/third_party/rust/audio_thread_priority/Cargo.toml.orig
-@@ -1,6 +1,6 @@
- [package]
- name = "audio_thread_priority"
--version = "0.37.0"
-+version = "0.38.0"
- authors = ["Paul Adenot <paul AT paul.cx>"]
- description = "Bump a thread to real-time priority, for audio work, on
Linux, Android, Windows and macOS"
- license = "MPL-2.0"
-diff --git a/third_party/rust/audio_thread_priority/src/rt_linux.rs
b/third_party/rust/audio_thread_priority/src/rt_linux.rs
-index 982803c3242d5..82f9bff22a499 100644
---- a/third_party/rust/audio_thread_priority/src/rt_linux.rs
-+++ b/third_party/rust/audio_thread_priority/src/rt_linux.rs
-@@ -62,7 +62,9 @@ impl RtPriorityThreadInfoInternal {
- /// struct, so no uninitialized padding bytes are ever read. Any
trailing padding stays zero.
- pub fn serialize(&self) -> [u8; std::mem::size_of::<Self>()] {
- let thread_id = self.thread_id.to_ne_bytes();
-- let pthread_id = self.pthread_id.to_ne_bytes();
-+ // `pthread_t` is an integer with glibc but a pointer with musl: go
through `usize`, which
-+ // is as wide as both.
-+ let pthread_id = (self.pthread_id as usize).to_ne_bytes();
- let pid = self.pid.to_ne_bytes();
- let policy = self.policy.to_ne_bytes();
- let priority = self.priority.to_ne_bytes();
-@@ -91,7 +93,7 @@ impl RtPriorityThreadInfoInternal {
- let mut src = bytes.iter().copied();
- RtPriorityThreadInfoInternal {
- thread_id: kernel_pid_t::from_ne_bytes(take(&mut src)),
-- pthread_id: libc::pthread_t::from_ne_bytes(take(&mut src)),
-+ pthread_id: usize::from_ne_bytes(take(&mut src)) as
libc::pthread_t,
- pid: libc::pid_t::from_ne_bytes(take(&mut src)),
- policy: libc::c_int::from_ne_bytes(take(&mut src)),
- priority: libc::c_int::from_ne_bytes(take(&mut src)),
-diff --git a/third_party/rust/audio_thread_priority/src/rt_linux_native.rs
b/third_party/rust/audio_thread_priority/src/rt_linux_native.rs
-index def33b09f14ea..9420e89fe6e3f 100644
---- a/third_party/rust/audio_thread_priority/src/rt_linux_native.rs
-+++ b/third_party/rust/audio_thread_priority/src/rt_linux_native.rs
-@@ -78,7 +78,9 @@ impl RtPriorityThreadInfoInternal {
- /// struct, so no uninitialized padding bytes are ever read. Any
trailing padding stays zero.
- pub fn serialize(&self) -> [u8; std::mem::size_of::<Self>()] {
- let thread_id = self.thread_id.to_ne_bytes();
-- let pthread_id = self.pthread_id.to_ne_bytes();
-+ // `pthread_t` is an integer with glibc but a pointer with musl: go
through `usize`, which
-+ // is as wide as both.
-+ let pthread_id = (self.pthread_id as usize).to_ne_bytes();
- let pid = self.pid.to_ne_bytes();
- let policy = self.policy.to_ne_bytes();
- let priority = self.priority.to_ne_bytes();
-@@ -107,7 +109,7 @@ impl RtPriorityThreadInfoInternal {
- let mut src = bytes.iter().copied();
- RtPriorityThreadInfoInternal {
- thread_id: kernel_pid_t::from_ne_bytes(take(&mut src)),
-- pthread_id: libc::pthread_t::from_ne_bytes(take(&mut src)),
-+ pthread_id: usize::from_ne_bytes(take(&mut src)) as
libc::pthread_t,
- pid: libc::pid_t::from_ne_bytes(take(&mut src)),
- policy: libc::c_int::from_ne_bytes(take(&mut src)),
- priority: libc::c_int::from_ne_bytes(take(&mut src)),
-@@ -140,6 +142,26 @@ fn sched_error(context: &str) ->
AudioThreadPriorityError {
- AudioThreadPriorityError::new(&format!("{}: {}", context,
OSError::last_os_error()))
- }
-
-+/// Set the scheduling policy and priority of the thread with tid `tid`.
-+///
-+/// This goes through the syscall directly because musl's
`sched_setscheduler` is a stub that always
-+/// fails with `ENOSYS`: POSIX specifies it as process-scoped, which Linux
does not provide. The
-+/// syscall is per-thread, which is what is needed here.
-+fn sched_setscheduler(
-+ tid: libc::pid_t,
-+ policy: libc::c_int,
-+ param: &libc::sched_param,
-+) -> libc::c_long {
-+ unsafe {
-+ libc::syscall(
-+ libc::SYS_sched_setscheduler,
-+ tid,
-+ policy,
-+ param as *const libc::sched_param,
-+ )
-+ }
-+}
-+
- /// A thread's system-wide tid narrowed to `pid_t` for the scheduler
syscalls. A tid always fits in
- /// `pid_t` (it is a pid), but convert defensively rather than truncating.
- fn scheduler_tid(thread_id: kernel_pid_t) -> Result<libc::pid_t,
AudioThreadPriorityError> {
-@@ -236,8 +258,7 @@ pub fn promote_thread_to_real_time_internal(
- let mut param = unsafe { std::mem::zeroed::<libc::sched_param>() };
- param.sched_priority = requested_priority();
-
-- let rc =
-- unsafe { libc::sched_setscheduler(tid, libc::SCHED_FIFO |
SCHED_RESET_ON_FORK, &param) };
-+ let rc = sched_setscheduler(tid, libc::SCHED_FIFO |
SCHED_RESET_ON_FORK, &param);
- if rc < 0 {
- return Err(sched_error("could not promote thread"));
- }
-@@ -254,8 +275,7 @@ pub fn demote_thread_from_real_time_internal(
- let tid = scheduler_tid(thread_info.thread_id)?;
- let mut param = unsafe { std::mem::zeroed::<libc::sched_param>() };
- param.sched_priority = thread_info.priority;
-- let rc =
-- unsafe { libc::sched_setscheduler(tid, thread_info.policy |
SCHED_RESET_ON_FORK, &param) };
-+ let rc = sched_setscheduler(tid, thread_info.policy |
SCHED_RESET_ON_FORK, &param);
- if rc < 0 {
- return Err(sched_error("could not demote thread"));
- }
-diff --git a/third_party/rust/audioipc2-client/.cargo-checksum.json
b/third_party/rust/audioipc2-client/.cargo-checksum.json
-index d1b5b396f9b6b..d223c59ba80f7 100644
---- a/third_party/rust/audioipc2-client/.cargo-checksum.json
-+++ b/third_party/rust/audioipc2-client/.cargo-checksum.json
-@@ -1 +1 @@
--{"files":{"Cargo.toml":"e16f57291b3e7be5e035f2b1793b5864ae091d573df060ff032d484ca608c6a8","cbindgen.toml":"fb6abe1671497f432a06e40b1db7ed7cd2cceecbd9a2382193ad7534e8855e34","src/context.rs":"c351b782e9bb83a1fbc5127e07a4d06c59978256bb0dc265df256eb948a6cf4e","src/lib.rs":"0322bba9529c81c891bc2c033d402590058014da0df0730dbf9532380c2dabe8","src/send_recv.rs":"cd396a704f205d4ef680f484461a065aa29f624603d5031f9973779826fb3c19","src/stream.rs":"d7d4967c8ef760a58592aff23157357646528c1c83c9de394e1f9c8043f72a81"},"package":null}
-\ No newline at end of file
-+{"files":{"Cargo.toml":"b74876a8e35719161990b55d3b83127d883efcdddce79c866044ba59ab17e849","cbindgen.toml":"fb6abe1671497f432a06e40b1db7ed7cd2cceecbd9a2382193ad7534e8855e34","src/context.rs":"c351b782e9bb83a1fbc5127e07a4d06c59978256bb0dc265df256eb948a6cf4e","src/lib.rs":"0322bba9529c81c891bc2c033d402590058014da0df0730dbf9532380c2dabe8","src/send_recv.rs":"cd396a704f205d4ef680f484461a065aa29f624603d5031f9973779826fb3c19","src/stream.rs":"d7d4967c8ef760a58592aff23157357646528c1c83c9de394e1f9c8043f72a81"},"package":null}
-\ No newline at end of file
-diff --git a/third_party/rust/audioipc2-client/Cargo.toml
b/third_party/rust/audioipc2-client/Cargo.toml
-index 19c71182ce6fb..c0abc1f74e091 100644
---- a/third_party/rust/audioipc2-client/Cargo.toml
-+++ b/third_party/rust/audioipc2-client/Cargo.toml
-@@ -36,7 +36,7 @@ cubeb-backend = "0.34"
- log = "0.4"
-
- [dependencies.audio_thread_priority]
--version = "0.37"
-+version = "0.38"
- default-features = false
-
- [dependencies.audioipc]
-diff --git a/third_party/rust/audioipc2-server/.cargo-checksum.json
b/third_party/rust/audioipc2-server/.cargo-checksum.json
-index d7bab1720f7c1..931775e6ec78b 100644
---- a/third_party/rust/audioipc2-server/.cargo-checksum.json
-+++ b/third_party/rust/audioipc2-server/.cargo-checksum.json
-@@ -1 +1 @@
--{"files":{"Cargo.toml":"80d2db99b52346498fbdfd082fa294bf962d2442eefaaeb001ef04b009e5100b","cbindgen.toml":"fb6abe1671497f432a06e40b1db7ed7cd2cceecbd9a2382193ad7534e8855e34","src/lib.rs":"a19c1bad94e16a0cfcd1e93c25b97bf58cc00e9666b5c31652d8a2242decb36c","src/server.rs":"28d494e2d4a6ad673f77912578179eb7b1b8b927d7fd63048d099284d03aeda7"},"package":null}
-\ No newline at end of file
-+{"files":{"Cargo.toml":"7169f1242e389376f935ea01e29d17d7ebe52fcac3631c332357e1272fab1ba0","cbindgen.toml":"fb6abe1671497f432a06e40b1db7ed7cd2cceecbd9a2382193ad7534e8855e34","src/lib.rs":"a19c1bad94e16a0cfcd1e93c25b97bf58cc00e9666b5c31652d8a2242decb36c","src/server.rs":"28d494e2d4a6ad673f77912578179eb7b1b8b927d7fd63048d099284d03aeda7"},"package":null}
-\ No newline at end of file
-diff --git a/third_party/rust/audioipc2-server/Cargo.toml
b/third_party/rust/audioipc2-server/Cargo.toml
-index 7e00b45c32106..dc16be95944ea 100644
---- a/third_party/rust/audioipc2-server/Cargo.toml
-+++ b/third_party/rust/audioipc2-server/Cargo.toml
-@@ -38,7 +38,7 @@ once_cell = "1.2.0"
- slab = "0.4"
-
- [dependencies.audio_thread_priority]
--version = "0.37"
-+version = "0.38"
- default-features = false
-
- [dependencies.audioipc]
-diff --git a/third_party/rust/audioipc2/.cargo-checksum.json
b/third_party/rust/audioipc2/.cargo-checksum.json
-index cae4359f76de7..a49135bb208bc 100644
---- a/third_party/rust/audioipc2/.cargo-checksum.json
-+++ b/third_party/rust/audioipc2/.cargo-checksum.json
-@@ -1 +1 @@
--{"files":{"Cargo.toml":"e5f446c16280d1294e630015be9bda06c489f20dde65c6d3c3b974325e676fdc","benches/serialization.rs":"495e9128fb7892c3460bf55c6dc56a3d9e8853331f566d43231e30fad2c00ff4","src/codec.rs":"49120cd77f09e4acace1629936157fc9afa0a846c9018ad2dd021b5f0e6577fd","src/errors.rs":"36fe5299aee55761366ddc5dcf2f6fb5d81d8a718c59394b6baeb4075fdfc1a7","src/ipccore.rs":"a06cf09aa600df1280538e7946223ab979f088848213fc9c1a394af312f81fbd","src/lib.rs":"98ba1fe514326d2ef374c9ccc3a7125836cdcc3abe62abcf9a4af0084205538a","src/messages.rs":"d294f24ce018603d2e141af3a06a983421a8da191275937bd2cfa8523064def1","src/rpccore.rs":"058477df2304b4d8c5d1a347663301bcdea3f772762f806963e63a0c8df9ea73","src/shm.rs":"61c9f5d158914cb0ed34d7ce898d1ab24d1a892c68ee0406ff03d01e5c172d32","src/sys/mod.rs":"e6fa1d260abf093e1f7b50185195e2d3aee0eb8c9774c6f253953b5896d838f3","src/sys/unix/cmsg.rs":"e7b7154d55ce57e16ba93d4982630077bf6c70fa56e572956f14ae15aa43cb4c","src/sys/unix/mod.rs":"de0cd5c7a44cfd7c1f5b8cd0260089dc7245373ff9baa0ce44acfdc2d407a9d1","src/sys/unix/msg.rs":"25244de3eba920fa42e032f8fa4ea4913a9fdeb5124ade61e707f6cc6dd946b0","src/sys/windows/mod.rs":"7eaabb76e62c6962b636320e2bbf79a78fce61659c799a798f7dd6d56b0be8a1"},"package":null}
-\ No newline at end of file
-+{"files":{"Cargo.toml":"4381ef3bff9eb36cfb1f0ef7793f09204229d3f7260144a2501ae83ca40b70c1","benches/serialization.rs":"495e9128fb7892c3460bf55c6dc56a3d9e8853331f566d43231e30fad2c00ff4","src/codec.rs":"49120cd77f09e4acace1629936157fc9afa0a846c9018ad2dd021b5f0e6577fd","src/errors.rs":"36fe5299aee55761366ddc5dcf2f6fb5d81d8a718c59394b6baeb4075fdfc1a7","src/ipccore.rs":"a06cf09aa600df1280538e7946223ab979f088848213fc9c1a394af312f81fbd","src/lib.rs":"98ba1fe514326d2ef374c9ccc3a7125836cdcc3abe62abcf9a4af0084205538a","src/messages.rs":"d294f24ce018603d2e141af3a06a983421a8da191275937bd2cfa8523064def1","src/rpccore.rs":"058477df2304b4d8c5d1a347663301bcdea3f772762f806963e63a0c8df9ea73","src/shm.rs":"61c9f5d158914cb0ed34d7ce898d1ab24d1a892c68ee0406ff03d01e5c172d32","src/sys/mod.rs":"e6fa1d260abf093e1f7b50185195e2d3aee0eb8c9774c6f253953b5896d838f3","src/sys/unix/cmsg.rs":"e7b7154d55ce57e16ba93d4982630077bf6c70fa56e572956f14ae15aa43cb4c","src/sys/unix/mod.rs":"de0cd5c7a44cfd7c1f5b8cd0260089dc7245373ff9baa0ce44acfdc2d407a9d1","src/sys/unix/msg.rs":"25244de3eba920fa42e032f8fa4ea4913a9fdeb5124ade61e707f6cc6dd946b0","src/sys/windows/mod.rs":"7eaabb76e62c6962b636320e2bbf79a78fce61659c799a798f7dd6d56b0be8a1"},"package":null}
-\ No newline at end of file
-diff --git a/third_party/rust/audioipc2/Cargo.toml
b/third_party/rust/audioipc2/Cargo.toml
-index d9aba1e0d6c9e..c60630877f11e 100644
---- a/third_party/rust/audioipc2/Cargo.toml
-+++ b/third_party/rust/audioipc2/Cargo.toml
-@@ -68,7 +68,7 @@ features = ["html_reports"]
- ashmem = "0.1.2"
-
- [target.'cfg(target_os = "linux")'.dependencies.audio_thread_priority]
--version = "0.37"
-+version = "0.38"
- default-features = false
-
- [target."cfg(unix)".dependencies]
-diff --git a/toolkit/library/rust/shared/Cargo.toml
b/toolkit/library/rust/shared/Cargo.toml
-index 13f9259c2d5c5..a8cb59c7853eb 100644
---- a/toolkit/library/rust/shared/Cargo.toml
-+++ b/toolkit/library/rust/shared/Cargo.toml
-@@ -27,8 +27,8 @@ webrender_bindings = { path =
"../../../../gfx/webrender_bindings" }
- cubeb-coreaudio = { git = "https://github.com/mozilla/cubeb-coreaudio-rs";,
rev = "840f69c1b3f95accd582555e10abcef8ee67514b", optional = true }
- cubeb-pulse = { git = "https://github.com/mozilla/cubeb-pulse-rs";,
rev="88194f91c8778fa608a19af7b91306094525595d", optional = true,
features=["pulse-dlopen"] }
- cubeb-sys = { version = "0.34", optional = true, features=["gecko-in-tree"]
}
--audioipc2-client = { git = "https://github.com/mozilla/audioipc";, rev =
"d3c9825", optional = true }
--audioipc2-server = { git = "https://github.com/mozilla/audioipc";, rev =
"d3c9825", optional = true }
-+audioipc2-client = { git = "https://github.com/mozilla/audioipc";, rev =
"ef46a7bd05032d1577208ff048d444cc7412c7b8", optional = true }
-+audioipc2-server = { git = "https://github.com/mozilla/audioipc";, rev =
"ef46a7bd05032d1577208ff048d444cc7412c7b8", optional = true }
- encoding_glue = { path = "../../../../intl/encoding_glue" }
- locale_service_glue = { path =
"../../../../intl/locale/rust/locale_service_glue" }
- app_collator_glue = { path = "../../../../intl/app_collator_glue" }
-@@ -48,7 +48,7 @@ storage = { path = "../../../../storage/rust" }
- bookmark_sync = { path = "../../../components/places/bookmark_sync",
optional = true }
- buildid_reader_ffi = { path = "../../buildid_reader/ffi" }
- chardetng_c = "1.0.0"
--audio_thread_priority = { version = "0.37", default-features = false }
-+audio_thread_priority = { version = "0.38.0", default-features = false }
- mdns_service = {
path="../../../../dom/media/webrtc/transport/mdns_service", features =
["profiler"], optional = true }
- neqo_glue = { path = "../../../../netwerk/socket/neqo_glue" }
- wgpu_bindings = { path = "../../../../gfx/wgpu_bindings" }
-
diff --git
a/http/firefox/patches/0028-bmo-2074346-musl-fix-parakeet-cpp.patch
b/http/firefox/patches/0028-bmo-2074346-musl-fix-parakeet-cpp.patch
new file mode 100644
index 0000000..30b12ea
--- /dev/null
+++ b/http/firefox/patches/0028-bmo-2074346-musl-fix-parakeet-cpp.patch
@@ -0,0 +1,11 @@
+diff --git a/third_party/parakeet.cpp/src/backend.hpp
b/third_party/parakeet.cpp/src/backend.hpp
+index d534ec9..f17ec23 100644
+--- a/third_party/parakeet.cpp/src/backend.hpp
++++ b/third_party/parakeet.cpp/src/backend.hpp
+@@ -1,5 +1,6 @@
+ #pragma once
+ #include <cstddef>
++#include <cstdint>
+ #include <functional>
+ #include <string>
+ #include <vector>
diff --git
a/http/firefox/patches/0029-bmo-2074346-musl-fix-parakeet-cpp.patch
b/http/firefox/patches/0029-bmo-2074346-musl-fix-parakeet-cpp.patch
deleted file mode 100644
index 30b12ea..0000000
--- a/http/firefox/patches/0029-bmo-2074346-musl-fix-parakeet-cpp.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff --git a/third_party/parakeet.cpp/src/backend.hpp
b/third_party/parakeet.cpp/src/backend.hpp
-index d534ec9..f17ec23 100644
---- a/third_party/parakeet.cpp/src/backend.hpp
-+++ b/third_party/parakeet.cpp/src/backend.hpp
-@@ -1,5 +1,6 @@
- #pragma once
- #include <cstddef>
-+#include <cstdint>
- #include <functional>
- #include <string>
- #include <vector>
diff --git
a/http/firefox/patches/0029-bmo-2080242-include-WidgetUtilsGtk.h-for-wayland-or-nodbus-builds.patch

b/http/firefox/patches/0029-bmo-2080242-include-WidgetUtilsGtk.h-for-wayland-or-nodbus-builds.patch
new file mode 100644
index 0000000..bf2e11b
--- /dev/null
+++
b/http/firefox/patches/0029-bmo-2080242-include-WidgetUtilsGtk.h-for-wayland-or-nodbus-builds.patch
@@ -0,0 +1,32 @@
+From e5d3224118cacf44e21f1e576507d19f9a6110c0 Mon Sep 17 00:00:00 2001
+From: Kui-Feng Lee <thinker.li AT gmail.com>
+Date: Mon, 12 Oct 2026 09:23:57 +0000
+Subject: [PATCH] Bug 2080242 - Include WidgetUtilsGtk.h for Wayland builds in
+ nsAppShell.cpp. r=stransky,gtk-reviewers,emilio
+
+nsAppShell::IsSessionRestoreSupported() calls IsGnomeDesktopEnvironment()
+under MOZ_WAYLAND, but WidgetUtilsGtk.h, which declares it, was included
+under MOZ_ENABLE_DBUS only. Builds with dbus disabled fail to compile.
+
+Include the header when either is enabled: the dbus code uses
+IsCancelledGError() and the Wayland code uses IsGnomeDesktopEnvironment().
+
+Differential Revision: https://phabricator.services.mozilla.com/D332621
+---
+ widget/gtk/nsAppShell.cpp | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/widget/gtk/nsAppShell.cpp b/widget/gtk/nsAppShell.cpp
+index 84f3b84894de1..c12edd495e9d7 100644
+--- a/widget/gtk/nsAppShell.cpp
++++ b/widget/gtk/nsAppShell.cpp
+@@ -29,7 +29,8 @@
+ #include "prenv.h"
+ #ifdef MOZ_ENABLE_DBUS
+ # include <gio/gio.h>
+-
++#endif
++#if defined(MOZ_ENABLE_DBUS) || defined(MOZ_WAYLAND)
+ # include "WidgetUtilsGtk.h"
+ #endif
+ #include "HeadlessScreenHelper.h"
diff --git
a/http/firefox/patches/0029-firefox-158-fix-build-without-dbus.patch
b/http/firefox/patches/0029-firefox-158-fix-build-without-dbus.patch
deleted file mode 100644
index a5b96b7..0000000
--- a/http/firefox/patches/0029-firefox-158-fix-build-without-dbus.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff '--color=auto' -Naur a/widget/gtk/nsAppShell.cpp
b/widget/gtk/nsAppShell.cpp
---- a/widget/gtk/nsAppShell.cpp 2026-10-12 17:21:50.264444160 +0300
-+++ b/widget/gtk/nsAppShell.cpp 2026-10-12 17:40:13.130522641 +0300
-@@ -29,9 +29,10 @@
- #include "prenv.h"
- #ifdef MOZ_ENABLE_DBUS
- # include <gio/gio.h>
-+#endif
-
- # include "WidgetUtilsGtk.h"
--#endif
-+
- #include "HeadlessScreenHelper.h"
- #include "ScreenHelperGTK.h"
- #include "WakeLockListener.h"


  • [[SM-Commit] ] GIT changes to master grimoire by Pavel Vinogradov (a0edef44a0f5afbad28baca76dc25c6f23ecef0b), Pavel Vinogradov, 10/15/2026

Archive powered by MHonArc 2.6.24.

Top of Page