Skip to Content.
Sympa Menu

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

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 (cb7255c955639c14c287b44491cfca62bff51b35)
  • Date: Mon, 15 Sep 2025 15:06:48 +0000

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

http/firefox/DEPENDS
| 2
http/firefox/DETAILS
| 4
http/firefox/HISTORY
| 5
http/firefox/patches/0015-bmo-1874059-fix-libcxx-18.patch
| 16
http/firefox/patches/0022-bgo-962129-libcxx-21-fix.patch
| 18 +

http/firefox/patches/0022-bmo-1982569-allocator-api2-fix-unsafe-autoref-lint-error.patch
| 12
http/firefox/patches/0024-bmo-1970223-python-3.14-support.patch
| 169 ++++++++++
7 files changed, 195 insertions(+), 31 deletions(-)

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

http/firefox: version 143.0, SECURITY_PATCH++

diff --git a/http/firefox/DEPENDS b/http/firefox/DEPENDS
index 8405331..ac13d2e 100755
--- a/http/firefox/DEPENDS
+++ b/http/firefox/DEPENDS
@@ -51,7 +51,7 @@ depends libwebp "--with-system-webp"
&&

depends nspr "--with-system-nspr" &&

-local NSS_BRANCH="3.114" &&
+local NSS_BRANCH="3.115.1" &&
if spell_ok nss &&
is_version_less "$(installed_version nss)" "${NSS_BRANCH}"; then
depends -sub "${NSS_BRANCH}" nss "--with-system-nss"
diff --git a/http/firefox/DETAILS b/http/firefox/DETAILS
index 17e013b..bd04953 100755
--- a/http/firefox/DETAILS
+++ b/http/firefox/DETAILS
@@ -1,6 +1,6 @@
SPELL=firefox
- VERSION=142.0.1
- SECURITY_PATCH=213
+ VERSION=143.0
+ SECURITY_PATCH=214
SOURCE="${SPELL}-${VERSION}.source.tar.xz"
# Watch: http://releases.mozilla.org/pub/firefox/releases/
/releases/([0-9.]+)/

SOURCE_URL[0]="http://releases.mozilla.org/pub/${SPELL}/releases/${VERSION}/source/${SOURCE}";
diff --git a/http/firefox/HISTORY b/http/firefox/HISTORY
index 8c752ef..5b6665c 100644
--- a/http/firefox/HISTORY
+++ b/http/firefox/HISTORY
@@ -1,3 +1,8 @@
+2025-09-15 Pavel Vinogradov <public AT sourcemage.org>
+ * DETAILS: version 143.0, SECURITY_PATCH++
+ * DEPENDS: nss >= 3.115.1
+ * patches/*: updated
+
2025-08-27 Pavel Vinogradov <public AT sourcemage.org>
* DETAILS: version 142.0.1

diff --git a/http/firefox/patches/0015-bmo-1874059-fix-libcxx-18.patch
b/http/firefox/patches/0015-bmo-1874059-fix-libcxx-18.patch
deleted file mode 100644
index b21a93c..0000000
--- a/http/firefox/patches/0015-bmo-1874059-fix-libcxx-18.patch
+++ /dev/null
@@ -1,16 +0,0 @@
---- a/build/moz.configure/toolchain.configure 2024-03-16 22:53:15.409390707
+0000
-+++ b/build/moz.configure/toolchain.configure 2024-03-16 22:57:02.661805132
+0000
-@@ -2183,10 +2183,10 @@
- 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, c_compiler)
-+def visibility_flags(target, env, c_compiler):
- if target.os != "WINNT":
-- if target.kernel == "Darwin":
-+ if target.kernel == "Darwin" or (c_compiler.type == "clang" and
c_compiler.version >= "17.0.0"):
- return ("-fvisibility=hidden", "-fvisibility-inlines-hidden")
- return (
- "-I%s/system_wrappers" % os.path.join(env.dist),
\ No newline at end of file
diff --git a/http/firefox/patches/0022-bgo-962129-libcxx-21-fix.patch
b/http/firefox/patches/0022-bgo-962129-libcxx-21-fix.patch
new file mode 100644
index 0000000..eca1d83
--- /dev/null
+++ b/http/firefox/patches/0022-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-bmo-1982569-allocator-api2-fix-unsafe-autoref-lint-error.patch

b/http/firefox/patches/0022-bmo-1982569-allocator-api2-fix-unsafe-autoref-lint-error.patch
deleted file mode 100644
index d0ef273..0000000
---
a/http/firefox/patches/0022-bmo-1982569-allocator-api2-fix-unsafe-autoref-lint-error.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff '--color=auto' -Naur
a/third_party/rust/allocator-api2/src/stable/vec/mod.rs
b/third_party/rust/allocator-api2/src/stable/vec/mod.rs
---- a/third_party/rust/allocator-api2/src/stable/vec/mod.rs 2025-08-12
09:33:20.769906304 +0300
-+++ b/third_party/rust/allocator-api2/src/stable/vec/mod.rs 2025-08-12
09:35:08.708451630 +0300
-@@ -1899,7 +1899,7 @@
- #[cfg(not(no_global_oom_handling))]
- #[inline(always)]
- unsafe fn append_elements(&mut self, other: *const [T]) {
-- let count = unsafe { (*other).len() };
-+ let count = other.len();
- self.reserve(count);
- let len = self.len();
- unsafe { ptr::copy_nonoverlapping(other as *const T,
self.as_mut_ptr().add(len), count) };
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
new file mode 100644
index 0000000..270ac9c
--- /dev/null
+++ b/http/firefox/patches/0024-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
+
+


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

Archive powered by MHonArc 2.6.24.

Top of Page