import firefox-68.3.0-1.el8_1

This commit is contained in:
CentOS Sources 2020-01-21 16:02:59 -05:00 committed by Stepan Oksanichenko
parent 4852f2bdb8
commit a8e17edd7b
25 changed files with 725 additions and 2732 deletions

View File

@ -1,7 +1,10 @@
18a8f30a0356c751b8d0ea6f76e764cab13ee046 SOURCES/Python-2.7.13.tar.xz
733187de6b20f8902fa207f08ec85f952a2c2e40 SOURCES/firefox-60.7.0esr.source.tar.xz
7078da81de13917fa6c4e85f1395552bff67f056 SOURCES/firefox-langpacks-60.7.0esr-20190515.tar.xz
e86c38c48960b95353503b78e1de9ddca1ed34d7 SOURCES/cbindgen-vendor.tar.xz
220c262c5cb2ee81d29c58a5afe4522c9880cf2b SOURCES/firefox-68.3.0esr.source.tar.xz
e4958412ffa347f9de0315e54d6596461169f029 SOURCES/firefox-langpacks-68.3.0esr-20191127.tar.xz
6724218efbb1f3fa14541cb2f255970b98446a45 SOURCES/firefox-symbolic.svg
0de63f863b158454b9429234b52ed28a397ec45c SOURCES/gtk3-private-3.22.26-1.el6.src.rpm
e188ab1a444697bc649e223c28389d82ca94c472 SOURCES/libffi-3.0.13-18.el7_3.src.rpm
4f8d3bf2483d95261ff90742ecec82d6a899eca3 SOURCES/nodejs-8.11.4-1.3.fc27.src.rpm
a379070abf5000cde61411c97af7e733b267a4d3 SOURCES/openssl-1.0.2k-19.6.bundle.el7_7.src.rpm
77fd30f7ebc12a629a31c1e252cec06af55a71fe SOURCES/yasm-1.2.0-3.el5.src.rpm

7
.gitignore vendored
View File

@ -1,7 +1,10 @@
SOURCES/Python-2.7.13.tar.xz
SOURCES/firefox-60.7.0esr.source.tar.xz
SOURCES/firefox-langpacks-60.7.0esr-20190515.tar.xz
SOURCES/cbindgen-vendor.tar.xz
SOURCES/firefox-68.3.0esr.source.tar.xz
SOURCES/firefox-langpacks-68.3.0esr-20191127.tar.xz
SOURCES/firefox-symbolic.svg
SOURCES/gtk3-private-3.22.26-1.el6.src.rpm
SOURCES/libffi-3.0.13-18.el7_3.src.rpm
SOURCES/nodejs-8.11.4-1.3.fc27.src.rpm
SOURCES/openssl-1.0.2k-19.6.bundle.el7_7.src.rpm
SOURCES/yasm-1.2.0-3.el5.src.rpm

View File

@ -1,12 +1,13 @@
diff -up firefox-60.0/build/autoconf/icu.m4.icu firefox-60.0/build/autoconf/icu.m4
--- firefox-60.0/build/autoconf/icu.m4.icu 2018-04-17 15:11:54.100644119 +0200
+++ firefox-60.0/build/autoconf/icu.m4 2018-04-17 15:12:50.740686636 +0200
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"
MOZ_ICU_DATA_ARCHIVE=
fi
AC_SUBST(MOZ_ICU_VERSION)

View File

@ -1,12 +1,12 @@
diff -up firefox-60.1.0/old-configure.in.nss-version firefox-60.1.0/old-configure.in
--- firefox-60.1.0/old-configure.in.nss-version 2018-06-20 14:24:55.204158540 +0200
+++ firefox-60.1.0/old-configure.in 2018-06-20 14:30:19.517004230 +0200
@@ -1768,7 +1768,7 @@ MOZ_ARG_WITH_BOOL(system-nss,
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.36.7, [MOZ_SYSTEM_NSS=1], [AC_MSG_ERROR([you don't have NSS installed or your version is too old])])
+ AM_PATH_NSS(3.36.0, [MOZ_SYSTEM_NSS=1], [AC_MSG_ERROR([you don't have NSS installed or your version is too old])])
- AM_PATH_NSS(3.44.3, [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
if test -z "$MOZ_SYSTEM_NSS"; then
NSS_CFLAGS="$NSS_CFLAGS -I${DIST}/include/nss"

View File

@ -0,0 +1,27 @@
diff -up firefox-68.1.0/js/xpconnect/src/XPCWrappedNative.cpp.ppc64le-inline firefox-68.1.0/js/xpconnect/src/XPCWrappedNative.cpp
--- firefox-68.1.0/js/xpconnect/src/XPCWrappedNative.cpp.ppc64le-inline 2019-08-26 18:52:28.000000000 +0200
+++ firefox-68.1.0/js/xpconnect/src/XPCWrappedNative.cpp 2019-08-29 08:49:57.695687874 +0200
@@ -1092,7 +1092,11 @@ class MOZ_STACK_CLASS CallMethodHelper f
MOZ_ALWAYS_INLINE bool GetOutParamSource(uint8_t paramIndex,
MutableHandleValue srcp) const;
+#if (__GNUC__ && __linux__ && __PPC64__ && _LITTLE_ENDIAN)
+ bool GatherAndConvertResults();
+#else
MOZ_ALWAYS_INLINE bool GatherAndConvertResults();
+#endif
MOZ_ALWAYS_INLINE bool QueryInterfaceFastPath();
@@ -1139,7 +1143,11 @@ class MOZ_STACK_CLASS CallMethodHelper f
~CallMethodHelper();
+#if (__GNUC__ && __linux__ && __PPC64__ && _LITTLE_ENDIAN)
+ bool Call();
+#else
MOZ_ALWAYS_INLINE bool Call();
+#endif
// Trace implementation so we can put our CallMethodHelper in a Rooted<T>.
void trace(JSTracer* aTrc);

View File

@ -0,0 +1,50 @@
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 <math.h>
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 <emmintrin.h>
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,

View File

@ -0,0 +1,47 @@
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

View File

@ -6,7 +6,6 @@ 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 --with-pthreads
ac_add_options --disable-strip
ac_add_options --disable-tests
#ac_add_options --enable-libnotify
@ -19,8 +18,7 @@ ac_add_options --with-system-icu
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 --enable-release
ac_add_options --enable-pie
ac_add_options --disable-av1
export BUILD_OFFICIAL=1
export MOZILLA_OFFICIAL=1

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,13 @@
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)

View File

@ -0,0 +1,13 @@
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);

View File

@ -40,6 +40,7 @@
%{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

View File

@ -1,7 +1,7 @@
diff -up firefox-60.5.0/widget/gtk/nsWindow.cpp.1196777 firefox-60.5.0/widget/gtk/nsWindow.cpp
--- firefox-60.5.0/widget/gtk/nsWindow.cpp.1196777 2019-01-22 11:41:58.630469400 +0100
+++ firefox-60.5.0/widget/gtk/nsWindow.cpp 2019-01-22 11:42:50.134227448 +0100
@@ -152,7 +152,8 @@ const gint kEvents =
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
@ -9,5 +9,5 @@ diff -up firefox-60.5.0/widget/gtk/nsWindow.cpp.1196777 firefox-60.5.0/widget/gt
+ GDK_SCROLL_MASK | GDK_POINTER_MOTION_MASK | GDK_PROPERTY_CHANGE_MASK |
+ GDK_FOCUS_CHANGE_MASK;
/* utility functions */
static bool is_mouse_in_window(GdkWindow *aWindow, gdouble aMouseX,
#if !GTK_CHECK_VERSION(3, 22, 0)
typedef enum {

View File

@ -1,27 +0,0 @@
From 1cc652f5525f458b0b4ceb12af24bf5a4367db32 Mon Sep 17 00:00:00 2001
From: Nicolas Dufresne <nicolas.dufresne@collabora.com>
Date: Tue, 23 May 2017 13:09:48 -0400
Subject: [PATCH] Bug 1353817: Include SkNx_neon.h for ARM64 too
This fixes build errors as arm_neon.h was missing along with some
missing converters.
---
gfx/skia/skia/src/core/SkNx.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gfx/skia/skia/src/core/SkNx.h b/gfx/skia/skia/src/core/SkNx.h
index 6bca856..b0427aa 100644
--- a/gfx/skia/skia/src/core/SkNx.h
+++ b/gfx/skia/skia/src/core/SkNx.h
@@ -299,7 +299,7 @@ typedef SkNx<4, uint32_t> Sk4u;
// Include platform specific specializations if available.
#if !defined(SKNX_NO_SIMD) && SK_CPU_SSE_LEVEL >= SK_CPU_SSE_LEVEL_SSE2
#include "../opts/SkNx_sse.h"
-#elif !defined(SKNX_NO_SIMD) && defined(SK_ARM_HAS_NEON)
+#elif !defined(SKNX_NO_SIMD) && (defined(SK_ARM_HAS_NEON) || defined(SK_CPU_ARM64))
#include "../opts/SkNx_neon.h"
#else
--
2.9.4

View File

@ -1,14 +0,0 @@
diff -up firefox-60.6.0/widget/gtk/nsFilePicker.cpp.old firefox-60.6.0/widget/gtk/nsFilePicker.cpp
--- firefox-60.6.0/widget/gtk/nsFilePicker.cpp.old 2019-03-27 10:29:47.918560620 +0100
+++ firefox-60.6.0/widget/gtk/nsFilePicker.cpp 2019-03-27 10:30:08.384491717 +0100
@@ -366,9 +366,7 @@ nsFilePicker::Open(nsIFilePickerShownCal
// If we have --enable-proxy-bypass-protection, then don't allow
// remote URLs to be used.
#ifndef MOZ_PROXY_BYPASS_PROTECTION
- if (mAllowURLs) {
- gtk_file_chooser_set_local_only(GTK_FILE_CHOOSER(file_chooser), FALSE);
- }
+ gtk_file_chooser_set_local_only(GTK_FILE_CHOOSER(file_chooser), FALSE);
#endif
if (action == GTK_FILE_CHOOSER_ACTION_OPEN ||

12
SOURCES/no-rust-lto.patch Normal file
View File

@ -0,0 +1,12 @@
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

View File

@ -0,0 +1,3 @@
#!/bin/sh
#exec /usr/bin/node "$@" 2>&1 | cat -
exec $MOZ_NODEJS "$@" 2>&1 | cat -

View File

@ -0,0 +1,12 @@
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));
}

View File

@ -0,0 +1,57 @@
commit 0b91f8a668201fc58fa732b8acc496caedfdbae0
Author: Florian Weimer <fw@deneb.enyo.de>
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.

17
SOURCES/python-2.7.patch Normal file
View File

@ -0,0 +1,17 @@
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

View File

@ -0,0 +1,12 @@
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:

View File

@ -0,0 +1,12 @@
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`

View File

@ -1,12 +0,0 @@
diff -up firefox-60.5.0/layout/base/nsIPresShell.h.1354671 firefox-60.5.0/layout/base/nsIPresShell.h
--- firefox-60.5.0/layout/base/nsIPresShell.h.1354671 2019-01-22 16:08:40.796539950 +0100
+++ firefox-60.5.0/layout/base/nsIPresShell.h 2019-01-22 16:10:25.106069228 +0100
@@ -204,7 +204,7 @@ class nsIPresShell : public nsStubDocume
* to the same aSize value. AllocateFrame is infallible and will abort
* on out-of-memory.
*/
- void* AllocateFrame(nsQueryFrame::FrameIID aID, size_t aSize) {
+ void* __attribute__((optimize("no-lifetime-dse"))) AllocateFrame(nsQueryFrame::FrameIID aID, size_t aSize) {
void* result = mFrameArena.AllocateByFrameID(aID, aSize);
RecordAlloc(result);
return result;

View File

@ -0,0 +1,105 @@
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)

View File

@ -2,38 +2,52 @@
%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
%global system_nss 1
%endif
%define use_bundled_ffi 0
%define use_bundled_python 1
%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
%define bundle_gnome_extension 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_llvmts 1
%endif
%if 0%{?rhel} > 6
%global system_ffi 1
%else
%global system_ffi 0
%global use_llvmts 0
%endif
%if 0%{?rhel} < 8
%global use_dts 1
%endif
%if 0%{?rhel} == 7
%define use_bundled_python 0
%endif
%if 0%{?rhel} < 8
%global use_rustts 1
%global dts_version 8
%if 0%{?rhel} == 6
%global dts_version 8
%endif
%global dts_version 7
%global rst_version 7
%global llvm_version 7
%global rust_version 1.31
%global rust_toolset_version 1.35
%global llvm_version 7.0
%if 0%{?rhel} == 8
%global rst_version 1.26
%global llvm_version 6.0
%endif
@ -83,12 +97,12 @@
%endif
%if %{?system_nss}
%global nspr_version 4.19.0
%global nspr_version 4.21
# 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.36.0
%global nss_version 3.44
#%global nss_build_version %(pkg-config --silence-errors --modversion nss 2>/dev/null || echo 65536)
%global nss_build_version %{nss_version}
%endif
@ -99,11 +113,20 @@
%global sqlite_build_version %(pkg-config --silence-errors --modversion sqlite3 2>/dev/null || echo 65536)
%endif
%define bundled_python_version 2.7.13
%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
%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
@ -128,6 +151,7 @@
%global langpackdir %{mozappdir}/distribution/extensions
%global tarballdir %{name}-%{version}
%global pre_version esr
#global pre_tag alpha
%global official_branding 1
%global build_langpacks 1
@ -141,7 +165,7 @@
Summary: Mozilla Firefox Web browser
Name: firefox
Version: 60.7.0
Version: 68.3.0
Release: 1%{?pre_tag}%{?dist}
URL: https://www.mozilla.org/firefox/
License: MPLv1.1 or GPLv2+ or LGPLv2+
@ -154,8 +178,9 @@ ExclusiveArch: i686 x86_64 ppc64 s390x
Source0: https://hg.mozilla.org/releases/mozilla-release/archive/firefox-%{version}%{?pre_version}.source.tar.xz
%if %{build_langpacks}
Source1: firefox-langpacks-%{version}%{?pre_version}-20190515.tar.xz
Source1: firefox-langpacks-%{version}%{?pre_version}-20191127.tar.xz
%endif
Source2: cbindgen-vendor.tar.xz
Source10: firefox-mozconfig
Source12: firefox-redhat-default-prefs.js
Source20: firefox.desktop
@ -165,6 +190,7 @@ Source24: mozilla-api-key
Source25: firefox-symbolic.svg
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
@ -175,14 +201,31 @@ 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 2.7
Source100: https://www.python.org/ftp/python/%{bundled_python_version}/Python-%{bundled_python_version}.tar.xz
#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
# Build patches
Patch1000: python-2.7.patch
Patch1001: build-ppc64le-inline.patch
Patch1002: python-2.7-gcc8-fix.patch
Patch1003: python-missing-utimensat.patch
# workaround for https://bugzilla.redhat.com/show_bug.cgi?id=1699374
Patch1: no-rust-lto.patch
Patch2: rust-network-check.patch
Patch3: mozilla-build-arm.patch
Patch4: build-mozconfig-fix.patch
Patch5: build-gdk-version.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
# Also fixes s390x: https://bugzilla.mozilla.org/show_bug.cgi?id=1376268
Patch29: build-big-endian.patch
@ -192,7 +235,6 @@ Patch37: build-jit-atomic-always-lucky.patch
Patch40: build-aarch64-skia.patch
Patch41: build-debug-qcms.patch
Patch43: xulrunner-24.0-jemalloc-ppc.patch
#Patch44: firefox-disable-dbus-remote.patch
Patch45: build-disable-elfhack.patch
# Fedora/RHEL specific patches
@ -201,17 +243,21 @@ Patch219: rhbz-1173156.patch
Patch224: mozilla-1170092.patch
Patch225: mozilla-1005640-accept-lang.patch
#ARM run-time patch
Patch226: rhbz-1354671.patch
#Patch226: rhbz-1354671.patch
Patch230: rhbz-1503632-nss.patch
Patch231: firefox-pipewire.patch
Patch232: mozilla-526293.patch
Patch232: firefox-rhel6-hugepage.patch
Patch233: firefox-rhel6-nss-tls1.3.patch
# Upstream patches
Patch402: mozilla-1196777.patch
Patch406: mozilla-256180.patch
Patch413: mozilla-1353817.patch
#Patch413: mozilla-1353817.patch
Patch415: mozilla-1436242.patch
#Patch500: debug.patch
Patch501: python-encode.patch
# Debian patches
%if %{?system_nss}
@ -267,16 +313,21 @@ BuildRequires: llvm-toolset-%{llvm_version}-llvm-devel
%endif
%endif
BuildRequires: scl-utils
%if 0%{?rhel} == 8
BuildRequires: cargo
BuildRequires: rust >= 1.24
BuildRequires: rust >= %{rust_version}
BuildRequires: llvm >= %{llvm_version}
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-%{rst_version}-cargo
BuildRequires: rust-toolset-%{rst_version}-rust >= 1.24
BuildRequires: rust-toolset-%{rust_toolset_version}
%endif
%if 0%{?use_llvmts}
BuildRequires: llvm-toolset-%{llvm_version}
@ -284,7 +335,7 @@ BuildRequires: llvm-toolset-%{llvm_version}-llvm-devel
%endif
%endif
%if 0%{?use_bundled_python}
%if 0%{?use_bundled_python_2}
#%if 0%{?rhel} == 6
# Needed for Python in RHEL6
BuildRequires: openssl-devel
@ -347,10 +398,6 @@ Requires: nspr >= %{nspr_build_version}
Requires: nss >= %{nss_build_version}
%endif
%if 0%{?rhel} < 8
BuildRequires: python2-devel
%endif
BuildRequires: desktop-file-utils
BuildRequires: system-bookmarks
Requires: redhat-indexhtml
@ -423,8 +470,8 @@ 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
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
@ -432,57 +479,74 @@ https://extensions.gnome.org.
%endif # bundle_gnome_extension
%prep
%setup -q -T -c -n python -a 100
%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
%patch29 -p1 -b .big-endian
%patch37 -p1 -b .jit-atomic-lucky
%patch40 -p1 -b .aarch64-skia
#%patch29 -p1 -b .big-endian
#%patch37 -p1 -b .jit-atomic-lucky
#%patch40 -p1 -b .aarch64-skia
%if %{?debug_build}
%patch41 -p1 -b .build-debug-qcms
%endif
%patch43 -p1 -b .jemalloc-ppc
# Disable DBus remote on RHEL6 as it does not build here.
#%if 0%{?rhel} == 6
#%patch44 -p1 -b .disable-dbus-remote
#%patch43 -p1 -b .jemalloc-ppc
#%if 0%{?rhel} == 8
#%patch45 -p1 -b .disable-elfhack
#%endif
%if 0%{?rhel} == 8
%patch45 -p1 -b .disable-elfhack
%endif
%patch3 -p1 -b .arm
#%patch3 -p1 -b .arm
%patch4 -p1 -b .build-mozconfig-fix
%patch5 -p1 -b .gdk-version
#%patch5 -p1 -b .gdk-version
%patch6 -p1 -b .nss-version
# Fedora patches
%patch215 -p1 -b .addons
%patch219 -p1 -b .rhbz-1173156
%patch224 -p1 -b .1170092
%patch225 -p1 -b .1005640-accept-lang
#%patch224 -p1 -b .1170092
#%patch225 -p1 -b .1005640-accept-lang
%if 0%{?rhel} == 8
%patch231 -p1 -b .pipewire
%endif
%patch232 -p1 -b .mozilla-526293
%if 0%{?rhel} == 6
%patch232 -p1 -b .hugepage
%patch233 -p1 -b .rhel6-nss-tls1.3
%endif
# This ensures no migration of certdb to sqlite on the RHEL6 and RHEL7.
# This needs to stay for the future releases
%if 0%{?rhel} < 8
%patch230 -p1 -b .1503632-nss
#%patch230 -p1 -b .1503632-nss
%endif
#ARM run-time patch
%ifarch aarch64
%patch226 -p1 -b .1354671
%endif
#%ifarch aarch64
#%patch226 -p1 -b .1354671
#%endif
%patch402 -p1 -b .1196777
%patch406 -p1 -b .256180
%patch413 -p1 -b .1353817
%patch415 -p1 -b .1436242
#%patch406 -p1 -b .256180
#%patch413 -p1 -b .1353817
#%patch415 -p1 -b .1436242
# Patch for big endian platforms only
@ -490,6 +554,10 @@ https://extensions.gnome.org.
%patch26 -p1 -b .icu
%endif
#%patch500 -p1 -b .debug
%patch501 -p1 -b .python-encode
%patch1001 -p1 -b .ppc64le-inline
%{__rm} -f .mozconfig
%{__cp} %{SOURCE10} .mozconfig
%if %{official_branding}
@ -525,14 +593,15 @@ echo "ac_add_options --enable-system-ffi" >> .mozconfig
echo "ac_add_options --enable-system-ffi" >> .mozconfig
%endif
%ifarch %{arm}
%ifarch %{arm} %{ix86} x86_64
echo "ac_add_options --disable-elf-hack" >> .mozconfig
%endif
%if %{?system_hunspell}
echo "ac_add_options --enable-system-hunspell" >> .mozconfig
%else
echo "ac_add_options --disable-system-hunspell" >> .mozconfig
# not available?
#echo "ac_add_options --disable-system-hunspell" >> .mozconfig
%endif
%if %{?debug_build}
@ -596,12 +665,7 @@ echo "ac_add_options --without-system-icu" >> .mozconfig
echo "ac_add_options --disable-ion" >> .mozconfig
%endif
%ifarch %{ix86}
echo "ac_add_options --disable-stylo" >> .mozconfig
%endif
%if 0%{?rhel} == 6
echo "ac_add_options --disable-stylo" >> .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
@ -609,8 +673,12 @@ chmod -x third_party/rust/itertools/src/lib.rs
#---------------------------------------------------------------------
%build
set -e
# Hack for missing shell when building in brew on RHEL6
%if 0%{?rhel} == 6
export SHELL=/bin/sh
%endif
#GTK3 >>
%if ! 0%{?avoid_bundled_rebuild}
rm -rf %{_buildrootdir}/*
%endif
@ -640,7 +708,7 @@ function build_bundled_package() {
PACKAGE_RPM=$1
PACKAGE_FILES=$2
PACKAGE_SOURCE=$3
PACKAGE_DIR="%{_topdir}/RPMS"
export PACKAGE_DIR="%{_topdir}/RPMS"
PACKAGE_ALREADY_BUILD=0
%if %{?avoid_bundled_rebuild}
@ -662,20 +730,27 @@ function build_bundled_package() {
%ifarch i386 i686
ARCH_STR="i?86"
%endif
PACKAGE_DIR="$PACKAGE_DIR/$ARCH_STR"
export PACKAGE_DIR="$PACKAGE_DIR/$ARCH_STR"
fi
pushd $PACKAGE_DIR
echo "Installing $PACKAGE_DIR/$PACKAGE_RPM"; echo "==============================="
rpm2cpio $PACKAGE_DIR/$PACKAGE_RPM | cpio -iduv
PACKAGE_LIST=$(echo $PACKAGE_DIR/$PACKAGE_RPM | tr " " "\n")
for PACKAGE in $PACKAGE_LIST
do
rpm2cpio $PACKAGE | cpio -iduv
done
PATH=$PACKAGE_DIR/usr/bin:$PATH
export PATH
LD_LIBRARY_PATH=$PACKAGE_DIR/usr/%{_lib}:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH
# Clean rpms to avoid including them to package
%if ! 0%{?avoid_bundled_rebuild}
rm -f $PACKAGE_FILES
%endif
PATH=$PACKAGE_DIR/usr/bin:$PATH
export PATH
LD_LIBRARY_PATH=$PACKAGE_DIR/usr/%{_lib}
export LD_LIBRARY_PATH
popd
}
@ -685,13 +760,11 @@ function build_bundled_package() {
build_bundled_package 'yasm-1*.rpm' 'yasm-*.rpm' '%{SOURCE301}'
%endif
%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
rm -rf %{_buildrootdir}/*
pushd %{_buildrootdir}
install_rpms_to_current_dir gtk3-private-%{gtk3_nvr}*.rpm
install_rpms_to_current_dir gtk3-private-devel-%{gtk3_nvr}*.rpm
@ -699,18 +772,6 @@ function build_bundled_package() {
popd
%endif
# If needed build the bundled python 2.7 and put it in the PATH
%if 0%{?use_bundled_python}
pushd %{_builddir}/python/Python-%{bundled_python_version}
#if ! 0%{?avoid_bundled_rebuild}
# Build Python 2.7 and set environment
# Pydebug set optimization to level 0, -O3 crashes on gcc 8 ATM
./configure --with-pydebug --prefix="%{_buildrootdir}" --exec-prefix="%{_buildrootdir}" --libdir="%{_buildrootdir}/lib"
#endif
make %{?_smp_mflags} install V=1
popd
%endif
%if 0%{?bundle_gtk3}
# gtk3-private-3.22.26.el6-1-requires-provides-filter.inc
%include_file %{SOURCE206}
@ -726,7 +787,91 @@ function build_bundled_package() {
%endif
%filter_setup
# GTK3 <<
# 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"
make %{?_smp_mflags} install V=1
popd
%endif
function replace_prefix() {
FILE_NAME=$1
PKG_CONFIG_PREFIX=$2
cat $FILE_NAME | tail -n +2 > tmp.txt
echo "$PKG_CONFIG_PREFIX" > $FILE_NAME
cat tmp.txt >> $FILE_NAME
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}
%endif
# 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
mkdir -p my_rust_vendor
cd my_rust_vendor
%{__tar} xf %{SOURCE2}
cd -
mkdir -p .cargo
cat > .cargo/config <<EOL
[source.crates-io]
replace-with = "vendored-sources"
[source.vendored-sources]
directory = "`pwd`/my_rust_vendor"
EOL
export CARGO_HOME=.cargo
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:
@ -739,28 +884,17 @@ case "%{sqlite_build_version}" in
esac
%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-%{rst_version}
%endif
set -e
# Hack for missing shell when building in brew on RHEL6
%if 0%{?rhel} == 6
export SHELL=/bin/sh
%endif
echo "Generate big endian version of config/external/icu/data/icud58l.dat"
%if 0%{?big_endian}
./mach python intl/icu_sources_data.py .
ls -l config/external/icu/data
rm -f config/external/icu/data/icudt*l.dat
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
%endif
mkdir %{_buildrootdir}/bin || :
cp %{SOURCE28} %{_buildrootdir}/bin || :
# Update the various config.guess to upstream release for aarch64 support
find ./ -name config.guess -exec cp /usr/lib/rpm/config.guess {} ';'
@ -808,10 +942,16 @@ export LDFLAGS=$MOZ_LINK_FLAGS
export PREFIX='%{_prefix}'
export LIBDIR='%{_libdir}'
export CC=gcc
export CXX=g++
MOZ_SMP_FLAGS=-j1
# On x86 architectures, Mozilla can build up to 4 jobs at once in parallel,
# however builds tend to fail on other arches when building in parallel.
# 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
%else
%ifarch %{ix86} x86_64 ppc ppc64 ppc64le aarch64
[ -z "$RPM_BUILD_NCPUS" ] && \
RPM_BUILD_NCPUS="`/usr/bin/getconf _NPROCESSORS_ONLN`"
@ -819,19 +959,16 @@ MOZ_SMP_FLAGS=-j1
[ "$RPM_BUILD_NCPUS" -ge 4 ] && MOZ_SMP_FLAGS=-j4
[ "$RPM_BUILD_NCPUS" -ge 8 ] && MOZ_SMP_FLAGS=-j8
%endif
%endif
%if 0%{?bundle_gtk3}
# gtk3-private-setup-flags-env.inc
%include_file %{SOURCE205}
%endif
#make -f client.mk build STRIP="/bin/true" MOZ_MAKE_FLAGS="$MOZ_SMP_FLAGS" MOZ_SERVICES_SYNC="1"
export MOZ_MAKE_FLAGS="$MOZ_SMP_FLAGS"
export MOZ_SERVICES_SYNC="1"
export STRIP=/bin/true
%if 0%{?rhel} == 8
export LLVM_CONFIG=/usr/bin/llvm-config-64
%endif
./mach build -v
# create debuginfo for crash-stats.mozilla.com
@ -1027,7 +1164,6 @@ echo "%%lang($language_short) %{langpackdir}/langpack-$language_short@firefox.mo
# Table of fallbacks for each language
# please file a bug at bugzilla.redhat.com if the assignment is incorrect
create_default_langpack "bn-IN" "bn"
create_default_langpack "es-AR" "es"
create_default_langpack "fy-NL" "fy"
create_default_langpack "ga-IE" "ga"
@ -1114,6 +1250,8 @@ 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
%post
update-desktop-database &> /dev/null || :
@ -1161,10 +1299,10 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
%{mozappdir}/browser/features/*.xpi
%{mozappdir}/distribution/distribution.ini
# That's Windows only
%ghost %{mozappdir}/browser/features/aushelper@mozilla.org.xpi
#%exclude %{mozappdir}/browser/features/aushelper@mozilla.org.xpi
%attr(644, root, root) %{mozappdir}/browser/blocklist.xml
%dir %{mozappdir}/browser/extensions
%{mozappdir}/browser/extensions/*
#%dir %{mozappdir}/browser/extensions
#%{mozappdir}/browser/extensions/*
%if %{build_langpacks}
%dir %{langpackdir}
%endif
@ -1197,7 +1335,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
%{mozappdir}/platform.ini
%{mozappdir}/plugin-container
%{mozappdir}/gmp-clearkey
%{mozappdir}/fonts/EmojiOneMozilla.ttf
%{mozappdir}/fonts/*.ttf
%if !%{?system_libicu}
#%{mozappdir}/icudt*.dat
%endif
@ -1221,20 +1359,51 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
#---------------------------------------------------------------------
%changelog
* Wed May 15 2019 Martin Stransky <stransky@redhat.com> - 60.7.0-1
- Updated to 60.7.0 ESR
* Wed Nov 27 2019 Martin Stransky <stransky@redhat.com> - 68.3.0-1
- Update to 68.3.0 ESR
* Thu May 9 2019 Martin Stransky <stransky@redhat.com> - 60.6.3-1
- Updated to 60.6.3 ESR
* Thu Oct 24 2019 Martin Stransky <stransky@redhat.com> - 68.2.0-4
- Added patch for TLS 1.3 support.
* Tue May 7 2019 Martin Stransky <stransky@redhat.com> - 60.6.2-1
- Updated to 60.6.2 ESR
* Wed Oct 23 2019 Martin Stransky <stransky@redhat.com> - 68.2.0-3
- Rebuild
* Mon Mar 27 2019 Martin Stransky <stransky@redhat.com> - 60.6.1-2
- Added fix for mozbz#526293 - show remote locations on file chooser dialog.
* Mon Oct 21 2019 Martin Stransky <stransky@redhat.com> - 68.2.0-2
- Rebuild
* Mon Mar 25 2019 Martin Stransky <stransky@redhat.com> - 60.6.1-1
- Update to 60.6.1 ESR (Build 1)
* Thu Oct 17 2019 Martin Stransky <stransky@redhat.com> - 68.2.0-1
- Update to 68.2.0 ESR
* Thu Oct 10 2019 Martin Stransky <stransky@redhat.com> - 68.1.0-6
- Enable system nss on RHEL6
* Thu Sep 5 2019 Jan Horak <jhorak@redhat.com> - 68.1.0-2
- Enable building langpacks
* Wed Aug 28 2019 Jan Horak <jhorak@redhat.com> - 68.1.0-1
- Update to 68.1.0 ESR
* Mon Aug 5 2019 Martin Stransky <stransky@redhat.com> - 68.0.1-4
- Enable system nss
* Mon Jul 29 2019 Martin Stransky <stransky@redhat.com> - 68.0.1-3
- Enable official branding
* Fri Jul 26 2019 Martin Stransky <stransky@redhat.com> - 68.0.1-2
- Enabled PipeWire on RHEL8
* Fri Jul 26 2019 Martin Stransky <stransky@redhat.com> - 68.0.1-1
- Updated to 68.0.1 ESR
* Tue Jul 16 2019 Jan Horak <jhorak@redhat.com> - 68.0-0.11
- Update to 68.0 ESR
* Tue Jun 25 2019 Martin Stransky <stransky@redhat.com> - 68.0-0.10
- Updated to 68.0 alpha 13
- Enabled second arches
* Fri Mar 22 2019 Martin Stransky <stransky@redhat.com> - 68.0-0.1
- Updated to 68.0 alpha
* Fri Mar 15 2019 Martin Stransky <stransky@redhat.com> - 60.6.0-3
- Added Google API keys (mozbz#1531176)