From 7b35cd4fd505b8966319d7b548d186a8b048806e Mon Sep 17 00:00:00 2001 From: Tomas Popela Date: Tue, 23 Jul 2024 15:06:11 +0200 Subject: [PATCH] Sync with internal WIP Firefox 128 rebase branch --- disable-pipewire.patch | 516 ++++++++++++++++--------------- firefox.sh.in | 34 +- firefox.spec | 44 +-- mozilla-bmo1636168-fscreen.patch | 54 +--- mozilla-bmo1670333.patch | 41 ++- 5 files changed, 335 insertions(+), 354 deletions(-) diff --git a/disable-pipewire.patch b/disable-pipewire.patch index cea6b68..84017de 100644 --- a/disable-pipewire.patch +++ b/disable-pipewire.patch @@ -1,242 +1,274 @@ -diff --git a/dom/media/webrtc/third_party_build/webrtc.mozbuild b/dom/media/webrtc/third_party_build/webrtc.mozbuild -index 30169c36c2..335e3cb1a1 100644 ---- a/dom/media/webrtc/third_party_build/webrtc.mozbuild -+++ b/dom/media/webrtc/third_party_build/webrtc.mozbuild -@@ -35,6 +35,3 @@ if CONFIG['MOZ_WEBRTC']: - - if CONFIG['MOZ_X11']: - DEFINES['WEBRTC_USE_X11'] = True -- -- if CONFIG["MOZ_WIDGET_TOOLKIT"] == "gtk": -- DEFINES['WEBRTC_USE_PIPEWIRE'] = True -diff --git a/third_party/libwebrtc/modules/desktop_capture/desktop_capture_gn/moz.build b/third_party/libwebrtc/modules/desktop_capture/desktop_capture_gn/moz.build -index 8c56b6b8e5..eaf8d7087a 100644 ---- a/third_party/libwebrtc/modules/desktop_capture/desktop_capture_gn/moz.build -+++ b/third_party/libwebrtc/modules/desktop_capture/desktop_capture_gn/moz.build -@@ -232,102 +232,6 @@ if CONFIG["CPU_ARCH"] == "aarch64": - DEFINES["WEBRTC_ARCH_ARM64"] = True - DEFINES["WEBRTC_HAS_NEON"] = True - --if CONFIG["CPU_ARCH"] == "arm": -- -- CXXFLAGS += [ -- "-mfpu=neon" -- ] -- -- DEFINES["WEBRTC_ARCH_ARM"] = True -- DEFINES["WEBRTC_ARCH_ARM_V7"] = True -- DEFINES["WEBRTC_HAS_NEON"] = True -- DEFINES["WEBRTC_USE_PIPEWIRE"] = True -- DEFINES["_GNU_SOURCE"] = True -- -- LOCAL_INCLUDES += [ -- "/gfx/angle/checkout/include/", -- "/third_party/drm/drm/", -- "/third_party/drm/drm/include/", -- "/third_party/drm/drm/include/libdrm/", -- "/third_party/gbm/gbm/", -- "/third_party/libepoxy/libepoxy/include/", -- "/third_party/pipewire/" -- ] -- -- SOURCES += [ -- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/base_capturer_pipewire.cc" -- ] -- -- UNIFIED_SOURCES += [ -- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/egl_dmabuf.cc", -- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/mouse_cursor_monitor_pipewire.cc", -- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/restore_token_manager.cc", -- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/screen_capture_portal_interface.cc", -- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/screencast_portal.cc", -- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/screencast_stream_utils.cc", -- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/shared_screencast_stream.cc" -- ] -- --if CONFIG["CPU_ARCH"] == "mips32": -- -- DEFINES["MIPS32_LE"] = True -- DEFINES["MIPS_FPU_LE"] = True -- DEFINES["WEBRTC_USE_PIPEWIRE"] = True -- DEFINES["_GNU_SOURCE"] = True -- -- LOCAL_INCLUDES += [ -- "/gfx/angle/checkout/include/", -- "/third_party/drm/drm/", -- "/third_party/drm/drm/include/", -- "/third_party/drm/drm/include/libdrm/", -- "/third_party/gbm/gbm/", -- "/third_party/libepoxy/libepoxy/include/", -- "/third_party/pipewire/" -- ] -- -- SOURCES += [ -- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/base_capturer_pipewire.cc" -- ] -- -- UNIFIED_SOURCES += [ -- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/egl_dmabuf.cc", -- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/mouse_cursor_monitor_pipewire.cc", -- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/restore_token_manager.cc", -- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/screen_capture_portal_interface.cc", -- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/screencast_portal.cc", -- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/screencast_stream_utils.cc", -- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/shared_screencast_stream.cc" -- ] -- --if CONFIG["CPU_ARCH"] == "mips64": -- -- DEFINES["WEBRTC_USE_PIPEWIRE"] = True -- DEFINES["_GNU_SOURCE"] = True -- -- LOCAL_INCLUDES += [ -- "/gfx/angle/checkout/include/", -- "/third_party/drm/drm/", -- "/third_party/drm/drm/include/", -- "/third_party/drm/drm/include/libdrm/", -- "/third_party/gbm/gbm/", -- "/third_party/libepoxy/libepoxy/include/", -- "/third_party/pipewire/" -- ] -- -- SOURCES += [ -- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/base_capturer_pipewire.cc" -- ] -- -- UNIFIED_SOURCES += [ -- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/egl_dmabuf.cc", -- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/mouse_cursor_monitor_pipewire.cc", -- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/restore_token_manager.cc", -- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/screen_capture_portal_interface.cc", -- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/screencast_portal.cc", -- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/screencast_stream_utils.cc", -- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/shared_screencast_stream.cc" -- ] -- - if CONFIG["CPU_ARCH"] == "ppc64": - - DEFINES["USE_X11"] = "1" -@@ -410,97 +314,6 @@ if CONFIG["MOZ_DEBUG"] == "1" and CONFIG["OS_TARGET"] == "WINNT": - - DEFINES["_HAS_ITERATOR_DEBUGGING"] = "0" - --if CONFIG["CPU_ARCH"] == "aarch64" and CONFIG["OS_TARGET"] == "Linux": -- -- DEFINES["WEBRTC_USE_PIPEWIRE"] = True -- DEFINES["_GNU_SOURCE"] = True -- -- LOCAL_INCLUDES += [ -- "/gfx/angle/checkout/include/", -- "/third_party/drm/drm/", -- "/third_party/drm/drm/include/", -- "/third_party/drm/drm/include/libdrm/", -- "/third_party/gbm/gbm/", -- "/third_party/libepoxy/libepoxy/include/", -- "/third_party/pipewire/" -- ] -- -- SOURCES += [ -- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/base_capturer_pipewire.cc" -- ] -- -- UNIFIED_SOURCES += [ -- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/egl_dmabuf.cc", -- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/mouse_cursor_monitor_pipewire.cc", -- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/restore_token_manager.cc", -- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/screen_capture_portal_interface.cc", -- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/screencast_portal.cc", -- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/screencast_stream_utils.cc", -- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/shared_screencast_stream.cc" -- ] -- --if CONFIG["CPU_ARCH"] == "x86" and CONFIG["OS_TARGET"] == "Linux": -- -- CXXFLAGS += [ -- "-msse2" -- ] -- -- DEFINES["WEBRTC_USE_PIPEWIRE"] = True -- DEFINES["_GNU_SOURCE"] = True -- -- LOCAL_INCLUDES += [ -- "/gfx/angle/checkout/include/", -- "/third_party/drm/drm/", -- "/third_party/drm/drm/include/", -- "/third_party/drm/drm/include/libdrm/", -- "/third_party/gbm/gbm/", -- "/third_party/libepoxy/libepoxy/include/", -- "/third_party/pipewire/" -- ] -- -- SOURCES += [ -- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/base_capturer_pipewire.cc" -- ] -- -- UNIFIED_SOURCES += [ -- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/egl_dmabuf.cc", -- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/mouse_cursor_monitor_pipewire.cc", -- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/restore_token_manager.cc", -- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/screen_capture_portal_interface.cc", -- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/screencast_portal.cc", -- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/screencast_stream_utils.cc", -- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/shared_screencast_stream.cc" -- ] -- --if CONFIG["CPU_ARCH"] == "x86_64" and CONFIG["OS_TARGET"] == "Linux": -- -- DEFINES["WEBRTC_USE_PIPEWIRE"] = True -- DEFINES["_GNU_SOURCE"] = True -- -- LOCAL_INCLUDES += [ -- "/gfx/angle/checkout/include/", -- "/third_party/drm/drm/", -- "/third_party/drm/drm/include/", -- "/third_party/drm/drm/include/libdrm/", -- "/third_party/gbm/gbm/", -- "/third_party/libepoxy/libepoxy/include/", -- "/third_party/pipewire/" -- ] -- -- SOURCES += [ -- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/base_capturer_pipewire.cc" -- ] -- -- UNIFIED_SOURCES += [ -- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/egl_dmabuf.cc", -- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/mouse_cursor_monitor_pipewire.cc", -- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/restore_token_manager.cc", -- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/screen_capture_portal_interface.cc", -- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/screencast_portal.cc", -- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/screencast_stream_utils.cc", -- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/shared_screencast_stream.cc" -- ] -- - if CONFIG["CPU_ARCH"] == "aarch64" and CONFIG["MOZ_X11"] == "1" and CONFIG["OS_TARGET"] == "Linux": - - DEFINES["USE_X11"] = "1" -diff --git a/third_party/libwebrtc/modules/portal/portal_gn/moz.build b/third_party/libwebrtc/modules/portal/portal_gn/moz.build -index 77603c780b..e6f2c9e724 100644 ---- a/third_party/libwebrtc/modules/portal/portal_gn/moz.build -+++ b/third_party/libwebrtc/modules/portal/portal_gn/moz.build -@@ -26,7 +26,7 @@ DEFINES["WEBRTC_MOZILLA_BUILD"] = True - DEFINES["WEBRTC_NON_STATIC_TRACE_EVENT_HANDLERS"] = "0" - DEFINES["WEBRTC_POSIX"] = True - DEFINES["WEBRTC_STRICT_FIELD_TRIALS"] = "0" --DEFINES["WEBRTC_USE_PIPEWIRE"] = True -+DEFINES["WEBRTC_USE_PIPEWIRE"] = False - DEFINES["_FILE_OFFSET_BITS"] = "64" - DEFINES["_GNU_SOURCE"] = True - DEFINES["_LARGEFILE64_SOURCE"] = True -diff --git a/third_party/libwebrtc/third_party/pipewire/pipewire_gn/moz.build b/third_party/libwebrtc/third_party/pipewire/pipewire_gn/moz.build -index 86a0daf8fa..e895f2eb15 100644 ---- a/third_party/libwebrtc/third_party/pipewire/pipewire_gn/moz.build -+++ b/third_party/libwebrtc/third_party/pipewire/pipewire_gn/moz.build -@@ -24,7 +24,7 @@ DEFINES["WEBRTC_MOZILLA_BUILD"] = True - DEFINES["WEBRTC_NON_STATIC_TRACE_EVENT_HANDLERS"] = "0" - DEFINES["WEBRTC_POSIX"] = True - DEFINES["WEBRTC_STRICT_FIELD_TRIALS"] = "0" --DEFINES["WEBRTC_USE_PIPEWIRE"] = True -+DEFINES["WEBRTC_USE_PIPEWIRE"] = False - DEFINES["_FILE_OFFSET_BITS"] = "64" - DEFINES["_GNU_SOURCE"] = True - DEFINES["_LARGEFILE64_SOURCE"] = True +diff -up firefox-128.0/dom/media/webrtc/third_party_build/webrtc.mozbuild.disable-pipewire firefox-128.0/dom/media/webrtc/third_party_build/webrtc.mozbuild +--- firefox-128.0/dom/media/webrtc/third_party_build/webrtc.mozbuild.disable-pipewire 2024-07-17 14:01:36.290603114 +0200 ++++ firefox-128.0/dom/media/webrtc/third_party_build/webrtc.mozbuild 2024-07-17 14:52:02.039208338 +0200 +@@ -31,7 +31,7 @@ if CONFIG["MOZ_WEBRTC"]: + and CONFIG["TARGET_CPU"].startswith("mips") + ) + ): +- DEFINES["WEBRTC_USE_PIPEWIRE"] = True ++ DEFINES["WEBRTC_USE_PIPEWIRE"] = False + elif CONFIG["OS_TARGET"] == "Darwin": + DEFINES["WEBRTC_MAC"] = True + elif CONFIG["OS_TARGET"] == "WINNT": +diff -up firefox-128.0/third_party/libwebrtc/modules/desktop_capture/desktop_capture_gn/moz.build.disable-pipewire firefox-128.0/third_party/libwebrtc/modules/desktop_capture/desktop_capture_gn/moz.build +--- firefox-128.0/third_party/libwebrtc/modules/desktop_capture/desktop_capture_gn/moz.build.disable-pipewire 2024-07-17 14:01:36.291603109 +0200 ++++ firefox-128.0/third_party/libwebrtc/modules/desktop_capture/desktop_capture_gn/moz.build 2024-07-17 14:56:35.419826494 +0200 +@@ -241,102 +241,6 @@ if CONFIG["TARGET_CPU"] == "aarch64": + DEFINES["WEBRTC_ARCH_ARM64"] = True + DEFINES["WEBRTC_HAS_NEON"] = True + +-if CONFIG["TARGET_CPU"] == "arm": +- +- CXXFLAGS += [ +- "-mfpu=neon" +- ] +- +- DEFINES["WEBRTC_ARCH_ARM"] = True +- DEFINES["WEBRTC_ARCH_ARM_V7"] = True +- DEFINES["WEBRTC_HAS_NEON"] = True +- DEFINES["WEBRTC_USE_PIPEWIRE"] = True +- DEFINES["_GNU_SOURCE"] = True +- +- LOCAL_INCLUDES += [ +- "/gfx/angle/checkout/include/", +- "/third_party/drm/drm/", +- "/third_party/drm/drm/include/", +- "/third_party/drm/drm/include/libdrm/", +- "/third_party/gbm/gbm/", +- "/third_party/libepoxy/libepoxy/include/", +- "/third_party/pipewire/" +- ] +- +- SOURCES += [ +- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/base_capturer_pipewire.cc" +- ] +- +- UNIFIED_SOURCES += [ +- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/egl_dmabuf.cc", +- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/mouse_cursor_monitor_pipewire.cc", +- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/restore_token_manager.cc", +- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/screen_capture_portal_interface.cc", +- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/screencast_portal.cc", +- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/screencast_stream_utils.cc", +- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/shared_screencast_stream.cc" +- ] +- +-if CONFIG["TARGET_CPU"] == "mips32": +- +- DEFINES["MIPS32_LE"] = True +- DEFINES["MIPS_FPU_LE"] = True +- DEFINES["WEBRTC_USE_PIPEWIRE"] = True +- DEFINES["_GNU_SOURCE"] = True +- +- LOCAL_INCLUDES += [ +- "/gfx/angle/checkout/include/", +- "/third_party/drm/drm/", +- "/third_party/drm/drm/include/", +- "/third_party/drm/drm/include/libdrm/", +- "/third_party/gbm/gbm/", +- "/third_party/libepoxy/libepoxy/include/", +- "/third_party/pipewire/" +- ] +- +- SOURCES += [ +- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/base_capturer_pipewire.cc" +- ] +- +- UNIFIED_SOURCES += [ +- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/egl_dmabuf.cc", +- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/mouse_cursor_monitor_pipewire.cc", +- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/restore_token_manager.cc", +- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/screen_capture_portal_interface.cc", +- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/screencast_portal.cc", +- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/screencast_stream_utils.cc", +- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/shared_screencast_stream.cc" +- ] +- +-if CONFIG["TARGET_CPU"] == "mips64": +- +- DEFINES["WEBRTC_USE_PIPEWIRE"] = True +- DEFINES["_GNU_SOURCE"] = True +- +- LOCAL_INCLUDES += [ +- "/gfx/angle/checkout/include/", +- "/third_party/drm/drm/", +- "/third_party/drm/drm/include/", +- "/third_party/drm/drm/include/libdrm/", +- "/third_party/gbm/gbm/", +- "/third_party/libepoxy/libepoxy/include/", +- "/third_party/pipewire/" +- ] +- +- SOURCES += [ +- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/base_capturer_pipewire.cc" +- ] +- +- UNIFIED_SOURCES += [ +- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/egl_dmabuf.cc", +- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/mouse_cursor_monitor_pipewire.cc", +- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/restore_token_manager.cc", +- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/screen_capture_portal_interface.cc", +- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/screencast_portal.cc", +- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/screencast_stream_utils.cc", +- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/shared_screencast_stream.cc" +- ] +- + if CONFIG["TARGET_CPU"] == "ppc64": + + DEFINES["USE_X11"] = "1" +@@ -389,35 +293,6 @@ if CONFIG["MOZ_DEBUG"] == "1" and CONFIG + + DEFINES["_HAS_ITERATOR_DEBUGGING"] = "0" + +-if CONFIG["OS_TARGET"] == "Linux" and CONFIG["TARGET_CPU"] == "aarch64": +- +- DEFINES["WEBRTC_USE_PIPEWIRE"] = True +- DEFINES["_GNU_SOURCE"] = True +- +- LOCAL_INCLUDES += [ +- "/gfx/angle/checkout/include/", +- "/third_party/drm/drm/", +- "/third_party/drm/drm/include/", +- "/third_party/drm/drm/include/libdrm/", +- "/third_party/gbm/gbm/", +- "/third_party/libepoxy/libepoxy/include/", +- "/third_party/pipewire/" +- ] +- +- SOURCES += [ +- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/base_capturer_pipewire.cc" +- ] +- +- UNIFIED_SOURCES += [ +- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/egl_dmabuf.cc", +- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/mouse_cursor_monitor_pipewire.cc", +- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/restore_token_manager.cc", +- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/screen_capture_portal_interface.cc", +- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/screencast_portal.cc", +- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/screencast_stream_utils.cc", +- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/shared_screencast_stream.cc" +- ] +- + if CONFIG["OS_TARGET"] == "Linux" and CONFIG["TARGET_CPU"] == "riscv64": + + DEFINES["USE_X11"] = "1" +@@ -446,95 +321,6 @@ if CONFIG["OS_TARGET"] == "Linux" and CO + "/third_party/libwebrtc/modules/desktop_capture/linux/x11/x_window_property.cc" + ] + +-if CONFIG["OS_TARGET"] == "Linux" and CONFIG["TARGET_CPU"] == "x86": +- +- CXXFLAGS += [ +- "-msse2" +- ] +- +- DEFINES["WEBRTC_USE_PIPEWIRE"] = True +- DEFINES["_GNU_SOURCE"] = True +- +- LOCAL_INCLUDES += [ +- "/gfx/angle/checkout/include/", +- "/third_party/drm/drm/", +- "/third_party/drm/drm/include/", +- "/third_party/drm/drm/include/libdrm/", +- "/third_party/gbm/gbm/", +- "/third_party/libepoxy/libepoxy/include/", +- "/third_party/pipewire/" +- ] +- +- SOURCES += [ +- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/base_capturer_pipewire.cc" +- ] +- +- UNIFIED_SOURCES += [ +- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/egl_dmabuf.cc", +- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/mouse_cursor_monitor_pipewire.cc", +- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/restore_token_manager.cc", +- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/screen_capture_portal_interface.cc", +- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/screencast_portal.cc", +- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/screencast_stream_utils.cc", +- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/shared_screencast_stream.cc" +- ] +- +-if CONFIG["OS_TARGET"] == "Linux" and CONFIG["TARGET_CPU"] == "x86_64": +- +- DEFINES["WEBRTC_USE_PIPEWIRE"] = True +- DEFINES["_GNU_SOURCE"] = True +- +- LOCAL_INCLUDES += [ +- "/gfx/angle/checkout/include/", +- "/third_party/drm/drm/", +- "/third_party/drm/drm/include/", +- "/third_party/drm/drm/include/libdrm/", +- "/third_party/gbm/gbm/", +- "/third_party/libepoxy/libepoxy/include/", +- "/third_party/pipewire/" +- ] +- +- SOURCES += [ +- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/base_capturer_pipewire.cc" +- ] +- +- UNIFIED_SOURCES += [ +- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/egl_dmabuf.cc", +- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/mouse_cursor_monitor_pipewire.cc", +- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/restore_token_manager.cc", +- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/screen_capture_portal_interface.cc", +- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/screencast_portal.cc", +- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/screencast_stream_utils.cc", +- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/shared_screencast_stream.cc" +- ] +- +-if CONFIG["MOZ_X11"] == "1" and CONFIG["OS_TARGET"] == "Linux" and CONFIG["TARGET_CPU"] == "aarch64": +- +- DEFINES["USE_X11"] = "1" +- DEFINES["WEBRTC_USE_X11"] = True +- +- OS_LIBS += [ +- "X11", +- "Xcomposite", +- "Xdamage", +- "Xext", +- "Xfixes", +- "Xrandr", +- "Xrender" +- ] +- +- UNIFIED_SOURCES += [ +- "/third_party/libwebrtc/modules/desktop_capture/linux/x11/mouse_cursor_monitor_x11.cc", +- "/third_party/libwebrtc/modules/desktop_capture/linux/x11/screen_capturer_x11.cc", +- "/third_party/libwebrtc/modules/desktop_capture/linux/x11/shared_x_display.cc", +- "/third_party/libwebrtc/modules/desktop_capture/linux/x11/window_capturer_x11.cc", +- "/third_party/libwebrtc/modules/desktop_capture/linux/x11/window_finder_x11.cc", +- "/third_party/libwebrtc/modules/desktop_capture/linux/x11/window_list_utils.cc", +- "/third_party/libwebrtc/modules/desktop_capture/linux/x11/x_atom_cache.cc", +- "/third_party/libwebrtc/modules/desktop_capture/linux/x11/x_error_trap.cc", +- "/third_party/libwebrtc/modules/desktop_capture/linux/x11/x_server_pixel_buffer.cc", +- "/third_party/libwebrtc/modules/desktop_capture/linux/x11/x_window_property.cc" +- ] + + if CONFIG["MOZ_X11"] == "1" and CONFIG["OS_TARGET"] == "Linux" and CONFIG["TARGET_CPU"] == "arm": + +diff -up firefox-128.0/third_party/libwebrtc/modules/portal/portal_gn/moz.build.disable-pipewire firefox-128.0/third_party/libwebrtc/modules/portal/portal_gn/moz.build +--- firefox-128.0/third_party/libwebrtc/modules/portal/portal_gn/moz.build.disable-pipewire 2024-07-04 18:20:41.000000000 +0200 ++++ firefox-128.0/third_party/libwebrtc/modules/portal/portal_gn/moz.build 2024-07-17 14:01:36.291603109 +0200 +@@ -27,7 +27,7 @@ DEFINES["WEBRTC_MOZILLA_BUILD"] = True + DEFINES["WEBRTC_NON_STATIC_TRACE_EVENT_HANDLERS"] = "0" + DEFINES["WEBRTC_POSIX"] = True + DEFINES["WEBRTC_STRICT_FIELD_TRIALS"] = "0" +-DEFINES["WEBRTC_USE_PIPEWIRE"] = True ++DEFINES["WEBRTC_USE_PIPEWIRE"] = False + DEFINES["_FILE_OFFSET_BITS"] = "64" + DEFINES["_GNU_SOURCE"] = True + DEFINES["_LARGEFILE64_SOURCE"] = True +diff -up firefox-128.0/third_party/libwebrtc/third_party/pipewire/pipewire_gn/moz.build.disable-pipewire firefox-128.0/third_party/libwebrtc/third_party/pipewire/pipewire_gn/moz.build +--- firefox-128.0/third_party/libwebrtc/third_party/pipewire/pipewire_gn/moz.build.disable-pipewire 2024-07-04 18:20:41.000000000 +0200 ++++ firefox-128.0/third_party/libwebrtc/third_party/pipewire/pipewire_gn/moz.build 2024-07-17 14:01:36.291603109 +0200 +@@ -25,7 +25,7 @@ DEFINES["WEBRTC_MOZILLA_BUILD"] = True + DEFINES["WEBRTC_NON_STATIC_TRACE_EVENT_HANDLERS"] = "0" + DEFINES["WEBRTC_POSIX"] = True + DEFINES["WEBRTC_STRICT_FIELD_TRIALS"] = "0" +-DEFINES["WEBRTC_USE_PIPEWIRE"] = True ++DEFINES["WEBRTC_USE_PIPEWIRE"] = False + DEFINES["_FILE_OFFSET_BITS"] = "64" + DEFINES["_GNU_SOURCE"] = True + DEFINES["_LARGEFILE64_SOURCE"] = True diff --git a/firefox.sh.in b/firefox.sh.in index 6a3f6e4..1a1c4b5 100644 --- a/firefox.sh.in +++ b/firefox.sh.in @@ -64,7 +64,6 @@ MOZ_DIST_BIN="$MOZ_LIB_DIR/firefox" MOZ_LANGPACKS_DIR="$MOZ_DIST_BIN/langpacks" MOZ_EXTENSIONS_PROFILE_DIR="$HOME/.mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}" MOZ_PROGRAM="$MOZ_DIST_BIN/$MOZ_FIREFOX_FILE" -MOZ_LAUNCHER="$MOZ_DIST_BIN/run-mozilla.sh" GETENFORCE_FILE="/usr/sbin/getenforce" ## @@ -247,35 +246,6 @@ fi NSS_SSL_CBC_RANDOM_IV=${NSS_SSL_CBC_RANDOM_IV-1} export NSS_SSL_CBC_RANDOM_IV -# Prepare command line arguments -script_args="" -pass_arg_count=0 -while [ $# -gt $pass_arg_count ] -do - case "$1" in - -g | --debug) - script_args="$script_args -g" - debugging=1 - shift - ;; - -d | --debugger) - if [ $# -gt 1 ]; then - script_args="$script_args -d $2" - shift 2 - else - shift - fi - ;; - *) - # Move the unrecognized argument to the end of the list. - arg="$1" - shift - set -- "$@" "$arg" - pass_arg_count=`expr $pass_arg_count + 1` - ;; - esac -done - # Flatpak specific environment variables %FLATPAK_ENV_VARS% @@ -286,7 +256,7 @@ export MOZ_ALLOW_DOWNGRADE=1 debugging=0 if [ $debugging = 1 ] then - echo $MOZ_LAUNCHER $script_args $MOZ_PROGRAM "$@" + echo $MOZ_PROGRAM "$@" fi -exec $MOZ_LAUNCHER $script_args $MOZ_PROGRAM "$@" +exec $MOZ_PROGRAM "$@" diff --git a/firefox.spec b/firefox.spec index 5ff352c..c82818f 100644 --- a/firefox.spec +++ b/firefox.spec @@ -63,7 +63,7 @@ end} %endif %endif -%global dts_version 10 +%global dts_version 12 %global llvm_version 7.0 %global nspr_version 4.35 %global nspr_version_max 4.36 @@ -77,20 +77,20 @@ end} %global use_gcc_ts 0 %global use_llvm_ts 0 %global use_nodejs_scl 0 -#FIXME switch to 1 %global use_rust_ts 0 %global use_python3_scl 0 %global nodejs_build_req nodejs -%if 0%{?rhel} >= 8 +%if 0%{?rhel} == 7 %global use_rust_ts 0 %endif -%if 0%{?rhel} == 8 && %{rhel_minor_version} < 6 - %ifarch aarch64 +#if 0%{?rhel} == 8 && %{rhel_minor_version} < 6 +%if 0%{?rhel} > 7 && 0%{?rhel} < 10 +# ifarch aarch64 %global use_gcc_ts 1 - %endif +# endif %endif %if 0%{?rhel} == 7 @@ -320,6 +320,17 @@ BuildRequires: python3-setuptools BuildRequires: rust %endif +%if 0%{?rhel} == 7 +BuildRequires: cargo +BuildRequires: clang clang-libs llvm llvm-devel +BuildRequires: gcc +BuildRequires: gcc-c++ +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: rust +BuildRequires: httpd24-curl +%endif + %if 0%{?use_dts} BuildRequires: devtoolset-%{dts_version}-gcc BuildRequires: devtoolset-%{dts_version}-gcc-c++ @@ -403,13 +414,9 @@ BuildRequires: xorg-x11-fonts-misc BuildRequires: xorg-x11-server-Xvfb %endif -%if 0%{?use_dts} - %if 0%{?rhel} == 8 && %{rhel_minor_version} < 6 - %ifarch aarch64 - BuildRequires: gcc-toolset-13-gcc-plugin-annobin - %endif - %endif +%if 0%{?use_gcc_ts} BuildRequires: gcc-toolset-13 +BuildRequires: gcc-toolset-13-gcc-plugin-annobin %endif Requires: mozilla-filesystem @@ -997,7 +1004,7 @@ echo "use_nodejs_scl %{?use_nodejs_scl}" echo "use_llvm_ts %{?use_llvm_ts}" echo "use_python3_scl %{?use_python3_scl}" echo "--------------------------------------------" -clang -print-search-dirs +#clang -print-search-dirs %setup -q -n %{name}-%{version} # ---- RHEL specific patches --- @@ -1027,8 +1034,8 @@ clang -print-search-dirs %patch -P51 -p1 -b .mozilla-bmo1170092 # -- Submitted upstream, not merged -- -#%patch -P101 -p1 -b .mozilla-bmo1636168-fscreen TODO -#%patch -P102 -p1 -b .mozilla-bmo1670333 TODO +%patch -P101 -p1 -b .mozilla-bmo1636168-fscreen +%patch -P102 -p1 -b .mozilla-bmo1670333 %patch -P103 -p1 -b .mozilla-bmo1504834-part1 %patch -P104 -p1 -b .mozilla-bmo1504834-part3 %patch -P105 -p1 -b .mozilla-bmo849632 @@ -1221,13 +1228,8 @@ function install_rpms_to_current_dir() { # Enable toolsets set +e -%if 0%{?rhel} == 8 && %{rhel_minor_version} < 6 - %ifarch aarch64 -source scl_source enable gcc-toolset-12 - %endif -%endif # This is definitely wrong, but I need things going on RHEL 10 -%if 0%{?rhel} < 10 +%if 0%{?use_gcc_ts} source scl_source enable gcc-toolset-13 %endif %if 0%{?use_dts} diff --git a/mozilla-bmo1636168-fscreen.patch b/mozilla-bmo1636168-fscreen.patch index e8bb310..6ee70ad 100644 --- a/mozilla-bmo1636168-fscreen.patch +++ b/mozilla-bmo1636168-fscreen.patch @@ -1,15 +1,7 @@ -diff -up firefox-114.0/widget/gtk/nsWindow.cpp.D110204-fscreen.diff firefox-114.0/widget/gtk/nsWindow.cpp ---- firefox-114.0/widget/gtk/nsWindow.cpp.D110204-fscreen.diff 2023-05-17 10:43:02.000000000 +0200 -+++ firefox-114.0/widget/gtk/nsWindow.cpp 2023-05-17 13:53:54.000443278 +0200 -@@ -100,6 +100,7 @@ - #include "ScreenHelperGTK.h" - #include "SystemTimeConverter.h" - #include "WidgetUtilsGtk.h" -+#include "nsIBrowserHandler.h" - - #ifdef ACCESSIBILITY - # include "mozilla/a11y/LocalAccessible.h" -@@ -173,7 +174,8 @@ const gint kEvents = GDK_TOUCHPAD_GESTUR +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 | @@ -19,7 +11,7 @@ diff -up firefox-114.0/widget/gtk/nsWindow.cpp.D110204-fscreen.diff firefox-114. /* utility functions */ static bool is_mouse_in_window(GdkWindow* aWindow, gdouble aMouseX, -@@ -433,7 +435,8 @@ nsWindow::nsWindow() +@@ -430,7 +431,8 @@ nsWindow::nsWindow() mResizedAfterMoveToRect(false), mConfiguredClearColor(false), mGotNonBlankPaint(false), @@ -29,7 +21,7 @@ diff -up firefox-114.0/widget/gtk/nsWindow.cpp.D110204-fscreen.diff firefox-114. mWindowType = WindowType::Child; mSizeConstraints.mMaxSize = GetSafeWindowSize(mSizeConstraints.mMaxSize); -@@ -5263,6 +5266,19 @@ void nsWindow::OnWindowStateEvent(GtkWid +@@ -5374,6 +5376,19 @@ void nsWindow::OnWindowStateEvent(GtkWid ClearTransparencyBitmap(); } } @@ -49,30 +41,18 @@ diff -up firefox-114.0/widget/gtk/nsWindow.cpp.D110204-fscreen.diff firefox-114. } void nsWindow::OnDPIChanged() { -@@ -7409,6 +7425,19 @@ nsresult nsWindow::MakeFullScreen(bool a - } - } +@@ -7526,6 +7541,7 @@ nsresult nsWindow::MakeFullScreen(bool a -+ // if in kiosk, ensure the fullscreen is called -+ nsCOMPtr browserHandler = -+ do_GetService("@mozilla.org/browser/clh;1"); -+ if (browserHandler) { -+ bool isKiosk; -+ browserHandler->GetKiosk(&isKiosk); -+ if (isKiosk) { -+ LOG(" is kiosk, ensure the window switch to fullscreen\n"); -+ mPendingFullscreen = true; -+ } -+ } else { -+ LOG(" Cannot find the browserHandler service.\n"); -+ } - gtk_window_fullscreen(GTK_WINDOW(mShell)); - } else { - gtk_window_unfullscreen(GTK_WINDOW(mShell)); -diff -up firefox-114.0/widget/gtk/nsWindow.h.D110204-fscreen.diff firefox-114.0/widget/gtk/nsWindow.h ---- firefox-114.0/widget/gtk/nsWindow.h.D110204-fscreen.diff 2023-05-17 08:46:16.000000000 +0200 -+++ firefox-114.0/widget/gtk/nsWindow.h 2023-05-17 13:51:29.502159247 +0200 -@@ -752,6 +752,7 @@ class nsWindow final : public nsBaseWidg + if (mKioskMonitor.isSome()) { + KioskLockOnMonitor(); ++ mPendingFullscreen = true; + } 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 * move-to-rect callback we set mMovedAfterMoveToRect/mResizedAfterMoveToRect. */ bool mWaitingForMoveToRectCallback : 1; diff --git a/mozilla-bmo1670333.patch b/mozilla-bmo1670333.patch index 7126d43..4d29f5d 100644 --- a/mozilla-bmo1670333.patch +++ b/mozilla-bmo1670333.patch @@ -1,7 +1,7 @@ -diff -up firefox-115.0/dom/media/mp4/MP4Demuxer.cpp.1670333 firefox-115.0/dom/media/mp4/MP4Demuxer.cpp ---- firefox-115.0/dom/media/mp4/MP4Demuxer.cpp.1670333 2023-06-06 23:14:43.000000000 +0200 -+++ firefox-115.0/dom/media/mp4/MP4Demuxer.cpp 2023-06-08 08:15:48.214109403 +0200 -@@ -32,6 +32,8 @@ mozilla::LogModule* GetDemuxerLog() { re +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 DDMOZ_LOG(gMediaDemuxerLog, mozilla::LogLevel::Debug, "::%s: " arg, \ __func__, ##__VA_ARGS__) @@ -10,7 +10,7 @@ diff -up firefox-115.0/dom/media/mp4/MP4Demuxer.cpp.1670333 firefox-115.0/dom/me namespace mozilla { using TimeUnit = media::TimeUnit; -@@ -404,6 +406,12 @@ already_AddRefed MP4TrackD +@@ -419,6 +421,12 @@ already_AddRefed MP4TrackD [[fallthrough]]; case H264::FrameType::OTHER: { bool keyframe = type == H264::FrameType::I_FRAME; @@ -23,10 +23,10 @@ diff -up firefox-115.0/dom/media/mp4/MP4Demuxer.cpp.1670333 firefox-115.0/dom/me if (sample->mKeyframe != keyframe) { NS_WARNING(nsPrintfCString("Frame incorrectly marked as %skeyframe " "@ pts:%" PRId64 " dur:%" PRId64 -diff -up firefox-115.0/dom/media/platforms/PDMFactory.cpp.1670333 firefox-115.0/dom/media/platforms/PDMFactory.cpp ---- firefox-115.0/dom/media/platforms/PDMFactory.cpp.1670333 2023-06-06 23:14:44.000000000 +0200 -+++ firefox-115.0/dom/media/platforms/PDMFactory.cpp 2023-06-08 08:09:33.145289602 +0200 -@@ -67,6 +67,8 @@ +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 @@ #include @@ -35,31 +35,28 @@ diff -up firefox-115.0/dom/media/platforms/PDMFactory.cpp.1670333 firefox-115.0/ using DecodeSupport = mozilla::media::DecodeSupport; using DecodeSupportSet = mozilla::media::DecodeSupportSet; using MediaCodec = mozilla::media::MediaCodec; -@@ -562,7 +564,7 @@ void PDMFactory::CreateRddPDMs() { +@@ -543,7 +545,7 @@ void PDMFactory::CreateRddPDMs() { #ifdef MOZ_FFMPEG if (StaticPrefs::media_ffmpeg_enabled() && StaticPrefs::media_rdd_ffmpeg_enabled() && -- !CreateAndStartupPDM()) { -+ !(mFFmpegUsed = CreateAndStartupPDM())) { +- !StartupPDM(FFmpegRuntimeLinker::CreateDecoder())) { ++ !(mFFmpegUsed = StartupPDM(FFmpegRuntimeLinker::CreateDecoder()))) { mFailureFlags += GetFailureFlagBasedOnFFmpegStatus( FFmpegRuntimeLinker::LinkStatusCode()); } -@@ -738,9 +740,10 @@ void PDMFactory::CreateDefaultPDMs() { - - CreateAndStartupPDM(); +@@ -719,7 +721,7 @@ void PDMFactory::CreateDefaultPDMs() { + StartupPDM(AgnosticDecoderModule::Create(), + StaticPrefs::media_prefer_non_ffvpx()); - if (StaticPrefs::media_gmp_decoder_enabled() && + if (StaticPrefs::media_gmp_decoder_enabled() && !mFFmpegUsed && !StartupPDM(GMPDecoderModule::Create(), StaticPrefs::media_gmp_decoder_preferred())) { -+ gUseKeyframeFromContainer = true; mFailureFlags += DecoderDoctorDiagnostics::Flags::GMPPDMFailedToStartup; - } - } -diff -up firefox-115.0/dom/media/platforms/PDMFactory.h.1670333 firefox-115.0/dom/media/platforms/PDMFactory.h ---- firefox-115.0/dom/media/platforms/PDMFactory.h.1670333 2023-06-06 23:14:42.000000000 +0200 -+++ firefox-115.0/dom/media/platforms/PDMFactory.h 2023-06-08 08:09:33.145289602 +0200 -@@ -103,6 +103,7 @@ class PDMFactory final { +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 { RefPtr mNullPDM; DecoderDoctorDiagnostics::FlagsSet mFailureFlags;