diff --git a/firefox-102.0-pref-print.patch b/firefox-102.0-pref-print.patch new file mode 100644 index 0000000..6fd0dce --- /dev/null +++ b/firefox-102.0-pref-print.patch @@ -0,0 +1,18 @@ +diff -up firefox-102.0/widget/gtk/DMABufLibWrapper.cpp.vaapi firefox-102.0/widget/gtk/DMABufLibWrapper.cpp +--- firefox-102.0/widget/gtk/DMABufLibWrapper.cpp.vaapi 2022-07-01 09:49:50.215536872 +0200 ++++ firefox-102.0/widget/gtk/DMABufLibWrapper.cpp 2022-07-01 09:50:43.036306610 +0200 +@@ -283,10 +283,11 @@ bool nsDMABufDevice::IsDMABufTexturesEna + bool nsDMABufDevice::IsDMABufVAAPIEnabled() { + LOGDMABUF( + ("nsDMABufDevice::IsDMABufVAAPIEnabled: EGL %d " +- "media_ffmpeg_vaapi_enabled %d CanUseHardwareVideoDecoding %d " ++ "CanUseHardwareVideoDecoding %d " + "XRE_IsRDDProcess %d\n", +- gfx::gfxVars::UseEGL(), StaticPrefs::media_ffmpeg_vaapi_enabled(), +- gfx::gfxVars::CanUseHardwareVideoDecoding(), XRE_IsRDDProcess())); ++ gfx::gfxVars::UseEGL(), ++ gfx::gfxVars::CanUseHardwareVideoDecoding(), ++ XRE_IsRDDProcess())); + return gfx::gfxVars::UseVAAPI() && XRE_IsRDDProcess() && + gfx::gfxVars::CanUseHardwareVideoDecoding(); + } diff --git a/firefox.spec b/firefox.spec index 571be20..2924c7e 100644 --- a/firefox.spec +++ b/firefox.spec @@ -18,6 +18,7 @@ %global debug_build 0 %global system_nss 1 +%global system_libevent 1 %global build_with_asan 0 %global test_on_wayland 1 @@ -34,7 +35,7 @@ ExcludeArch: s390x # Disabled due to # https://bugzilla.redhat.com/show_bug.cgi?id=1966949 -%if 0%{?fedora} > 33 +%if 0%{?fedora} > 36 ExcludeArch: armv7hl %endif @@ -169,7 +170,7 @@ ExcludeArch: aarch64 Summary: Mozilla Firefox Web browser Name: firefox Version: 102.0 -Release: 2%{?pre_tag}%{?dist} +Release: 3%{?pre_tag}%{?dist} URL: https://www.mozilla.org/firefox/ License: MPLv1.1 or GPLv2+ or LGPLv2+ Source0: https://archive.mozilla.org/pub/firefox/releases/%{version}%{?pre_version}/source/firefox-%{version}%{?pre_version}.source.tar.xz @@ -262,11 +263,15 @@ Patch444: D148946.diff Patch445: D149238.diff Patch446: mozilla-1758948.patch Patch447: mozilla-1774271.patch +Patch448: firefox-102.0-pref-print.patch # PGO/LTO patches Patch600: pgo.patch Patch602: mozilla-1516803.patch +# a patch for compiling with gcc on arm (from debian) +Patch990: work-around-GCC-ICE-on-arm.patch + # Backported WebRTC changes for PipeWire/Wayland screen sharing support Patch1000: libwebrtc-screen-cast-sync.patch @@ -336,6 +341,9 @@ Requires: pciutils-libs Requires: nspr >= %{nspr_build_version} Requires: nss >= %{nss_build_version} %endif +%if %{?system_libevent} +BuildRequires: pkgconfig(libevent) +%endif BuildRequires: python3-devel BuildRequires: python3-setuptools %if !0%{?flatpak} @@ -533,6 +541,7 @@ This package contains results of tests executed during build. %patch445 -p1 -b .D149238.diff %patch446 -p1 -b .mozbz#1758948 %patch447 -p1 -b .mozbz#1774271 +%patch448 -p1 -b .pref-print # PGO patches %if %{build_with_pgo} @@ -542,6 +551,8 @@ This package contains results of tests executed during build. %endif %endif +%patch990 -p1 -b .work-around-GCC-ICE-on-arm + %patch1000 -p1 -b .libwebrtc-screen-cast-sync %{__rm} -f .mozconfig @@ -565,6 +576,10 @@ echo "ac_add_options --without-system-nspr" >> .mozconfig echo "ac_add_options --without-system-nss" >> .mozconfig %endif +%if %{?system_libevent} +echo "ac_add_options --with-system-libevent" >> .mozconfig +%endif + %if %{?system_ffi} echo "ac_add_options --enable-system-ffi" >> .mozconfig %endif @@ -724,6 +739,27 @@ MOZ_OPT_FLAGS="$MOZ_OPT_FLAGS -fsanitize=address -Dxmalloc=myxmalloc" MOZ_LINK_FLAGS="$MOZ_LINK_FLAGS -fsanitize=address -ldl" %endif +%ifarch %{arm} +# disable hard-coded LTO due to RAM constraints +%{__sed} -i '/cargo_rustc_flags += -Clto/d' config/makefiles/rust.mk +%{__sed} -i '/RUSTFLAGS += -Cembed-bitcode=yes/d' config/makefiles/rust.mk +%{__sed} -i 's/codegen-units=1/codegen-units=16/' config/makefiles/rust.mk + +# make sure "-g0" is the last flag so there's no debug info +MOZ_OPT_FLAGS="$MOZ_OPT_FLAGS -g0" + +# https://bugzilla.mozilla.org/show_bug.cgi?id=1738845 +# should not be needed anymore with firefox 103 +echo "ac_add_options --disable-webrtc" >> .mozconfig + +# personal preferences +echo "ac_add_options --disable-webspeech" >> .mozconfig +echo "ac_add_options --disable-synth-speechd" >> .mozconfig +echo "ac_add_options --disable-accessibility" >> .mozconfig +echo "ac_add_options --disable-parental-controls" >> .mozconfig +echo "ac_add_options --disable-printing" >> .mozconfig +%endif + # We don't wantfirefox to use CK_GCM_PARAMS_V3 in nss MOZ_OPT_FLAGS="$MOZ_OPT_FLAGS -DNSS_PKCS11_3_0_STRICT" @@ -1112,6 +1148,10 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : #--------------------------------------------------------------------- %changelog +* Wed Jul 13 2022 Martin Stransky - 102.0-3 +- Update preference logging. +- Added ARM fixes by Gabriel Hojda. + * Mon Jul 11 2022 Jan Grulich - 102.0-2 - Backport upstream fixes to WebRTC for screensharing on Wayland diff --git a/work-around-GCC-ICE-on-arm.patch b/work-around-GCC-ICE-on-arm.patch new file mode 100644 index 0000000..b65c647 --- /dev/null +++ b/work-around-GCC-ICE-on-arm.patch @@ -0,0 +1,12 @@ +diff -ur a/gfx/skia/skia/third_party/skcms/src/Transform_inl.h b/gfx/skia/skia/third_party/skcms/src/Transform_inl.h +--- a/gfx/skia/skia/third_party/skcms/src/Transform_inl.h 2022-05-27 08:37:14.642698922 +0300 ++++ b/gfx/skia/skia/third_party/skcms/src/Transform_inl.h 2022-05-27 12:23:43.592185545 +0300 +@@ -683,7 +683,7 @@ + // GCC 7.2.0 hits an internal compiler error with -finline-functions (or -O3) + // when targeting MIPS 64, i386, or s390x, I think attempting to inline clut() into exec_ops(). + #if 1 && defined(__GNUC__) && !defined(__clang__) \ +- && (defined(__mips64) || defined(__i386) || defined(__s390x__)) ++ && (defined(__arm__) || defined(__mips64) || defined(__i386) || defined(__s390x__)) + #define MAYBE_NOINLINE __attribute__((noinline)) + #else + #define MAYBE_NOINLINE