diff --git a/build-ffvpx.patch b/build-ffvpx.patch index 09e60bbbdcff33e3b3bd48198c0d6258945277e3..6172b9ba8c1bf53f82f608106518a4ddfdf9d6eb 100644 --- a/build-ffvpx.patch +++ b/build-ffvpx.patch @@ -1,24 +1,24 @@ -diff -up thunderbird-128.0/media/ffvpx/libavcodec/av1dec.c.build-ffvpx thunderbird-128.0/media/ffvpx/libavcodec/av1dec.c ---- thunderbird-128.0/media/ffvpx/libavcodec/av1dec.c.build-ffvpx 2024-06-24 22:43:40.000000000 +0200 -+++ thunderbird-128.0/media/ffvpx/libavcodec/av1dec.c 2024-07-10 11:20:23.200948767 +0200 -@@ -887,7 +887,7 @@ static av_cold int av1_decode_init(AVCod +diff -up firefox-140.1.0/media/ffvpx/libavcodec/av1dec.c.build-ffvpx firefox-140.1.0/media/ffvpx/libavcodec/av1dec.c +--- firefox-140.1.0/media/ffvpx/libavcodec/av1dec.c.build-ffvpx 2025-07-14 19:14:53.000000000 +0200 ++++ firefox-140.1.0/media/ffvpx/libavcodec/av1dec.c 2025-07-31 13:02:48.131126439 +0200 +@@ -904,7 +904,7 @@ static av_cold int av1_decode_init(AVCod ff_cbs_fragment_reset(&s->current_obu); } - s->dovi.logctx = avctx; + s->dovi.logctx = (AVContext *) avctx; - s->dovi.dv_profile = 10; // default for AV1 + s->dovi.cfg.dv_profile = 10; // default for AV1 sd = ff_get_coded_side_data(avctx, AV_PKT_DATA_DOVI_CONF); - if (sd && sd->size > 0) -diff -up thunderbird-128.0/media/ffvpx/libavcodec/libdav1d.c.build-ffvpx thunderbird-128.0/media/ffvpx/libavcodec/libdav1d.c ---- thunderbird-128.0/media/ffvpx/libavcodec/libdav1d.c.build-ffvpx 2024-07-10 12:46:57.005539959 +0200 -+++ thunderbird-128.0/media/ffvpx/libavcodec/libdav1d.c 2024-07-10 12:47:19.067507705 +0200 -@@ -289,7 +289,7 @@ static av_cold int libdav1d_init(AVCodec + if (sd && sd->size >= sizeof(s->dovi.cfg)) +diff -up firefox-140.1.0/media/ffvpx/libavcodec/libdav1d.c.build-ffvpx firefox-140.1.0/media/ffvpx/libavcodec/libdav1d.c +--- firefox-140.1.0/media/ffvpx/libavcodec/libdav1d.c.build-ffvpx 2025-07-14 19:14:54.000000000 +0200 ++++ firefox-140.1.0/media/ffvpx/libavcodec/libdav1d.c 2025-07-31 13:03:08.395175190 +0200 +@@ -293,7 +293,7 @@ static av_cold int libdav1d_init(AVCodec c->delay = res > 1 ? res : 0; #endif - dav1d->dovi.logctx = c; + dav1d->dovi.logctx = (AVContext *) c; - dav1d->dovi.dv_profile = 10; // default for AV1 + dav1d->dovi.cfg.dv_profile = 10; // default for AV1 sd = ff_get_coded_side_data(c, AV_PKT_DATA_DOVI_CONF); - if (sd && sd->size > 0) + if (sd && sd->size >= sizeof(dav1d->dovi.cfg)) diff --git a/build-libaom.patch b/build-libaom.patch index cab71b538e64626cbb94fd2a59b32c3258cdedea..09ffdbb17445894fd843a01b89347b57415eb27d 100644 --- a/build-libaom.patch +++ b/build-libaom.patch @@ -1,12 +1,13 @@ diff -up firefox-128.0/config/external/moz.build.libaom firefox-128.0/config/external/moz.build --- firefox-128.0/config/external/moz.build.libaom 2024-07-31 15:32:39.460374047 +0200 +++ firefox-128.0/config/external/moz.build 2024-07-31 15:34:41.646064796 +0200 -@@ -39,8 +39,8 @@ if CONFIG["MOZ_VORBIS"]: +@@ -39,9 +39,9 @@ if CONFIG["MOZ_VORBIS"]: + if not CONFIG["MOZ_SYSTEM_LIBVPX"]: external_dirs += ["media/libvpx"] - +external_dirs += ["media/libaom"] - if CONFIG["MOZ_AV1"]: + + if not CONFIG["MOZ_SYSTEM_AV1"]: - external_dirs += ["media/libaom"] external_dirs += ["media/libdav1d"] diff --git a/build-rhel7-lower-node-min-version.patch b/build-rhel7-lower-node-min-version.patch index 398cbc36d0107840bcce422cf3afee90bafce873..a167271688b5a1dcda85ca7298489f0d0f34ef5c 100644 --- a/build-rhel7-lower-node-min-version.patch +++ b/build-rhel7-lower-node-min-version.patch @@ -1,8 +1,9 @@ ---- firefox-115.8.0/python/mozbuild/mozbuild/nodeutil.py.lower-node-min-version 2024-02-12 21:53:56.000000000 +0200 -+++ firefox-115.8.0/python/mozbuild/mozbuild/nodeutil.py 2024-02-14 16:48:12.476182627 +0200 -@@ -13,7 +13,7 @@ from mozboot.util import get_tools_dir +diff -up firefox-140.0/python/mozbuild/mozbuild/nodeutil.py.build-rhel7-lower-node-min-version firefox-140.0/python/mozbuild/mozbuild/nodeutil.py +--- firefox-140.0/python/mozbuild/mozbuild/nodeutil.py.build-rhel7-lower-node-min-version 2025-06-02 15:26:51.000000000 +0200 ++++ firefox-140.0/python/mozbuild/mozbuild/nodeutil.py 2025-06-12 11:54:37.075505124 +0200 +@@ -10,7 +10,7 @@ from mozboot.util import get_tools_dir + from mozfile import which from packaging.version import Version - from six import PY3 -NODE_MIN_VERSION = Version("12.22.12") +NODE_MIN_VERSION = Version("10.24.0") diff --git a/build-rhel7-nasm-dwarf.patch b/build-rhel7-nasm-dwarf.patch index 5e2ba4ab0a6e5a42046102424a8f0dd5dc44e9ee..e8b48e0ec136405ba118515d8535aa4ac8f487cc 100644 --- a/build-rhel7-nasm-dwarf.patch +++ b/build-rhel7-nasm-dwarf.patch @@ -1,12 +1,12 @@ -diff -up firefox-91.0.1/python/mozbuild/mozbuild/frontend/context.py.rhel7-nasm firefox-91.0.1/python/mozbuild/mozbuild/frontend/context.py ---- firefox-91.0.1/python/mozbuild/mozbuild/frontend/context.py.rhel7-nasm 2021-08-31 08:02:10.814740774 +0200 -+++ firefox-91.0.1/python/mozbuild/mozbuild/frontend/context.py 2021-08-31 08:04:03.967146994 +0200 -@@ -420,7 +420,7 @@ class AsmFlags(BaseCompileFlags): +diff -up firefox-140.0/python/mozbuild/mozbuild/frontend/context.py.build-rhel7-nasm-dwarf firefox-140.0/python/mozbuild/mozbuild/frontend/context.py +--- firefox-140.0/python/mozbuild/mozbuild/frontend/context.py.build-rhel7-nasm-dwarf 2025-06-02 15:26:51.000000000 +0200 ++++ firefox-140.0/python/mozbuild/mozbuild/frontend/context.py 2025-06-12 12:09:56.398728745 +0200 +@@ -417,7 +417,7 @@ class AsmFlags(BaseCompileFlags): if self._context.config.substs.get("OS_ARCH") == "WINNT": debug_flags += ["-F", "cv8"] elif self._context.config.substs.get("OS_ARCH") != "Darwin": - debug_flags += ["-F", "dwarf"] -+ debug_flags += ["-f", "elf32"] - elif ( - self._context.config.substs.get("OS_ARCH") == "WINNT" - and self._context.config.substs.get("CPU_ARCH") == "aarch64" ++ debug_flags += ["-F", "elf32"] + elif self._context.config.substs.get("CC_TYPE") == "clang-cl": + if self._context.config.substs.get("TARGET_CPU") == "aarch64": + # armasm64 accepts a paucity of options compared to ml/ml64. diff --git a/download b/download index 9b8f15e1fdfefccc13b613b521ede794389456ae..ab70c34434e557db900f903177cdd27a5a6029ef 100644 --- a/download +++ b/download @@ -1,4 +1,4 @@ -4a9919666c93bfa29e2878ca5fb1c0c9 firefox-128.14.0esr.source.tar.xz -824e766472af737ea731e12d66470c20 firefox-langpacks-128.14.0esr-20250815.tar.xz -fc25f988b87b5187d4e2f006efa699a3 cbindgen-vendor.tar.xz +ba93a89023a8c4d7ade167905783d875 firefox-140.3.0esr.source.tar.xz +e4985d446d3f5de6a00c49e8175b6a87 firefox-langpacks-140.3.0esr-20250919.tar.xz +bbd51396c9f1f79afb128af28627b207 cbindgen-vendor.tar.xz b3c1d2ea615cb0195f4f62b005773262 mochitest-python.tar.gz diff --git a/firefox.spec b/firefox.spec index 9922ca4a6439e221af3e4639bf3220b08d04ea33..3aba1ccc4f2608d8e41834980aa2ff6dfbc89734 100644 --- a/firefox.spec +++ b/firefox.spec @@ -19,10 +19,10 @@ %global dts_version 11 %global llvm_version 7.0 -%global nspr_version 4.35 -%global nspr_version_max 4.36 -%global nss_version 3.101 -%global nss_version_max 3.102 +%global nspr_version 4.36 +%global nspr_version_max 4.37 +%global nss_version 3.112 +%global nss_version_max 3.113 %global rust_version 1.66 %global system_libvpx 0 @@ -60,7 +60,7 @@ Summary: Mozilla Firefox Web browser Name: firefox -Version: 128.14.0 +Version: 140.3.0 Release: %{anolis_release}%{?dist} URL: https://www.mozilla.org/firefox/ License: MPLv1.1 or GPLv2+ or LGPLv2+ @@ -72,7 +72,7 @@ License: MPLv1.1 or GPLv2+ or LGPLv2+ # Link to original tarball: https://archive.mozilla.org/pub/firefox/releases/%%{version}%%{?pre_version}/source/firefox-%%{version}%%{?pre_version}.source.tar.xz Source0: https://ftp.mozilla.org/pub/firefox/releases/%{version}esr/source/firefox-%{version}esr.source.tar.xz %if %{with langpacks} -Source1: firefox-langpacks-%{version}%{?pre_version}-20250815.tar.xz +Source1: firefox-langpacks-140.3.0esr-20250919.tar.xz %endif Source2: cbindgen-vendor.tar.xz Source3: process-official-tarball @@ -130,8 +130,6 @@ Patch152: rhbz-1173156.patch Patch154: firefox-nss-addon-hack.patch # ARM run-time patch Patch155: rhbz-1354671.patch -Patch156: 0001-fix-loongarch64-link-failed.patch -Patch157: 0001-Fix-libpng-skia-build-failed-for-loongarch64.-r-lsal.patch # nodejs 22 in loonarch64 and riscv64 not yet adapted ExcludeArch: loongarch64 riscv64 @@ -990,8 +988,6 @@ echo "--------------------------------------------" %patch -P155 -p1 -b .rhbz-1354671 %endif -%patch -P156 -p1 -%patch -P157 -p1 # ---- Security patches ---- %{__rm} -f .mozconfig @@ -1524,7 +1520,6 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{mozappdir}/browser/chrome %{mozappdir}/defaults/preferences/* %{mozappdir}/browser/defaults/preferences -%{mozappdir}/browser/features/*.xpi %{mozappdir}/distribution/distribution.ini # That's Windows only %ghost %{mozappdir}/browser/features/aushelper@mozilla.org.xpi @@ -1577,6 +1572,12 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : #--------------------------------------------------------------------- %changelog +* Mon Sep 22 2025 mgb01105731 - 140.3.0-1 +- Update to 140.3.0 to fix CVE-2025-10527 CVE-2025-10528 CVE-2025-10533 + CVE-2025-10534 CVE-2025-10536 CVE-2025-10537 CVE-2025-10529 CVE-2025-10531 + CVE-2025-10532 +- Remove patches as loongarch patch disabled + * Fri Aug 29 2025 wenxin - 128.14.0-1 - Update to 128.14.0 to fix CVE-2025-9179,CVE-2025-9180,CVE-2025-9181,CVE-2025-9185 diff --git a/mozilla-bmo1170092.patch b/mozilla-bmo1170092.patch index 36d2b00f4ec5758ea8a01b10ff2f104132eda238..66dacbfb7357d56ac1ab3247af937faef30ecc38 100644 --- a/mozilla-bmo1170092.patch +++ b/mozilla-bmo1170092.patch @@ -1,6 +1,6 @@ -diff -up firefox-115.0.2/extensions/pref/autoconfig/src/nsReadConfig.cpp.1170092 firefox-115.0.2/extensions/pref/autoconfig/src/nsReadConfig.cpp ---- firefox-115.0.2/extensions/pref/autoconfig/src/nsReadConfig.cpp.1170092 2023-07-10 21:08:53.000000000 +0200 -+++ firefox-115.0.2/extensions/pref/autoconfig/src/nsReadConfig.cpp 2023-07-17 10:33:23.443355156 +0200 +diff -up firefox-140.0/extensions/pref/autoconfig/src/nsReadConfig.cpp.mozilla-bmo1170092 firefox-140.0/extensions/pref/autoconfig/src/nsReadConfig.cpp +--- firefox-140.0/extensions/pref/autoconfig/src/nsReadConfig.cpp.mozilla-bmo1170092 2025-06-02 15:26:44.000000000 +0200 ++++ firefox-140.0/extensions/pref/autoconfig/src/nsReadConfig.cpp 2025-06-04 13:24:00.344728697 +0200 @@ -263,8 +263,20 @@ nsresult nsReadConfig::openAndEvaluateJS if (NS_FAILED(rv)) return rv; @@ -23,10 +23,10 @@ diff -up firefox-115.0.2/extensions/pref/autoconfig/src/nsReadConfig.cpp.1170092 } else { nsAutoCString location("resource://gre/defaults/autoconfig/"); location += aFileName; -diff -up firefox-115.0.2/modules/libpref/Preferences.cpp.1170092 firefox-115.0.2/modules/libpref/Preferences.cpp ---- firefox-115.0.2/modules/libpref/Preferences.cpp.1170092 2023-07-10 21:09:00.000000000 +0200 -+++ firefox-115.0.2/modules/libpref/Preferences.cpp 2023-07-17 10:33:23.444355156 +0200 -@@ -4825,6 +4825,9 @@ nsresult Preferences::InitInitialObjects +diff -up firefox-140.0/modules/libpref/Preferences.cpp.mozilla-bmo1170092 firefox-140.0/modules/libpref/Preferences.cpp +--- firefox-140.0/modules/libpref/Preferences.cpp.mozilla-bmo1170092 2025-06-02 15:26:51.000000000 +0200 ++++ firefox-140.0/modules/libpref/Preferences.cpp 2025-06-04 13:24:00.345430064 +0200 +@@ -4914,6 +4914,9 @@ nsresult Preferences::InitInitialObjects // // Thus, in the omni.jar case, we always load app-specific default // preferences from omni.jar, whether or not `$app == $gre`. @@ -36,10 +36,10 @@ diff -up firefox-115.0.2/modules/libpref/Preferences.cpp.1170092 firefox-115.0.2 nsresult rv = NS_ERROR_FAILURE; UniquePtr find; -diff -up firefox-115.0.2/toolkit/xre/nsXREDirProvider.cpp.1170092 firefox-115.0.2/toolkit/xre/nsXREDirProvider.cpp ---- firefox-115.0.2/toolkit/xre/nsXREDirProvider.cpp.1170092 2023-07-10 22:57:20.000000000 +0200 -+++ firefox-115.0.2/toolkit/xre/nsXREDirProvider.cpp 2023-07-17 10:56:25.309692121 +0200 -@@ -72,6 +72,7 @@ +diff -up firefox-140.0/toolkit/xre/nsXREDirProvider.cpp.mozilla-bmo1170092 firefox-140.0/toolkit/xre/nsXREDirProvider.cpp +--- firefox-140.0/toolkit/xre/nsXREDirProvider.cpp.mozilla-bmo1170092 2025-06-02 15:27:00.000000000 +0200 ++++ firefox-140.0/toolkit/xre/nsXREDirProvider.cpp 2025-06-04 15:44:09.413562326 +0200 +@@ -76,6 +76,7 @@ #endif #ifdef XP_UNIX # include @@ -47,7 +47,7 @@ diff -up firefox-115.0.2/toolkit/xre/nsXREDirProvider.cpp.1170092 firefox-115.0. #endif #ifdef XP_IOS # include "UIKitDirProvider.h" -@@ -478,6 +479,17 @@ nsXREDirProvider::GetFile(const char* aP +@@ -462,6 +463,17 @@ nsXREDirProvider::GetFile(const char* aP rv = file->AppendNative(nsLiteralCString(PREF_OVERRIDE_DIRNAME)); NS_ENSURE_SUCCESS(rv, rv); rv = EnsureDirectoryExists(file); @@ -60,12 +60,12 @@ diff -up firefox-115.0.2/toolkit/xre/nsXREDirProvider.cpp.1170092 firefox-115.0. + appInfo->GetName(appName); + ToLowerCase(appName); + sysConfigDir.Append(appName); -+ NS_NewNativeLocalFile(sysConfigDir, false, getter_AddRefs(file)); ++ NS_NewNativeLocalFile(sysConfigDir, getter_AddRefs(file)); + rv = EnsureDirectoryExists(file); } else { // We don't know anything about this property. Fail without warning, because // otherwise we'll get too much warning spam due to -@@ -694,6 +706,16 @@ nsXREDirProvider::GetFiles(const char* a +@@ -518,6 +530,16 @@ nsXREDirProvider::GetFiles(const char* a } #endif @@ -82,9 +82,9 @@ diff -up firefox-115.0.2/toolkit/xre/nsXREDirProvider.cpp.1170092 firefox-115.0. rv = NS_NewArrayEnumerator(aResult, directories, NS_GET_IID(nsIFile)); } else if (!strcmp(aProperty, NS_APP_CHROME_DIR_LIST)) { // NS_APP_CHROME_DIR_LIST is only used to get default (native) icons -diff -up firefox-115.0.2/xpcom/io/nsAppDirectoryServiceDefs.h.1170092 firefox-115.0.2/xpcom/io/nsAppDirectoryServiceDefs.h ---- firefox-115.0.2/xpcom/io/nsAppDirectoryServiceDefs.h.1170092 2023-07-10 21:09:13.000000000 +0200 -+++ firefox-115.0.2/xpcom/io/nsAppDirectoryServiceDefs.h 2023-07-17 10:33:23.444355156 +0200 +diff -up firefox-140.0/xpcom/io/nsAppDirectoryServiceDefs.h.mozilla-bmo1170092 firefox-140.0/xpcom/io/nsAppDirectoryServiceDefs.h +--- firefox-140.0/xpcom/io/nsAppDirectoryServiceDefs.h.mozilla-bmo1170092 2025-06-02 15:27:01.000000000 +0200 ++++ firefox-140.0/xpcom/io/nsAppDirectoryServiceDefs.h 2025-06-04 13:24:00.346423861 +0200 @@ -58,6 +58,7 @@ #define NS_APP_PREFS_DEFAULTS_DIR_LIST "PrefDL" #define NS_APP_PREFS_OVERRIDE_DIR \ diff --git a/mozilla-bmo1636168-fscreen.patch b/mozilla-bmo1636168-fscreen.patch index 6ee70ad75ed00ee4eefeb2647c5ff4df66a3eda5..fb5ec2340a7f88559c86c3afc3e7a0673b949b4f 100644 --- a/mozilla-bmo1636168-fscreen.patch +++ b/mozilla-bmo1636168-fscreen.patch @@ -1,29 +1,28 @@ -diff -up firefox-128.0/widget/gtk/nsWindow.cpp.mozilla-bmo1636168-fscreen firefox-128.0/widget/gtk/nsWindow.cpp ---- firefox-128.0/widget/gtk/nsWindow.cpp.mozilla-bmo1636168-fscreen 2024-07-04 18:20:43.000000000 +0200 -+++ firefox-128.0/widget/gtk/nsWindow.cpp 2024-07-16 14:54:21.026716936 +0200 -@@ -174,7 +174,8 @@ const gint kEvents = GDK_TOUCHPAD_GESTUR - GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK | - GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | - GDK_SMOOTH_SCROLL_MASK | GDK_TOUCH_MASK | GDK_SCROLL_MASK | -- GDK_POINTER_MOTION_MASK | GDK_PROPERTY_CHANGE_MASK; -+ GDK_POINTER_MOTION_MASK | GDK_PROPERTY_CHANGE_MASK | -+ GDK_FOCUS_CHANGE_MASK; +diff -up firefox-140.0/widget/gtk/nsWindow.cpp.mozilla-bmo1636168-fscreen firefox-140.0/widget/gtk/nsWindow.cpp +--- firefox-140.0/widget/gtk/nsWindow.cpp.mozilla-bmo1636168-fscreen 2025-06-02 15:27:00.000000000 +0200 ++++ firefox-140.0/widget/gtk/nsWindow.cpp 2025-06-12 10:23:04.789578675 +0200 +@@ -196,7 +196,7 @@ constexpr gint kEvents = + GDK_VISIBILITY_NOTIFY_MASK | GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK | + GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_SMOOTH_SCROLL_MASK | + GDK_TOUCH_MASK | GDK_SCROLL_MASK | GDK_POINTER_MOTION_MASK | +- GDK_PROPERTY_CHANGE_MASK; ++ GDK_PROPERTY_CHANGE_MASK | GDK_FOCUS_CHANGE_MASK; /* utility functions */ static bool is_mouse_in_window(GdkWindow* aWindow, gdouble aMouseX, -@@ -430,7 +431,8 @@ nsWindow::nsWindow() +@@ -454,7 +454,8 @@ nsWindow::nsWindow() mResizedAfterMoveToRect(false), mConfiguredClearColor(false), mGotNonBlankPaint(false), - mNeedsToRetryCapturingMouse(false) { + mNeedsToRetryCapturingMouse(false), + mPendingFullscreen(false) { - mWindowType = WindowType::Child; mSizeConstraints.mMaxSize = GetSafeWindowSize(mSizeConstraints.mMaxSize); -@@ -5374,6 +5376,19 @@ void nsWindow::OnWindowStateEvent(GtkWid - ClearTransparencyBitmap(); - } + if (!gGlobalsInitialized) { +@@ -5424,6 +5425,19 @@ void nsWindow::OnWindowStateEvent(GtkWid + if (mSizeMode != oldSizeMode && mWidgetListener) { + mWidgetListener->SizeModeChanged(mSizeMode); } + + // Hack to ensure window switched to fullscreen - avoid to fail when starting @@ -41,7 +40,7 @@ diff -up firefox-128.0/widget/gtk/nsWindow.cpp.mozilla-bmo1636168-fscreen firefo } void nsWindow::OnDPIChanged() { -@@ -7526,6 +7541,7 @@ nsresult nsWindow::MakeFullScreen(bool a +@@ -7239,6 +7253,7 @@ nsresult nsWindow::MakeFullScreen(bool a if (mKioskMonitor.isSome()) { KioskLockOnMonitor(); @@ -49,10 +48,10 @@ diff -up firefox-128.0/widget/gtk/nsWindow.cpp.mozilla-bmo1636168-fscreen firefo } else { gtk_window_fullscreen(GTK_WINDOW(mShell)); } -diff -up firefox-128.0/widget/gtk/nsWindow.h.mozilla-bmo1636168-fscreen firefox-128.0/widget/gtk/nsWindow.h ---- firefox-128.0/widget/gtk/nsWindow.h.mozilla-bmo1636168-fscreen 2024-07-04 18:20:43.000000000 +0200 -+++ firefox-128.0/widget/gtk/nsWindow.h 2024-07-16 14:25:51.636952919 +0200 -@@ -758,6 +758,7 @@ class nsWindow final : public nsBaseWidg +diff -up firefox-140.0/widget/gtk/nsWindow.h.mozilla-bmo1636168-fscreen firefox-140.0/widget/gtk/nsWindow.h +--- firefox-140.0/widget/gtk/nsWindow.h.mozilla-bmo1636168-fscreen 2025-06-02 15:27:00.000000000 +0200 ++++ firefox-140.0/widget/gtk/nsWindow.h 2025-06-12 10:18:42.354025723 +0200 +@@ -786,6 +786,7 @@ class nsWindow final : public nsBaseWidg * move-to-rect callback we set mMovedAfterMoveToRect/mResizedAfterMoveToRect. */ bool mWaitingForMoveToRectCallback : 1; diff --git a/mozilla-bmo1670333.patch b/mozilla-bmo1670333.patch index 4d29f5d6807188185bddac4c6ee529a105cc5667..3b6bfb647b75a12b0718f570d0332263be4194c9 100644 --- a/mozilla-bmo1670333.patch +++ b/mozilla-bmo1670333.patch @@ -1,7 +1,7 @@ -diff -up firefox-128.0/dom/media/mp4/MP4Demuxer.cpp.mozilla-bmo1670333 firefox-128.0/dom/media/mp4/MP4Demuxer.cpp ---- firefox-128.0/dom/media/mp4/MP4Demuxer.cpp.mozilla-bmo1670333 2024-07-04 18:20:27.000000000 +0200 -+++ firefox-128.0/dom/media/mp4/MP4Demuxer.cpp 2024-07-16 13:49:10.475630426 +0200 -@@ -33,6 +33,8 @@ mozilla::LogModule* GetDemuxerLog() { re +diff -up firefox-140.0/dom/media/mp4/MP4Demuxer.cpp.mozilla-bmo1670333 firefox-140.0/dom/media/mp4/MP4Demuxer.cpp +--- firefox-140.0/dom/media/mp4/MP4Demuxer.cpp.mozilla-bmo1670333 2025-06-17 18:15:13.000000000 +0200 ++++ firefox-140.0/dom/media/mp4/MP4Demuxer.cpp 2025-06-18 10:17:47.394794429 +0200 +@@ -32,6 +32,8 @@ mozilla::LogModule* GetDemuxerLog() { re DDMOZ_LOG(gMediaDemuxerLog, mozilla::LogLevel::Debug, "::%s: " arg, \ __func__, ##__VA_ARGS__) @@ -11,9 +11,9 @@ diff -up firefox-128.0/dom/media/mp4/MP4Demuxer.cpp.mozilla-bmo1670333 firefox-1 using TimeUnit = media::TimeUnit; @@ -419,6 +421,12 @@ already_AddRefed MP4TrackD - [[fallthrough]]; case H264::FrameType::OTHER: { - bool keyframe = type == H264::FrameType::I_FRAME; + bool keyframe = type == H264::FrameType::I_FRAME_OTHER || + type == H264::FrameType::I_FRAME_IDR; + if (gUseKeyframeFromContainer) { + if (sample->mKeyframe && sample->mKeyframe != keyframe) { + sample->mKeyframe = keyframe; @@ -23,10 +23,10 @@ diff -up firefox-128.0/dom/media/mp4/MP4Demuxer.cpp.mozilla-bmo1670333 firefox-1 if (sample->mKeyframe != keyframe) { NS_WARNING(nsPrintfCString("Frame incorrectly marked as %skeyframe " "@ pts:%" PRId64 " dur:%" PRId64 -diff -up firefox-128.0/dom/media/platforms/PDMFactory.cpp.mozilla-bmo1670333 firefox-128.0/dom/media/platforms/PDMFactory.cpp ---- firefox-128.0/dom/media/platforms/PDMFactory.cpp.mozilla-bmo1670333 2024-07-04 18:20:26.000000000 +0200 -+++ firefox-128.0/dom/media/platforms/PDMFactory.cpp 2024-07-16 14:16:04.635809901 +0200 -@@ -62,6 +62,8 @@ +diff -up firefox-140.0/dom/media/platforms/PDMFactory.cpp.mozilla-bmo1670333 firefox-140.0/dom/media/platforms/PDMFactory.cpp +--- firefox-140.0/dom/media/platforms/PDMFactory.cpp.mozilla-bmo1670333 2025-06-17 18:15:13.000000000 +0200 ++++ firefox-140.0/dom/media/platforms/PDMFactory.cpp 2025-06-18 10:10:29.209789856 +0200 +@@ -61,6 +61,8 @@ #include @@ -35,7 +35,7 @@ diff -up firefox-128.0/dom/media/platforms/PDMFactory.cpp.mozilla-bmo1670333 fir using DecodeSupport = mozilla::media::DecodeSupport; using DecodeSupportSet = mozilla::media::DecodeSupportSet; using MediaCodec = mozilla::media::MediaCodec; -@@ -543,7 +545,7 @@ void PDMFactory::CreateRddPDMs() { +@@ -573,7 +575,7 @@ void PDMFactory::CreateRddPDMs() { #ifdef MOZ_FFMPEG if (StaticPrefs::media_ffmpeg_enabled() && StaticPrefs::media_rdd_ffmpeg_enabled() && @@ -44,7 +44,7 @@ diff -up firefox-128.0/dom/media/platforms/PDMFactory.cpp.mozilla-bmo1670333 fir mFailureFlags += GetFailureFlagBasedOnFFmpegStatus( FFmpegRuntimeLinker::LinkStatusCode()); } -@@ -719,7 +721,7 @@ void PDMFactory::CreateDefaultPDMs() { +@@ -749,7 +751,7 @@ void PDMFactory::CreateDefaultPDMs() { StartupPDM(AgnosticDecoderModule::Create(), StaticPrefs::media_prefer_non_ffvpx()); @@ -53,10 +53,10 @@ diff -up firefox-128.0/dom/media/platforms/PDMFactory.cpp.mozilla-bmo1670333 fir !StartupPDM(GMPDecoderModule::Create(), StaticPrefs::media_gmp_decoder_preferred())) { mFailureFlags += DecoderDoctorDiagnostics::Flags::GMPPDMFailedToStartup; -diff -up firefox-128.0/dom/media/platforms/PDMFactory.h.mozilla-bmo1670333 firefox-128.0/dom/media/platforms/PDMFactory.h ---- firefox-128.0/dom/media/platforms/PDMFactory.h.mozilla-bmo1670333 2024-07-04 18:20:26.000000000 +0200 -+++ firefox-128.0/dom/media/platforms/PDMFactory.h 2024-07-16 13:49:10.476630421 +0200 -@@ -98,6 +98,7 @@ class PDMFactory final { +diff -up firefox-140.0/dom/media/platforms/PDMFactory.h.mozilla-bmo1670333 firefox-140.0/dom/media/platforms/PDMFactory.h +--- firefox-140.0/dom/media/platforms/PDMFactory.h.mozilla-bmo1670333 2025-06-17 18:15:13.000000000 +0200 ++++ firefox-140.0/dom/media/platforms/PDMFactory.h 2025-06-18 10:10:29.210054963 +0200 +@@ -105,6 +105,7 @@ class PDMFactory final { RefPtr mNullPDM; DecoderDoctorDiagnostics::FlagsSet mFailureFlags; diff --git a/mozilla-bmo1789216-disable-av1.patch b/mozilla-bmo1789216-disable-av1.patch index c7fe0c31671059cf070046290076cf1a5a017fb1..bcaa8d9912edc888543e97f2ebe15d4177489e18 100644 --- a/mozilla-bmo1789216-disable-av1.patch +++ b/mozilla-bmo1789216-disable-av1.patch @@ -1,7 +1,7 @@ -diff -up firefox-128.0/media/ffvpx/libavcodec/allcodecs.c.mozilla-bmo1789216-disable-av1 firefox-128.0/media/ffvpx/libavcodec/allcodecs.c ---- firefox-128.0/media/ffvpx/libavcodec/allcodecs.c.mozilla-bmo1789216-disable-av1 2024-06-12 15:03:01.000000000 +0200 -+++ firefox-128.0/media/ffvpx/libavcodec/allcodecs.c 2024-06-13 11:44:10.637215674 +0200 -@@ -764,8 +764,11 @@ extern const FFCodec ff_libaribb24_decod +diff -up firefox-140.1.0/media/ffvpx/libavcodec/allcodecs.c.mozilla-bmo1789216-disable-av1 firefox-140.1.0/media/ffvpx/libavcodec/allcodecs.c +--- firefox-140.1.0/media/ffvpx/libavcodec/allcodecs.c.mozilla-bmo1789216-disable-av1 2025-07-14 19:14:53.000000000 +0200 ++++ firefox-140.1.0/media/ffvpx/libavcodec/allcodecs.c 2025-07-31 15:12:56.818469857 +0200 +@@ -769,8 +769,11 @@ extern const FFCodec ff_libaribb24_decod extern const FFCodec ff_libcelt_decoder; extern const FFCodec ff_libcodec2_encoder; extern const FFCodec ff_libcodec2_decoder; @@ -13,7 +13,7 @@ diff -up firefox-128.0/media/ffvpx/libavcodec/allcodecs.c.mozilla-bmo1789216-dis extern const FFCodec ff_libfdk_aac_encoder; extern const FFCodec ff_libfdk_aac_decoder; extern const FFCodec ff_libgsm_encoder; -@@ -793,7 +796,6 @@ extern const FFCodec ff_libspeex_decoder +@@ -800,7 +803,6 @@ extern const FFCodec ff_libspeex_decoder extern const FFCodec ff_libsvtav1_encoder; extern const FFCodec ff_libtheora_encoder; extern const FFCodec ff_libtwolame_encoder; @@ -21,9 +21,9 @@ diff -up firefox-128.0/media/ffvpx/libavcodec/allcodecs.c.mozilla-bmo1789216-dis extern const FFCodec ff_libvo_amrwbenc_encoder; extern const FFCodec ff_libvorbis_encoder; extern const FFCodec ff_libvorbis_decoder; -diff -up firefox-128.0/media/ffvpx/libavcodec/codec_list.c.mozilla-bmo1789216-disable-av1 firefox-128.0/media/ffvpx/libavcodec/codec_list.c ---- firefox-128.0/media/ffvpx/libavcodec/codec_list.c.mozilla-bmo1789216-disable-av1 2024-06-13 11:40:12.668924117 +0200 -+++ firefox-128.0/media/ffvpx/libavcodec/codec_list.c 2024-06-13 11:44:41.411253372 +0200 +diff -up firefox-140.1.0/media/ffvpx/libavcodec/codec_list.c.mozilla-bmo1789216-disable-av1 firefox-140.1.0/media/ffvpx/libavcodec/codec_list.c +--- firefox-140.1.0/media/ffvpx/libavcodec/codec_list.c.mozilla-bmo1789216-disable-av1 2025-07-14 19:14:53.000000000 +0200 ++++ firefox-140.1.0/media/ffvpx/libavcodec/codec_list.c 2025-07-31 15:12:56.820214239 +0200 @@ -11,12 +11,14 @@ static const FFCodec * const codec_list[ #if CONFIG_MP3_DECODER &ff_mp3_decoder, @@ -35,13 +35,13 @@ diff -up firefox-128.0/media/ffvpx/libavcodec/codec_list.c.mozilla-bmo1789216-di #if CONFIG_AV1_DECODER &ff_av1_decoder, #endif -+#endif ++#endif #if CONFIG_LIBVORBIS_DECODER &ff_libvorbis_decoder, #endif -diff -up firefox-128.0/media/ffvpx/libavcodec/moz.build.mozilla-bmo1789216-disable-av1 firefox-128.0/media/ffvpx/libavcodec/moz.build ---- firefox-128.0/media/ffvpx/libavcodec/moz.build.mozilla-bmo1789216-disable-av1 2024-06-13 11:40:12.669924118 +0200 -+++ firefox-128.0/media/ffvpx/libavcodec/moz.build 2024-06-13 11:45:22.867304151 +0200 +diff -up firefox-140.1.0/media/ffvpx/libavcodec/moz.build.mozilla-bmo1789216-disable-av1 firefox-140.1.0/media/ffvpx/libavcodec/moz.build +--- firefox-140.1.0/media/ffvpx/libavcodec/moz.build.mozilla-bmo1789216-disable-av1 2025-07-14 19:14:53.000000000 +0200 ++++ firefox-140.1.0/media/ffvpx/libavcodec/moz.build 2025-08-01 12:40:58.374987298 +0200 @@ -94,7 +94,6 @@ if not CONFIG['MOZ_FFVPX_AUDIOONLY']: 'imgconvert.c', 'libaom.c', @@ -50,24 +50,25 @@ diff -up firefox-128.0/media/ffvpx/libavcodec/moz.build.mozilla-bmo1789216-disab 'libvpxdec.c', 'libvpxenc.c', 'mathtables.c', -@@ -119,10 +118,16 @@ if not CONFIG['MOZ_FFVPX_AUDIOONLY']: - 'vp9recon.c', +@@ -120,16 +119,15 @@ if not CONFIG['MOZ_FFVPX_AUDIOONLY']: 'vpx_rac.c', ] -- USE_LIBS += [ -- 'dav1d', -- 'media_libdav1d_asm', -- ] -+ if CONFIG['MOZ_AV1']: -+ USE_LIBS += [ -+ 'dav1d', -+ 'media_libdav1d_asm', -+ ] + +- if CONFIG["MOZ_SYSTEM_AV1"]: +- CFLAGS += CONFIG['MOZ_SYSTEM_LIBDAV1D_CFLAGS'] +- CFLAGS += CONFIG['MOZ_SYSTEM_LIBAOM_CFLAGS'] +- OS_LIBS += CONFIG['MOZ_SYSTEM_LIBDAV1D_LIBS'] +- OS_LIBS += CONFIG['MOZ_SYSTEM_LIBAOM_LIBS'] +- else: ++ if CONFIG["MOZ_AV1"]: + USE_LIBS += [ + 'dav1d', + 'media_libdav1d_asm', + ] + SOURCES += [ + 'libdav1d.c', + ] + -+ + if CONFIG["MOZ_WIDGET_TOOLKIT"] == "gtk": LOCAL_INCLUDES += ['/media/mozva'] - SOURCES += [ diff --git a/rhbz-1173156.patch b/rhbz-1173156.patch index c35d901df935096813b0cba47993ae5f75b52b7a..abd2efe64852287d118f46ad0c0460d2548ff716 100644 --- a/rhbz-1173156.patch +++ b/rhbz-1173156.patch @@ -1,12 +1,12 @@ -diff -up firefox-60.5.0/extensions/auth/nsAuthSambaNTLM.cpp.rhbz-1173156 firefox-60.5.0/extensions/auth/nsAuthSambaNTLM.cpp ---- firefox-60.5.0/extensions/auth/nsAuthSambaNTLM.cpp.rhbz-1173156 2019-01-22 10:36:09.284069020 +0100 -+++ firefox-60.5.0/extensions/auth/nsAuthSambaNTLM.cpp 2019-01-22 10:37:12.669757744 +0100 -@@ -161,7 +161,7 @@ nsresult nsAuthSambaNTLM::SpawnNTLMAuthH - const char* username = PR_GetEnv("USER"); - if (!username) return NS_ERROR_FAILURE; +diff -up firefox-140.0/extensions/auth/nsAuthSambaNTLM.cpp.rhbz-1173156 firefox-140.0/extensions/auth/nsAuthSambaNTLM.cpp +--- firefox-140.0/extensions/auth/nsAuthSambaNTLM.cpp.rhbz-1173156 2025-06-02 15:26:45.000000000 +0200 ++++ firefox-140.0/extensions/auth/nsAuthSambaNTLM.cpp 2025-06-12 11:02:37.183715940 +0200 +@@ -153,7 +153,7 @@ nsresult nsAuthSambaNTLM::SpawnNTLMAuthH + options.fds_to_remap.push_back( + std::pair{fromChildPipeWrite.get(), STDOUT_FILENO}); + +- std::vector argvVec{"ntlm_auth", "--helper-protocol", ++ std::vector argvVec{"/usr/bin/ntlm_auth", "--helper-protocol", + "ntlmssp-client-1", "--use-cached-creds", + "--username", username}; -- const char* const args[] = {"ntlm_auth", -+ const char* const args[] = {"/usr/bin/ntlm_auth", - "--helper-protocol", - "ntlmssp-client-1", - "--use-cached-creds",