Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package firefox-esr for openSUSE:Factory checked in at 2026-08-19 17:56:24 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/firefox-esr (Old) and /work/SRC/openSUSE:Factory/.firefox-esr.new.1258 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "firefox-esr" Wed Aug 19 17:56:24 2026 rev:41 rq:1371962 version:153.1.0 Changes: -------- --- /work/SRC/openSUSE:Factory/firefox-esr/MozillaFirefox.changes 2026-07-24 22:08:10.039627092 +0200 +++ /work/SRC/openSUSE:Factory/.firefox-esr.new.1258/MozillaFirefox.changes 2026-08-19 17:56:57.098049723 +0200 @@ -1,0 +2,182 @@ +Wed Aug 19 11:20:04 UTC 2026 - Manfred Hollstein <[email protected]> + +- Disable ccache again; reasons remain the same as documented by + Dirk Müller in 2022. + +------------------------------------------------------------------- +Tue Aug 18 04:33:01 UTC 2026 - Manfred Hollstein <[email protected]> + +- Firefox Extended Support Release 153.1.0 ESR + * Fixed: Various security fixes. +- Mozilla Firefox ESR 153.1.0 + https://www.mozilla.org/security/advisories/mfsa2026-77 + MFSA 2026-77 (boo#1274867) + * CVE-2026-74934 (bmo#2050584) + Site isolation issue in the Graphics: CanvasWebGL component + * CVE-2026-74935 (bmo#2051013) + Privilege escalation in the DOM: Networking component + * CVE-2026-74936 (bmo#2052688) + Use-after-free in the JavaScript: WebAssembly component + * CVE-2026-74937 (bmo#2053337) + Use-after-free in the JavaScript: GC component + * CVE-2026-74938 (bmo#2053688) + Mitigation bypass in the JavaScript: GC component + * CVE-2026-74939 (bmo#2054416) + Privilege escalation in the DOM: Navigation component + * CVE-2026-74940 (bmo#2054842) + Use-after-free in the Graphics: Text component + * CVE-2026-74941 (bmo#2055056) + Privilege escalation in the Graphics: CanvasWebGL component + * CVE-2026-74942 (bmo#2056571) + Privilege escalation in the Remote Settings Client component + * CVE-2026-74943 (bmo#2057308) + Use-after-free in the Graphics: ImageLib component + * CVE-2026-74944 (bmo#2057778) + Use-after-free in the DOM: Core & HTML component + * CVE-2026-74945 (bmo#2057808) + Information disclosure in the Graphics: Text component + * CVE-2026-74946 (bmo#2059997) + Privilege escalation due to incorrect boundary conditions in + the Graphics: CanvasWebGL component + * CVE-2026-74947 (bmo#2060010) + Privilege escalation due to invalid pointer in the Graphics + component + * CVE-2026-74948 (bmo#2060106) + Information disclosure in the Graphics component + * CVE-2026-74949 (bmo#2060245) + Privilege escalation due to use-after-free in the Graphics: + Canvas2D component + * CVE-2026-74950 (bmo#1880253) + Privilege escalation in the Downloads API component + * CVE-2026-74953 (bmo#2022382) + Privilege escalation in the Networking: Cookies component + * CVE-2026-74954 (bmo#2025732) + Information disclosure due to side-channel in the Storage: + Cache API component + * CVE-2026-74955 (bmo#2029265) + Privilege escalation in the Request Handling component + * CVE-2026-74956 (bmo#2032406) + Same-origin policy bypass in the DOM: Service Workers + component + * CVE-2026-74957 (bmo#2041906) + Mitigation bypass in the Safe Browsing component + * CVE-2026-74958 (bmo#2045368) + Information disclosure in the WebRTC component + * CVE-2026-74959 (bmo#2047853) + Mitigation bypass in the Storage: Cache API component + * CVE-2026-74960 (bmo#2049148) + Site isolation issue in the WebExtensions component + * CVE-2026-74961 (bmo#2050380) + Side-channel in the Web Audio component + * CVE-2026-74962 (bmo#2050425) + Site isolation issue in the Networking: Cookies component + * CVE-2026-74963 (bmo#2050482) + Same-origin policy bypass in the Networking: Cookies + component + * CVE-2026-74964 (bmo#2053327) + Integer overflow in the Graphics component + * CVE-2026-74965 (bmo#2053455) + Privilege escalation in the Shell Integration component + * CVE-2026-74966 (bmo#2054776) + Information disclosure in the Form Autofill component + * CVE-2026-74967 (bmo#2055697) + Same-origin policy bypass in the Audio/Video: Playback + component + * CVE-2026-74968 (bmo#2055738) + Site isolation issue in the Graphics: WebRender component + * CVE-2026-74969 (bmo#2056065) + Use-after-free in the Layout: Text and Fonts component + * CVE-2026-74970 (bmo#2056558) + Site isolation issue in the Graphics component + * CVE-2026-74971 (bmo#2057204) + Information disclosure in the DOM: UI Events & Focus Handling + component + * CVE-2026-74972 (bmo#2059053) + Information disclosure in the DOM: Push Subscriptions + component + * CVE-2026-74973 (bmo#2060357) + Race condition, use-after-free in the Graphics component + * CVE-2026-74974 (bmo#2061794) + Same-origin policy bypass in the Graphics: ImageLib component + * CVE-2026-74976 (bmo#1952164) + JIT miscompilation in the JavaScript Engine: JIT component + * CVE-2026-74977 (bmo#2028440) + Integer overflow in the Graphics component + * CVE-2026-74978 (bmo#2036097) + Clickjacking issue in the Widget component + * CVE-2026-74979 (bmo#2045676) + Mitigation bypass in the Add-ons Manager component + * CVE-2026-74981 (bmo#2050480) + Site isolation issue in the Audio/Video: Web Codecs component + * CVE-2026-74982 (bmo#2051788) + Denial-of-service in the Widget component + * CVE-2026-74983 (bmo#2051897) + Mitigation bypass in the Data Loss Prevention component + * CVE-2026-74984 (bmo#2053670) + Race condition in the JavaScript Engine component + * CVE-2026-74985 (bmo#2059825) + Privilege escalation in the Enterprise Policies component + * CVE-2026-74986 (bmo#2060048) + Site isolation issue in the CSS Parsing and Computation + component + * CVE-2026-74987 (bmo#1500946, bmo#1788109, bmo#2045379, + bmo#2045380, bmo#2048797, bmo#2049339, bmo#2049393, + bmo#2050536, bmo#2053272, bmo#2053579, bmo#2053580, + bmo#2054662, bmo#2054665, bmo#2054673, bmo#2054785, + bmo#2057115, bmo#2057116, bmo#2057130, bmo#2057991, + bmo#2057995, bmo#2058002, bmo#2058008, bmo#2058032, + bmo#2058102, bmo#2058645, bmo#2058667, bmo#2059424) + Internally found bugs fixed in Firefox ESR 140.14, Firefox + ESR 153.1 and Firefox 154 + * CVE-2026-74988 (bmo#2018164, bmo#2045404, bmo#2045507, + bmo#2045711, bmo#2045796, bmo#2046734, bmo#2051424, + bmo#2052403, bmo#2053153, bmo#2053174, bmo#2053262, + bmo#2054643, bmo#2054667, bmo#2054671, bmo#2054674, + bmo#2054687, bmo#2054717, bmo#2054721, bmo#2054761, + bmo#2054763, bmo#2054787, bmo#2055676, bmo#2056779, + bmo#2056781, bmo#2057994, bmo#2058094, bmo#2058611, + bmo#2058615, bmo#2058616, bmo#2058629, bmo#2059019, + bmo#2059138, bmo#2059198, bmo#2059224, bmo#2061315) + Internally found bugs fixed in Firefox ESR 153.1 and Firefox + 154 + * CVE-2026-74990 (bmo#2045762, bmo#2045774, bmo#2048490, + bmo#2050864, bmo#2052401, bmo#2053159, bmo#2053260, + bmo#2053261, bmo#2053582, bmo#2053599, bmo#2053607, + bmo#2053608, bmo#2053853, bmo#2054626, bmo#2054627, + bmo#2054635, bmo#2054677, bmo#2054740, bmo#2054832, + bmo#2056792, bmo#2057098, bmo#2057100, bmo#2057101, + bmo#2057103, bmo#2057117, bmo#2057118, bmo#2058048, + bmo#2058049, bmo#2058208, bmo#2058622, bmo#2058623, + bmo#2058665, bmo#2058666, bmo#2059121, bmo#2059164, + bmo#2059188) + Internally found bugs fixed in Firefox ESR 115.39, Firefox + ESR 140.14, Firefox ESR 153.1 and Firefox 154 +- Rebase mozilla-libavcodec58_91.patch + +------------------------------------------------------------------- +Fri Aug 14 15:32:48 UTC 2026 - Manfred Hollstein <[email protected]> + +- Sync files with the 153esr branch in github at + <https://github.com/openSUSE/firefox-maintenance.git>: + * Update mozilla.keyring + * Add patches from the 153esr branch: + - fix-missing-libfreebl3-symbols.patch + - fix-skia-musttail.patch + - fix-slfo-build.patch + - mozilla-bmo1746799.patch + - mozilla-fix-sle12-aarch64-missing-sve.patch + - mozilla-fix-sle12-ppc64le-webrtc-include.patch + * Update patches from the 153esr branch: + - firefox-branded-icons.patch + - mozilla-aarch64-startup-crash.patch + - mozilla-bmo1504834-part1.patch + - mozilla-bmo849632.patch + - mozilla-pgo.patch + - mozilla-reduce-rust-debuginfo.patch + - mozilla-s390-context.patch + - mozilla-sandbox-lto.patch + - mozilla-silence-no-return-type.patch +- Update create-tar.sh from + <https://github.com/openSUSE/firefox-scripts.git> + +------------------------------------------------------------------- firefox-esr.changes: same change Old: ---- firefox-153.0esr.source.tar.xz firefox-153.0esr.source.tar.xz.asc l10n-153.0esr.tar.xz New: ---- firefox-153.1.0esr.source.tar.xz firefox-153.1.0esr.source.tar.xz.asc fix-missing-libfreebl3-symbols.patch fix-skia-musttail.patch fix-slfo-build.patch l10n-153.1.0esr.tar.xz mozilla-bmo1746799.patch mozilla-fix-sle12-aarch64-missing-sve.patch mozilla-fix-sle12-ppc64le-webrtc-include.patch ----------(New B)---------- New:/work/SRC/openSUSE:Factory/.firefox-esr.new.1258/MozillaFirefox.changes- * Add patches from the 153esr branch: /work/SRC/openSUSE:Factory/.firefox-esr.new.1258/MozillaFirefox.changes: - fix-missing-libfreebl3-symbols.patch /work/SRC/openSUSE:Factory/.firefox-esr.new.1258/MozillaFirefox.changes- - fix-skia-musttail.patch -- /work/SRC/openSUSE:Factory/.firefox-esr.new.1258/firefox-esr.changes- * Add patches from the 153esr branch: /work/SRC/openSUSE:Factory/.firefox-esr.new.1258/firefox-esr.changes: - fix-missing-libfreebl3-symbols.patch /work/SRC/openSUSE:Factory/.firefox-esr.new.1258/firefox-esr.changes- - fix-skia-musttail.patch New:/work/SRC/openSUSE:Factory/.firefox-esr.new.1258/MozillaFirefox.changes- - fix-missing-libfreebl3-symbols.patch /work/SRC/openSUSE:Factory/.firefox-esr.new.1258/MozillaFirefox.changes: - fix-skia-musttail.patch /work/SRC/openSUSE:Factory/.firefox-esr.new.1258/MozillaFirefox.changes- - fix-slfo-build.patch -- /work/SRC/openSUSE:Factory/.firefox-esr.new.1258/firefox-esr.changes- - fix-missing-libfreebl3-symbols.patch /work/SRC/openSUSE:Factory/.firefox-esr.new.1258/firefox-esr.changes: - fix-skia-musttail.patch /work/SRC/openSUSE:Factory/.firefox-esr.new.1258/firefox-esr.changes- - fix-slfo-build.patch New:/work/SRC/openSUSE:Factory/.firefox-esr.new.1258/MozillaFirefox.changes- - fix-skia-musttail.patch /work/SRC/openSUSE:Factory/.firefox-esr.new.1258/MozillaFirefox.changes: - fix-slfo-build.patch /work/SRC/openSUSE:Factory/.firefox-esr.new.1258/MozillaFirefox.changes- - mozilla-bmo1746799.patch -- /work/SRC/openSUSE:Factory/.firefox-esr.new.1258/firefox-esr.changes- - fix-skia-musttail.patch /work/SRC/openSUSE:Factory/.firefox-esr.new.1258/firefox-esr.changes: - fix-slfo-build.patch /work/SRC/openSUSE:Factory/.firefox-esr.new.1258/firefox-esr.changes- - mozilla-bmo1746799.patch New:/work/SRC/openSUSE:Factory/.firefox-esr.new.1258/MozillaFirefox.changes- - fix-slfo-build.patch /work/SRC/openSUSE:Factory/.firefox-esr.new.1258/MozillaFirefox.changes: - mozilla-bmo1746799.patch /work/SRC/openSUSE:Factory/.firefox-esr.new.1258/MozillaFirefox.changes- - mozilla-fix-sle12-aarch64-missing-sve.patch -- /work/SRC/openSUSE:Factory/.firefox-esr.new.1258/firefox-esr.changes- - fix-slfo-build.patch /work/SRC/openSUSE:Factory/.firefox-esr.new.1258/firefox-esr.changes: - mozilla-bmo1746799.patch /work/SRC/openSUSE:Factory/.firefox-esr.new.1258/firefox-esr.changes- - mozilla-fix-sle12-aarch64-missing-sve.patch New:/work/SRC/openSUSE:Factory/.firefox-esr.new.1258/MozillaFirefox.changes- - mozilla-bmo1746799.patch /work/SRC/openSUSE:Factory/.firefox-esr.new.1258/MozillaFirefox.changes: - mozilla-fix-sle12-aarch64-missing-sve.patch /work/SRC/openSUSE:Factory/.firefox-esr.new.1258/MozillaFirefox.changes- - mozilla-fix-sle12-ppc64le-webrtc-include.patch -- /work/SRC/openSUSE:Factory/.firefox-esr.new.1258/firefox-esr.changes- - mozilla-bmo1746799.patch /work/SRC/openSUSE:Factory/.firefox-esr.new.1258/firefox-esr.changes: - mozilla-fix-sle12-aarch64-missing-sve.patch /work/SRC/openSUSE:Factory/.firefox-esr.new.1258/firefox-esr.changes- - mozilla-fix-sle12-ppc64le-webrtc-include.patch New:/work/SRC/openSUSE:Factory/.firefox-esr.new.1258/MozillaFirefox.changes- - mozilla-fix-sle12-aarch64-missing-sve.patch /work/SRC/openSUSE:Factory/.firefox-esr.new.1258/MozillaFirefox.changes: - mozilla-fix-sle12-ppc64le-webrtc-include.patch /work/SRC/openSUSE:Factory/.firefox-esr.new.1258/MozillaFirefox.changes- * Update patches from the 153esr branch: -- /work/SRC/openSUSE:Factory/.firefox-esr.new.1258/firefox-esr.changes- - mozilla-fix-sle12-aarch64-missing-sve.patch /work/SRC/openSUSE:Factory/.firefox-esr.new.1258/firefox-esr.changes: - mozilla-fix-sle12-ppc64le-webrtc-include.patch /work/SRC/openSUSE:Factory/.firefox-esr.new.1258/firefox-esr.changes- * Update patches from the 153esr branch: ----------(New E)---------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ firefox-esr.spec ++++++ --- /var/tmp/diff_new_pack.NGCM79/_old 2026-08-19 17:57:26.237096340 +0200 +++ /var/tmp/diff_new_pack.NGCM79/_new 2026-08-19 17:57:26.239096412 +0200 @@ -41,8 +41,8 @@ # major 69 # mainver %%major.99 %define major 153 -%define mainver %major.0 -%define orig_version 153.0 +%define mainver %major.1.0 +%define orig_version 153.1.0 %define orig_suffix esr %define update_channel esr %define branding 1 @@ -52,35 +52,21 @@ # upstream default is clang (to use gcc for large parts set to 0) %define clang_build 0 +# PIE, full relro +%define build_hardened 1 + %bcond_with only_print_mozconfig # define if ccache should be used or not -%define useccache 1 - -# ccache doesn't work with pgo -%if 0%{?do_profiling} -%define useccache 0 -%endif - -# ccache doesn't work with pgo -%if 0%{?do_profiling} %define useccache 0 -%endif # SLE-12 doesn't have this macro %{!?_rpmmacrodir: %global _rpmmacrodir %{_rpmconfigdir}/macros.d} -# No i586 on SLE-12, as the rpmlints are broken and can't handle the big rpms resulting from this build. -%if 0%{?sle_version} >= 120000 && 0%{?sle_version} < 150000 +# We don't ship i586 anywhere anymore ExclusiveArch: aarch64 ppc64le x86_64 s390x -%else -# Firefox only supports i686 -%ifarch %ix86 -ExclusiveArch: i586 i686 -BuildArch: i686 -%{expand:%%global optflags %(echo "%optflags"|sed -e s/i586/i686/) -march=i686 -mtune=generic -msse2} -%endif -%endif + +# Let mach set the appropriate LTO-flags for us, but correctly. %{expand:%%global optflags %(echo "%optflags"|sed -e s/-flto=auto//) } # general build definitions @@ -98,6 +84,7 @@ %define firefox_appid \{ec8030f7-c20a-464f-9b0e-13a3a9e97384\} %define __provides_exclude ^lib.*\\.so.*$ %define __requires_exclude ^(libmoz.*|liblgpllibs.*|libxul.*|libgk.*)$ + %define localize 1 %ifarch %ix86 x86_64 %define crashreporter 1 @@ -112,6 +99,11 @@ # Wayland is too old on Leap <=15.1 as well %define wayland_supported 0 %endif +%if 0%{?sle_version} >= 120000 && 0%{?sle_version} <= 150000 +%define gcc_version 13 +%else +%define gcc_version 15 +%endif Name: %{pkgname} BuildRequires: Mesa-devel @@ -121,16 +113,11 @@ BuildRequires: dejavu-fonts BuildRequires: fdupes BuildRequires: memory-constraints -%if 0%{?suse_version} < 1550 && 0%{?sle_version} <= 150600 -BuildRequires: gcc13 -BuildRequires: gcc13-c++ -BuildRequires: libstdc++6-devel-gcc13 -%else -BuildRequires: gcc15-c++ -BuildRequires: libstdc++6-devel-gcc15 -%endif -BuildRequires: cargo1.93 -BuildRequires: rust1.93 +BuildRequires: gcc%{gcc_version} +BuildRequires: gcc%{gcc_version}-c++ +BuildRequires: libstdc++6-devel-gcc%{gcc_version} +BuildRequires: cargo1.94 +BuildRequires: rust1.94 %if 0%{useccache} != 0 BuildRequires: ccache %endif @@ -142,32 +129,26 @@ BuildRequires: mozilla-nspr-devel >= 4.39 BuildRequires: mozilla-nss-devel >= 3.125 BuildRequires: nasm >= 2.14 -BuildRequires: nodejs >= 12.22.12 -%if 0%{?sle_version} >= 120000 && 0%{?sle_version} < 150000 -BuildRequires: libXtst-devel -BuildRequires: python-libxml2 -BuildRequires: python39 -BuildRequires: python39-curses -BuildRequires: python39-devel -%else -%if 0%{?sle_version} > 150000 && 0%{?sle_version} <= 150600 +%if 0%{?sle_version} >= 120000 && 0%{?sle_version} <= 150700 BuildRequires: nodejs12 >= 12.22.12 -BuildRequires: python39 -BuildRequires: python39-curses -BuildRequires: python39-devel +BuildRequires: libXtst-devel +#BuildRequires: python-libxml2 +BuildRequires: python311 +BuildRequires: python311-curses +BuildRequires: python311-devel %else # ALP BuildRequires: nodejs >= 12.22.12 -BuildRequires: python3 >= 3.7 +BuildRequires: python3 >= 3.11 BuildRequires: python3-curses BuildRequires: python3-devel %endif -%endif BuildRequires: rust-cbindgen >= 0.29.4 %if 0%{?suse_version} >= 1699 BuildRequires: translate-suse-desktop %endif BuildRequires: unzip +# BuildRequires: update-desktop-files BuildRequires: xorg-x11-libXt-devel %if 0%{?do_profiling} BuildRequires: xvfb-run @@ -177,8 +158,19 @@ %if 0%{?suse_version} < 1550 BuildRequires: pkgconfig(gconf-2.0) >= 1.2.1 %endif -BuildRequires: clang-devel +%if 0%{?suse_version} >= 1610 +%define clang_version 21 +%else +%define clang_version 19 +%endif +BuildRequires: clang%{clang_version}-devel +# Because of reasons, clang-tools is not versioned and leads often +# to unresolvable or broken builds, because it pulls in different +# clang-versions then the one we try to use here. +# But we don't need clang-tools at all, it is just pulled in via +# the clang-devel-package, so we tell OBS to not use it #!BuildIgnore: clang-tools +BuildRequires: glibc-devel BuildRequires: pkgconfig(glib-2.0) >= 2.22 BuildRequires: pkgconfig(gobject-2.0) BuildRequires: pkgconfig(gtk+-3.0) >= 3.14.0 @@ -223,7 +215,7 @@ Source11: firefox.1 Source12: mozilla-get-app-id Source13: spellcheck.js -Source14: https://github.com/openSUSE/firefox-scripts/raw/913fab1/create-tar.sh +Source14: https://github.com/openSUSE/firefox-scripts/raw/2db396e/create-tar.sh Source15: firefox-appdata.xml Source16: %{name}.changes %if "%{pkgname}" != "firefox-esr" @@ -239,6 +231,7 @@ Source22: firefox-esr.changes.txt Source23: MozillaFirefox.changes.txt # Gecko/Toolkit +Patch1: fix-missing-libfreebl3-symbols.patch Patch3: mozilla-ntlm-full-path.patch Patch4: mozilla-aarch64-startup-crash.patch Patch6: mozilla-s390-context.patch @@ -250,9 +243,16 @@ Patch18: mozilla-silence-no-return-type.patch Patch20: one_swizzle_to_rule_them_all.patch Patch21: svg-rendering.patch +Patch24: mozilla-bmo1746799.patch Patch25: mozilla-sandbox-lto.patch Patch26: mozilla-bmo2030493.patch Patch28: mozilla-bmo2048250.patch +Patch30: fix-skia-musttail.patch +Patch31: mozilla-fix-sle12-aarch64-missing-sve.patch +Patch32: mozilla-fix-sle12-ppc64le-webrtc-include.patch +%if 0%{?suse_version} >= 1600 || 0%{?sle_version} >= 150600 +Patch33: fix-slfo-build.patch +%endif # Firefox/browser Patch102: firefox-branded-icons.patch %endif @@ -260,7 +260,11 @@ Requires(post): coreutils shared-mime-info desktop-file-utils Requires(postun): shared-mime-info desktop-file-utils Requires: %{name}-branding >= 68 +%if 0%{?suse_version} >= 1600 || 0%{?sle_version} >= 120500 Requires: xdg-desktop-portal +%else +Recommends: xdg-desktop-portal +%endif %requires_ge mozilla-nspr %requires_ge mozilla-nss %requires_ge libfreetype6 @@ -280,7 +284,7 @@ %if 0%{?devpkg} == 0 Obsoletes: %{name}-devel < %{version} %endif -ExcludeArch: armv6l armv6hl ppc ppc64 i586 +ExcludeArch: armv6l armv6hl ppc ppc64 %description Mozilla Firefox is a standalone web browser, designed for standards @@ -399,11 +403,11 @@ TIME="\"$(date -d "${modified}" "+%%R")\"" find . -type f -regex ".*\.c\|.*\.cpp\|.*\.h" -exec sed -i "s/__DATE__/${DATE}/g;s/__TIME__/${TIME}/g" {} + -# SLE-12 provides python39, but that package does not provide a python3 binary +# SLE-12 provides python311, but that package does not provide a python3 binary %if 0%{?sle_version} >= 120000 && 0%{?sle_version} < 150000 -sed -i "s|/usr/bin/env python3|/usr/bin/env python3.9|" mach -sed -i "s|potential_python_binary = f\"python3.{i}\"|potential_python_binary = f\"python3.9.{i}\"|" mach -export PYTHON3=/usr/bin/python3.9 +sed -i "s|/usr/bin/env python3|/usr/bin/env python3.11|" mach +sed -i "s|potential_python_binary = f\"python3.{i}\"|potential_python_binary = f\"python3.11.{i}\"|" mach +export PYTHON3=/usr/bin/python3.11 %endif # When doing only_print_mozconfig, this file isn't necessarily available, so skip it @@ -425,21 +429,23 @@ export MOZ_TELEMETRY_REPORTING=1 export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE=system export CFLAGS="%{optflags}" -%if 0%{?clang_build} != 0 +%if 0%{?clang_build} == 0 +export CC=gcc-%{gcc_version} +export CXX=g++-%{gcc_version} +export AR=gcc-ar-%{gcc_version} +export NM=gcc-nm-%{gcc_version} +export RANLIB=gcc-ranlib-%{gcc_version} +%else export CC=clang export CXX=clang++ -%else -%if 0%{?suse_version} < 1550 && 0%{?sle_version} <= 150600 -export CC=gcc-13 -export CXX=g++-13 -%else -export CC=gcc-15 -export CXX=g++-15 -export AR=gcc-ar-15 -export NM=gcc-nm-15 -export RANLIB=gcc-ranlib-15 -%endif %endif +export LLVM_AR=llvm-ar-%{clang_version} +export LLVM_NM=llvm-nm-%{clang_version} +export LLVM_OBJCOPY=llvm-objcopy-%{clang_version} +export LLVM_OBJDUMP=llvm-objdump-%{clang_version} +export LLVM_RANLIB=llvm-ranlib-%{clang_version} +export LLVM_READELF=llvm-readelf-%{clang_version} + %ifarch %arm %ix86 ### NOTE: these sections are not required anymore. Alson --no-keep-memory + -Wl,-z,pack-relative-relocs causes ### ld to go OOM (https://sourceware.org/bugzilla/show_bug.cgi?id=30756) @@ -449,8 +455,8 @@ # A lie to prevent -Wl,--gc-sections being set which requires more memory than 32bit can offer #export GC_SECTIONS_BREAKS_DEBUG_RANGES=yes %endif +%if 0%{?build_hardened} export LDFLAGS="\$LDFLAGS -fPIC -Wl,-z,relro,-z,now" -%ifarch ppc64 ppc64le %endif %ifarch %ix86 # Not enough memory on 32-bit systems, reduce debug info. @@ -466,6 +472,13 @@ %limit_build -m 2500 %endif +# Mitigating OOM-errors on SLE-16 +%if 0%{?suse_version} >= 1600 && 0%{suse_version} < 1699 +%ifarch s390x +%limit_build -m 2500 +%endif +%endif + # Generating mozconfig cat << EOF > $MOZCONFIG mk_add_options MOZILLA_OFFICIAL=1 @@ -487,13 +500,20 @@ %ifarch %ix86 %arm ac_add_options --disable-debug-symbols %else -ac_add_options --enable-debug-symbols=-g0 +ac_add_options --enable-debug-symbols=-g1 %endif ac_add_options --disable-install-strip -%ifarch %ix86 %arm -# OOM on 32-bit when ld passed -Wl,-z,pack-relative-relocs -# ac_add_options --enable-elf-hack +# TODO: Disable elf-hack everywhere for now because it currently breaks the build +# We have to disable elf-hack on SLE-12 aarch64, because the autogenerated +# code produces a "no return in non-void function"-error. +%if 0%{?sle_version} >= 120000 && 0%{?sle_version} < 150000 +%ifarch aarch64 +ac_add_options --disable-elf-hack +%endif %endif +# TODO: To enable relrhack: +# E ERROR: Cannot enable relrhack without linker support for -z pack-relative-relocs +#ac_add_options --enable-elf-hack=relr ac_add_options --with-system-nspr ac_add_options --with-system-nss %if 0%{useccache} != 0 @@ -543,20 +563,15 @@ %endif %ifarch x86_64 # LTO needs newer toolchain stack only (at least GCC 8.2.1 (r268506) -%if 0%{?suse_version} > 1500 +%if 0%{?suse_version} >= 1699 ac_add_options --enable-lto %if 0%{?do_profiling} ac_add_options MOZ_PGO=1 -export CCACHE_DISABLE=1 %endif %endif %endif EOF -%if 0%{?do_profiling} -export CCACHE_DISABLE=1 -%endif - %if %{with only_print_mozconfig} cat ./.obsenv.sh cat $MOZCONFIG @@ -594,6 +609,7 @@ EOF %if 0%{?suse_version} >= 1600 +# Needed for reproducible builds, only available for rpm version >= 4.19 %define njobs ${RPM_BUILD_NCPUS:-0} %else %define njobs 0%{?jobs:%jobs} @@ -778,9 +794,7 @@ %{progdir}/dependentlibs.list %{progdir}/*.so %{progdir}/glxtest -%if 0%{wayland_supported} %{progdir}/vaapitest -%endif %{progdir}/vulkantest %ifarch aarch64 riscv64 %arm %{progdir}/v4l2test ++++++ MozillaFirefox.changes.txt ++++++ --- /var/tmp/diff_new_pack.NGCM79/_old 2026-08-19 17:57:26.351100429 +0200 +++ /var/tmp/diff_new_pack.NGCM79/_new 2026-08-19 17:57:26.358100680 +0200 @@ -1,4 +1,186 @@ ------------------------------------------------------------------- +Wed Aug 19 11:20:04 UTC 2026 - Manfred Hollstein <[email protected]> + +- Disable ccache again; reasons remain the same as documented by + Dirk Müller in 2022. + +------------------------------------------------------------------- +Tue Aug 18 04:33:01 UTC 2026 - Manfred Hollstein <[email protected]> + +- Firefox Extended Support Release 153.1.0 ESR + * Fixed: Various security fixes. +- Mozilla Firefox ESR 153.1.0 + https://www.mozilla.org/security/advisories/mfsa2026-77 + MFSA 2026-77 (boo#1274867) + * CVE-2026-74934 (bmo#2050584) + Site isolation issue in the Graphics: CanvasWebGL component + * CVE-2026-74935 (bmo#2051013) + Privilege escalation in the DOM: Networking component + * CVE-2026-74936 (bmo#2052688) + Use-after-free in the JavaScript: WebAssembly component + * CVE-2026-74937 (bmo#2053337) + Use-after-free in the JavaScript: GC component + * CVE-2026-74938 (bmo#2053688) + Mitigation bypass in the JavaScript: GC component + * CVE-2026-74939 (bmo#2054416) + Privilege escalation in the DOM: Navigation component + * CVE-2026-74940 (bmo#2054842) + Use-after-free in the Graphics: Text component + * CVE-2026-74941 (bmo#2055056) + Privilege escalation in the Graphics: CanvasWebGL component + * CVE-2026-74942 (bmo#2056571) + Privilege escalation in the Remote Settings Client component + * CVE-2026-74943 (bmo#2057308) + Use-after-free in the Graphics: ImageLib component + * CVE-2026-74944 (bmo#2057778) + Use-after-free in the DOM: Core & HTML component + * CVE-2026-74945 (bmo#2057808) + Information disclosure in the Graphics: Text component + * CVE-2026-74946 (bmo#2059997) + Privilege escalation due to incorrect boundary conditions in + the Graphics: CanvasWebGL component + * CVE-2026-74947 (bmo#2060010) + Privilege escalation due to invalid pointer in the Graphics + component + * CVE-2026-74948 (bmo#2060106) + Information disclosure in the Graphics component + * CVE-2026-74949 (bmo#2060245) + Privilege escalation due to use-after-free in the Graphics: + Canvas2D component + * CVE-2026-74950 (bmo#1880253) + Privilege escalation in the Downloads API component + * CVE-2026-74953 (bmo#2022382) + Privilege escalation in the Networking: Cookies component + * CVE-2026-74954 (bmo#2025732) + Information disclosure due to side-channel in the Storage: + Cache API component + * CVE-2026-74955 (bmo#2029265) + Privilege escalation in the Request Handling component + * CVE-2026-74956 (bmo#2032406) + Same-origin policy bypass in the DOM: Service Workers + component + * CVE-2026-74957 (bmo#2041906) + Mitigation bypass in the Safe Browsing component + * CVE-2026-74958 (bmo#2045368) + Information disclosure in the WebRTC component + * CVE-2026-74959 (bmo#2047853) + Mitigation bypass in the Storage: Cache API component + * CVE-2026-74960 (bmo#2049148) + Site isolation issue in the WebExtensions component + * CVE-2026-74961 (bmo#2050380) + Side-channel in the Web Audio component + * CVE-2026-74962 (bmo#2050425) + Site isolation issue in the Networking: Cookies component + * CVE-2026-74963 (bmo#2050482) + Same-origin policy bypass in the Networking: Cookies + component + * CVE-2026-74964 (bmo#2053327) + Integer overflow in the Graphics component + * CVE-2026-74965 (bmo#2053455) + Privilege escalation in the Shell Integration component + * CVE-2026-74966 (bmo#2054776) + Information disclosure in the Form Autofill component + * CVE-2026-74967 (bmo#2055697) + Same-origin policy bypass in the Audio/Video: Playback + component + * CVE-2026-74968 (bmo#2055738) + Site isolation issue in the Graphics: WebRender component + * CVE-2026-74969 (bmo#2056065) + Use-after-free in the Layout: Text and Fonts component + * CVE-2026-74970 (bmo#2056558) + Site isolation issue in the Graphics component + * CVE-2026-74971 (bmo#2057204) + Information disclosure in the DOM: UI Events & Focus Handling + component + * CVE-2026-74972 (bmo#2059053) + Information disclosure in the DOM: Push Subscriptions + component + * CVE-2026-74973 (bmo#2060357) + Race condition, use-after-free in the Graphics component + * CVE-2026-74974 (bmo#2061794) + Same-origin policy bypass in the Graphics: ImageLib component + * CVE-2026-74976 (bmo#1952164) + JIT miscompilation in the JavaScript Engine: JIT component + * CVE-2026-74977 (bmo#2028440) + Integer overflow in the Graphics component + * CVE-2026-74978 (bmo#2036097) + Clickjacking issue in the Widget component + * CVE-2026-74979 (bmo#2045676) + Mitigation bypass in the Add-ons Manager component + * CVE-2026-74981 (bmo#2050480) + Site isolation issue in the Audio/Video: Web Codecs component + * CVE-2026-74982 (bmo#2051788) + Denial-of-service in the Widget component + * CVE-2026-74983 (bmo#2051897) + Mitigation bypass in the Data Loss Prevention component + * CVE-2026-74984 (bmo#2053670) + Race condition in the JavaScript Engine component + * CVE-2026-74985 (bmo#2059825) + Privilege escalation in the Enterprise Policies component + * CVE-2026-74986 (bmo#2060048) + Site isolation issue in the CSS Parsing and Computation + component + * CVE-2026-74987 (bmo#1500946, bmo#1788109, bmo#2045379, + bmo#2045380, bmo#2048797, bmo#2049339, bmo#2049393, + bmo#2050536, bmo#2053272, bmo#2053579, bmo#2053580, + bmo#2054662, bmo#2054665, bmo#2054673, bmo#2054785, + bmo#2057115, bmo#2057116, bmo#2057130, bmo#2057991, + bmo#2057995, bmo#2058002, bmo#2058008, bmo#2058032, + bmo#2058102, bmo#2058645, bmo#2058667, bmo#2059424) + Internally found bugs fixed in Firefox ESR 140.14, Firefox + ESR 153.1 and Firefox 154 + * CVE-2026-74988 (bmo#2018164, bmo#2045404, bmo#2045507, + bmo#2045711, bmo#2045796, bmo#2046734, bmo#2051424, + bmo#2052403, bmo#2053153, bmo#2053174, bmo#2053262, + bmo#2054643, bmo#2054667, bmo#2054671, bmo#2054674, + bmo#2054687, bmo#2054717, bmo#2054721, bmo#2054761, + bmo#2054763, bmo#2054787, bmo#2055676, bmo#2056779, + bmo#2056781, bmo#2057994, bmo#2058094, bmo#2058611, + bmo#2058615, bmo#2058616, bmo#2058629, bmo#2059019, + bmo#2059138, bmo#2059198, bmo#2059224, bmo#2061315) + Internally found bugs fixed in Firefox ESR 153.1 and Firefox + 154 + * CVE-2026-74990 (bmo#2045762, bmo#2045774, bmo#2048490, + bmo#2050864, bmo#2052401, bmo#2053159, bmo#2053260, + bmo#2053261, bmo#2053582, bmo#2053599, bmo#2053607, + bmo#2053608, bmo#2053853, bmo#2054626, bmo#2054627, + bmo#2054635, bmo#2054677, bmo#2054740, bmo#2054832, + bmo#2056792, bmo#2057098, bmo#2057100, bmo#2057101, + bmo#2057103, bmo#2057117, bmo#2057118, bmo#2058048, + bmo#2058049, bmo#2058208, bmo#2058622, bmo#2058623, + bmo#2058665, bmo#2058666, bmo#2059121, bmo#2059164, + bmo#2059188) + Internally found bugs fixed in Firefox ESR 115.39, Firefox + ESR 140.14, Firefox ESR 153.1 and Firefox 154 +- Rebase mozilla-libavcodec58_91.patch + +------------------------------------------------------------------- +Fri Aug 14 15:32:48 UTC 2026 - Manfred Hollstein <[email protected]> + +- Sync files with the 153esr branch in github at + <https://github.com/openSUSE/firefox-maintenance.git>: + * Update mozilla.keyring + * Add patches from the 153esr branch: + - fix-missing-libfreebl3-symbols.patch + - fix-skia-musttail.patch + - fix-slfo-build.patch + - mozilla-bmo1746799.patch + - mozilla-fix-sle12-aarch64-missing-sve.patch + - mozilla-fix-sle12-ppc64le-webrtc-include.patch + * Update patches from the 153esr branch: + - firefox-branded-icons.patch + - mozilla-aarch64-startup-crash.patch + - mozilla-bmo1504834-part1.patch + - mozilla-bmo849632.patch + - mozilla-pgo.patch + - mozilla-reduce-rust-debuginfo.patch + - mozilla-s390-context.patch + - mozilla-sandbox-lto.patch + - mozilla-silence-no-return-type.patch +- Update create-tar.sh from + <https://github.com/openSUSE/firefox-scripts.git> + +------------------------------------------------------------------- Tue Jul 21 12:56:46 UTC 2026 - Manfred Hollstein <[email protected]> - Firefox Extended Support Release 153.0 ESR ++++++ create-tar.sh ++++++ --- /var/tmp/diff_new_pack.NGCM79/_old 2026-08-19 17:57:26.420102903 +0200 +++ /var/tmp/diff_new_pack.NGCM79/_new 2026-08-19 17:57:26.426103119 +0200 @@ -26,6 +26,8 @@ printf "%-40s: User forced skip (SKIP_LOCALES set)\n" "locales" fi + update_key_file + clean_up_old_tarballs } @@ -82,11 +84,13 @@ TB_LOCALE_TARBALL="$PRODUCT-$VERSION$VERSION_SUFFIX.strings_all.tar.zst" fi FTP_URL="https://ftp.mozilla.org/pub/$PRODUCT/releases/$VERSION$VERSION_SUFFIX/source" + KEY_FTP_URL="https://ftp.mozilla.org/pub/$PRODUCT/releases/$VERSION$VERSION_SUFFIX/KEY" FTP_CANDIDATES_BASE_URL="https://ftp.mozilla.org/pub/%s/candidates" LOCALES_URL="https://product-details.mozilla.org/1.0/l10n" FF_L10N_MONOREPO="https://github.com/mozilla-l10n/firefox-l10n" PRODUCT_URL="https://product-details.mozilla.org/1.0" ALREADY_EXTRACTED_LOCALES_FILE=0 + PARSED_CANDIDATES_URL="" } function get_ftp_candidates_url() { @@ -366,7 +370,8 @@ if ! wget --quiet --show-progress --progress=bar "$FTP_URL/$upstream_file"; then local CANDIDATE_TARBALL_LOCATION="" - CANDIDATE_TARBALL_LOCATION="$(printf "%s/%s/source/%s" "$(get_ftp_candidates_url "$PRODUCT" "$VERSION$VERSION_SUFFIX")" "$BUILD_ID" "$upstream_file" )" + PARSED_CANDIDATES_URL="$(printf "%s/%s" "$(get_ftp_candidates_url "$PRODUCT" "$VERSION$VERSION_SUFFIX")" "$BUILD_ID")" + CANDIDATE_TARBALL_LOCATION="$(printf "%s/source/%s" "$PARSED_CANDIDATES_URL" "$upstream_file" )" wget --quiet --show-progress --progress=bar "$CANDIDATE_TARBALL_LOCATION" fi } @@ -572,5 +577,32 @@ fi } +function update_key_file() { + if [ -e "mozilla.keyring" ]; then + local UPSTREAM_KEYFILE="" + if [ -z "$PARSED_CANDIDATES_URL" ]; then + local UPSTREAM_KEYFILE=$(curl --silent --fail "$KEY_FTP_URL"); + else + CANDIDATES_KEY_URL="$(printf "%s/KEY" "$PARSED_CANDIDATES_URL")" + local UPSTREAM_KEYFILE=$(curl --silent --fail "$CANDIDATES_KEY_URL"); + fi + if [ -z "$UPSTREAM_KEYFILE" ]; then + echo "Failed to get upstream keyfile. Skipping." + return + fi + diff -y --suppress-common-lines -d <(cat mozilla.keyring) <(echo "$UPSTREAM_KEYFILE") > /dev/null + local KEYRING_CHANGED=$? + echo "" + if [ $KEYRING_CHANGED -eq 1 ]; then + echo "Keyring changed. Updating it." + echo "$UPSTREAM_KEYFILE" > mozilla.keyring + else + echo "Keyring did not change." + fi + else + echo "No local keyring found. Skipping keyring-check." + fi +} + main "$@" ++++++ firefox-153.0esr.source.tar.xz -> firefox-153.1.0esr.source.tar.xz ++++++ /work/SRC/openSUSE:Factory/firefox-esr/firefox-153.0esr.source.tar.xz /work/SRC/openSUSE:Factory/.firefox-esr.new.1258/firefox-153.1.0esr.source.tar.xz differ: char 15, line 1 ++++++ firefox-branded-icons.patch ++++++ --- /var/tmp/diff_new_pack.NGCM79/_old 2026-08-19 17:57:26.474104840 +0200 +++ /var/tmp/diff_new_pack.NGCM79/_new 2026-08-19 17:57:26.478104984 +0200 @@ -2,15 +2,11 @@ # Parent e0751ad74e835e80041a61ea00c2a63bf6fbe2de # Parent 9309f1ac14b7173985576932c01874184be1dcf9 -diff --git a/browser/branding/branding-common.mozbuild b/browser/branding/branding-common.mozbuild ---- a/browser/branding/branding-common.mozbuild -+++ b/browser/branding/branding-common.mozbuild -@@ -26,12 +26,15 @@ def FirefoxBranding(): - "PrivateBrowsing_70.png", - "VisualElements_150.png", - "VisualElements_70.png", - ] - elif CONFIG["MOZ_WIDGET_TOOLKIT"] == "gtk": +Index: mozilla-esr153/browser/branding/branding-common.mozbuild +=================================================================== +--- mozilla-esr153.orig/browser/branding/branding-common.mozbuild ++++ mozilla-esr153/browser/branding/branding-common.mozbuild +@@ -29,6 +29,9 @@ def FirefoxBranding(): FINAL_TARGET_FILES.chrome.icons.default += [ "default128.png", "default16.png", @@ -20,16 +16,11 @@ "default32.png", "default48.png", "default64.png", - ] -diff --git a/browser/installer/package-manifest.in b/browser/installer/package-manifest.in ---- a/browser/installer/package-manifest.in -+++ b/browser/installer/package-manifest.in -@@ -221,20 +221,23 @@ - ; [Browser Chrome Files] - @RESPATH@/browser/chrome.manifest - @RESPATH@/browser/chrome/browser@JAREXT@ - @RESPATH@/browser/chrome/browser.manifest - @RESPATH@/chrome/toolkit@JAREXT@ +Index: mozilla-esr153/browser/installer/package-manifest.in +=================================================================== +--- mozilla-esr153.orig/browser/installer/package-manifest.in ++++ mozilla-esr153/browser/installer/package-manifest.in +@@ -236,10 +236,13 @@ @RESPATH@/chrome/toolkit.manifest #ifdef MOZ_GTK @RESPATH@/browser/chrome/icons/default/default16.png @@ -43,9 +34,4 @@ #endif ; [DevTools Startup Files] - @RESPATH@/browser/chrome/devtools-startup@JAREXT@ - @RESPATH@/browser/chrome/devtools-startup.manifest - - ; DevTools - @RESPATH@/browser/chrome/devtools@JAREXT@ ++++++ firefox-esr.changes.txt ++++++ --- /var/tmp/diff_new_pack.NGCM79/_old 2026-08-19 17:57:26.509106095 +0200 +++ /var/tmp/diff_new_pack.NGCM79/_new 2026-08-19 17:57:26.514106275 +0200 @@ -1,4 +1,186 @@ ------------------------------------------------------------------- +Wed Aug 19 11:20:04 UTC 2026 - Manfred Hollstein <[email protected]> + +- Disable ccache again; reasons remain the same as documented by + Dirk Müller in 2022. + +------------------------------------------------------------------- +Tue Aug 18 04:33:01 UTC 2026 - Manfred Hollstein <[email protected]> + +- Firefox Extended Support Release 153.1.0 ESR + * Fixed: Various security fixes. +- Mozilla Firefox ESR 153.1.0 + https://www.mozilla.org/security/advisories/mfsa2026-77 + MFSA 2026-77 (boo#1274867) + * CVE-2026-74934 (bmo#2050584) + Site isolation issue in the Graphics: CanvasWebGL component + * CVE-2026-74935 (bmo#2051013) + Privilege escalation in the DOM: Networking component + * CVE-2026-74936 (bmo#2052688) + Use-after-free in the JavaScript: WebAssembly component + * CVE-2026-74937 (bmo#2053337) + Use-after-free in the JavaScript: GC component + * CVE-2026-74938 (bmo#2053688) + Mitigation bypass in the JavaScript: GC component + * CVE-2026-74939 (bmo#2054416) + Privilege escalation in the DOM: Navigation component + * CVE-2026-74940 (bmo#2054842) + Use-after-free in the Graphics: Text component + * CVE-2026-74941 (bmo#2055056) + Privilege escalation in the Graphics: CanvasWebGL component + * CVE-2026-74942 (bmo#2056571) + Privilege escalation in the Remote Settings Client component + * CVE-2026-74943 (bmo#2057308) + Use-after-free in the Graphics: ImageLib component + * CVE-2026-74944 (bmo#2057778) + Use-after-free in the DOM: Core & HTML component + * CVE-2026-74945 (bmo#2057808) + Information disclosure in the Graphics: Text component + * CVE-2026-74946 (bmo#2059997) + Privilege escalation due to incorrect boundary conditions in + the Graphics: CanvasWebGL component + * CVE-2026-74947 (bmo#2060010) + Privilege escalation due to invalid pointer in the Graphics + component + * CVE-2026-74948 (bmo#2060106) + Information disclosure in the Graphics component + * CVE-2026-74949 (bmo#2060245) + Privilege escalation due to use-after-free in the Graphics: + Canvas2D component + * CVE-2026-74950 (bmo#1880253) + Privilege escalation in the Downloads API component + * CVE-2026-74953 (bmo#2022382) + Privilege escalation in the Networking: Cookies component + * CVE-2026-74954 (bmo#2025732) + Information disclosure due to side-channel in the Storage: + Cache API component + * CVE-2026-74955 (bmo#2029265) + Privilege escalation in the Request Handling component + * CVE-2026-74956 (bmo#2032406) + Same-origin policy bypass in the DOM: Service Workers + component + * CVE-2026-74957 (bmo#2041906) + Mitigation bypass in the Safe Browsing component + * CVE-2026-74958 (bmo#2045368) + Information disclosure in the WebRTC component + * CVE-2026-74959 (bmo#2047853) + Mitigation bypass in the Storage: Cache API component + * CVE-2026-74960 (bmo#2049148) + Site isolation issue in the WebExtensions component + * CVE-2026-74961 (bmo#2050380) + Side-channel in the Web Audio component + * CVE-2026-74962 (bmo#2050425) + Site isolation issue in the Networking: Cookies component + * CVE-2026-74963 (bmo#2050482) + Same-origin policy bypass in the Networking: Cookies + component + * CVE-2026-74964 (bmo#2053327) + Integer overflow in the Graphics component + * CVE-2026-74965 (bmo#2053455) + Privilege escalation in the Shell Integration component + * CVE-2026-74966 (bmo#2054776) + Information disclosure in the Form Autofill component + * CVE-2026-74967 (bmo#2055697) + Same-origin policy bypass in the Audio/Video: Playback + component + * CVE-2026-74968 (bmo#2055738) + Site isolation issue in the Graphics: WebRender component + * CVE-2026-74969 (bmo#2056065) + Use-after-free in the Layout: Text and Fonts component + * CVE-2026-74970 (bmo#2056558) + Site isolation issue in the Graphics component + * CVE-2026-74971 (bmo#2057204) + Information disclosure in the DOM: UI Events & Focus Handling + component + * CVE-2026-74972 (bmo#2059053) + Information disclosure in the DOM: Push Subscriptions + component + * CVE-2026-74973 (bmo#2060357) + Race condition, use-after-free in the Graphics component + * CVE-2026-74974 (bmo#2061794) + Same-origin policy bypass in the Graphics: ImageLib component + * CVE-2026-74976 (bmo#1952164) + JIT miscompilation in the JavaScript Engine: JIT component + * CVE-2026-74977 (bmo#2028440) + Integer overflow in the Graphics component + * CVE-2026-74978 (bmo#2036097) + Clickjacking issue in the Widget component + * CVE-2026-74979 (bmo#2045676) + Mitigation bypass in the Add-ons Manager component + * CVE-2026-74981 (bmo#2050480) + Site isolation issue in the Audio/Video: Web Codecs component + * CVE-2026-74982 (bmo#2051788) + Denial-of-service in the Widget component + * CVE-2026-74983 (bmo#2051897) + Mitigation bypass in the Data Loss Prevention component + * CVE-2026-74984 (bmo#2053670) + Race condition in the JavaScript Engine component + * CVE-2026-74985 (bmo#2059825) + Privilege escalation in the Enterprise Policies component + * CVE-2026-74986 (bmo#2060048) + Site isolation issue in the CSS Parsing and Computation + component + * CVE-2026-74987 (bmo#1500946, bmo#1788109, bmo#2045379, + bmo#2045380, bmo#2048797, bmo#2049339, bmo#2049393, + bmo#2050536, bmo#2053272, bmo#2053579, bmo#2053580, + bmo#2054662, bmo#2054665, bmo#2054673, bmo#2054785, + bmo#2057115, bmo#2057116, bmo#2057130, bmo#2057991, + bmo#2057995, bmo#2058002, bmo#2058008, bmo#2058032, + bmo#2058102, bmo#2058645, bmo#2058667, bmo#2059424) + Internally found bugs fixed in Firefox ESR 140.14, Firefox + ESR 153.1 and Firefox 154 + * CVE-2026-74988 (bmo#2018164, bmo#2045404, bmo#2045507, + bmo#2045711, bmo#2045796, bmo#2046734, bmo#2051424, + bmo#2052403, bmo#2053153, bmo#2053174, bmo#2053262, + bmo#2054643, bmo#2054667, bmo#2054671, bmo#2054674, + bmo#2054687, bmo#2054717, bmo#2054721, bmo#2054761, + bmo#2054763, bmo#2054787, bmo#2055676, bmo#2056779, + bmo#2056781, bmo#2057994, bmo#2058094, bmo#2058611, + bmo#2058615, bmo#2058616, bmo#2058629, bmo#2059019, + bmo#2059138, bmo#2059198, bmo#2059224, bmo#2061315) + Internally found bugs fixed in Firefox ESR 153.1 and Firefox + 154 + * CVE-2026-74990 (bmo#2045762, bmo#2045774, bmo#2048490, + bmo#2050864, bmo#2052401, bmo#2053159, bmo#2053260, + bmo#2053261, bmo#2053582, bmo#2053599, bmo#2053607, + bmo#2053608, bmo#2053853, bmo#2054626, bmo#2054627, + bmo#2054635, bmo#2054677, bmo#2054740, bmo#2054832, + bmo#2056792, bmo#2057098, bmo#2057100, bmo#2057101, + bmo#2057103, bmo#2057117, bmo#2057118, bmo#2058048, + bmo#2058049, bmo#2058208, bmo#2058622, bmo#2058623, + bmo#2058665, bmo#2058666, bmo#2059121, bmo#2059164, + bmo#2059188) + Internally found bugs fixed in Firefox ESR 115.39, Firefox + ESR 140.14, Firefox ESR 153.1 and Firefox 154 +- Rebase mozilla-libavcodec58_91.patch + +------------------------------------------------------------------- +Fri Aug 14 15:32:48 UTC 2026 - Manfred Hollstein <[email protected]> + +- Sync files with the 153esr branch in github at + <https://github.com/openSUSE/firefox-maintenance.git>: + * Update mozilla.keyring + * Add patches from the 153esr branch: + - fix-missing-libfreebl3-symbols.patch + - fix-skia-musttail.patch + - fix-slfo-build.patch + - mozilla-bmo1746799.patch + - mozilla-fix-sle12-aarch64-missing-sve.patch + - mozilla-fix-sle12-ppc64le-webrtc-include.patch + * Update patches from the 153esr branch: + - firefox-branded-icons.patch + - mozilla-aarch64-startup-crash.patch + - mozilla-bmo1504834-part1.patch + - mozilla-bmo849632.patch + - mozilla-pgo.patch + - mozilla-reduce-rust-debuginfo.patch + - mozilla-s390-context.patch + - mozilla-sandbox-lto.patch + - mozilla-silence-no-return-type.patch +- Update create-tar.sh from + <https://github.com/openSUSE/firefox-scripts.git> + +------------------------------------------------------------------- Tue Jul 21 12:56:46 UTC 2026 - Manfred Hollstein <[email protected]> - Firefox Extended Support Release 153.0 ESR ++++++ fix-missing-libfreebl3-symbols.patch ++++++ Index: firefox-153.0/build/moz.configure/nss.configure =================================================================== --- firefox-153.0.orig/build/moz.configure/nss.configure +++ firefox-153.0/build/moz.configure/nss.configure @@ -38,13 +38,18 @@ nss_pkg = pkg_check_modules( set_config("MOZ_SYSTEM_NSS", True, when="--with-system-nss") -@depends(nss_pkg, build_environment) -def nss_config(nss_pkg, build_env): +@depends(nss_pkg, build_environment, target) +def nss_config(nss_pkg, build_env, target): cflags = ["-I%s" % os.path.join(build_env.dist, "include", "nss")] libs = None if nss_pkg: cflags = list(nss_pkg.cflags) + cflags - libs = nss_pkg.libs + libs = list(nss_pkg.libs) + + if target.kernel in ("Linux", "FreeBSD", "OpenBSD", "NetBSD", "SunOS"): + if "-lfreebl3" not in libs: + libs.append("-lfreebl3") + return namespace(cflags=cflags, libs=libs) ++++++ fix-skia-musttail.patch ++++++ Index: firefox-153.0/gfx/skia/skia/modules/skcms/src/skcms_internals.h =================================================================== --- firefox-153.0.orig/gfx/skia/skia/modules/skcms/src/skcms_internals.h +++ firefox-153.0/gfx/skia/skia/modules/skcms/src/skcms_internals.h @@ -59,7 +59,8 @@ extern "C" { #elif defined(__GNUC__) && !defined(SKCMS_HAS_MUSTTAIL) // GCC on riscv64 does not support our tail call functions // cf. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=121784 - #if __has_cpp_attribute(clang::musttail) && !defined(__riscv) + // SUSE: Same for s390x + #if __has_cpp_attribute(clang::musttail) && !defined(__riscv) && !defined(__s390x__) #define SKCMS_HAS_MUSTTAIL 1 #else #define SKCMS_HAS_MUSTTAIL 0 ++++++ fix-slfo-build.patch ++++++ Index: firefox-153.0/config/gcc_hidden.h =================================================================== --- firefox-153.0.orig/config/gcc_hidden.h +++ firefox-153.0/config/gcc_hidden.h @@ -2,5 +2,14 @@ * 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/. */ +#if defined(__cplusplus) && defined(__linux__) +// Workaround for newer GCC toolchains on older glibc bases +// This stubs the missing glibc symbol to 0 (forcing safe multi-threaded paths) +// and satisfies the local linker requirements. +extern "C" { + __attribute__((visibility("hidden"))) inline char __libc_single_threaded = 0; +} +#endif + /* Begin all files as hidden visibility */ #pragma GCC visibility push(hidden) ++++++ l10n-153.0esr.tar.xz -> l10n-153.1.0esr.tar.xz ++++++ /work/SRC/openSUSE:Factory/firefox-esr/l10n-153.0esr.tar.xz /work/SRC/openSUSE:Factory/.firefox-esr.new.1258/l10n-153.1.0esr.tar.xz differ: char 15, line 1 ++++++ mozilla-aarch64-startup-crash.patch ++++++ --- /var/tmp/diff_new_pack.NGCM79/_old 2026-08-19 17:57:26.642110866 +0200 +++ /var/tmp/diff_new_pack.NGCM79/_new 2026-08-19 17:57:26.648111081 +0200 @@ -7,15 +7,11 @@ bsc#991344 - Rpi3: Firefox crashes after a few seconds of usage bmo#1302554 - ARM/AARCH64: Firefox crashes on NULL nsIChannel** result pointer in nsIOService::NewChannelFromURIWithProxyFlagsInternal() -diff --git a/netwerk/base/nsIOService.cpp b/netwerk/base/nsIOService.cpp ---- a/netwerk/base/nsIOService.cpp -+++ b/netwerk/base/nsIOService.cpp -@@ -1227,17 +1227,24 @@ nsresult nsIOService::NewChannelFromURIW - return NS_ERROR_UNEXPECTED; - } - - // If we're sandboxed, make sure to clear any owner the channel - // might already have. +Index: mozilla-esr153/netwerk/base/nsIOService.cpp +=================================================================== +--- mozilla-esr153.orig/netwerk/base/nsIOService.cpp ++++ mozilla-esr153/netwerk/base/nsIOService.cpp +@@ -1242,7 +1242,14 @@ nsresult nsIOService::NewChannelFromURIW if (loadInfo->GetLoadingSandboxed()) { channel->SetOwner(nullptr); } @@ -30,9 +26,4 @@ return NS_OK; } - NS_IMETHODIMP - nsIOService::NewChannelFromURIWithProxyFlags( - nsIURI* aURI, nsIURI* aProxyURI, uint32_t aProxyFlags, - nsINode* aLoadingNode, nsIPrincipal* aLoadingPrincipal, - nsIPrincipal* aTriggeringPrincipal, uint32_t aSecurityFlags, ++++++ mozilla-bmo1504834-part1.patch ++++++ --- /var/tmp/diff_new_pack.NGCM79/_old 2026-08-19 17:57:26.675112049 +0200 +++ /var/tmp/diff_new_pack.NGCM79/_new 2026-08-19 17:57:26.678112157 +0200 @@ -2,15 +2,11 @@ # Parent ed92e2fa6996864cd05177e2d4012c2aa867bf54 Taken from https://bugzilla.mozilla.org/show_bug.cgi?id=1504834 -diff --git a/gfx/2d/DrawTargetSkia.cpp b/gfx/2d/DrawTargetSkia.cpp ---- a/gfx/2d/DrawTargetSkia.cpp -+++ b/gfx/2d/DrawTargetSkia.cpp -@@ -162,17 +162,18 @@ static IntRect CalculateSurfaceBounds(co - if (!sampledBounds.ToIntRect(&bounds)) { - return surfaceBounds; - } - - return surfaceBounds.Intersect(bounds); +Index: firefox-153.0/gfx/2d/DrawTargetSkia.cpp +=================================================================== +--- firefox-153.0.orig/gfx/2d/DrawTargetSkia.cpp ++++ firefox-153.0/gfx/2d/DrawTargetSkia.cpp +@@ -175,7 +175,8 @@ static IntRect CalculateSurfaceBounds(co } static const int kARGBAlphaOffset = @@ -20,20 +16,11 @@ static bool VerifyRGBXFormat(uint8_t* aData, const IntSize& aSize, const int32_t aStride, SurfaceFormat aFormat) { - if (aFormat != SurfaceFormat::B8G8R8X8 || aSize.IsEmpty()) { - return true; - } - // We should've initialized the data to be opaque already - // On debug builds, verify that this is actually true. -diff --git a/gfx/skia/skia/modules/skcms/skcms.cc b/gfx/skia/skia/modules/skcms/skcms.cc ---- a/gfx/skia/skia/modules/skcms/skcms.cc -+++ b/gfx/skia/skia/modules/skcms/skcms.cc -@@ -26,16 +26,18 @@ - // it'd be a lot slower. But we want all those headers included so we - // can use their features after runtime checks later. - #include <smmintrin.h> - #include <avxintrin.h> - #include <avx2intrin.h> +Index: firefox-153.0/gfx/skia/skia/modules/skcms/skcms.cc +=================================================================== +--- firefox-153.0.orig/gfx/skia/skia/modules/skcms/skcms.cc ++++ firefox-153.0/gfx/skia/skia/modules/skcms/skcms.cc +@@ -31,6 +31,8 @@ #include <avx512fintrin.h> #include <avx512dqintrin.h> #endif @@ -42,17 +29,7 @@ #endif using namespace skcms_private; - - static bool sAllowRuntimeCPUDetection = true; - - void skcms_DisableRuntimeCPUDetection() { - sAllowRuntimeCPUDetection = false; -@@ -374,30 +376,38 @@ enum { - skcms_Signature_sf32 = 0x73663332, - // XYZ is also a PCS signature, so it's defined in skcms.h - // skcms_Signature_XYZ = 0x58595A20, - }; - +@@ -379,20 +381,28 @@ enum { static uint16_t read_big_u16(const uint8_t* ptr) { uint16_t be; memcpy(&be, ptr, sizeof(be)); @@ -87,9 +64,23 @@ #endif } - static int32_t read_big_i32(const uint8_t* ptr) { - return (int32_t)read_big_u32(ptr); - } +Index: firefox-153.0/gfx/2d/Types.h +=================================================================== +--- firefox-153.0.orig/gfx/2d/Types.h ++++ firefox-153.0/gfx/2d/Types.h +@@ -109,12 +109,8 @@ enum class SurfaceFormat : int8_t { + // The following values are endian-independent synonyms. The _UINT32 suffix + // indicates that the name reflects the layout when viewed as a uint32_t + // value. +- A8R8G8B8_UINT32 = std::endian::native == std::endian::little +- ? B8G8R8A8 +- : A8R8G8B8, // 0xAARRGGBB +- X8R8G8B8_UINT32 = std::endian::native == std::endian::little +- ? B8G8R8X8 +- : X8R8G8B8, // 0x00RRGGBB ++ A8R8G8B8_UINT32 = B8G8R8A8, // 0xAARRGGBB ++ X8R8G8B8_UINT32 = B8G8R8X8, // 0x00RRGGBB - static float read_big_fixed(const uint8_t* ptr) { + // The following values are OS and endian-independent synonyms. + // ++++++ mozilla-bmo1746799.patch ++++++ >From 535dc3c97fd19a30a329a188786998ae00cdf017 Mon Sep 17 00:00:00 2001 From: andrew <[email protected]> Date: Thu, 23 Dec 2021 16:18:30 +0000 Subject: [PATCH] Map linearly from cubeb volume to pa volume Fixes incorrect volume mapping. Rebased to current SUSE sources and updated checksums Wed Sep 04 00:00:00 2024 Index: firefox-153.0/third_party/rust/cubeb-pulse/.cargo-checksum.json =================================================================== --- firefox-153.0.orig/third_party/rust/cubeb-pulse/.cargo-checksum.json +++ firefox-153.0/third_party/rust/cubeb-pulse/.cargo-checksum.json @@ -1 +1 @@ -{"files":{".editorconfig":"bf047bd1da10cabb99eea666d1e57c321eba4716dccb3e4ed0e2c5fe3ca53858",".github/workflows/build.yml":"c91e5b2eeb7a70d9a03164c47e7e143a6eecb0f2b8cca65ae7c9a045e04f5933","AUTHORS":"0e0ac930a68ce2f6b876126b195add177f0d3886facb9260f4d9b69f1988f0cc","Cargo.lock":"b3c23055437dea3d869de506d9cebdee22c346dbeac4ec639357e0177088bcb1","Cargo.toml":"90192b9fd4ce4b7eb699d0d68dbada1f8f4848e887d758e8485bf64aa0a7139e","LICENSE":"44c6b5ae5ec3fe2fbc608b00e6f4896f4d2d5c7e525fcbaa3eaa3cf2f3d5a983","README.md":"0079450bb4b013bac065ed1750851e461a3710ebad1f323817da1cb82db0bc4f","src/backend/context.rs":"269f6963e22baacad11b0956bd8e6d28d298a59982b5e3883777e127cd8a6f9d","src/backend/cork_state.rs":"4a0f1afc7d9f333dac89218cc56d7d32fbffb487cd48c1c9a4e03d79cb3b5e28","src/backend/intern.rs":"11ca424e4eb77f8eb9fd5a6717d1e791facf9743156a8534f0016fcf64d57b0f","src/backend/mod.rs":"dfb30ec497d6215e4535e936fea8fe3a407ef24dc1cec43b52c0ffa923d9229c","src/backend/stream.rs":"d52658af1a5446d66d534e5 f1a4b7587efa71b41213250133109ea9c31a6c8c1","src/capi.rs":"f5d3e21b64dc401a86ed4de8f5cc339fda5fe69720566e749f6bb71e50767fb2","src/lib.rs":"35b84c71bd564f9571a166440087e5ee737066f3d35ac7417552cedd08b2933d"},"package":null} \ No newline at end of file +{"files":{".editorconfig":"bf047bd1da10cabb99eea666d1e57c321eba4716dccb3e4ed0e2c5fe3ca53858",".github/workflows/build.yml":"c91e5b2eeb7a70d9a03164c47e7e143a6eecb0f2b8cca65ae7c9a045e04f5933","AUTHORS":"0e0ac930a68ce2f6b876126b195add177f0d3886facb9260f4d9b69f1988f0cc","Cargo.lock":"b3c23055437dea3d869de506d9cebdee22c346dbeac4ec639357e0177088bcb1","Cargo.toml":"90192b9fd4ce4b7eb699d0d68dbada1f8f4848e887d758e8485bf64aa0a7139e","LICENSE":"44c6b5ae5ec3fe2fbc608b00e6f4896f4d2d5c7e525fcbaa3eaa3cf2f3d5a983","README.md":"0079450bb4b013bac065ed1750851e461a3710ebad1f323817da1cb82db0bc4f","src/backend/context.rs":"269f6963e22baacad11b0956bd8e6d28d298a59982b5e3883777e127cd8a6f9d","src/backend/cork_state.rs":"4a0f1afc7d9f333dac89218cc56d7d32fbffb487cd48c1c9a4e03d79cb3b5e28","src/backend/intern.rs":"11ca424e4eb77f8eb9fd5a6717d1e791facf9743156a8534f0016fcf64d57b0f","src/backend/mod.rs":"dfb30ec497d6215e4535e936fea8fe3a407ef24dc1cec43b52c0ffa923d9229c","src/backend/stream.rs":"55336153bc2f0c163e7f4f6 9a9cdc6cb1c7fb3553c20dc879462f40c336bbc05","src/capi.rs":"f5d3e21b64dc401a86ed4de8f5cc339fda5fe69720566e749f6bb71e50767fb2","src/lib.rs":"35b84c71bd564f9571a166440087e5ee737066f3d35ac7417552cedd08b2933d"},"package":null} Index: firefox-153.0/third_party/rust/cubeb-pulse/src/backend/stream.rs =================================================================== --- firefox-153.0.orig/third_party/rust/cubeb-pulse/src/backend/stream.rs +++ firefox-153.0/third_party/rust/cubeb-pulse/src/backend/stream.rs @@ -791,8 +791,8 @@ impl StreamOps for PulseStream<'_> { self.volume = volume; } else { let channels = stm.get_sample_spec().channels; - let vol = pulse::sw_volume_from_linear(f64::from(volume)); - cvol.set(u32::from(channels), vol); + let vol = volume * (PA_VOLUME_NORM as f32); + cvol.set(u32::from(channels), vol as pa_volume_t); let index = stm.get_index(); Index: firefox-153.0/third_party/rust/pulse-ffi/.cargo-checksum.json =================================================================== --- firefox-153.0.orig/third_party/rust/pulse-ffi/.cargo-checksum.json +++ firefox-153.0/third_party/rust/pulse-ffi/.cargo-checksum.json @@ -1 +1 @@ -{"files":{"Cargo.toml":"2ee1c8a3e6bfab7306ad4ac960c20266ede813ec951273e076b5c1c1e9a72b1e","src/ffi_funcs.rs":"a16646c5e7c49e94b907a7a404cfcadf3007688005c689cca936f0c2ee2e28e6","src/ffi_types.rs":"2ca56bc3638a40d331e53117a5dd175d0a6e102b1e0eccb9c2adc565c6861a33","src/lib.rs":"6aff308de11954a067d0f6ef95bf3126aabb6d928a5191e91d9a38ebadba91c2"},"package":null} \ No newline at end of file +{"files":{"Cargo.toml":"2ee1c8a3e6bfab7306ad4ac960c20266ede813ec951273e076b5c1c1e9a72b1e","src/ffi_funcs.rs":"a16646c5e7c49e94b907a7a404cfcadf3007688005c689cca936f0c2ee2e28e6","src/ffi_types.rs":"f39a27712b17256583331f7ce5722413d0c7b51d73d8def8f50e839e23dfb411","src/lib.rs":"6aff308de11954a067d0f6ef95bf3126aabb6d928a5191e91d9a38ebadba91c2"},"package":null} Index: firefox-153.0/third_party/rust/pulse-ffi/src/ffi_types.rs =================================================================== --- firefox-153.0.orig/third_party/rust/pulse-ffi/src/ffi_types.rs +++ firefox-153.0/third_party/rust/pulse-ffi/src/ffi_types.rs @@ -22,6 +22,11 @@ pub const PA_SAMPLE_MAX: c_int = 13; pub const PA_SAMPLE_INVALID: c_int = -1; pub type pa_sample_format_t = c_int; +pub const PA_VOLUME_MUTED: c_uint = 0; +pub const PA_VOLUME_NORM: c_uint = 0x10000; +pub const PA_VOLUME_MAX: c_uint = 0x7fffffff; + + #[repr(C)] #[derive(Copy, Clone, Debug)] pub struct Struct_pa_sample_spec { ++++++ mozilla-bmo849632.patch ++++++ --- /var/tmp/diff_new_pack.NGCM79/_old 2026-08-19 17:57:26.721113699 +0200 +++ /var/tmp/diff_new_pack.NGCM79/_new 2026-08-19 17:57:26.724113807 +0200 @@ -6,10 +6,10 @@ So we swizzle the output of webgl after reading it from readpixels() Note: This does not fix all webGL sites, but is a step in the right direction -Index: firefox-151.0.1/gfx/gl/GLContext.h +Index: mozilla-esr153/gfx/gl/GLContext.h =================================================================== ---- firefox-151.0.1.orig/gfx/gl/GLContext.h -+++ firefox-151.0.1/gfx/gl/GLContext.h +--- mozilla-esr153.orig/gfx/gl/GLContext.h ++++ mozilla-esr153/gfx/gl/GLContext.h @@ -24,6 +24,7 @@ # define MOZ_GL_DEBUG_BUILD 1 #endif @@ -18,7 +18,7 @@ #include "mozilla/IntegerRange.h" #include "mozilla/RefPtr.h" #include "mozilla/UniquePtr.h" -@@ -1621,6 +1622,13 @@ class GLContext : public GenericAtomicRe +@@ -1624,6 +1625,13 @@ class GLContext : public GenericAtomicRe BEFORE_GL_CALL; mSymbols.fReadPixels(x, y, width, height, format, type, pixels); OnSyncCall(); ++++++ mozilla-fix-sle12-aarch64-missing-sve.patch ++++++ Index: firefox-153.0/third_party/xsimd/include/xsimd/config/xsimd_cpu_features_arm.hpp =================================================================== --- firefox-153.0.orig/third_party/xsimd/include/xsimd/config/xsimd_cpu_features_arm.hpp +++ firefox-153.0/third_party/xsimd/include/xsimd/config/xsimd_cpu_features_arm.hpp @@ -99,7 +99,7 @@ namespace xsimd inline bool arm_cpu_features::sve() const noexcept { -#if XSIMD_TARGET_ARM64 && XSIMD_HAVE_LINUX_GETAUXVAL +#if HWCAP_SVE && XSIMD_TARGET_ARM64 && XSIMD_HAVE_LINUX_GETAUXVAL return hwcap().has_feature(HWCAP_SVE); #else return false; ++++++ mozilla-fix-sle12-ppc64le-webrtc-include.patch ++++++ Index: firefox-153.0/third_party/libwebrtc/rtc_base/platform_thread_types.cc =================================================================== --- firefox-153.0.orig/third_party/libwebrtc/rtc_base/platform_thread_types.cc +++ firefox-153.0/third_party/libwebrtc/rtc_base/platform_thread_types.cc @@ -17,8 +17,14 @@ #include <sys/syscall.h> #if !defined(WEBRTC_ARCH_ARM) && !defined(WEBRTC_ARCH_ARM64) +#if defined(__has_include) +#if __has_include(<asm/unistd_64.h>) #include <asm/unistd_64.h> #endif +#else +#include <asm/unistd_64.h> +#endif +#endif #endif #if defined(WEBRTC_WIN) ++++++ mozilla-libavcodec58_91.patch ++++++ --- /var/tmp/diff_new_pack.NGCM79/_old 2026-08-19 17:57:26.772115528 +0200 +++ /var/tmp/diff_new_pack.NGCM79/_new 2026-08-19 17:57:26.776115672 +0200 @@ -4,12 +4,11 @@ diff --git a/dom/media/platforms/ffmpeg/FFmpegRuntimeLinker.cpp b/dom/media/platforms/ffmpeg/FFmpegRuntimeLinker.cpp --- a/dom/media/platforms/ffmpeg/FFmpegRuntimeLinker.cpp +++ b/dom/media/platforms/ffmpeg/FFmpegRuntimeLinker.cpp -@@ -49,16 +49,18 @@ static const char* sLibs[] = { - #elif defined(XP_OPENBSD) - "libavcodec.so", // OpenBSD port controls the major/minor library version +@@ -52,14 +52,16 @@ static const char* sLibs[] = { // of ffmpeg and update it regulary on ABI/API changes #else "libavcodec.so." FFMPEG_MAX_MAJOR_VERSION_STR(FFMPEG_MAX_MAJOR_VERSION), + "libavcodec.so.62", "libavcodec.so.61", "libavcodec.so.60", "libavcodec.so.59", @@ -22,5 +21,4 @@ "libavcodec.so.57", "libavcodec.so.56", "libavcodec.so.55", - "libavcodec.so.54", ++++++ mozilla-pgo.patch ++++++ --- /var/tmp/diff_new_pack.NGCM79/_old 2026-08-19 17:57:26.793116281 +0200 +++ /var/tmp/diff_new_pack.NGCM79/_new 2026-08-19 17:57:26.796116389 +0200 @@ -2,15 +2,11 @@ # User Wolfgang Rosenauer <[email protected]> # Parent 73147e14b378957cdb8516125df34111d2699fe9 -diff --git a/build/moz.configure/lto-pgo.configure b/build/moz.configure/lto-pgo.configure ---- a/build/moz.configure/lto-pgo.configure -+++ b/build/moz.configure/lto-pgo.configure -@@ -89,22 +89,26 @@ def pgo_profile_path(path, pgo_use, prof - return path[0] - - - set_config("PGO_PROFILE_PATH", pgo_profile_path) - +Index: mozilla-esr153/build/moz.configure/lto-pgo.configure +=================================================================== +--- mozilla-esr153.orig/build/moz.configure/lto-pgo.configure ++++ mozilla-esr153/build/moz.configure/lto-pgo.configure +@@ -94,12 +94,16 @@ set_config("PGO_PROFILE_PATH", pgo_profi @depends( "--enable-profile-use", @@ -28,17 +24,7 @@ if not profile_use: return None - if not profdata_order: - return None - - topobjdir = build_env.topobjdir - -@@ -138,17 +142,17 @@ def pgo_flags( - target_is_windows, - pgo_temporal, - orderfile, - ): - if compiler.type == "gcc": +@@ -143,7 +147,7 @@ def pgo_flags( return namespace( gen_cflags=["-fprofile-generate"], gen_ldflags=["-fprofile-generate"], @@ -47,17 +33,7 @@ use_ldflags=["-fprofile-use"], ) - if compiler.type in ("clang-cl", "clang"): - prefix = "" - if compiler.type == "clang-cl": - prefix = "/clang:" - gen_ldflags = None -@@ -352,34 +356,34 @@ def lto( - "configure." - ) - - if c_compiler.type == "clang": - if "full" in values: +@@ -357,8 +361,8 @@ def lto( cflags.append("-flto") ldflags.append("-flto") else: @@ -68,15 +44,7 @@ if target.os == "Android" and "cross" in values: # Work around https://github.com/rust-lang/rust/issues/90088 - # by enabling the highest level of SSE the rust targets default - # to. - # https://github.com/rust-lang/rust/blob/bdfcb88e8b6203ccb46a2fb6649979b773efc8ac/compiler/rustc_target/src/spec/i686_linux_android.rs#L13 - # https://github.com/rust-lang/rust/blob/8d1083e319841624f64400e1524805a40d725439/compiler/rustc_target/src/spec/x86_64_linux_android.rs#L7 - if target.cpu == "x86": - ldflags.append("-Wl,-plugin-opt=-mattr=+ssse3") - elif target.cpu == "x86_64": - ldflags.append("-Wl,-plugin-opt=-mattr=+sse4.2") - elif c_compiler.type == "clang-cl": +@@ -374,7 +378,7 @@ def lto( if "full" in values: cflags.append("-flto") else: @@ -85,20 +53,11 @@ # With clang-cl, -flto can only be used with -c or -fuse-ld=lld. # AC_TRY_LINKs during configure don't have -c, so pass -fuse-ld=lld. cflags.append("-fuse-ld=lld") - - # Explicitly set the CPU to optimize for so the linker doesn't - # choose a poor default. Rust compilation by default uses the - # pentium4 CPU on x86: - # -diff --git a/build/pgo/profileserver.py b/build/pgo/profileserver.py ---- a/build/pgo/profileserver.py -+++ b/build/pgo/profileserver.py -@@ -5,17 +5,17 @@ - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - - import glob - import os - import subprocess +Index: mozilla-esr153/build/pgo/profileserver.py +=================================================================== +--- mozilla-esr153.orig/build/pgo/profileserver.py ++++ mozilla-esr153/build/pgo/profileserver.py +@@ -10,7 +10,7 @@ import subprocess import sys import mozcrash @@ -107,17 +66,7 @@ from mozfile import TemporaryDirectory, json from mozhttpd import MozHttpd from mozprofile import FirefoxProfile, Preferences - from mozprofile.permissions import ServerLocations - from mozrunner import CLI, FirefoxRunner - - PORT = 8888 - -@@ -134,19 +134,32 @@ if __name__ == "__main__": - docroot=js3_dir, - ) - js3_httpd.start(block=False) - print("started JS3 server on port 8001") - +@@ -139,9 +139,22 @@ if __name__ == "__main__": locations = ServerLocations() locations.add_host(host="127.0.0.1", port=PORT, options="primary,privileged") @@ -143,17 +92,7 @@ with TemporaryDirectory() as profilePath: # TODO: refactor this into mozprofile - profile_data_dir = os.path.join(build.topsrcdir, "testing", "profiles") - with open(os.path.join(profile_data_dir, "profiles.json")) as fh: - base_profiles = json.load(fh)["profileserver"] - - prefpaths = [ -@@ -273,16 +286,20 @@ if __name__ == "__main__": - - # Try to move the crash reports to the artifacts even if Firefox appears - # to exit successfully, in case there's a crash that doesn't set the - # return code to non-zero for some reason. - if get_crashreports(profilePath, name="Firefox exited successfully?") != 0: +@@ -278,6 +291,10 @@ if __name__ == "__main__": print("Firefox exited successfully, but produced a crashreport") sys.exit(1) @@ -164,18 +103,11 @@ llvm_profdata = env.get("LLVM_PROFDATA") if llvm_profdata: profraw_files = glob.glob("*.profraw") - if not profraw_files: - print( - "Could not find profraw files in the current directory: %s" - % os.getcwd() - ) -diff --git a/build/unix/mozconfig.unix b/build/unix/mozconfig.unix ---- a/build/unix/mozconfig.unix -+++ b/build/unix/mozconfig.unix -@@ -1,14 +1,23 @@ - . "$topsrcdir/build/mozconfig.common" - - if [ -n "$FORCE_GCC" ]; then +Index: mozilla-esr153/build/unix/mozconfig.unix +=================================================================== +--- mozilla-esr153.orig/build/unix/mozconfig.unix ++++ mozilla-esr153/build/unix/mozconfig.unix +@@ -4,6 +4,15 @@ if [ -n "$FORCE_GCC" ]; then CC="$MOZ_FETCHES_DIR/gcc/bin/gcc" CXX="$MOZ_FETCHES_DIR/gcc/bin/g++" @@ -191,34 +123,21 @@ # We want to make sure we use binutils and other binaries in the tooltool # package. mk_add_options "export PATH=$MOZ_FETCHES_DIR/gcc/bin:$MOZ_FETCHES_DIR/binutils/bin:$PATH" - else - # For some builds we don't want to have Clang based static-analysis activated - if [ -z "$DISABLE_CLANG_PLUGIN" ]; then - export ENABLE_CLANG_PLUGIN=1 - fi -diff --git a/extensions/spellcheck/src/moz.build b/extensions/spellcheck/src/moz.build ---- a/extensions/spellcheck/src/moz.build -+++ b/extensions/spellcheck/src/moz.build -@@ -19,8 +19,10 @@ FINAL_LIBRARY = "xul" - - LOCAL_INCLUDES += [ - "../ipc", - ] - EXPORTS.mozilla += [ +Index: mozilla-esr153/extensions/spellcheck/src/moz.build +=================================================================== +--- mozilla-esr153.orig/extensions/spellcheck/src/moz.build ++++ mozilla-esr153/extensions/spellcheck/src/moz.build +@@ -24,3 +24,5 @@ EXPORTS.mozilla += [ "mozInlineSpellChecker.h", "mozSpellChecker.h", ] + +CXXFLAGS += ['-fno-devirtualize'] -diff --git a/toolkit/components/terminator/nsTerminator.cpp b/toolkit/components/terminator/nsTerminator.cpp ---- a/toolkit/components/terminator/nsTerminator.cpp -+++ b/toolkit/components/terminator/nsTerminator.cpp -@@ -333,16 +333,21 @@ void nsTerminator::StartWatchdog() { - // Defend against overflow - crashAfterMS = INT32_MAX; - } else { - crashAfterMS *= scaleUp; - } +Index: mozilla-esr153/toolkit/components/terminator/nsTerminator.cpp +=================================================================== +--- mozilla-esr153.orig/toolkit/components/terminator/nsTerminator.cpp ++++ mozilla-esr153/toolkit/components/terminator/nsTerminator.cpp +@@ -392,6 +392,11 @@ void nsTerminator::StartWatchdog() { } #endif @@ -230,9 +149,4 @@ UniquePtr<Options> options(new Options()); // Guarantee that crashAfterTicks is non-zero options->crashAfterTicks = std::max(1, crashAfterMS / HEARTBEAT_INTERVAL_MS); - - DebugOnly<PRThread*> watchdogThread = - CreateSystemThread(RunWatchdog, options.release()); - MOZ_ASSERT(watchdogThread); - } ++++++ mozilla-reduce-rust-debuginfo.patch ++++++ --- /var/tmp/diff_new_pack.NGCM79/_old 2026-08-19 17:57:26.809116855 +0200 +++ /var/tmp/diff_new_pack.NGCM79/_new 2026-08-19 17:57:26.811116927 +0200 @@ -1,10 +1,11 @@ # HG changeset patch # Parent 135d931b3e674a670473f69f8c079e741ac63643 -diff --git a/build/moz.configure/rust.configure b/build/moz.configure/rust.configure ---- a/build/moz.configure/rust.configure -+++ b/build/moz.configure/rust.configure -@@ -668,7 +668,7 @@ def rust_compile_flags( +Index: mozilla-esr153/build/moz.configure/rust.configure +=================================================================== +--- mozilla-esr153.orig/build/moz.configure/rust.configure ++++ mozilla-esr153/build/moz.configure/rust.configure +@@ -676,7 +676,7 @@ def rust_compile_flags( debug_assertions = False if debug_symbols: ++++++ mozilla-s390-context.patch ++++++ --- /var/tmp/diff_new_pack.NGCM79/_old 2026-08-19 17:57:26.825117429 +0200 +++ /var/tmp/diff_new_pack.NGCM79/_new 2026-08-19 17:57:26.828117537 +0200 @@ -6,10 +6,11 @@ # Parent 783ceb006fcdabe5ad23bd561362e721c7ed5f8c [mq]: mozilla-s390-context.patch -diff --git a/js/src/wasm/WasmSignalHandlers.cpp b/js/src/wasm/WasmSignalHandlers.cpp ---- a/js/src/wasm/WasmSignalHandlers.cpp -+++ b/js/src/wasm/WasmSignalHandlers.cpp -@@ -174,6 +174,10 @@ using mozilla::DebugOnly; +Index: mozilla-esr153/js/src/wasm/WasmSignalHandlers.cpp +=================================================================== +--- mozilla-esr153.orig/js/src/wasm/WasmSignalHandlers.cpp ++++ mozilla-esr153/js/src/wasm/WasmSignalHandlers.cpp +@@ -176,6 +176,10 @@ using namespace js::wasm; # define FP_sig(p) ((p)->uc_mcontext.gregs[REG_FPRS]) # define SP_sig(p) ((p)->uc_mcontext.gregs[REG_SP]) # endif @@ -20,7 +21,7 @@ # elif defined(__NetBSD__) # define EIP_sig(p) ((p)->uc_mcontext.__gregs[_REG_EIP]) # define EBP_sig(p) ((p)->uc_mcontext.__gregs[_REG_EBP]) -@@ -416,6 +420,10 @@ struct macos_aarch64_context { +@@ -418,6 +422,10 @@ struct macos_aarch64_context { # define FP_sig(p) RFP_sig(p) # define SP_sig(p) R03_sig(p) # define LR_sig(p) RRA_sig(p) ++++++ mozilla-sandbox-lto.patch ++++++ --- /var/tmp/diff_new_pack.NGCM79/_old 2026-08-19 17:57:26.843118075 +0200 +++ /var/tmp/diff_new_pack.NGCM79/_new 2026-08-19 17:57:26.846118182 +0200 @@ -1,7 +1,8 @@ -diff -up firefox-84.0/security/sandbox/linux/moz.build.1516803 firefox-84.0/security/sandbox/linux/moz.build ---- firefox-84.0/security/sandbox/linux/moz.build.1516803 2020-12-10 16:17:55.425139545 +0100 -+++ firefox-84.0/security/sandbox/linux/moz.build 2020-12-10 16:29:21.945860841 +0100 -@@ -114,9 +114,8 @@ if CONFIG["CC_TYPE"] in ("clang", "gcc") +Index: mozilla-esr153/security/sandbox/linux/moz.build +=================================================================== +--- mozilla-esr153.orig/security/sandbox/linux/moz.build ++++ mozilla-esr153/security/sandbox/linux/moz.build +@@ -110,9 +110,8 @@ if CONFIG["CC_TYPE"] in ("clang", "gcc") # gcc lto likes to put the top level asm in syscall.cc in a different partition # from the function using it which breaks the build. Work around that by # forcing there to be only one partition. ++++++ mozilla-silence-no-return-type.patch ++++++ ++++ 697 lines (skipped) ++++ between /work/SRC/openSUSE:Factory/firefox-esr/mozilla-silence-no-return-type.patch ++++ and /work/SRC/openSUSE:Factory/.firefox-esr.new.1258/mozilla-silence-no-return-type.patch ++++++ mozilla.keyring ++++++ --- /var/tmp/diff_new_pack.NGCM79/_old 2026-08-19 17:57:26.890119760 +0200 +++ /var/tmp/diff_new_pack.NGCM79/_new 2026-08-19 17:57:26.896119975 +0200 @@ -15,7 +15,8 @@ sub rsa4096 2017-06-22 [S] [expired: 2019-06-22] sub rsa4096 2019-05-30 [S] [expired: 2021-05-29] sub rsa4096 2023-05-05 [S] [expires: 2025-05-04] -sub rsa4096 2025-03-13 [S] [expires: 2027-03-13] +sub rsa4096 2025-03-13 [S] [revoked: 2026-08-06] +sub rsa4096 2026-08-06 [S] [expires: 2028-08-05] -----BEGIN PGP PUBLIC KEY BLOCK----- @@ -228,215 +229,274 @@ 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 -aknpPbYMBztRT4Ju0VU4 -=4Dnl +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 +=LpNb -----END PGP PUBLIC KEY BLOCK----- ++++++ tar_stamps ++++++ --- /var/tmp/diff_new_pack.NGCM79/_old 2026-08-19 17:57:26.954122056 +0200 +++ /var/tmp/diff_new_pack.NGCM79/_new 2026-08-19 17:57:26.957122163 +0200 @@ -1,11 +1,11 @@ PRODUCT="firefox" CHANNEL="esr153" -VERSION="153.0" +VERSION="153.1.0" VERSION_SUFFIX="esr" -PREV_VERSION="140.13.0" +PREV_VERSION="153.0" PREV_VERSION_SUFFIX="esr" #SKIP_LOCALES="" # Uncomment to skip l10n and compare-locales-generation RELEASE_REPO="https://hg.mozilla.org/releases/mozilla-esr153" -RELEASE_TAG="abd1fe67f4c3b677caecb582d55601a7b1191dc4" -RELEASE_TIMESTAMP="20260716160951" +RELEASE_TAG="bdb74c45c2e1e3fe593fbf3c5ca6d2ab2046ef08" +RELEASE_TIMESTAMP="20260811201151"
