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,8 +113,17 @@
%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
@ -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
@ -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 .
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
rm -f config/external/icu/data/icudt*l.dat
%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)