Skip to Content.
Sympa Menu

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

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 (46cc2701d7663df5447484ccdca7612e56aa0f9d)
  • Date: Fri, 19 Sep 2025 14:09:53 +0000

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

http/firefox/DETAILS
| 2
http/firefox/HISTORY
| 4
http/firefox/patches/0015-dont-use-build-id.patch
| 13
http/firefox/patches/0016-bgo-929967-fix-pgo-on-musl.patch
| 14
http/firefox/patches/0016-dont-use-build-id.patch
| 13
http/firefox/patches/0017-bgo-929967-fix-pgo-on-musl.patch
| 14
http/firefox/patches/0017-gcc-always-inline-from-fedora.patch
| 14
http/firefox/patches/0018-bmo-1657849-musl-sandbox-sched_setscheduler.patch
| 57 +++
http/firefox/patches/0018-gcc-always-inline-from-fedora.patch
| 14
http/firefox/patches/0019-bgo-940031-wasm-support.patch
| 12
http/firefox/patches/0019-bmo-1657849-musl-sandbox-sched_setscheduler.patch
| 57 ---
http/firefox/patches/0020-bgo-928126-enable-jxl.patch
| 21 +
http/firefox/patches/0020-bgo-940031-wasm-support.patch
| 12
http/firefox/patches/0021-bgo-928126-enable-jxl.patch
| 21 -
http/firefox/patches/0021-bgo-962129-libcxx-21-fix.patch
| 18 +
http/firefox/patches/0022-bgo-962129-libcxx-21-fix.patch
| 18 -
http/firefox/patches/0022-bmo-1970223-python-3.14-support.patch
| 169 ++++++++++
http/firefox/patches/0023-bgo-962985-libcxx-visibility-fix.patch
| 19 +
http/firefox/patches/0024-bmo-1970223-python-3.14-support.patch
| 169 ----------
19 files changed, 342 insertions(+), 319 deletions(-)

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

http/firefox: version 143.0.1

diff --git a/http/firefox/DETAILS b/http/firefox/DETAILS
index bd04953..cad5030 100755
--- a/http/firefox/DETAILS
+++ b/http/firefox/DETAILS
@@ -1,5 +1,5 @@
SPELL=firefox
- VERSION=143.0
+ VERSION=143.0.1
SECURITY_PATCH=214
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 5b6665c..a47c394 100644
--- a/http/firefox/HISTORY
+++ b/http/firefox/HISTORY
@@ -1,3 +1,7 @@
+2025-09-19 Pavel Vinogradov <public AT sourcemage.org>
+ * DETAILS: version 143.0.1
+ * patches/*: updated
+
2025-09-15 Pavel Vinogradov <public AT sourcemage.org>
* DETAILS: version 143.0, SECURITY_PATCH++
* DEPENDS: nss >= 3.115.1
diff --git a/http/firefox/patches/0015-dont-use-build-id.patch
b/http/firefox/patches/0015-dont-use-build-id.patch
new file mode 100644
index 0000000..4ec8ac1
--- /dev/null
+++ b/http/firefox/patches/0015-dont-use-build-id.patch
@@ -0,0 +1,13 @@
+diff '--color=auto' -Naur a/build/moz.configure/flags.configure
b/build/moz.configure/flags.configure
+--- a/build/moz.configure/flags.configure 2024-07-08 20:04:44.944708403
+0300
++++ b/build/moz.configure/flags.configure 2024-07-08 20:13:30.867064722
+0300
+@@ -197,9 +197,6 @@
+
+ check_and_add_flag("-pipe", when=building_with_gcc)
+
+-check_and_add_linker_flag("-Wl,--build-id=uuid", when=check_build_id_uuid)
+-check_and_add_linker_flag("-Wl,--build-id=sha1", when=check_build_id_sha1)
+-
+ check_and_add_asm_flag("-Wa,--noexecstack",
when=building_with_gnu_compatible_cc)
+ check_and_add_linker_flag("-Wl,-z,noexecstack",
when=building_with_gnu_compatible_cc)
+ check_and_add_linker_flag("-Wl,-z,text",
when=building_with_gnu_compatible_cc)
diff --git a/http/firefox/patches/0016-bgo-929967-fix-pgo-on-musl.patch
b/http/firefox/patches/0016-bgo-929967-fix-pgo-on-musl.patch
new file mode 100644
index 0000000..3c8457e
--- /dev/null
+++ b/http/firefox/patches/0016-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/0016-dont-use-build-id.patch
b/http/firefox/patches/0016-dont-use-build-id.patch
deleted file mode 100644
index 4ec8ac1..0000000
--- a/http/firefox/patches/0016-dont-use-build-id.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff '--color=auto' -Naur a/build/moz.configure/flags.configure
b/build/moz.configure/flags.configure
---- a/build/moz.configure/flags.configure 2024-07-08 20:04:44.944708403
+0300
-+++ b/build/moz.configure/flags.configure 2024-07-08 20:13:30.867064722
+0300
-@@ -197,9 +197,6 @@
-
- check_and_add_flag("-pipe", when=building_with_gcc)
-
--check_and_add_linker_flag("-Wl,--build-id=uuid", when=check_build_id_uuid)
--check_and_add_linker_flag("-Wl,--build-id=sha1", when=check_build_id_sha1)
--
- check_and_add_asm_flag("-Wa,--noexecstack",
when=building_with_gnu_compatible_cc)
- check_and_add_linker_flag("-Wl,-z,noexecstack",
when=building_with_gnu_compatible_cc)
- check_and_add_linker_flag("-Wl,-z,text",
when=building_with_gnu_compatible_cc)
diff --git a/http/firefox/patches/0017-bgo-929967-fix-pgo-on-musl.patch
b/http/firefox/patches/0017-bgo-929967-fix-pgo-on-musl.patch
deleted file mode 100644
index 3c8457e..0000000
--- a/http/firefox/patches/0017-bgo-929967-fix-pgo-on-musl.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-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/0017-gcc-always-inline-from-fedora.patch
b/http/firefox/patches/0017-gcc-always-inline-from-fedora.patch
new file mode 100644
index 0000000..d7af60f
--- /dev/null
+++ b/http/firefox/patches/0017-gcc-always-inline-from-fedora.patch
@@ -0,0 +1,14 @@
+diff -up firefox-114.0.2/gfx/wr/swgl/src/gl.cc.inline
firefox-114.0.2/gfx/wr/swgl/src/gl.cc
+--- firefox-114.0.2/gfx/wr/swgl/src/gl.cc.inline 2023-06-22
11:08:53.294593327 +0200
++++ firefox-114.0.2/gfx/wr/swgl/src/gl.cc 2023-06-22 11:12:43.663486734
+0200
+@@ -58,9 +58,7 @@ WINBASEAPI BOOL WINAPI QueryPerformanceF
+ }
+
+ #else
+-// GCC is slower when dealing with always_inline, especially in debug
builds.
+-// When using Clang, use always_inline more aggressively.
+-# if defined(__clang__) || defined(NDEBUG)
++# if defined(__clang__) || defined (__GNUC__) || defined(NDEBUG)
+ # define ALWAYS_INLINE __attribute__((always_inline)) inline
+ # else
+ # define ALWAYS_INLINE inline
diff --git
a/http/firefox/patches/0018-bmo-1657849-musl-sandbox-sched_setscheduler.patch
b/http/firefox/patches/0018-bmo-1657849-musl-sandbox-sched_setscheduler.patch
new file mode 100644
index 0000000..87b6e66
--- /dev/null
+++
b/http/firefox/patches/0018-bmo-1657849-musl-sandbox-sched_setscheduler.patch
@@ -0,0 +1,57 @@
+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
+@@ -1759,16 +1759,24 @@
+ return Allow();
+ case __NR_sched_get_priority_min:
+ case __NR_sched_get_priority_max:
+ return Allow();
+ 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();
+
+ // Bug 1372428
+@@ -1950,17 +1958,25 @@
+ case __NR_sched_getaffinity:
+ case __NR_sched_setaffinity:
+ 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:
+ return Allow();
+
+
diff --git a/http/firefox/patches/0018-gcc-always-inline-from-fedora.patch
b/http/firefox/patches/0018-gcc-always-inline-from-fedora.patch
deleted file mode 100644
index d7af60f..0000000
--- a/http/firefox/patches/0018-gcc-always-inline-from-fedora.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff -up firefox-114.0.2/gfx/wr/swgl/src/gl.cc.inline
firefox-114.0.2/gfx/wr/swgl/src/gl.cc
---- firefox-114.0.2/gfx/wr/swgl/src/gl.cc.inline 2023-06-22
11:08:53.294593327 +0200
-+++ firefox-114.0.2/gfx/wr/swgl/src/gl.cc 2023-06-22 11:12:43.663486734
+0200
-@@ -58,9 +58,7 @@ WINBASEAPI BOOL WINAPI QueryPerformanceF
- }
-
- #else
--// GCC is slower when dealing with always_inline, especially in debug
builds.
--// When using Clang, use always_inline more aggressively.
--# if defined(__clang__) || defined(NDEBUG)
-+# if defined(__clang__) || defined (__GNUC__) || defined(NDEBUG)
- # define ALWAYS_INLINE __attribute__((always_inline)) inline
- # else
- # define ALWAYS_INLINE inline
diff --git a/http/firefox/patches/0019-bgo-940031-wasm-support.patch
b/http/firefox/patches/0019-bgo-940031-wasm-support.patch
new file mode 100644
index 0000000..f4d0ed5
--- /dev/null
+++ b/http/firefox/patches/0019-bgo-940031-wasm-support.patch
@@ -0,0 +1,12 @@
+diff -up a/toolkit/moz.configure.wasi b/toolkit/moz.configure
+--- a/toolkit/moz.configure.wasi
++++ b/toolkit/moz.configure
+@@ -2663,7 +2663,7 @@ with only_when(requires_wasm_sandboxing
+ def wasi_sysroot_flags(wasi_sysroot):
+ if wasi_sysroot:
+ log.info("Using wasi sysroot in %s", wasi_sysroot)
+- return ["--sysroot=%s" % wasi_sysroot]
++ return ["--sysroot=%s" % wasi_sysroot, "-nodefaultlibs",
"-lc", "-lwasi-emulated-process-clocks", "-lc++", "-lc++abi",
"%%PORTAGE_WORKDIR%%/wasi-sdk-%%WASI_SDK_VER%%-%%WASI_ARCH%%-linux/lib/clang/%%WASI_SDK_LLVM_VER%%/lib/wasm32-unknown-wasi/libclang_rt.builtins.a"]
+ return []
+
+ set_config("WASI_SYSROOT", wasi_sysroot)
diff --git
a/http/firefox/patches/0019-bmo-1657849-musl-sandbox-sched_setscheduler.patch
b/http/firefox/patches/0019-bmo-1657849-musl-sandbox-sched_setscheduler.patch
deleted file mode 100644
index 87b6e66..0000000
---
a/http/firefox/patches/0019-bmo-1657849-musl-sandbox-sched_setscheduler.patch
+++ /dev/null
@@ -1,57 +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
-@@ -1759,16 +1759,24 @@
- return Allow();
- case __NR_sched_get_priority_min:
- case __NR_sched_get_priority_max:
- return Allow();
- 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();
-
- // Bug 1372428
-@@ -1950,17 +1958,25 @@
- case __NR_sched_getaffinity:
- case __NR_sched_setaffinity:
- 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:
- return Allow();
-
-
diff --git a/http/firefox/patches/0020-bgo-928126-enable-jxl.patch
b/http/firefox/patches/0020-bgo-928126-enable-jxl.patch
new file mode 100644
index 0000000..bc2f865
--- /dev/null
+++ b/http/firefox/patches/0020-bgo-928126-enable-jxl.patch
@@ -0,0 +1,21 @@
+diff --git a/toolkit/moz.configure b/toolkit/moz.configure
+index c99b4d628c54..0b1b1614620a 100644
+--- a/toolkit/moz.configure
++++ b/toolkit/moz.configure
+@@ -703,9 +703,10 @@ set_define("MOZ_AV1", av1)
+ option("--disable-jxl", help="Disable jxl image support")
+
+
+-@depends("--disable-jxl", milestone.is_nightly)
+-def jxl(value, is_nightly):
+- if is_nightly and value:
++@depends("--disable-jxl")
++def jxl(value):
++ enabled = bool(value)
++ if enabled:
+ return True
+
+
+--
+2.38.1
+
diff --git a/http/firefox/patches/0020-bgo-940031-wasm-support.patch
b/http/firefox/patches/0020-bgo-940031-wasm-support.patch
deleted file mode 100644
index f4d0ed5..0000000
--- a/http/firefox/patches/0020-bgo-940031-wasm-support.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up a/toolkit/moz.configure.wasi b/toolkit/moz.configure
---- a/toolkit/moz.configure.wasi
-+++ b/toolkit/moz.configure
-@@ -2663,7 +2663,7 @@ with only_when(requires_wasm_sandboxing
- def wasi_sysroot_flags(wasi_sysroot):
- if wasi_sysroot:
- log.info("Using wasi sysroot in %s", wasi_sysroot)
-- return ["--sysroot=%s" % wasi_sysroot]
-+ return ["--sysroot=%s" % wasi_sysroot, "-nodefaultlibs",
"-lc", "-lwasi-emulated-process-clocks", "-lc++", "-lc++abi",
"%%PORTAGE_WORKDIR%%/wasi-sdk-%%WASI_SDK_VER%%-%%WASI_ARCH%%-linux/lib/clang/%%WASI_SDK_LLVM_VER%%/lib/wasm32-unknown-wasi/libclang_rt.builtins.a"]
- return []
-
- set_config("WASI_SYSROOT", wasi_sysroot)
diff --git a/http/firefox/patches/0021-bgo-928126-enable-jxl.patch
b/http/firefox/patches/0021-bgo-928126-enable-jxl.patch
deleted file mode 100644
index bc2f865..0000000
--- a/http/firefox/patches/0021-bgo-928126-enable-jxl.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-diff --git a/toolkit/moz.configure b/toolkit/moz.configure
-index c99b4d628c54..0b1b1614620a 100644
---- a/toolkit/moz.configure
-+++ b/toolkit/moz.configure
-@@ -703,9 +703,10 @@ set_define("MOZ_AV1", av1)
- option("--disable-jxl", help="Disable jxl image support")
-
-
--@depends("--disable-jxl", milestone.is_nightly)
--def jxl(value, is_nightly):
-- if is_nightly and value:
-+@depends("--disable-jxl")
-+def jxl(value):
-+ enabled = bool(value)
-+ if enabled:
- return True
-
-
---
-2.38.1
-
diff --git a/http/firefox/patches/0021-bgo-962129-libcxx-21-fix.patch
b/http/firefox/patches/0021-bgo-962129-libcxx-21-fix.patch
new file mode 100644
index 0000000..eca1d83
--- /dev/null
+++ b/http/firefox/patches/0021-bgo-962129-libcxx-21-fix.patch
@@ -0,0 +1,18 @@
+diff --git a/tools/profiler/rust-api/build.rs
b/tools/profiler/rust-api/build.rs
+index 70e6096..d415db5 100644
+--- a/tools/profiler/rust-api/build.rs
++++ b/tools/profiler/rust-api/build.rs
+@@ -84,6 +84,13 @@ fn generate_bindings() {
+ .rustified_enum("mozilla::MarkerSchema_Location")
+ .rustified_enum("mozilla::MarkerSchema_Format")
+ .rustified_enum("mozilla::MarkerSchema_Searchable")
++ .blocklist_type(".*basic_string_view.*")
++ .opaque_type(".*basic_string_view.*")
++ .blocklist_type("std::.*basic_string_view.*")
++ .opaque_type("std::.*basic_string_view.*")
++ .blocklist_type("std::__1::basic_string_view.*")
++ .opaque_type("std::__1::basic_string_view.*")
++ .blocklist_type(".*basic_string___self_view.*")
+ // Converting std::string to an opaque type makes some platforms
build
+ // successfully. Otherwise, it fails to build because MarkerSchema
has
+ // some std::strings as its fields.
diff --git a/http/firefox/patches/0022-bgo-962129-libcxx-21-fix.patch
b/http/firefox/patches/0022-bgo-962129-libcxx-21-fix.patch
deleted file mode 100644
index eca1d83..0000000
--- a/http/firefox/patches/0022-bgo-962129-libcxx-21-fix.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-diff --git a/tools/profiler/rust-api/build.rs
b/tools/profiler/rust-api/build.rs
-index 70e6096..d415db5 100644
---- a/tools/profiler/rust-api/build.rs
-+++ b/tools/profiler/rust-api/build.rs
-@@ -84,6 +84,13 @@ fn generate_bindings() {
- .rustified_enum("mozilla::MarkerSchema_Location")
- .rustified_enum("mozilla::MarkerSchema_Format")
- .rustified_enum("mozilla::MarkerSchema_Searchable")
-+ .blocklist_type(".*basic_string_view.*")
-+ .opaque_type(".*basic_string_view.*")
-+ .blocklist_type("std::.*basic_string_view.*")
-+ .opaque_type("std::.*basic_string_view.*")
-+ .blocklist_type("std::__1::basic_string_view.*")
-+ .opaque_type("std::__1::basic_string_view.*")
-+ .blocklist_type(".*basic_string___self_view.*")
- // Converting std::string to an opaque type makes some platforms
build
- // successfully. Otherwise, it fails to build because MarkerSchema
has
- // some std::strings as its fields.
diff --git a/http/firefox/patches/0022-bmo-1970223-python-3.14-support.patch
b/http/firefox/patches/0022-bmo-1970223-python-3.14-support.patch
new file mode 100644
index 0000000..270ac9c
--- /dev/null
+++ b/http/firefox/patches/0022-bmo-1970223-python-3.14-support.patch
@@ -0,0 +1,169 @@
+diff --git a/python/mozbuild/mozbuild/frontend/reader.py
b/python/mozbuild/mozbuild/frontend/reader.py
+--- a/python/mozbuild/mozbuild/frontend/reader.py
++++ b/python/mozbuild/mozbuild/frontend/reader.py
+@@ -465,17 +465,17 @@ class TemplateFunction:
+ return node
+
+ def c(new_node):
+ return ast.copy_location(new_node, node)
+
+ return c(
+ ast.Subscript(
+ value=c(ast.Name(id=self._global_name, ctx=ast.Load())),
+- slice=c(ast.Index(value=c(ast.Str(s=node.id)))),
++
slice=c(ast.Index(value=c(ast.Constant(value=node.id)))),
+ ctx=node.ctx,
+ )
+ )
+
+
+ class SandboxValidationError(Exception):
+ """Represents an error encountered when validating sandbox results."""
+
+@@ -1034,33 +1034,33 @@ class BuildReader:
+ # We need to branch to deal with python version differences.
+ if isinstance(target.slice, ast.Constant):
+ # Python >= 3.9
+ assert isinstance(target.slice.value, str)
+ key = target.slice.value
+ else:
+ # Others
+ assert isinstance(target.slice, ast.Index)
+- assert isinstance(target.slice.value, ast.Str)
+- key = target.slice.value.s
++ assert isinstance(target.slice.value, ast.Constant)
++ key = target.slice.value.value
+ elif isinstance(target, ast.Attribute):
+ assert isinstance(target.attr, str)
+ key = target.attr
+
+ return name, key
+
+ def assigned_values(node):
+ value = node.value
+ if isinstance(value, ast.List):
+ for v in value.elts:
+- assert isinstance(v, ast.Str)
+- yield v.s
++ assert isinstance(v, ast.Constant)
++ yield v.value
+ else:
+- assert isinstance(value, ast.Str)
+- yield value.s
++ assert isinstance(value, ast.Constant)
++ yield value.value
+
+ assignments = []
+
+ class Visitor(ast.NodeVisitor):
+ def helper(self, node):
+ name, key = assigned_variable(node)
+ if not name:
+ return
+diff --git a/python/mozbuild/mozbuild/vendor/rewrite_mozbuild.py
b/python/mozbuild/mozbuild/vendor/rewrite_mozbuild.py
+--- a/python/mozbuild/mozbuild/vendor/rewrite_mozbuild.py
++++ b/python/mozbuild/mozbuild/vendor/rewrite_mozbuild.py
+@@ -322,25 +322,23 @@ def assignment_node_to_source_filename_l
+ If this happens, we'll return an empty list. The consequence of this is
that we
+ won't be able to match a file against this list, so we may not be able
to add it.
+
+ (But if the file matches a generated list, perhaps it will be included
in the
+ Sources list automatically?)
+ """
+ if isinstance(node.value, ast.List) and "elts" in node.value._fields:
+ for f in node.value.elts:
+- if not isinstance(f, ast.Constant) and not isinstance(f,
ast.Str):
++ if not isinstance(f, ast.Constant):
+ log(
+ "Found non-constant source file name in list: ",
+ ast_get_source_segment(code, f),
+ )
+ return []
+- return [
+- f.value if isinstance(f, ast.Constant) else f.s for f in
node.value.elts
+- ]
++ return [f.value for f in node.value.elts]
+ elif isinstance(node.value, ast.ListComp):
+ # SOURCES += [f for f in foo if blah]
+ log("Could not find the files for " + ast_get_source_segment(code,
node.value))
+ elif isinstance(node.value, ast.Name) or isinstance(node.value,
ast.Subscript):
+ # SOURCES += other_var
+ # SOURCES += files['X64_SOURCES']
+ log("Could not find the files for " + ast_get_source_segment(code,
node))
+ elif isinstance(node.value, ast.Call):
+
+
+diff --git a/python/mach/mach/command_util.py
b/python/mach/mach/command_util.py
+--- a/python/mach/mach/command_util.py
++++ b/python/mach/mach/command_util.py
+@@ -292,17 +292,17 @@ class DecoratorVisitor(ast.NodeVisitor):
+ ]
+
+ relevant_kwargs = ["command", "subcommand", "virtualenv_name"]
+
+ for decorator in decorators:
+ kwarg_dict = {}
+
+ for name, arg in zip(["command", "subcommand"], decorator.args):
+- kwarg_dict[name] = arg.s
++ kwarg_dict[name] = arg.value
+
+ for keyword in decorator.keywords:
+ if keyword.arg not in relevant_kwargs:
+ # We only care about these 3 kwargs, so we can safely
skip the rest
+ continue
+
+ kwarg_dict[keyword.arg] = getattr(keyword.value, "s", "")
+
+
+diff --git a/python/mozbuild/mozbuild/vendor/vendor_python.py
b/python/mozbuild/mozbuild/vendor/vendor_python.py
+--- a/python/mozbuild/mozbuild/vendor/vendor_python.py
++++ b/python/mozbuild/mozbuild/vendor/vendor_python.py
+@@ -35,16 +35,20 @@ EXCLUDED_PACKAGES = {
+ "pyproject.toml",
+ "requirements.txt",
+ # The ansicon package contains DLLs and we don't want to arbitrarily
vendor
+ # them since they could be unsafe. This module should rarely be used in
practice
+ # (it's a fallback for old versions of windows). We've intentionally
vendored a
+ # modified 'dummy' version of it so that the dependency checks still
succeed, but
+ # if it ever is attempted to be used, it will fail gracefully.
+ "ansicon",
++ # jsonschema 4.17.3 is incompatible with Python 3.14+,
++ # but later versions use a dependency with Rust components, which we
thus can't vendor.
++ # For now we apply the minimal patch to jsonschema to make it work
again.
++ "jsonschema",
+ }
+
+
+ class VendorPython(MozbuildObject):
+ def __init__(self, *args, **kwargs):
+ super().__init__(*args, virtualenv_name="vendor", **kwargs)
+ self.removed = []
+ self.added = []
+diff --git a/third_party/python/jsonschema/jsonschema/validators.py
b/third_party/python/jsonschema/jsonschema/validators.py
+--- a/third_party/python/jsonschema/jsonschema/validators.py
++++ b/third_party/python/jsonschema/jsonschema/validators.py
+@@ -870,18 +870,21 @@ class RefResolver:
+
+ @lru_cache() # noqa: B019
+ def _find_in_subschemas(self, url):
+ subschemas = self._get_subschemas_cache()["$id"]
+ if not subschemas:
+ return None
+ uri, fragment = urldefrag(url)
+ for subschema in subschemas:
++ id = subschema["$id"]
++ if not isinstance(id, str):
++ continue
+ target_uri = self._urljoin_cache(
+- self.resolution_scope, subschema["$id"],
++ self.resolution_scope, id,
+ )
+ if target_uri.rstrip("/") == uri.rstrip("/"):
+ if fragment:
+ subschema = self.resolve_fragment(subschema, fragment)
+ self.store[url] = subschema
+ return url, subschema
+ return None
+
+
diff --git a/http/firefox/patches/0023-bgo-962985-libcxx-visibility-fix.patch
b/http/firefox/patches/0023-bgo-962985-libcxx-visibility-fix.patch
new file mode 100644
index 0000000..6ec33cf
--- /dev/null
+++ b/http/firefox/patches/0023-bgo-962985-libcxx-visibility-fix.patch
@@ -0,0 +1,19 @@
+diff --git a/build/moz.configure/toolchain.configure
b/build/moz.configure/toolchain.configure
+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)
+
+
+-@depends(target, build_environment)
+-def visibility_flags(target, env):
++@depends(target, build_environment,
++ try_compile(language="C++", includes=["new"], body="#ifndef
_LIBCPP_VERSION\n#error 1\n#endif"))
++def visibility_flags(target, env, using_libcxx):
+ if target.os != "WINNT":
+- if target.kernel in ("Darwin", "FreeBSD", "OpenBSD"):
++ if using_libcxx:
+ return ("-fvisibility=hidden", "-fvisibility-inlines-hidden")
+ return (
+ "-I%s/system_wrappers" % os.path.join(env.dist),
diff --git a/http/firefox/patches/0024-bmo-1970223-python-3.14-support.patch
b/http/firefox/patches/0024-bmo-1970223-python-3.14-support.patch
deleted file mode 100644
index 270ac9c..0000000
--- a/http/firefox/patches/0024-bmo-1970223-python-3.14-support.patch
+++ /dev/null
@@ -1,169 +0,0 @@
-diff --git a/python/mozbuild/mozbuild/frontend/reader.py
b/python/mozbuild/mozbuild/frontend/reader.py
---- a/python/mozbuild/mozbuild/frontend/reader.py
-+++ b/python/mozbuild/mozbuild/frontend/reader.py
-@@ -465,17 +465,17 @@ class TemplateFunction:
- return node
-
- def c(new_node):
- return ast.copy_location(new_node, node)
-
- return c(
- ast.Subscript(
- value=c(ast.Name(id=self._global_name, ctx=ast.Load())),
-- slice=c(ast.Index(value=c(ast.Str(s=node.id)))),
-+
slice=c(ast.Index(value=c(ast.Constant(value=node.id)))),
- ctx=node.ctx,
- )
- )
-
-
- class SandboxValidationError(Exception):
- """Represents an error encountered when validating sandbox results."""
-
-@@ -1034,33 +1034,33 @@ class BuildReader:
- # We need to branch to deal with python version differences.
- if isinstance(target.slice, ast.Constant):
- # Python >= 3.9
- assert isinstance(target.slice.value, str)
- key = target.slice.value
- else:
- # Others
- assert isinstance(target.slice, ast.Index)
-- assert isinstance(target.slice.value, ast.Str)
-- key = target.slice.value.s
-+ assert isinstance(target.slice.value, ast.Constant)
-+ key = target.slice.value.value
- elif isinstance(target, ast.Attribute):
- assert isinstance(target.attr, str)
- key = target.attr
-
- return name, key
-
- def assigned_values(node):
- value = node.value
- if isinstance(value, ast.List):
- for v in value.elts:
-- assert isinstance(v, ast.Str)
-- yield v.s
-+ assert isinstance(v, ast.Constant)
-+ yield v.value
- else:
-- assert isinstance(value, ast.Str)
-- yield value.s
-+ assert isinstance(value, ast.Constant)
-+ yield value.value
-
- assignments = []
-
- class Visitor(ast.NodeVisitor):
- def helper(self, node):
- name, key = assigned_variable(node)
- if not name:
- return
-diff --git a/python/mozbuild/mozbuild/vendor/rewrite_mozbuild.py
b/python/mozbuild/mozbuild/vendor/rewrite_mozbuild.py
---- a/python/mozbuild/mozbuild/vendor/rewrite_mozbuild.py
-+++ b/python/mozbuild/mozbuild/vendor/rewrite_mozbuild.py
-@@ -322,25 +322,23 @@ def assignment_node_to_source_filename_l
- If this happens, we'll return an empty list. The consequence of this is
that we
- won't be able to match a file against this list, so we may not be able
to add it.
-
- (But if the file matches a generated list, perhaps it will be included
in the
- Sources list automatically?)
- """
- if isinstance(node.value, ast.List) and "elts" in node.value._fields:
- for f in node.value.elts:
-- if not isinstance(f, ast.Constant) and not isinstance(f,
ast.Str):
-+ if not isinstance(f, ast.Constant):
- log(
- "Found non-constant source file name in list: ",
- ast_get_source_segment(code, f),
- )
- return []
-- return [
-- f.value if isinstance(f, ast.Constant) else f.s for f in
node.value.elts
-- ]
-+ return [f.value for f in node.value.elts]
- elif isinstance(node.value, ast.ListComp):
- # SOURCES += [f for f in foo if blah]
- log("Could not find the files for " + ast_get_source_segment(code,
node.value))
- elif isinstance(node.value, ast.Name) or isinstance(node.value,
ast.Subscript):
- # SOURCES += other_var
- # SOURCES += files['X64_SOURCES']
- log("Could not find the files for " + ast_get_source_segment(code,
node))
- elif isinstance(node.value, ast.Call):
-
-
-diff --git a/python/mach/mach/command_util.py
b/python/mach/mach/command_util.py
---- a/python/mach/mach/command_util.py
-+++ b/python/mach/mach/command_util.py
-@@ -292,17 +292,17 @@ class DecoratorVisitor(ast.NodeVisitor):
- ]
-
- relevant_kwargs = ["command", "subcommand", "virtualenv_name"]
-
- for decorator in decorators:
- kwarg_dict = {}
-
- for name, arg in zip(["command", "subcommand"], decorator.args):
-- kwarg_dict[name] = arg.s
-+ kwarg_dict[name] = arg.value
-
- for keyword in decorator.keywords:
- if keyword.arg not in relevant_kwargs:
- # We only care about these 3 kwargs, so we can safely
skip the rest
- continue
-
- kwarg_dict[keyword.arg] = getattr(keyword.value, "s", "")
-
-
-diff --git a/python/mozbuild/mozbuild/vendor/vendor_python.py
b/python/mozbuild/mozbuild/vendor/vendor_python.py
---- a/python/mozbuild/mozbuild/vendor/vendor_python.py
-+++ b/python/mozbuild/mozbuild/vendor/vendor_python.py
-@@ -35,16 +35,20 @@ EXCLUDED_PACKAGES = {
- "pyproject.toml",
- "requirements.txt",
- # The ansicon package contains DLLs and we don't want to arbitrarily
vendor
- # them since they could be unsafe. This module should rarely be used in
practice
- # (it's a fallback for old versions of windows). We've intentionally
vendored a
- # modified 'dummy' version of it so that the dependency checks still
succeed, but
- # if it ever is attempted to be used, it will fail gracefully.
- "ansicon",
-+ # jsonschema 4.17.3 is incompatible with Python 3.14+,
-+ # but later versions use a dependency with Rust components, which we
thus can't vendor.
-+ # For now we apply the minimal patch to jsonschema to make it work
again.
-+ "jsonschema",
- }
-
-
- class VendorPython(MozbuildObject):
- def __init__(self, *args, **kwargs):
- super().__init__(*args, virtualenv_name="vendor", **kwargs)
- self.removed = []
- self.added = []
-diff --git a/third_party/python/jsonschema/jsonschema/validators.py
b/third_party/python/jsonschema/jsonschema/validators.py
---- a/third_party/python/jsonschema/jsonschema/validators.py
-+++ b/third_party/python/jsonschema/jsonschema/validators.py
-@@ -870,18 +870,21 @@ class RefResolver:
-
- @lru_cache() # noqa: B019
- def _find_in_subschemas(self, url):
- subschemas = self._get_subschemas_cache()["$id"]
- if not subschemas:
- return None
- uri, fragment = urldefrag(url)
- for subschema in subschemas:
-+ id = subschema["$id"]
-+ if not isinstance(id, str):
-+ continue
- target_uri = self._urljoin_cache(
-- self.resolution_scope, subschema["$id"],
-+ self.resolution_scope, id,
- )
- if target_uri.rstrip("/") == uri.rstrip("/"):
- if fragment:
- subschema = self.resolve_fragment(subschema, fragment)
- self.store[url] = subschema
- return url, subschema
- return None
-
-


  • [[SM-Commit] ] GIT changes to master grimoire by Pavel Vinogradov (46cc2701d7663df5447484ccdca7612e56aa0f9d), Pavel Vinogradov, 09/19/2025

Archive powered by MHonArc 2.6.24.

Top of Page