Compare commits
No commits in common. "imports/c8-beta/thunderbird-60.7.0-1.el8_0" and "c8" have entirely different histories.
imports/c8
...
c8
|
@ -1,7 +1,6 @@
|
|||
SOURCES/Python-2.7.13.tar.xz
|
||||
SOURCES/gtk3-private-3.22.26-1.el6.src.rpm
|
||||
SOURCES/libffi-3.0.13-18.el7_3.src.rpm
|
||||
SOURCES/lightning-langpacks-60.7.0.tar.xz
|
||||
SOURCES/thunderbird-60.7.0.source.tar.xz
|
||||
SOURCES/thunderbird-langpacks-60.7.0-20190520.tar.xz
|
||||
SOURCES/yasm-1.2.0-3.el5.src.rpm
|
||||
SOURCES/cbindgen-vendor.tar.xz
|
||||
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
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
18a8f30a0356c751b8d0ea6f76e764cab13ee046 SOURCES/Python-2.7.13.tar.xz
|
||||
0de63f863b158454b9429234b52ed28a397ec45c SOURCES/gtk3-private-3.22.26-1.el6.src.rpm
|
||||
e188ab1a444697bc649e223c28389d82ca94c472 SOURCES/libffi-3.0.13-18.el7_3.src.rpm
|
||||
27325758061b85882d0b21834ccb1249dbf32d81 SOURCES/lightning-langpacks-60.7.0.tar.xz
|
||||
23b4227d9459d2100f580af68139f6641fc24c66 SOURCES/thunderbird-60.7.0.source.tar.xz
|
||||
ea4041cafc04999e714a223d0b07dc08c1fefeff SOURCES/thunderbird-langpacks-60.7.0-20190520.tar.xz
|
||||
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
|
||||
|
|
|
@ -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;
|
|
@ -1,12 +0,0 @@
|
|||
diff -up firefox-61.0/gfx/skia/skia/src/jumper/SkJumper_stages.cpp.aarch64-skia firefox-61.0/gfx/skia/skia/src/jumper/SkJumper_stages.cpp
|
||||
--- firefox-61.0/gfx/skia/skia/src/jumper/SkJumper_stages.cpp.aarch64-skia 2018-06-20 09:19:11.411939714 +0200
|
||||
+++ firefox-61.0/gfx/skia/skia/src/jumper/SkJumper_stages.cpp 2018-06-20 09:23:36.831919894 +0200
|
||||
@@ -686,7 +686,7 @@ SI F from_half(U16 h) {
|
||||
}
|
||||
|
||||
SI U16 to_half(F f) {
|
||||
-#if defined(JUMPER_IS_NEON) && defined(__aarch64__) && !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds.
|
||||
+#if 0 && defined(__aarch64__) && !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds.
|
||||
return vcvt_f16_f32(f);
|
||||
|
||||
#elif defined(JUMPER_IS_HSW) || defined(JUMPER_IS_AVX512)
|
|
@ -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;
|
|
@ -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"
|
|
@ -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);
|
|
@ -1,12 +1,12 @@
|
|||
diff -up firefox-60.4.0/toolkit/moz.configure.disable-elfhack firefox-60.4.0/toolkit/moz.configure
|
||||
--- firefox-60.4.0/toolkit/moz.configure.disable-elfhack 2019-01-03 14:47:00.566556623 +0100
|
||||
+++ firefox-60.4.0/toolkit/moz.configure 2019-01-03 14:49:14.243887620 +0100
|
||||
@@ -1192,7 +1192,7 @@ with only_when(has_elfhack):
|
||||
option('--disable-elf-hack', help='Disable elf hacks')
|
||||
diff -up 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)
|
||||
|
|
|
@ -1,19 +0,0 @@
|
|||
diff -up mozilla-release-c61f5f5ead48c78a80c80db5c489bdc7cfaf8175/old-configure.in.gdk-version mozilla-release-c61f5f5ead48c78a80c80db5c489bdc7cfaf8175/old-configure.in
|
||||
--- mozilla-release-c61f5f5ead48c78a80c80db5c489bdc7cfaf8175/old-configure.in.gdk-version 2018-03-10 03:54:17.000000000 +0100
|
||||
+++ mozilla-release-c61f5f5ead48c78a80c80db5c489bdc7cfaf8175/old-configure.in 2018-03-28 13:11:06.294873487 +0200
|
||||
@@ -61,6 +61,7 @@ CAIRO_VERSION=1.10
|
||||
GTK2_VERSION=2.18.0
|
||||
GTK3_VERSION=3.4.0
|
||||
GDK_VERSION_MAX_ALLOWED=GDK_VERSION_3_4
|
||||
+GDK_VERSION_MIN_REQUIRED=GDK_VERSION_3_4
|
||||
WINDRES_VERSION=2.14.90
|
||||
W32API_VERSION=3.14
|
||||
GCONF_VERSION=1.2.1
|
||||
@@ -2173,6 +2174,7 @@ if test "$COMPILE_ENVIRONMENT"; then
|
||||
dnl GDK_VERSION_MIN_REQUIRED is not set here as GDK3 deprecated warnings
|
||||
dnl are suppressed by widget/gtk/compat-gtk3/gdk/gdkversionmacros.h.
|
||||
AC_DEFINE_UNQUOTED(GDK_VERSION_MAX_ALLOWED,$GDK_VERSION_MAX_ALLOWED)
|
||||
+ AC_DEFINE_UNQUOTED(GDK_VERSION_MIN_REQUIRED,$GDK_VERSION_MIN_REQUIRED)
|
||||
GLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_32
|
||||
fi
|
||||
if test "$MOZ_WIDGET_TOOLKIT" = gtk2; then
|
|
@ -1,12 +0,0 @@
|
|||
diff -up firefox-60.0/build/autoconf/icu.m4.icu firefox-60.0/build/autoconf/icu.m4
|
||||
--- firefox-60.0/build/autoconf/icu.m4.icu 2018-04-17 15:11:54.100644119 +0200
|
||||
+++ firefox-60.0/build/autoconf/icu.m4 2018-04-17 15:12:50.740686636 +0200
|
||||
@@ -78,7 +78,7 @@ if test -n "$USE_ICU"; then
|
||||
# TODO: the l is actually endian-dependent
|
||||
# We could make this set as 'l' or 'b' for little or big, respectively,
|
||||
# but we'd need to check in a big-endian version of the file.
|
||||
- ICU_DATA_FILE="icudt${version}l.dat"
|
||||
+ ICU_DATA_FILE="icudt${version}b.dat"
|
||||
|
||||
MOZ_ICU_DATA_ARCHIVE=
|
||||
fi
|
|
@ -1,12 +0,0 @@
|
|||
diff -up firefox-60.5.0/js/src/jit/AtomicOperations.h.jit-atomic-lucky firefox-60.5.0/js/src/jit/AtomicOperations.h
|
||||
--- firefox-60.5.0/js/src/jit/AtomicOperations.h.jit-atomic-lucky 2019-01-22 10:20:27.993697161 +0100
|
||||
+++ firefox-60.5.0/js/src/jit/AtomicOperations.h 2019-01-22 10:23:15.337873762 +0100
|
||||
@@ -394,7 +394,7 @@ inline bool AtomicOperations::isLockfree
|
||||
#elif defined(__s390__) || defined(__s390x__)
|
||||
#include "jit/none/AtomicOperations-feeling-lucky.h"
|
||||
#else
|
||||
-#error "No AtomicOperations support provided for this platform"
|
||||
+#include "jit/none/AtomicOperations-feeling-lucky.h"
|
||||
#endif
|
||||
|
||||
#endif // jit_AtomicOperations_h
|
|
@ -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
|
|
@ -1,12 +0,0 @@
|
|||
diff -up firefox-60.1.0/old-configure.in.nss-version firefox-60.1.0/old-configure.in
|
||||
--- firefox-60.1.0/old-configure.in.nss-version 2018-06-20 14:24:55.204158540 +0200
|
||||
+++ firefox-60.1.0/old-configure.in 2018-06-20 14:30:19.517004230 +0200
|
||||
@@ -1768,7 +1768,7 @@ MOZ_ARG_WITH_BOOL(system-nss,
|
||||
_USE_SYSTEM_NSS=1 )
|
||||
|
||||
if test -n "$_USE_SYSTEM_NSS"; then
|
||||
- AM_PATH_NSS(3.36.7, [MOZ_SYSTEM_NSS=1], [AC_MSG_ERROR([you don't have NSS installed or your version is too old])])
|
||||
+ AM_PATH_NSS(3.36.0, [MOZ_SYSTEM_NSS=1], [AC_MSG_ERROR([you don't have NSS installed or your version is too old])])
|
||||
fi
|
||||
|
||||
if test -z "$MOZ_SYSTEM_NSS"; then
|
|
@ -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
|
|
@ -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")
|
||||
|
||||
|
|
@ -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"
|
|
@ -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
|
||||
|
|
@ -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;
|
|
@ -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
|
|
@ -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
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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) {
|
|
@ -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
|
|
@ -0,0 +1 @@
|
|||
AIzaSyB2h2OuRcUgy5N-5hsZqiPW6sH3n_rptiQ
|
|
@ -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
|
||||
|
|
@ -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
|
|
@ -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 || :
|
|
@ -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 || :
|
|
@ -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!
|
|
@ -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
|
|
@ -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({
|
|
@ -1,98 +0,0 @@
|
|||
diff -up firefox-60.5.0/extensions/pref/autoconfig/src/nsReadConfig.cpp.1170092 firefox-60.5.0/extensions/pref/autoconfig/src/nsReadConfig.cpp
|
||||
--- firefox-60.5.0/extensions/pref/autoconfig/src/nsReadConfig.cpp.1170092 2019-01-22 10:48:38.187383614 +0100
|
||||
+++ firefox-60.5.0/extensions/pref/autoconfig/src/nsReadConfig.cpp 2019-01-22 11:26:11.027108692 +0100
|
||||
@@ -225,8 +225,20 @@ nsresult nsReadConfig::openAndEvaluateJS
|
||||
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 firefox-60.5.0/modules/libpref/Preferences.cpp.1170092 firefox-60.5.0/modules/libpref/Preferences.cpp
|
||||
--- firefox-60.5.0/modules/libpref/Preferences.cpp.1170092 2019-01-21 17:38:16.000000000 +0100
|
||||
+++ firefox-60.5.0/modules/libpref/Preferences.cpp 2019-01-22 10:48:38.187383614 +0100
|
||||
@@ -3459,6 +3459,8 @@ static nsresult pref_ReadPrefFromJar(nsZ
|
||||
//
|
||||
// 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;
|
||||
nsZipFind* findPtr;
|
||||
diff -up firefox-60.5.0/toolkit/xre/nsXREDirProvider.cpp.1170092 firefox-60.5.0/toolkit/xre/nsXREDirProvider.cpp
|
||||
--- firefox-60.5.0/toolkit/xre/nsXREDirProvider.cpp.1170092 2019-01-21 17:38:51.000000000 +0100
|
||||
+++ firefox-60.5.0/toolkit/xre/nsXREDirProvider.cpp 2019-01-22 11:37:01.868896974 +0100
|
||||
@@ -58,6 +58,7 @@
|
||||
#endif
|
||||
#ifdef XP_UNIX
|
||||
#include <ctype.h>
|
||||
+#include "nsIXULAppInfo.h"
|
||||
#endif
|
||||
#ifdef XP_IOS
|
||||
#include "UIKitDirProvider.h"
|
||||
@@ -491,6 +492,21 @@ nsXREDirProvider::GetFile(const char* aP
|
||||
}
|
||||
}
|
||||
}
|
||||
+
|
||||
+#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) {
|
||||
@@ -796,6 +812,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);
|
||||
} else if (!strcmp(aProperty, NS_APP_CHROME_DIR_LIST)) {
|
||||
// NS_APP_CHROME_DIR_LIST is only used to get default (native) icons
|
||||
diff -up firefox-60.5.0/xpcom/io/nsAppDirectoryServiceDefs.h.1170092 firefox-60.5.0/xpcom/io/nsAppDirectoryServiceDefs.h
|
||||
--- firefox-60.5.0/xpcom/io/nsAppDirectoryServiceDefs.h.1170092 2019-01-22 10:48:38.188383609 +0100
|
||||
+++ firefox-60.5.0/xpcom/io/nsAppDirectoryServiceDefs.h 2019-01-22 11:08:12.068459480 +0100
|
||||
@@ -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"
|
|
@ -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,
|
|
@ -1,27 +0,0 @@
|
|||
From 1cc652f5525f458b0b4ceb12af24bf5a4367db32 Mon Sep 17 00:00:00 2001
|
||||
From: Nicolas Dufresne <nicolas.dufresne@collabora.com>
|
||||
Date: Tue, 23 May 2017 13:09:48 -0400
|
||||
Subject: [PATCH] Bug 1353817: Include SkNx_neon.h for ARM64 too
|
||||
|
||||
This fixes build errors as arm_neon.h was missing along with some
|
||||
missing converters.
|
||||
---
|
||||
gfx/skia/skia/src/core/SkNx.h | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/gfx/skia/skia/src/core/SkNx.h b/gfx/skia/skia/src/core/SkNx.h
|
||||
index 6bca856..b0427aa 100644
|
||||
--- a/gfx/skia/skia/src/core/SkNx.h
|
||||
+++ b/gfx/skia/skia/src/core/SkNx.h
|
||||
@@ -299,7 +299,7 @@ typedef SkNx<4, uint32_t> Sk4u;
|
||||
// Include platform specific specializations if available.
|
||||
#if !defined(SKNX_NO_SIMD) && SK_CPU_SSE_LEVEL >= SK_CPU_SSE_LEVEL_SSE2
|
||||
#include "../opts/SkNx_sse.h"
|
||||
-#elif !defined(SKNX_NO_SIMD) && defined(SK_ARM_HAS_NEON)
|
||||
+#elif !defined(SKNX_NO_SIMD) && (defined(SK_ARM_HAS_NEON) || defined(SK_CPU_ARM64))
|
||||
#include "../opts/SkNx_neon.h"
|
||||
#else
|
||||
|
||||
--
|
||||
2.9.4
|
||||
|
|
@ -1,56 +0,0 @@
|
|||
|
||||
# HG changeset patch
|
||||
# User Jed Davis <jld@mozilla.com>
|
||||
# Date 1526943705 21600
|
||||
# Node ID 6bb3adfa15c6877f7874429462dad88f8c978c4f
|
||||
# Parent 4c71c8454879c841871ecf3afb7dbdc96bad97fc
|
||||
Bug 1436242 - Avoid undefined behavior in IPC fd-passing code. r=froydnj
|
||||
|
||||
MozReview-Commit-ID: 3szIPUssgF5
|
||||
|
||||
diff --git a/ipc/chromium/src/chrome/common/ipc_channel_posix.cc b/ipc/chromium/src/chrome/common/ipc_channel_posix.cc
|
||||
--- a/ipc/chromium/src/chrome/common/ipc_channel_posix.cc
|
||||
+++ b/ipc/chromium/src/chrome/common/ipc_channel_posix.cc
|
||||
@@ -418,20 +418,37 @@ bool Channel::ChannelImpl::ProcessIncomi
|
||||
const int* fds;
|
||||
unsigned num_fds;
|
||||
unsigned fds_i = 0; // the index of the first unused descriptor
|
||||
|
||||
if (input_overflow_fds_.empty()) {
|
||||
fds = wire_fds;
|
||||
num_fds = num_wire_fds;
|
||||
} else {
|
||||
- const size_t prev_size = input_overflow_fds_.size();
|
||||
- input_overflow_fds_.resize(prev_size + num_wire_fds);
|
||||
- memcpy(&input_overflow_fds_[prev_size], wire_fds,
|
||||
- num_wire_fds * sizeof(int));
|
||||
+ // This code may look like a no-op in the case where
|
||||
+ // num_wire_fds == 0, but in fact:
|
||||
+ //
|
||||
+ // 1. wire_fds will be nullptr, so passing it to memcpy is
|
||||
+ // undefined behavior according to the C standard, even though
|
||||
+ // the memcpy length is 0.
|
||||
+ //
|
||||
+ // 2. prev_size will be an out-of-bounds index for
|
||||
+ // input_overflow_fds_; this is undefined behavior according to
|
||||
+ // the C++ standard, even though the element only has its
|
||||
+ // pointer taken and isn't accessed (and the corresponding
|
||||
+ // operation on a C array would be defined).
|
||||
+ //
|
||||
+ // UBSan makes #1 a fatal error, and assertions in libstdc++ do
|
||||
+ // the same for #2 if enabled.
|
||||
+ if (num_wire_fds > 0) {
|
||||
+ const size_t prev_size = input_overflow_fds_.size();
|
||||
+ input_overflow_fds_.resize(prev_size + num_wire_fds);
|
||||
+ memcpy(&input_overflow_fds_[prev_size], wire_fds,
|
||||
+ num_wire_fds * sizeof(int));
|
||||
+ }
|
||||
fds = &input_overflow_fds_[0];
|
||||
num_fds = input_overflow_fds_.size();
|
||||
}
|
||||
|
||||
// The data for the message we're currently reading consists of any data
|
||||
// stored in incoming_message_ followed by data in input_buf_ (followed by
|
||||
// other messages).
|
||||
|
||||
|
|
@ -1,164 +0,0 @@
|
|||
diff -up thunderbird-60.2.1/comm/ldap/xpcom/public/nsILDAPOperation.idl.1460871-ldap-query thunderbird-60.2.1/comm/ldap/xpcom/public/nsILDAPOperation.idl
|
||||
--- thunderbird-60.2.1/comm/ldap/xpcom/public/nsILDAPOperation.idl.1460871-ldap-query 2018-10-01 16:52:39.000000000 +0200
|
||||
+++ thunderbird-60.2.1/comm/ldap/xpcom/public/nsILDAPOperation.idl 2018-10-04 09:40:04.491575949 +0200
|
||||
@@ -52,6 +52,10 @@ interface nsILDAPOperation : nsISupports
|
||||
* private parameter (anything caller desires)
|
||||
*/
|
||||
attribute nsISupports closure;
|
||||
+ /**
|
||||
+ * number of the request for compare that the request is still valid.
|
||||
+ */
|
||||
+ attribute unsigned long requestNum;
|
||||
|
||||
/**
|
||||
* No time and/or size limit specified
|
||||
diff -up thunderbird-60.2.1/comm/ldap/xpcom/src/nsLDAPOperation.cpp.1460871-ldap-query thunderbird-60.2.1/comm/ldap/xpcom/src/nsLDAPOperation.cpp
|
||||
--- thunderbird-60.2.1/comm/ldap/xpcom/src/nsLDAPOperation.cpp.1460871-ldap-query 2018-10-01 16:52:39.000000000 +0200
|
||||
+++ thunderbird-60.2.1/comm/ldap/xpcom/src/nsLDAPOperation.cpp 2018-10-04 09:40:04.491575949 +0200
|
||||
@@ -400,6 +400,19 @@ convertControlArray(nsIArray *aXpcomArra
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
+ /* attribute unsigned long requestNum; */
|
||||
+NS_IMETHODIMP nsLDAPOperation::GetRequestNum(uint32_t *aRequestNum)
|
||||
+{
|
||||
+ *aRequestNum = mRequestNum;
|
||||
+ return NS_OK;
|
||||
+}
|
||||
+
|
||||
+NS_IMETHODIMP nsLDAPOperation::SetRequestNum(uint32_t aRequestNum)
|
||||
+{
|
||||
+ mRequestNum = aRequestNum;
|
||||
+ return NS_OK;
|
||||
+}
|
||||
+
|
||||
NS_IMETHODIMP
|
||||
nsLDAPOperation::SearchExt(const nsACString& aBaseDn, int32_t aScope,
|
||||
const nsACString& aFilter,
|
||||
diff -up thunderbird-60.2.1/comm/ldap/xpcom/src/nsLDAPOperation.h.1460871-ldap-query thunderbird-60.2.1/comm/ldap/xpcom/src/nsLDAPOperation.h
|
||||
--- thunderbird-60.2.1/comm/ldap/xpcom/src/nsLDAPOperation.h.1460871-ldap-query 2018-10-01 16:52:39.000000000 +0200
|
||||
+++ thunderbird-60.2.1/comm/ldap/xpcom/src/nsLDAPOperation.h 2018-10-04 09:40:04.491575949 +0200
|
||||
@@ -36,6 +36,8 @@ class nsLDAPOperation : public nsILDAPOp
|
||||
* used to break cycles
|
||||
*/
|
||||
void Clear();
|
||||
+ // Stores the request number for later check of the operation is still valid
|
||||
+ int32_t mRequestNum;
|
||||
|
||||
private:
|
||||
virtual ~nsLDAPOperation();
|
||||
diff -up thunderbird-60.2.1/comm/mailnews/addrbook/src/nsAbLDAPDirectoryQuery.cpp.1460871-ldap-query thunderbird-60.2.1/comm/mailnews/addrbook/src/nsAbLDAPDirectoryQuery.cpp
|
||||
--- thunderbird-60.2.1/comm/mailnews/addrbook/src/nsAbLDAPDirectoryQuery.cpp.1460871-ldap-query 2018-10-01 16:52:43.000000000 +0200
|
||||
+++ thunderbird-60.2.1/comm/mailnews/addrbook/src/nsAbLDAPDirectoryQuery.cpp 2018-10-04 09:40:55.334670404 +0200
|
||||
@@ -22,6 +22,8 @@
|
||||
|
||||
using namespace mozilla;
|
||||
|
||||
+extern mozilla::LazyLogModule gLDAPLogModule; // defined in nsLDAPService.cpp
|
||||
+
|
||||
// nsAbLDAPListenerBase inherits nsILDAPMessageListener
|
||||
class nsAbQueryLDAPMessageListener : public nsAbLDAPListenerBase
|
||||
{
|
||||
@@ -66,7 +68,6 @@ protected:
|
||||
|
||||
bool mFinished;
|
||||
bool mCanceled;
|
||||
- bool mWaitingForPrevQueryToFinish;
|
||||
|
||||
nsCOMPtr<nsIMutableArray> mServerSearchControls;
|
||||
nsCOMPtr<nsIMutableArray> mClientSearchControls;
|
||||
@@ -94,7 +95,6 @@ nsAbQueryLDAPMessageListener::nsAbQueryL
|
||||
mResultLimit(resultLimit),
|
||||
mFinished(false),
|
||||
mCanceled(false),
|
||||
- mWaitingForPrevQueryToFinish(false),
|
||||
mServerSearchControls(serverSearchControls),
|
||||
mClientSearchControls(clientSearchControls)
|
||||
{
|
||||
@@ -116,9 +116,6 @@ nsresult nsAbQueryLDAPMessageListener::C
|
||||
return NS_OK;
|
||||
|
||||
mCanceled = true;
|
||||
- if (!mFinished)
|
||||
- mWaitingForPrevQueryToFinish = true;
|
||||
-
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
@@ -129,6 +126,8 @@ NS_IMETHODIMP nsAbQueryLDAPMessageListen
|
||||
|
||||
int32_t messageType;
|
||||
rv = aMessage->GetType(&messageType);
|
||||
+ uint32_t requestNum;
|
||||
+ mOperation->GetRequestNum(&requestNum);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
bool cancelOperation = false;
|
||||
@@ -137,6 +136,14 @@ NS_IMETHODIMP nsAbQueryLDAPMessageListen
|
||||
{
|
||||
MutexAutoLock lock (mLock);
|
||||
|
||||
+ if (requestNum != sCurrentRequestNum) {
|
||||
+ MOZ_LOG(gLDAPLogModule, mozilla::LogLevel::Debug,
|
||||
+ ("nsAbQueryLDAPMessageListener::OnLDAPMessage: Ignoring message with "
|
||||
+ "request num %d, current request num is %d.",
|
||||
+ requestNum, sCurrentRequestNum));
|
||||
+ return NS_OK;
|
||||
+ }
|
||||
+
|
||||
if (mFinished)
|
||||
return NS_OK;
|
||||
|
||||
@@ -166,11 +173,10 @@ NS_IMETHODIMP nsAbQueryLDAPMessageListen
|
||||
rv = OnLDAPMessageSearchResult(aMessage);
|
||||
break;
|
||||
case nsILDAPMessage::RES_SEARCH_ENTRY:
|
||||
- if (!mFinished && !mWaitingForPrevQueryToFinish)
|
||||
+ if (!mFinished)
|
||||
rv = OnLDAPMessageSearchEntry(aMessage);
|
||||
break;
|
||||
case nsILDAPMessage::RES_SEARCH_RESULT:
|
||||
- mWaitingForPrevQueryToFinish = false;
|
||||
rv = OnLDAPMessageSearchResult(aMessage);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
break;
|
||||
@@ -207,6 +213,8 @@ nsresult nsAbQueryLDAPMessageListener::D
|
||||
rv = mOperation->Init(mConnection, this, nullptr);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
+ mOperation->SetRequestNum(++sCurrentRequestNum);
|
||||
+
|
||||
nsAutoCString dn;
|
||||
rv = mSearchUrl->GetDn(dn);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
diff -up thunderbird-60.2.1/comm/mailnews/addrbook/src/nsAbLDAPListenerBase.cpp.1460871-ldap-query thunderbird-60.2.1/comm/mailnews/addrbook/src/nsAbLDAPListenerBase.cpp
|
||||
--- thunderbird-60.2.1/comm/mailnews/addrbook/src/nsAbLDAPListenerBase.cpp.1460871-ldap-query 2018-10-01 16:52:43.000000000 +0200
|
||||
+++ thunderbird-60.2.1/comm/mailnews/addrbook/src/nsAbLDAPListenerBase.cpp 2018-10-04 09:40:04.492575951 +0200
|
||||
@@ -20,6 +20,8 @@
|
||||
|
||||
using namespace mozilla;
|
||||
|
||||
+uint32_t nsAbLDAPListenerBase::sCurrentRequestNum = 0;
|
||||
+
|
||||
nsAbLDAPListenerBase::nsAbLDAPListenerBase(nsILDAPURL* url,
|
||||
nsILDAPConnection* connection,
|
||||
const nsACString &login,
|
||||
@@ -249,6 +251,7 @@ NS_IMETHODIMP nsAbLDAPListenerBase::OnLD
|
||||
InitFailed();
|
||||
return rv;
|
||||
}
|
||||
+ mOperation->SetRequestNum(++sCurrentRequestNum);
|
||||
|
||||
// Try non-password mechanisms first
|
||||
if (mSaslMechanism.EqualsLiteral("GSSAPI"))
|
||||
diff -up thunderbird-60.2.1/comm/mailnews/addrbook/src/nsAbLDAPListenerBase.h.1460871-ldap-query thunderbird-60.2.1/comm/mailnews/addrbook/src/nsAbLDAPListenerBase.h
|
||||
--- thunderbird-60.2.1/comm/mailnews/addrbook/src/nsAbLDAPListenerBase.h.1460871-ldap-query 2018-10-01 16:52:43.000000000 +0200
|
||||
+++ thunderbird-60.2.1/comm/mailnews/addrbook/src/nsAbLDAPListenerBase.h 2018-10-04 09:40:04.492575951 +0200
|
||||
@@ -47,6 +47,7 @@ protected:
|
||||
int32_t mTimeOut;
|
||||
bool mBound;
|
||||
bool mInitialized;
|
||||
+ static uint32_t sCurrentRequestNum;
|
||||
|
||||
mozilla::Mutex mLock;
|
||||
};
|
|
@ -1,11 +0,0 @@
|
|||
--- a/layout/generic/nsIFrame.h.old 2016-07-11 13:41:39.688276559 +0200
|
||||
+++ b/layout/generic/nsIFrame.h 2016-07-11 13:42:12.791406976 +0200
|
||||
@@ -13,7 +13,7 @@
|
||||
#error This header/class should only be used within Mozilla code. It should not be used by extensions.
|
||||
#endif
|
||||
|
||||
-#define MAX_REFLOW_DEPTH 200
|
||||
+#define MAX_REFLOW_DEPTH 1000
|
||||
|
||||
/* nsIFrame is in the process of being deCOMtaminated, i.e., this file is eventually
|
||||
going to be eliminated, and all callers will use nsFrame instead. At the moment
|
|
@ -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"
|
|
@ -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
|
||||
}
|
||||
|
|
@ -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());
|
||||
};
|
|
@ -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();
|
|
@ -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.
|
|
@ -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();
|
|
@ -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',
|
||||
|
|
@ -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;
|
||||
}
|
|
@ -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:
|
|
@ -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)
|
|
@ -0,0 +1,2 @@
|
|||
#!/bin/sh
|
||||
exec node "$@" 2>&1 | cat -
|
|
@ -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"
|
|
@ -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
|
|
@ -1,12 +1,12 @@
|
|||
diff -up firefox-60.5.0/layout/base/nsIPresShell.h.1354671 firefox-60.5.0/layout/base/nsIPresShell.h
|
||||
--- firefox-60.5.0/layout/base/nsIPresShell.h.1354671 2019-01-22 16:08:40.796539950 +0100
|
||||
+++ firefox-60.5.0/layout/base/nsIPresShell.h 2019-01-22 16:10:25.106069228 +0100
|
||||
@@ -204,7 +204,7 @@ class nsIPresShell : public nsStubDocume
|
||||
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) {
|
||||
void* result = mFrameArena.AllocateByFrameID(aID, aSize);
|
||||
RecordAlloc(result);
|
||||
return result;
|
||||
#define FRAME_ID(classname, ...) \
|
||||
static_assert(size_t(nsQueryFrame::FrameIID::classname##_id) == \
|
||||
size_t(eArenaObjectID_##classname), \
|
||||
|
|
|
@ -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;
|
||||
}
|
|
@ -1,28 +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-pie
|
||||
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 --with-pthreads
|
||||
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 --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
|
||||
|
|
|
@ -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);
|
|
@ -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", "");
|
|
@ -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 |
|
@ -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 "$@"
|
||||
|
|
|
@ -1,12 +0,0 @@
|
|||
diff -up firefox-60.5.0/memory/build/mozjemalloc.cpp.jemalloc-ppc firefox-60.5.0/memory/build/mozjemalloc.cpp
|
||||
--- firefox-60.5.0/memory/build/mozjemalloc.cpp.jemalloc-ppc 2019-01-22 10:25:30.764207480 +0100
|
||||
+++ firefox-60.5.0/memory/build/mozjemalloc.cpp 2019-01-22 10:28:48.352235343 +0100
|
||||
@@ -180,7 +180,7 @@ using namespace mozilla;
|
||||
// Debug builds are opted out too, for test coverage.
|
||||
#ifndef MOZ_DEBUG
|
||||
#if !defined(__ia64__) && !defined(__sparc__) && !defined(__mips__) && \
|
||||
- !defined(__aarch64__)
|
||||
+ !defined(__aarch64__) && !defined(__powerpc__)
|
||||
#define MALLOC_STATIC_PAGESIZE 1
|
||||
#endif
|
||||
#endif
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue