Compare commits

...

No commits in common. "imports/c8-beta/thunderbird-68.3.0-2.el8_1" and "c8" have entirely different histories.

64 changed files with 2776 additions and 3017 deletions

15
.gitignore vendored
View File

@ -1,11 +1,6 @@
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-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
SOURCES/nspr-4.35.0-1.el8_1.src.rpm
SOURCES/nss-3.90.0-2.el8_1.src.rpm
SOURCES/nss-3.90.0-3.el9_0.src.rpm
SOURCES/thunderbird-115.9.0.processed-source.tar.xz
SOURCES/thunderbird-langpacks-115.9.0-20240318.tar.xz

View File

@ -1,11 +1,6 @@
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
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
b963b16f6879c5dbe6e33a3a3da058b494453922 SOURCES/cbindgen-vendor.tar.xz
d744f92e874688cc4b5376477dfdd639a97a6cd4 SOURCES/nspr-4.35.0-1.el8_1.src.rpm
39d1004f8948186cdaa33bbb90423f6f994bdf6c SOURCES/nss-3.90.0-2.el8_1.src.rpm
df0dd588680f6ade6728a1fd3ff2d71e7a46255d SOURCES/nss-3.90.0-3.el9_0.src.rpm
cb287fa47bd8bdff66aacb2143a3c244250bae88 SOURCES/thunderbird-115.9.0.processed-source.tar.xz
12f6297fbc364c63712e13e30d289b37840a865f SOURCES/thunderbird-langpacks-115.9.0-20240318.tar.xz

View File

@ -0,0 +1,127 @@
From 263682c9a29395055f3b3afe2d97be1828a6223f Mon Sep 17 00:00:00 2001
From: Jerome Jiang <jianj@google.com>
Date: Thu, 30 Jun 2022 13:48:56 -0400
Subject: [PATCH] Fix bug with smaller width bigger size
Fixed previous patch that clusterfuzz failed on.
Bug: webm:1642
Change-Id: If0e08e72abd2e042efe4dcfac21e4cc51afdfdb9
---
test/resize_test.cc | 11 +++--------
vp9/common/vp9_alloccommon.c | 13 ++++++-------
vp9/encoder/vp9_encoder.c | 27 +++++++++++++++++++++++++--
3 files changed, 34 insertions(+), 17 deletions(-)
diff --git a/test/resize_test.cc b/test/resize_test.cc
index fd1c2a92de6..20ad2229b46 100644
--- a/test/resize_test.cc
+++ b/test/resize_test.cc
@@ -102,11 +102,8 @@ void ScaleForFrameNumber(unsigned int frame, unsigned int initial_w,
if (frame < 30) {
return;
}
- if (frame < 100) {
- *w = initial_w * 7 / 10;
- *h = initial_h * 16 / 10;
- return;
- }
+ *w = initial_w * 7 / 10;
+ *h = initial_h * 16 / 10;
return;
}
if (frame < 10) {
@@ -559,9 +556,7 @@ TEST_P(ResizeRealtimeTest, TestExternalResizeWorks) {
}
}
-// TODO(https://crbug.com/webm/1642): This causes a segfault in
-// init_encode_frame_mb_context().
-TEST_P(ResizeRealtimeTest, DISABLED_TestExternalResizeSmallerWidthBiggerSize) {
+TEST_P(ResizeRealtimeTest, TestExternalResizeSmallerWidthBiggerSize) {
ResizingVideoSource video;
video.flag_codec_ = true;
video.smaller_width_larger_size_ = true;
diff --git a/vp9/common/vp9_alloccommon.c b/vp9/common/vp9_alloccommon.c
index e53883f621d..9e73e40ea09 100644
--- a/vp9/common/vp9_alloccommon.c
+++ b/vp9/common/vp9_alloccommon.c
@@ -135,13 +135,6 @@ int vp9_alloc_context_buffers(VP9_COMMON *cm, int width, int height) {
cm->free_mi(cm);
if (cm->alloc_mi(cm, new_mi_size)) goto fail;
}
-
- if (cm->seg_map_alloc_size < cm->mi_rows * cm->mi_cols) {
- // Create the segmentation map structure and set to 0.
- free_seg_map(cm);
- if (alloc_seg_map(cm, cm->mi_rows * cm->mi_cols)) goto fail;
- }
-
if (cm->above_context_alloc_cols < cm->mi_cols) {
vpx_free(cm->above_context);
cm->above_context = (ENTROPY_CONTEXT *)vpx_calloc(
@@ -156,6 +149,12 @@ int vp9_alloc_context_buffers(VP9_COMMON *cm, int width, int height) {
cm->above_context_alloc_cols = cm->mi_cols;
}
+ if (cm->seg_map_alloc_size < cm->mi_rows * cm->mi_cols) {
+ // Create the segmentation map structure and set to 0.
+ free_seg_map(cm);
+ if (alloc_seg_map(cm, cm->mi_rows * cm->mi_cols)) goto fail;
+ }
+
if (vp9_alloc_loop_filter(cm)) goto fail;
return 0;
diff --git a/vp9/encoder/vp9_encoder.c b/vp9/encoder/vp9_encoder.c
index 69a4e3c314f..e3ba294c32f 100644
--- a/vp9/encoder/vp9_encoder.c
+++ b/vp9/encoder/vp9_encoder.c
@@ -2047,6 +2047,17 @@ static void alloc_copy_partition_data(VP9_COMP *cpi) {
}
}
+static void free_copy_partition_data(VP9_COMP *cpi) {
+ vpx_free(cpi->prev_partition);
+ cpi->prev_partition = NULL;
+ vpx_free(cpi->prev_segment_id);
+ cpi->prev_segment_id = NULL;
+ vpx_free(cpi->prev_variance_low);
+ cpi->prev_variance_low = NULL;
+ vpx_free(cpi->copied_frame_cnt);
+ cpi->copied_frame_cnt = NULL;
+}
+
void vp9_change_config(struct VP9_COMP *cpi, const VP9EncoderConfig *oxcf) {
VP9_COMMON *const cm = &cpi->common;
RATE_CONTROL *const rc = &cpi->rc;
@@ -2126,6 +2137,8 @@ void vp9_change_config(struct VP9_COMP *cpi, const VP9EncoderConfig *oxcf) {
new_mi_size = cm->mi_stride * calc_mi_size(cm->mi_rows);
if (cm->mi_alloc_size < new_mi_size) {
vp9_free_context_buffers(cm);
+ vp9_free_pc_tree(&cpi->td);
+ vpx_free(cpi->mbmi_ext_base);
alloc_compressor_data(cpi);
realloc_segmentation_maps(cpi);
cpi->initial_width = cpi->initial_height = 0;
@@ -2144,8 +2157,18 @@ void vp9_change_config(struct VP9_COMP *cpi, const VP9EncoderConfig *oxcf) {
update_frame_size(cpi);
if (last_w != cpi->oxcf.width || last_h != cpi->oxcf.height) {
- memset(cpi->consec_zero_mv, 0,
- cm->mi_rows * cm->mi_cols * sizeof(*cpi->consec_zero_mv));
+ vpx_free(cpi->consec_zero_mv);
+ CHECK_MEM_ERROR(
+ &cm->error, cpi->consec_zero_mv,
+ vpx_calloc(cm->mi_rows * cm->mi_cols, sizeof(*cpi->consec_zero_mv)));
+
+ vpx_free(cpi->skin_map);
+ CHECK_MEM_ERROR(
+ &cm->error, cpi->skin_map,
+ vpx_calloc(cm->mi_rows * cm->mi_cols, sizeof(cpi->skin_map[0])));
+
+ free_copy_partition_data(cpi);
+ alloc_copy_partition_data(cpi);
if (cpi->oxcf.aq_mode == CYCLIC_REFRESH_AQ)
vp9_cyclic_refresh_reset_resize(cpi);
rc->rc_1_frame = 0;

View File

@ -0,0 +1,57 @@
diff -up firefox-102.0/third_party/libwebrtc/common_audio/wav_file.cc.big-endian-errors firefox-102.0/third_party/libwebrtc/common_audio/wav_file.cc
--- firefox-102.0/third_party/libwebrtc/common_audio/wav_file.cc.big-endian-errors 2022-08-17 13:19:53.056891028 +0200
+++ firefox-102.0/third_party/libwebrtc/common_audio/wav_file.cc 2022-08-17 13:19:57.251879556 +0200
@@ -89,9 +89,6 @@ void WavReader::Reset() {
size_t WavReader::ReadSamples(const size_t num_samples,
int16_t* const samples) {
-#ifndef WEBRTC_ARCH_LITTLE_ENDIAN
-#error "Need to convert samples to big-endian when reading from WAV file"
-#endif
size_t num_samples_left_to_read = num_samples;
size_t next_chunk_start = 0;
@@ -129,9 +126,6 @@ size_t WavReader::ReadSamples(const size
}
size_t WavReader::ReadSamples(const size_t num_samples, float* const samples) {
-#ifndef WEBRTC_ARCH_LITTLE_ENDIAN
-#error "Need to convert samples to big-endian when reading from WAV file"
-#endif
size_t num_samples_left_to_read = num_samples;
size_t next_chunk_start = 0;
@@ -213,9 +207,6 @@ WavWriter::WavWriter(FileWrapper file,
}
void WavWriter::WriteSamples(const int16_t* samples, size_t num_samples) {
-#ifndef WEBRTC_ARCH_LITTLE_ENDIAN
-#error "Need to convert samples to little-endian when writing to WAV file"
-#endif
for (size_t i = 0; i < num_samples; i += kMaxChunksize) {
const size_t num_remaining_samples = num_samples - i;
@@ -243,9 +234,6 @@ void WavWriter::WriteSamples(const int16
}
void WavWriter::WriteSamples(const float* samples, size_t num_samples) {
-#ifndef WEBRTC_ARCH_LITTLE_ENDIAN
-#error "Need to convert samples to little-endian when writing to WAV file"
-#endif
for (size_t i = 0; i < num_samples; i += kMaxChunksize) {
const size_t num_remaining_samples = num_samples - i;
diff -up firefox-102.0/third_party/libwebrtc/common_audio/wav_header.cc.big-endian-errors firefox-102.0/third_party/libwebrtc/common_audio/wav_header.cc
--- firefox-102.0/third_party/libwebrtc/common_audio/wav_header.cc.big-endian-errors 2022-08-17 13:18:04.688187393 +0200
+++ firefox-102.0/third_party/libwebrtc/common_audio/wav_header.cc 2022-08-17 13:18:22.451138816 +0200
@@ -26,10 +26,6 @@
namespace webrtc {
namespace {
-#ifndef WEBRTC_ARCH_LITTLE_ENDIAN
-#error "Code not working properly for big endian platforms."
-#endif
-
#pragma pack(2)
struct ChunkHeader {
uint32_t ID;

View File

@ -1,84 +0,0 @@
diff -up firefox-60.0/gfx/skia/skia/include/core/SkColorPriv.h.big-endian firefox-60.0/gfx/skia/skia/include/core/SkColorPriv.h
--- firefox-60.0/gfx/skia/skia/include/core/SkColorPriv.h.big-endian 2018-04-09 22:50:48.000000000 +0200
+++ firefox-60.0/gfx/skia/skia/include/core/SkColorPriv.h 2018-04-18 11:51:38.748680174 +0200
@@ -54,18 +54,19 @@ static inline U8CPU SkUnitScalarClampToB
*
* Here we enforce this constraint.
*/
-
+/*
#ifdef SK_CPU_BENDIAN
#define SK_RGBA_R32_SHIFT 24
#define SK_RGBA_G32_SHIFT 16
#define SK_RGBA_B32_SHIFT 8
#define SK_RGBA_A32_SHIFT 0
#else
+*/
#define SK_RGBA_R32_SHIFT 0
#define SK_RGBA_G32_SHIFT 8
#define SK_RGBA_B32_SHIFT 16
#define SK_RGBA_A32_SHIFT 24
-#endif
+/*#endif*/
#define SkGetPackedA32(packed) ((uint32_t)((packed) << (24 - SK_A32_SHIFT)) >> 24)
#define SkGetPackedR32(packed) ((uint32_t)((packed) << (24 - SK_R32_SHIFT)) >> 24)
diff -up firefox-60.0/gfx/skia/skia/include/core/SkImageInfo.h.big-endian firefox-60.0/gfx/skia/skia/include/core/SkImageInfo.h
--- firefox-60.0/gfx/skia/skia/include/core/SkImageInfo.h.big-endian 2018-04-09 22:50:48.000000000 +0200
+++ firefox-60.0/gfx/skia/skia/include/core/SkImageInfo.h 2018-04-18 11:51:38.748680174 +0200
@@ -84,7 +84,8 @@ enum SkColorType {
#elif SK_PMCOLOR_BYTE_ORDER(R,G,B,A)
kN32_SkColorType = kRGBA_8888_SkColorType,
#else
- #error "SK_*32_SHIFT values must correspond to BGRA or RGBA byte order"
+ //#error "SK_*32_SHIFT values must correspond to BGRA or RGBA byte order"
+ kN32_SkColorType = kBGRA_8888_SkColorType
#endif
};
diff -up firefox-60.0/gfx/skia/skia/include/gpu/GrTypes.h.big-endian firefox-60.0/gfx/skia/skia/include/gpu/GrTypes.h
--- firefox-60.0/gfx/skia/skia/include/gpu/GrTypes.h.big-endian 2018-04-09 22:50:48.000000000 +0200
+++ firefox-60.0/gfx/skia/skia/include/gpu/GrTypes.h 2018-04-18 11:51:38.748680174 +0200
@@ -344,15 +344,13 @@ enum GrPixelConfig {
static const int kGrPixelConfigCnt = kLast_GrPixelConfig + 1;
// Aliases for pixel configs that match skia's byte order.
-#ifndef SK_CPU_LENDIAN
- #error "Skia gpu currently assumes little endian"
-#endif
#if SK_PMCOLOR_BYTE_ORDER(B,G,R,A)
static const GrPixelConfig kSkia8888_GrPixelConfig = kBGRA_8888_GrPixelConfig;
#elif SK_PMCOLOR_BYTE_ORDER(R,G,B,A)
static const GrPixelConfig kSkia8888_GrPixelConfig = kRGBA_8888_GrPixelConfig;
#else
- #error "SK_*32_SHIFT values must correspond to GL_BGRA or GL_RGBA format."
+ static const GrPixelConfig kSkia8888_GrPixelConfig = kBGRA_8888_GrPixelConfig;
+ static const GrPixelConfig kSkiaGamma8888_GrPixelConfig = kSBGRA_8888_GrPixelConfig;
#endif
/**
diff -up firefox-60.0/gfx/skia/skia/src/core/SkColorData.h.big-endian firefox-60.0/gfx/skia/skia/src/core/SkColorData.h
--- firefox-60.0/gfx/skia/skia/src/core/SkColorData.h.big-endian 2018-04-18 13:42:06.980476156 +0200
+++ firefox-60.0/gfx/skia/skia/src/core/SkColorData.h 2018-04-18 13:42:50.493520552 +0200
@@ -31,18 +31,19 @@
*
* Here we enforce this constraint.
*/
-
+/*
#ifdef SK_CPU_BENDIAN
#define SK_BGRA_B32_SHIFT 24
#define SK_BGRA_G32_SHIFT 16
#define SK_BGRA_R32_SHIFT 8
#define SK_BGRA_A32_SHIFT 0
#else
+*/
#define SK_BGRA_B32_SHIFT 0
#define SK_BGRA_G32_SHIFT 8
#define SK_BGRA_R32_SHIFT 16
#define SK_BGRA_A32_SHIFT 24
-#endif
+//#endif
#if defined(SK_PMCOLOR_IS_RGBA) && defined(SK_PMCOLOR_IS_BGRA)
#error "can't define PMCOLOR to be RGBA and BGRA"

View File

@ -1,12 +0,0 @@
diff -up firefox-60.0/gfx/qcms/transform-altivec.c.debug firefox-60.0/gfx/qcms/transform-altivec.c
--- firefox-60.0/gfx/qcms/transform-altivec.c.debug 2018-05-15 09:26:43.603043100 +0200
+++ firefox-60.0/gfx/qcms/transform-altivec.c 2018-05-15 09:28:57.302385632 +0200
@@ -30,7 +30,7 @@
static const ALIGN float floatScaleX4 = FLOATSCALE;
static const ALIGN float clampMaxValueX4 = CLAMPMAXVAL;
-inline vector float load_aligned_float(float *dataPtr)
+static vector float load_aligned_float(float *dataPtr)
{
vector float data = vec_lde(0, dataPtr);
vector unsigned char moveToStart = vec_lvsl(0, dataPtr);

View File

@ -1,12 +1,12 @@
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')
diff -up firefox-115.0.2/toolkit/moz.configure.disable-elfhack firefox-115.0.2/toolkit/moz.configure
--- firefox-115.0.2/toolkit/moz.configure.disable-elfhack 2023-07-18 12:21:22.507358334 +0200
+++ firefox-115.0.2/toolkit/moz.configure 2023-07-18 12:52:55.972727498 +0200
@@ -1520,7 +1520,7 @@ with only_when("--enable-compile-environ
"Cannot enable elfhack with lld."
" Use --enable-linker=bfd, --enable-linker=gold, or --disable-elf-hack"
)
- return True
+ return False
set_config('USE_ELF_HACK',
- depends_if('--enable-elf-hack')(lambda _: True))
+ depends_if('--enable-elf-hack')(lambda _: False))
set_config("USE_ELF_HACK", use_elf_hack)
@depends(check_build_environment)

View File

@ -1,12 +0,0 @@
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"
fi
AC_SUBST(MOZ_ICU_VERSION)

View File

@ -1,12 +0,0 @@
diff -up mozilla-release-c61f5f5ead48c78a80c80db5c489bdc7cfaf8175/python/mozbuild/mozbuild/mozconfig.py.mozconfig-fix mozilla-release-c61f5f5ead48c78a80c80db5c489bdc7cfaf8175/python/mozbuild/mozbuild/mozconfig.py
--- mozilla-release-c61f5f5ead48c78a80c80db5c489bdc7cfaf8175/python/mozbuild/mozbuild/mozconfig.py.mozconfig-fix 2018-03-13 17:22:19.018466884 +0100
+++ mozilla-release-c61f5f5ead48c78a80c80db5c489bdc7cfaf8175/python/mozbuild/mozbuild/mozconfig.py 2018-03-13 17:23:57.379559640 +0100
@@ -446,7 +446,7 @@ class MozconfigLoader(object):
value = value[1:]
# Lines with a quote not ending in a quote are multi-line.
- if has_quote and not value.endswith("'"):
+ if has_quote and not value.endswith(("'", ";")):
in_variable = name
current.append(value)
continue

View File

@ -1,12 +0,0 @@
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.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
NSS_CFLAGS="$NSS_CFLAGS -I${DIST}/include/nss"

View File

@ -0,0 +1,12 @@
diff -up firefox-115.0.2/security/nss/lib/freebl/sha512-p8.s.ppc-abiv2 firefox-115.0.2/security/nss/lib/freebl/sha512-p8.s
--- firefox-115.0.2/security/nss/lib/freebl/sha512-p8.s.ppc-abiv2 2023-07-25 09:01:42.602375809 +0200
+++ firefox-115.0.2/security/nss/lib/freebl/sha512-p8.s 2023-07-25 09:01:48.273373924 +0200
@@ -3,7 +3,7 @@
# See the full LICENSE under scripts/.
.machine "any"
-.abiversion 2
+.abiversion 1
.text
.globl sha512_block_p8

View File

@ -1,27 +0,0 @@
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,11 @@
--- firefox-115.8.0/python/mozbuild/mozbuild/nodeutil.py.lower-node-min-version 2024-02-12 21:53:56.000000000 +0200
+++ firefox-115.8.0/python/mozbuild/mozbuild/nodeutil.py 2024-02-14 16:48:12.476182627 +0200
@@ -13,7 +13,7 @@ from mozboot.util import get_tools_dir
from packaging.version import Version
from six import PY3
-NODE_MIN_VERSION = Version("12.22.12")
+NODE_MIN_VERSION = Version("10.24.0")
NPM_MIN_VERSION = Version("6.14.16")

View File

@ -0,0 +1,12 @@
diff -up firefox-91.0.1/python/mozbuild/mozbuild/frontend/context.py.rhel7-nasm firefox-91.0.1/python/mozbuild/mozbuild/frontend/context.py
--- firefox-91.0.1/python/mozbuild/mozbuild/frontend/context.py.rhel7-nasm 2021-08-31 08:02:10.814740774 +0200
+++ firefox-91.0.1/python/mozbuild/mozbuild/frontend/context.py 2021-08-31 08:04:03.967146994 +0200
@@ -420,7 +420,7 @@ class AsmFlags(BaseCompileFlags):
if self._context.config.substs.get("OS_ARCH") == "WINNT":
debug_flags += ["-F", "cv8"]
elif self._context.config.substs.get("OS_ARCH") != "Darwin":
- debug_flags += ["-F", "dwarf"]
+ debug_flags += ["-f", "elf32"]
elif (
self._context.config.substs.get("OS_ARCH") == "WINNT"
and self._context.config.substs.get("CPU_ARCH") == "aarch64"

View File

@ -0,0 +1,12 @@
diff -up thunderbird-115.1.0/comm/third_party/rnp/moz.build.rnp-openssl thunderbird-115.1.0/comm/third_party/rnp/moz.build
--- thunderbird-115.1.0/comm/third_party/rnp/moz.build.rnp-openssl 2023-08-07 16:38:39.272780256 +0200
+++ thunderbird-115.1.0/comm/third_party/rnp/moz.build 2023-08-07 16:38:42.822780087 +0200
@@ -93,7 +93,7 @@ elif CONFIG["MZLA_LIBRNP_BACKEND"] == "o
# Supported, but not with RHEL's OpenSSL, disabled for now;
"ENABLE_BRAINPOOL": False,
})
- rnp_defines["PACKAGE_STRING"] = rnp_defines["PACKAGE_STRING"][:-1] + '-openssl"'
+ #rnp_defines["PACKAGE_STRING"] = rnp_defines["PACKAGE_STRING"][:-1] + '-openssl"'
if CONFIG["MZLA_LIBRNP_OPENSSL_VERSION"][0] == "3":
rnp_defines["CRYPTO_BACKEND_OPENSSL3"] = True

View File

@ -0,0 +1,12 @@
diff -up thunderbird-102.2.1/comm/mail/extensions/openpgp/content/BondOpenPGP.jsm.disable-openpgp-in-thunderbird thunderbird-102.2.1/comm/mail/extensions/openpgp/content/BondOpenPGP.jsm
--- thunderbird-102.2.1/comm/mail/extensions/openpgp/content/BondOpenPGP.jsm.disable-openpgp-in-thunderbird 2022-09-12 14:33:54.995339932 +0200
+++ thunderbird-102.2.1/comm/mail/extensions/openpgp/content/BondOpenPGP.jsm 2022-09-12 14:39:26.784999636 +0200
@@ -51,6 +51,8 @@ var BondOpenPGP = {
_alreadyTriedInit: false, // if already true, we will not try again
async init() {
+ // We don't have support for the opengpg in rhel ATM.
+ return;
if (this._alreadyTriedInit) {
// We have previously attempted to init, don't try again.
return;

View File

@ -0,0 +1,375 @@
# erAck: backport of expat CVE-2023-52425 DoS fix
# https://github.com/libexpat/libexpat/commit/34b598c5f594b015c513c73f06e7ced3323edbf1
#
--- thunderbird-115.9.0/parser/expat/lib/expat.h.expat-CVE-2023-52425 2024-03-11 20:36:11.000000000 +0100
+++ thunderbird-115.9.0/parser/expat/lib/expat.h 2024-03-13 20:46:45.648505015 +0100
@@ -1045,6 +1045,10 @@ XMLPARSEAPI(const XML_Feature *)
XML_GetFeatureList(void);
+/* Added in Expat 2.6.0. */
+XMLPARSEAPI(XML_Bool)
+XML_SetReparseDeferralEnabled(XML_Parser parser, XML_Bool enabled);
+
/* Expat follows the semantic versioning convention.
See http://semver.org.
*/
--- thunderbird-115.9.0/parser/expat/lib/internal.h.expat-CVE-2023-52425 2024-03-11 20:36:11.000000000 +0100
+++ thunderbird-115.9.0/parser/expat/lib/internal.h 2024-03-14 00:14:39.334319725 +0100
@@ -80,6 +80,7 @@
# endif
#endif
+#include "expat.h" // so we can use type XML_Parser below
#ifdef __cplusplus
extern "C" {
@@ -90,6 +91,9 @@ void
align_limit_to_full_utf8_characters(const char * from, const char ** fromLimRef);
+extern XML_Bool g_reparseDeferralEnabledDefault; // written ONLY in runtests.c
+extern unsigned int g_parseAttempts; // used for testing only
+
#ifdef __cplusplus
}
#endif
--- thunderbird-115.9.0/parser/expat/lib/xmlparse.c.expat-CVE-2023-52425 2024-03-11 20:36:11.000000000 +0100
+++ thunderbird-115.9.0/parser/expat/lib/xmlparse.c 2024-03-13 22:55:14.844756009 +0100
@@ -6,6 +6,7 @@
#define _GNU_SOURCE /* syscall prototype */
+#include <stdbool.h>
#include <stddef.h>
#include <string.h> /* memset(), memcpy() */
#include <assert.h>
@@ -89,6 +90,9 @@ typedef char ICHAR;
/* Round up n to be a multiple of sz, where sz is a power of 2. */
#define ROUND_UP(n, sz) (((n) + ((sz) - 1)) & ~((sz) - 1))
+/* Do safe (NULL-aware) pointer arithmetic */
+#define EXPAT_SAFE_PTR_DIFF(p, q) (((p) && (q)) ? ((p) - (q)) : 0)
+
/* Handle the case where memmove() doesn't exist. */
#ifndef HAVE_MEMMOVE
#ifdef HAVE_BCOPY
@@ -98,6 +102,8 @@ typedef char ICHAR;
#endif /* HAVE_BCOPY */
#endif /* HAVE_MEMMOVE */
+#define EXPAT_MIN(a, b) (((a) < (b)) ? (a) : (b))
+
#include "internal.h"
#include "xmltok.h"
#include "xmlrole.h"
@@ -476,6 +482,9 @@ parserInit(XML_Parser parser, const XML_
? 0 \
: ((*((pool)->ptr)++ = c), 1))
+XML_Bool g_reparseDeferralEnabledDefault = XML_TRUE; // write ONLY in runtests.c
+unsigned int g_parseAttempts = 0; // used for testing only
+
struct XML_ParserStruct {
/* The first member must be userData so that the XML_GetUserData
macro works. */
@@ -491,6 +500,9 @@ struct XML_ParserStruct {
const char *m_bufferLim;
XML_Index m_parseEndByteIndex;
const char *m_parseEndPtr;
+ size_t m_partialTokenBytesBefore; /* used in heuristic to avoid O(n^2) */
+ XML_Bool m_reparseDeferralEnabled;
+ int m_lastBufferRequestSize;
XML_Char *m_dataBuf;
XML_Char *m_dataBufEnd;
XML_StartElementHandler m_startElementHandler;
@@ -647,6 +659,9 @@ struct XML_ParserStruct {
#define bufferEnd (parser->m_bufferEnd)
#define parseEndByteIndex (parser->m_parseEndByteIndex)
#define parseEndPtr (parser->m_parseEndPtr)
+#define partialTokenBytesBefore (parser->m_partialTokenBytesBefore)
+#define reparseDeferralEnabled (parser->m_reparseDeferralEnabled)
+#define lastBufferRequestSize (parser->m_lastBufferRequestSize)
#define bufferLim (parser->m_bufferLim)
#define dataBuf (parser->m_dataBuf)
#define dataBufEnd (parser->m_dataBufEnd)
@@ -887,6 +902,47 @@ get_hash_secret_salt(XML_Parser parser)
return parser->m_hash_secret_salt;
}
+static enum XML_Error
+callProcessor(XML_Parser parser, const char *start, const char *end,
+ const char **endPtr) {
+ const size_t have_now = EXPAT_SAFE_PTR_DIFF(end, start);
+
+ if (parser->m_reparseDeferralEnabled
+ && ! parser->m_parsingStatus.finalBuffer) {
+ // Heuristic: don't try to parse a partial token again until the amount of
+ // available data has increased significantly.
+ const size_t had_before = parser->m_partialTokenBytesBefore;
+ // ...but *do* try anyway if we're close to causing a reallocation.
+ size_t available_buffer
+ = EXPAT_SAFE_PTR_DIFF(parser->m_bufferPtr, parser->m_buffer);
+#if XML_CONTEXT_BYTES > 0
+ available_buffer -= EXPAT_MIN(available_buffer, XML_CONTEXT_BYTES);
+#endif
+ available_buffer
+ += EXPAT_SAFE_PTR_DIFF(parser->m_bufferLim, parser->m_bufferEnd);
+ // m_lastBufferRequestSize is never assigned a value < 0, so the cast is ok
+ const bool enough
+ = (have_now >= 2 * had_before)
+ || ((size_t)parser->m_lastBufferRequestSize > available_buffer);
+
+ if (! enough) {
+ *endPtr = start; // callers may expect this to be set
+ return XML_ERROR_NONE;
+ }
+ }
+ g_parseAttempts += 1;
+ const enum XML_Error ret = parser->m_processor(parser, start, end, endPtr);
+ if (ret == XML_ERROR_NONE) {
+ // if we consumed nothing, remember what we had on this parse attempt.
+ if (*endPtr == start) {
+ parser->m_partialTokenBytesBefore = have_now;
+ } else {
+ parser->m_partialTokenBytesBefore = 0;
+ }
+ }
+ return ret;
+}
+
static XML_Bool /* only valid for root parser */
startParsing(XML_Parser parser)
{
@@ -1075,6 +1131,9 @@ parserInit(XML_Parser parser, const XML_
bufferEnd = buffer;
parseEndByteIndex = 0;
parseEndPtr = NULL;
+ partialTokenBytesBefore = 0;
+ reparseDeferralEnabled = g_reparseDeferralEnabledDefault;
+ lastBufferRequestSize = 0;
declElementType = NULL;
declAttributeId = NULL;
declEntity = NULL;
@@ -1232,6 +1291,7 @@ XML_ExternalEntityParserCreate(XML_Parse
to worry which hash secrets each table has.
*/
unsigned long oldhash_secret_salt;
+ XML_Bool oldReparseDeferralEnabled;
/* Validate the oldParser parameter before we pull everything out of it */
if (oldParser == NULL)
@@ -1276,6 +1336,7 @@ XML_ExternalEntityParserCreate(XML_Parse
to worry which hash secrets each table has.
*/
oldhash_secret_salt = hash_secret_salt;
+ oldReparseDeferralEnabled = reparseDeferralEnabled;
#ifdef XML_DTD
if (!context)
@@ -1330,6 +1391,7 @@ XML_ExternalEntityParserCreate(XML_Parse
defaultExpandInternalEntities = oldDefaultExpandInternalEntities;
ns_triplets = oldns_triplets;
hash_secret_salt = oldhash_secret_salt;
+ reparseDeferralEnabled = oldReparseDeferralEnabled;
parentParser = oldParser;
#ifdef XML_DTD
paramEntityParsing = oldParamEntityParsing;
@@ -1850,39 +1912,8 @@ XML_Parse(XML_Parser parser, const char
ps_parsing = XML_PARSING;
}
- if (len == 0) {
- ps_finalBuffer = (XML_Bool)isFinal;
- if (!isFinal)
- return XML_STATUS_OK;
- positionPtr = bufferPtr;
- parseEndPtr = bufferEnd;
-
- /* If data are left over from last buffer, and we now know that these
- data are the final chunk of input, then we have to check them again
- to detect errors based on that fact.
- */
- errorCode = processor(parser, bufferPtr, parseEndPtr, &bufferPtr);
-
- if (errorCode == XML_ERROR_NONE) {
- switch (ps_parsing) {
- case XML_SUSPENDED:
- XmlUpdatePosition(encoding, positionPtr, bufferPtr, &position);
- positionPtr = bufferPtr;
- return XML_STATUS_SUSPENDED;
- case XML_INITIALIZED:
- case XML_PARSING:
- ps_parsing = XML_FINISHED;
- /* fall through */
- default:
- return XML_STATUS_OK;
- }
- }
- eventEndPtr = eventPtr;
- processor = errorProcessor;
- return XML_STATUS_ERROR;
- }
#ifndef XML_CONTEXT_BYTES
- else if (bufferPtr == bufferEnd) {
+ if (bufferPtr == bufferEnd) {
const char *end;
int nLeftOver;
enum XML_Status result;
@@ -1899,11 +1930,14 @@ XML_Parse(XML_Parser parser, const char
processor = errorProcessor;
return XML_STATUS_ERROR;
}
+ // though this isn't a buffer request, we assume that `len` is the app's
+ // preferred buffer fill size, and therefore save it here.
+ lastBufferRequestSize = len;
parseEndByteIndex += len;
positionPtr = s;
ps_finalBuffer = (XML_Bool)isFinal;
- errorCode = processor(parser, s, parseEndPtr = s + len, &end);
+ errorCode = callProcessor(parser, s, parseEndPtr = s + len, &end);
if (errorCode != XML_ERROR_NONE) {
eventEndPtr = eventPtr;
@@ -1930,6 +1964,8 @@ XML_Parse(XML_Parser parser, const char
XmlUpdatePosition(encoding, positionPtr, end, &position);
nLeftOver = s + len - end;
if (nLeftOver) {
+#if 0
+// erAck: replace with XML_GetBuffer() below.
if (buffer == NULL || nLeftOver > bufferLim - buffer) {
/* avoid _signed_ integer overflow */
char *temp = NULL;
@@ -1939,6 +1975,28 @@ XML_Parse(XML_Parser parser, const char
? (char *)MALLOC(bytesToAllocate)
: (char *)REALLOC(buffer, bytesToAllocate));
}
+#endif
+#if 1
+// erAck: the original patch context had a call to XML_GetBuffer() instead:
+ // Back up and restore the parsing status to avoid XML_ERROR_SUSPENDED
+ // (and XML_ERROR_FINISHED) from XML_GetBuffer.
+ const enum XML_Parsing originalStatus = ps_parsing;
+ ps_parsing = XML_PARSING;
+ void *const temp = XML_GetBuffer(parser, nLeftOver);
+ ps_parsing = originalStatus;
+#endif
+ // GetBuffer may have overwritten this, but we want to remember what the
+ // app requested, not how many bytes were left over after parsing.
+ lastBufferRequestSize = len;
+#if 1
+ if (temp == NULL) {
+ // NOTE: parser->m_errorCode has already been set by XML_GetBuffer().
+ eventPtr = eventEndPtr = NULL;
+ processor = errorProcessor;
+ return XML_STATUS_ERROR;
+ }
+#endif
+#if 0
if (temp == NULL) {
errorCode = XML_ERROR_NO_MEMORY;
eventPtr = eventEndPtr = NULL;
@@ -1948,6 +2006,7 @@ XML_Parse(XML_Parser parser, const char
buffer = temp;
bufferLim = buffer + bytesToAllocate;
}
+#endif
memcpy(buffer, end, nLeftOver);
}
bufferPtr = buffer;
@@ -1959,15 +2018,14 @@ XML_Parse(XML_Parser parser, const char
return result;
}
#endif /* not defined XML_CONTEXT_BYTES */
- else {
- void *buff = XML_GetBuffer(parser, len);
- if (buff == NULL)
- return XML_STATUS_ERROR;
- else {
- memcpy(buff, s, len);
- return XML_ParseBuffer(parser, len, isFinal);
- }
+ void *buff = XML_GetBuffer(parser, len);
+ if (buff == NULL)
+ return XML_STATUS_ERROR;
+ if (len > 0) {
+ assert(s != NULL); // make sure s==NULL && len!=0 was rejected above
+ memcpy(buff, s, len);
}
+ return XML_ParseBuffer(parser, len, isFinal);
}
enum XML_Status XMLCALL
@@ -2001,7 +2059,7 @@ XML_ParseBuffer(XML_Parser parser, int l
parseEndByteIndex += len;
ps_finalBuffer = (XML_Bool)isFinal;
- errorCode = processor(parser, start, parseEndPtr, &bufferPtr);
+ errorCode = callProcessor(parser, start, parseEndPtr, &bufferPtr);
if (errorCode != XML_ERROR_NONE) {
eventEndPtr = eventPtr;
@@ -2047,7 +2105,11 @@ XML_GetBuffer(XML_Parser parser, int len
default: ;
}
- if (len > bufferLim - bufferEnd) {
+ // whether or not the request succeeds, `len` seems to be the app's preferred
+ // buffer fill size; remember it.
+ lastBufferRequestSize = len;
+ if (len > EXPAT_SAFE_PTR_DIFF(bufferLim, bufferEnd)
+ || buffer == NULL) {
#ifdef XML_CONTEXT_BYTES
int keep;
#endif /* defined XML_CONTEXT_BYTES */
@@ -2063,7 +2125,9 @@ XML_GetBuffer(XML_Parser parser, int len
keep = XML_CONTEXT_BYTES;
neededSize += keep;
#endif /* defined XML_CONTEXT_BYTES */
- if (neededSize <= bufferLim - buffer) {
+ if (buffer && bufferPtr
+ && neededSize
+ <= EXPAT_SAFE_PTR_DIFF(bufferLim, buffer)) {
#ifdef XML_CONTEXT_BYTES
if (keep < bufferPtr - buffer) {
int offset = (int)(bufferPtr - buffer) - keep;
@@ -2072,8 +2136,11 @@ XML_GetBuffer(XML_Parser parser, int len
bufferPtr -= offset;
}
#else
- memmove(buffer, bufferPtr, bufferEnd - bufferPtr);
- bufferEnd = buffer + (bufferEnd - bufferPtr);
+ memmove(buffer, bufferPtr,
+ EXPAT_SAFE_PTR_DIFF(bufferEnd, bufferPtr));
+ bufferEnd
+ = buffer
+ + EXPAT_SAFE_PTR_DIFF(bufferEnd, bufferPtr);
bufferPtr = buffer;
#endif /* not defined XML_CONTEXT_BYTES */
}
@@ -2171,7 +2238,7 @@ XML_ResumeParser(XML_Parser parser)
}
ps_parsing = XML_PARSING;
- errorCode = processor(parser, bufferPtr, parseEndPtr, &bufferPtr);
+ errorCode = callProcessor(parser, bufferPtr, parseEndPtr, &bufferPtr);
if (errorCode != XML_ERROR_NONE) {
eventEndPtr = eventPtr;
@@ -2481,6 +2548,15 @@ MOZ_XML_ProcessingEntityValue(XML_Parser
}
/* END MOZILLA CHANGE */
+XML_Bool XMLCALL
+XML_SetReparseDeferralEnabled(XML_Parser parser, XML_Bool enabled) {
+ if (parser != NULL && (enabled == XML_TRUE || enabled == XML_FALSE)) {
+ parser->m_reparseDeferralEnabled = enabled;
+ return XML_TRUE;
+ }
+ return XML_FALSE;
+}
+
/* Initially tag->rawName always points into the parse buffer;
for those TAG instances opened while the current parse buffer was
processed, and not yet closed, we need to store tag->rawName in a more

View File

@ -1,23 +0,0 @@
#!/bin/sh
# Finds requirements provided outside of the current file set
filelist=`sed "s/[]['\"*?{}]/\\\\\&/g"`
provides=`echo $filelist | /usr/lib/rpm/find-provides`
{
for f in $filelist ; do
echo $f | /usr/lib/rpm/find-requires | while read req ; do
found=0
for p in $provides ; do
if [ "$req" = "$p" ]; then
found=1
fi
done
if [ "$found" = "0" ]; then
echo $req
fi
done
done
} | sort -u

View File

@ -1,50 +0,0 @@
diff -up firefox-68.0/media/libyuv/libyuv/tools_libyuv/autoroller/unittests/testdata/DEPS.chromium.old firefox-68.0/media/libyuv/libyuv/tools_libyuv/autoroller/unittests/testdata/DEPS.chromium
diff -up firefox-68.0/media/webrtc/trunk/Makefile.old firefox-68.0/media/webrtc/trunk/Makefile
diff -up firefox-68.0/media/webrtc/trunk/webrtc/modules/audio_processing/utility/ooura_fft.cc.old firefox-68.0/media/webrtc/trunk/webrtc/modules/audio_processing/utility/ooura_fft.cc
--- firefox-68.0/media/webrtc/trunk/webrtc/modules/audio_processing/utility/ooura_fft.cc.old 2019-06-12 08:17:02.673268442 +0200
+++ firefox-68.0/media/webrtc/trunk/webrtc/modules/audio_processing/utility/ooura_fft.cc 2019-06-12 08:17:13.582328073 +0200
@@ -21,7 +21,7 @@
* be found in the AUTHORS file in the root of the source tree.
*/
-#include "modules/audio_processing//utility/ooura_fft.h"
+#include "modules/audio_processing/utility/ooura_fft.h"
#include <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

@ -1,47 +0,0 @@
diff -up firefox-68.0/config/rules.mk.old firefox-68.0/config/rules.mk
--- firefox-68.0/config/rules.mk.old 2019-06-26 09:36:58.537034443 +0200
+++ firefox-68.0/config/rules.mk 2019-06-26 09:37:38.004970573 +0200
@@ -569,7 +569,6 @@ ifdef MOZ_PROFILE_GENERATE
endif
else # !WINNT || GNU_CC
$(call EXPAND_CC_OR_CXX,$@) -o $@ $(COMPUTED_CXX_LDFLAGS) $(PGO_CFLAGS) $($(notdir $@)_$(OBJS_VAR_SUFFIX)) $(RESFILE) $(WIN32_EXE_LDFLAGS) $(LDFLAGS) $(STATIC_LIBS) $(RUST_STATIC_LIB) $(MOZ_PROGRAM_LDFLAGS) $(SHARED_LIBS) $(OS_LIBS)
- $(call py_action,check_binary,--target $@)
endif # WINNT && !GNU_CC
ifdef ENABLE_STRIP
@@ -604,9 +603,6 @@ else
$(HOST_CC) -o $@ $(HOST_C_LDFLAGS) $(HOST_LDFLAGS) $($(notdir $@)_OBJS) $(HOST_LIBS) $(HOST_EXTRA_LIBS)
endif # HOST_CPP_PROG_LINK
endif
-ifndef CROSS_COMPILE
- $(call py_action,check_binary,--host $@)
-endif
#
# This is an attempt to support generation of multiple binaries
@@ -630,7 +626,6 @@ ifdef MSMANIFEST_TOOL
endif # MSVC with manifest tool
else
$(call EXPAND_CC_OR_CXX,$@) $(COMPUTED_CXX_LDFLAGS) $(PGO_CFLAGS) -o $@ $($@_$(OBJS_VAR_SUFFIX)) $(WIN32_EXE_LDFLAGS) $(LDFLAGS) $(STATIC_LIBS) $(MOZ_PROGRAM_LDFLAGS) $(SHARED_LIBS) $(OS_LIBS)
- $(call py_action,check_binary,--target $@)
endif # WINNT && !GNU_CC
ifdef ENABLE_STRIP
@@ -651,9 +646,6 @@ else
$(HOST_CC) $(HOST_OUTOPTION)$@ $(HOST_C_LDFLAGS) $($(notdir $@)_OBJS) $(HOST_LIBS) $(HOST_EXTRA_LIBS)
endif
endif
-ifndef CROSS_COMPILE
- $(call py_action,check_binary,--host $@)
-endif
$(LIBRARY): $(OBJS) $(STATIC_LIBS) $(EXTRA_DEPS) $(GLOBAL_DEPS)
$(REPORT_BUILD)
@@ -691,7 +683,6 @@ ifndef INCREMENTAL_LINKER
$(RM) $@
endif
$(MKSHLIB) $($@_$(OBJS_VAR_SUFFIX)) $(RESFILE) $(LDFLAGS) $(STATIC_LIBS) $(RUST_STATIC_LIB) $(SHARED_LIBS) $(EXTRA_DSO_LDOPTS) $(MOZ_GLUE_LDFLAGS) $(OS_LIBS)
- $(call py_action,check_binary,--target $@)
ifeq (_WINNT,$(GNU_CC)_$(OS_ARCH))
ifdef MSMANIFEST_TOOL

View File

@ -0,0 +1,38 @@
--- firefox-80.0.1/toolkit/crashreporter/google-breakpad/src/third_party/lss/linux_syscall_support.h 2020-08-31 10:04:19.000000000 -0400
+++ firefox-80.0.1/toolkit/crashreporter/google-breakpad/src/third_party/lss/linux_syscall_support.h 2020-09-12 07:24:35.298931628 -0400
@@ -1962,7 +1962,7 @@ struct kernel_statfs {
LSS_ENTRYPOINT \
"pop %%ebx" \
args \
- : "esp", "memory"); \
+ : "memory"); \
LSS_RETURN(type,__res)
#undef _syscall0
#define _syscall0(type,name) \
@@ -2019,7 +2019,7 @@ struct kernel_statfs {
: "i" (__NR_##name), "ri" ((long)(arg1)), \
"c" ((long)(arg2)), "d" ((long)(arg3)), \
"S" ((long)(arg4)), "D" ((long)(arg5)) \
- : "esp", "memory"); \
+ : "memory"); \
LSS_RETURN(type,__res); \
}
#undef _syscall6
@@ -2041,7 +2041,7 @@ struct kernel_statfs {
: "i" (__NR_##name), "0" ((long)(&__s)), \
"c" ((long)(arg2)), "d" ((long)(arg3)), \
"S" ((long)(arg4)), "D" ((long)(arg5)) \
- : "esp", "memory"); \
+ : "memory"); \
LSS_RETURN(type,__res); \
}
LSS_INLINE int LSS_NAME(clone)(int (*fn)(void *), void *child_stack,
@@ -2127,7 +2127,7 @@ struct kernel_statfs {
: "0"(-EINVAL), "i"(__NR_clone),
"m"(fn), "m"(child_stack), "m"(flags), "m"(arg),
"m"(parent_tidptr), "m"(newtls), "m"(child_tidptr)
- : "esp", "memory", "ecx", "edx", "esi", "edi");
+ : "memory", "ecx", "edx", "esi", "edi");
LSS_RETURN(int, __res);
}

View File

@ -0,0 +1,19 @@
diff -up firefox-84.0.2/security/certverifier/NSSCertDBTrustDomain.cpp.nss-hack firefox-84.0.2/security/certverifier/NSSCertDBTrustDomain.cpp
--- firefox-84.0.2/security/certverifier/NSSCertDBTrustDomain.cpp.nss-hack 2021-01-11 12:12:02.585514543 +0100
+++ firefox-84.0.2/security/certverifier/NSSCertDBTrustDomain.cpp 2021-01-11 12:47:50.345984582 +0100
@@ -1619,6 +1619,15 @@ SECStatus InitializeNSS(const nsACString
return srv;
}
+ /* Sets the NSS_USE_ALG_IN_ANY_SIGNATURE bit.
+ * does not change NSS_USE_ALG_IN_CERT_SIGNATURE,
+ * so policy will still disable use of sha1 in
+ * certificate related signature processing. */
+ srv = NSS_SetAlgorithmPolicy(SEC_OID_SHA1, NSS_USE_ALG_IN_ANY_SIGNATURE, 0);
+ if (srv != SECSuccess) {
+ NS_WARNING("Unable to use SHA1 for Add-ons, expect broken/disabled Add-ons. See https://bugzilla.redhat.com/show_bug.cgi?id=1908018 for details.");
+ }
+
if (nssDbConfig == NSSDBConfig::ReadWrite) {
UniquePK11SlotInfo slot(PK11_GetInternalKeySlot());
if (!slot) {

View File

@ -1,13 +0,0 @@
diff -up firefox-68.1.0/xpcom/threads/nsThread.cpp.old firefox-68.1.0/xpcom/threads/nsThread.cpp
--- firefox-68.1.0/xpcom/threads/nsThread.cpp.old 2019-09-20 12:17:35.481661390 +0200
+++ firefox-68.1.0/xpcom/threads/nsThread.cpp 2019-09-20 12:19:14.269180516 +0200
@@ -556,7 +556,8 @@ void nsThread::InitCommon() {
// kernel report them as separate regions, even when they are adjacent to
// heap memory. This allows us to accurately track the actual memory
// consumption of our allocated stacks.
- madvise(mStackBase, stackSize, MADV_NOHUGEPAGE);
+ // not supported on RHEL6
+ // madvise(mStackBase, stackSize, MADV_NOHUGEPAGE);
pthread_attr_destroy(&attr);
#elif defined(XP_WIN)

View File

@ -1,13 +0,0 @@
diff -up firefox-68.2.0/security/manager/ssl/nsNSSComponent.cpp.old firefox-68.2.0/security/manager/ssl/nsNSSComponent.cpp
--- firefox-68.2.0/security/manager/ssl/nsNSSComponent.cpp.old 2019-10-24 14:20:21.227037984 +0200
+++ firefox-68.2.0/security/manager/ssl/nsNSSComponent.cpp 2019-10-24 14:45:52.769506967 +0200
@@ -996,6 +996,9 @@ void nsNSSComponent::FillTLSVersionRange
return;
}
+ // Enable TLS 1.3 as our NSS supports it.
+ supported.max = 0x304;
+
// Clip the defaults by what NSS actually supports to enable
// working with a system NSS with different ranges.
rangeOut.min = std::max(rangeOut.min, supported.min);

View File

@ -1,126 +0,0 @@
#!/bin/bash
#set -x
set -e
usage()
{
cat << EOF
usage: $0 options
This script downloads calendar langpacks for Thunderbird.
OPTIONS:
-h Show this message
-v Version string (7.0.1)
-b Build number (1, 2, 3)
-r Reuse downloaded files (when you don't want to redownload)
EOF
}
VER=
BUILDNUM=
LANG_DATE=`date "+%Y%m%d"`
while getopts “hv:b:r” OPTION
do
case $OPTION in
h)
usage
exit 1
;;
v)
VER=$OPTARG
;;
b)
BUILDNUM=$OPTARG
;;
?)
usage
exit
;;
esac
done
if [ -z "$VER" -o -z "$BUILDNUM" ]
then
echo "Missing version or build number."
usage
exit 1
fi
WHITE='\033[1;33m'
NC='\033[0m' # No Color
LOCALES=`curl -f https://archive.mozilla.org/pub/thunderbird/candidates/$VER-candidates/build$BUILDNUM/linux-i686/ | grep "a href"|sed -e "s|.*/\([^/]*\)/\".*|\1|"|tail -n+2 |grep -v xpi`
#echo $LOCALES
rm -rf lightning-langpacks
mkdir -p lightning-langpacks
cd lightning-langpacks
LOCALE_COUNT=`echo $LOCALES| tr ' ' '\n' | wc -l`
LOCALE_NUM=0
for lang in $LOCALES; do
LOCALE_NUM=$((LOCALE_NUM+1))
echo -e "${WHITE}Processing calendar locale: $lang ($LOCALE_NUM/$LOCALE_COUNT)${NC}"
mkdir -p extracted_lightning
mkdir -p calendar-locales
#echo Downloading TB binary for locale: $lang
wget --quiet https://archive.mozilla.org/pub/thunderbird/candidates/$VER-candidates/build$BUILDNUM/linux-i686/$lang/thunderbird-$VER.tar.bz2
cd extracted_lightning
tar -xf ../thunderbird-$VER.tar.bz2 thunderbird/distribution/extensions/\{e2fda1a4-762b-4020-b5ad-a41df1933103\}.xpi
set +e
unzip -qq thunderbird/distribution/extensions/\{e2fda1a4-762b-4020-b5ad-a41df1933103\}.xpi
set -e
LIGHTNING_VERSION=`cat app.ini |grep "^Version="|sed -e 's/Version=//'`
BUILD_ID=`cat app.ini |grep "^BuildID="|sed -e 's/BuildID=//'`
MAX_VERSION=`cat app.ini |grep MaxVersion|sed -e s/MaxVersion=//`
MIN_VERSION=`cat app.ini |grep MinVersion|sed -e s/MinVersion=//`
rm -rf thunderbird
mkdir -p ../calendar-locales/chrome
cp -r chrome/calendar-$lang ../calendar-locales/chrome
cp -r chrome/lightning-$lang ../calendar-locales/chrome
cd -
cd calendar-locales
# create manifest
cat > manifest.json <<EOL
{
"languages": {
"$lang": {
"chrome_resources": {
"calendar": "chrome/calendar-$lang/locale/$lang/calendar/",
"lightning": "chrome/lightning-$lang/locale/$lang/lightning/"
},
"version": "$LIGHTNING_VERSION"
}
},
"applications": {
"gecko": {
"strict_min_version": "$MIN_VERSION",
"id": "langpack-cal-$lang@lightning.mozilla.org",
"strict_max_version": "$MAX_VERSION"
}
},
"langpack_id": "$lang",
"version": "7.$LIGHTNING_VERSION.$BUILD_ID",
"name": "$lang Language Pack Calendar",
"manifest_version": 2,
"sources": {
"browser": {
"base_path": "browser/"
}
},
"author": "Mozilla.cz (contributors: Pavel Cvrček, Pavel Franc, Michal Stanke, Michal Vašíček)",
"description": "Language pack for Thunderbird for $lang, this was repacked by Fedora/RHEL package maintainer from original binaries."
}
EOL
zip --quiet -r ../langpack-cal-$lang@lightning.mozilla.org.xpi *
cd -
rm -rf calendar-locales
rm -rf extracted_lightning
rm -f thunderbird-$VER.tar.bz2
done
echo "Creating lightning-langpacks-$VER.tar.xz..."
tar cJf ../lightning-langpacks-$VER.tar.xz *.xpi
cd ..
rm -rf lightning-langpacks

View File

@ -0,0 +1 @@
AIzaSyB2h2OuRcUgy5N-5hsZqiPW6sH3n_rptiQ

View File

@ -1,54 +0,0 @@
%dir %{gtk3_install_path}/bin
%{gtk3_install_path}/bin/gdk-pixbuf-query-loaders-%{__isa_bits}
%{gtk3_install_path}/bin/gdk-pixbuf-thumbnailer
%{gtk3_install_path}/bin/gio-querymodules-%{__isa_bits}
%{gtk3_install_path}/bin/glib-compile-schemas
%{gtk3_install_path}/bin/gtk-query-immodules-3.0-%{__isa_bits}
%{gtk3_install_path}/bin/gtk-update-icon-cache
%{gtk3_install_path}/bin/fc-cache
%{gtk3_install_path}/etc
%dir %{gtk3_install_path}/%{_lib}
%{gtk3_install_path}/%{_lib}/libatk-1.0.so.*
%{gtk3_install_path}/%{_lib}/libatk-bridge-2.0.so.*
%{gtk3_install_path}/%{_lib}/libatspi.so.*
%{gtk3_install_path}/%{_lib}/libcairo.so.*
%{gtk3_install_path}/%{_lib}/libcairo-gobject.so.*
%{gtk3_install_path}/%{_lib}/libfontconfig.so.*
%{gtk3_install_path}/%{_lib}/libfreetype.so.*
%{gtk3_install_path}/%{_lib}/libgdk-3.so.*
%{gtk3_install_path}/%{_lib}/libgdk_pixbuf-2.0.so.*
%{gtk3_install_path}/%{_lib}/libgio-2.0.so.*
%{gtk3_install_path}/%{_lib}/libglib-2.0.so.*
%{gtk3_install_path}/%{_lib}/libgmodule-2.0.so.*
%{gtk3_install_path}/%{_lib}/libgobject-2.0.so.*
%{gtk3_install_path}/%{_lib}/libgthread-2.0.so.*
%{gtk3_install_path}/%{_lib}/libgtk-3.so.*
%{gtk3_install_path}/%{_lib}/libharfbuzz.so.*
%{gtk3_install_path}/%{_lib}/libpango-1.0.so.*
%{gtk3_install_path}/%{_lib}/libpangocairo-1.0.so.*
%{gtk3_install_path}/%{_lib}/libpangoft2-1.0.so.*
%{gtk3_install_path}/%{_lib}/libpcre.so.*
%{gtk3_install_path}/%{_lib}/librsvg-2.so.*
%dir %{gtk3_install_path}/%{_lib}/cairo
%{gtk3_install_path}/%{_lib}/cairo/cairo-fdr.so.*
%{gtk3_install_path}/%{_lib}/cairo/cairo-sphinx.so.*
%{gtk3_install_path}/%{_lib}/cairo/libcairo-trace.so.*
%{gtk3_install_path}/%{_lib}/gdk-pixbuf-2.0
%ghost %attr(644, root, root) %{gtk3_install_path}/%{_lib}/gdk-pixbuf-2.0/2.10.0/loaders.cache
%{gtk3_install_path}/%{_lib}/gio
%ghost %attr(644, root, root) %{gtk3_install_path}/%{_lib}/gio/modules/giomodule.cache
%{gtk3_install_path}/%{_lib}/gtk-3.0
%ghost %attr(644, root, root) %{gtk3_install_path}/%{_lib}/gtk-3.0/3.0.0/immodules.cache
%{gtk3_install_path}/libexec
%{gtk3_install_path}/share
%ghost %attr(644, root, root) %{gtk3_install_path}/share/icons/Adwaita/icon-theme.cache
%ghost %attr(644, root, root) %{gtk3_install_path}/share/icons/hicolor/icon-theme.cache
%ghost %attr(644, root, root) %{gtk3_install_path}/share/glib-2.0/schemas/gschemas.compiled
%{gtk3_install_path}/var
%dir %{gtk3_install_path}/var/cache/fontconfig

View File

@ -1,23 +0,0 @@
# adwaita-icon-theme
touch --no-create %{gtk3_install_path}/share/icons/Adwaita &>/dev/null || :
touch --no-create %{gtk3_install_path}/share/icons/hicolor &>/dev/null || :
%{gtk3_install_path}/bin/gdk-pixbuf-query-loaders-%{__isa_bits} --update-cache || :
# glib2
%{gtk3_install_path}/bin/gio-querymodules-%{__isa_bits} %{gtk3_install_path}/%{_lib}/gio/modules
# gtk3
%{gtk3_install_path}/bin/gtk-query-immodules-3.0-%{__isa_bits} --update-cache
%{gtk3_install_path}/bin/glib-compile-schemas %{gtk3_install_path}/share/glib-2.0/schemas &> /dev/null || :
# fontconfig
umask 0022
# Force regeneration of all fontconfig cache files
# The check for existance is needed on dual-arch installs (the second
# copy of fontconfig might install the binary instead of the first)
# The HOME setting is to avoid problems if HOME hasn't been reset
# FIXME hardcoded version !
if [ -x %{gtk3_install_path}/bin/fc-cache ] && %{gtk3_install_path}/bin/fc-cache --version 2>&1 | grep -q 2.10.95 ; then
HOME=/root %{gtk3_install_path}/bin/fc-cache -f
fi

View File

@ -1,3 +0,0 @@
%{gtk3_install_path}/gtk-update-icon-cache %{gtk3_install_path}/share/icons/hicolor &>/dev/null || :
# adwaita
%{gtk3_install_path}/gtk-update-icon-cache %{gtk3_install_path}/share/icons/Adwaita &>/dev/null || :

View File

@ -1,27 +0,0 @@
# adwaita
if [ $1 -eq 0 ] ; then
touch --no-create %{gtk3_install_path}/share/icons/Adwaita &>/dev/null
touch --no-create %{gtk3_install_path}/share/icons/hicolor &>/dev/null
%{gtk3_install_path}/bin/gtk-update-icon-cache %{gtk3_install_path}/share/icons/Adwaita &>/dev/null || :
%{gtk3_install_path}/bin/gtk-update-icon-cache %{gtk3_install_path}/share/icons/hicolor &>/dev/null || :
fi
# gdk-pixbuf2
if [ $1 -gt 0 ]; then
%{gtk3_install_path}/bin/gdk-pixbuf-query-loaders-%{__isa_bits} --update-cache || :
fi
# glib2
[ ! -x %{gtk3_install_path}/bin/gio-querymodules-%{__isa_bits} ] || \
%{gtk3_install_path}/bin/gio-querymodules-%{__isa_bits} %{gtk3_install_path}/%{_lib}/gio/modules
# gtk3
if [ $1 -gt 0 ]; then
%{gtk3_install_path}/bin/gtk-query-immodules-3.0-%{__isa_bits} --update-cache
fi
if [ $1 -eq 0 ] ; then
rm -rf %{gtk3_install_path}/var/cache/fontconfig/* &>/dev/null || :
fi
%{gtk3_install_path}/bin/glib-compile-schemas %{gtk3_install_path}/share/glib-2.0/schemas &> /dev/null || :

View File

@ -1,26 +0,0 @@
%filter_provides_in %{gtk3_install_path}/%{_lib}
%filter_requires_in %{gtk3_install_path}/%{_lib}
%filter_from_requires /libgdk-3.*/d
%filter_from_requires /libatk-1.0.so.*/d
%filter_from_requires /libatk-bridge-2.0.so.*/d
%filter_from_requires /libatspi.so.*/d
%filter_from_requires /libcairo.so.*/d
%filter_from_requires /libcairo-gobject.so.*/d
%filter_from_requires /libfontconfig.so.*/d
%filter_from_requires /libfreetype.so.*/d
%filter_from_requires /libgdk-3.so.*/d
%filter_from_requires /libgdk_pixbuf-2.0.so.*/d
%filter_from_requires /libgio-2.0.so.*/d
%filter_from_requires /libglib-2.0.so.*/d
%filter_from_requires /libgmodule-2.0.so.*/d
%filter_from_requires /libgobject-2.0.so.*/d
%filter_from_requires /libgthread-2.0.so.*/d
%filter_from_requires /libgtk-3.so.*/d
%filter_from_requires /libharfbuzz.so.*/d
%filter_from_requires /libpango-1.0.so.*/d
%filter_from_requires /libpangocairo-1.0.so.*/d
%filter_from_requires /libpangoft2-1.0.so.*/d
%filter_from_requires /libpcre.so.*/d
# Don't forget to call %%filter_setup from the consumer!

View File

@ -1,34 +0,0 @@
%if "%{name}" == "gtk3-private"
function prepend_buildroot_include_path_to_compiler_flags() {
export CFLAGS="-I%{_buildrootdir}%{gtk3_install_path}/$@ $CFLAGS" \
export CXXFLAGS="-I%{_buildrootdir}%{gtk3_install_path}/$@ $CXXFLAGS"
}
prepend_buildroot_include_path_to_compiler_flags include
prepend_buildroot_include_path_to_compiler_flags include/glib-2.0
prepend_buildroot_include_path_to_compiler_flags include/glib-2.0
prepend_buildroot_include_path_to_compiler_flags include/gio-unix-2.0
prepend_buildroot_include_path_to_compiler_flags %{_lib}/glib-2.0/include
prepend_buildroot_include_path_to_compiler_flags include/freetype2
prepend_buildroot_include_path_to_compiler_flags include/fontconfig
prepend_buildroot_include_path_to_compiler_flags include/harfbuzz
prepend_buildroot_include_path_to_compiler_flags include/gdk-pixbuf-2.0
prepend_buildroot_include_path_to_compiler_flags include/atk-1.0
prepend_buildroot_include_path_to_compiler_flags include/at-spi-2.0
prepend_buildroot_include_path_to_compiler_flags include/at-spi2-atk/2.0
prepend_buildroot_include_path_to_compiler_flags include/cairo
prepend_buildroot_include_path_to_compiler_flags include/pango-1.0
prepend_buildroot_include_path_to_compiler_flags include/librsvg-2.0
prepend_buildroot_include_path_to_compiler_flags include/cairo
prepend_buildroot_include_path_to_compiler_flags include/gtk-3.0
prepend_buildroot_include_path_to_compiler_flags include/gtk-3.0/unix-print
prepend_buildroot_include_path_to_compiler_flags include/librsvg-2.0
%else
sed -i 's@%{gtk3_install_path}@%{_buildrootdir}%{gtk3_install_path}@g' %{_buildrootdir}%{gtk3_install_path}/%{_lib}/pkgconfig/*.pc
%endif
export LDFLAGS="-L%{_buildrootdir}%{gtk3_install_path}/%{_lib} $LDFLAGS"
export LDFLAGS="-Wl,-rpath,%{gtk3_install_path}/%{_lib} $LDFLAGS"
export LDFLAGS="-Wl,-rpath-link,%{_buildrootdir}%{gtk3_install_path}/%{_lib} $LDFLAGS"
export PKG_CONFIG_PATH=%{_buildrootdir}%{gtk3_install_path}/%{_lib}/pkgconfig

View File

@ -1,30 +0,0 @@
diff -up firefox-51.0/toolkit/mozapps/extensions/internal/XPIProvider.jsm.1005640-accept-lang firefox-51.0/toolkit/mozapps/extensions/internal/XPIProvider.jsm
--- firefox-51.0/toolkit/mozapps/extensions/internal/XPIProvider.jsm.1005640-accept-lang 2017-01-16 17:16:52.000000000 +0100
+++ firefox-51.0/toolkit/mozapps/extensions/internal/XPIProvider.jsm 2017-01-18 12:35:29.380394216 +0100
@@ -2852,6 +2852,11 @@ this.XPIProvider = {
this.addAddonsToCrashReporter();
}
+ // Save locale settings to compare it later to check whenever some addon
+ // changed it.
+ var previousLocale = Cc["@mozilla.org/chrome/chrome-registry;1"]
+ .getService(Ci.nsIXULChromeRegistry).getSelectedLocale("global");
+
try {
AddonManagerPrivate.recordTimestamp("XPI_bootstrap_addons_begin");
@@ -2880,6 +2885,14 @@ this.XPIProvider = {
AddonManagerPrivate.recordException("XPI-BOOTSTRAP", "startup failed", e);
}
+ var currentLocale = Cc["@mozilla.org/chrome/chrome-registry;1"]
+ .getService(Ci.nsIXULChromeRegistry).getSelectedLocale("global");
+ if (currentLocale != previousLocale) {
+ // We have to flush string cache if the locale was changed during loading
+ // of addons
+ Services.obs.notifyObservers(null, "chrome-flush-caches", null);
+ }
+
// Let these shutdown a little earlier when they still have access to most
// of XPCOM
Services.obs.addObserver({

View File

@ -1,90 +0,0 @@
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);
- if (NS_FAILED(rv)) return rv;
+ if (NS_FAILED(rv)) {
+ // Look for cfg file in /etc/<application>/pref
+ rv = NS_GetSpecialDirectory(NS_APP_PREFS_SYSTEM_CONFIG_DIR,
+ getter_AddRefs(jsFile));
+ NS_ENSURE_SUCCESS(rv, rv);
+
+ rv = jsFile->AppendNative(NS_LITERAL_CSTRING("pref"));
+ NS_ENSURE_SUCCESS(rv, rv);
+ rv = jsFile->AppendNative(nsDependentCString(aFileName));
+ NS_ENSURE_SUCCESS(rv, rv);
+ rv = NS_NewLocalFileInputStream(getter_AddRefs(inStr), jsFile);
+ NS_ENSURE_SUCCESS(rv, rv);
+ }
} else {
nsAutoCString location("resource://gre/defaults/autoconfig/");
location += aFileName;
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 = NS_ERROR_FAILURE;
nsZipFind* findPtr;
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
}
}
}
+
+#if defined(XP_UNIX)
+ if (!strcmp(aProperty, NS_APP_PREFS_SYSTEM_CONFIG_DIR)) {
+ nsCString sysConfigDir = NS_LITERAL_CSTRING("/etc/");
+ nsCOMPtr<nsIXULAppInfo> appInfo = do_GetService("@mozilla.org/xre/app-info;1");
+ if (!appInfo)
+ return NS_ERROR_NOT_AVAILABLE;
+ nsCString appName;
+ appInfo->GetName(appName);
+ ToLowerCase(appName);
+ sysConfigDir.Append(appName);
+ return NS_NewNativeLocalFile(sysConfigDir, false, aFile);
+ }
+#endif
+
if (NS_FAILED(rv) || !file) return NS_ERROR_FAILURE;
if (ensureFilePermissions) {
@@ -880,6 +895,16 @@ nsresult nsXREDirProvider::GetFilesInter
LoadDirIntoArray(mXULAppDir, kAppendPrefDir, directories);
LoadDirsIntoArray(mAppBundleDirectories, kAppendPrefDir, directories);
+ // Add /etc/<application>/pref/ directory if it exists
+ nsCOMPtr<nsIFile> systemPrefDir;
+ rv = NS_GetSpecialDirectory(NS_APP_PREFS_SYSTEM_CONFIG_DIR,
+ getter_AddRefs(systemPrefDir));
+ if (NS_SUCCEEDED(rv)) {
+ rv = systemPrefDir->AppendNative(NS_LITERAL_CSTRING("pref"));
+ if (NS_SUCCEEDED(rv))
+ directories.AppendObject(systemPrefDir);
+ }
+
rv = NS_NewArrayEnumerator(aResult, directories, NS_GET_IID(nsIFile));
} else if (!strcmp(aProperty, NS_APP_CHROME_DIR_LIST)) {
// NS_APP_CHROME_DIR_LIST is only used to get default (native) icons
diff -up 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 \
"PrefDOverride" // Directory for per-profile defaults
+#define NS_APP_PREFS_SYSTEM_CONFIG_DIR "PrefSysConf" // Directory with system-wide configuration
#define NS_APP_USER_PROFILE_50_DIR "ProfD"
#define NS_APP_USER_PROFILE_LOCAL_50_DIR "ProfLD"

View File

@ -1,13 +0,0 @@
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 =
#if GTK_CHECK_VERSION(3, 4, 0)
GDK_SMOOTH_SCROLL_MASK | GDK_TOUCH_MASK |
#endif
- GDK_SCROLL_MASK | GDK_POINTER_MOTION_MASK | GDK_PROPERTY_CHANGE_MASK;
+ GDK_SCROLL_MASK | GDK_POINTER_MOTION_MASK | GDK_PROPERTY_CHANGE_MASK |
+ GDK_FOCUS_CHANGE_MASK;
/* utility functions */
static bool is_mouse_in_window(GdkWindow *aWindow, gdouble aMouseX,

View File

@ -1,12 +0,0 @@
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 "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 "SkNx_neon.h"
#else

View File

@ -0,0 +1,95 @@
diff -up firefox-115.0.2/extensions/pref/autoconfig/src/nsReadConfig.cpp.1170092 firefox-115.0.2/extensions/pref/autoconfig/src/nsReadConfig.cpp
--- firefox-115.0.2/extensions/pref/autoconfig/src/nsReadConfig.cpp.1170092 2023-07-10 21:08:53.000000000 +0200
+++ firefox-115.0.2/extensions/pref/autoconfig/src/nsReadConfig.cpp 2023-07-17 10:33:23.443355156 +0200
@@ -263,8 +263,20 @@ nsresult nsReadConfig::openAndEvaluateJS
if (NS_FAILED(rv)) return rv;
rv = NS_NewLocalFileInputStream(getter_AddRefs(inStr), jsFile);
- if (NS_FAILED(rv)) return rv;
+ if (NS_FAILED(rv)) {
+ // Look for cfg file in /etc/<application>/pref
+ rv = NS_GetSpecialDirectory(NS_APP_PREFS_SYSTEM_CONFIG_DIR,
+ getter_AddRefs(jsFile));
+ NS_ENSURE_SUCCESS(rv, rv);
+
+ rv = jsFile->AppendNative(nsLiteralCString("pref"));
+ NS_ENSURE_SUCCESS(rv, rv);
+ rv = jsFile->AppendNative(nsDependentCString(aFileName));
+ NS_ENSURE_SUCCESS(rv, rv);
+ rv = NS_NewLocalFileInputStream(getter_AddRefs(inStr), jsFile);
+ NS_ENSURE_SUCCESS(rv, rv);
+ }
} else {
nsAutoCString location("resource://gre/defaults/autoconfig/");
location += aFileName;
diff -up firefox-115.0.2/modules/libpref/Preferences.cpp.1170092 firefox-115.0.2/modules/libpref/Preferences.cpp
--- firefox-115.0.2/modules/libpref/Preferences.cpp.1170092 2023-07-10 21:09:00.000000000 +0200
+++ firefox-115.0.2/modules/libpref/Preferences.cpp 2023-07-17 10:33:23.444355156 +0200
@@ -4825,6 +4825,9 @@ nsresult Preferences::InitInitialObjects
//
// 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 = NS_ERROR_FAILURE;
UniquePtr<nsZipFind> find;
diff -up firefox-115.0.2/toolkit/xre/nsXREDirProvider.cpp.1170092 firefox-115.0.2/toolkit/xre/nsXREDirProvider.cpp
--- firefox-115.0.2/toolkit/xre/nsXREDirProvider.cpp.1170092 2023-07-10 22:57:20.000000000 +0200
+++ firefox-115.0.2/toolkit/xre/nsXREDirProvider.cpp 2023-07-17 10:56:25.309692121 +0200
@@ -72,6 +72,7 @@
#endif
#ifdef XP_UNIX
# include <ctype.h>
+# include "nsIXULAppInfo.h"
#endif
#ifdef XP_IOS
# include "UIKitDirProvider.h"
@@ -478,6 +479,17 @@ nsXREDirProvider::GetFile(const char* aP
rv = file->AppendNative(nsLiteralCString(PREF_OVERRIDE_DIRNAME));
NS_ENSURE_SUCCESS(rv, rv);
rv = EnsureDirectoryExists(file);
+ } else if (!strcmp(aProperty, NS_APP_PREFS_SYSTEM_CONFIG_DIR)) {
+ nsCString sysConfigDir = nsLiteralCString("/etc/");
+ nsCOMPtr<nsIXULAppInfo> appInfo = do_GetService("@mozilla.org/xre/app-info;1");
+ if (!appInfo)
+ return NS_ERROR_NOT_AVAILABLE;
+ nsCString appName;
+ appInfo->GetName(appName);
+ ToLowerCase(appName);
+ sysConfigDir.Append(appName);
+ NS_NewNativeLocalFile(sysConfigDir, false, getter_AddRefs(file));
+ rv = EnsureDirectoryExists(file);
} else {
// We don't know anything about this property. Fail without warning, because
// otherwise we'll get too much warning spam due to
@@ -694,6 +706,16 @@ nsXREDirProvider::GetFiles(const char* a
}
#endif
+ // Add /etc/<application>/pref/ directory if it exists
+ nsCOMPtr<nsIFile> systemPrefDir;
+ rv = NS_GetSpecialDirectory(NS_APP_PREFS_SYSTEM_CONFIG_DIR,
+ getter_AddRefs(systemPrefDir));
+ if (NS_SUCCEEDED(rv)) {
+ rv = systemPrefDir->AppendNative(nsLiteralCString("pref"));
+ if (NS_SUCCEEDED(rv))
+ directories.AppendObject(systemPrefDir);
+ }
+
rv = NS_NewArrayEnumerator(aResult, directories, NS_GET_IID(nsIFile));
} else if (!strcmp(aProperty, NS_APP_CHROME_DIR_LIST)) {
// NS_APP_CHROME_DIR_LIST is only used to get default (native) icons
diff -up firefox-115.0.2/xpcom/io/nsAppDirectoryServiceDefs.h.1170092 firefox-115.0.2/xpcom/io/nsAppDirectoryServiceDefs.h
--- firefox-115.0.2/xpcom/io/nsAppDirectoryServiceDefs.h.1170092 2023-07-10 21:09:13.000000000 +0200
+++ firefox-115.0.2/xpcom/io/nsAppDirectoryServiceDefs.h 2023-07-17 10:33:23.444355156 +0200
@@ -58,6 +58,7 @@
#define NS_APP_PREFS_DEFAULTS_DIR_LIST "PrefDL"
#define NS_APP_PREFS_OVERRIDE_DIR \
"PrefDOverride" // Directory for per-profile defaults
+#define NS_APP_PREFS_SYSTEM_CONFIG_DIR "PrefSysConf" // Directory with system-wide configuration
#define NS_APP_USER_PROFILE_50_DIR "ProfD"
#define NS_APP_USER_PROFILE_LOCAL_50_DIR "ProfLD"

View File

@ -0,0 +1,89 @@
# HG changeset patch
# Parent 9fcbd287056a40084b1e679f787bf683b291f323
Taken from https://bugzilla.mozilla.org/show_bug.cgi?id=1504834
diff --git a/gfx/2d/DrawTargetSkia.cpp b/gfx/2d/DrawTargetSkia.cpp
--- a/gfx/2d/DrawTargetSkia.cpp
+++ b/gfx/2d/DrawTargetSkia.cpp
@@ -156,7 +156,8 @@ static IntRect CalculateSurfaceBounds(co
}
static const int kARGBAlphaOffset =
- SurfaceFormat::A8R8G8B8_UINT32 == SurfaceFormat::B8G8R8A8 ? 3 : 0;
+ 0; // Skia is always BGRA SurfaceFormat::A8R8G8B8_UINT32 ==
+ // SurfaceFormat::B8G8R8A8 ? 3 : 0;
static bool VerifyRGBXFormat(uint8_t* aData, const IntSize& aSize,
const int32_t aStride, SurfaceFormat aFormat) {
diff --git a/gfx/2d/Types.h b/gfx/2d/Types.h
--- a/gfx/2d/Types.h
+++ b/gfx/2d/Types.h
@@ -89,18 +89,11 @@ enum class SurfaceFormat : int8_t {
// This represents the unknown format.
UNKNOWN, // TODO: Replace uses with Maybe<SurfaceFormat>.
-// The following values are endian-independent synonyms. The _UINT32 suffix
-// indicates that the name reflects the layout when viewed as a uint32_t
-// value.
-#if MOZ_LITTLE_ENDIAN()
+ // The following values are endian-independent synonyms. The _UINT32 suffix
+ // indicates that the name reflects the layout when viewed as a uint32_t
+ // value.
A8R8G8B8_UINT32 = B8G8R8A8, // 0xAARRGGBB
X8R8G8B8_UINT32 = B8G8R8X8, // 0x00RRGGBB
-#elif MOZ_BIG_ENDIAN()
- A8R8G8B8_UINT32 = A8R8G8B8, // 0xAARRGGBB
- X8R8G8B8_UINT32 = X8R8G8B8, // 0x00RRGGBB
-#else
-# error "bad endianness"
-#endif
// The following values are OS and endian-independent synonyms.
//
diff --git a/gfx/skia/skia/modules/skcms/skcms.cc b/gfx/skia/skia/modules/skcms/skcms.cc
--- a/gfx/skia/skia/modules/skcms/skcms.cc
+++ b/gfx/skia/skia/modules/skcms/skcms.cc
@@ -30,6 +30,8 @@
#include <avx512fintrin.h>
#include <avx512dqintrin.h>
#endif
+#else
+ #define SKCMS_PORTABLE
#endif
static bool runtime_cpu_detection = true;
@@ -324,20 +326,28 @@ enum {
static uint16_t read_big_u16(const uint8_t* ptr) {
uint16_t be;
memcpy(&be, ptr, sizeof(be));
-#if defined(_MSC_VER)
- return _byteswap_ushort(be);
+#if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
+ return be;
#else
- return __builtin_bswap16(be);
+ #if defined(_MSC_VER)
+ return _byteswap_ushort(be);
+ #else
+ return __builtin_bswap16(be);
+ #endif
#endif
}
static uint32_t read_big_u32(const uint8_t* ptr) {
uint32_t be;
memcpy(&be, ptr, sizeof(be));
-#if defined(_MSC_VER)
- return _byteswap_ulong(be);
+#if __BYTE_ORDER == __ORDER_BIG_ENDIAN__
+ return be;
#else
- return __builtin_bswap32(be);
+ #if defined(_MSC_VER)
+ return _byteswap_ulong(be);
+ #else
+ return __builtin_bswap32(be);
+ #endif
#endif
}

View File

@ -0,0 +1,17 @@
# HG changeset patch
# Parent 09cd4ac2cc607e85aa572425b824fbab386af607
For FF68, AntiAliasing of XULTexts seem to be broken on big endian (s390x). Text and icons of the sandwich-menu to the
right of the address bar, as well as plugin-windows appears transparant, which usually means unreadable (white on white).
diff --git a/gfx/skia/skia/src/opts/SkBlitMask_opts.h b/gfx/skia/skia/src/opts/SkBlitMask_opts.h
--- a/gfx/skia/skia/src/opts/SkBlitMask_opts.h
+++ b/gfx/skia/skia/src/opts/SkBlitMask_opts.h
@@ -210,6 +210,8 @@ namespace SK_OPTS_NS {
// ~~~>
// a = 1*aa + d(1-1*aa) = aa + d(1-aa)
// c = 0*aa + d(1-1*aa) = d(1-aa)
+ // TODO: Check this for endian-issues!
+ // Do we need to switch 255 to the front for all of those tuples?
return (aa & Sk4px(skvx::byte16{0,0,0,255, 0,0,0,255, 0,0,0,255, 0,0,0,255}))
+ d.approxMulDiv255(aa.inv());
};

View File

@ -0,0 +1,69 @@
diff -up firefox-115.0/dom/media/mp4/MP4Demuxer.cpp.1670333 firefox-115.0/dom/media/mp4/MP4Demuxer.cpp
--- firefox-115.0/dom/media/mp4/MP4Demuxer.cpp.1670333 2023-06-06 23:14:43.000000000 +0200
+++ firefox-115.0/dom/media/mp4/MP4Demuxer.cpp 2023-06-08 08:15:48.214109403 +0200
@@ -32,6 +32,8 @@ mozilla::LogModule* GetDemuxerLog() { re
DDMOZ_LOG(gMediaDemuxerLog, mozilla::LogLevel::Debug, "::%s: " arg, \
__func__, ##__VA_ARGS__)
+extern bool gUseKeyframeFromContainer;
+
namespace mozilla {
using TimeUnit = media::TimeUnit;
@@ -404,6 +406,12 @@ already_AddRefed<MediaRawData> MP4TrackD
[[fallthrough]];
case H264::FrameType::OTHER: {
bool keyframe = type == H264::FrameType::I_FRAME;
+ if (gUseKeyframeFromContainer) {
+ if (sample->mKeyframe && sample->mKeyframe != keyframe) {
+ sample->mKeyframe = keyframe;
+ }
+ break;
+ }
if (sample->mKeyframe != keyframe) {
NS_WARNING(nsPrintfCString("Frame incorrectly marked as %skeyframe "
"@ pts:%" PRId64 " dur:%" PRId64
diff -up firefox-115.0/dom/media/platforms/PDMFactory.cpp.1670333 firefox-115.0/dom/media/platforms/PDMFactory.cpp
--- firefox-115.0/dom/media/platforms/PDMFactory.cpp.1670333 2023-06-06 23:14:44.000000000 +0200
+++ firefox-115.0/dom/media/platforms/PDMFactory.cpp 2023-06-08 08:09:33.145289602 +0200
@@ -67,6 +67,8 @@
#include <functional>
+bool gUseKeyframeFromContainer = false;
+
using DecodeSupport = mozilla::media::DecodeSupport;
using DecodeSupportSet = mozilla::media::DecodeSupportSet;
using MediaCodec = mozilla::media::MediaCodec;
@@ -562,7 +564,7 @@ void PDMFactory::CreateRddPDMs() {
#ifdef MOZ_FFMPEG
if (StaticPrefs::media_ffmpeg_enabled() &&
StaticPrefs::media_rdd_ffmpeg_enabled() &&
- !CreateAndStartupPDM<FFmpegRuntimeLinker>()) {
+ !(mFFmpegUsed = CreateAndStartupPDM<FFmpegRuntimeLinker>())) {
mFailureFlags += GetFailureFlagBasedOnFFmpegStatus(
FFmpegRuntimeLinker::LinkStatusCode());
}
@@ -738,9 +740,10 @@ void PDMFactory::CreateDefaultPDMs() {
CreateAndStartupPDM<AgnosticDecoderModule>();
- if (StaticPrefs::media_gmp_decoder_enabled() &&
+ if (StaticPrefs::media_gmp_decoder_enabled() && !mFFmpegUsed &&
!StartupPDM(GMPDecoderModule::Create(),
StaticPrefs::media_gmp_decoder_preferred())) {
+ gUseKeyframeFromContainer = true;
mFailureFlags += DecoderDoctorDiagnostics::Flags::GMPPDMFailedToStartup;
}
}
diff -up firefox-115.0/dom/media/platforms/PDMFactory.h.1670333 firefox-115.0/dom/media/platforms/PDMFactory.h
--- firefox-115.0/dom/media/platforms/PDMFactory.h.1670333 2023-06-06 23:14:42.000000000 +0200
+++ firefox-115.0/dom/media/platforms/PDMFactory.h 2023-06-08 08:09:33.145289602 +0200
@@ -103,6 +103,7 @@ class PDMFactory final {
RefPtr<PlatformDecoderModule> mNullPDM;
DecoderDoctorDiagnostics::FlagsSet mFailureFlags;
+ bool mFFmpegUsed = false;
friend class RemoteVideoDecoderParent;
static void EnsureInit();

View File

@ -0,0 +1,29 @@
# HG changeset patch
# User M. Sirringhaus <msirringhaus@suse.de>
# Date 1645518286 -3600
# Tue Feb 22 09:24:46 2022 +0100
# Node ID 81832d035e101471dcf52dd91de287268add7a91
# Parent 66f7ce16eb4965108687280e5443edd610631efb
imported patch svg-rendering.patch
diff --git a/image/imgFrame.cpp b/image/imgFrame.cpp
--- a/image/imgFrame.cpp
+++ b/image/imgFrame.cpp
@@ -372,6 +372,17 @@ nsresult imgFrame::InitWithDrawable(gfxD
return NS_ERROR_OUT_OF_MEMORY;
}
+#if MOZ_BIG_ENDIAN()
+ if (aBackend == gfx::BackendType::SKIA && canUseDataSurface) {
+ // SKIA is lying about what format it returns on big endian
+ for (int ii=0; ii < mRawSurface->GetSize().Height()*mRawSurface->Stride() / 4; ++ii) {
+ uint32_t *vals = (uint32_t*)(mRawSurface->GetData());
+ uint32_t val = ((vals[ii] << 8) & 0xFF00FF00 ) | ((vals[ii] >> 8) & 0xFF00FF );
+ vals[ii] = (val << 16) | (val >> 16);
+ }
+ }
+#endif
+
if (!canUseDataSurface) {
// We used an offscreen surface, which is an "optimized" surface from
// imgFrame's perspective.

View File

@ -0,0 +1,34 @@
# HG changeset patch
# User M. Sirringhaus <msirringhaus@suse.de>
# Date 1645518286 -3600
# Tue Feb 22 09:24:46 2022 +0100
# Node ID 494640792b4677f6462e95b90a54a4e22aeb738b
# Parent 81832d035e101471dcf52dd91de287268add7a91
imported patch one_swizzle_to_rule_them_all.patch
Index: firefox-102.0/gfx/webrender_bindings/RenderCompositorSWGL.cpp
===================================================================
--- firefox-102.0.orig/gfx/webrender_bindings/RenderCompositorSWGL.cpp
+++ firefox-102.0/gfx/webrender_bindings/RenderCompositorSWGL.cpp
@@ -7,6 +7,7 @@
#include "RenderCompositorSWGL.h"
#include "mozilla/gfx/Logging.h"
+#include "mozilla/gfx/Swizzle.h"
#include "mozilla/widget/CompositorWidget.h"
#ifdef MOZ_WIDGET_GTK
@@ -235,6 +237,13 @@ void RenderCompositorSWGL::CommitMappedB
}
mDT->Flush();
+#if MOZ_BIG_ENDIAN()
+ // One swizzle to rule them all.
+ gfx::SwizzleData(mMappedData, mMappedStride, gfx::SurfaceFormat::B8G8R8A8,
+ mMappedData, mMappedStride, gfx::SurfaceFormat::A8R8G8B8,
+ mDT->GetSize());
+#endif
+
// Done with the DT. Hand it back to the widget and clear out any trace of it.
mWidget->EndRemoteDrawingInRegion(mDT, mDirtyRegion);
mDirtyRegion.SetEmpty();

View File

@ -0,0 +1,89 @@
diff --git a/media/ffvpx/libavcodec/allcodecs.c b/media/ffvpx/libavcodec/allcodecs.c
--- a/media/ffvpx/libavcodec/allcodecs.c
+++ b/media/ffvpx/libavcodec/allcodecs.c
@@ -755,12 +755,15 @@
extern FFCodec ff_libaom_av1_encoder;
extern const FFCodec ff_libaribb24_decoder;
extern const FFCodec ff_libcelt_decoder;
extern const FFCodec ff_libcodec2_encoder;
extern const FFCodec ff_libcodec2_decoder;
+#if CONFIG_MOZ_AV1
extern const FFCodec ff_libdav1d_decoder;
extern const FFCodec ff_libdavs2_decoder;
+extern const FFCodec ff_libuavs3d_decoder;
+#endif
extern const FFCodec ff_libfdk_aac_encoder;
extern const FFCodec ff_libfdk_aac_decoder;
extern const FFCodec ff_libgsm_encoder;
extern const FFCodec ff_libgsm_decoder;
extern const FFCodec ff_libgsm_ms_encoder;
@@ -783,11 +786,10 @@
extern const FFCodec ff_libspeex_encoder;
extern const FFCodec ff_libspeex_decoder;
extern const FFCodec ff_libsvtav1_encoder;
extern const FFCodec ff_libtheora_encoder;
extern const FFCodec ff_libtwolame_encoder;
-extern const FFCodec ff_libuavs3d_decoder;
extern const FFCodec ff_libvo_amrwbenc_encoder;
extern const FFCodec ff_libvorbis_encoder;
extern const FFCodec ff_libvorbis_decoder;
extern const FFCodec ff_libvpx_vp8_encoder;
extern const FFCodec ff_libvpx_vp8_decoder;
diff --git a/media/ffvpx/libavcodec/codec_list.c b/media/ffvpx/libavcodec/codec_list.c
--- a/media/ffvpx/libavcodec/codec_list.c
+++ b/media/ffvpx/libavcodec/codec_list.c
@@ -9,12 +9,14 @@
&ff_flac_decoder,
#endif
#if CONFIG_MP3_DECODER
&ff_mp3_decoder,
#endif
+#if CONFIG_MOZ_AV1
#if CONFIG_LIBDAV1D
&ff_libdav1d_decoder,
#endif
#if CONFIG_AV1_DECODER
&ff_av1_decoder,
#endif
+#endif
NULL };
diff --git a/media/ffvpx/libavcodec/moz.build b/media/ffvpx/libavcodec/moz.build
--- a/media/ffvpx/libavcodec/moz.build
+++ b/media/ffvpx/libavcodec/moz.build
@@ -84,11 +84,10 @@
'cbs.c',
'cbs_av1.c',
'golomb.c',
'h264pred.c',
'imgconvert.c',
- 'libdav1d.c',
'mathtables.c',
'qsv_api.c',
'raw.c',
'videodsp.c',
'vp8.c',
@@ -107,14 +106,19 @@
'vp9mvs.c',
'vp9prob.c',
'vp9recon.c',
'vpx_rac.c',
]
- USE_LIBS += [
- 'dav1d',
- 'media_libdav1d_asm',
- ]
+ if CONFIG['MOZ_AV1']:
+ USE_LIBS += [
+ 'dav1d',
+ 'media_libdav1d_asm',
+ ]
+ SOURCES += [
+ 'libdav1d.c',
+ ]
+
if CONFIG['MOZ_WAYLAND']:
LOCAL_INCLUDES += ['/media/mozva']
SOURCES += [
'vaapi_av1.c',
'vaapi_decode.c',

View File

@ -0,0 +1,26 @@
# HG changeset patch
# Parent 3de59fe1b8708c01e134ce698c4232b8a854f617
Problem: webGL sites are displayed in the wrong color (usually blue-ish)
Solution: Problem is with skia once again. Output of webgl seems endian-correct, but skia only
knows how to deal with little endian.
So we swizzle the output of webgl after reading it from readpixels()
Note: This does not fix all webGL sites, but is a step in the right direction
Index: firefox-115.0/gfx/gl/GLContext.h
===================================================================
--- firefox-115.0.orig/gfx/gl/GLContext.h
+++ firefox-115.0/gfx/gl/GLContext.h
@@ -1560,6 +1560,13 @@ class GLContext : public GenericAtomicRe
BEFORE_GL_CALL;
mSymbols.fReadPixels(x, y, width, height, format, type, pixels);
OnSyncCall();
+#if MOZ_BIG_ENDIAN()
+ uint8_t* itr = (uint8_t*)pixels;
+ for (GLsizei i = 0; i < width * height; i++) {
+ NativeEndian::swapToLittleEndianInPlace((uint32_t*)itr, 1);
+ itr += 4;
+ }
+#endif
AFTER_GL_CALL;
mHeavyGLCallsSinceLastFlush = true;
}

View File

@ -0,0 +1,29 @@
# HG changeset patch
# User msirringhaus@suse.de
# Date 1583738770 -3600
# Mon Mar 09 08:26:10 2020 +0100
# Node ID 34676feac1a542e409e22acf5b98735f8313b1ce
# Parent 506857dace0a08d1c9685e3ac264646590b3e27f
[mq]: mozilla-bmo998749.patch
diff -r 506857dace0a -r 34676feac1a5 gfx/2d/FilterProcessing.h
--- a/gfx/2d/FilterProcessing.h Fri Feb 28 12:31:51 2020 +0100
+++ b/gfx/2d/FilterProcessing.h Mon Mar 09 08:26:10 2020 +0100
@@ -13,10 +13,17 @@
namespace mozilla {
namespace gfx {
+#if MOZ_BIG_ENDIAN()
+const ptrdiff_t B8G8R8A8_COMPONENT_BYTEOFFSET_B = 3;
+const ptrdiff_t B8G8R8A8_COMPONENT_BYTEOFFSET_G = 2;
+const ptrdiff_t B8G8R8A8_COMPONENT_BYTEOFFSET_R = 1;
+const ptrdiff_t B8G8R8A8_COMPONENT_BYTEOFFSET_A = 0;
+#else
const ptrdiff_t B8G8R8A8_COMPONENT_BYTEOFFSET_B = 0;
const ptrdiff_t B8G8R8A8_COMPONENT_BYTEOFFSET_G = 1;
const ptrdiff_t B8G8R8A8_COMPONENT_BYTEOFFSET_R = 2;
const ptrdiff_t B8G8R8A8_COMPONENT_BYTEOFFSET_A = 3;
+#endif
class FilterProcessing {
public:

View File

@ -1,14 +0,0 @@
diff -up firefox-52.0/gfx/skia/skia/include/core/SkPreConfig.h.arm firefox-52.0/gfx/skia/skia/include/core/SkPreConfig.h
--- firefox-52.0/gfx/skia/skia/include/core/SkPreConfig.h.arm 2017-03-03 13:53:52.480754536 +0100
+++ firefox-52.0/gfx/skia/skia/include/core/SkPreConfig.h 2017-03-03 13:56:01.476018102 +0100
@@ -203,6 +203,10 @@
#define SK_ARM_HAS_CRC32
#endif
+#if defined(__aarch64__)
+ #undef SK_ARM_HAS_NEON
+#endif
+
//////////////////////////////////////////////////////////////////////
#if !defined(SKIA_IMPLEMENTATION)

View File

@ -1,12 +0,0 @@
diff -up firefox-68.0/config/makefiles/rust.mk.old firefox-68.0/config/makefiles/rust.mk
--- firefox-68.0/config/makefiles/rust.mk.old 2019-06-05 10:33:34.290128660 +0200
+++ firefox-68.0/config/makefiles/rust.mk 2019-06-05 10:33:59.835052814 +0200
@@ -47,7 +47,7 @@ cargo_rustc_flags = $(CARGO_RUSTCFLAGS)
ifndef DEVELOPER_OPTIONS
ifndef MOZ_DEBUG_RUST
# Enable link-time optimization for release builds.
-cargo_rustc_flags += -C lto
+#cargo_rustc_flags += -C lto
endif
endif

View File

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

View File

@ -1,12 +0,0 @@
diff -up firefox-68.0/security/nss/lib/freebl/mpi/mpcpucache.c.old firefox-68.0/security/nss/lib/freebl/mpi/mpcpucache.c
--- firefox-68.0/security/nss/lib/freebl/mpi/mpcpucache.c.old 2019-07-26 07:09:02.383303420 +0200
+++ firefox-68.0/security/nss/lib/freebl/mpi/mpcpucache.c 2019-07-26 07:09:27.228193798 +0200
@@ -727,7 +727,7 @@ static inline void
dcbzl(char *array)
{
register char *a asm("r2") = array;
- __asm__ __volatile__("dcbzl %0,r0"
+ __asm__ __volatile__("dcbzl %0,0"
: "=r"(a)
: "0"(a));
}

View File

@ -0,0 +1,7 @@
sed -i 's@%{bundled_install_path}@%{_buildrootdir}%{bundled_install_path}@g' %{_buildrootdir}%{bundled_install_path}/%{_lib}/pkgconfig/nss*.pc
export LDFLAGS="-L%{_buildrootdir}%{bundled_install_path}/%{_lib} $LDFLAGS"
export LDFLAGS="-Wl,-rpath,%{bundled_install_path}/%{_lib} $LDFLAGS"
export LDFLAGS="-Wl,-rpath-link,%{_buildrootdir}%{bundled_install_path}/%{_lib} $LDFLAGS"
export PKG_CONFIG_PATH=%{_buildrootdir}%{bundled_install_path}/%{_lib}/pkgconfig
export PATH="{_buildrootdir}%{bundled_install_path}/bin:$PATH"

View File

@ -0,0 +1,23 @@
#!/bin/sh
rm -rf ./process-tarball-dir
mkdir ./process-tarball-dir
tar -xJf $1 --directory process-tarball-dir
rm -vf ./process-tarball-dir/*/testing/web-platform/tests/conformance-checkers/html-rdfa/0030-isvalid.html
rm -vf ./process-tarball-dir/*/testing/web-platform/tests/conformance-checkers/html-rdfa/0008-isvalid.html
rm -vf ./process-tarball-dir/*/testing/web-platform/tests/conformance-checkers/html-rdfalite/0030-isvalid.html
rm -vf ./process-tarball-dir/*/testing/web-platform/tests/css/css-ui/support/cursors/woolly-64.svg
rm -vf ./process-tarball-dir/*/testing/web-platform/tests/css/css-ui/support/cursors/woolly.svg
rm -vf ./process-tarball-dir/*/testing/web-platform/tests/conformance-checkers/html-rdfa/0230-novalid.html
rm -vf ./process-tarball-dir/*/testing/web-platform/tests/conformance-checkers/html-rdfa/0231-isvalid.html
rm -vf ./process-tarball-dir/*/layout/inspector/tests/chrome/test_fontVariationsAPI.css
processed_tarball=${1/source/processed-source}
cd ./process-tarball-dir
tar -cf - ./* | xz -9 -T 0 -f > $processed_tarball
mv $processed_tarball ..
cd ..
rm -rf ./process-tarball-dir

View File

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

View File

@ -1,17 +0,0 @@
diff -up Python-2.7.13/configure.build Python-2.7.13/configure
--- Python-2.7.13/configure.build 2019-06-04 13:32:12.772134075 +0200
+++ Python-2.7.13/configure 2019-06-04 13:32:26.140144601 +0200
@@ -6018,11 +6018,11 @@ then
# debug builds.
OPT="-g -O0 -Wall $STRICT_PROTO"
else
- OPT="-g $WRAP -O3 -Wall $STRICT_PROTO"
+ OPT="-g $WRAP -O2 -Wall $STRICT_PROTO"
fi
;;
*)
- OPT="-O3 -Wall $STRICT_PROTO"
+ OPT="-O2 -Wall $STRICT_PROTO"
;;
esac
case $ac_sys_system in

View File

@ -1,12 +0,0 @@
diff -up firefox-68.0/python/mozbuild/mozbuild/controller/building.py.old firefox-68.0/python/mozbuild/mozbuild/controller/building.py
--- firefox-68.0/python/mozbuild/mozbuild/controller/building.py.old 2019-05-29 10:46:55.403262995 +0200
+++ firefox-68.0/python/mozbuild/mozbuild/controller/building.py 2019-05-29 10:47:42.691176970 +0200
@@ -571,7 +571,7 @@ class TerminalLoggingHandler(logging.Han
if self.footer:
self.footer.clear()
- self.fh.write(msg)
+ self.fh.write(msg.encode("utf-8"))
self.fh.write('\n')
if self.footer:

View File

@ -1,12 +0,0 @@
diff -up python3/Python-3.6.8/configure.old python3/Python-3.6.8/configure
--- Python-3.6.8/configure.old 2019-10-01 12:56:35.074551835 +0200
+++ Python-3.6.8/configure 2019-10-01 12:56:44.240517798 +0200
@@ -11438,7 +11438,7 @@ for ac_func in alarm accept4 setitimer g
sigaction sigaltstack siginterrupt sigpending sigrelse \
sigtimedwait sigwait sigwaitinfo snprintf strftime strlcpy symlinkat sync \
sysconf tcgetpgrp tcsetpgrp tempnam timegm times tmpfile tmpnam tmpnam_r \
- truncate uname unlinkat unsetenv utimensat utimes waitid waitpid wait3 wait4 \
+ truncate uname unlinkat unsetenv utimes waitid waitpid wait3 wait4 \
wcscoll wcsftime wcsxfrm wmemcmp writev _getpty
do :
as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`

View File

@ -0,0 +1,12 @@
diff -up firefox-70.0/layout/base/PresShell.h.1354671 firefox-70.0/layout/base/PresShell.h
--- firefox-70.0/layout/base/PresShell.h.1354671 2019-10-22 12:33:12.987775587 +0200
+++ firefox-70.0/layout/base/PresShell.h 2019-10-22 12:36:39.999366086 +0200
@@ -257,7 +257,7 @@ class PresShell final : public nsStubDoc
* 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) {
#define FRAME_ID(classname, ...) \
static_assert(size_t(nsQueryFrame::FrameIID::classname##_id) == \
size_t(eArenaObjectID_##classname), \

View File

@ -1,19 +0,0 @@
diff -up firefox-60.5.0/security/certverifier/NSSCertDBTrustDomain.cpp.1503632-nss firefox-60.5.0/security/certverifier/NSSCertDBTrustDomain.cpp
--- firefox-60.5.0/security/certverifier/NSSCertDBTrustDomain.cpp.1503632-nss 2019-01-22 11:38:49.484365928 +0100
+++ firefox-60.5.0/security/certverifier/NSSCertDBTrustDomain.cpp 2019-01-22 11:40:52.694779150 +0100
@@ -1077,13 +1077,11 @@ SECStatus InitializeNSS(const nsACString
if (!loadPKCS11Modules) {
flags |= NSS_INIT_NOMODDB;
}
- nsAutoCString dbTypeAndDirectory("sql:");
- dbTypeAndDirectory.Append(dir);
MOZ_LOG(gCertVerifierLog, LogLevel::Debug,
- ("InitializeNSS(%s, %d, %d)", dbTypeAndDirectory.get(), readOnly,
+ ("InitializeNSS(%s, %d, %d)", PromiseFlatCString(dir).get(), readOnly,
loadPKCS11Modules));
SECStatus srv =
- NSS_Initialize(dbTypeAndDirectory.get(), "", "", SECMOD_DB, flags);
+ NSS_Initialize(PromiseFlatCString(dir).get(), "", "", SECMOD_DB, flags);
if (srv != SECSuccess) {
return srv;
}

View File

@ -1,105 +0,0 @@
diff -up firefox-68.0/config/makefiles/rust.mk.rust-network-check firefox-68.0/config/makefiles/rust.mk
--- firefox-68.0/config/makefiles/rust.mk.rust-network-check 2019-06-06 10:29:18.984737603 +0200
+++ firefox-68.0/config/makefiles/rust.mk 2019-06-06 11:39:51.581028835 +0200
@@ -127,7 +127,7 @@ export RUST_BACKTRACE=full
export MOZ_TOPOBJDIR=$(topobjdir)
target_rust_ltoable := force-cargo-library-build
-target_rust_nonltoable := force-cargo-test-run force-cargo-library-check $(foreach b,build check,force-cargo-program-$(b))
+target_rust_nonltoable := force-cargo-test-run $(foreach b,build check,force-cargo-program-$(b))
$(target_rust_ltoable): RUSTFLAGS:=$(rustflags_override) $(RUSTFLAGS) $(if $(MOZ_LTO_RUST),-Clinker-plugin-lto)
$(target_rust_nonltoable): RUSTFLAGS:=$(rustflags_override) $(RUSTFLAGS)
@@ -238,19 +238,9 @@ force-cargo-library-build:
$(call CARGO_BUILD) --lib $(cargo_target_flag) $(rust_features_flag) -- $(cargo_rustc_flags)
$(RUST_LIBRARY_FILE): force-cargo-library-build
-# When we are building in --enable-release mode; we add an additional check to confirm
-# that we are not importing any networking-related functions in rust code. This reduces
-# the chance of proxy bypasses originating from rust code.
-ifndef DEVELOPER_OPTIONS
-ifndef MOZ_DEBUG_RUST
-ifeq ($(OS_ARCH), Linux)
- $(call py_action,check_binary,--target --networking $@)
-endif
-endif
-endif
force-cargo-library-check:
- $(call CARGO_CHECK) --lib $(cargo_target_flag) $(rust_features_flag)
+ @true
else
force-cargo-library-check:
@true
diff -up firefox-68.0/python/mozbuild/mozbuild/action/check_binary.py.rust-network-check firefox-68.0/python/mozbuild/mozbuild/action/check_binary.py
--- firefox-68.0/python/mozbuild/mozbuild/action/check_binary.py.rust-network-check 2019-05-20 18:17:57.000000000 +0200
+++ firefox-68.0/python/mozbuild/mozbuild/action/check_binary.py 2019-06-06 10:29:18.986737599 +0200
@@ -250,43 +250,6 @@ def check_mozglue_order(target, binary):
raise RuntimeError('Could not parse readelf output?')
-def check_networking(binary):
- retcode = 0
- networking_functions = set([
- # socketpair is not concerning; it is restricted to AF_UNIX
- "socket", "connect", "accept", "bind", "listen",
- "getsockname", "getsockopt", "setsockopt",
- "recv", "recvfrom",
- "send", "sendto",
- # We would be concerned by recvmsg and sendmsg; but we believe
- # they are okay as documented in 1376621#c23
- "gethostbyname", "gethostbyaddr", "gethostent", "sethostent", "endhostent",
- "gethostent_r", "gethostbyname2", "gethostbyaddr_r", "gethostbyname_r",
- "gethostbyname2_r",
- "getaddrinfo", "getservent", "getservbyname", "getservbyport", "setservent",
- "getprotoent", "getprotobyname", "getprotobynumber", "setprotoent",
- "endprotoent"])
- bad_occurences_names = set()
-
- try:
- for sym in at_least_one(iter_symbols(binary)):
- if sym['addr'] == 0 and sym['name'] in networking_functions:
- bad_occurences_names.add(sym['name'])
- except Empty:
- raise RuntimeError('Could not parse llvm-objdump output?')
-
- basename = os.path.basename(binary)
- if bad_occurences_names:
- s = 'TEST-UNEXPECTED-FAIL | check_networking | {} | Identified {} ' + \
- 'networking function(s) being imported in the rust static library ({})'
- print(s.format(basename, len(bad_occurences_names),
- ",".join(sorted(bad_occurences_names))),
- file=sys.stderr)
- retcode = 1
- elif buildconfig.substs.get('MOZ_AUTOMATION'):
- print('TEST-PASS | check_networking | {}'.format(basename))
- return retcode
-
def checks(target, binary):
# The clang-plugin is built as target but is really a host binary.
# Cheat and pretend we were passed the right argument.
@@ -330,8 +293,6 @@ def main(args):
help='Perform checks for a host binary')
parser.add_argument('--target', action='store_true',
help='Perform checks for a target binary')
- parser.add_argument('--networking', action='store_true',
- help='Perform checks for networking functions')
parser.add_argument('binary', metavar='PATH',
help='Location of the binary to check')
@@ -343,14 +304,7 @@ def main(args):
file=sys.stderr)
return 1
- if options.networking and options.host:
- print('--networking is only valid with --target',
- file=sys.stderr)
- return 1
-
- if options.networking:
- return check_networking(options.binary)
- elif options.host:
+ if options.host:
return checks(HOST, options.binary)
elif options.target:
return checks(TARGET, options.binary)

View File

@ -1,27 +1,39 @@
ac_add_options --enable-application=comm/mail
ac_add_options --allow-addon-sideload
ac_add_options --disable-bootstrap
ac_add_options --disable-crashreporter
ac_add_options --disable-libjpeg-turbo
ac_add_options --disable-necko-wifi
#ac_add_options --disable-elf-hack
ac_add_options --disable-jemalloc
ac_add_options --disable-strip
ac_add_options --disable-tests
ac_add_options --disable-updater
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-default-toolkit=cairo-gtk3
ac_add_options --enable-chrome-format=omni
ac_add_options --enable-default-toolkit=cairo-gtk3-wayland
ac_add_options --enable-js-shell
ac_add_options --enable-necko-wifi
ac_add_options --enable-official-branding
ac_add_options --enable-official-branding
ac_add_options --enable-pulseaudio
ac_add_options --enable-release
ac_add_options --enable-startup-notification
ac_add_options --enable-system-ffi
ac_add_options --libdir="$LIBDIR"
ac_add_options --prefix="$PREFIX"
ac_add_options --without-system-libvpx
ac_add_options --update-channel=release
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 --with-mozilla-api-keyfile=../mozilla-api-key
ac_add_options --without-sysroot
ac_add_options --without-system-icu
ac_add_options --without-wasm-sandboxed-libraries
ac_add_options --with-system-jpeg
ac_add_options --with-system-jpeg
ac_add_options --with-system-zlib
ac_add_options --enable-update-channel=release
ac_add_options --disable-av1
ac_add_options --with-unsigned-addon-scopes=app,system
export BUILD_OFFICIAL=1
export MOZILLA_OFFICIAL=1
export MOZ_UPDATE_CHANNEL=release
mk_add_options BUILD_OFFICIAL=1
mk_add_options MOZ_CO_PROJECT=mail
mk_add_options MOZILLA_OFFICIAL=1

View File

@ -1,7 +1,7 @@
pref("app.update.enabled", false);
pref("app.update.autoInstallEnabled", false);
# Allow users to set custom colors
# pref("browser.display.use_system_colors", true);
/* Allow users to set custom colors*/
/* pref("browser.display.use_system_colors", true);*/
pref("general.useragent.vendor", "Red Hat");
pref("general.useragent.vendorSub", "THUNDERBIRD_RPM_VR");
pref("intl.locale.matchOS", true);
@ -9,17 +9,19 @@ pref("mail.shell.checkDefaultClient", false);
pref("toolkit.networkmanager.disable", false);
pref("offline.autoDetect", true);
# Disable global indexing by default
/* Disable global indexing by default*/
pref("mailnews.database.global.indexer.enabled", false);
# Do not switch to Smart Folders after upgrade to 3.0b4
/* Do not switch to Smart Folders after upgrade to 3.0b4 */
pref("mail.folder.views.version", "1");
pref("extensions.shownSelectionUI", true);
pref("extensions.autoDisableScope", 0);
pref("extensions.autoDisableScopes", 0);
# For rhbz#1024232
/* For rhbz#1024232 */
pref("ui.SpellCheckerUnderlineStyle", 1);
/* Workaround for rhbz#1753011 */
pref("spellchecker.dictionary_path", "/usr/share/myspell");
/* Workaround for rhbz#1134876 */
pref("javascript.options.baselinejit", false);
/* Workaround for rhbz#1110291 */
@ -28,3 +30,7 @@ pref("network.negotiate-auth.allow-insecure-ntlm-v1", true);
pref("security.use_mozillapkix_verification", false);
/* Use OS settings for UI language */
pref("intl.locale.requested", "");
/* Disable telemetry */
pref("datareporting.healthreport.uploadEnabled", false);
pref("datareporting.policy.dataSubmissionEnabled", false);
pref("toolkit.telemetry.archive.enabled", false);

View File

@ -1,30 +0,0 @@
pref("app.update.enabled", false);
pref("app.update.autoInstallEnabled", false);
# Allow users to set custom colors
# pref("browser.display.use_system_colors", true);
pref("general.useragent.vendor", "Red Hat");
pref("general.useragent.vendorSub", "THUNDERBIRD_RPM_VR");
pref("intl.locale.matchOS", true);
pref("mail.shell.checkDefaultClient", false);
pref("toolkit.networkmanager.disable", false);
pref("offline.autoDetect", true);
# Disable global indexing by default
pref("mailnews.database.global.indexer.enabled", false);
# Do not switch to Smart Folders after upgrade to 3.0b4
pref("mail.folder.views.version", "1");
pref("extensions.shownSelectionUI", true);
pref("extensions.autoDisableScope", 0);
# For rhbz#1024232
pref("ui.SpellCheckerUnderlineStyle", 1);
/* Workaround for rhbz#1134876 */
pref("javascript.options.baselinejit", false);
/* Workaround for rhbz#1110291 */
pref("network.negotiate-auth.allow-insecure-ntlm-v1", true);
/* Workaround for mozbz#1063315 */
pref("security.use_mozillapkix_verification", false);
/* Use OS settings for UI language */
pref("intl.locale.requested", "");

View File

@ -0,0 +1,76 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="16"
height="16"
viewBox="0 0 4.2333332 4.2333335"
version="1.1"
id="svg826"
inkscape:version="0.92+devel unknown"
sodipodi:docname="thunderbird-symbolic.svg">
<defs
id="defs820" />
<sodipodi:namedview
id="base"
pagecolor="#555753"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="1"
inkscape:pageshadow="2"
inkscape:zoom="32"
inkscape:cx="14.909311"
inkscape:cy="6.5299379"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
inkscape:document-rotation="0"
showgrid="false"
units="px"
inkscape:window-width="1920"
inkscape:window-height="1136"
inkscape:window-x="1920"
inkscape:window-y="27"
inkscape:window-maximized="1"
inkscape:snap-global="true" />
<metadata
id="metadata823">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(0,-292.76664)">
<path
style="fill:#bebebe;fill-opacity:1;stroke-width:0.50472808;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1.00945637, 3.02836921000000014"
d="M 6.2871094 0.6796875 C 5.4163558 0.91578892 4.8510898 1.5936957 4.5292969 2.1464844 C 2.421315 3.2450921 0.99225272 5.3610823 0.9921875 7.7949219 C 0.99477587 10.359489 2.3110205 12.446765 4.71875 13.445312 C 3.4595645 12.812546 2.2935825 11.525048 1.9707031 10.179688 C 1.7935937 9.4417327 1.7111632 8.3804473 1.7871094 7.8671875 C 2.0153769 8.1799434 2.3679623 8.3686337 2.6191406 8.3535156 C 2.4938628 8.2316259 2.1405878 7.2674351 2.2246094 6.7109375 C 2.3603578 5.8118257 3.1848776 4.5727304 3.6171875 4.3652344 C 3.5950724 4.1994643 3.6227354 4.5729785 3.6347656 4.6757812 C 3.6727178 5.0001403 3.7890738 5.2722323 3.7246094 5.5625 C 3.6729882 5.7950165 3.4515893 6.0294455 3.4980469 6.4824219 C 3.5108599 6.6073731 3.6284702 6.8445848 3.7539062 6.9277344 C 3.7535036 6.9231566 3.7580261 6.9016692 3.7578125 6.8964844 C 4.1688563 6.4878098 4.2988638 6.3923311 4.8164062 6.1835938 C 5.3947783 5.9504725 5.7292796 5.4840924 6.5429688 5.3242188 C 7.1567719 5.2036518 7.7980995 5.4618768 8.4160156 5.4316406 C 8.9595412 5.4051839 9.6230469 5.3164062 9.6230469 5.3164062 C 9.6230469 5.3164062 10.529591 6.3734458 10.554688 8.0839844 C 10.561372 8.5399466 10.393117 9.2581935 10.080078 9.6074219 C 10.10866 9.6301636 10.842076 9.8181331 11.496094 8.9296875 L 11.496094 8.9277344 C 11.500502 8.9217421 11.509138 8.9123452 11.513672 8.90625 C 11.511804 8.9162203 11.509634 8.919117 11.507812 8.9296875 C 11.082979 11.395346 10.343305 12.786026 9.3730469 13.716797 L 9.3652344 13.716797 C 9.1593686 13.914136 8.9415569 14.089651 8.7167969 14.253906 C 8.6515695 14.300524 8.584386 14.344389 8.5175781 14.388672 C 8.3185959 14.523496 8.1179918 14.6549 7.9042969 14.771484 C 7.453226 15.017472 9.0852392 14.946167 10.126953 14.476562 C 10.157938 14.470814 10.189917 14.46715 10.220703 14.460938 C 9.8033537 14.744465 9.3535156 15 9.3535156 15 C 9.3535156 15 10.890634 14.899538 11.974609 13.804688 C 11.975453 13.803262 11.975783 13.800425 11.976562 13.798828 C 13.818222 12.736706 15.007176 10.687802 15.007812 8.21875 C 15.005272 5.4392694 13.347542 2.9608845 10.865234 2.0253906 C 9.9215437 1.5797455 8.881353 1.3464382 7.8261719 1.34375 C 7.5325222 1.3437527 7.2448312 1.3664635 6.9609375 1.4003906 C 6.9469035 1.339967 6.9417802 1.323023 6.9726562 1.203125 C 6.8504944 1.2378967 6.8589251 1.2466706 6.7519531 1.2988281 C 6.7527631 1.1850643 6.7593232 1.2159555 6.7519531 1.0976562 C 6.5269885 1.1694673 6.5079647 1.1993654 6.3398438 1.3085938 C 6.3964573 1.0867355 6.399826 1.1278526 6.5527344 0.88671875 C 6.3493259 0.94186206 6.0726487 1.1030774 5.7460938 1.4511719 C 5.8509855 1.1114301 5.9907037 1.0292938 6.2871094 0.6796875 z "
transform="matrix(0.26458333,0,0,0.26458333,0,292.76664)"
id="path24330" />
<path
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-variant-east-asian:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#bebebe;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.26511249;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;filter-blend-mode:normal;filter-gaussianBlur-deviation:0;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate;opacity:1"
d="M 0.81054688 293.97852 L 0.59179688 294.12695 L 1.4453125 295.40234 L 2.9335938 294.85156 L 2.8417969 294.60352 L 1.5507812 295.08008 L 0.81054688 293.97852 z "
id="path24387" />
<path
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-variant-east-asian:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#bebebe;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
d="m 1.7871094,9.8730469 0.1210937,0.5820311 -0.1230469,-0.02344 c 0,0 0.2754046,0.874485 0.8561662,1.437975 0.5080908,0.49319 0.9335266,1.121624 2.1243026,1.601087 C 4.3317049,12.663641 4.1812012,12.346136 3.9980469,11.6875 l 0.2128906,0.07031 C 4.5424397,12.049861 4.8536251,12.30456 5.5800781,12.4375 5.4786992,12.266213 5.448324,12.238135 5.3847656,12.142578 l 4.7363284,1.554688 0.316406,-0.945313 z"
transform="matrix(0.26458333,0,0,0.26458333,0,292.76664)"
id="path24379"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccccccccccc" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 7.8 KiB

View File

@ -10,12 +10,12 @@
MOZ_ARCH=$(uname -m)
case $MOZ_ARCH in
x86_64 | s390x | sparc64 )
MOZ_LIB_DIR="/usr/lib64"
SECONDARY_LIB_DIR="/usr/lib"
MOZ_LIB_DIR="__PREFIX__/lib64"
SECONDARY_LIB_DIR="__PREFIX__/lib"
;;
* )
MOZ_LIB_DIR="/usr/lib"
SECONDARY_LIB_DIR="/usr/lib64"
MOZ_LIB_DIR="__PREFIX__/lib"
SECONDARY_LIB_DIR="__PREFIX__/lib64"
;;
esac
@ -35,6 +35,22 @@ MOZ_PROGRAM="$MOZ_DIST_BIN/thunderbird"
MOZ_LANGPACKS_DIR="$MOZ_DIST_BIN/langpacks"
MOZ_EXTENSIONS_PROFILE_DIR="$HOME/.mozilla/extensions/{3550f703-e582-4d05-9a08-453d09bdfdc6}"
##
## Enable Wayland backend?
##
%DISABLE_WAYLAND_PLACEHOLDER%
if ! [ $MOZ_DISABLE_WAYLAND ] && [ "$WAYLAND_DISPLAY" ]; then
if [ "$XDG_CURRENT_DESKTOP" == "GNOME" ]; then
export MOZ_ENABLE_WAYLAND=1
fi
## Enable Wayland on KDE/Sway
##
if [ "$XDG_SESSION_TYPE" == "wayland" ]; then
export MOZ_ENABLE_WAYLAND=1
fi
fi
##
## Set MOZ_ENABLE_PANGO is no longer used because Pango is enabled by default
## you may use MOZ_DISABLE_PANGO=1 to force disabling of pango
@ -45,7 +61,7 @@ MOZ_EXTENSIONS_PROFILE_DIR="$HOME/.mozilla/extensions/{3550f703-e582-4d05-9a08-4
##
## Set MOZ_APP_LAUNCHER for gnome-session
##
export MOZ_APP_LAUNCHER="/usr/bin/thunderbird"
export MOZ_APP_LAUNCHER="__PREFIX__/bin/thunderbird"
##
## Disable the GNOME crash dialog, Moz has it's own
@ -123,23 +139,4 @@ fi
NSS_SSL_CBC_RANDOM_IV=${NSS_SSL_CBC_RANDOM_IV-1}
export NSS_SSL_CBC_RANDOM_IV
# Linux version specific environment variables
%RHEL_ENV_VARS%
# Make sure at-spi-bus is running
if ! dbus-send --session \
--dest=org.freedesktop.DBus \
--type=method_call \
--print-reply \
/org/freedesktop/DBus \
org.freedesktop.DBus.ListNames \
| grep org.a11y.Bus > /dev/null; then
if [ -f "$MOZ_LIB_DIR/firefox/bundled/libexec/at-spi-bus-launcher" ]; then
echo "Starting a11y dbus service..."
$MOZ_LIB_DIR/firefox/bundled/libexec/at-spi-bus-launcher &
else
echo "Running without a11y support!"
fi
fi
exec $MOZ_PROGRAM "$@"

File diff suppressed because it is too large Load Diff