diff --git a/Bug-1238661---fix-mozillaSignalTrampoline-to-work-.patch b/Bug-1238661---fix-mozillaSignalTrampoline-to-work-.patch deleted file mode 100644 index 6dfe2ada2bcab17ecf2caf305034f76b6e4b6a96..0000000000000000000000000000000000000000 --- a/Bug-1238661---fix-mozillaSignalTrampoline-to-work-.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -up firefox-60.0/mfbt/LinuxSignal.h.mozilla-1238661 firefox-60.0/mfbt/LinuxSignal.h ---- firefox-60.0/mfbt/LinuxSignal.h.mozilla-1238661 2018-04-27 08:55:38.848241768 +0200 -+++ firefox-60.0/mfbt/LinuxSignal.h 2018-04-27 09:06:47.946769859 +0200 -@@ -22,7 +22,7 @@ __attribute__((naked)) void SignalTrampo - void* aContext) { - asm volatile("nop; nop; nop; nop" : : : "memory"); - -- asm volatile("b %0" : : "X"(H) : "memory"); -+ asm volatile("bx %0" : : "r"(H), "l"(aSignal), "l"(aInfo), "l"(aContext) : "memory"); - } - - # define MOZ_SIGNAL_TRAMPOLINE(h) (mozilla::SignalTrampoline) diff --git a/Bug-1526653---fix_user_vfp_armv7.patch b/Bug-1526653---fix_user_vfp_armv7.patch deleted file mode 100644 index 3f84f9522a28d2e40b3f23266d90f4f495347c02..0000000000000000000000000000000000000000 --- a/Bug-1526653---fix_user_vfp_armv7.patch +++ /dev/null @@ -1,35 +0,0 @@ -From fd6847c9416f9eebde636e21d794d25d1be8791d Mon Sep 17 00:00:00 2001 -From: Mike Hommey -Date: Sat, 1 Jun 2019 09:06:01 +0900 -Subject: [PATCH] Bug 1526653 - Include struct definitions for user_vfp and - user_vfp_exc. - ---- - js/src/wasm/WasmSignalHandlers.cpp | 11 ++++++++++- - 1 file changed, 10 insertions(+), 1 deletion(-) - -diff --git a/js/src/wasm/WasmSignalHandlers.cpp b/js/src/wasm/WasmSignalHandlers.cpp -index 636537f8478..383c380f04c 100644 ---- a/js/src/wasm/WasmSignalHandlers.cpp -+++ b/js/src/wasm/WasmSignalHandlers.cpp -@@ -248,7 +248,16 @@ using mozilla::DebugOnly; - #endif - - #ifdef WASM_EMULATE_ARM_UNALIGNED_FP_ACCESS --# include -+struct user_vfp { -+ unsigned long long fpregs[32]; -+ unsigned long fpscr; -+}; -+ -+struct user_vfp_exc { -+ unsigned long fpexc; -+ unsigned long fpinst; -+ unsigned long fpinst2; -+}; - #endif - - #if defined(ANDROID) --- -2.20.1 - diff --git a/D110204-fscreen.diff b/D110204-fscreen.diff new file mode 100644 index 0000000000000000000000000000000000000000..99eeb3b5e9d13a0f619efdbb1017724be621d3f5 --- /dev/null +++ b/D110204-fscreen.diff @@ -0,0 +1,70 @@ +diff -up firefox-91.0/widget/gtk/nsWindow.cpp.D110204-fscreen.diff firefox-91.0/widget/gtk/nsWindow.cpp +--- firefox-91.0/widget/gtk/nsWindow.cpp.D110204-fscreen.diff 2021-07-27 23:31:38.000000000 +0200 ++++ firefox-91.0/widget/gtk/nsWindow.cpp 2021-07-30 15:47:22.031795569 +0200 +@@ -91,6 +91,7 @@ + #include "SystemTimeConverter.h" + #include "WidgetUtilsGtk.h" + #include "mozilla/X11Util.h" ++#include "nsIBrowserHandler.h" + + #ifdef ACCESSIBILITY + # include "mozilla/a11y/LocalAccessible.h" +@@ -441,6 +442,7 @@ nsWindow::nsWindow() + mHasMappedToplevel(false), + mRetryPointerGrab(false), + mSizeState(nsSizeMode_Normal), ++ mPendingFullscreen(false), + mAspectRatio(0.0f), + mAspectRatioSaved(0.0f), + mLastScrollEventTime(GDK_CURRENT_TIME), +@@ -4626,6 +4628,19 @@ void nsWindow::OnWindowStateEvent(GtkWid + ClearTransparencyBitmap(); + } + } ++ ++ // Hack to ensure window switched to fullscreen - avoid to fail when starting ++ // in kiosk mode ++ if (mPendingFullscreen && ++ !(aEvent->new_window_state & GDK_WINDOW_STATE_FULLSCREEN)) { ++ LOG( ++ (" Window should be fullscreen, but it's not, retrying set to " ++ "fullscreen.\n")); ++ MakeFullScreen(true); ++ } else { ++ LOG((" Window successfully switched to fullscreen, happy now\n")); ++ mPendingFullscreen = false; ++ } + } + + void nsWindow::OnDPIChanged() { +@@ -6880,6 +6895,19 @@ 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 { + mSizeMode = mLastSizeMode; +diff -up firefox-91.0/widget/gtk/nsWindow.h.D110204-fscreen.diff firefox-91.0/widget/gtk/nsWindow.h +--- firefox-91.0/widget/gtk/nsWindow.h.D110204-fscreen.diff 2021-07-27 23:31:38.000000000 +0200 ++++ firefox-91.0/widget/gtk/nsWindow.h 2021-07-29 18:35:41.000639386 +0200 +@@ -763,6 +763,7 @@ class nsWindow final : public nsBaseWidg + * move-to-rect callback we store it to mNewSizeAfterMoveToRect. + */ + bool mWaitingForMoveToRectCallback; ++ bool mPendingFullscreen; + LayoutDeviceIntRect mNewSizeAfterMoveToRect; + + /** diff --git a/Python-2.7.13.tar.xz b/Python-2.7.13.tar.xz deleted file mode 100644 index cba84ccdff7e0f771133edf36e4442f8b076468c..0000000000000000000000000000000000000000 Binary files a/Python-2.7.13.tar.xz and /dev/null differ diff --git a/Python-3.6.8.tar.xz b/Python-3.6.8.tar.xz deleted file mode 100644 index bef174db7f1607b07d66402521dd94c6cdba884d..0000000000000000000000000000000000000000 Binary files a/Python-3.6.8.tar.xz and /dev/null differ diff --git a/build-debug-qcms.patch b/build-debug-qcms.patch deleted file mode 100644 index a65223a316170d3fb48ea8ecf8b97807aef6814e..0000000000000000000000000000000000000000 --- a/build-debug-qcms.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -up firefox-60.0/gfx/qcms/transform-altivec.c.debug firefox-60.0/gfx/qcms/transform-altivec.c ---- firefox-60.0/gfx/qcms/transform-altivec.c.debug 2018-05-15 09:26:43.603043100 +0200 -+++ firefox-60.0/gfx/qcms/transform-altivec.c 2018-05-15 09:28:57.302385632 +0200 -@@ -30,7 +30,7 @@ - static const ALIGN float floatScaleX4 = FLOATSCALE; - static const ALIGN float clampMaxValueX4 = CLAMPMAXVAL; - --inline vector float load_aligned_float(float *dataPtr) -+static vector float load_aligned_float(float *dataPtr) - { - vector float data = vec_lde(0, dataPtr); - vector unsigned char moveToStart = vec_lvsl(0, dataPtr); diff --git a/build-debuginfo-fix.patch b/build-debuginfo-fix.patch new file mode 100644 index 0000000000000000000000000000000000000000..03fc3000b1f0e11d62fe0bab30f02c0110d543d3 --- /dev/null +++ b/build-debuginfo-fix.patch @@ -0,0 +1,24 @@ +diff -up firefox-91.0.1/third_party/libwebrtc/webrtc/modules/audio_processing/utility/ooura_fft.cc.debuginfo-fix firefox-91.0.1/third_party/libwebrtc/webrtc/modules/audio_processing/utility/ooura_fft.cc +--- firefox-91.0.1/third_party/libwebrtc/webrtc/modules/audio_processing/utility/ooura_fft.cc.debuginfo-fix 2021-09-01 11:11:46.738285751 +0200 ++++ firefox-91.0.1/third_party/libwebrtc/webrtc/modules/audio_processing/utility/ooura_fft.cc 2021-09-01 11:11:56.127319530 +0200 +@@ -21,7 +21,7 @@ + * be found in the AUTHORS file in the root of the source tree. + */ + +-#include "modules/audio_processing//utility/ooura_fft.h" ++#include "modules/audio_processing/utility/ooura_fft.h" + + #include + +diff -up firefox-91.0.1/third_party/libwebrtc/webrtc/modules/audio_processing/utility/ooura_fft_sse2.cc.debuginfo-fix firefox-91.0.1/third_party/libwebrtc/webrtc/modules/audio_processing/utility/ooura_fft_sse2.cc +--- firefox-91.0.1/third_party/libwebrtc/webrtc/modules/audio_processing/utility/ooura_fft_sse2.cc.debuginfo-fix 2021-09-01 11:12:26.513428847 +0200 ++++ firefox-91.0.1/third_party/libwebrtc/webrtc/modules/audio_processing/utility/ooura_fft_sse2.cc 2021-09-01 11:12:32.117449009 +0200 +@@ -8,7 +8,7 @@ + * be found in the AUTHORS file in the root of the source tree. + */ + +-#include "modules/audio_processing//utility/ooura_fft.h" ++#include "modules/audio_processing/utility/ooura_fft.h" + + #include + diff --git a/build-icu-big-endian.patch b/build-icu-big-endian.patch deleted file mode 100644 index ee5fd6a07b6150695e904ecf673689f22702ec18..0000000000000000000000000000000000000000 --- a/build-icu-big-endian.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff -up firefox-68.0/build/autoconf/icu.m4.icu firefox-68.0/build/autoconf/icu.m4 ---- firefox-68.0/build/autoconf/icu.m4.icu 2019-06-25 21:25:25.394425654 +0200 -+++ firefox-68.0/build/autoconf/icu.m4 2019-06-25 21:26:23.544210474 +0200 -@@ -78,7 +78,7 @@ if test -n "$USE_ICU"; then - # TODO: the l is actually endian-dependent - # We could make this set as 'l' or 'b' for little or big, respectively, - # but we'd need to check in a big-endian version of the file. -- ICU_DATA_FILE="icudt${version}l.dat" -+ ICU_DATA_FILE="icudt${version}b.dat" - fi - - AC_SUBST(MOZ_ICU_VERSION) - diff --git a/build-icu-make.patch b/build-icu-make.patch deleted file mode 100644 index 6a040916202df92416ca7bf45bb2fa2da6eb025a..0000000000000000000000000000000000000000 --- a/build-icu-make.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff -up firefox-68.8.0/intl/icu_sources_data.py.icu-makefile firefox-68.8.0/intl/icu_sources_data.py ---- firefox-68.8.0/intl/icu_sources_data.py.icu-makefile 2020-05-11 17:00:03.642605718 +0200 -+++ firefox-68.8.0/intl/icu_sources_data.py 2020-05-11 17:00:37.774642749 +0200 -@@ -246,8 +246,7 @@ def update_data_file(topsrcdir): - if not try_run( - 'icu-make', - ['make', -- '--jobs=%d' % multiprocessing.cpu_count(), -- '--output-sync'], -+ '--jobs=1'], - cwd=objdir): - return False - print('Copying ICU data file...') diff --git a/build-nss-version.patch b/build-nss-version.patch index 7847090a6b229302ff2d1e4a7dec40ac336103b1..25d34f679d5d19dc33bb9f137882853942cbc036 100644 --- a/build-nss-version.patch +++ b/build-nss-version.patch @@ -1,12 +1,24 @@ -diff -up firefox-68.3.0/old-configure.in.nss-version firefox-68.3.0/old-configure.in ---- firefox-68.3.0/old-configure.in.nss-version 2019-11-27 19:48:01.045677621 +0100 -+++ firefox-68.3.0/old-configure.in 2019-11-27 19:59:52.856894047 +0100 -@@ -1537,7 +1537,7 @@ MOZ_ARG_WITH_BOOL(system-nss, - _USE_SYSTEM_NSS=1 ) - - if test -n "$_USE_SYSTEM_NSS"; then -- AM_PATH_NSS(3.44.4, [MOZ_SYSTEM_NSS=1], [AC_MSG_ERROR([you don't have NSS installed or your version is too old])]) -+ AM_PATH_NSS(3.44.0, [MOZ_SYSTEM_NSS=1], [AC_MSG_ERROR([you don't have NSS installed or your version is too old])]) - fi - - NSS_CFLAGS="$NSS_CFLAGS -I${DIST}/include/nss" +diff -up firefox-91.0.1/build/moz.configure/nspr.configure.nss-nspr-downgrade firefox-91.0.1/build/moz.configure/nspr.configure +--- firefox-91.0.1/build/moz.configure/nspr.configure.nss-nspr-downgrade 2021-08-25 13:17:26.265307060 +0200 ++++ firefox-91.0.1/build/moz.configure/nspr.configure 2021-08-25 13:17:28.161313632 +0200 +@@ -50,7 +50,7 @@ set_define("JS_WITHOUT_NSPR", True, when + def nspr_minver(js_standalone): + if js_standalone: + return "nspr >= 4.10" +- return "nspr >= 4.32" ++ return "nspr >= 4.31" + + + nspr_pkg = pkg_check_modules("NSPR", nspr_minver, when="--with-system-nspr") +diff -up firefox-91.0.1/build/moz.configure/nss.configure.nss-nspr-downgrade firefox-91.0.1/build/moz.configure/nss.configure +--- firefox-91.0.1/build/moz.configure/nss.configure.nss-nspr-downgrade 2021-08-25 13:17:45.049372175 +0200 ++++ firefox-91.0.1/build/moz.configure/nss.configure 2021-08-25 13:17:37.763346918 +0200 +@@ -9,7 +9,7 @@ option("--with-system-nss", help="Use sy + imply_option("--with-system-nspr", True, when="--with-system-nss") + + nss_pkg = pkg_check_modules( +- "NSS", "nss >= 3.68", when="--with-system-nss", config=False ++ "NSS", "nss >= 3.67", when="--with-system-nss", config=False + ) + + set_config("MOZ_SYSTEM_NSS", True, when="--with-system-nss") diff --git a/build-rhel7-nasm-dwarf.patch b/build-rhel7-nasm-dwarf.patch new file mode 100644 index 0000000000000000000000000000000000000000..5e2ba4ab0a6e5a42046102424a8f0dd5dc44e9ee --- /dev/null +++ b/build-rhel7-nasm-dwarf.patch @@ -0,0 +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): + 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" diff --git a/cbindgen-vendor.tar.xz b/cbindgen-vendor.tar.xz index d776cb428b4c6fde09594906a73ee19e23e21a31..c429578cdb021576b0a5b32e67feddfb16827ee5 100644 Binary files a/cbindgen-vendor.tar.xz and b/cbindgen-vendor.tar.xz differ diff --git a/firefox-68.10.0esr.source.tar.xz b/firefox-91.3.0esr.processed-source.tar.xz similarity index 79% rename from firefox-68.10.0esr.source.tar.xz rename to firefox-91.3.0esr.processed-source.tar.xz index 58b6ae6021c75576e2143b5b5b27101314328c73..fd706e582b2faa6f3fb3a4408092e78420f89cea 100644 Binary files a/firefox-68.10.0esr.source.tar.xz and b/firefox-91.3.0esr.processed-source.tar.xz differ diff --git a/firefox-debugedits-error.patch b/firefox-debugedits-error.patch deleted file mode 100644 index a4b005f3e6995a6def02882485d926a9d1a9eeb9..0000000000000000000000000000000000000000 --- a/firefox-debugedits-error.patch +++ /dev/null @@ -1,50 +0,0 @@ -diff -up firefox-68.0/media/libyuv/libyuv/tools_libyuv/autoroller/unittests/testdata/DEPS.chromium.old firefox-68.0/media/libyuv/libyuv/tools_libyuv/autoroller/unittests/testdata/DEPS.chromium -diff -up firefox-68.0/media/webrtc/trunk/Makefile.old firefox-68.0/media/webrtc/trunk/Makefile -diff -up firefox-68.0/media/webrtc/trunk/webrtc/modules/audio_processing/utility/ooura_fft.cc.old firefox-68.0/media/webrtc/trunk/webrtc/modules/audio_processing/utility/ooura_fft.cc ---- firefox-68.0/media/webrtc/trunk/webrtc/modules/audio_processing/utility/ooura_fft.cc.old 2019-06-12 08:17:02.673268442 +0200 -+++ firefox-68.0/media/webrtc/trunk/webrtc/modules/audio_processing/utility/ooura_fft.cc 2019-06-12 08:17:13.582328073 +0200 -@@ -21,7 +21,7 @@ - * be found in the AUTHORS file in the root of the source tree. - */ - --#include "modules/audio_processing//utility/ooura_fft.h" -+#include "modules/audio_processing/utility/ooura_fft.h" - - #include - -diff -up firefox-68.0/media/webrtc/trunk/webrtc/modules/audio_processing/utility/ooura_fft_sse2.cc.old firefox-68.0/media/webrtc/trunk/webrtc/modules/audio_processing/utility/ooura_fft_sse2.cc ---- firefox-68.0/media/webrtc/trunk/webrtc/modules/audio_processing/utility/ooura_fft_sse2.cc.old 2019-06-12 08:17:36.671454285 +0200 -+++ firefox-68.0/media/webrtc/trunk/webrtc/modules/audio_processing/utility/ooura_fft_sse2.cc 2019-06-12 08:17:46.989510679 +0200 -@@ -8,7 +8,7 @@ - * be found in the AUTHORS file in the root of the source tree. - */ - --#include "modules/audio_processing//utility/ooura_fft.h" -+#include "modules/audio_processing/utility/ooura_fft.h" - - #include - -diff -up firefox-68.0/third_party/aom/aom_dsp/x86/masked_sad_intrin_avx2.c.old firefox-68.0/third_party/aom/aom_dsp/x86/masked_sad_intrin_avx2.c ---- firefox-68.0/third_party/aom/aom_dsp/x86/masked_sad_intrin_avx2.c.old 2019-06-12 08:16:15.673011534 +0200 -+++ firefox-68.0/third_party/aom/aom_dsp/x86/masked_sad_intrin_avx2.c 2019-06-12 08:16:22.602049410 +0200 -@@ -17,7 +17,7 @@ - #include "aom_dsp/blend.h" - #include "aom/aom_integer.h" - #include "aom_dsp/x86/synonyms.h" --#include "aom_dsp/x86//masked_sad_intrin_ssse3.h" -+#include "aom_dsp/x86/masked_sad_intrin_ssse3.h" - - static INLINE unsigned int masked_sad32xh_avx2( - const uint8_t *src_ptr, int src_stride, const uint8_t *a_ptr, int a_stride, -diff -up firefox-68.0/third_party/aom/aom_dsp/x86/masked_sad_intrin_ssse3.c.old firefox-68.0/third_party/aom/aom_dsp/x86/masked_sad_intrin_ssse3.c ---- firefox-68.0/third_party/aom/aom_dsp/x86/masked_sad_intrin_ssse3.c.old 2019-06-12 08:16:35.404119384 +0200 -+++ firefox-68.0/third_party/aom/aom_dsp/x86/masked_sad_intrin_ssse3.c 2019-06-12 08:16:43.415163174 +0200 -@@ -19,7 +19,7 @@ - #include "aom/aom_integer.h" - #include "aom_dsp/x86/synonyms.h" - --#include "aom_dsp/x86//masked_sad_intrin_ssse3.h" -+#include "aom_dsp/x86/masked_sad_intrin_ssse3.h" - - // For width a multiple of 16 - static INLINE unsigned int masked_sad_ssse3(const uint8_t *src_ptr, diff --git a/firefox-dont-check-binary.patch b/firefox-dont-check-binary.patch deleted file mode 100644 index c49803463858a3b351dffbaa0384f5d45339646c..0000000000000000000000000000000000000000 --- a/firefox-dont-check-binary.patch +++ /dev/null @@ -1,47 +0,0 @@ -diff -up firefox-68.0/config/rules.mk.old firefox-68.0/config/rules.mk ---- firefox-68.0/config/rules.mk.old 2019-06-26 09:36:58.537034443 +0200 -+++ firefox-68.0/config/rules.mk 2019-06-26 09:37:38.004970573 +0200 -@@ -569,7 +569,6 @@ ifdef MOZ_PROFILE_GENERATE - endif - else # !WINNT || GNU_CC - $(call EXPAND_CC_OR_CXX,$@) -o $@ $(COMPUTED_CXX_LDFLAGS) $(PGO_CFLAGS) $($(notdir $@)_$(OBJS_VAR_SUFFIX)) $(RESFILE) $(WIN32_EXE_LDFLAGS) $(LDFLAGS) $(STATIC_LIBS) $(RUST_STATIC_LIB) $(MOZ_PROGRAM_LDFLAGS) $(SHARED_LIBS) $(OS_LIBS) -- $(call py_action,check_binary,--target $@) - endif # WINNT && !GNU_CC - - ifdef ENABLE_STRIP -@@ -604,9 +603,6 @@ else - $(HOST_CC) -o $@ $(HOST_C_LDFLAGS) $(HOST_LDFLAGS) $($(notdir $@)_OBJS) $(HOST_LIBS) $(HOST_EXTRA_LIBS) - endif # HOST_CPP_PROG_LINK - endif --ifndef CROSS_COMPILE -- $(call py_action,check_binary,--host $@) --endif - - # - # This is an attempt to support generation of multiple binaries -@@ -630,7 +626,6 @@ ifdef MSMANIFEST_TOOL - endif # MSVC with manifest tool - else - $(call EXPAND_CC_OR_CXX,$@) $(COMPUTED_CXX_LDFLAGS) $(PGO_CFLAGS) -o $@ $($@_$(OBJS_VAR_SUFFIX)) $(WIN32_EXE_LDFLAGS) $(LDFLAGS) $(STATIC_LIBS) $(MOZ_PROGRAM_LDFLAGS) $(SHARED_LIBS) $(OS_LIBS) -- $(call py_action,check_binary,--target $@) - endif # WINNT && !GNU_CC - - ifdef ENABLE_STRIP -@@ -651,9 +646,6 @@ else - $(HOST_CC) $(HOST_OUTOPTION)$@ $(HOST_C_LDFLAGS) $($(notdir $@)_OBJS) $(HOST_LIBS) $(HOST_EXTRA_LIBS) - endif - endif --ifndef CROSS_COMPILE -- $(call py_action,check_binary,--host $@) --endif - - $(LIBRARY): $(OBJS) $(STATIC_LIBS) $(EXTRA_DEPS) $(GLOBAL_DEPS) - $(REPORT_BUILD) -@@ -691,7 +683,6 @@ ifndef INCREMENTAL_LINKER - $(RM) $@ - endif - $(MKSHLIB) $($@_$(OBJS_VAR_SUFFIX)) $(RESFILE) $(LDFLAGS) $(STATIC_LIBS) $(RUST_STATIC_LIB) $(SHARED_LIBS) $(EXTRA_DSO_LDOPTS) $(MOZ_GLUE_LDFLAGS) $(OS_LIBS) -- $(call py_action,check_binary,--target $@) - - ifeq (_WINNT,$(GNU_CC)_$(OS_ARCH)) - ifdef MSMANIFEST_TOOL diff --git a/firefox-langpacks-68.10.0esr-20200626.tar.xz b/firefox-langpacks-91.3.0esr-20211101.tar.xz similarity index 73% rename from firefox-langpacks-68.10.0esr-20200626.tar.xz rename to firefox-langpacks-91.3.0esr-20211101.tar.xz index f59979a30f4ffd6c75e71d4bb91e0fae1be22f88..1d9fd65b5d1777548cc78cdf3ac90bf612db7796 100644 Binary files a/firefox-langpacks-68.10.0esr-20200626.tar.xz and b/firefox-langpacks-91.3.0esr-20211101.tar.xz differ diff --git a/firefox-mozconfig b/firefox-mozconfig index 558555950ef3986957056eabc58661d775ad3cc0..9e8a32fff11fe0c6fae149d67dc91a6b263d969b 100644 --- a/firefox-mozconfig +++ b/firefox-mozconfig @@ -1,24 +1,27 @@ . $topsrcdir/browser/config/mozconfig -ac_add_options --enable-default-toolkit=cairo-gtk3 - ac_add_options --prefix="$PREFIX" ac_add_options --libdir="$LIBDIR" ac_add_options --with-system-zlib -ac_add_options --with-system-bz2 ac_add_options --disable-strip ac_add_options --disable-tests #ac_add_options --enable-libnotify ac_add_options --enable-necko-wifi -ac_add_options --enable-startup-notification ac_add_options --disable-updater ac_add_options --enable-chrome-format=omni ac_add_options --enable-pulseaudio -ac_add_options --with-system-icu +ac_add_options --without-system-icu +ac_add_options --enable-release +ac_add_options --update-channel=release +ac_add_options --allow-addon-sideload +ac_add_options --with-system-jpeg +ac_add_options --enable-js-shell +ac_add_options --with-unsigned-addon-scopes=app,system + ac_add_options --with-mozilla-api-keyfile=../mozilla-api-key ac_add_options --with-google-location-service-api-keyfile=../google-api-key ac_add_options --with-google-safebrowsing-api-keyfile=../google-api-key -ac_add_options --disable-av1 +ac_add_options --disable-crashreporter export BUILD_OFFICIAL=1 export MOZILLA_OFFICIAL=1 diff --git a/firefox-pipewire-0-3.patch b/firefox-pipewire-0-3.patch deleted file mode 100644 index 7aa06b934ec38cc516c91989dbf5d3cc9f2ec6f5..0000000000000000000000000000000000000000 --- a/firefox-pipewire-0-3.patch +++ /dev/null @@ -1,821 +0,0 @@ -diff --git a/config/system-headers.mozbuild b/config/system-headers.mozbuild -index 2081d0c683a4..641133bf1ea4 100644 ---- a/config/system-headers.mozbuild -+++ b/config/system-headers.mozbuild -@@ -314,6 +314,7 @@ system_headers = [ - 'Gestalt.h', - 'getopt.h', - 'gio/gio.h', -+ 'gio/gunixfdlist.h', - 'glibconfig.h', - 'glib.h', - 'glib-object.h', -@@ -607,6 +608,7 @@ system_headers = [ - 'Pgenerr.h', - 'PGenErr.h', - 'Ph.h', -+ 'pipewire/pipewire.h', - 'pixman.h', - 'pk11func.h', - 'pk11pqg.h', -diff --git a/media/webrtc/trunk/webrtc/modules/desktop_capture/desktop_capture_generic_gn/moz.build b/media/webrtc/trunk/webrtc/modules/desktop_capture/desktop_capture_generic_gn/moz.build -index 90b40431c7e4..d844aa79d591 100644 ---- a/media/webrtc/trunk/webrtc/modules/desktop_capture/desktop_capture_generic_gn/moz.build -+++ b/media/webrtc/trunk/webrtc/modules/desktop_capture/desktop_capture_generic_gn/moz.build -@@ -194,6 +194,30 @@ if CONFIG["OS_TARGET"] == "Linux": - "/media/webrtc/trunk/webrtc/modules/desktop_capture/window_capturer_linux.cc" - ] - -+# PipeWire specific files -+if CONFIG["OS_TARGET"] == "Linux": -+ -+ DEFINES["WEBRTC_USE_PIPEWIRE"] = "1" -+ -+ OS_LIBS += [ -+ "rt", -+ "pipewire-0.3", -+ "glib-2.0", -+ "gio-2.0", -+ "gobject-2.0" -+ ] -+ -+ CXXFLAGS += CONFIG['TK_CFLAGS'] -+ CXXFLAGS += [ "-I/usr/include/pipewire-0.3" ] -+ CXXFLAGS += [ "-I/usr/include/spa-0.2" ] -+ -+ UNIFIED_SOURCES += [ -+ "/media/webrtc/trunk/webrtc/modules/desktop_capture/linux/base_capturer_pipewire.cc", -+ "/media/webrtc/trunk/webrtc/modules/desktop_capture/linux/screen_capturer_pipewire.cc", -+ "/media/webrtc/trunk/webrtc/modules/desktop_capture/linux/window_capturer_pipewire.cc" -+ ] -+ -+ - if CONFIG["OS_TARGET"] == "NetBSD": - - DEFINES["USE_X11"] = "1" -diff --git a/media/webrtc/trunk/webrtc/modules/desktop_capture/desktop_capture_options.h b/media/webrtc/trunk/webrtc/modules/desktop_capture/desktop_capture_options.h -index 1eb8ead26efa..316468eed1fc 100644 ---- a/media/webrtc/trunk/webrtc/modules/desktop_capture/desktop_capture_options.h -+++ b/media/webrtc/trunk/webrtc/modules/desktop_capture/desktop_capture_options.h -@@ -141,7 +141,7 @@ class DesktopCaptureOptions { - bool disable_effects_ = true; - bool detect_updated_region_ = false; - #if defined(WEBRTC_USE_PIPEWIRE) -- bool allow_pipewire_ = false; -+ bool allow_pipewire_ = true; - #endif - }; - -diff --git a/media/webrtc/trunk/webrtc/modules/desktop_capture/linux/base_capturer_pipewire.cc b/media/webrtc/trunk/webrtc/modules/desktop_capture/linux/base_capturer_pipewire.cc -index 379341c833de..53e2683df2e8 100644 ---- a/media/webrtc/trunk/webrtc/modules/desktop_capture/linux/base_capturer_pipewire.cc -+++ b/media/webrtc/trunk/webrtc/modules/desktop_capture/linux/base_capturer_pipewire.cc -@@ -15,8 +15,11 @@ - - #include - #include --#include --#include -+ -+#include -+#include -+#include -+#include - - #include - #include -@@ -36,31 +39,36 @@ const char kSessionInterfaceName[] = "org.freedesktop.portal.Session"; - const char kRequestInterfaceName[] = "org.freedesktop.portal.Request"; - const char kScreenCastInterfaceName[] = "org.freedesktop.portal.ScreenCast"; - --// static --void BaseCapturerPipeWire::OnStateChanged(void* data, -- pw_remote_state old_state, -- pw_remote_state state, -- const char* error_message) { -- BaseCapturerPipeWire* that = static_cast(data); -- RTC_DCHECK(that); - -- switch (state) { -- case PW_REMOTE_STATE_ERROR: -- RTC_LOG(LS_ERROR) << "PipeWire remote state error: " << error_message; -- break; -- case PW_REMOTE_STATE_CONNECTED: -- RTC_LOG(LS_INFO) << "PipeWire remote state: connected."; -- that->CreateReceivingStream(); -- break; -- case PW_REMOTE_STATE_CONNECTING: -- RTC_LOG(LS_INFO) << "PipeWire remote state: connecting."; -+// static -+void BaseCapturerPipeWire::SyncDmaBuf(int fd, uint64_t start_or_end) { -+ struct dma_buf_sync sync = { 0 }; -+ -+ sync.flags = start_or_end | DMA_BUF_SYNC_READ; -+ -+ while(true) { -+ int ret; -+ ret = ioctl (fd, DMA_BUF_IOCTL_SYNC, &sync); -+ if (ret == -1 && errno == EINTR) { -+ continue; -+ } else if (ret == -1) { -+ RTC_LOG(LS_ERROR) << "Failed to synchronize DMA buffer: " << g_strerror(errno); - break; -- case PW_REMOTE_STATE_UNCONNECTED: -- RTC_LOG(LS_INFO) << "PipeWire remote state: unconnected."; -+ } else { - break; -+ } - } - } - -+// static -+void BaseCapturerPipeWire::OnCoreError(void *data, -+ uint32_t id, -+ int seq, -+ int res, -+ const char *message) { -+ RTC_LOG(LS_ERROR) << "core error: " << message; -+} -+ - // static - void BaseCapturerPipeWire::OnStreamStateChanged(void* data, - pw_stream_state old_state, -@@ -73,76 +81,54 @@ void BaseCapturerPipeWire::OnStreamStateChanged(void* data, - case PW_STREAM_STATE_ERROR: - RTC_LOG(LS_ERROR) << "PipeWire stream state error: " << error_message; - break; -- case PW_STREAM_STATE_CONFIGURE: -- pw_stream_set_active(that->pw_stream_, true); -- break; -- case PW_STREAM_STATE_UNCONNECTED: -- case PW_STREAM_STATE_CONNECTING: -- case PW_STREAM_STATE_READY: - case PW_STREAM_STATE_PAUSED: - case PW_STREAM_STATE_STREAMING: -+ case PW_STREAM_STATE_UNCONNECTED: -+ case PW_STREAM_STATE_CONNECTING: - break; - } - } - - // static --void BaseCapturerPipeWire::OnStreamFormatChanged(void* data, -- const struct spa_pod* format) { -+void BaseCapturerPipeWire::OnStreamParamChanged(void *data, uint32_t id, -+ const struct spa_pod *format) { - BaseCapturerPipeWire* that = static_cast(data); - RTC_DCHECK(that); - -- RTC_LOG(LS_INFO) << "PipeWire stream format changed."; -+ RTC_LOG(LS_INFO) << "PipeWire stream param changed."; - -- if (!format) { -- pw_stream_finish_format(that->pw_stream_, /*res=*/0, /*params=*/nullptr, -- /*n_params=*/0); -+ if (!format || id != SPA_PARAM_Format) { - return; - } - -- that->spa_video_format_ = new spa_video_info_raw(); -- spa_format_video_raw_parse(format, that->spa_video_format_, -- &that->pw_type_->format_video); -+ spa_format_video_raw_parse(format, &that->spa_video_format_); - -- auto width = that->spa_video_format_->size.width; -- auto height = that->spa_video_format_->size.height; -+ auto width = that->spa_video_format_.size.width; -+ auto height = that->spa_video_format_.size.height; - auto stride = SPA_ROUND_UP_N(width * kBytesPerPixel, 4); - auto size = height * stride; - -+ that->desktop_size_ = DesktopSize(width, height); -+ - uint8_t buffer[1024] = {}; - auto builder = spa_pod_builder{buffer, sizeof(buffer)}; - - // Setup buffers and meta header for new format. -- const struct spa_pod* params[2]; -- params[0] = reinterpret_cast(spa_pod_builder_object( -- &builder, -- // id to enumerate buffer requirements -- that->pw_core_type_->param.idBuffers, -- that->pw_core_type_->param_buffers.Buffers, -- // Size: specified as integer (i) and set to specified size -- ":", that->pw_core_type_->param_buffers.size, "i", size, -- // Stride: specified as integer (i) and set to specified stride -- ":", that->pw_core_type_->param_buffers.stride, "i", stride, -- // Buffers: specifies how many buffers we want to deal with, set as -- // integer (i) where preferred number is 8, then allowed number is defined -- // as range (r) from min and max values and it is undecided (u) to allow -- // negotiation -- ":", that->pw_core_type_->param_buffers.buffers, "iru", 8, -- SPA_POD_PROP_MIN_MAX(1, 32), -- // Align: memory alignment of the buffer, set as integer (i) to specified -- // value -- ":", that->pw_core_type_->param_buffers.align, "i", 16)); -- params[1] = reinterpret_cast(spa_pod_builder_object( -- &builder, -- // id to enumerate supported metadata -- that->pw_core_type_->param.idMeta, that->pw_core_type_->param_meta.Meta, -- // Type: specified as id or enum (I) -- ":", that->pw_core_type_->param_meta.type, "I", -- that->pw_core_type_->meta.Header, -- // Size: size of the metadata, specified as integer (i) -- ":", that->pw_core_type_->param_meta.size, "i", -- sizeof(struct spa_meta_header))); -- -- pw_stream_finish_format(that->pw_stream_, /*res=*/0, params, /*n_params=*/2); -+ const struct spa_pod* params[3]; -+ params[0] = reinterpret_cast(spa_pod_builder_add_object(&builder, -+ SPA_TYPE_OBJECT_ParamBuffers, SPA_PARAM_Buffers, -+ SPA_PARAM_BUFFERS_size, SPA_POD_Int(size), -+ SPA_PARAM_BUFFERS_stride, SPA_POD_Int(stride), -+ SPA_PARAM_BUFFERS_buffers, SPA_POD_CHOICE_RANGE_Int(8, 1, 32))); -+ params[1] = reinterpret_cast(spa_pod_builder_add_object(&builder, -+ SPA_TYPE_OBJECT_ParamMeta, SPA_PARAM_Meta, -+ SPA_PARAM_META_type, SPA_POD_Id(SPA_META_Header), -+ SPA_PARAM_META_size, SPA_POD_Int(sizeof(struct spa_meta_header)))); -+ params[2] = reinterpret_cast(spa_pod_builder_add_object(&builder, -+ SPA_TYPE_OBJECT_ParamMeta, SPA_PARAM_Meta, -+ SPA_PARAM_META_type, SPA_POD_Id (SPA_META_VideoCrop), -+ SPA_PARAM_META_size, SPA_POD_Int (sizeof(struct spa_meta_region)))); -+ pw_stream_update_params(that->pw_stream_, params, 3); - } - - // static -@@ -150,15 +136,25 @@ void BaseCapturerPipeWire::OnStreamProcess(void* data) { - BaseCapturerPipeWire* that = static_cast(data); - RTC_DCHECK(that); - -- pw_buffer* buf = nullptr; -+ struct pw_buffer *next_buffer; -+ struct pw_buffer *buffer = nullptr; - -- if (!(buf = pw_stream_dequeue_buffer(that->pw_stream_))) { -+ next_buffer = pw_stream_dequeue_buffer(that->pw_stream_); -+ while (next_buffer) { -+ buffer = next_buffer; -+ next_buffer = pw_stream_dequeue_buffer(that->pw_stream_); -+ -+ if (next_buffer) -+ pw_stream_queue_buffer (that->pw_stream_, buffer); -+ } -+ -+ if (!buffer) { - return; - } - -- that->HandleBuffer(buf); -+ that->HandleBuffer(buffer); - -- pw_stream_queue_buffer(that->pw_stream_, buf); -+ pw_stream_queue_buffer(that->pw_stream_, buffer); - } - - BaseCapturerPipeWire::BaseCapturerPipeWire(CaptureSourceType source_type) -@@ -169,38 +165,22 @@ BaseCapturerPipeWire::~BaseCapturerPipeWire() { - pw_thread_loop_stop(pw_main_loop_); - } - -- if (pw_type_) { -- delete pw_type_; -- } -- -- if (spa_video_format_) { -- delete spa_video_format_; -- } -- - if (pw_stream_) { - pw_stream_destroy(pw_stream_); - } - -- if (pw_remote_) { -- pw_remote_destroy(pw_remote_); -+ if (pw_core_) { -+ pw_core_disconnect(pw_core_); - } - -- if (pw_core_) { -- pw_core_destroy(pw_core_); -+ if (pw_context_) { -+ pw_context_destroy(pw_context_); - } - - if (pw_main_loop_) { - pw_thread_loop_destroy(pw_main_loop_); - } - -- if (pw_loop_) { -- pw_loop_destroy(pw_loop_); -- } -- -- if (current_frame_) { -- free(current_frame_); -- } -- - if (start_request_signal_id_) { - g_dbus_connection_signal_unsubscribe(connection_, start_request_signal_id_); - } -@@ -250,27 +230,35 @@ void BaseCapturerPipeWire::InitPortal() { - void BaseCapturerPipeWire::InitPipeWire() { - pw_init(/*argc=*/nullptr, /*argc=*/nullptr); - -- pw_loop_ = pw_loop_new(/*properties=*/nullptr); -- pw_main_loop_ = pw_thread_loop_new(pw_loop_, "pipewire-main-loop"); -- -- pw_core_ = pw_core_new(pw_loop_, /*properties=*/nullptr); -- pw_core_type_ = pw_core_get_type(pw_core_); -- pw_remote_ = pw_remote_new(pw_core_, nullptr, /*user_data_size=*/0); -+ pw_main_loop_ = pw_thread_loop_new("pipewire-main-loop", nullptr); -+ pw_context_ = pw_context_new(pw_thread_loop_get_loop(pw_main_loop_), nullptr, 0); -+ if (!pw_context_) { -+ RTC_LOG(LS_ERROR) << "Failed to create PipeWire context"; -+ return; -+ } - -- InitPipeWireTypes(); -+ pw_core_ = pw_context_connect(pw_context_, nullptr, 0); -+ if (!pw_core_) { -+ RTC_LOG(LS_ERROR) << "Failed to connect PipeWire context"; -+ return; -+ } - - // Initialize event handlers, remote end and stream-related. -- pw_remote_events_.version = PW_VERSION_REMOTE_EVENTS; -- pw_remote_events_.state_changed = &OnStateChanged; -+ pw_core_events_.version = PW_VERSION_CORE_EVENTS; -+ pw_core_events_.error = &OnCoreError; - - pw_stream_events_.version = PW_VERSION_STREAM_EVENTS; - pw_stream_events_.state_changed = &OnStreamStateChanged; -- pw_stream_events_.format_changed = &OnStreamFormatChanged; -+ pw_stream_events_.param_changed = &OnStreamParamChanged; - pw_stream_events_.process = &OnStreamProcess; - -- pw_remote_add_listener(pw_remote_, &spa_remote_listener_, &pw_remote_events_, -- this); -- pw_remote_connect_fd(pw_remote_, pw_fd_); -+ pw_core_add_listener(pw_core_, &spa_core_listener_, &pw_core_events_, this); -+ -+ pw_stream_ = CreateReceivingStream(); -+ if (!pw_stream_) { -+ RTC_LOG(LS_ERROR) << "Failed to create PipeWire stream"; -+ return; -+ } - - if (pw_thread_loop_start(pw_main_loop_) < 0) { - RTC_LOG(LS_ERROR) << "Failed to start main PipeWire loop"; -@@ -278,81 +266,120 @@ void BaseCapturerPipeWire::InitPipeWire() { - } - } - --void BaseCapturerPipeWire::InitPipeWireTypes() { -- spa_type_map* map = pw_core_type_->map; -- pw_type_ = new PipeWireType(); -- -- spa_type_media_type_map(map, &pw_type_->media_type); -- spa_type_media_subtype_map(map, &pw_type_->media_subtype); -- spa_type_format_video_map(map, &pw_type_->format_video); -- spa_type_video_format_map(map, &pw_type_->video_format); --} -- --void BaseCapturerPipeWire::CreateReceivingStream() { -+pw_stream* BaseCapturerPipeWire::CreateReceivingStream() { - spa_rectangle pwMinScreenBounds = spa_rectangle{1, 1}; -- spa_rectangle pwScreenBounds = -- spa_rectangle{static_cast(desktop_size_.width()), -- static_cast(desktop_size_.height())}; -+ spa_rectangle pwMaxScreenBounds = spa_rectangle{INT32_MAX, INT32_MAX}; - -- spa_fraction pwFrameRateMin = spa_fraction{0, 1}; -- spa_fraction pwFrameRateMax = spa_fraction{60, 1}; -+ auto stream = pw_stream_new(pw_core_, "webrtc-pipewire-stream", nullptr); - -- pw_properties* reuseProps = pw_properties_new("pipewire.client.reuse", "1", -- /*end of varargs*/ nullptr); -- pw_stream_ = pw_stream_new(pw_remote_, "webrtc-consume-stream", reuseProps); -+ if (!stream) { -+ RTC_LOG(LS_ERROR) << "Could not create receiving stream."; -+ return nullptr; -+ } - - uint8_t buffer[1024] = {}; -- const spa_pod* params[1]; -- spa_pod_builder builder = spa_pod_builder{buffer, sizeof(buffer)}; -- params[0] = reinterpret_cast(spa_pod_builder_object( -- &builder, -- // id to enumerate formats -- pw_core_type_->param.idEnumFormat, pw_core_type_->spa_format, "I", -- pw_type_->media_type.video, "I", pw_type_->media_subtype.raw, -- // Video format: specified as id or enum (I), preferred format is BGRx, -- // then allowed formats are enumerated (e) and the format is undecided (u) -- // to allow negotiation -- ":", pw_type_->format_video.format, "Ieu", pw_type_->video_format.BGRx, -- SPA_POD_PROP_ENUM(2, pw_type_->video_format.RGBx, -- pw_type_->video_format.BGRx), -- // Video size: specified as rectangle (R), preferred size is specified as -- // first parameter, then allowed size is defined as range (r) from min and -- // max values and the format is undecided (u) to allow negotiation -- ":", pw_type_->format_video.size, "Rru", &pwScreenBounds, 2, -- &pwMinScreenBounds, &pwScreenBounds, -- // Frame rate: specified as fraction (F) and set to minimum frame rate -- // value -- ":", pw_type_->format_video.framerate, "F", &pwFrameRateMin, -- // Max frame rate: specified as fraction (F), preferred frame rate is set -- // to maximum value, then allowed frame rate is defined as range (r) from -- // min and max values and it is undecided (u) to allow negotiation -- ":", pw_type_->format_video.max_framerate, "Fru", &pwFrameRateMax, 2, -- &pwFrameRateMin, &pwFrameRateMax)); -- -- pw_stream_add_listener(pw_stream_, &spa_stream_listener_, &pw_stream_events_, -- this); -+ const spa_pod* params[2]; -+ spa_pod_builder builder = SPA_POD_BUILDER_INIT(buffer, sizeof (buffer)); -+ -+ params[0] = reinterpret_cast(spa_pod_builder_add_object(&builder, -+ SPA_TYPE_OBJECT_Format, SPA_PARAM_EnumFormat, -+ SPA_FORMAT_mediaType, SPA_POD_Id(SPA_MEDIA_TYPE_video), -+ SPA_FORMAT_mediaSubtype, SPA_POD_Id(SPA_MEDIA_SUBTYPE_raw), -+ SPA_FORMAT_VIDEO_format, SPA_POD_CHOICE_ENUM_Id(5, SPA_VIDEO_FORMAT_BGRx, SPA_VIDEO_FORMAT_RGBx, SPA_VIDEO_FORMAT_RGBA, -+ SPA_VIDEO_FORMAT_BGRx, SPA_VIDEO_FORMAT_BGRA), -+ SPA_FORMAT_VIDEO_size, SPA_POD_CHOICE_RANGE_Rectangle(&pwMinScreenBounds, -+ &pwMinScreenBounds, -+ &pwMaxScreenBounds), -+ 0)); -+ pw_stream_add_listener(stream, &spa_stream_listener_, &pw_stream_events_, this); -+ - pw_stream_flags flags = static_cast( -- PW_STREAM_FLAG_AUTOCONNECT | PW_STREAM_FLAG_INACTIVE | -- PW_STREAM_FLAG_MAP_BUFFERS); -- if (pw_stream_connect(pw_stream_, PW_DIRECTION_INPUT, /*port_path=*/nullptr, -- flags, params, -- /*n_params=*/1) != 0) { -+ PW_STREAM_FLAG_AUTOCONNECT | PW_STREAM_FLAG_INACTIVE); -+ -+ if (pw_stream_connect(stream, PW_DIRECTION_INPUT, pw_stream_node_id_, PW_STREAM_FLAG_AUTOCONNECT, params, 1) != 0) { - RTC_LOG(LS_ERROR) << "Could not connect receiving stream."; - portal_init_failed_ = true; -- return; - } -+ -+ return stream; - } - - void BaseCapturerPipeWire::HandleBuffer(pw_buffer* buffer) { -+ struct spa_meta_region* video_crop; - spa_buffer* spaBuffer = buffer->buffer; -- void* src = nullptr; -+ uint8_t *map = nullptr; -+ uint8_t* src = nullptr; -+ uint8_t* dst = nullptr; -+ -+ if (spaBuffer->datas[0].chunk->size == 0) { -+ map = nullptr; -+ src = nullptr; -+ } else if (spaBuffer->datas[0].type == SPA_DATA_MemFd) { -+ map = static_cast(mmap( -+ nullptr, spaBuffer->datas[0].maxsize + spaBuffer->datas[0].mapoffset, -+ PROT_READ, MAP_PRIVATE, spaBuffer->datas[0].fd, 0)); -+ src = SPA_MEMBER(map, spaBuffer->datas[0].mapoffset, uint8_t); -+ } else if (spaBuffer->datas[0].type == SPA_DATA_DmaBuf) { -+ int fd; -+ fd = spaBuffer->datas[0].fd; -+ -+ map = static_cast(mmap( -+ nullptr, spaBuffer->datas[0].maxsize + spaBuffer->datas[0].mapoffset, -+ PROT_READ, MAP_PRIVATE, fd, 0)); -+ SyncDmaBuf(fd, DMA_BUF_SYNC_START); -+ -+ src = SPA_MEMBER(map, spaBuffer->datas[0].mapoffset, uint8_t); -+ } else if (spaBuffer->datas[0].type == SPA_DATA_MemPtr) { -+ map = nullptr; -+ src = static_cast(spaBuffer->datas[0].data); -+ } else { -+ return; -+ } - -- if (!(src = spaBuffer->datas[0].data)) { -+ if (!src) { - return; - } - -- uint32_t maxSize = spaBuffer->datas[0].maxsize; -- int32_t srcStride = spaBuffer->datas[0].chunk->stride; -+ DesktopSize prev_crop_size = DesktopSize(0, 0); -+ if (video_crop_size_initialized_) { -+ prev_crop_size = video_crop_size_; -+ } -+ -+ if ((video_crop = static_cast( -+ spa_buffer_find_meta_data(spaBuffer, SPA_META_VideoCrop, sizeof(*video_crop))))) { -+ RTC_DCHECK(video_crop->region.size.width <= desktop_size_.width() && -+ video_crop->region.size.height <= desktop_size_.height()); -+ if ((video_crop->region.size.width != desktop_size_.width() || -+ video_crop->region.size.height != desktop_size_.height()) && video_crop->region.size.width && video_crop->region.size.height) { -+ video_crop_size_ = DesktopSize(video_crop->region.size.width, video_crop->region.size.height); -+ video_crop_size_initialized_ = true; -+ } else { -+ video_crop_size_initialized_ = false; -+ } -+ } else { -+ video_crop_size_initialized_ = false; -+ } -+ -+ size_t frame_size; -+ if (video_crop_size_initialized_) { -+ frame_size = -+ video_crop_size_.width() * video_crop_size_.height() * kBytesPerPixel; -+ } else { -+ frame_size = -+ desktop_size_.width() * desktop_size_.height() * kBytesPerPixel; -+ } -+ -+ if (!current_frame_ || -+ (video_crop_size_initialized_ && !video_crop_size_.equals(prev_crop_size))) { -+ current_frame_ = std::make_unique(frame_size); -+ } -+ RTC_DCHECK(current_frame_ != nullptr); -+ -+ const int32_t dstStride = video_crop_size_initialized_ -+ ? video_crop_size_.width() * kBytesPerPixel -+ : desktop_size_.width() * kBytesPerPixel; -+ const int32_t srcStride = spaBuffer->datas[0].chunk->stride; -+ - if (srcStride != (desktop_size_.width() * kBytesPerPixel)) { - RTC_LOG(LS_ERROR) << "Got buffer with stride different from screen stride: " - << srcStride -@@ -361,21 +388,40 @@ void BaseCapturerPipeWire::HandleBuffer(pw_buffer* buffer) { - return; - } - -- if (!current_frame_) { -- current_frame_ = static_cast(malloc(maxSize)); -+ dst = current_frame_.get(); -+ -+ // Adjust source content based on crop video position -+ if (video_crop_size_initialized_ && -+ (video_crop->region.position.y + video_crop_size_.height() <= desktop_size_.height())) { -+ for (int i = 0; i < video_crop->region.position.y; ++i) { -+ src += srcStride; -+ } -+ } -+ const int xOffset = -+ video_crop_size_initialized_ && (video_crop->region.position.x + video_crop_size_.width() <= -+ desktop_size_.width()) -+ ? video_crop->region.position.x * kBytesPerPixel -+ : 0; -+ const int height = video_crop_size_initialized_ ? video_crop_size_.height() : desktop_size_.height(); -+ for (int i = 0; i < height; ++i) { -+ // Adjust source content based on crop video position if needed -+ src += xOffset; -+ std::memcpy(dst, src, dstStride); -+ // If both sides decided to go with the RGBx format we need to convert it to -+ // BGRx to match color format expected by WebRTC. -+ if (spa_video_format_.format == SPA_VIDEO_FORMAT_RGBx || -+ spa_video_format_.format == SPA_VIDEO_FORMAT_RGBA) { -+ ConvertRGBxToBGRx(dst, dstStride); -+ } -+ src += srcStride - xOffset; -+ dst += dstStride; - } -- RTC_DCHECK(current_frame_ != nullptr); - -- // If both sides decided to go with the RGBx format we need to convert it to -- // BGRx to match color format expected by WebRTC. -- if (spa_video_format_->format == pw_type_->video_format.RGBx) { -- uint8_t* tempFrame = static_cast(malloc(maxSize)); -- std::memcpy(tempFrame, src, maxSize); -- ConvertRGBxToBGRx(tempFrame, maxSize); -- std::memcpy(current_frame_, tempFrame, maxSize); -- free(tempFrame); -- } else { -- std::memcpy(current_frame_, src, maxSize); -+ if (map) { -+ if (spaBuffer->datas[0].type == SPA_DATA_DmaBuf) { -+ SyncDmaBuf(spaBuffer->datas[0].fd, DMA_BUF_SYNC_END); -+ } -+ munmap(map, spaBuffer->datas[0].maxsize + spaBuffer->datas[0].mapoffset); - } - } - -@@ -725,10 +771,7 @@ void BaseCapturerPipeWire::OnStartRequestResponseSignal( - g_variant_get(variant, "(u@a{sv})", &stream_id, &options); - RTC_DCHECK(options != nullptr); - -- g_variant_lookup(options, "size", "(ii)", &width, &height); -- -- that->desktop_size_.set(width, height); -- -+ that->pw_stream_node_id_ = stream_id; - g_variant_unref(options); - g_variant_unref(variant); - } -@@ -813,10 +856,15 @@ void BaseCapturerPipeWire::CaptureFrame() { - return; - } - -- std::unique_ptr result(new BasicDesktopFrame(desktop_size_)); -+ DesktopSize frame_size = desktop_size_; -+ if (video_crop_size_initialized_) { -+ frame_size = video_crop_size_; -+ } -+ -+ std::unique_ptr result(new BasicDesktopFrame(frame_size)); - result->CopyPixelsFrom( -- current_frame_, (desktop_size_.width() * kBytesPerPixel), -- DesktopRect::MakeWH(desktop_size_.width(), desktop_size_.height())); -+ current_frame_.get(), (frame_size.width() * kBytesPerPixel), -+ DesktopRect::MakeWH(frame_size.width(), frame_size.height())); - if (!result) { - callback_->OnCaptureResult(Result::ERROR_TEMPORARY, nullptr); - return; -@@ -837,4 +885,22 @@ bool BaseCapturerPipeWire::SelectSource(SourceId id) { - return true; - } - -+// static -+std::unique_ptr -+BaseCapturerPipeWire::CreateRawScreenCapturer( -+ const DesktopCaptureOptions& options) { -+ std::unique_ptr capturer = -+ std::make_unique(BaseCapturerPipeWire::CaptureSourceType::kAny); -+ return std::move(capturer);} -+ -+// static -+std::unique_ptr -+BaseCapturerPipeWire::CreateRawWindowCapturer( -+ const DesktopCaptureOptions& options) { -+ -+ std::unique_ptr capturer = -+ std::make_unique(BaseCapturerPipeWire::CaptureSourceType::kAny); -+ return std::move(capturer); -+} -+ - } // namespace webrtc -diff --git a/media/webrtc/trunk/webrtc/modules/desktop_capture/linux/base_capturer_pipewire.h b/media/webrtc/trunk/webrtc/modules/desktop_capture/linux/base_capturer_pipewire.h -index 56b101acbaa6..de54157d1a2a 100644 ---- a/media/webrtc/trunk/webrtc/modules/desktop_capture/linux/base_capturer_pipewire.h -+++ b/media/webrtc/trunk/webrtc/modules/desktop_capture/linux/base_capturer_pipewire.h -@@ -22,17 +22,13 @@ - - namespace webrtc { - --class PipeWireType { -- public: -- spa_type_media_type media_type; -- spa_type_media_subtype media_subtype; -- spa_type_format_video format_video; -- spa_type_video_format video_format; --}; -- - class BaseCapturerPipeWire : public DesktopCapturer { - public: -- enum CaptureSourceType { Screen = 1, Window }; -+ enum CaptureSourceType : uint32_t { -+ kScreen = 0b01, -+ kWindow = 0b10, -+ kAny = 0b11 -+ }; - - explicit BaseCapturerPipeWire(CaptureSourceType source_type); - ~BaseCapturerPipeWire() override; -@@ -43,28 +39,32 @@ class BaseCapturerPipeWire : public DesktopCapturer { - bool GetSourceList(SourceList* sources) override; - bool SelectSource(SourceId id) override; - -+ static std::unique_ptr CreateRawScreenCapturer( -+ const DesktopCaptureOptions& options); -+ -+ static std::unique_ptr CreateRawWindowCapturer( -+ const DesktopCaptureOptions& options); -+ - private: - // PipeWire types --> -+ pw_context* pw_context_ = nullptr; - pw_core* pw_core_ = nullptr; -- pw_type* pw_core_type_ = nullptr; - pw_stream* pw_stream_ = nullptr; -- pw_remote* pw_remote_ = nullptr; -- pw_loop* pw_loop_ = nullptr; - pw_thread_loop* pw_main_loop_ = nullptr; -- PipeWireType* pw_type_ = nullptr; - -+ spa_hook spa_core_listener_ = {}; - spa_hook spa_stream_listener_ = {}; -- spa_hook spa_remote_listener_ = {}; - -+ pw_core_events pw_core_events_ = {}; - pw_stream_events pw_stream_events_ = {}; -- pw_remote_events pw_remote_events_ = {}; - -- spa_video_info_raw* spa_video_format_ = nullptr; -+ struct spa_video_info_raw spa_video_format_; - -+ guint32 pw_stream_node_id_ = 0; - gint32 pw_fd_ = -1; - - CaptureSourceType capture_source_type_ = -- BaseCapturerPipeWire::CaptureSourceType::Screen; -+ BaseCapturerPipeWire::CaptureSourceType::kAny; - - // <-- end of PipeWire types - -@@ -78,33 +78,37 @@ class BaseCapturerPipeWire : public DesktopCapturer { - guint sources_request_signal_id_ = 0; - guint start_request_signal_id_ = 0; - -+ bool video_crop_size_initialized_ = false; -+ DesktopSize video_crop_size_;; - DesktopSize desktop_size_ = {}; - DesktopCaptureOptions options_ = {}; - -- uint8_t* current_frame_ = nullptr; -+ std::unique_ptr current_frame_; - Callback* callback_ = nullptr; - - bool portal_init_failed_ = false; - - void InitPortal(); - void InitPipeWire(); -- void InitPipeWireTypes(); - -- void CreateReceivingStream(); -+ pw_stream* CreateReceivingStream(); - void HandleBuffer(pw_buffer* buffer); - - void ConvertRGBxToBGRx(uint8_t* frame, uint32_t size); - -- static void OnStateChanged(void* data, -- pw_remote_state old_state, -- pw_remote_state state, -- const char* error); -+ static void SyncDmaBuf(int fd, uint64_t start_or_end); -+ static void OnCoreError(void *data, -+ uint32_t id, -+ int seq, -+ int res, -+ const char *message); -+ static void OnStreamParamChanged(void *data, -+ uint32_t id, -+ const struct spa_pod *format); - static void OnStreamStateChanged(void* data, - pw_stream_state old_state, - pw_stream_state state, - const char* error_message); -- -- static void OnStreamFormatChanged(void* data, const struct spa_pod* format); - static void OnStreamProcess(void* data); - static void OnNewBuffer(void* data, uint32_t id); - -diff --git a/media/webrtc/trunk/webrtc/modules/desktop_capture/linux/screen_capturer_pipewire.cc b/media/webrtc/trunk/webrtc/modules/desktop_capture/linux/screen_capturer_pipewire.cc -index 26956fc67dc8..3813d697bb38 100644 ---- a/media/webrtc/trunk/webrtc/modules/desktop_capture/linux/screen_capturer_pipewire.cc -+++ b/media/webrtc/trunk/webrtc/modules/desktop_capture/linux/screen_capturer_pipewire.cc -@@ -15,7 +15,7 @@ - namespace webrtc { - - ScreenCapturerPipeWire::ScreenCapturerPipeWire() -- : BaseCapturerPipeWire(BaseCapturerPipeWire::CaptureSourceType::Screen) {} -+ : BaseCapturerPipeWire(BaseCapturerPipeWire::CaptureSourceType::kScreen) {} - ScreenCapturerPipeWire::~ScreenCapturerPipeWire() {} - - // static -diff --git a/media/webrtc/trunk/webrtc/modules/desktop_capture/linux/window_capturer_pipewire.cc b/media/webrtc/trunk/webrtc/modules/desktop_capture/linux/window_capturer_pipewire.cc -index 35436475cb4d..c43a1f1a0c4e 100644 ---- a/media/webrtc/trunk/webrtc/modules/desktop_capture/linux/window_capturer_pipewire.cc -+++ b/media/webrtc/trunk/webrtc/modules/desktop_capture/linux/window_capturer_pipewire.cc -@@ -15,7 +15,7 @@ - namespace webrtc { - - WindowCapturerPipeWire::WindowCapturerPipeWire() -- : BaseCapturerPipeWire(BaseCapturerPipeWire::CaptureSourceType::Window) {} -+ : BaseCapturerPipeWire(BaseCapturerPipeWire::CaptureSourceType::kWindow) {} - WindowCapturerPipeWire::~WindowCapturerPipeWire() {} - - // static -diff --git a/media/webrtc/trunk/webrtc/modules/desktop_capture/screen_capturer_linux.cc b/media/webrtc/trunk/webrtc/modules/desktop_capture/screen_capturer_linux.cc -index cf8a9dd0e0db..d27fab8d28d9 100644 ---- a/media/webrtc/trunk/webrtc/modules/desktop_capture/screen_capturer_linux.cc -+++ b/media/webrtc/trunk/webrtc/modules/desktop_capture/screen_capturer_linux.cc -@@ -26,7 +26,7 @@ std::unique_ptr DesktopCapturer::CreateRawScreenCapturer( - const DesktopCaptureOptions& options) { - #if defined(WEBRTC_USE_PIPEWIRE) - if (options.allow_pipewire() && DesktopCapturer::IsRunningUnderWayland()) { -- return ScreenCapturerPipeWire::CreateRawScreenCapturer(options); -+ return BaseCapturerPipeWire::CreateRawScreenCapturer(options); - } - #endif // defined(WEBRTC_USE_PIPEWIRE) - -diff --git a/media/webrtc/trunk/webrtc/modules/desktop_capture/window_capturer_linux.cc b/media/webrtc/trunk/webrtc/modules/desktop_capture/window_capturer_linux.cc -index 82359e50c2db..bb9724cf7cc2 100644 ---- a/media/webrtc/trunk/webrtc/modules/desktop_capture/window_capturer_linux.cc -+++ b/media/webrtc/trunk/webrtc/modules/desktop_capture/window_capturer_linux.cc -@@ -26,7 +26,7 @@ std::unique_ptr DesktopCapturer::CreateRawWindowCapturer( - const DesktopCaptureOptions& options) { - #if defined(WEBRTC_USE_PIPEWIRE) - if (options.allow_pipewire() && DesktopCapturer::IsRunningUnderWayland()) { -- return WindowCapturerPipeWire::CreateRawWindowCapturer(options); -+ return BaseCapturerPipeWire::CreateRawWindowCapturer(options); - } - #endif // defined(WEBRTC_USE_PIPEWIRE) - diff --git a/firefox-pipewire.patch b/firefox-pipewire.patch deleted file mode 100644 index 7233a7318263ad9adbe418a7261904bdb9aacdc4..0000000000000000000000000000000000000000 --- a/firefox-pipewire.patch +++ /dev/null @@ -1,63 +0,0 @@ -diff -up firefox-68.0/config/system-headers.mozbuild.firefox-pipewire firefox-68.0/config/system-headers.mozbuild ---- firefox-68.0/config/system-headers.mozbuild.firefox-pipewire 2019-07-01 22:30:26.000000000 +0200 -+++ firefox-68.0/config/system-headers.mozbuild 2019-07-08 15:26:15.397161627 +0200 -@@ -314,6 +314,7 @@ system_headers = [ - 'Gestalt.h', - 'getopt.h', - 'gio/gio.h', -+ 'gio/gunixfdlist.h', - 'glibconfig.h', - 'glib.h', - 'glib-object.h', -@@ -607,6 +608,7 @@ system_headers = [ - 'Pgenerr.h', - 'PGenErr.h', - 'Ph.h', -+ 'pipewire/pipewire.h', - 'pixman.h', - 'pk11func.h', - 'pk11pqg.h', -diff -up firefox-68.0/media/webrtc/trunk/webrtc/modules/desktop_capture/desktop_capture_generic_gn/moz.build.firefox-pipewire firefox-68.0/media/webrtc/trunk/webrtc/modules/desktop_capture/desktop_capture_generic_gn/moz.build ---- firefox-68.0/media/webrtc/trunk/webrtc/modules/desktop_capture/desktop_capture_generic_gn/moz.build.firefox-pipewire 2019-07-01 22:30:33.000000000 +0200 -+++ firefox-68.0/media/webrtc/trunk/webrtc/modules/desktop_capture/desktop_capture_generic_gn/moz.build 2019-07-08 15:26:15.397161627 +0200 -@@ -194,6 +194,28 @@ if CONFIG["OS_TARGET"] == "Linux": - "/media/webrtc/trunk/webrtc/modules/desktop_capture/window_capturer_linux.cc" - ] - -+# PipeWire specific files -+if CONFIG["OS_TARGET"] == "Linux": -+ -+ DEFINES["WEBRTC_USE_PIPEWIRE"] = "1" -+ -+ OS_LIBS += [ -+ "rt", -+ "pipewire-0.2", -+ "glib-2.0", -+ "gio-2.0", -+ "gobject-2.0" -+ ] -+ -+ CXXFLAGS += CONFIG['TK_CFLAGS'] -+ -+ UNIFIED_SOURCES += [ -+ "/media/webrtc/trunk/webrtc/modules/desktop_capture/linux/base_capturer_pipewire.cc", -+ "/media/webrtc/trunk/webrtc/modules/desktop_capture/linux/screen_capturer_pipewire.cc", -+ "/media/webrtc/trunk/webrtc/modules/desktop_capture/linux/window_capturer_pipewire.cc" -+ ] -+ -+ - if CONFIG["OS_TARGET"] == "NetBSD": - - DEFINES["USE_X11"] = "1" -diff -up firefox-68.0/media/webrtc/trunk/webrtc/modules/desktop_capture/desktop_capture_options.h.firefox-pipewire firefox-68.0/media/webrtc/trunk/webrtc/modules/desktop_capture/desktop_capture_options.h ---- firefox-68.0/media/webrtc/trunk/webrtc/modules/desktop_capture/desktop_capture_options.h.firefox-pipewire 2019-07-08 16:42:13.936254926 +0200 -+++ firefox-68.0/media/webrtc/trunk/webrtc/modules/desktop_capture/desktop_capture_options.h 2019-07-08 16:42:17.509264974 +0200 -@@ -141,7 +141,7 @@ class DesktopCaptureOptions { - bool disable_effects_ = true; - bool detect_updated_region_ = false; - #if defined(WEBRTC_USE_PIPEWIRE) -- bool allow_pipewire_ = false; -+ bool allow_pipewire_ = true; - #endif - }; - diff --git a/firefox-anolis-default-prefs.js b/firefox-redhat-default-prefs.js similarity index 87% rename from firefox-anolis-default-prefs.js rename to firefox-redhat-default-prefs.js index a02fa2afcbded8c928dcdc3eb0e5052762e7b776..9ead3a2085db1bcf5515db5f25c4db81fc6ba7a6 100644 --- a/firefox-anolis-default-prefs.js +++ b/firefox-redhat-default-prefs.js @@ -14,9 +14,9 @@ pref("browser.shell.checkDefaultBrowser", false); pref("network.manage-offline-status", true); pref("extensions.shownSelectionUI", true); pref("ui.SpellCheckerUnderlineStyle", 1); -pref("startup.homepage_override_url", "https://openanolis.cn/"); -pref("startup.homepage_welcome_url", "https://openanolis.cn/"); -pref("browser.startup.homepage", "data:text/plain,browser.startup.homepage=file:///usr/share/doc/HTML/index.html"); +pref("startup.homepage_override_url", "http://www.redhat.com"); +pref("startup.homepage_welcome_url", "http://www.redhat.com"); +pref("browser.startup.homepage", "data:text/plain,browser.startup.homepage=file:///%PREFIX%/share/doc/HTML/index.html"); pref("geo.wifi.uri", "https://location.services.mozilla.com/v1/geolocate?key=%MOZILLA_API_KEY%"); pref("media.gmp-gmpopenh264.provider.enabled",false); pref("media.gmp-gmpopenh264.autoupdate",false); @@ -32,4 +32,4 @@ pref("security.use_sqldb", false); /* Use OS settings for UI language */ pref("intl.locale.requested", ""); /* See https://bugzilla.redhat.com/show_bug.cgi?id=1672424 */ -pref("storage.nfs_filesystem", true); +pref("storage.nfs_filesystem", true); \ No newline at end of file diff --git a/firefox-rhel6-hugepage.patch b/firefox-rhel6-hugepage.patch deleted file mode 100644 index 4855721fa5d385588795a595ba19e21a4bb2e0a6..0000000000000000000000000000000000000000 --- a/firefox-rhel6-hugepage.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff -up firefox-68.1.0/xpcom/threads/nsThread.cpp.old firefox-68.1.0/xpcom/threads/nsThread.cpp ---- firefox-68.1.0/xpcom/threads/nsThread.cpp.old 2019-09-20 12:17:35.481661390 +0200 -+++ firefox-68.1.0/xpcom/threads/nsThread.cpp 2019-09-20 12:19:14.269180516 +0200 -@@ -556,7 +556,8 @@ void nsThread::InitCommon() { - // kernel report them as separate regions, even when they are adjacent to - // heap memory. This allows us to accurately track the actual memory - // consumption of our allocated stacks. -- madvise(mStackBase, stackSize, MADV_NOHUGEPAGE); -+ // not supported on RHEL6 -+ // madvise(mStackBase, stackSize, MADV_NOHUGEPAGE); - - pthread_attr_destroy(&attr); - #elif defined(XP_WIN) diff --git a/firefox-rhel6-nss-tls1.3.patch b/firefox-rhel6-nss-tls1.3.patch deleted file mode 100644 index 2b6e8f75168e2273695041e98e5bf377d07f8b04..0000000000000000000000000000000000000000 --- a/firefox-rhel6-nss-tls1.3.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff -up firefox-68.2.0/security/manager/ssl/nsNSSComponent.cpp.old firefox-68.2.0/security/manager/ssl/nsNSSComponent.cpp ---- firefox-68.2.0/security/manager/ssl/nsNSSComponent.cpp.old 2019-10-24 14:20:21.227037984 +0200 -+++ firefox-68.2.0/security/manager/ssl/nsNSSComponent.cpp 2019-10-24 14:45:52.769506967 +0200 -@@ -996,6 +996,9 @@ void nsNSSComponent::FillTLSVersionRange - return; - } - -+ // Enable TLS 1.3 as our NSS supports it. -+ supported.max = 0x304; -+ - // Clip the defaults by what NSS actually supports to enable - // working with a system NSS with different ranges. - rangeOut.min = std::max(rangeOut.min, supported.min); diff --git a/firefox.sh.in b/firefox.sh.in index a33e81203bbfe0b590142a17c9ea61eaeb5ec93b..ecff5583fb4181084bf1d24a9f82ff4a5295f53d 100644 --- a/firefox.sh.in +++ b/firefox.sh.in @@ -39,12 +39,12 @@ cmdname=`basename $0` MOZ_ARCH=$(uname -m) case $MOZ_ARCH in x86_64 | s390x | sparc64) - MOZ_LIB_DIR="/usr/lib64" - SECONDARY_LIB_DIR="/usr/lib" + MOZ_LIB_DIR="%PREFIX%/lib64" + SECONDARY_LIB_DIR="%PREFIX%/lib" ;; * ) - MOZ_LIB_DIR="/usr/lib" - SECONDARY_LIB_DIR="/usr/lib64" + MOZ_LIB_DIR="%PREFIX%/lib" + SECONDARY_LIB_DIR="%PREFIX%/lib64" ;; esac @@ -98,7 +98,7 @@ export MOZ_PLUGIN_PATH ## ## Set MOZ_APP_LAUNCHER for gnome-session ## -export MOZ_APP_LAUNCHER="/usr/bin/firefox" +export MOZ_APP_LAUNCHER="%PREFIX%/bin/firefox" ## ## Set FONTCONFIG_PATH for Xft/fontconfig @@ -153,20 +153,11 @@ export MOZ_USE_XINPUT2=1 ## FEDORA_LANGPACK_CONFIG="$MOZ_EXTENSIONS_PROFILE_DIR/.fedora-langpack-install" -# Since Firefox 60 the installation of individual langpack cannot be done by -# copying xpi file to the home directory, because the langpack is loaded -# as to the available languages after the language has been decided and -# for the first run it won't be in language according to the locale. -# -# The current workaround is to put all langpacks to the location -# for system wide extensions. So we set MOZ_DISABLE_LANGPACKS=1 for this moment -export MOZ_DISABLE_LANGPACKS=1 -# MOZ_DISABLE_LANGPACKS disables language packs completely MOZILLA_DOWN=0 if ! [ $MOZ_DISABLE_LANGPACKS ] || [ $MOZ_DISABLE_LANGPACKS -eq 0 ]; then if [ -x $MOZ_DIST_BIN/$MOZ_FIREFOX_FILE ]; then # Is firefox running? - /usr/bin/pidof firefox > /dev/null 2>&1 + pidof firefox > /dev/null 2>&1 MOZILLA_DOWN=$? fi fi diff --git a/firefox.spec b/firefox.spec index f2f4368676ae37367016793da56ec8bc54700da3..67fcf10c5a854af0ff1031963bbd567a9f521ef8 100644 --- a/firefox.spec +++ b/firefox.spec @@ -1,77 +1,77 @@ -%define anolis_release .0.2 -# Set for local builds only %global disable_toolsets 0 -# Use system nspr/nss? FIXME -%if 0%{?rhel} == 8 -%global system_nss 1 -%endif -%if 0%{?rhel} == 7 -%global system_nss 1 -%endif -%if 0%{?rhel} == 6 +%ifarch %{ix86} + # no debug package for the i686 because oom on i686 with debuginfos + #FIXME revise if still necessary + %global debug_package %{nil} +%endif + +%{lua: +function dist_to_rhel_minor(str, start) + match = string.match(str, ".module%+el8.%d+") + if match then + return string.sub(match, 13) + end + match = string.match(str, ".el8_%d+") + if match then + return string.sub(match, 6) + end + match = string.match(str, ".el8") + if match then + return 6 + end + return -1 +end} + +%global rhel_minor_version %{lua:print(dist_to_rhel_minor(rpm.expand("%dist")))} +%global build_with_clang 0 + %global system_nss 1 -%endif -%define use_bundled_ffi 0 -%if 0%{?rhel} == 8 -%define use_bundled_python_2 1 -%define use_bundled_python_3 0 -%else -%define use_bundled_python_2 1 -%define use_bundled_python_3 1 -%endif +%global bundle_nss 0 -%if 0%{?flatpak:1} -%define use_bundled_python_2 1 +%if 0%{?rhel} == 8 + %if %{rhel_minor_version} < 3 + %global bundle_nss 1 + %global system_nss 1 + %endif %endif -%define bundle_gnome_extension 0 +%define use_bundled_ffi 0 -# Don't use system hunspell for now -%global system_hunspell 0 -%global system_sqlite 0 -%if 0%{?rhel} == 8 %global use_llvmts 0 -%else +%global use_nodejsts 0 +%if 0%{?rhel} < 8 %global use_llvmts 1 +%global use_nodejsts 1 %endif -%if 0%{?rhel} > 6 -%global system_ffi 1 -%else -%global system_ffi 0 +%global nodejs_rb nodejs +%global llvm_version 7.0 + +%if 0%{?rhel} == 8 +%global llvm_version 6.0 %endif -%if 0%{?rhel} < 8 -%global use_dts 1 + +%if 0%{?rhel} == 7 + %global use_dts 1 + %global nodejs_rb rh-nodejs10-nodejs + %global llvm_version 11.0 %endif %global use_rustts 1 -%global dts_version 8 -%if 0%{?rhel} == 6 -%global dts_version 8 -%endif -%global rust_version 1.31 -%global rust_toolset_version 1.35 -%global llvm_version 7.0 -%if 0%{?rhel} == 8 -%global llvm_version 6.0 +%if 0%{?rhel} >= 9 + %global use_rustts 0 %endif +%global dts_version 10 +%global rust_version 1.52 + %if 0%{?disable_toolsets} %global use_rustts 0 %global use_dts 0 %global use_llvmts 0 %endif -# Use system cairo? -%global system_cairo 0 - -# Use system libvpx? -%global system_libvpx 0 - -# Use system libicu? -%global system_libicu 0 - # Big endian platforms %ifarch ppc64 s390x # Javascript Intl API is not supported on big endian platforms right now: @@ -82,8 +82,6 @@ # Hardened build? %global hardened_build 1 -%global system_jpeg 1 - %ifarch %{ix86} x86_64 %global run_tests 0 %else @@ -93,117 +91,74 @@ # Build as a debug package? %global debug_build 0 -%global default_bookmarks_file %{_datadir}/bookmarks/default-bookmarks.html +# We need to use full path because of flatpak where datadir is /app/share +%global default_bookmarks_file /usr/share/bookmarks/default-bookmarks.html %global firefox_app_id \{ec8030f7-c20a-464f-9b0e-13a3a9e97384\} # Minimal required versions -%global cairo_version 1.13.1 -%global freetype_version 2.1.9 -%if %{?system_libvpx} -%global libvpx_version 1.4.0 -%endif - -%global rhel_minor_version -1 -%if "%{?dist}" == "el8" -%global rhel_minor_version 3 -%endif -%if "%{?dist}" == ".el8_2" -%global rhel_minor_version 2 -%endif -%if "%{?dist}" == ".el8_1" -%global rhel_minor_version 1 -%endif -%if "%{?dist}" == ".el8_0" -%global rhel_minor_version 0 -%endif - %if 0%{?system_nss} -%global nspr_version 4.21 +%global nspr_version 4.32 # NSS/NSPR quite often ends in build override, so as requirement the version # we're building against could bring us some broken dependencies from time to time. #%global nspr_build_version %(pkg-config --silence-errors --modversion nspr 2>/dev/null || echo 65536) %global nspr_build_version %{nspr_version} -%global nss_version 3.44 +%global nss_version 3.67 #%global nss_build_version %(pkg-config --silence-errors --modversion nss 2>/dev/null || echo 65536) %global nss_build_version %{nss_version} %endif -%if %{?system_sqlite} -%global sqlite_version 3.8.4.2 -# The actual sqlite version (see #480989): -%global sqlite_build_version %(pkg-config --silence-errors --modversion sqlite3 2>/dev/null || echo 65536) -%endif - -%define bundled_python_version_2 2.7.13 -%define bundled_python_version_3 3.6.8 -%define use_bundled_yasm 1 -%define use_bundled_openssl 0 -%define use_bundled_nodejs 0 -%if 0%{?rhel} < 8 -%define use_bundled_nodejs 1 -%if 0%{?rhel} == 6 -%define use_bundled_openssl 1 -%endif -%endif - # GTK3 bundling %define avoid_bundled_rebuild 0 -%if 0%{?rhel} == 6 -%define bundle_gtk3 1 -# In-tree libffi is able to build on following platforms, we have to bundle it for the rest -%ifnarch x86_64 i686 aarch64 -%define use_bundled_ffi 1 -%endif -%endif -%define gtk3_nvr 3.22.26-1 -%define gtk3_install_path %{mozappdir}/bundled +%define bundled_install_path %{mozappdir}/bundled -%if 0%{?bundle_gtk3} # We could use %%include, but in %%files, %%post and other sections, but in these # sections it could lead to syntax errors about unclosed %%if. Work around it by # using the following macro %define include_file() %{expand:%(cat '%1')} -%endif - %global mozappdir %{_libdir}/%{name} %global mozappdirdev %{_libdir}/%{name}-devel-%{version} -%global langpackdir %{mozappdir}/distribution/extensions +%global langpackdir %{mozappdir}/langpacks %global tarballdir %{name}-%{version} %global pre_version esr -#global pre_tag alpha %global official_branding 1 %global build_langpacks 1 -%global enable_mozilla_crashreporter 0 -%if !%{debug_build} -%ifarch %{ix86} x86_64 aarch64 -%global enable_mozilla_crashreporter 0 -%endif -%endif - Summary: Mozilla Firefox Web browser Name: firefox -Version: 68.10.0 -Release: 1%{anolis_release}%{?dist} +Version: 91.3.0 +Release: 1%{?dist} URL: https://www.mozilla.org/firefox/ License: MPLv1.1 or GPLv2+ or LGPLv2+ +%if 0%{?rhel} == 9 +ExcludeArch: %{ix86} +%endif +%if 0%{?rhel} == 8 +ExcludeArch: %{ix86} +%endif %if 0%{?rhel} == 7 ExcludeArch: s390 ppc %endif -%if 0%{?rhel} == 6 -ExclusiveArch: i686 x86_64 ppc64 s390x -%endif -Source0: https://hg.mozilla.org/releases/mozilla-release/archive/firefox-%{version}%{?pre_version}.source.tar.xz +# We can't use the official tarball as it contains some test files that use +# licenses that are rejected by Red Hat Legal. +# The official tarball has to be always processed by the process-official-tarball +# script. +# Link to official tarball: https://hg.mozilla.org/releases/mozilla-release/archive/firefox-%%{version}%%{?pre_version}.source.tar.xz +Source0: firefox-%{version}%{?pre_version}.processed-source.tar.xz %if %{build_langpacks} -Source1: firefox-langpacks-%{version}%{?pre_version}-20200626.tar.xz +Source1: firefox-langpacks-%{version}%{?pre_version}-20211101.tar.xz %endif Source2: cbindgen-vendor.tar.xz +Source3: process-official-tarball Source10: firefox-mozconfig -Source12: firefox-anolis-default-prefs.js +%if 0%{?centos} +Source12: firefox-centos-default-prefs.js +%else +Source12: firefox-redhat-default-prefs.js +%endif Source20: firefox.desktop Source21: firefox.sh.in Source23: firefox.1 @@ -213,62 +168,26 @@ Source26: distribution.ini Source27: google-api-key Source28: node-stdout-nonblocking-wrapper -Source200: gtk3-private-%{gtk3_nvr}.el6.src.rpm -Source201: gtk3-private-%{gtk3_nvr}-post.inc -Source202: gtk3-private-%{gtk3_nvr}-postun.inc -Source203: gtk3-private-%{gtk3_nvr}-posttrans.inc -Source204: gtk3-private-%{gtk3_nvr}-files.inc -Source205: gtk3-private-%{gtk3_nvr}-setup-flags-env.inc -Source206: gtk3-private-%{gtk3_nvr}-requires-provides-filter.inc -Source301: yasm-1.2.0-3.el5.src.rpm -Source303: libffi-3.0.13-18.el7_3.src.rpm -Source304: nodejs-8.11.4-1.3.fc27.src.rpm -Source305: openssl-1.0.2k-19.6.bundle.el7_7.src.rpm - -#Python -%if 0%{?use_bundled_python_2} -Source100: https://www.python.org/ftp/python/%{bundled_python_version_2}/Python-%{bundled_python_version_2}.tar.xz -%endif -%if 0%{?use_bundled_python_3} -Source101: https://www.python.org/ftp/python/%{bundled_python_version_3}/Python-%{bundled_python_version_3}.tar.xz -%endif +Source403: nss-3.67.0-6.el8_1.src.rpm +Source401: nss-setup-flags-env.inc +Source402: nspr-4.32.0-1.el8_1.src.rpm + # Build patches -Patch1000: python-2.7.patch Patch1001: build-ppc64le-inline.patch -Patch1002: python-2.7-gcc8-fix.patch -Patch1003: python-missing-utimensat.patch -Patch1004: build-icu-make.patch +Patch1008: build-rhel7-nasm-dwarf.patch +Patch1009: build-debuginfo-fix.patch # workaround for https://bugzilla.redhat.com/show_bug.cgi?id=1699374 -Patch1: no-rust-lto.patch -Patch2: rust-network-check.patch Patch4: build-mozconfig-fix.patch Patch6: build-nss-version.patch -Patch7: firefox-debugedits-error.patch -Patch8: firefox-dont-check-binary.patch -Patch9: nss-build-mozilla-1564499.patch -Patch26: build-icu-big-endian.patch -Patch41: build-debug-qcms.patch # Fedora/RHEL specific patches Patch215: firefox-enable-addons.patch Patch219: rhbz-1173156.patch Patch224: mozilla-1170092.patch -#ARM run-time patch -#Patch226: rhbz-1354671.patch -Patch231: firefox-pipewire.patch -Patch232: firefox-rhel6-hugepage.patch -Patch233: firefox-rhel6-nss-tls1.3.patch -Patch234: rhbz-1821418.patch -Patch235: firefox-pipewire-0-3.patch # Upstream patches -Patch402: mozilla-1196777.patch -#Patch500: debug.patch -Patch501: python-encode.patch -Patch502: mozilla-1603112-accept-lang.patch Patch503: mozilla-s390-context.patch -Patch504: mozilla-nestegg-big-endian.patch Patch505: mozilla-bmo1005535.patch Patch506: mozilla-bmo1504834-part1.patch Patch507: mozilla-bmo1504834-part2.patch @@ -277,20 +196,19 @@ Patch509: mozilla-bmo1504834-part4.patch Patch510: mozilla-bmo1554971.patch Patch511: mozilla-bmo1602730.patch Patch512: mozilla-bmo849632.patch +Patch513: mozilla-bmo998749.patch +Patch514: mozilla-s390x-skia-gradient.patch +Patch515: mozilla-bmo1626236.patch +Patch518: D110204-fscreen.diff -# CentOS patches -%if 0%{?centos} -Patch10000: Bug-1238661---fix-mozillaSignalTrampoline-to-work-.patch -Patch10001: Bug-1526653---fix_user_vfp_armv7.patch -%endif +# Flatpak patches %if %{?system_nss} +%if !0%{?bundle_nss} BuildRequires: pkgconfig(nspr) >= %{nspr_version} BuildRequires: pkgconfig(nss) >= %{nss_version} BuildRequires: nss-static >= %{nss_version} %endif -%if %{?system_cairo} -BuildRequires: pkgconfig(cairo) >= %{cairo_version} %endif BuildRequires: pkgconfig(libpng) BuildRequires: xz @@ -298,47 +216,44 @@ BuildRequires: libXt-devel BuildRequires: mesa-libGL-devel Requires: liberation-fonts-common Requires: liberation-sans-fonts -%if %{?system_jpeg} BuildRequires: libjpeg-devel -%endif BuildRequires: zip BuildRequires: bzip2-devel BuildRequires: pkgconfig(zlib) -BuildRequires: pkgconfig(libIDL-2.0) +#BuildRequires: pkgconfig(libIDL-2.0) BuildRequires: pkgconfig(gtk+-2.0) BuildRequires: krb5-devel BuildRequires: pkgconfig(pango) -BuildRequires: pkgconfig(freetype2) >= %{freetype_version} +BuildRequires: pkgconfig(freetype2) >= 2.1.9 BuildRequires: pkgconfig(xt) BuildRequires: pkgconfig(xrender) -%if %{?system_hunspell} -BuildRequires: hunspell-devel -%endif BuildRequires: pkgconfig(libstartup-notification-1.0) BuildRequires: pkgconfig(libnotify) BuildRequires: pkgconfig(dri) BuildRequires: pkgconfig(libcurl) BuildRequires: dbus-glib-devel -%if %{?system_libvpx} -BuildRequires: libvpx-devel >= %{libvpx_version} -%endif -BuildRequires: autoconf213 +BuildRequires: m4 + BuildRequires: pkgconfig(libpulse) -BuildRequires: pkgconfig(gconf-2.0) %if 0%{?use_dts} BuildRequires: devtoolset-%{dts_version}-gcc-c++ BuildRequires: devtoolset-%{dts_version}-gcc -BuildRequires: devtoolset-%{dts_version}-binutils BuildRequires: devtoolset-%{dts_version}-libatomic-devel -%if 0%{?use_llvmts} -BuildRequires: llvm-toolset-%{llvm_version} -BuildRequires: llvm-toolset-%{llvm_version}-llvm-devel %endif +%if 0%{?rhel} == 9 +BuildRequires: gcc +BuildRequires: gcc-c++ +BuildRequires: cargo +BuildRequires: rust +BuildRequires: clang clang-libs llvm %endif BuildRequires: scl-utils +BuildRequires: findutils +BuildRequires: %{nodejs_rb} >= 10.21 +BuildRequires: python3 %if 0%{?rhel} == 8 BuildRequires: cargo @@ -348,122 +263,134 @@ BuildRequires: llvm-devel >= %{llvm_version} BuildRequires: clang >= %{llvm_version} BuildRequires: clang-devel >= %{llvm_version} BuildRequires: rustfmt >= %{rust_version} -BuildRequires: python3 -BuildRequires: nodejs >= 8.11 %else %if 0%{?use_rustts} -BuildRequires: rust-toolset-%{rust_toolset_version} +BuildRequires: rust-toolset-%{rust_version} %endif %if 0%{?use_llvmts} BuildRequires: llvm-toolset-%{llvm_version} BuildRequires: llvm-toolset-%{llvm_version}-llvm-devel +BuildRequires: llvm-toolset-%{llvm_version}-clang +BuildRequires: llvm-toolset-%{llvm_version}-clang-devel %endif %endif -%if 0%{?use_bundled_python_2} -# Needed for Python in RHEL6 -BuildRequires: openssl-devel +BuildRequires: nasm +%if %{build_with_clang} +BuildRequires: lld %endif %if 0%{?rhel} == 8 + %if %{rhel_minor_version} >= 3 +BuildRequires: pkgconfig(libpipewire-0.3) + %else BuildRequires: pipewire-devel + %endif %endif -%if 0%{?bundle_gtk3} -BuildRequires: automake -BuildRequires: autoconf -BuildRequires: cups-devel -BuildRequires: dbus-devel -BuildRequires: desktop-file-utils -BuildRequires: expat-devel -BuildRequires: fontpackages-devel -BuildRequires: gamin-devel -BuildRequires: gettext-devel -BuildRequires: git -BuildRequires: intltool -BuildRequires: jasper-devel -BuildRequires: libepoxy-devel -BuildRequires: libcroco-devel -BuildRequires: libffi-devel -BuildRequires: libpng-devel -BuildRequires: libtiff-devel -BuildRequires: libtool -BuildRequires: libxml2-devel -BuildRequires: libX11-devel -BuildRequires: libXcomposite-devel -BuildRequires: libXcursor-devel -BuildRequires: libXinerama-devel -BuildRequires: libXevie-devel -BuildRequires: libXrandr-devel -BuildRequires: libXrender-devel -BuildRequires: libXtst-devel -BuildRequires: mesa-libGL-devel -BuildRequires: mesa-libEGL-devel -BuildRequires: pixman-devel -BuildRequires: rest-devel -BuildRequires: readline-devel -# TODO: We miss that dependency in our bundled gtk3 package. -# As a hotfix we put it here and fix gtk3 in next release. -Requires: mesa-libEGL%{?_isa} -Requires: libcroco%{?_isa} -Requires: mesa-libGL%{?_isa} -Requires: bzip2-libs%{?_isa} -Requires: libXtst%{?_isa} -%else BuildRequires: gtk3-devel BuildRequires: glib2-devel +BuildRequires: perl-interpreter + +# Bundled nss/nspr requirement +%if 0%{?bundle_nss} +BuildRequires: nss-softokn +BuildRequires: sqlite-devel +BuildRequires: zlib-devel +BuildRequires: pkgconfig +BuildRequires: gawk +BuildRequires: psmisc +BuildRequires: perl-interpreter +BuildRequires: gcc-c++ +BuildRequires: xmlto %endif +BuildRequires: libstdc++-static + Requires: mozilla-filesystem Requires: p11-kit-trust %if %{?system_nss} +%if !0%{?bundle_nss} Requires: nspr >= %{nspr_build_version} Requires: nss >= %{nss_build_version} %endif +%endif BuildRequires: desktop-file-utils BuildRequires: system-bookmarks -Requires: anolis-indexhtml -%if %{?system_sqlite} -BuildRequires: pkgconfig(sqlite3) >= %{sqlite_version} -Requires: sqlite >= %{sqlite_build_version} -%endif - +Requires: redhat-indexhtml %if %{?run_tests} BuildRequires: xorg-x11-server-Xvfb %endif -%if %{?system_ffi} - %if !%{use_bundled_ffi}0 BuildRequires: pkgconfig(libffi) + +%if 0%{?big_endian} + %if 0%{?flatpak} +BuildRequires: icu %endif %endif Obsoletes: mozilla <= 37:1.7.13 Provides: webclient +# Bundled libraries +Provides: bundled(angle) +Provides: bundled(cairo) +Provides: bundled(graphite2) +Provides: bundled(harfbuzz) +Provides: bundled(ots) +Provides: bundled(sfntly) +Provides: bundled(skia) +Provides: bundled(thebes) +Provides: bundled(WebRender) +Provides: bundled(audioipc-2) +Provides: bundled(ffvpx) +Provides: bundled(kissfft) +Provides: bundled(libaom) +Provides: bundled(libcubeb) +Provides: bundled(libdav1d) +Provides: bundled(libjpeg) +Provides: bundled(libmkv) +Provides: bundled(libnestegg) +Provides: bundled(libogg) +Provides: bundled(libopus) +Provides: bundled(libpng) +Provides: bundled(libsoundtouch) +Provides: bundled(libspeex_resampler) +Provides: bundled(libtheora) +Provides: bundled(libtremor) +Provides: bundled(libvorbis) +Provides: bundled(libvpx) +Provides: bundled(libwebp) +Provides: bundled(libyuv) +Provides: bundled(mp4parse-rust) +Provides: bundled(mtransport) +Provides: bundled(openmax_dl) +Provides: bundled(double-conversion) +Provides: bundled(brotli) +Provides: bundled(fdlibm) +Provides: bundled(freetype2) +Provides: bundled(libmar) +Provides: bundled(woff2) +Provides: bundled(xz-embedded) +Provides: bundled(zlib) +Provides: bundled(expat) +Provides: bundled(msgpack-c) +Provides: bundled(libprio) +Provides: bundled(rlbox_sandboxing_api) +Provides: bundled(sqlite3) + +%if 0%{?bundle_nss} +Provides: bundled(nss) = 3.67.0 +Provides: bundled(nspr) = 4.32.0 +%endif + %description Mozilla Firefox is an open-source web browser, designed for standards compliance, performance and portability. -%if %{enable_mozilla_crashreporter} -%global moz_debug_prefix %{_prefix}/lib/debug -%global moz_debug_dir %{moz_debug_prefix}%{mozappdir} -%global uname_m %(uname -m) -%global symbols_file_name %{name}-%{version}.en-US.%{_os}-%{uname_m}.crashreporter-symbols.zip -%global symbols_file_path %{moz_debug_dir}/%{symbols_file_name} -%global _find_debuginfo_opts -p %{symbols_file_path} -o debugcrashreporter.list -%global crashreporter_pkg_name mozilla-crashreporter-%{name}-debuginfo -%package -n %{crashreporter_pkg_name} -Summary: Debugging symbols used by Mozilla's crash reporter servers -%description -n %{crashreporter_pkg_name} -This package provides debug information for Firefox, for use by -Mozilla's crash reporter servers. If you are trying to locally -debug %{name}, you want to install %{name}-debuginfo instead. -%files -n %{crashreporter_pkg_name} -f debugcrashreporter.list -%endif - %if %{run_tests} %global testsuite_pkg_name mozilla-%{name}-testresults %package -n %{testsuite_pkg_name} @@ -475,62 +402,20 @@ This package contains results of tests executed during build. %endif #--------------------------------------------------------------------- +%prep +echo "Build environment" +echo "dist %{?dist}" +echo "RHEL 8 minor version: %{rhel_minor_version}" +echo "use_bundled_ffi %{?use_bundled_ffi}" +echo "bundle_nss %{?bundle_nss}" +echo "system_nss %{?system_nss}" +echo "use_rustts %{?use_rustts}" -%if %{?bundle_gnome_extension} -%package -n firefox-gnome-shell-extension -%global firefox_gnome_shell_addon_name addon-751081-latest.xpi -Summary: Support for managing GNOME Shell Extensions through web browsers -Requires: %{name}%{?_isa} = %{version}-%{release} - -License: GPLv3+ -URL: https://wiki.gnome.org/Projects/GnomeShellIntegrationForChrome -Source2: https://addons.mozilla.org/firefox/downloads/latest/gnome-shell-integration/platform:2/%{firefox_gnome_shell_addon_name} - -Requires: dbus -Requires: gnome-icon-theme -Requires: gnome-shell -Requires: hicolor-icon-theme -Requires: mozilla-filesystem - -%description -n firefox-gnome-shell-extension -Browser extension for Firefox and native host messaging connector that provides -integration with GNOME Shell and the corresponding extensions repository -https://extensions.gnome.org. - -%files -n firefox-gnome-shell-extension -%{mozappdir}/distribution/extensions/chrome-gnome-shell@gnome.org.xpi -%endif -%prep -%if 0%{?use_bundled_python_2} -%setup -q -T -c -n python2 -a 100 -%patch1000 -p0 -b .build -%patch1002 -p0 -b .gcc8 -%endif -%if 0%{?use_bundled_python_3} -%setup -q -T -c -n python3 -a 101 -%if 0%{?rhel} == 6 -%patch1003 -p0 -b .missing-utimensat.patch -%endif -%endif %setup -q -n %{tarballdir} # Build patches, can't change backup suffix from default because during build # there is a compare of config and js/config directories and .orig suffix is # ignored during this compare. -%patch1 -p1 -b .no-rust-lto -%patch2 -p1 -b .rust-network-check -%patch7 -p1 -b .debugedits-error -%ifarch %{ix86} %{arm} ppc -# binary check fails OOM on 32bit arches -%patch8 -p1 -b .dont-check-binary -%endif -%patch9 -p1 -b .nss-build-mozilla-1564499 - -%if %{?debug_build} -%patch41 -p1 -b .build-debug-qcms -%endif -#%if 0%{?rhel} == 8 -#%endif %patch4 -p1 -b .build-mozconfig-fix %patch6 -p1 -b .nss-version @@ -539,37 +424,12 @@ https://extensions.gnome.org. %patch215 -p1 -b .addons %patch219 -p1 -b .rhbz-1173156 %patch224 -p1 -b .1170092 -%if 0%{?rhel} == 8 - %if 0%{?rhel_minor_version} >= 3 -%patch235 -p1 -b .pipewire-0-3 - %else -%patch231 -p1 -b .pipewire - %endif -%endif -%if 0%{?rhel} == 6 -%patch232 -p1 -b .hugepage -%patch233 -p1 -b .rhel6-nss-tls1.3 -%endif -%patch234 -p1 -b .rhbz-1821418 - - -#ARM run-time patch -#%ifarch aarch64 -#%patch226 -p1 -b .1354671 -#%endif - -%patch402 -p1 -b .1196777 # Patch for big endian platforms only %if 0%{?big_endian} -%patch26 -p1 -b .icu %endif -#%patch500 -p1 -b .debug -%patch501 -p1 -b .python-encode -%patch502 -p1 -b .1603112-accept-lang %patch503 -p1 -b .mozilla-s390-context -%patch504 -p1 -b .mozilla-nestegg-big-endian %patch505 -p1 -b .mozilla-bmo1005535 %patch506 -p1 -b .mozilla-bmo1504834-part1 %patch507 -p1 -b .mozilla-bmo1504834-part2 @@ -578,13 +438,20 @@ https://extensions.gnome.org. %patch510 -p1 -b .mozilla-bmo1554971 %patch511 -p1 -b .mozilla-bmo1602730 %patch512 -p1 -b .mozilla-bmo849632 -%patch1001 -p1 -b .ppc64le-inline -%patch1004 -p1 -b .icu-make +%patch513 -p1 -b .mozilla-bmo998749 +#%patch514 -p1 -b .mozilla-s390x-skia-gradient +%patch515 -p1 -b .mozilla-bmo1626236 +%patch518 -p1 -b .D110204-fscreen.diff -# CentOS patches -%if 0%{?centos} -%patch10000 -p1 -b .mozilla-1238661 -%patch10001 -p1 -b .mozilla-1526653 + +%patch1001 -p1 -b .ppc64le-inline +%if 0%{?rhel} == 7 +# fix the /usr/lib/rpm/debugedit: canonicalization unexpectedly shrank by one character +%patch1009 -p1 -b .build-debuginfo-fix + %ifarch %{ix86} +# -F dwarf not available in RHEL7's nasm +%patch1008 -p1 -b .build-rhel7-nasm-dwarf + %endif %endif %{__rm} -f .mozconfig @@ -603,48 +470,18 @@ echo "ac_add_options --without-system-nspr" >> .mozconfig echo "ac_add_options --without-system-nss" >> .mozconfig %endif -%if %{?system_sqlite} -echo "ac_add_options --enable-system-sqlite" >> .mozconfig -%else -echo "ac_add_options --disable-system-sqlite" >> .mozconfig -%endif - -%if %{?system_cairo} -echo "ac_add_options --enable-system-cairo" >> .mozconfig -%else -echo "ac_add_options --disable-system-cairo" >> .mozconfig -%endif - -%if 0%{?use_bundled_ffi} -echo "ac_add_options --enable-system-ffi" >> .mozconfig -%endif -%if 0%{?system_ffi} -echo "ac_add_options --enable-system-ffi" >> .mozconfig -%endif - -%ifarch %{arm} %{ix86} x86_64 +%ifarch %{ix86} x86_64 echo "ac_add_options --disable-elf-hack" >> .mozconfig %endif -%if %{?system_hunspell} -echo "ac_add_options --enable-system-hunspell" >> .mozconfig -%else -# not available? -#echo "ac_add_options --disable-system-hunspell" >> .mozconfig -%endif - %if %{?debug_build} echo "ac_add_options --enable-debug" >> .mozconfig echo "ac_add_options --disable-optimize" >> .mozconfig %else %global optimize_flags "-g -O2" -%ifarch s390 s390x +%ifarch s390x %global optimize_flags "-g -O1" %endif -%ifarch armv7hl -# ARMv7 need that (rhbz#1426850) -%global optimize_flags "-g -O2 -fno-schedule-insns" -%endif %ifarch ppc64le aarch64 %global optimize_flags "-g -O2" %endif @@ -665,48 +502,45 @@ echo "ac_add_options --disable-jemalloc" >> .mozconfig echo "ac_add_options --disable-webrtc" >> .mozconfig %endif -%if !%{enable_mozilla_crashreporter} -echo "ac_add_options --disable-crashreporter" >> .mozconfig -%endif - %if %{?run_tests} echo "ac_add_options --enable-tests" >> .mozconfig %endif -%if !%{?system_jpeg} -echo "ac_add_options --without-system-jpeg" >> .mozconfig -%else -echo "ac_add_options --with-system-jpeg" >> .mozconfig +%ifarch s390x +echo "ac_add_options --disable-jit" >> .mozconfig %endif -%if %{?system_libvpx} -echo "ac_add_options --with-system-libvpx" >> .mozconfig -%else -echo "ac_add_options --without-system-libvpx" >> .mozconfig +%ifnarch %{ix86} +%if !0%{?debug_build} +echo "ac_add_options --disable-debug-symbols" >> .mozconfig %endif - -%if %{?system_libicu} -echo "ac_add_options --with-system-icu" >> .mozconfig -%else -echo "ac_add_options --without-system-icu" >> .mozconfig %endif -%ifarch s390 s390x -echo "ac_add_options --disable-ion" >> .mozconfig + +# AV1 requires newer nasm that was rebased in 8.4 +%if 0%{?rhel} == 7 || (0%{?rhel} == 8 && %{rhel_minor_version} < 4) +echo "ac_add_options --disable-av1" >> .mozconfig %endif echo 'export NODEJS="%{_buildrootdir}/bin/node-stdout-nonblocking-wrapper"' >> .mozconfig # Remove executable bit to make brp-mangle-shebangs happy. chmod -x third_party/rust/itertools/src/lib.rs +chmod a-x third_party/rust/gfx-backend-vulkan/src/*.rs +chmod a-x third_party/rust/gfx-hal/src/*.rs +chmod a-x third_party/rust/ash/src/extensions/ext/*.rs +chmod a-x third_party/rust/ash/src/extensions/khr/*.rs +chmod a-x third_party/rust/ash/src/extensions/mvk/*.rs +chmod a-x third_party/rust/ash/src/extensions/nv/*.rs #--------------------------------------------------------------------- %build -set -e +# Disable LTO to work around rhbz#1883904 +%define _lto_cflags %{nil} +ulimit -a +free +#set -e # Hack for missing shell when building in brew on RHEL6 -%if 0%{?rhel} == 6 -export SHELL=/bin/sh -%endif %if ! 0%{?avoid_bundled_rebuild} rm -rf %{_buildrootdir}/* @@ -720,7 +554,7 @@ function install_rpms_to_current_dir() { if [ ! -f $PACKAGE_DIR/$PACKAGE_RPM ]; then # Hack for tps tests ARCH_STR=%{_arch} - %ifarch i386 i686 + %ifarch %{ix86} ARCH_STR="i?86" %endif PACKAGE_DIR="$PACKAGE_DIR/$ARCH_STR" @@ -737,6 +571,7 @@ function build_bundled_package() { PACKAGE_RPM=$1 PACKAGE_FILES=$2 PACKAGE_SOURCE=$3 + PACKAGE_BUILD_OPTIONS=$4 export PACKAGE_DIR="%{_topdir}/RPMS" PACKAGE_ALREADY_BUILD=0 @@ -750,13 +585,15 @@ function build_bundled_package() { %endif if [ $PACKAGE_ALREADY_BUILD == 0 ]; then echo "Rebuilding $PACKAGE_RPM from $PACKAGE_SOURCE"; echo "===============================" - rpmbuild --nodeps --rebuild $PACKAGE_SOURCE + rpmbuild --nodeps $PACKAGE_BUILD_OPTIONS --rebuild $PACKAGE_SOURCE + cat /var/tmp/rpm-tmp* fi + find $PACKAGE_DIR if [ ! -f $PACKAGE_DIR/$PACKAGE_RPM ]; then # Hack for tps tests ARCH_STR=%{_arch} - %ifarch i386 i686 + %ifarch %{ix86} ARCH_STR="i?86" %endif export PACKAGE_DIR="$PACKAGE_DIR/$ARCH_STR" @@ -764,6 +601,7 @@ function build_bundled_package() { pushd $PACKAGE_DIR echo "Installing $PACKAGE_DIR/$PACKAGE_RPM"; echo "===============================" + pwd PACKAGE_LIST=$(echo $PACKAGE_DIR/$PACKAGE_RPM | tr " " "\n") for PACKAGE in $PACKAGE_LIST do @@ -783,32 +621,57 @@ function build_bundled_package() { popd } -# Build and install local yasm if needed -# ====================================== -%if %{use_bundled_yasm} - build_bundled_package 'yasm-1*.rpm' 'yasm-*.rpm' '%{SOURCE301}' -%endif +%if 0%{?bundle_nss} + rpm -ivh %{SOURCE402} + #rpmbuild --nodeps --define '_prefix %{bundled_install_path}' --without=tests -ba %{_specdir}/nspr.spec + rpmbuild --nodeps --define '_prefix %{bundled_install_path}' --without=tests -ba %{_specdir}/nspr.spec + pushd %{_buildrootdir} + install_rpms_to_current_dir nspr-4*.rpm + install_rpms_to_current_dir nspr-devel*.rpm + popd + echo "Setting nspr flags" + # nss-setup-flags-env.inc + sed -i 's@%{bundled_install_path}@%{_buildrootdir}%{bundled_install_path}@g' %{_buildrootdir}%{bundled_install_path}/%{_lib}/pkgconfig/nspr*.pc -%if 0%{?bundle_gtk3} - %if ! 0%{?avoid_bundled_rebuild} - rpm -ivh %{SOURCE200} - rpmbuild --nodeps --define '_prefix %{gtk3_install_path}' -ba %{_specdir}/gtk3-private.spec - %endif - pushd %{_buildrootdir} - install_rpms_to_current_dir gtk3-private-%{gtk3_nvr}*.rpm - install_rpms_to_current_dir gtk3-private-devel-%{gtk3_nvr}*.rpm - install_rpms_to_current_dir gtk3-private-rpm-scripts-%{gtk3_nvr}*.rpm - popd -%endif + export LDFLAGS="-L%{_buildrootdir}%{bundled_install_path}/%{_lib} $LDFLAGS" + export LDFLAGS="-Wl,-rpath,%{bundled_install_path}/%{_lib} $LDFLAGS" + export LDFLAGS="-Wl,-rpath-link,%{_buildrootdir}%{bundled_install_path}/%{_lib} $LDFLAGS" + export PKG_CONFIG_PATH=%{_buildrootdir}%{bundled_install_path}/%{_lib}/pkgconfig + export PATH="{_buildrootdir}%{bundled_install_path}/bin:$PATH" + + export PATH=%{_buildrootdir}/%{bundled_install_path}/bin:$PATH + echo $PKG_CONFIG_PATH -%if 0%{?bundle_gtk3} -# gtk3-private-3.22.26.el6-1-requires-provides-filter.inc -%include_file %{SOURCE206} + rpm -ivh %{SOURCE403} + rpmbuild --nodeps --define '_prefix %{bundled_install_path}' -ba %{_specdir}/nss.spec + pushd %{_buildrootdir} + #cleanup + #rm -rf {_buildrootdir}/usr/lib/debug/* + #rm -rf {_buildrootdir}/usr/lib/.build-id + install_rpms_to_current_dir nss-3*.rpm + install_rpms_to_current_dir nss-devel*.rpm + install_rpms_to_current_dir nss-pkcs11-devel*.rpm + install_rpms_to_current_dir nss-softokn-3*.rpm + install_rpms_to_current_dir nss-softokn-devel*.rpm + install_rpms_to_current_dir nss-softokn-freebl-3*.rpm + install_rpms_to_current_dir nss-softokn-freebl-devel*.rpm + install_rpms_to_current_dir nss-util-3*.rpm + install_rpms_to_current_dir nss-util-devel*.rpm + popd + %filter_provides_in %{bundled_install_path}/%{_lib} + %filter_requires_in %{bundled_install_path}/%{_lib} + %filter_from_requires /libnss3.so.*/d + %filter_from_requires /libsmime3.so.*/d + %filter_from_requires /libssl3.so.*/d + %filter_from_requires /libnssutil3.so.*/d + %filter_from_requires /libnspr4.so.*/d + find %{_buildrootdir} %endif + %if 0%{use_bundled_ffi} # Install libraries to the predefined location to later add them to the Firefox libraries rpm -ivh %{SOURCE303} - rpmbuild --nodeps --define '_prefix %{gtk3_install_path}' -ba %{_specdir}/libffi.spec + rpmbuild --nodeps --define '_prefix %{bundled_install_path}' -ba %{_specdir}/libffi.spec pushd %{_buildrootdir} install_rpms_to_current_dir 'libffi*.rpm' popd @@ -816,21 +679,6 @@ function build_bundled_package() { %endif %filter_setup -# If needed build the bundled python 2.7 and 3.6 and put it in the PATH -%if 0%{?use_bundled_python_3} - pushd %{_builddir}/python3/Python-%{bundled_python_version_3} - ./configure --prefix="%{_buildrootdir}" --exec-prefix="%{_buildrootdir}" --libdir="%{_buildrootdir}/lib" --with-pydebug - make %{?_smp_mflags} install V=1 -j1 - cp Tools/scripts/pathfix.py %{_buildrootdir}/bin - popd -%endif -%if 0%{?use_bundled_python_2} - pushd %{_builddir}/python2/Python-%{bundled_python_version_2} - ./configure --prefix="%{_buildrootdir}" --exec-prefix="%{_buildrootdir}" --libdir="%{_buildrootdir}/lib" || cat config.log - make %{?_smp_mflags} install V=1 - popd -%endif - function replace_prefix() { FILE_NAME=$1 PKG_CONFIG_PREFIX=$2 @@ -841,47 +689,27 @@ function replace_prefix() { rm -rf tmp.txt } -# Build and install local openssl if needed -# ========================================= -%if 0%{?use_bundled_openssl} - rpm -ivh %{SOURCE305} - rpmbuild --nodeps -ba %{_specdir}/openssl.spec - pushd %{_buildrootdir} - install_rpms_to_current_dir openssl-1.0.2k*.rpm - install_rpms_to_current_dir openssl-libs-1.0.2k*.rpm - install_rpms_to_current_dir openssl-devel-1.0.2k*.rpm - install_rpms_to_current_dir openssl-static-1.0.2k*.rpm - # openssl is installed to %{_buildrootdir}/usr/lib(64)/... - export PKG_CONFIG_PATH=%{_buildrootdir}/%{_libdir}/pkgconfig/:$PKG_CONFIG_PATH - replace_prefix %{_buildrootdir}/%{_libdir}/pkgconfig/libcrypto.pc prefix=%{_buildrootdir}/usr - replace_prefix %{_buildrootdir}/%{_libdir}/pkgconfig/libssl.pc prefix=%{_buildrootdir}/usr - replace_prefix %{_buildrootdir}/%{_libdir}/pkgconfig/openssl.pc prefix=%{_buildrootdir}/usr - cat %{_buildrootdir}/%{_libdir}/pkgconfig/libcrypto.pc - cat %{_buildrootdir}/%{_libdir}/pkgconfig/libssl.pc - cat %{_buildrootdir}/%{_libdir}/pkgconfig/openssl.pc - pushd %{_rpmdir} - rm -f openssl-*.rpm - popd - popd -%endif - # We need to disable exit on error temporarily for the following scripts: set +e %if 0%{?use_dts} source scl_source enable devtoolset-%{dts_version} %endif %if 0%{?use_rustts} -source scl_source enable rust-toolset-%{rust_toolset_version} +source scl_source enable rust-toolset-%{rust_version} +%endif +%if 0%{?use_nodejsts} +source scl_source enable rh-nodejs10 %endif +env +which gcc +which c++ +which g++ +which ld +which nasm # Build and install local node if needed # ====================================== -%if %{use_bundled_nodejs} - build_bundled_package 'nodejs-8*.rpm' 'nodejs-*.rpm' %{SOURCE304} - export MOZ_NODEJS=$PACKAGE_DIR/usr/bin/node -%else - export MOZ_NODEJS=/usr/bin/node -%endif +export MOZ_NODEJS=`which node` mkdir -p my_rust_vendor cd my_rust_vendor @@ -901,29 +729,13 @@ cargo install cbindgen export PATH=`pwd`/.cargo/bin:$PATH export CBINDGEN=`pwd`/.cargo/bin/cbindgen - -%if %{?system_sqlite} -# Do not proceed with build if the sqlite require would be broken: -# make sure the minimum requirement is non-empty, ... -sqlite_version=$(expr "%{sqlite_version}" : '\([0-9]*\.\)[0-9]*\.') || exit 1 -# ... and that major number of the computed build-time version matches: -case "%{sqlite_build_version}" in - "$sqlite_version"*) ;; - *) exit 1 ;; -esac -%endif - -%if 0%{?big_endian} -echo "Generate big endian version of config/external/icu/data/icud64l.dat" - ./mach python intl/icu_sources_data.py . - rm -f config/external/icu/data/icudt*l.dat -# mv config/external/icu/data/icudt64l.dat config/external/icu/data/icudt64b.dat - ls -l config/external/icu/data - cat /tmp/icu-make* -%endif +# debug missing sqlite3 python module +export MACH_USE_SYSTEM_PYTHON=1 +./mach python -c "import sys;print(sys.path)" mkdir %{_buildrootdir}/bin || : cp %{SOURCE28} %{_buildrootdir}/bin || : +chmod +x %{_buildrootdir}/bin/node-stdout-nonblocking-wrapper # Update the various config.guess to upstream release for aarch64 support find ./ -name config.guess -exec cp /usr/lib/rpm/config.guess {} ';' @@ -942,109 +754,168 @@ MOZ_OPT_FLAGS=$(echo "%{optflags}" | %{__sed} -e 's/-Wall//') # Explicitly force the hardening flags for Firefox so it passes the checksec test; # See also https://fedoraproject.org/wiki/Changes/Harden_All_Packages MOZ_OPT_FLAGS="$MOZ_OPT_FLAGS -Wformat-security -Wformat -Werror=format-security" -%if 0%{?fedora} > 23 -# Disable null pointer gcc6 optimization in gcc6 (rhbz#1328045) -MOZ_OPT_FLAGS="$MOZ_OPT_FLAGS -fno-delete-null-pointer-checks" -%endif -# Use hardened build? + %if %{?hardened_build} -MOZ_OPT_FLAGS="$MOZ_OPT_FLAGS -fPIC -Wl,-z,relro -Wl,-z,now" -%endif + MOZ_OPT_FLAGS="$MOZ_OPT_FLAGS -fPIC -Wl,-z,relro -Wl,-z,now" + %endif %if %{?debug_build} -MOZ_OPT_FLAGS=$(echo "$MOZ_OPT_FLAGS" | %{__sed} -e 's/-O2//') + MOZ_OPT_FLAGS=$(echo "$MOZ_OPT_FLAGS" | %{__sed} -e 's/-O2//') %endif -%ifarch s390 -MOZ_OPT_FLAGS=$(echo "$MOZ_OPT_FLAGS" | %{__sed} -e 's/-g/-g1/') -# If MOZ_DEBUG_FLAGS is empty, firefox's build will default it to "-g" which -# overrides the -g1 from line above and breaks building on s390 -# (OOM when linking, rhbz#1238225) -export MOZ_DEBUG_FLAGS=" " + +# We don't wantfirefox to use CK_GCM_PARAMS_V3 in nss +MOZ_OPT_FLAGS="$MOZ_OPT_FLAGS -DNSS_PKCS11_3_0_STRICT" + +%if !%{build_with_clang} + %ifarch aarch64 %{ix86} x86_64 s390x + MOZ_LINK_FLAGS="-Wl,--no-keep-memory -Wl,--reduce-memory-overheads" + %endif + %ifarch %{ix86} + MOZ_LINK_FLAGS="-Wl,--no-keep-memory -Wl,--strip-debug" + echo "ac_add_options --enable-linker=gold" >> .mozconfig + %endif %endif -%ifarch s390 %{arm} ppc aarch64 i686 -MOZ_LINK_FLAGS="-Wl,--no-keep-memory -Wl,--reduce-memory-overheads" + +%if 0%{?bundle_nss} + mkdir -p %{_buildrootdir}%{bundled_install_path}/%{_lib} + MOZ_LINK_FLAGS="-L%{_buildrootdir}%{bundled_install_path}/%{_lib} $MOZ_LINK_FLAGS" + MOZ_LINK_FLAGS="-Wl,-rpath,%{bundled_install_path}/%{_lib} $MOZ_LINK_FLAGS" + MOZ_LINK_FLAGS="-Wl,-rpath-link,%{_buildrootdir}%{bundled_install_path}/%{_lib} $MOZ_LINK_FLAGS" %endif -%ifarch %{arm} -export RUSTFLAGS="-Cdebuginfo=0" + +%ifarch %{ix86} + export RUSTFLAGS="-Cdebuginfo=0" + echo 'export RUSTFLAGS="-Cdebuginfo=0"' >> .mozconfig %endif -export CFLAGS=$MOZ_OPT_FLAGS -export CXXFLAGS=$MOZ_OPT_FLAGS -export LDFLAGS=$MOZ_LINK_FLAGS export PREFIX='%{_prefix}' export LIBDIR='%{_libdir}' export CC=gcc export CXX=g++ +echo "export CFLAGS=\"$MOZ_OPT_FLAGS\"" >> .mozconfig +echo "export CXXFLAGS=\"$MOZ_OPT_FLAGS\"" >> .mozconfig +echo "export LDFLAGS=\"$MOZ_LINK_FLAGS\"" >> .mozconfig + +%if %{build_with_clang} + echo "export LLVM_PROFDATA=\"llvm-profdata\"" >> .mozconfig + echo "export AR=\"llvm-ar\"" >> .mozconfig + echo "export NM=\"llvm-nm\"" >> .mozconfig + echo "export RANLIB=\"llvm-ranlib\"" >> .mozconfig + echo "ac_add_options --enable-linker=lld" >> .mozconfig +%else + echo "export CC=gcc" >> .mozconfig + echo "export CXX=g++" >> .mozconfig + echo "export AR=\"gcc-ar\"" >> .mozconfig + echo "export NM=\"gcc-nm\"" >> .mozconfig + echo "export RANLIB=\"gcc-ranlib\"" >> .mozconfig +%endif MOZ_SMP_FLAGS=-j1 # More than two build tasks can lead to OOM gcc crash. %if 0%{?rhel} < 8 -[ -z "$RPM_BUILD_NCPUS" ] && \ - RPM_BUILD_NCPUS="`/usr/bin/getconf _NPROCESSORS_ONLN`" -[ "$RPM_BUILD_NCPUS" -ge 2 ] && MOZ_SMP_FLAGS=-j2 + [ -z "$RPM_BUILD_NCPUS" ] && \ + RPM_BUILD_NCPUS="`/usr/bin/getconf _NPROCESSORS_ONLN`" + [ "$RPM_BUILD_NCPUS" -ge 2 ] && MOZ_SMP_FLAGS=-j2 %else -%ifarch %{ix86} x86_64 ppc ppc64 ppc64le aarch64 -[ -z "$RPM_BUILD_NCPUS" ] && \ - RPM_BUILD_NCPUS="`/usr/bin/getconf _NPROCESSORS_ONLN`" -[ "$RPM_BUILD_NCPUS" -ge 2 ] && MOZ_SMP_FLAGS=-j2 -[ "$RPM_BUILD_NCPUS" -ge 4 ] && MOZ_SMP_FLAGS=-j4 -[ "$RPM_BUILD_NCPUS" -ge 8 ] && MOZ_SMP_FLAGS=-j8 + %ifarch %{ix86} x86_64 ppc64 ppc64le aarch64 + [ -z "$RPM_BUILD_NCPUS" ] && \ + RPM_BUILD_NCPUS="`/usr/bin/getconf _NPROCESSORS_ONLN`" + [ "$RPM_BUILD_NCPUS" -ge 2 ] && MOZ_SMP_FLAGS=-j2 + [ "$RPM_BUILD_NCPUS" -ge 4 ] && MOZ_SMP_FLAGS=-j3 + [ "$RPM_BUILD_NCPUS" -ge 8 ] && MOZ_SMP_FLAGS=-j3 + %endif %endif + +cat /proc/meminfo + +# Free memory in kB +if grep -q MemAvailable /proc/meminfo; then + MEM_AVAILABLE=$(grep MemAvailable /proc/meminfo | awk '{ print $2 }') +else + MEM_AVAILABLE=$(grep MemFree /proc/meminfo | awk '{ print $2 }') +fi + +# Usually the compiler processes can take 2 GB of memory at peaks +TASK_SIZE=4000000 +MEM_CONSTRAINED_JOBS=$(( MEM_AVAILABLE / TASK_SIZE )) + +if [ $MEM_CONSTRAINED_JOBS -le 0 ]; then + MEM_CONSTRAINED_JOBS=1 +fi + +CPU_AVAILABLE=$(/usr/bin/getconf _NPROCESSORS_ONLN) +# Pick the minimum from available CPUs or memory constrained number of jobs +MOZ_SMP_FLAGS=-j$([ "$CPU_AVAILABLE" -le "$MEM_CONSTRAINED_JOBS" ] && echo "$CPU_AVAILABLE" || echo "$MEM_CONSTRAINED_JOBS") + +# override smp flags to the rpmbuild defaults ATM +%ifnarch ppc64le +MOZ_SMP_FLAGS=%{_smp_mflags} +%endif + +%ifarch s390x +MOZ_SMP_FLAGS=-j2 %endif -%if 0%{?bundle_gtk3} -# gtk3-private-setup-flags-env.inc -%include_file %{SOURCE205} +%if 0%{?bundle_nss} + echo "Setting nss flags" + # nss-setup-flags-env.inc + %include_file %{SOURCE401} + export PATH=%{_buildrootdir}/%{bundled_install_path}/bin:$PATH + echo $PKG_CONFIG_PATH %endif export MOZ_MAKE_FLAGS="$MOZ_SMP_FLAGS" export MOZ_SERVICES_SYNC="1" -export STRIP=/bin/true -./mach build -v - -# create debuginfo for crash-stats.mozilla.com -%if %{enable_mozilla_crashreporter} -#cd %{moz_objdir} -make -C objdir buildsymbols +# we need to strip the sources on i686 because to we don't use rpm to generate debugsymbols because of oom +%ifnarch %{ix86} + export STRIP=/bin/true %endif +which node +echo 'export NODEJS="%{_buildrootdir}/bin/node-stdout-nonblocking-wrapper"' +env +ls %{_buildrootdir} -%if %{?run_tests} -%if %{?system_nss} -ln -s /usr/bin/certutil objdir/dist/bin/certutil -ln -s /usr/bin/pk12util objdir/dist/bin/pk12util - -%endif -mkdir test_results -./mach --log-no-times check-spidermonkey &> test_results/check-spidermonkey || true -./mach --log-no-times check-spidermonkey &> test_results/check-spidermonkey-2nd-run || true -./mach --log-no-times cppunittest &> test_results/cppunittest || true -xvfb-run ./mach --log-no-times crashtest &> test_results/crashtest || true -./mach --log-no-times gtest &> test_results/gtest || true -xvfb-run ./mach --log-no-times jetpack-test &> test_results/jetpack-test || true -# not working right now ./mach marionette-test &> test_results/marionette-test || true -xvfb-run ./mach --log-no-times mochitest-a11y &> test_results/mochitest-a11y || true -xvfb-run ./mach --log-no-times mochitest-browser &> test_results/mochitest-browser || true -xvfb-run ./mach --log-no-times mochitest-chrome &> test_results/mochitest-chrome || true -xvfb-run ./mach --log-no-times mochitest-devtools &> test_results/mochitest-devtools || true -xvfb-run ./mach --log-no-times mochitest-plain &> test_results/mochitest-plain || true -xvfb-run ./mach --log-no-times reftest &> test_results/reftest || true -xvfb-run ./mach --log-no-times webapprt-test-chrome &> test_results/webapprt-test-chrome || true -xvfb-run ./mach --log-no-times webapprt-test-content &> test_results/webapprt-test-content || true -./mach --log-no-times webidl-parser-test &> test_results/webidl-parser-test || true -xvfb-run ./mach --log-no-times xpcshell-test &> test_results/xpcshell-test || true -%if %{?system_nss} -rm -f objdir/dist/bin/certutil -rm -f objdir/dist/bin/pk12util +export MACH_USE_SYSTEM_PYTHON=1 +%if 0%{?use_llvmts} + #scl enable llvm-toolset-%{llvm_version} './mach build -v' + ./mach build -v +%else + ./mach build -v %endif +# Look for the reason we get: /usr/lib/rpm/debugedit: canonicalization unexpectedly shrank by one character +readelf -wl objdir/dist/bin/libxul.so | grep "/" +%if %{?run_tests} + %if %{?system_nss} + ln -s /usr/bin/certutil objdir/dist/bin/certutil + ln -s /usr/bin/pk12util objdir/dist/bin/pk12util + %endif + mkdir test_results + ./mach --log-no-times check-spidermonkey &> test_results/check-spidermonkey || true + ./mach --log-no-times check-spidermonkey &> test_results/check-spidermonkey-2nd-run || true + ./mach --log-no-times cppunittest &> test_results/cppunittest || true + xvfb-run ./mach --log-no-times crashtest &> test_results/crashtest || true + ./mach --log-no-times gtest &> test_results/gtest || true + xvfb-run ./mach --log-no-times jetpack-test &> test_results/jetpack-test || true + # not working right now ./mach marionette-test &> test_results/marionette-test || true + xvfb-run ./mach --log-no-times mochitest-a11y &> test_results/mochitest-a11y || true + xvfb-run ./mach --log-no-times mochitest-browser &> test_results/mochitest-browser || true + xvfb-run ./mach --log-no-times mochitest-chrome &> test_results/mochitest-chrome || true + xvfb-run ./mach --log-no-times mochitest-devtools &> test_results/mochitest-devtools || true + xvfb-run ./mach --log-no-times mochitest-plain &> test_results/mochitest-plain || true + xvfb-run ./mach --log-no-times reftest &> test_results/reftest || true + xvfb-run ./mach --log-no-times webapprt-test-chrome &> test_results/webapprt-test-chrome || true + xvfb-run ./mach --log-no-times webapprt-test-content &> test_results/webapprt-test-content || true + ./mach --log-no-times webidl-parser-test &> test_results/webidl-parser-test || true + xvfb-run ./mach --log-no-times xpcshell-test &> test_results/xpcshell-test || true + %if %{?system_nss} + rm -f objdir/dist/bin/certutil + rm -f objdir/dist/bin/pk12util + %endif %endif #--------------------------------------------------------------------- %install -%if 0%{?rhel} == 6 -export SHELL=/bin/sh -%endif - -%if 0%{?bundle_gtk3} +export MACH_USE_SYSTEM_PYTHON=1 function install_rpms_to_current_dir() { PACKAGE_RPM=$(eval echo $1) PACKAGE_DIR=%{_rpmdir} @@ -1052,7 +923,7 @@ function install_rpms_to_current_dir() { if [ ! -f $PACKAGE_DIR/$PACKAGE_RPM ]; then # Hack for tps tests ARCH_STR=%{_arch} - %ifarch i386 i686 + %ifarch %{ix86} ARCH_STR="i?86" %endif PACKAGE_DIR="$PACKAGE_DIR/$ARCH_STR" @@ -1065,11 +936,27 @@ function install_rpms_to_current_dir() { done } -pushd %{buildroot} -# Install gtk3-private again to the buildroot, but without devel subpackage -install_rpms_to_current_dir gtk3-private-%{gtk3_nvr}*.rpm -install_rpms_to_current_dir gtk3-private-rpm-scripts-%{gtk3_nvr}*.rpm -popd +%if 0%{?bundle_nss} + pushd %{buildroot} + #install_rpms_to_current_dir nss-*.rpm + install_rpms_to_current_dir nspr-4*.rpm + install_rpms_to_current_dir nss-3*.rpm + install_rpms_to_current_dir nss-softokn-3*.rpm + install_rpms_to_current_dir nss-softokn-freebl-3*.rpm + install_rpms_to_current_dir nss-util-3*.rpm + + # cleanup unecessary nss files + #rm -rf %{_buildrootdir}/%{bundled_install_path}/bin + #rm -rf %{_buildrootdir}/%{bundled_install_path}/include + rm -rf %{buildroot}/%{bundled_install_path}/lib/dracut + rm -rf %{buildroot}/%{bundled_install_path}/%{_lib}/nss + #rm -rf %{_buildrootdir}/%{bundled_install_path}/%{_lib}/pkgconfig + rm -rf %{buildroot}/%{bundled_install_path}/%{_lib}/share + rm -rf %{buildroot}/%{bundled_install_path}/share + rm -rf %{buildroot}/etc/pki + rm -rf %{buildroot}/usr/lib/.build-id + rm -rf %{buildroot}/etc/crypto-policies + popd %endif # Install bundled libffi @@ -1080,7 +967,7 @@ popd %endif # set up our default bookmarks -# %{__cp} -p %{default_bookmarks_file} objdir/dist/bin/browser/chrome/en-US/locale/browser/bookmarks.html +%{__cp} -p %{default_bookmarks_file} objdir/dist/bin/browser/chrome/en-US/locale/browser/bookmarks.html # Make sure locale works for langpacks %{__cat} > objdir/dist/bin/browser/defaults/preferences/firefox-l10n.js << EOF @@ -1096,11 +983,8 @@ desktop-file-install --dir %{buildroot}%{_datadir}/applications %{SOURCE20} # set up the firefox start script %{__rm} -rf %{buildroot}%{_bindir}/firefox %{__cat} %{SOURCE21} > %{buildroot}%{_bindir}/firefox -%if 0%{?bundle_gtk3} -sed -i -e 's|%RHEL_ENV_VARS%|export XDG_DATA_DIRS="$MOZ_LIB_DIR/firefox/bundled/share:/usr/share:$XDG_DATA_DIRS"\nexport FONTCONFIG_FILE="$MOZ_LIB_DIR/firefox/bundled/etc/fonts/fonts.conf"|' %{buildroot}%{_bindir}/firefox -%else +sed -i -e 's|%PREFIX%|%{_prefix}|' %{buildroot}%{_bindir}/firefox sed -i -e 's|%RHEL_ENV_VARS%||' %{buildroot}%{_bindir}/firefox -%endif %{__chmod} 755 %{buildroot}%{_bindir}/firefox @@ -1138,6 +1022,7 @@ SentUpstream: 2014-09-22 firefox.desktop CC0-1.0 + MPLv1.1 or GPLv2+ or LGPLv2+

Bringing together all kinds of awesomeness to make browsing better for you. @@ -1214,6 +1099,16 @@ create_default_langpack "zh-TW" "zh" ln -s %{mozappdir}/defaults/preferences $RPM_BUILD_ROOT/%{mozappdir}/browser/defaults/preferences # Default preferences %{__cp} %{SOURCE12} %{buildroot}%{mozappdir}/defaults/preferences/all-redhat.js +sed -i -e 's|%PREFIX%|%{_prefix}|' %{buildroot}%{mozappdir}/defaults/preferences/all-redhat.js +# Enable modern crypto for the key export on the RHEL9 only (rhbz#1764205) +%if 0%{?rhel} == 9 + echo 'pref("security.pki.use_modern_crypto_with_pkcs12", true);' >> %{buildroot}%{mozappdir}/defaults/preferences/all-redhat.js +%endif + +%ifarch s390x ppc64 + echo 'pref("gfx.webrender.force-disabled", true);' >> %{buildroot}%{mozappdir}/defaults/preferences/all-redhat.js +%endif + # System config dir %{__mkdir_p} %{buildroot}/%{_sysconfdir}/%{name}/pref @@ -1229,14 +1124,6 @@ ln -s %{mozappdir}/defaults/preferences $RPM_BUILD_ROOT/%{mozappdir}/browser/def %{__rm} -rf %{buildroot}%{mozappdir}/dictionaries ln -s %{_datadir}/myspell %{buildroot}%{mozappdir}/dictionaries -# Enable crash reporter for Firefox application -%if %{enable_mozilla_crashreporter} -sed -i -e "s/\[Crash Reporter\]/[Crash Reporter]\nEnabled=1/" %{buildroot}/%{mozappdir}/application.ini -# Add debuginfo for crash-stats.mozilla.com -%{__mkdir_p} %{buildroot}/%{moz_debug_dir} -%{__cp} objdir/dist/%{symbols_file_name} %{buildroot}/%{moz_debug_dir} -%endif - %if %{run_tests} # Add debuginfo for crash-stats.mozilla.com %{__mkdir_p} %{buildroot}/test_results @@ -1259,13 +1146,6 @@ sed -i -e 's|Red Hat Enterprise|CentOS|' %{buildroot}%{mozappdir}/distribution/d rm -f %{buildroot}%{mozappdirdev}/sdk/lib/libmozjs.so rm -f %{buildroot}%{mozappdirdev}/sdk/lib/libmozalloc.so rm -f %{buildroot}%{mozappdirdev}/sdk/lib/libxul.so - -%if %{bundle_gnome_extension} -# Gnome extension -%{__mkdir_p} %{buildroot}%{mozappdir}/distribution/extensions -%{__cp} -p %{SOURCE2} %{buildroot}%{mozappdir}/distribution/extensions/chrome-gnome-shell@gnome.org.xpi -chmod 644 %{buildroot}%{mozappdir}/distribution/extensions/chrome-gnome-shell@gnome.org.xpi -%endif #--------------------------------------------------------------------- %preun @@ -1274,24 +1154,21 @@ if [ $1 -eq 0 ]; then %{__rm} -rf %{mozappdir}/components %{__rm} -rf %{mozappdir}/extensions %{__rm} -rf %{mozappdir}/plugins - %{__rm} -rf %{langpackdir} fi %clean -rm -rf %{_srcrpmdir}/gtk3-private-%{gtk3_nvr}*.src.rpm -find %{_rpmdir} -name "gtk3-private-*%{gtk3_nvr}*.rpm" -delete rm -rf %{_srcrpmdir}/libffi*.src.rpm find %{_rpmdir} -name "libffi*.rpm" -delete rm -rf %{_srcrpmdir}/openssl*.src.rpm find %{_rpmdir} -name "openssl*.rpm" -delete +rm -rf %{_srcrpmdir}/nss*.src.rpm +find %{_rpmdir} -name "nss*.rpm" -delete +rm -rf %{_srcrpmdir}/nspr*.src.rpm +find %{_rpmdir} -name "nspr*.rpm" -delete %post update-desktop-database &> /dev/null || : touch --no-create %{_datadir}/icons/hicolor &>/dev/null || : -%if 0%{?bundle_gtk3} -# gtk3-private-post.inc -%include_file %{SOURCE201} -%endif %postun update-desktop-database &> /dev/null || : @@ -1299,17 +1176,9 @@ if [ $1 -eq 0 ] ; then touch --no-create %{_datadir}/icons/hicolor &>/dev/null gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : fi -%if 0%{?bundle_gtk3} -# gtk3-private-postun.inc -%include_file %{SOURCE202} -%endif %posttrans gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : -%if 0%{?bundle_gtk3} -# gtk3-private-posttrans.inc -%include_file %{SOURCE203} -%endif %files -f %{name}.lang %{_bindir}/firefox @@ -1325,17 +1194,14 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %dir %{mozappdir} %doc %{mozappdir}/LICENSE %{mozappdir}/browser/chrome -%{mozappdir}/browser/chrome.manifest %{mozappdir}/defaults/preferences/* %{mozappdir}/browser/defaults/preferences %{mozappdir}/browser/features/*.xpi %{mozappdir}/distribution/distribution.ini -%attr(644, root, root) %{mozappdir}/browser/blocklist.xml %if %{build_langpacks} %dir %{langpackdir} %endif %{mozappdir}/browser/omni.ja -%{mozappdir}/chrome.manifest %{mozappdir}/run-mozilla.sh %{mozappdir}/application.ini %{mozappdir}/pingsender @@ -1347,15 +1213,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_datadir}/icons/hicolor/32x32/apps/firefox.png %{_datadir}/icons/hicolor/48x48/apps/firefox.png %{_datadir}/icons/hicolor/symbolic/apps/firefox-symbolic.svg -%if %{enable_mozilla_crashreporter} -%{mozappdir}/crashreporter -%{mozappdir}/crashreporter.ini -%{mozappdir}/minidump-analyzer -%{mozappdir}/Throbber-small.gif -%{mozappdir}/browser/crashreporter-override.ini -%endif %{mozappdir}/*.so -%{mozappdir}/gtk2/*.so %{mozappdir}/defaults/pref/channel-prefs.js %{mozappdir}/dependentlibs.list %{mozappdir}/dictionaries @@ -1364,13 +1222,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{mozappdir}/plugin-container %{mozappdir}/gmp-clearkey %{mozappdir}/fonts/*.ttf -%if !%{?system_libicu} -#%{mozappdir}/icudt*.dat -%endif %if !%{?system_nss} -%{mozappdir}/libfreeblpriv3.chk -%{mozappdir}/libnssdbm3.chk -%{mozappdir}/libsoftokn3.chk %exclude %{mozappdir}/libnssckbi.so %endif %if 0%{use_bundled_ffi} @@ -1378,21 +1230,112 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %exclude %{_datadir}/doc/libffi* %endif -%if 0%{?bundle_gtk3} -# gtk3-private-files.inc -%include_file %{SOURCE204} +%if 0%{?bundle_nss} +%{mozappdir}/bundled/%{_lib}/libfreebl* +%{mozappdir}/bundled/%{_lib}/libnss3* +%{mozappdir}/bundled/%{_lib}/libnssdbm3* +%{mozappdir}/bundled/%{_lib}/libnssutil3* +%{mozappdir}/bundled/%{_lib}/libsmime3* +%{mozappdir}/bundled/%{_lib}/libsoftokn* +%{mozappdir}/bundled/%{_lib}/libssl3* +%{mozappdir}/bundled/%{_lib}/libnspr4.so +%{mozappdir}/bundled/%{_lib}/libplc4.so +%{mozappdir}/bundled/%{_lib}/libplds4.so %endif #--------------------------------------------------------------------- %changelog -* Thu Oct 28 2021 yangxianzhao - 68.10.0-1.0.2 -- Enable_mozilla_crashreporter on aarch64 +* Mon Nov 01 2021 Eike Rathke - 91.3.0-1 +- Update to 91.3.0 build1 + +* Thu Oct 21 2021 Jan Horak - 91.2.0-5 +- Fixed crashes when FIPS is enabled. + +* Mon Oct 04 2021 Jan Horak - 91.2.0-4 +- Disable webrender on the s390x due to wrong colors: rhbz#2009503 + +* Wed Sep 29 2021 Jan Horak - 91.2.0-3 +- Update to 91.2.0 build1 + +* Wed Sep 15 2021 Jan Horak - 91.1.0-1 +- Update to 91.1.0 build1 + +* Tue Aug 17 2021 Jan Horak +- Update to 91.0.1 build1 + +* Tue Aug 10 2021 Jan Horak - 91.0-1 +- Update to 91.0 ESR + +* Thu Jul 29 2021 Jan Horak - 91.0-1 +- Update to 91.0b8 + +* Fri Jul 16 2021 Jan Horak - 78.12.0-2 +- Rebuild to pickup older nss + +* Wed Jul 07 2021 Eike Rathke - 78.12.0-1 +- Update to 78.12.0 build1 + +* Mon May 31 2021 Eike Rathke - 78.11.0-3 +- Update to 78.11.0 build2 (release) + +* Thu May 27 2021 Eike Rathke - 78.11.0-2 +- Fix rhel_minor_version for dist .el8_4 and .el8 + +* Tue May 25 2021 Eike Rathke - 78.11.0-1 +- Update to 78.11.0 build1 + +* Tue Apr 20 2021 Eike Rathke - 78.10.0-1 +- Update to 78.10.0 + +* Wed Mar 17 2021 Eike Rathke - 78.9.0-1 +- Update to 78.9.0 build1 + +* Wed Feb 17 2021 Eike Rathke - 78.8.0-1 +- Update to 78.8.0 build2 + +* Tue Feb 09 2021 Eike Rathke - 78.7.1-1 +- Update to 78.7.1 + +* Tue Feb 09 2021 Jan Horak - 78.7.0-3 +- Fixing install prefix for the homepage + +* Fri Jan 22 2021 Eike Rathke - 78.7.0-2 +- Update to 78.7.0 build2 + +* Wed Jan 20 2021 Eike Rathke - 78.7.0-1 +- Update to 78.7.0 build1 + +* Wed Jan 6 2021 Eike Rathke - 78.6.1-1 +- Update to 78.6.1 build1 + +* Thu Dec 10 2020 Jan Horak - 78.6.0-1 +- Update to 78.6.0 build1 + +* Wed Nov 18 2020 Jan Horak - 78.5.0-1 +- Update to 78.5.0 build1 + +* Tue Nov 10 2020 erack@redhat.com - 78.4.1-1 +- Update to 78.4.1 + +* Tue Nov 10 2020 Jan Horak - 78.4.0-3 +- Fixing flatpak build, fixing firefox.sh.in to not disable langpacks loading + +* Thu Oct 29 2020 Jan Horak - 78.4.0-2 +- Enable addon sideloading + +* Fri Oct 16 2020 Jan Horak - 78.4.0-1 +- Update to 78.4.0 build2 + +* Fri Sep 18 2020 Jan Horak +- Update to 78.3.0 build1 + +* Tue Aug 18 2020 Jan Horak - 78.2.0-3 +- Update to 78.2.0 build1 -* Fri Oct 15 2021 Mingyue Zhao - 68.10.0-1.0.1 -- Add firefox-anolis-default-prefs.js -- Remove bookmarks +* Fri Jul 24 2020 Jan Horak +- Update to 68.11.0 build1 * Fri Jun 26 2020 Jan Horak - Update to 68.10.0 build1 diff --git a/gtk3-private-3.22.26-1-files.inc b/gtk3-private-3.22.26-1-files.inc deleted file mode 100644 index 8e1e31a3c0a1b31d40022f587c0c674a551aac8f..0000000000000000000000000000000000000000 --- a/gtk3-private-3.22.26-1-files.inc +++ /dev/null @@ -1,54 +0,0 @@ -%dir %{gtk3_install_path}/bin -%{gtk3_install_path}/bin/gdk-pixbuf-query-loaders-%{__isa_bits} -%{gtk3_install_path}/bin/gdk-pixbuf-thumbnailer -%{gtk3_install_path}/bin/gio-querymodules-%{__isa_bits} -%{gtk3_install_path}/bin/glib-compile-schemas -%{gtk3_install_path}/bin/gtk-query-immodules-3.0-%{__isa_bits} -%{gtk3_install_path}/bin/gtk-update-icon-cache -%{gtk3_install_path}/bin/fc-cache - -%{gtk3_install_path}/etc - -%dir %{gtk3_install_path}/%{_lib} -%{gtk3_install_path}/%{_lib}/libatk-1.0.so.* -%{gtk3_install_path}/%{_lib}/libatk-bridge-2.0.so.* -%{gtk3_install_path}/%{_lib}/libatspi.so.* -%{gtk3_install_path}/%{_lib}/libcairo.so.* -%{gtk3_install_path}/%{_lib}/libcairo-gobject.so.* -%{gtk3_install_path}/%{_lib}/libfontconfig.so.* -%{gtk3_install_path}/%{_lib}/libfreetype.so.* -%{gtk3_install_path}/%{_lib}/libgdk-3.so.* -%{gtk3_install_path}/%{_lib}/libgdk_pixbuf-2.0.so.* -%{gtk3_install_path}/%{_lib}/libgio-2.0.so.* -%{gtk3_install_path}/%{_lib}/libglib-2.0.so.* -%{gtk3_install_path}/%{_lib}/libgmodule-2.0.so.* -%{gtk3_install_path}/%{_lib}/libgobject-2.0.so.* -%{gtk3_install_path}/%{_lib}/libgthread-2.0.so.* -%{gtk3_install_path}/%{_lib}/libgtk-3.so.* -%{gtk3_install_path}/%{_lib}/libharfbuzz.so.* -%{gtk3_install_path}/%{_lib}/libpango-1.0.so.* -%{gtk3_install_path}/%{_lib}/libpangocairo-1.0.so.* -%{gtk3_install_path}/%{_lib}/libpangoft2-1.0.so.* -%{gtk3_install_path}/%{_lib}/libpcre.so.* -%{gtk3_install_path}/%{_lib}/librsvg-2.so.* -%dir %{gtk3_install_path}/%{_lib}/cairo -%{gtk3_install_path}/%{_lib}/cairo/cairo-fdr.so.* -%{gtk3_install_path}/%{_lib}/cairo/cairo-sphinx.so.* -%{gtk3_install_path}/%{_lib}/cairo/libcairo-trace.so.* -%{gtk3_install_path}/%{_lib}/gdk-pixbuf-2.0 -%ghost %attr(644, root, root) %{gtk3_install_path}/%{_lib}/gdk-pixbuf-2.0/2.10.0/loaders.cache -%{gtk3_install_path}/%{_lib}/gio -%ghost %attr(644, root, root) %{gtk3_install_path}/%{_lib}/gio/modules/giomodule.cache -%{gtk3_install_path}/%{_lib}/gtk-3.0 -%ghost %attr(644, root, root) %{gtk3_install_path}/%{_lib}/gtk-3.0/3.0.0/immodules.cache - -%{gtk3_install_path}/libexec - -%{gtk3_install_path}/share -%ghost %attr(644, root, root) %{gtk3_install_path}/share/icons/Adwaita/icon-theme.cache -%ghost %attr(644, root, root) %{gtk3_install_path}/share/icons/hicolor/icon-theme.cache -%ghost %attr(644, root, root) %{gtk3_install_path}/share/glib-2.0/schemas/gschemas.compiled - -%{gtk3_install_path}/var -%dir %{gtk3_install_path}/var/cache/fontconfig - diff --git a/gtk3-private-3.22.26-1-post.inc b/gtk3-private-3.22.26-1-post.inc deleted file mode 100644 index 04acf06ed53c6785ce90b4fba09630970b0a65b7..0000000000000000000000000000000000000000 --- a/gtk3-private-3.22.26-1-post.inc +++ /dev/null @@ -1,23 +0,0 @@ -# adwaita-icon-theme -touch --no-create %{gtk3_install_path}/share/icons/Adwaita &>/dev/null || : -touch --no-create %{gtk3_install_path}/share/icons/hicolor &>/dev/null || : -%{gtk3_install_path}/bin/gdk-pixbuf-query-loaders-%{__isa_bits} --update-cache || : - -# glib2 -%{gtk3_install_path}/bin/gio-querymodules-%{__isa_bits} %{gtk3_install_path}/%{_lib}/gio/modules - -# gtk3 -%{gtk3_install_path}/bin/gtk-query-immodules-3.0-%{__isa_bits} --update-cache -%{gtk3_install_path}/bin/glib-compile-schemas %{gtk3_install_path}/share/glib-2.0/schemas &> /dev/null || : - -# fontconfig -umask 0022 - -# Force regeneration of all fontconfig cache files -# The check for existance is needed on dual-arch installs (the second -# copy of fontconfig might install the binary instead of the first) -# The HOME setting is to avoid problems if HOME hasn't been reset -# FIXME hardcoded version ! -if [ -x %{gtk3_install_path}/bin/fc-cache ] && %{gtk3_install_path}/bin/fc-cache --version 2>&1 | grep -q 2.10.95 ; then - HOME=/root %{gtk3_install_path}/bin/fc-cache -f -fi diff --git a/gtk3-private-3.22.26-1-posttrans.inc b/gtk3-private-3.22.26-1-posttrans.inc deleted file mode 100644 index 8c5f2d7ffde3dd6042680256d6f3587b09c52636..0000000000000000000000000000000000000000 --- a/gtk3-private-3.22.26-1-posttrans.inc +++ /dev/null @@ -1,3 +0,0 @@ -%{gtk3_install_path}/gtk-update-icon-cache %{gtk3_install_path}/share/icons/hicolor &>/dev/null || : -# adwaita -%{gtk3_install_path}/gtk-update-icon-cache %{gtk3_install_path}/share/icons/Adwaita &>/dev/null || : diff --git a/gtk3-private-3.22.26-1-postun.inc b/gtk3-private-3.22.26-1-postun.inc deleted file mode 100644 index 3b5df730781456708a71ae4833cf7cd0d06fc2eb..0000000000000000000000000000000000000000 --- a/gtk3-private-3.22.26-1-postun.inc +++ /dev/null @@ -1,27 +0,0 @@ -# adwaita -if [ $1 -eq 0 ] ; then - touch --no-create %{gtk3_install_path}/share/icons/Adwaita &>/dev/null - touch --no-create %{gtk3_install_path}/share/icons/hicolor &>/dev/null - %{gtk3_install_path}/bin/gtk-update-icon-cache %{gtk3_install_path}/share/icons/Adwaita &>/dev/null || : - %{gtk3_install_path}/bin/gtk-update-icon-cache %{gtk3_install_path}/share/icons/hicolor &>/dev/null || : -fi - -# gdk-pixbuf2 -if [ $1 -gt 0 ]; then - %{gtk3_install_path}/bin/gdk-pixbuf-query-loaders-%{__isa_bits} --update-cache || : -fi - -# glib2 -[ ! -x %{gtk3_install_path}/bin/gio-querymodules-%{__isa_bits} ] || \ -%{gtk3_install_path}/bin/gio-querymodules-%{__isa_bits} %{gtk3_install_path}/%{_lib}/gio/modules - -# gtk3 -if [ $1 -gt 0 ]; then - %{gtk3_install_path}/bin/gtk-query-immodules-3.0-%{__isa_bits} --update-cache -fi - -if [ $1 -eq 0 ] ; then - rm -rf %{gtk3_install_path}/var/cache/fontconfig/* &>/dev/null || : -fi - -%{gtk3_install_path}/bin/glib-compile-schemas %{gtk3_install_path}/share/glib-2.0/schemas &> /dev/null || : diff --git a/gtk3-private-3.22.26-1-requires-provides-filter.inc b/gtk3-private-3.22.26-1-requires-provides-filter.inc deleted file mode 100644 index f5fa495cddd1d5d82ab7817461cb7003448a9db9..0000000000000000000000000000000000000000 --- a/gtk3-private-3.22.26-1-requires-provides-filter.inc +++ /dev/null @@ -1,26 +0,0 @@ -%filter_provides_in %{gtk3_install_path}/%{_lib} -%filter_requires_in %{gtk3_install_path}/%{_lib} - -%filter_from_requires /libgdk-3.*/d -%filter_from_requires /libatk-1.0.so.*/d -%filter_from_requires /libatk-bridge-2.0.so.*/d -%filter_from_requires /libatspi.so.*/d -%filter_from_requires /libcairo.so.*/d -%filter_from_requires /libcairo-gobject.so.*/d -%filter_from_requires /libfontconfig.so.*/d -%filter_from_requires /libfreetype.so.*/d -%filter_from_requires /libgdk-3.so.*/d -%filter_from_requires /libgdk_pixbuf-2.0.so.*/d -%filter_from_requires /libgio-2.0.so.*/d -%filter_from_requires /libglib-2.0.so.*/d -%filter_from_requires /libgmodule-2.0.so.*/d -%filter_from_requires /libgobject-2.0.so.*/d -%filter_from_requires /libgthread-2.0.so.*/d -%filter_from_requires /libgtk-3.so.*/d -%filter_from_requires /libharfbuzz.so.*/d -%filter_from_requires /libpango-1.0.so.*/d -%filter_from_requires /libpangocairo-1.0.so.*/d -%filter_from_requires /libpangoft2-1.0.so.*/d -%filter_from_requires /libpcre.so.*/d - -# Don't forget to call %%filter_setup from the consumer! diff --git a/gtk3-private-3.22.26-1-setup-flags-env.inc b/gtk3-private-3.22.26-1-setup-flags-env.inc deleted file mode 100644 index eb54164e0b1db68d2d7849714797aa5b52af6ffe..0000000000000000000000000000000000000000 --- a/gtk3-private-3.22.26-1-setup-flags-env.inc +++ /dev/null @@ -1,34 +0,0 @@ -%if "%{name}" == "gtk3-private" - function prepend_buildroot_include_path_to_compiler_flags() { - export CFLAGS="-I%{_buildrootdir}%{gtk3_install_path}/$@ $CFLAGS" \ - export CXXFLAGS="-I%{_buildrootdir}%{gtk3_install_path}/$@ $CXXFLAGS" - } - - prepend_buildroot_include_path_to_compiler_flags include - prepend_buildroot_include_path_to_compiler_flags include/glib-2.0 - prepend_buildroot_include_path_to_compiler_flags include/glib-2.0 - prepend_buildroot_include_path_to_compiler_flags include/gio-unix-2.0 - prepend_buildroot_include_path_to_compiler_flags %{_lib}/glib-2.0/include - prepend_buildroot_include_path_to_compiler_flags include/freetype2 - prepend_buildroot_include_path_to_compiler_flags include/fontconfig - prepend_buildroot_include_path_to_compiler_flags include/harfbuzz - prepend_buildroot_include_path_to_compiler_flags include/gdk-pixbuf-2.0 - prepend_buildroot_include_path_to_compiler_flags include/atk-1.0 - prepend_buildroot_include_path_to_compiler_flags include/at-spi-2.0 - prepend_buildroot_include_path_to_compiler_flags include/at-spi2-atk/2.0 - prepend_buildroot_include_path_to_compiler_flags include/cairo - prepend_buildroot_include_path_to_compiler_flags include/pango-1.0 - prepend_buildroot_include_path_to_compiler_flags include/librsvg-2.0 - prepend_buildroot_include_path_to_compiler_flags include/cairo - prepend_buildroot_include_path_to_compiler_flags include/gtk-3.0 - prepend_buildroot_include_path_to_compiler_flags include/gtk-3.0/unix-print - prepend_buildroot_include_path_to_compiler_flags include/librsvg-2.0 -%else - sed -i 's@%{gtk3_install_path}@%{_buildrootdir}%{gtk3_install_path}@g' %{_buildrootdir}%{gtk3_install_path}/%{_lib}/pkgconfig/*.pc -%endif - -export LDFLAGS="-L%{_buildrootdir}%{gtk3_install_path}/%{_lib} $LDFLAGS" -export LDFLAGS="-Wl,-rpath,%{gtk3_install_path}/%{_lib} $LDFLAGS" -export LDFLAGS="-Wl,-rpath-link,%{_buildrootdir}%{gtk3_install_path}/%{_lib} $LDFLAGS" - -export PKG_CONFIG_PATH=%{_buildrootdir}%{gtk3_install_path}/%{_lib}/pkgconfig diff --git a/libffi-3.0.13-18.el7_3.src.rpm b/libffi-3.0.13-18.el7_3.src.rpm deleted file mode 100644 index 999ed63ea8b236fbf8fdb5f706a2468e14e67556..0000000000000000000000000000000000000000 Binary files a/libffi-3.0.13-18.el7_3.src.rpm and /dev/null differ diff --git a/mozilla-1170092.patch b/mozilla-1170092.patch index 5aebd73d1cdafb185c95e580e026ac28d29ea726..50d6785a006292508af4680c74d3d933f8154e1b 100644 --- a/mozilla-1170092.patch +++ b/mozilla-1170092.patch @@ -1,7 +1,7 @@ -diff -up firefox-68.5.0/extensions/pref/autoconfig/src/nsReadConfig.cpp.1170092 firefox-68.5.0/extensions/pref/autoconfig/src/nsReadConfig.cpp ---- firefox-68.5.0/extensions/pref/autoconfig/src/nsReadConfig.cpp.1170092 2020-02-07 01:27:03.000000000 +0100 -+++ firefox-68.5.0/extensions/pref/autoconfig/src/nsReadConfig.cpp 2020-02-24 11:30:32.058044651 +0100 -@@ -246,8 +246,20 @@ nsresult nsReadConfig::openAndEvaluateJS +diff -up firefox-91.0/extensions/pref/autoconfig/src/nsReadConfig.cpp.1170092 firefox-91.0/extensions/pref/autoconfig/src/nsReadConfig.cpp +--- firefox-91.0/extensions/pref/autoconfig/src/nsReadConfig.cpp.1170092 2021-07-27 23:29:57.000000000 +0200 ++++ firefox-91.0/extensions/pref/autoconfig/src/nsReadConfig.cpp 2021-07-29 16:20:44.164513998 +0200 +@@ -249,8 +249,20 @@ nsresult nsReadConfig::openAndEvaluateJS if (NS_FAILED(rv)) return rv; rv = NS_NewLocalFileInputStream(getter_AddRefs(inStr), jsFile); @@ -12,7 +12,7 @@ diff -up firefox-68.5.0/extensions/pref/autoconfig/src/nsReadConfig.cpp.1170092 + getter_AddRefs(jsFile)); + NS_ENSURE_SUCCESS(rv, rv); + -+ rv = jsFile->AppendNative(NS_LITERAL_CSTRING("pref")); ++ rv = jsFile->AppendNative(nsLiteralCString("pref")); + NS_ENSURE_SUCCESS(rv, rv); + rv = jsFile->AppendNative(nsDependentCString(aFileName)); + NS_ENSURE_SUCCESS(rv, rv); @@ -23,10 +23,10 @@ diff -up firefox-68.5.0/extensions/pref/autoconfig/src/nsReadConfig.cpp.1170092 } else { nsAutoCString location("resource://gre/defaults/autoconfig/"); location += aFileName; -diff -up firefox-68.5.0/modules/libpref/Preferences.cpp.1170092 firefox-68.5.0/modules/libpref/Preferences.cpp ---- firefox-68.5.0/modules/libpref/Preferences.cpp.1170092 2020-02-24 11:30:32.059044645 +0100 -+++ firefox-68.5.0/modules/libpref/Preferences.cpp 2020-02-24 11:35:14.613443673 +0100 -@@ -4436,6 +4436,8 @@ static nsresult pref_ReadDefaultPrefs(co +diff -up firefox-91.0/modules/libpref/Preferences.cpp.1170092 firefox-91.0/modules/libpref/Preferences.cpp +--- firefox-91.0/modules/libpref/Preferences.cpp.1170092 2021-07-27 23:30:34.000000000 +0200 ++++ firefox-91.0/modules/libpref/Preferences.cpp 2021-07-29 16:20:44.166514005 +0200 +@@ -4553,6 +4553,8 @@ nsresult Preferences::InitInitialObjects // // Thus, in the omni.jar case, we always load app-specific default // preferences from omni.jar, whether or not `$app == $gre`. @@ -34,11 +34,11 @@ diff -up firefox-68.5.0/modules/libpref/Preferences.cpp.1170092 firefox-68.5.0/m + // - /etc/firefox/pref/*.js nsresult rv = NS_ERROR_FAILURE; - nsZipFind* findPtr; -diff -up firefox-68.5.0/toolkit/xre/nsXREDirProvider.cpp.1170092 firefox-68.5.0/toolkit/xre/nsXREDirProvider.cpp ---- firefox-68.5.0/toolkit/xre/nsXREDirProvider.cpp.1170092 2020-02-07 01:28:06.000000000 +0100 -+++ firefox-68.5.0/toolkit/xre/nsXREDirProvider.cpp 2020-02-24 11:34:27.284704700 +0100 -@@ -61,6 +61,7 @@ + UniquePtr find; +diff -up firefox-91.0/toolkit/xre/nsXREDirProvider.cpp.1170092 firefox-91.0/toolkit/xre/nsXREDirProvider.cpp +--- firefox-91.0/toolkit/xre/nsXREDirProvider.cpp.1170092 2021-07-27 23:30:56.000000000 +0200 ++++ firefox-91.0/toolkit/xre/nsXREDirProvider.cpp 2021-07-29 16:26:20.071628932 +0200 +@@ -71,6 +71,7 @@ #endif #ifdef XP_UNIX # include @@ -46,14 +46,14 @@ diff -up firefox-68.5.0/toolkit/xre/nsXREDirProvider.cpp.1170092 firefox-68.5.0/ #endif #ifdef XP_IOS # include "UIKitDirProvider.h" -@@ -524,6 +525,21 @@ nsXREDirProvider::GetFile(const char* aP +@@ -550,6 +551,21 @@ nsXREDirProvider::GetFile(const char* aP } } } + +#if defined(XP_UNIX) + if (!strcmp(aProperty, NS_APP_PREFS_SYSTEM_CONFIG_DIR)) { -+ nsCString sysConfigDir = NS_LITERAL_CSTRING("/etc/"); ++ nsCString sysConfigDir = nsLiteralCString("/etc/"); + nsCOMPtr appInfo = do_GetService("@mozilla.org/xre/app-info;1"); + if (!appInfo) + return NS_ERROR_NOT_AVAILABLE; @@ -68,28 +68,27 @@ diff -up firefox-68.5.0/toolkit/xre/nsXREDirProvider.cpp.1170092 firefox-68.5.0/ if (NS_FAILED(rv) || !file) return NS_ERROR_FAILURE; if (ensureFilePermissions) { -@@ -880,6 +896,17 @@ nsresult nsXREDirProvider::GetFilesInter - LoadDirIntoArray(mXULAppDir, kAppendPrefDir, directories); - LoadDirsIntoArray(mAppBundleDirectories, kAppendPrefDir, directories); - +@@ -827,6 +843,16 @@ nsresult nsXREDirProvider::GetFilesInter + LoadDirIntoArray(mXULAppDir, kAppendBackgroundTasksPrefDir, directories); + } + #endif + // Add /etc//pref/ directory if it exists + nsCOMPtr systemPrefDir; + rv = NS_GetSpecialDirectory(NS_APP_PREFS_SYSTEM_CONFIG_DIR, + getter_AddRefs(systemPrefDir)); + if (NS_SUCCEEDED(rv)) { -+ rv = systemPrefDir->AppendNative(NS_LITERAL_CSTRING("pref")); ++ rv = systemPrefDir->AppendNative(nsLiteralCString("pref")); + if (NS_SUCCEEDED(rv)) { + directories.AppendObject(systemPrefDir); + } + } -+ + 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-68.5.0/xpcom/io/nsAppDirectoryServiceDefs.h.1170092 firefox-68.5.0/xpcom/io/nsAppDirectoryServiceDefs.h ---- firefox-68.5.0/xpcom/io/nsAppDirectoryServiceDefs.h.1170092 2020-02-07 01:27:52.000000000 +0100 -+++ firefox-68.5.0/xpcom/io/nsAppDirectoryServiceDefs.h 2020-02-24 11:30:32.059044645 +0100 -@@ -62,6 +62,7 @@ +diff -up firefox-91.0/xpcom/io/nsAppDirectoryServiceDefs.h.1170092 firefox-91.0/xpcom/io/nsAppDirectoryServiceDefs.h +--- firefox-91.0/xpcom/io/nsAppDirectoryServiceDefs.h.1170092 2021-07-27 23:31:38.000000000 +0200 ++++ firefox-91.0/xpcom/io/nsAppDirectoryServiceDefs.h 2021-07-29 16:20:44.168514012 +0200 +@@ -59,6 +59,7 @@ #define NS_APP_PREFS_DEFAULTS_DIR_LIST "PrefDL" #define NS_APP_PREFS_OVERRIDE_DIR \ "PrefDOverride" // Directory for per-profile defaults diff --git a/mozilla-1196777.patch b/mozilla-1196777.patch deleted file mode 100644 index 7fa1595ffa15dd1341cb181e373bdfda05b86dbc..0000000000000000000000000000000000000000 --- a/mozilla-1196777.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff -up firefox-68.0/widget/gtk/nsWindow.cpp.1196777 firefox-68.0/widget/gtk/nsWindow.cpp ---- firefox-68.0/widget/gtk/nsWindow.cpp.1196777 2019-05-21 11:29:55.833376744 +0200 -+++ firefox-68.0/widget/gtk/nsWindow.cpp 2019-05-21 12:15:35.446089316 +0200 -@@ -156,7 +156,8 @@ const gint kEvents = - #if GTK_CHECK_VERSION(3, 4, 0) - GDK_SMOOTH_SCROLL_MASK | GDK_TOUCH_MASK | - #endif -- GDK_SCROLL_MASK | GDK_POINTER_MOTION_MASK | GDK_PROPERTY_CHANGE_MASK; -+ GDK_SCROLL_MASK | GDK_POINTER_MOTION_MASK | GDK_PROPERTY_CHANGE_MASK | -+ GDK_FOCUS_CHANGE_MASK; - - #if !GTK_CHECK_VERSION(3, 22, 0) - typedef enum { diff --git a/mozilla-1603112-accept-lang.patch b/mozilla-1603112-accept-lang.patch deleted file mode 100644 index b67b232e1f1a7c8f772791c1cc31e901ca49b0b1..0000000000000000000000000000000000000000 --- a/mozilla-1603112-accept-lang.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff --git a/intl/strres/nsStringBundle.cpp b/intl/strres/nsStringBundle.cpp ---- a/intl/strres/nsStringBundle.cpp -+++ b/intl/strres/nsStringBundle.cpp -@@ -66,7 +66,6 @@ - "chrome://global/locale/commonDialogs.properties", - "chrome://global/locale/css.properties", - "chrome://global/locale/dom/dom.properties", -- "chrome://global/locale/intl.properties", - "chrome://global/locale/layout/HtmlForm.properties", - "chrome://global/locale/layout/htmlparser.properties", - "chrome://global/locale/layout_errors.properties", - diff --git a/mozilla-bmo1005535.patch b/mozilla-bmo1005535.patch index 96f6e1aba4eee8763efd59568137b15f70bd682e..cab0134810e46733809114a86d0f92e6ec747af9 100644 --- a/mozilla-bmo1005535.patch +++ b/mozilla-bmo1005535.patch @@ -1,15 +1,7 @@ -# HG changeset patch -# User Steve Singer -# Date 1558451540 -7200 -# Tue May 21 17:12:20 2019 +0200 -# Node ID 433beec63e6b5f409683af20a0c1ab137cc7bfad -# Parent 42c99b59a87b904063bad3193f10c51d068d2eac -Bug 1005535 - Get skia GPU building on big endian. - -diff -r 42c99b59a87b -r 433beec63e6b gfx/skia/skia/include/private/GrColor.h ---- a/gfx/skia/skia/include/private/GrColor.h Wed Jun 05 08:48:08 2019 +0200 -+++ b/gfx/skia/skia/include/private/GrColor.h Tue May 21 17:12:20 2019 +0200 -@@ -63,7 +63,7 @@ +diff -up firefox-78.0/gfx/skia/skia/src/gpu/GrColor.h.mozilla.bmo1005535 firefox-78.0/gfx/skia/skia/src/gpu/GrColor.h +--- firefox-78.0/gfx/skia/skia/src/gpu/GrColor.h.mozilla.bmo1005535 2020-06-25 16:16:34.459083304 +0200 ++++ firefox-78.0/gfx/skia/skia/src/gpu/GrColor.h 2020-06-25 16:17:00.968174743 +0200 +@@ -64,7 +64,7 @@ static inline GrColor GrColorPackRGBA(un * Since premultiplied means that alpha >= color, we construct a color with * each component==255 and alpha == 0 to be "illegal" */ diff --git a/mozilla-bmo1504834-part1.patch b/mozilla-bmo1504834-part1.patch index cb985bb2ace344a6e937d9db51caa9f6aac28724..01da145b38a4a6eeae4fb4cf70c77ca428774045 100644 --- a/mozilla-bmo1504834-part1.patch +++ b/mozilla-bmo1504834-part1.patch @@ -1,11 +1,7 @@ -# HG changeset patch -# Parent 051b75a600dfbf7503c3485cebfd34d4eb29be96 -Taken from https://bugzilla.mozilla.org/show_bug.cgi?id=1504834 - -diff -r 051b75a600df gfx/2d/DrawTargetSkia.cpp ---- a/gfx/2d/DrawTargetSkia.cpp Fri Jul 05 12:42:44 2019 +0200 -+++ b/gfx/2d/DrawTargetSkia.cpp Mon Jul 08 10:59:30 2019 +0200 -@@ -138,8 +138,7 @@ +diff -up firefox-78.0/gfx/2d/DrawTargetSkia.cpp.mozilla-bmo1504834-part1 firefox-78.0/gfx/2d/DrawTargetSkia.cpp +--- firefox-78.0/gfx/2d/DrawTargetSkia.cpp.mozilla-bmo1504834-part1 2020-06-17 04:18:58.000000000 +0200 ++++ firefox-78.0/gfx/2d/DrawTargetSkia.cpp 2020-06-25 16:52:29.824532769 +0200 +@@ -135,8 +135,7 @@ static IntRect CalculateSurfaceBounds(co return surfaceBounds.Intersect(bounds); } @@ -15,48 +11,48 @@ diff -r 051b75a600df gfx/2d/DrawTargetSkia.cpp static bool VerifyRGBXFormat(uint8_t* aData, const IntSize& aSize, const int32_t aStride, SurfaceFormat aFormat) { -diff -r 051b75a600df gfx/2d/Types.h ---- a/gfx/2d/Types.h Fri Jul 05 12:42:44 2019 +0200 -+++ b/gfx/2d/Types.h Mon Jul 08 10:59:30 2019 +0200 -@@ -85,15 +85,8 @@ +diff -up firefox-78.0/gfx/2d/Types.h.mozilla-bmo1504834-part1 firefox-78.0/gfx/2d/Types.h +--- firefox-78.0/gfx/2d/Types.h.mozilla-bmo1504834-part1 2020-06-25 16:52:29.826532776 +0200 ++++ firefox-78.0/gfx/2d/Types.h 2020-06-25 16:55:02.942063616 +0200 +@@ -90,15 +90,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. --#if MOZ_LITTLE_ENDIAN +-#if MOZ_LITTLE_ENDIAN() A8R8G8B8_UINT32 = B8G8R8A8, // 0xAARRGGBB - X8R8G8B8_UINT32 = B8G8R8X8 // 0x00RRGGBB --#elif MOZ_BIG_ENDIAN + X8R8G8B8_UINT32 = B8G8R8X8, // 0x00RRGGBB +-#elif MOZ_BIG_ENDIAN() - A8R8G8B8_UINT32 = A8R8G8B8, // 0xAARRGGBB -- X8R8G8B8_UINT32 = X8R8G8B8 // 0x00RRGGBB +- X8R8G8B8_UINT32 = X8R8G8B8, // 0x00RRGGBB -#else -# error "bad endianness" -#endif - }; - static inline int BytesPerPixel(SurfaceFormat aFormat) { -diff -r 051b75a600df gfx/skia/skia/third_party/skcms/skcms.cc ---- a/gfx/skia/skia/third_party/skcms/skcms.cc Fri Jul 05 12:42:44 2019 +0200 -+++ b/gfx/skia/skia/third_party/skcms/skcms.cc Mon Jul 08 10:59:30 2019 +0200 -@@ -17,6 +17,8 @@ - #include - #elif defined(__SSE__) - #include + // The following values are OS and endian-independent synonyms. + // +diff -up firefox-78.0/gfx/skia/skia/third_party/skcms/skcms.cc.mozilla-bmo1504834-part1 firefox-78.0/gfx/skia/skia/third_party/skcms/skcms.cc +--- firefox-78.0/gfx/skia/skia/third_party/skcms/skcms.cc.mozilla-bmo1504834-part1 2020-06-17 04:18:58.000000000 +0200 ++++ firefox-78.0/gfx/skia/skia/third_party/skcms/skcms.cc 2020-06-25 16:54:02.993855444 +0200 +@@ -30,6 +30,8 @@ + #include + #include + #endif +#else + #define SKCMS_PORTABLE #endif // sizeof(x) will return size_t, which is 32-bit on some machines and 64-bit on others. -@@ -124,20 +126,28 @@ +@@ -280,20 +282,28 @@ enum { static uint16_t read_big_u16(const uint8_t* ptr) { uint16_t be; memcpy(&be, ptr, sizeof(be)); -#if defined(_MSC_VER) +- return _byteswap_ushort(be); +#if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ + return be; -+#else + #else + #if defined(_MSC_VER) - return _byteswap_ushort(be); --#else ++ return _byteswap_ushort(be); + #else return __builtin_bswap16(be); + #endif @@ -67,12 +63,12 @@ diff -r 051b75a600df gfx/skia/skia/third_party/skcms/skcms.cc uint32_t be; memcpy(&be, ptr, sizeof(be)); -#if defined(_MSC_VER) +- return _byteswap_ulong(be); +#if __BYTE_ORDER == __ORDER_BIG_ENDIAN__ + return be; -+#else + #else + #if defined(_MSC_VER) - return _byteswap_ulong(be); --#else ++ return _byteswap_ulong(be); + #else return __builtin_bswap32(be); + #endif diff --git a/mozilla-bmo1554971.patch b/mozilla-bmo1554971.patch index ab25c2dd07d35814f511d2e6949dbc38a7c87acb..99581502ceba7307dcd08094bd00ebceb76058ba 100644 --- a/mozilla-bmo1554971.patch +++ b/mozilla-bmo1554971.patch @@ -1,22 +1,12 @@ -# HG changeset patch -# Parent a25cebecb02d5460b8ad757fe9cb4a9c8d1d7658 -Eliminate startup error message: -JavaScript error: , line 0: Error: Type error for platformInfo value (Error processing arch: Invalid enumeration value "s390x") for runtime.getPlatformInfo. - -Reported here: https://bugzilla.mozilla.org/show_bug.cgi?id=1554971 - -Uncertain if this is causing real problems or not. Also uncertain if the fix actually fixes anything. -No response from upstream yet. - -diff -r a25cebecb02d -r 378b81b00e73 toolkit/components/extensions/schemas/runtime.json ---- a/toolkit/components/extensions/schemas/runtime.json Fri Jul 05 12:42:44 2019 +0200 -+++ b/toolkit/components/extensions/schemas/runtime.json Fri Jul 19 13:19:30 2019 +0200 +diff -up firefox-91.0/toolkit/components/extensions/schemas/runtime.json.mozilla-bmo1554971 firefox-91.0/toolkit/components/extensions/schemas/runtime.json +--- firefox-91.0/toolkit/components/extensions/schemas/runtime.json.mozilla-bmo1554971 2021-07-29 17:20:08.523253193 +0200 ++++ firefox-91.0/toolkit/components/extensions/schemas/runtime.json 2021-07-29 17:21:23.517498581 +0200 @@ -64,7 +64,7 @@ { "id": "PlatformArch", "type": "string", -- "enum": ["arm", "x86-32", "x86-64"], -+ "enum": ["arm", "x86-32", "x86-64", "s390x", "aarch64", "ppc64le"], +- "enum": ["aarch64", "arm", "ppc64", "s390x", "sparc64", "x86-32", "x86-64"], ++ "enum": ["aarch64", "arm", "ppc64", "ppc64le", "s390x", "sparc64", "x86-32", "x86-64"], "allowedContexts": ["content", "devtools"], "description": "The machine's processor architecture." }, diff --git a/mozilla-bmo1626236.patch b/mozilla-bmo1626236.patch new file mode 100644 index 0000000000000000000000000000000000000000..32e37420353c3ab521c3a37829af9ce88b0be99d --- /dev/null +++ b/mozilla-bmo1626236.patch @@ -0,0 +1,86 @@ +# HG changeset patch +# User msirringhaus@suse.de +# Date 1582805876 -3600 +# Thu Feb 27 13:17:56 2020 +0100 +# Node ID cc3d09abea31068e57f1ab918782f9f86fc6a158 +# Parent 9cd90914846f667f18babc491a74c164ae5d6e9f +imported patch decoder_workaround.patch + +diff -r 9cd90914846f image/decoders/nsGIFDecoder2.cpp +--- a/image/decoders/nsGIFDecoder2.cpp Thu Feb 27 12:57:14 2020 +0100 ++++ b/image/decoders/nsGIFDecoder2.cpp Fri Mar 27 13:06:18 2020 +0100 +@@ -422,6 +422,9 @@ + MOZ_ASSERT(mSwizzleFn); + uint8_t* data = reinterpret_cast(aColormap); + mSwizzleFn(data, data, aColors); ++#if MOZ_BIG_ENDIAN() ++ SwizzleRow(SurfaceFormat::A8R8G8B8, SurfaceFormat::B8G8R8A8)(data, data, aColors); ++#endif + } + + LexerResult nsGIFDecoder2::DoDecode(SourceBufferIterator& aIterator, +diff -r 9cd90914846f image/decoders/nsJPEGDecoder.cpp +--- a/image/decoders/nsJPEGDecoder.cpp Thu Feb 27 12:57:14 2020 +0100 ++++ b/image/decoders/nsJPEGDecoder.cpp Fri Mar 27 13:06:18 2020 +0100 +@@ -263,6 +263,9 @@ + case JCS_YCbCr: + // By default, we will output directly to BGRA. If we need to apply + // special color transforms, this may change. ++#if MOZ_BIG_ENDIAN() ++ mInfo.out_color_space = MOZ_JCS_EXT_NATIVE_ENDIAN_XRGB; ++#else + switch (SurfaceFormat::OS_RGBX) { + case SurfaceFormat::B8G8R8X8: + mInfo.out_color_space = JCS_EXT_BGRX; +@@ -277,6 +280,7 @@ + mState = JPEG_ERROR; + return Transition::TerminateFailure(); + } ++#endif + break; + case JCS_CMYK: + case JCS_YCCK: +diff -r 9cd90914846f image/decoders/nsPNGDecoder.cpp +--- a/image/decoders/nsPNGDecoder.cpp Thu Feb 27 12:57:14 2020 +0100 ++++ b/image/decoders/nsPNGDecoder.cpp Fri Mar 27 13:06:18 2020 +0100 +@@ -361,7 +361,7 @@ + IResumable* aOnResume) { + MOZ_ASSERT(!HasError(), "Shouldn't call DoDecode after error!"); + +- return mLexer.Lex(aIterator, aOnResume, ++ LexerResult res = mLexer.Lex(aIterator, aOnResume, + [=](State aState, const char* aData, size_t aLength) { + switch (aState) { + case State::PNG_DATA: +@@ -371,6 +371,14 @@ + } + MOZ_CRASH("Unknown State"); + }); ++ ++#if MOZ_BIG_ENDIAN() ++ if(res.is() && res.as() == TerminalState::SUCCESS) { ++ NativeEndian::swapToLittleEndianInPlace((uint32_t*)(mImageData), mImageDataLength / 4); ++ } ++#endif ++ ++ return res; + } + + LexerTransition nsPNGDecoder::ReadPNGData( +diff -r 9cd90914846f image/decoders/nsWebPDecoder.cpp +--- a/image/decoders/nsWebPDecoder.cpp Thu Feb 27 12:57:14 2020 +0100 ++++ b/image/decoders/nsWebPDecoder.cpp Fri Mar 27 13:06:18 2020 +0100 +@@ -237,7 +237,12 @@ + // WebP doesn't guarantee that the alpha generated matches the hint in the + // header, so we always need to claim the input is BGRA. If the output is + // BGRX, swizzling will mask off the alpha channel. ++#if MOZ_BIG_ENDIAN() ++ mBuffer.colorspace = MODE_ARGB; ++ SurfaceFormat inFormat = mFormat; ++#else + SurfaceFormat inFormat = SurfaceFormat::OS_RGBA; ++#endif + + SurfacePipeFlags pipeFlags = SurfacePipeFlags(); + if (mFormat == SurfaceFormat::OS_RGBA && + diff --git a/mozilla-bmo998749.patch b/mozilla-bmo998749.patch new file mode 100644 index 0000000000000000000000000000000000000000..4ddde4ca9558561c04dbbf610e166c880306b137 --- /dev/null +++ b/mozilla-bmo998749.patch @@ -0,0 +1,30 @@ +# HG changeset patch +# User msirringhaus@suse.de +# Date 1583738770 -3600 +# Mon Mar 09 08:26:10 2020 +0100 +# Node ID 34676feac1a542e409e22acf5b98735f8313b1ce +# Parent 506857dace0a08d1c9685e3ac264646590b3e27f +[mq]: mozilla-bmo998749.patch + +diff -r 506857dace0a -r 34676feac1a5 gfx/2d/FilterProcessing.h +--- a/gfx/2d/FilterProcessing.h Fri Feb 28 12:31:51 2020 +0100 ++++ b/gfx/2d/FilterProcessing.h Mon Mar 09 08:26:10 2020 +0100 +@@ -13,10 +13,17 @@ + namespace mozilla { + namespace gfx { + ++#if MOZ_BIG_ENDIAN() ++const ptrdiff_t B8G8R8A8_COMPONENT_BYTEOFFSET_B = 3; ++const ptrdiff_t B8G8R8A8_COMPONENT_BYTEOFFSET_G = 2; ++const ptrdiff_t B8G8R8A8_COMPONENT_BYTEOFFSET_R = 1; ++const ptrdiff_t B8G8R8A8_COMPONENT_BYTEOFFSET_A = 0; ++#else + const ptrdiff_t B8G8R8A8_COMPONENT_BYTEOFFSET_B = 0; + const ptrdiff_t B8G8R8A8_COMPONENT_BYTEOFFSET_G = 1; + const ptrdiff_t B8G8R8A8_COMPONENT_BYTEOFFSET_R = 2; + const ptrdiff_t B8G8R8A8_COMPONENT_BYTEOFFSET_A = 3; ++#endif + + class FilterProcessing { + public: + diff --git a/mozilla-nestegg-big-endian.patch b/mozilla-nestegg-big-endian.patch deleted file mode 100644 index de9adbfb968d9f51c0bc993cf7d2a42825422622..0000000000000000000000000000000000000000 --- a/mozilla-nestegg-big-endian.patch +++ /dev/null @@ -1,38 +0,0 @@ -# HG changeset patch -# Parent 381102061fccdec40efda75c7423a766f68201ba -Bug-behavior: Youtube-videos using VP9 and opus as audio-codec started loading but did not play -Reason: While parsing the audio-stream, the sampling frequency (short rate) was wrongly parsed by - nestegg, returning 0 all the time. This led to the audio-track reporting that it neither had - valid video nor audio. Which led to an endless-loop in the video state machine. -Solution: Correct parsing of rate in nestegg, which is a float and cuts of bytes. -Link: https://github.com/kinetiknz/nestegg/issues/64 - -diff -r 381102061fcc -r 8da4be020b1e media/libnestegg/src/nestegg.c ---- a/media/libnestegg/src/nestegg.c Tue Aug 13 07:51:27 2019 +0200 -+++ b/media/libnestegg/src/nestegg.c Tue Aug 20 07:59:54 2019 +0200 -@@ -768,7 +768,15 @@ - { - union { - uint64_t u; -- float f; -+ struct { -+#if __FLOAT_WORD_ORDER__ == __ORDER_BIG_ENDIAN__ -+ uint32_t _pad; -+ float f; -+#else -+ float f; -+ uint32_t _pad; -+#endif -+ } f; - double d; - } value; - int r; -@@ -780,7 +788,7 @@ - if (r != 1) - return r; - if (length == 4) -- *val = value.f; -+ *val = value.f.f; - else - *val = value.d; - return 1; diff --git a/mozilla-s390x-skia-gradient.patch b/mozilla-s390x-skia-gradient.patch new file mode 100644 index 0000000000000000000000000000000000000000..8c0e3bddd805e34e309dc407c381459c0ba49b92 --- /dev/null +++ b/mozilla-s390x-skia-gradient.patch @@ -0,0 +1,52 @@ +# HG changeset patch +# Parent acf59ea86dd1d878b43920832093f082dcfc61c0 + +diff -r acf59ea86dd1 gfx/skia/skia/src/shaders/gradients/Sk4fLinearGradient.cpp +--- a/gfx/skia/skia/src/shaders/gradients/Sk4fLinearGradient.cpp Mon Mar 09 08:26:10 2020 +0100 ++++ b/gfx/skia/skia/src/shaders/gradients/Sk4fLinearGradient.cpp Fri Mar 27 13:30:28 2020 +0100 +@@ -7,7 +7,7 @@ + + #include "include/core/SkPaint.h" + #include "src/shaders/gradients/Sk4fLinearGradient.h" +- ++#include "src/core/SkEndian.h" + #include + #include + +@@ -28,6 +28,9 @@ + + while (n >= 4) { + DstTraits::store4x(c0, c1, c2, c3, dst, bias0, bias1); ++#ifdef SK_CPU_BENDIAN ++ SkEndianSwap32s(dst, 4); ++#endif + dst += 4; + + c0 = c0 + dc4; +@@ -37,12 +40,23 @@ + n -= 4; + } + if (n & 2) { +- DstTraits::store(c0, dst++, bias0); +- DstTraits::store(c1, dst++, bias1); ++ DstTraits::store(c0, dst, bias0); ++#ifdef SK_CPU_BENDIAN ++ *dst = SkEndianSwap32(*dst); ++#endif ++ ++dst; ++ DstTraits::store(c1, dst, bias1); ++#ifdef SK_CPU_BENDIAN ++ *dst = SkEndianSwap32(*dst); ++#endif ++ ++dst; + c0 = c0 + dc2; + } + if (n & 1) { + DstTraits::store(c0, dst, bias0); ++#ifdef SK_CPU_BENDIAN ++ *dst = SkEndianSwap32(*dst); ++#endif + } + } + + diff --git a/no-rust-lto.patch b/no-rust-lto.patch deleted file mode 100644 index 7d8ae5da28386a4f8541144e2b3e48b4217b1f10..0000000000000000000000000000000000000000 --- a/no-rust-lto.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -up firefox-68.0/config/makefiles/rust.mk.old firefox-68.0/config/makefiles/rust.mk ---- firefox-68.0/config/makefiles/rust.mk.old 2019-06-05 10:33:34.290128660 +0200 -+++ firefox-68.0/config/makefiles/rust.mk 2019-06-05 10:33:59.835052814 +0200 -@@ -47,7 +47,7 @@ cargo_rustc_flags = $(CARGO_RUSTCFLAGS) - ifndef DEVELOPER_OPTIONS - ifndef MOZ_DEBUG_RUST - # Enable link-time optimization for release builds. --cargo_rustc_flags += -C lto -+#cargo_rustc_flags += -C lto - endif - endif - diff --git a/nodejs-8.11.4-1.3.fc27.src.rpm b/nodejs-8.11.4-1.3.fc27.src.rpm deleted file mode 100644 index 49a900b30e6a7f8a83000ee97aeeff5f7046b14a..0000000000000000000000000000000000000000 Binary files a/nodejs-8.11.4-1.3.fc27.src.rpm and /dev/null differ diff --git a/nspr-4.32.0-1.el8_1.src.rpm b/nspr-4.32.0-1.el8_1.src.rpm new file mode 100644 index 0000000000000000000000000000000000000000..e7d0296f49bc259b9f70315fd2751e4bee7d67e3 Binary files /dev/null and b/nspr-4.32.0-1.el8_1.src.rpm differ diff --git a/gtk3-private-3.22.26-1.el6.src.rpm b/nss-3.67.0-6.el8_1.src.rpm similarity index 70% rename from gtk3-private-3.22.26-1.el6.src.rpm rename to nss-3.67.0-6.el8_1.src.rpm index 6cb3b9b3848475110606075e15a61fcab495bdb9..403efc28f87e7e6bd1729fe30b990a3651e1d588 100644 Binary files a/gtk3-private-3.22.26-1.el6.src.rpm and b/nss-3.67.0-6.el8_1.src.rpm differ diff --git a/nss-build-mozilla-1564499.patch b/nss-build-mozilla-1564499.patch deleted file mode 100644 index 9d5bb5c4056eea29bf252d093231b5fff6d85bcf..0000000000000000000000000000000000000000 --- a/nss-build-mozilla-1564499.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -up firefox-68.0/security/nss/lib/freebl/mpi/mpcpucache.c.old firefox-68.0/security/nss/lib/freebl/mpi/mpcpucache.c ---- firefox-68.0/security/nss/lib/freebl/mpi/mpcpucache.c.old 2019-07-26 07:09:02.383303420 +0200 -+++ firefox-68.0/security/nss/lib/freebl/mpi/mpcpucache.c 2019-07-26 07:09:27.228193798 +0200 -@@ -727,7 +727,7 @@ static inline void - dcbzl(char *array) - { - register char *a asm("r2") = array; -- __asm__ __volatile__("dcbzl %0,r0" -+ __asm__ __volatile__("dcbzl %0,0" - : "=r"(a) - : "0"(a)); - } diff --git a/nss-setup-flags-env.inc b/nss-setup-flags-env.inc new file mode 100644 index 0000000000000000000000000000000000000000..45f6e7938f594917609aae6b766976c07dcd0484 --- /dev/null +++ b/nss-setup-flags-env.inc @@ -0,0 +1,7 @@ +sed -i 's@%{bundled_install_path}@%{_buildrootdir}%{bundled_install_path}@g' %{_buildrootdir}%{bundled_install_path}/%{_lib}/pkgconfig/nss*.pc + +export LDFLAGS="-L%{_buildrootdir}%{bundled_install_path}/%{_lib} $LDFLAGS" +export LDFLAGS="-Wl,-rpath,%{bundled_install_path}/%{_lib} $LDFLAGS" +export LDFLAGS="-Wl,-rpath-link,%{_buildrootdir}%{bundled_install_path}/%{_lib} $LDFLAGS" +export PKG_CONFIG_PATH=%{_buildrootdir}%{bundled_install_path}/%{_lib}/pkgconfig +export PATH="{_buildrootdir}%{bundled_install_path}/bin:$PATH" diff --git a/openssl-1.0.2k-19.6.bundle.el7_7.src.rpm b/openssl-1.0.2k-19.6.bundle.el7_7.src.rpm deleted file mode 100644 index 5e63f1d5dcc4516c8f212015d79ae4226145817d..0000000000000000000000000000000000000000 Binary files a/openssl-1.0.2k-19.6.bundle.el7_7.src.rpm and /dev/null differ diff --git a/process-official-tarball b/process-official-tarball new file mode 100755 index 0000000000000000000000000000000000000000..449e7bbd77a5dd4c6b7fc572fd9b6526bbf18086 --- /dev/null +++ b/process-official-tarball @@ -0,0 +1,23 @@ +#!/bin/sh + +rm -rf ./process-tarball-dir +mkdir ./process-tarball-dir +tar -xJf $1 --directory process-tarball-dir + +rm -vf ./process-tarball-dir/*/testing/web-platform/tests/conformance-checkers/html-rdfa/0030-isvalid.html +rm -vf ./process-tarball-dir/*/testing/web-platform/tests/conformance-checkers/html-rdfa/0008-isvalid.html +rm -vf ./process-tarball-dir/*/testing/web-platform/tests/conformance-checkers/html-rdfalite/0030-isvalid.html +rm -vf ./process-tarball-dir/*/testing/web-platform/tests/css/css-ui/support/cursors/woolly-64.svg +rm -vf ./process-tarball-dir/*/testing/web-platform/tests/css/css-ui/support/cursors/woolly.svg +rm -vf ./process-tarball-dir/*/testing/web-platform/tests/conformance-checkers/html-rdfa/0230-novalid.html +rm -vf ./process-tarball-dir/*/testing/web-platform/tests/conformance-checkers/html-rdfa/0231-isvalid.html +rm -vf ./process-tarball-dir/*/layout/inspector/tests/chrome/test_fontVariationsAPI.css + +processed_tarball=${1/source/processed-source} + +cd ./process-tarball-dir +tar -cf - ./* | xz -9 -T 0 -f > $processed_tarball +mv $processed_tarball .. +cd .. + +rm -rf ./process-tarball-dir diff --git a/python-2.7-gcc8-fix.patch b/python-2.7-gcc8-fix.patch deleted file mode 100644 index d4da520e2a09ee0df62343a93e5c0b6a8a382883..0000000000000000000000000000000000000000 --- a/python-2.7-gcc8-fix.patch +++ /dev/null @@ -1,57 +0,0 @@ -commit 0b91f8a668201fc58fa732b8acc496caedfdbae0 -Author: Florian Weimer -Date: Sun Apr 29 12:18:33 2018 -0700 - - Indicate that _PyGC_Head is only 8-byte aligned. (closes bpo-33374) - - By spec, the "long double" in _PyGC_Head requires the union to always be 16-byte - aligned. However, obmalloc only yields 8-byte alignment. Compilers including GCC - 8 are starting to use alignment information to do store-merging. So, the "long - double" needs to be changed to a simple "double" as was long ago done in Python - 3 by e348c8d154cf6342c79d627ebfe89dfe9de23817. For 2.7, we need to add some - dummy padding to make sure _PyGC_Head stays the same size. - -diff --git a/Include/objimpl.h b/Include/objimpl.h -index 5f28683329..cbf6bc3f87 100644 ---- Python-2.7.13/Include/objimpl.h -+++ Python-2.7.13/Include/objimpl.h -@@ -248,6 +248,20 @@ PyAPI_FUNC(PyVarObject *) _PyObject_GC_Resize(PyVarObject *, Py_ssize_t); - /* for source compatibility with 2.2 */ - #define _PyObject_GC_Del PyObject_GC_Del - -+/* -+ * Former over-aligned definition of PyGC_Head, used to compute the size of the -+ * padding for the new version below. -+ */ -+union _gc_head; -+union _gc_head_old { -+ struct { -+ union _gc_head_old *gc_next; -+ union _gc_head_old *gc_prev; -+ Py_ssize_t gc_refs; -+ } gc; -+ long double dummy; -+}; -+ - /* GC information is stored BEFORE the object structure. */ - typedef union _gc_head { - struct { -@@ -255,7 +269,8 @@ typedef union _gc_head { - union _gc_head *gc_prev; - Py_ssize_t gc_refs; - } gc; -- long double dummy; /* force worst-case alignment */ -+ double dummy; /* Force at least 8-byte alignment. */ -+ char dummy_padding[sizeof(union _gc_head_old)]; - } PyGC_Head; - - extern PyGC_Head *_PyGC_generation0; -diff --git a/Misc/NEWS.d/next/Core and Builtins/2018-04-29-12-07-00.bpo-33374.-xegL6.rst b/Misc/NEWS.d/next/Core and Builtins/2018-04-29-12-07-00.bpo-33374.-xegL6.rst -new file mode 100644 -index 0000000000..9ec1a605c8 ---- /dev/null -+++ Python-2.7.13/Misc/NEWS.d/next/Core and Builtins/2018-04-29-12-07-00.bpo-33374.-xegL6.rst -@@ -0,0 +1,3 @@ -+Tweak the definition of PyGC_Head, so compilers do not believe it is always -+16-byte aligned on x86. This prevents crashes with more aggressive -+optimizations present in GCC 8. diff --git a/python-2.7.patch b/python-2.7.patch deleted file mode 100644 index cad1c67de49852098916be4a66439b11e626b38f..0000000000000000000000000000000000000000 --- a/python-2.7.patch +++ /dev/null @@ -1,17 +0,0 @@ -diff -up Python-2.7.13/configure.build Python-2.7.13/configure ---- Python-2.7.13/configure.build 2019-06-04 13:32:12.772134075 +0200 -+++ Python-2.7.13/configure 2019-06-04 13:32:26.140144601 +0200 -@@ -6018,11 +6018,11 @@ then - # debug builds. - OPT="-g -O0 -Wall $STRICT_PROTO" - else -- OPT="-g $WRAP -O3 -Wall $STRICT_PROTO" -+ OPT="-g $WRAP -O2 -Wall $STRICT_PROTO" - fi - ;; - *) -- OPT="-O3 -Wall $STRICT_PROTO" -+ OPT="-O2 -Wall $STRICT_PROTO" - ;; - esac - case $ac_sys_system in diff --git a/python-encode.patch b/python-encode.patch deleted file mode 100644 index 2f3bad9d22eb22e0ad6f96caaa2096ab9d946532..0000000000000000000000000000000000000000 --- a/python-encode.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -up firefox-68.0/python/mozbuild/mozbuild/controller/building.py.old firefox-68.0/python/mozbuild/mozbuild/controller/building.py ---- firefox-68.0/python/mozbuild/mozbuild/controller/building.py.old 2019-05-29 10:46:55.403262995 +0200 -+++ firefox-68.0/python/mozbuild/mozbuild/controller/building.py 2019-05-29 10:47:42.691176970 +0200 -@@ -571,7 +571,7 @@ class TerminalLoggingHandler(logging.Han - if self.footer: - self.footer.clear() - -- self.fh.write(msg) -+ self.fh.write(msg.encode("utf-8")) - self.fh.write('\n') - - if self.footer: diff --git a/python-missing-utimensat.patch b/python-missing-utimensat.patch deleted file mode 100644 index d19ecabfe6da3580ee56a89aad33c977046a3c5f..0000000000000000000000000000000000000000 --- a/python-missing-utimensat.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -up python3/Python-3.6.8/configure.old python3/Python-3.6.8/configure ---- Python-3.6.8/configure.old 2019-10-01 12:56:35.074551835 +0200 -+++ Python-3.6.8/configure 2019-10-01 12:56:44.240517798 +0200 -@@ -11438,7 +11438,7 @@ for ac_func in alarm accept4 setitimer g - sigaction sigaltstack siginterrupt sigpending sigrelse \ - sigtimedwait sigwait sigwaitinfo snprintf strftime strlcpy symlinkat sync \ - sysconf tcgetpgrp tcsetpgrp tempnam timegm times tmpfile tmpnam tmpnam_r \ -- truncate uname unlinkat unsetenv utimensat utimes waitid waitpid wait3 wait4 \ -+ truncate uname unlinkat unsetenv utimes waitid waitpid wait3 wait4 \ - wcscoll wcsftime wcsxfrm wmemcmp writev _getpty - do : - as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` diff --git a/rhbz-1821418.patch b/rhbz-1821418.patch deleted file mode 100644 index 588084c64163da69c5b904fb0ba7c3d74effa486..0000000000000000000000000000000000000000 --- a/rhbz-1821418.patch +++ /dev/null @@ -1,37 +0,0 @@ -diff -up firefox-68.7.0/xpcom/base/AvailableMemoryTracker.cpp.rhbz-1821418 firefox-68.7.0/xpcom/base/AvailableMemoryTracker.cpp ---- firefox-68.7.0/xpcom/base/AvailableMemoryTracker.cpp.rhbz-1821418 2020-04-03 21:30:08.000000000 +0200 -+++ firefox-68.7.0/xpcom/base/AvailableMemoryTracker.cpp 2020-04-23 21:15:56.015491502 +0200 -@@ -147,8 +147,12 @@ bool nsAvailableMemoryWatcher::IsVirtual - - /* static */ - bool nsAvailableMemoryWatcher::IsCommitSpaceLow(const MEMORYSTATUSEX& aStat) { -- if ((kLowCommitSpaceThreshold != 0) && -- (aStat.ullAvailPageFile < kLowCommitSpaceThreshold)) { -+ const char* threshold = getenv("MOZ_GC_THRESHOLD"); -+ if (threshold) { -+ kLowCommitSpaceThreshold = atoi(threshold); -+ } -+ -+ if ((kLowCommitSpaceThreshold == 0) || (aStat.ullAvailPageFile < kLowCommitSpaceThreshold)) { - sNumLowCommitSpaceEvents++; - CrashReporter::AnnotateCrashReport( - CrashReporter::Annotation::LowCommitSpaceEvents, -@@ -206,13 +210,16 @@ void nsAvailableMemoryWatcher::AdjustPol - // polling interval accordingly. - NS_IMETHODIMP - nsAvailableMemoryWatcher::Notify(nsITimer* aTimer) { -+ const char* threshold = getenv("MOZ_GC_THRESHOLD"); -+ bool forceLowMem = (threshold && atoi(threshold) == 0); -+ - MEMORYSTATUSEX stat; - stat.dwLength = sizeof(stat); - bool success = GlobalMemoryStatusEx(&stat); - -- if (success) { -+ if (success || forceLowMem) { - bool lowMemory = IsVirtualMemoryLow(stat) || IsCommitSpaceLow(stat) || -- IsPhysicalMemoryLow(stat); -+ IsPhysicalMemoryLow(stat) || forceLowMem; - - if (lowMemory) { - SendMemoryPressureEvent(); diff --git a/rust-network-check.patch b/rust-network-check.patch deleted file mode 100644 index d18f2fe3bbd0806cb18c32a7c40286f415a6887f..0000000000000000000000000000000000000000 --- a/rust-network-check.patch +++ /dev/null @@ -1,105 +0,0 @@ -diff -up firefox-68.0/config/makefiles/rust.mk.rust-network-check firefox-68.0/config/makefiles/rust.mk ---- firefox-68.0/config/makefiles/rust.mk.rust-network-check 2019-06-06 10:29:18.984737603 +0200 -+++ firefox-68.0/config/makefiles/rust.mk 2019-06-06 11:39:51.581028835 +0200 -@@ -127,7 +127,7 @@ export RUST_BACKTRACE=full - export MOZ_TOPOBJDIR=$(topobjdir) - - target_rust_ltoable := force-cargo-library-build --target_rust_nonltoable := force-cargo-test-run force-cargo-library-check $(foreach b,build check,force-cargo-program-$(b)) -+target_rust_nonltoable := force-cargo-test-run $(foreach b,build check,force-cargo-program-$(b)) - - $(target_rust_ltoable): RUSTFLAGS:=$(rustflags_override) $(RUSTFLAGS) $(if $(MOZ_LTO_RUST),-Clinker-plugin-lto) - $(target_rust_nonltoable): RUSTFLAGS:=$(rustflags_override) $(RUSTFLAGS) -@@ -238,19 +238,9 @@ force-cargo-library-build: - $(call CARGO_BUILD) --lib $(cargo_target_flag) $(rust_features_flag) -- $(cargo_rustc_flags) - - $(RUST_LIBRARY_FILE): force-cargo-library-build --# When we are building in --enable-release mode; we add an additional check to confirm --# that we are not importing any networking-related functions in rust code. This reduces --# the chance of proxy bypasses originating from rust code. --ifndef DEVELOPER_OPTIONS --ifndef MOZ_DEBUG_RUST --ifeq ($(OS_ARCH), Linux) -- $(call py_action,check_binary,--target --networking $@) --endif --endif --endif - - force-cargo-library-check: -- $(call CARGO_CHECK) --lib $(cargo_target_flag) $(rust_features_flag) -+ @true - else - force-cargo-library-check: - @true -diff -up firefox-68.0/python/mozbuild/mozbuild/action/check_binary.py.rust-network-check firefox-68.0/python/mozbuild/mozbuild/action/check_binary.py ---- firefox-68.0/python/mozbuild/mozbuild/action/check_binary.py.rust-network-check 2019-05-20 18:17:57.000000000 +0200 -+++ firefox-68.0/python/mozbuild/mozbuild/action/check_binary.py 2019-06-06 10:29:18.986737599 +0200 -@@ -250,43 +250,6 @@ def check_mozglue_order(target, binary): - raise RuntimeError('Could not parse readelf output?') - - --def check_networking(binary): -- retcode = 0 -- networking_functions = set([ -- # socketpair is not concerning; it is restricted to AF_UNIX -- "socket", "connect", "accept", "bind", "listen", -- "getsockname", "getsockopt", "setsockopt", -- "recv", "recvfrom", -- "send", "sendto", -- # We would be concerned by recvmsg and sendmsg; but we believe -- # they are okay as documented in 1376621#c23 -- "gethostbyname", "gethostbyaddr", "gethostent", "sethostent", "endhostent", -- "gethostent_r", "gethostbyname2", "gethostbyaddr_r", "gethostbyname_r", -- "gethostbyname2_r", -- "getaddrinfo", "getservent", "getservbyname", "getservbyport", "setservent", -- "getprotoent", "getprotobyname", "getprotobynumber", "setprotoent", -- "endprotoent"]) -- bad_occurences_names = set() -- -- try: -- for sym in at_least_one(iter_symbols(binary)): -- if sym['addr'] == 0 and sym['name'] in networking_functions: -- bad_occurences_names.add(sym['name']) -- except Empty: -- raise RuntimeError('Could not parse llvm-objdump output?') -- -- basename = os.path.basename(binary) -- if bad_occurences_names: -- s = 'TEST-UNEXPECTED-FAIL | check_networking | {} | Identified {} ' + \ -- 'networking function(s) being imported in the rust static library ({})' -- print(s.format(basename, len(bad_occurences_names), -- ",".join(sorted(bad_occurences_names))), -- file=sys.stderr) -- retcode = 1 -- elif buildconfig.substs.get('MOZ_AUTOMATION'): -- print('TEST-PASS | check_networking | {}'.format(basename)) -- return retcode -- - def checks(target, binary): - # The clang-plugin is built as target but is really a host binary. - # Cheat and pretend we were passed the right argument. -@@ -330,8 +293,6 @@ def main(args): - help='Perform checks for a host binary') - parser.add_argument('--target', action='store_true', - help='Perform checks for a target binary') -- parser.add_argument('--networking', action='store_true', -- help='Perform checks for networking functions') - - parser.add_argument('binary', metavar='PATH', - help='Location of the binary to check') -@@ -343,14 +304,7 @@ def main(args): - file=sys.stderr) - return 1 - -- if options.networking and options.host: -- print('--networking is only valid with --target', -- file=sys.stderr) -- return 1 -- -- if options.networking: -- return check_networking(options.binary) -- elif options.host: -+ if options.host: - return checks(HOST, options.binary) - elif options.target: - return checks(TARGET, options.binary) diff --git a/yasm-1.2.0-3.el5.src.rpm b/yasm-1.2.0-3.el5.src.rpm deleted file mode 100644 index 64af121c3e12ed180c743b74fc2e0dc87d5d6973..0000000000000000000000000000000000000000 Binary files a/yasm-1.2.0-3.el5.src.rpm and /dev/null differ