import thunderbird-68.3.0-2.el8_1

This commit is contained in:
CentOS Sources 2020-01-21 11:15:25 -05:00 committed by Stepan Oksanichenko
parent 0f3d73aba7
commit ff345a171b
30 changed files with 714 additions and 493 deletions

10
.gitignore vendored
View File

@ -1,7 +1,11 @@
SOURCES/Python-2.7.13.tar.xz
SOURCES/Python-3.6.8.tar.xz
SOURCES/cbindgen-vendor.tar.xz
SOURCES/gtk3-private-3.22.26-1.el6.src.rpm
SOURCES/libffi-3.0.13-18.el7_3.src.rpm
SOURCES/lightning-langpacks-60.7.0.tar.xz
SOURCES/thunderbird-60.7.0.source.tar.xz
SOURCES/thunderbird-langpacks-60.7.0-20190520.tar.xz
SOURCES/lightning-langpacks-68.3.0.tar.xz
SOURCES/nodejs-8.11.4-1.3.fc27.src.rpm
SOURCES/openssl-1.0.2k-19.6.bundle.el7_7.src.rpm
SOURCES/thunderbird-68.3.0.source.tar.xz
SOURCES/thunderbird-langpacks-68.3.0-20191202.tar.xz
SOURCES/yasm-1.2.0-3.el5.src.rpm

View File

@ -1,7 +1,11 @@
18a8f30a0356c751b8d0ea6f76e764cab13ee046 SOURCES/Python-2.7.13.tar.xz
ee55acedef049268307633cbc9c7ff0610d1244f SOURCES/Python-3.6.8.tar.xz
e86c38c48960b95353503b78e1de9ddca1ed34d7 SOURCES/cbindgen-vendor.tar.xz
0de63f863b158454b9429234b52ed28a397ec45c SOURCES/gtk3-private-3.22.26-1.el6.src.rpm
e188ab1a444697bc649e223c28389d82ca94c472 SOURCES/libffi-3.0.13-18.el7_3.src.rpm
27325758061b85882d0b21834ccb1249dbf32d81 SOURCES/lightning-langpacks-60.7.0.tar.xz
23b4227d9459d2100f580af68139f6641fc24c66 SOURCES/thunderbird-60.7.0.source.tar.xz
ea4041cafc04999e714a223d0b07dc08c1fefeff SOURCES/thunderbird-langpacks-60.7.0-20190520.tar.xz
52e3db96daa8c54295b6fe958f4dd5d7ca902534 SOURCES/lightning-langpacks-68.3.0.tar.xz
4f8d3bf2483d95261ff90742ecec82d6a899eca3 SOURCES/nodejs-8.11.4-1.3.fc27.src.rpm
a379070abf5000cde61411c97af7e733b267a4d3 SOURCES/openssl-1.0.2k-19.6.bundle.el7_7.src.rpm
1602af5c854109d939528ec14ada80103030128d SOURCES/thunderbird-68.3.0.source.tar.xz
9f691d8b90eda93a423d17f6ff45ddc81f63b6b4 SOURCES/thunderbird-langpacks-68.3.0-20191202.tar.xz
77fd30f7ebc12a629a31c1e252cec06af55a71fe SOURCES/yasm-1.2.0-3.el5.src.rpm

View File

@ -1,12 +0,0 @@
diff -up firefox-61.0/gfx/skia/skia/src/jumper/SkJumper_stages.cpp.aarch64-skia firefox-61.0/gfx/skia/skia/src/jumper/SkJumper_stages.cpp
--- firefox-61.0/gfx/skia/skia/src/jumper/SkJumper_stages.cpp.aarch64-skia 2018-06-20 09:19:11.411939714 +0200
+++ firefox-61.0/gfx/skia/skia/src/jumper/SkJumper_stages.cpp 2018-06-20 09:23:36.831919894 +0200
@@ -686,7 +686,7 @@ SI F from_half(U16 h) {
}
SI U16 to_half(F f) {
-#if defined(JUMPER_IS_NEON) && defined(__aarch64__) && !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds.
+#if 0 && defined(__aarch64__) && !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds.
return vcvt_f16_f32(f);
#elif defined(JUMPER_IS_HSW) || defined(JUMPER_IS_AVX512)

View File

@ -1,12 +1,12 @@
diff -up firefox-60.4.0/toolkit/moz.configure.disable-elfhack firefox-60.4.0/toolkit/moz.configure
--- firefox-60.4.0/toolkit/moz.configure.disable-elfhack 2019-01-03 14:47:00.566556623 +0100
+++ firefox-60.4.0/toolkit/moz.configure 2019-01-03 14:49:14.243887620 +0100
@@ -1192,7 +1192,7 @@ with only_when(has_elfhack):
option('--disable-elf-hack', help='Disable elf hacks')
diff -up thunderbird-68.1.1/toolkit/moz.configure.elfhack thunderbird-68.1.1/toolkit/moz.configure
--- thunderbird-68.1.1/toolkit/moz.configure.elfhack 2019-10-04 08:33:32.881241826 +0200
+++ thunderbird-68.1.1/toolkit/moz.configure 2019-10-04 08:38:35.422159976 +0200
@@ -1130,7 +1130,7 @@ with only_when('--enable-compile-environ
help='{Enable|Disable} elf hacks')
set_config('USE_ELF_HACK',
- depends_if('--enable-elf-hack')(lambda _: True))
+ depends_if('--enable-elf-hack')(lambda _: False))
set_config('USE_ELF_HACK',
- depends_if('--enable-elf-hack')(lambda _: True))
+ depends_if('--enable-elf-hack')(lambda _: False))
@depends(check_build_environment)

View File

@ -1,19 +0,0 @@
diff -up mozilla-release-c61f5f5ead48c78a80c80db5c489bdc7cfaf8175/old-configure.in.gdk-version mozilla-release-c61f5f5ead48c78a80c80db5c489bdc7cfaf8175/old-configure.in
--- mozilla-release-c61f5f5ead48c78a80c80db5c489bdc7cfaf8175/old-configure.in.gdk-version 2018-03-10 03:54:17.000000000 +0100
+++ mozilla-release-c61f5f5ead48c78a80c80db5c489bdc7cfaf8175/old-configure.in 2018-03-28 13:11:06.294873487 +0200
@@ -61,6 +61,7 @@ CAIRO_VERSION=1.10
GTK2_VERSION=2.18.0
GTK3_VERSION=3.4.0
GDK_VERSION_MAX_ALLOWED=GDK_VERSION_3_4
+GDK_VERSION_MIN_REQUIRED=GDK_VERSION_3_4
WINDRES_VERSION=2.14.90
W32API_VERSION=3.14
GCONF_VERSION=1.2.1
@@ -2173,6 +2174,7 @@ if test "$COMPILE_ENVIRONMENT"; then
dnl GDK_VERSION_MIN_REQUIRED is not set here as GDK3 deprecated warnings
dnl are suppressed by widget/gtk/compat-gtk3/gdk/gdkversionmacros.h.
AC_DEFINE_UNQUOTED(GDK_VERSION_MAX_ALLOWED,$GDK_VERSION_MAX_ALLOWED)
+ AC_DEFINE_UNQUOTED(GDK_VERSION_MIN_REQUIRED,$GDK_VERSION_MIN_REQUIRED)
GLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_32
fi
if test "$MOZ_WIDGET_TOOLKIT" = gtk2; then

View File

@ -1,12 +1,12 @@
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 thunderbird-68.1.1/build/autoconf/icu.m4.icu thunderbird-68.1.1/build/autoconf/icu.m4
--- thunderbird-68.1.1/build/autoconf/icu.m4.icu 2019-10-04 09:48:47.337041046 +0200
+++ thunderbird-68.1.1/build/autoconf/icu.m4 2019-10-04 09:52:32.046670353 +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 +0,0 @@
diff -up firefox-60.5.0/js/src/jit/AtomicOperations.h.jit-atomic-lucky firefox-60.5.0/js/src/jit/AtomicOperations.h
--- firefox-60.5.0/js/src/jit/AtomicOperations.h.jit-atomic-lucky 2019-01-22 10:20:27.993697161 +0100
+++ firefox-60.5.0/js/src/jit/AtomicOperations.h 2019-01-22 10:23:15.337873762 +0100
@@ -394,7 +394,7 @@ inline bool AtomicOperations::isLockfree
#elif defined(__s390__) || defined(__s390x__)
#include "jit/none/AtomicOperations-feeling-lucky.h"
#else
-#error "No AtomicOperations support provided for this platform"
+#include "jit/none/AtomicOperations-feeling-lucky.h"
#endif
#endif // jit_AtomicOperations_h

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 thunderbird-68.2.0/old-configure.in.nss-version thunderbird-68.2.0/old-configure.in
--- thunderbird-68.2.0/old-configure.in.nss-version 2019-10-22 14:50:42.649086398 +0200
+++ thunderbird-68.2.0/old-configure.in 2019-10-22 14:51:11.567171593 +0200
@@ -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

@ -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

@ -1,7 +1,7 @@
diff -up firefox-60.5.0/extensions/pref/autoconfig/src/nsReadConfig.cpp.1170092 firefox-60.5.0/extensions/pref/autoconfig/src/nsReadConfig.cpp
--- firefox-60.5.0/extensions/pref/autoconfig/src/nsReadConfig.cpp.1170092 2019-01-22 10:48:38.187383614 +0100
+++ firefox-60.5.0/extensions/pref/autoconfig/src/nsReadConfig.cpp 2019-01-22 11:26:11.027108692 +0100
@@ -225,8 +225,20 @@ nsresult nsReadConfig::openAndEvaluateJS
diff -up thunderbird-68.1.1/extensions/pref/autoconfig/src/nsReadConfig.cpp.1170092 thunderbird-68.1.1/extensions/pref/autoconfig/src/nsReadConfig.cpp
--- thunderbird-68.1.1/extensions/pref/autoconfig/src/nsReadConfig.cpp.1170092 2019-09-24 16:36:11.000000000 +0200
+++ thunderbird-68.1.1/extensions/pref/autoconfig/src/nsReadConfig.cpp 2019-10-03 11:27:33.905512072 +0200
@@ -246,8 +246,20 @@ nsresult nsReadConfig::openAndEvaluateJS
if (NS_FAILED(rv)) return rv;
rv = NS_NewLocalFileInputStream(getter_AddRefs(inStr), jsFile);
@ -23,30 +23,22 @@ diff -up firefox-60.5.0/extensions/pref/autoconfig/src/nsReadConfig.cpp.1170092
} else {
nsAutoCString location("resource://gre/defaults/autoconfig/");
location += aFileName;
diff -up firefox-60.5.0/modules/libpref/Preferences.cpp.1170092 firefox-60.5.0/modules/libpref/Preferences.cpp
--- firefox-60.5.0/modules/libpref/Preferences.cpp.1170092 2019-01-21 17:38:16.000000000 +0100
+++ firefox-60.5.0/modules/libpref/Preferences.cpp 2019-01-22 10:48:38.187383614 +0100
@@ -3459,6 +3459,8 @@ static nsresult pref_ReadPrefFromJar(nsZ
diff -up thunderbird-68.1.1/modules/libpref/Preferences.cpp.1170092 thunderbird-68.1.1/modules/libpref/Preferences.cpp
--- thunderbird-68.1.1/modules/libpref/Preferences.cpp.1170092 2019-09-24 16:36:50.000000000 +0200
+++ thunderbird-68.1.1/modules/libpref/Preferences.cpp 2019-10-03 11:27:33.906512075 +0200
@@ -4436,6 +4436,8 @@ static nsresult pref_ReadDefaultPrefs(co
//
// Thus, in the omni.jar case, we always load app-specific default
// preferences from omni.jar, whether or not `$app == $gre`.
+ // At very end load configuration from system config location:
+ // - /etc/firefox/pref/*.js
nsresult rv;
nsresult rv = NS_ERROR_FAILURE;
nsZipFind* findPtr;
diff -up firefox-60.5.0/toolkit/xre/nsXREDirProvider.cpp.1170092 firefox-60.5.0/toolkit/xre/nsXREDirProvider.cpp
--- firefox-60.5.0/toolkit/xre/nsXREDirProvider.cpp.1170092 2019-01-21 17:38:51.000000000 +0100
+++ firefox-60.5.0/toolkit/xre/nsXREDirProvider.cpp 2019-01-22 11:37:01.868896974 +0100
@@ -58,6 +58,7 @@
#endif
#ifdef XP_UNIX
#include <ctype.h>
+#include "nsIXULAppInfo.h"
#endif
#ifdef XP_IOS
#include "UIKitDirProvider.h"
@@ -491,6 +492,21 @@ nsXREDirProvider::GetFile(const char* aP
diff -up thunderbird-68.1.1/toolkit/xre/nsXREDirProvider.cpp.1170092 thunderbird-68.1.1/toolkit/xre/nsXREDirProvider.cpp
--- thunderbird-68.1.1/toolkit/xre/nsXREDirProvider.cpp.1170092 2019-09-24 16:37:39.000000000 +0200
+++ thunderbird-68.1.1/toolkit/xre/nsXREDirProvider.cpp 2019-10-03 11:33:45.858681620 +0200
@@ -524,6 +524,21 @@ nsXREDirProvider::GetFile(const char* aP
}
}
}
@ -68,7 +60,7 @@ diff -up firefox-60.5.0/toolkit/xre/nsXREDirProvider.cpp.1170092 firefox-60.5.0/
if (NS_FAILED(rv) || !file) return NS_ERROR_FAILURE;
if (ensureFilePermissions) {
@@ -796,6 +812,16 @@ nsresult nsXREDirProvider::GetFilesInter
@@ -880,6 +895,16 @@ nsresult nsXREDirProvider::GetFilesInter
LoadDirIntoArray(mXULAppDir, kAppendPrefDir, directories);
LoadDirsIntoArray(mAppBundleDirectories, kAppendPrefDir, directories);
@ -82,12 +74,12 @@ diff -up firefox-60.5.0/toolkit/xre/nsXREDirProvider.cpp.1170092 firefox-60.5.0/
+ directories.AppendObject(systemPrefDir);
+ }
+
rv = NS_NewArrayEnumerator(aResult, directories);
rv = NS_NewArrayEnumerator(aResult, directories, NS_GET_IID(nsIFile));
} else if (!strcmp(aProperty, NS_APP_CHROME_DIR_LIST)) {
// NS_APP_CHROME_DIR_LIST is only used to get default (native) icons
diff -up firefox-60.5.0/xpcom/io/nsAppDirectoryServiceDefs.h.1170092 firefox-60.5.0/xpcom/io/nsAppDirectoryServiceDefs.h
--- firefox-60.5.0/xpcom/io/nsAppDirectoryServiceDefs.h.1170092 2019-01-22 10:48:38.188383609 +0100
+++ firefox-60.5.0/xpcom/io/nsAppDirectoryServiceDefs.h 2019-01-22 11:08:12.068459480 +0100
diff -up thunderbird-68.1.1/xpcom/io/nsAppDirectoryServiceDefs.h.1170092 thunderbird-68.1.1/xpcom/io/nsAppDirectoryServiceDefs.h
--- thunderbird-68.1.1/xpcom/io/nsAppDirectoryServiceDefs.h.1170092 2019-09-24 16:37:44.000000000 +0200
+++ thunderbird-68.1.1/xpcom/io/nsAppDirectoryServiceDefs.h 2019-10-03 11:27:33.907512077 +0200
@@ -62,6 +62,7 @@
#define NS_APP_PREFS_DEFAULTS_DIR_LIST "PrefDL"
#define NS_APP_PREFS_OVERRIDE_DIR \

View File

@ -1,27 +1,12 @@
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;
diff -up thunderbird-68.1.1/gfx/skia/skia/include/private/SkNx.h.1353817 thunderbird-68.1.1/gfx/skia/skia/include/private/SkNx.h
--- thunderbird-68.1.1/gfx/skia/skia/include/private/SkNx.h.1353817 2019-10-10 10:41:44.488904790 +0200
+++ thunderbird-68.1.1/gfx/skia/skia/include/private/SkNx.h 2019-10-10 10:42:24.553039632 +0200
@@ -416,7 +416,7 @@ typedef SkNx<8, uint32_t> Sk8u;
// 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"
#include "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"
#include "SkNx_neon.h"
#else
--
2.9.4

View File

@ -1,56 +0,0 @@
# HG changeset patch
# User Jed Davis <jld@mozilla.com>
# Date 1526943705 21600
# Node ID 6bb3adfa15c6877f7874429462dad88f8c978c4f
# Parent 4c71c8454879c841871ecf3afb7dbdc96bad97fc
Bug 1436242 - Avoid undefined behavior in IPC fd-passing code. r=froydnj
MozReview-Commit-ID: 3szIPUssgF5
diff --git a/ipc/chromium/src/chrome/common/ipc_channel_posix.cc b/ipc/chromium/src/chrome/common/ipc_channel_posix.cc
--- a/ipc/chromium/src/chrome/common/ipc_channel_posix.cc
+++ b/ipc/chromium/src/chrome/common/ipc_channel_posix.cc
@@ -418,20 +418,37 @@ bool Channel::ChannelImpl::ProcessIncomi
const int* fds;
unsigned num_fds;
unsigned fds_i = 0; // the index of the first unused descriptor
if (input_overflow_fds_.empty()) {
fds = wire_fds;
num_fds = num_wire_fds;
} else {
- const size_t prev_size = input_overflow_fds_.size();
- input_overflow_fds_.resize(prev_size + num_wire_fds);
- memcpy(&input_overflow_fds_[prev_size], wire_fds,
- num_wire_fds * sizeof(int));
+ // This code may look like a no-op in the case where
+ // num_wire_fds == 0, but in fact:
+ //
+ // 1. wire_fds will be nullptr, so passing it to memcpy is
+ // undefined behavior according to the C standard, even though
+ // the memcpy length is 0.
+ //
+ // 2. prev_size will be an out-of-bounds index for
+ // input_overflow_fds_; this is undefined behavior according to
+ // the C++ standard, even though the element only has its
+ // pointer taken and isn't accessed (and the corresponding
+ // operation on a C array would be defined).
+ //
+ // UBSan makes #1 a fatal error, and assertions in libstdc++ do
+ // the same for #2 if enabled.
+ if (num_wire_fds > 0) {
+ const size_t prev_size = input_overflow_fds_.size();
+ input_overflow_fds_.resize(prev_size + num_wire_fds);
+ memcpy(&input_overflow_fds_[prev_size], wire_fds,
+ num_wire_fds * sizeof(int));
+ }
fds = &input_overflow_fds_[0];
num_fds = input_overflow_fds_.size();
}
// The data for the message we're currently reading consists of any data
// stored in incoming_message_ followed by data in input_buf_ (followed by
// other messages).

View File

@ -1,164 +0,0 @@
diff -up thunderbird-60.2.1/comm/ldap/xpcom/public/nsILDAPOperation.idl.1460871-ldap-query thunderbird-60.2.1/comm/ldap/xpcom/public/nsILDAPOperation.idl
--- thunderbird-60.2.1/comm/ldap/xpcom/public/nsILDAPOperation.idl.1460871-ldap-query 2018-10-01 16:52:39.000000000 +0200
+++ thunderbird-60.2.1/comm/ldap/xpcom/public/nsILDAPOperation.idl 2018-10-04 09:40:04.491575949 +0200
@@ -52,6 +52,10 @@ interface nsILDAPOperation : nsISupports
* private parameter (anything caller desires)
*/
attribute nsISupports closure;
+ /**
+ * number of the request for compare that the request is still valid.
+ */
+ attribute unsigned long requestNum;
/**
* No time and/or size limit specified
diff -up thunderbird-60.2.1/comm/ldap/xpcom/src/nsLDAPOperation.cpp.1460871-ldap-query thunderbird-60.2.1/comm/ldap/xpcom/src/nsLDAPOperation.cpp
--- thunderbird-60.2.1/comm/ldap/xpcom/src/nsLDAPOperation.cpp.1460871-ldap-query 2018-10-01 16:52:39.000000000 +0200
+++ thunderbird-60.2.1/comm/ldap/xpcom/src/nsLDAPOperation.cpp 2018-10-04 09:40:04.491575949 +0200
@@ -400,6 +400,19 @@ convertControlArray(nsIArray *aXpcomArra
return NS_OK;
}
+ /* attribute unsigned long requestNum; */
+NS_IMETHODIMP nsLDAPOperation::GetRequestNum(uint32_t *aRequestNum)
+{
+ *aRequestNum = mRequestNum;
+ return NS_OK;
+}
+
+NS_IMETHODIMP nsLDAPOperation::SetRequestNum(uint32_t aRequestNum)
+{
+ mRequestNum = aRequestNum;
+ return NS_OK;
+}
+
NS_IMETHODIMP
nsLDAPOperation::SearchExt(const nsACString& aBaseDn, int32_t aScope,
const nsACString& aFilter,
diff -up thunderbird-60.2.1/comm/ldap/xpcom/src/nsLDAPOperation.h.1460871-ldap-query thunderbird-60.2.1/comm/ldap/xpcom/src/nsLDAPOperation.h
--- thunderbird-60.2.1/comm/ldap/xpcom/src/nsLDAPOperation.h.1460871-ldap-query 2018-10-01 16:52:39.000000000 +0200
+++ thunderbird-60.2.1/comm/ldap/xpcom/src/nsLDAPOperation.h 2018-10-04 09:40:04.491575949 +0200
@@ -36,6 +36,8 @@ class nsLDAPOperation : public nsILDAPOp
* used to break cycles
*/
void Clear();
+ // Stores the request number for later check of the operation is still valid
+ int32_t mRequestNum;
private:
virtual ~nsLDAPOperation();
diff -up thunderbird-60.2.1/comm/mailnews/addrbook/src/nsAbLDAPDirectoryQuery.cpp.1460871-ldap-query thunderbird-60.2.1/comm/mailnews/addrbook/src/nsAbLDAPDirectoryQuery.cpp
--- thunderbird-60.2.1/comm/mailnews/addrbook/src/nsAbLDAPDirectoryQuery.cpp.1460871-ldap-query 2018-10-01 16:52:43.000000000 +0200
+++ thunderbird-60.2.1/comm/mailnews/addrbook/src/nsAbLDAPDirectoryQuery.cpp 2018-10-04 09:40:55.334670404 +0200
@@ -22,6 +22,8 @@
using namespace mozilla;
+extern mozilla::LazyLogModule gLDAPLogModule; // defined in nsLDAPService.cpp
+
// nsAbLDAPListenerBase inherits nsILDAPMessageListener
class nsAbQueryLDAPMessageListener : public nsAbLDAPListenerBase
{
@@ -66,7 +68,6 @@ protected:
bool mFinished;
bool mCanceled;
- bool mWaitingForPrevQueryToFinish;
nsCOMPtr<nsIMutableArray> mServerSearchControls;
nsCOMPtr<nsIMutableArray> mClientSearchControls;
@@ -94,7 +95,6 @@ nsAbQueryLDAPMessageListener::nsAbQueryL
mResultLimit(resultLimit),
mFinished(false),
mCanceled(false),
- mWaitingForPrevQueryToFinish(false),
mServerSearchControls(serverSearchControls),
mClientSearchControls(clientSearchControls)
{
@@ -116,9 +116,6 @@ nsresult nsAbQueryLDAPMessageListener::C
return NS_OK;
mCanceled = true;
- if (!mFinished)
- mWaitingForPrevQueryToFinish = true;
-
return NS_OK;
}
@@ -129,6 +126,8 @@ NS_IMETHODIMP nsAbQueryLDAPMessageListen
int32_t messageType;
rv = aMessage->GetType(&messageType);
+ uint32_t requestNum;
+ mOperation->GetRequestNum(&requestNum);
NS_ENSURE_SUCCESS(rv, rv);
bool cancelOperation = false;
@@ -137,6 +136,14 @@ NS_IMETHODIMP nsAbQueryLDAPMessageListen
{
MutexAutoLock lock (mLock);
+ if (requestNum != sCurrentRequestNum) {
+ MOZ_LOG(gLDAPLogModule, mozilla::LogLevel::Debug,
+ ("nsAbQueryLDAPMessageListener::OnLDAPMessage: Ignoring message with "
+ "request num %d, current request num is %d.",
+ requestNum, sCurrentRequestNum));
+ return NS_OK;
+ }
+
if (mFinished)
return NS_OK;
@@ -166,11 +173,10 @@ NS_IMETHODIMP nsAbQueryLDAPMessageListen
rv = OnLDAPMessageSearchResult(aMessage);
break;
case nsILDAPMessage::RES_SEARCH_ENTRY:
- if (!mFinished && !mWaitingForPrevQueryToFinish)
+ if (!mFinished)
rv = OnLDAPMessageSearchEntry(aMessage);
break;
case nsILDAPMessage::RES_SEARCH_RESULT:
- mWaitingForPrevQueryToFinish = false;
rv = OnLDAPMessageSearchResult(aMessage);
NS_ENSURE_SUCCESS(rv, rv);
break;
@@ -207,6 +213,8 @@ nsresult nsAbQueryLDAPMessageListener::D
rv = mOperation->Init(mConnection, this, nullptr);
NS_ENSURE_SUCCESS(rv, rv);
+ mOperation->SetRequestNum(++sCurrentRequestNum);
+
nsAutoCString dn;
rv = mSearchUrl->GetDn(dn);
NS_ENSURE_SUCCESS(rv, rv);
diff -up thunderbird-60.2.1/comm/mailnews/addrbook/src/nsAbLDAPListenerBase.cpp.1460871-ldap-query thunderbird-60.2.1/comm/mailnews/addrbook/src/nsAbLDAPListenerBase.cpp
--- thunderbird-60.2.1/comm/mailnews/addrbook/src/nsAbLDAPListenerBase.cpp.1460871-ldap-query 2018-10-01 16:52:43.000000000 +0200
+++ thunderbird-60.2.1/comm/mailnews/addrbook/src/nsAbLDAPListenerBase.cpp 2018-10-04 09:40:04.492575951 +0200
@@ -20,6 +20,8 @@
using namespace mozilla;
+uint32_t nsAbLDAPListenerBase::sCurrentRequestNum = 0;
+
nsAbLDAPListenerBase::nsAbLDAPListenerBase(nsILDAPURL* url,
nsILDAPConnection* connection,
const nsACString &login,
@@ -249,6 +251,7 @@ NS_IMETHODIMP nsAbLDAPListenerBase::OnLD
InitFailed();
return rv;
}
+ mOperation->SetRequestNum(++sCurrentRequestNum);
// Try non-password mechanisms first
if (mSaslMechanism.EqualsLiteral("GSSAPI"))
diff -up thunderbird-60.2.1/comm/mailnews/addrbook/src/nsAbLDAPListenerBase.h.1460871-ldap-query thunderbird-60.2.1/comm/mailnews/addrbook/src/nsAbLDAPListenerBase.h
--- thunderbird-60.2.1/comm/mailnews/addrbook/src/nsAbLDAPListenerBase.h.1460871-ldap-query 2018-10-01 16:52:43.000000000 +0200
+++ thunderbird-60.2.1/comm/mailnews/addrbook/src/nsAbLDAPListenerBase.h 2018-10-04 09:40:04.492575951 +0200
@@ -47,6 +47,7 @@ protected:
int32_t mTimeOut;
bool mBound;
bool mInitialized;
+ static uint32_t sCurrentRequestNum;
mozilla::Mutex mLock;
};

View File

@ -1,11 +0,0 @@
--- a/layout/generic/nsIFrame.h.old 2016-07-11 13:41:39.688276559 +0200
+++ b/layout/generic/nsIFrame.h 2016-07-11 13:42:12.791406976 +0200
@@ -13,7 +13,7 @@
#error This header/class should only be used within Mozilla code. It should not be used by extensions.
#endif
-#define MAX_REFLOW_DEPTH 200
+#define MAX_REFLOW_DEPTH 1000
/* nsIFrame is in the process of being deCOMtaminated, i.e., this file is eventually
going to be eliminated, and all callers will use nsFrame instead. At the moment

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

@ -10,17 +10,16 @@ ac_add_options --enable-calendar
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-pie
ac_add_options --enable-default-toolkit=cairo-gtk3
ac_add_options --enable-release
ac_add_options --enable-startup-notification
ac_add_options --libdir="$LIBDIR"
ac_add_options --prefix="$PREFIX"
ac_add_options --without-system-libvpx
ac_add_options --with-pthreads
ac_add_options --with-system-jpeg
ac_add_options --with-system-zlib
ac_add_options --enable-update-channel=release
ac_add_options --disable-av1
export BUILD_OFFICIAL=1
export MOZILLA_OFFICIAL=1
mk_add_options BUILD_OFFICIAL=1

View File

@ -1,12 +0,0 @@
diff -up firefox-60.5.0/memory/build/mozjemalloc.cpp.jemalloc-ppc firefox-60.5.0/memory/build/mozjemalloc.cpp
--- firefox-60.5.0/memory/build/mozjemalloc.cpp.jemalloc-ppc 2019-01-22 10:25:30.764207480 +0100
+++ firefox-60.5.0/memory/build/mozjemalloc.cpp 2019-01-22 10:28:48.352235343 +0100
@@ -180,7 +180,7 @@ using namespace mozilla;
// Debug builds are opted out too, for test coverage.
#ifndef MOZ_DEBUG
#if !defined(__ia64__) && !defined(__sparc__) && !defined(__mips__) && \
- !defined(__aarch64__)
+ !defined(__aarch64__) && !defined(__powerpc__)
#define MALLOC_STATIC_PAGESIZE 1
#endif
#endif

View File

@ -1,11 +1,19 @@
%global debug_build 0
# Set for local builds only
%global disable_toolsets 0
%global official_branding 1
%global system_ffi 1
%global system_libicu 0
%global system_libvpx 0
%global system_nss 1
%global system_sqlite 0
%global 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 build_langpacks 1
%define use_bundled_ffi 0
%define use_bundled_python 1
@ -13,6 +21,11 @@
%global system_jpeg 1
%global hardened_build 1
%global use_dts 1
%if 0%{?rhel} == 8
%global use_llvmts 0
%else
%global use_llvmts 1
%endif
%define bundled_python_version 2.7.13
%global cairo_version 1.10.2
@ -21,22 +34,31 @@
%global gcc_version 4.8.2-16
%global python_version 2.7.8
%global sqlite_version 3.8.4.2
%global nspr_version 4.13.1
%global nss_version 3.28.4
%global nspr_version 4.21
%global nss_version 3.44
%if 0%{?rhel} == 7
%define use_bundled_python 0
%endif
%if 0%{?rhel} < 8
%global use_rustts 1
%global dts_version 8
%global rust_version 1.31
%global rust_toolset_version 1.35
%global llvm_version 7.0
%if 0%{?rhel} == 8
%global llvm_version 6.0
%endif
%global dts_version 7
%global rst_version 7
%global llvm_version 7
%if 0%{?disable_toolsets}
%global use_rustts 0
%global use_dts 0
%global use_llvmts 0
%endif
%if 0%{?rhel} == 8
%global use_dts 0
%global rst_version 1.26
%global llvm_version 6.0
%endif
%define gtk3_nvr 3.22.26-1
@ -63,6 +85,16 @@
%global sqlite_build_version %(pkg-config --silence-errors --modversion sqlite3 2>/dev/null || echo 65536)
%endif
%define bundled_python_version_2 2.7.13
%define bundled_python_version_3 3.6.8
%define use_bundled_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
@ -91,8 +123,8 @@
Summary: Mozilla Thunderbird mail/newsgroup client
Name: thunderbird
Version: 60.7.0
Release: 1%{?dist}
Version: 68.3.0
Release: 2%{?dist}
URL: http://www.mozilla.org/projects/thunderbird/
License: MPLv1.1 or GPLv2+ or LGPLv2+
Group: Applications/Internet
@ -107,19 +139,22 @@ ExclusiveArch: i686 x86_64 ppc64 s390x
# From ftp://archive.mozilla.org/pub/thunderbird/releases/%{version}%{?ext_version}/source
Source0: https://archive.mozilla.org/pub/thunderbird/releases/%{version}%{?pre_version}/source/thunderbird-%{version}%{?pre_version}.source.tar.xz
%if %{build_langpacks}
Source1: thunderbird-langpacks-%{version}%{?ext_version}-20190520.tar.xz
Source1: thunderbird-langpacks-%{version}%{?ext_version}-20191202.tar.xz
# Locales for lightning
Source2: lightning-langpacks-%{version}.tar.xz
%endif
Source3: get-calendar-langpacks.sh
Source4: cbindgen-vendor.tar.xz
Source10: thunderbird-mozconfig
Source20: thunderbird.desktop
Source21: thunderbird.sh.in
Source24: mozilla-api-key
Source27: google-api-key
#TODO
Source101: find-external-requires
Source28: node-stdout-nonblocking-wrapper
Source100: https://www.python.org/ftp/python/%{bundled_python_version_2}/Python-%{bundled_python_version_2}.tar.xz
Source101: https://www.python.org/ftp/python/%{bundled_python_version_3}/Python-%{bundled_python_version_3}.tar.xz
Source102: find-external-requires
Source200: gtk3-private-%{gtk3_nvr}.el6.src.rpm
Source201: gtk3-private-%{gtk3_nvr}-post.inc
Source202: gtk3-private-%{gtk3_nvr}-postun.inc
@ -129,27 +164,33 @@ 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
Source601: thunderbird-redhat-default-prefs.js.rhel6
Source701: thunderbird-redhat-default-prefs.js.rhel7
#Python 2.7
Source100: https://www.python.org/ftp/python/%{bundled_python_version}/Python-%{bundled_python_version}.tar.xz
## Firefox patches
# Build patches
Patch3: mozilla-build-arm.patch
# workaround for https://bugzilla.redhat.com/show_bug.cgi?id=1699374
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
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
# Always feel lucky for unsupported platforms:
# https://bugzilla.mozilla.org/show_bug.cgi?id=1347128
Patch37: build-jit-atomic-always-lucky.patch
Patch40: build-aarch64-skia.patch
Patch41: build-debug-qcms.patch
Patch43: xulrunner-24.0-jemalloc-ppc.patch
Patch45: build-disable-elfhack.patch
# Fedora/RHEL specific patches
@ -158,19 +199,19 @@ Patch219: rhbz-1173156.patch
Patch224: mozilla-1170092.patch
Patch225: mozilla-1005640-accept-lang.patch
#ARM run-time patch
Patch226: rhbz-1354671.patch
Patch230: rhbz-1503632-nss.patch
Patch1000: python-2.7.patch
Patch1004: firefox-rhel6-nss-tls1.3.patch
Patch232: firefox-rhel6-hugepage.patch
# Upstream patches
Patch402: mozilla-1196777.patch
Patch406: mozilla-256180.patch
Patch413: mozilla-1353817.patch
Patch415: mozilla-1436242.patch
Patch416: mozilla-1460871-ldap-query.patch
#Removing this patch would lead to losing user saved credentials in profile!
## Thunderbird patches
Patch501: python-encode.patch
# ---------------------------------------------------
BuildRequires: autoconf213
@ -217,7 +258,7 @@ BuildRequires: devtoolset-%{dts_version}-gcc-c++
BuildRequires: devtoolset-%{dts_version}-gcc
BuildRequires: devtoolset-%{dts_version}-binutils
BuildRequires: devtoolset-%{dts_version}-libatomic-devel
%if 0%{?rhel} == 7
%if 0%{?use_llvmts}
BuildRequires: llvm-toolset-%{llvm_version}
BuildRequires: llvm-toolset-%{llvm_version}-llvm-devel
%endif
@ -225,22 +266,31 @@ BuildRequires: llvm-toolset-%{llvm_version}-llvm-devel
%if ! %{use_bundled_yasm}0
BuildRequires: yasm
%endif
BuildRequires: scl-utils
%if %{?system_sqlite}
BuildRequires: sqlite-devel >= %{sqlite_version}
Requires: sqlite >= %{sqlite_build_version}
%endif
%if 0%{?use_rustts}
BuildRequires: rust-toolset-%{rst_version}-cargo
BuildRequires: rust-toolset-%{rst_version}-rust
%endif
%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: python3
BuildRequires: nodejs >= 8.11
%else
%if 0%{?use_rustts}
BuildRequires: rust-toolset-%{rust_toolset_version}
%endif
%if 0%{?use_bundled_python}
%if 0%{?use_llvmts}
BuildRequires: llvm-toolset-%{llvm_version}
BuildRequires: llvm-toolset-%{llvm_version}-llvm-devel
%endif
%endif
%if 0%{?use_bundled_python_2}
#%if 0%{?rhel} == 6
# Needed for Python in RHEL6
BuildRequires: openssl-devel
@ -296,10 +346,6 @@ Requires: nspr >= %{nspr_version}
Requires: nss >= %{nss_version}
%endif
%if 0%{?rhel} < 8
BuildRequires: python2-devel
%endif
%if %{?system_sqlite}
BuildRequires: pkgconfig(sqlite3) >= %{sqlite_version}
Requires: sqlite >= %{sqlite_build_version}
@ -323,32 +369,50 @@ Mozilla Thunderbird is a standalone mail and newsgroup client.
%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}
# Firefox patches
%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
%if %{?debug_build}
%patch41 -p1 -b .build-debug-qcms
%endif
%patch43 -p1 -b .jemalloc-ppc
%if 0%{?rhel} == 8
#%if 0%{?rhel} == 8
%patch45 -p1 -b .elfhack
%endif
#%endif
%patch3 -p1 -b .arm
#%patch3 -p1 -b .arm
%patch4 -p1 -b .build-mozconfig-fix
%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
#FIXME %patch224 -p1 -b .1170092
%patch225 -p1 -b .1005640-accept-lang
%if 0%{?rhel} == 6
%patch232 -p1 -b .hugepage
%patch1004 -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
@ -358,14 +422,10 @@ Mozilla Thunderbird is a standalone mail and newsgroup client.
#ARM run-time patch
%ifarch aarch64
%patch226 -p1 -b .1354671
%endif
%patch402 -p1 -b .1196777
%patch406 -p1 -b .256180
%patch413 -p1 -b .1353817
%patch415 -p1 -b .1436242
%patch416 -p1 -b .1460871-ldap-query
#%patch413 -p1 -b .1353817
# Patch for big endian platforms only
%if 0%{?big_endian}
@ -373,6 +433,8 @@ Mozilla Thunderbird is a standalone mail and newsgroup client.
%endif
# Thunderbird patches
%patch501 -p1 -b .python-encode
%patch1001 -p1 -b .ppc64le-inline
%{__rm} -f .mozconfig
%{__cp} %{SOURCE10} .mozconfig
@ -408,7 +470,7 @@ function add_to_mozconfig() {
%if 0%{?system_ffi}
add_to_mozconfig "with-system-ffi"
%endif
%ifarch %{arm}
%ifarch %{arm} %{ix86} x86_64
add_to_mozconfig "disable-elf-hack"
%endif
@ -459,23 +521,19 @@ 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
# install lightning langpacks
cd ..
%{__xz} -dc %{SOURCE2} | %{__tar} xf -
cd -
#===============================================================================
%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}
@ -507,7 +565,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}
@ -529,20 +587,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
}
@ -552,13 +617,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
@ -566,18 +629,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}
@ -593,7 +644,92 @@ function build_bundled_package() {
%endif
%filter_setup
# If needed build the bundled python 2.7 and 3.6 and put it in the PATH
%if 0%{?use_bundled_python_3}
pushd %{_builddir}/python3/Python-%{bundled_python_version_3}
./configure --prefix="%{_buildrootdir}" --exec-prefix="%{_buildrootdir}" --libdir="%{_buildrootdir}/lib" --with-pydebug
make %{?_smp_mflags} install V=1 -j1
cp Tools/scripts/pathfix.py %{_buildrootdir}/bin
popd
%endif
%if 0%{?use_bundled_python_2}
pushd %{_builddir}/python2/Python-%{bundled_python_version_2}
./configure --prefix="%{_buildrootdir}" --exec-prefix="%{_buildrootdir}" --libdir="%{_buildrootdir}/lib"
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
# GTK3 <<
# 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 %{SOURCE4}
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:
@ -606,30 +742,18 @@ function build_bundled_package() {
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 "Building Thunderbird"; echo "==============================="
#cd %{tarballdir}
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
# ./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 {} ';'
@ -646,6 +770,12 @@ MOZ_OPT_FLAGS=$(echo "%{optflags}" | %{__sed} -e 's/-Wall//')
# for some sources
# Explicitly force the hardening flags for Firefox so it passes the checksec test;
# See also https://fedoraproject.org/wiki/Changes/Harden_All_Packages
%if 0%{?fedora} < 30
MOZ_OPT_FLAGS="$MOZ_OPT_FLAGS -Wformat-security -Wformat -Werror=format-security"
%else
# Workaround for mozbz#1531309
MOZ_OPT_FLAGS=$(echo "$MOZ_OPT_FLAGS" | %{__sed} -e 's/-Werror=format-security//')
%endif
MOZ_OPT_FLAGS="$MOZ_OPT_FLAGS -Wformat-security -Wformat -Werror=format-security"
%if 0%{?fedora} > 23
# Disable null pointer gcc6 optimization in gcc6 (rhbz#1328045)
@ -678,27 +808,22 @@ MOZ_OPT_FLAGS=$(echo "$MOZ_OPT_FLAGS" | %{__sed} -e 's/-g/-g1/')
# (OOM when linking, rhbz#1238225)
export MOZ_DEBUG_FLAGS=" "
%endif
%ifarch s390 %{arm} ppc aarch64 i686
MOZ_LINK_FLAGS="-Wl,--no-keep-memory -Wl,--reduce-memory-overheads"
%endif
%ifarch %{arm}
export RUSTFLAGS="-Cdebuginfo=0"
%endif
export CFLAGS=$MOZ_OPT_FLAGS
export CXXFLAGS=$MOZ_OPT_FLAGS
export LDFLAGS=$MOZ_LINK_FLAGS
export PREFIX='%{_prefix}'
export LIBDIR='%{_libdir}'
# Hack for missing shell when building in brew on RHEL6 and RHEL5
%if 0%{?rhel} <= 6
export SHELL=/bin/sh
%endif
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`"
@ -706,6 +831,7 @@ 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
@ -715,9 +841,6 @@ MOZ_SMP_FLAGS=-j1
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
#---------------------------------------------------------------------
@ -889,6 +1012,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 || :
@ -937,8 +1062,6 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
%{mozappdir}/plugin-container
%{mozappdir}/defaults
%{mozappdir}/dictionaries
%dir %{mozappdir}/extensions
%{mozappdir}/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi
%{mozappdir}/greprefs
%{mozappdir}/isp
%{mozappdir}/thunderbird-bin
@ -963,7 +1086,8 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
%{mozappdir}/dependentlibs.list
%{mozappdir}/distribution
%{mozappdir}/chrome.manifest
%{mozappdir}/fonts/EmojiOneMozilla.ttf
%{mozappdir}/fonts/TwemojiMozilla.ttf
%if !%{?system_libicu}
#%{mozappdir}/icudt*.dat
%endif
@ -987,6 +1111,37 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
#===============================================================================
%changelog
* Mon Dec 02 2019 Jan Horak <jhorak@redhat.com> - 68.3.0-2
- Update to 68.3.0 build2
* Fri Oct 25 2019 Jan Horak <jhorak@redhat.com> - 68.2.0-2
- Added patch for TLS 1.3 support.
* Tue Oct 22 2019 Jan Horak <jhorak@redhat.com> - 68.2.0-1
- Update to 68.2.0
* Thu Oct 3 2019 Jan Horak <jhorak@redhat.com> - 68.1.1-2
- Update to 68.1.1
* Wed Sep 4 2019 Jan Horak <jhorak@redhat.com> - 60.9.0-2
- Update to 60.9.0
* Thu Jul 4 2019 Martin Stransky <stransky@redhat.com> - 60.8.0-1
- Updated to 60.8.0
* Wed Jul 3 2019 Martin Stransky <stransky@redhat.com> - 60.7.2-3
- Rebuild to fix rhbz#1725919 - Thunderbird fails to authenticate
with gmail with ssl/tls and OAuth2.
* Fri Jun 21 2019 Jan Horak <jhorak@redhat.com> - 60.7.2-2
- Update to 60.7.2 build2
* Thu Jun 20 2019 Jan Horak <jhorak@redhat.com> - 60.7.2-1
- Update to 60.7.2
* Tue Jun 18 2019 Jan Horak <jhorak@redhat.com> - 60.7.1-1
- Update to 60.7.1
* Mon May 27 2019 Martin Stransky <stransky@redhat.com> - 60.7.0-1
- Update to 60.7.0