diff --git a/.gitignore b/.gitignore index c72ee0d..f98ec04 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,6 @@ SOURCES/cbindgen-vendor.tar.xz -SOURCES/nspr-4.32.0-1.el8_1.src.rpm -SOURCES/nss-3.67.0-7.el8_1.src.rpm -SOURCES/thunderbird-91.13.0.processed-source.tar.xz -SOURCES/thunderbird-langpacks-91.13.0-20220819.tar.xz +SOURCES/nspr-4.34.0-3.el8_1.src.rpm +SOURCES/nss-3.79.0-6.el8_1.src.rpm +SOURCES/thunderbird-102.3.0.processed-source.tar.xz +SOURCES/thunderbird-langpacks-102.3.0-20220916.tar.xz +SOURCES/thunderbird-symbolic.svg diff --git a/.thunderbird.metadata b/.thunderbird.metadata index e7e17ff..5b3140c 100644 --- a/.thunderbird.metadata +++ b/.thunderbird.metadata @@ -1,5 +1,6 @@ -c822547dbc12e2baebdfdfb38b665e23f0c2513a SOURCES/cbindgen-vendor.tar.xz -b5fd1332d8e0d37339ae170c7bebcb63a40b22e0 SOURCES/nspr-4.32.0-1.el8_1.src.rpm -8fff814901e03c2518ede2f8992d898f5ba61ed9 SOURCES/nss-3.67.0-7.el8_1.src.rpm -4def481a0e18a393bc756888f3da179187272fcf SOURCES/thunderbird-91.13.0.processed-source.tar.xz -7a3d28c5d6f3266cacad2e42ca9c2cc9b90dd27e SOURCES/thunderbird-langpacks-91.13.0-20220819.tar.xz +2a430d6252dbea45482ba316a6e9fa605c15e747 SOURCES/cbindgen-vendor.tar.xz +af58b3c87a8b5491dde63b07efaeb3d7f1ec56c1 SOURCES/nspr-4.34.0-3.el8_1.src.rpm +fc5297c6830f0a1e88f84b94b0b066487664061b SOURCES/nss-3.79.0-6.el8_1.src.rpm +9344c5c96c40ea76f66ef594c16c73a6f72ecd7d SOURCES/thunderbird-102.3.0.processed-source.tar.xz +acfcde32709f2dabf0c99ba19ddd8f4c6515b53a SOURCES/thunderbird-langpacks-102.3.0-20220916.tar.xz +42e80b86948cdba0f69af5b15a69bc6a1274d938 SOURCES/thunderbird-symbolic.svg diff --git a/README.debrand b/README.debrand deleted file mode 100644 index 01c46d2..0000000 --- a/README.debrand +++ /dev/null @@ -1,2 +0,0 @@ -Warning: This package was configured for automatic debranding, but the changes -failed to apply. diff --git a/SOURCES/0001-GLIBCXX-fix-for-GCC-12.patch b/SOURCES/0001-GLIBCXX-fix-for-GCC-12.patch new file mode 100644 index 0000000..37d6f50 --- /dev/null +++ b/SOURCES/0001-GLIBCXX-fix-for-GCC-12.patch @@ -0,0 +1,44 @@ +From efd5bc0715e5477318be95a76811cda0a89e8289 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Emilio=20Cobos=20=C3=81lvarez?= +Date: Fri, 4 Mar 2022 12:00:26 +0100 +Subject: [PATCH] GLIBCXX fix for GCC 12? + +--- + build/unix/stdc++compat/stdc++compat.cpp | 14 ++++++++++++++ + 1 file changed, 14 insertions(+) + +diff --git a/build/unix/stdc++compat/stdc++compat.cpp b/build/unix/stdc++compat/stdc++compat.cpp +index 0180f6bcfa998..8d7a542ff11f0 100644 +--- a/build/unix/stdc++compat/stdc++compat.cpp ++++ b/build/unix/stdc++compat/stdc++compat.cpp +@@ -24,6 +24,7 @@ + GLIBCXX_3.4.27 is from gcc 10 + GLIBCXX_3.4.28 is from gcc 10 + GLIBCXX_3.4.29 is from gcc 11 ++ GLIBCXX_3.4.30 is from gcc 12 + + This file adds the necessary compatibility tricks to avoid symbols with + version GLIBCXX_3.4.20 and bigger, keeping binary compatibility with +@@ -69,6 +70,19 @@ void __attribute__((weak)) __throw_bad_array_new_length() { MOZ_CRASH(); } + } // namespace std + #endif + ++#if _GLIBCXX_RELEASE >= 12 ++namespace std { ++ ++/* This avoids the GLIBCXX_3.4.30 symbol version. */ ++void __attribute__((weak)) ++__glibcxx_assert_fail(const char* __file, int __line, const char* __function, ++ const char* __condition) { ++ MOZ_CRASH(); ++} ++ ++} // namespace std ++#endif ++ + /* While we generally don't build with exceptions, we have some host tools + * that do use them. libstdc++ from GCC 5.0 added exception constructors with + * char const* argument. Older versions only have a constructor with +-- +2.35.1 + diff --git a/SOURCES/build-aarch64-skia.patch b/SOURCES/build-aarch64-skia.patch new file mode 100644 index 0000000..a63e3e8 --- /dev/null +++ b/SOURCES/build-aarch64-skia.patch @@ -0,0 +1,45 @@ +diff -up firefox-72.0/gfx/skia/skia/include/private/SkHalf.h.aarch64-skia firefox-72.0/gfx/skia/skia/include/private/SkHalf.h +--- firefox-72.0/gfx/skia/skia/include/private/SkHalf.h.aarch64-skia 2020-01-02 22:33:02.000000000 +0100 ++++ firefox-72.0/gfx/skia/skia/include/private/SkHalf.h 2020-01-03 09:00:37.537296105 +0100 +@@ -40,7 +40,7 @@ static inline Sk4h SkFloatToHalf_finite_ + + static inline Sk4f SkHalfToFloat_finite_ftz(uint64_t rgba) { + Sk4h hs = Sk4h::Load(&rgba); +-#if !defined(SKNX_NO_SIMD) && defined(SK_CPU_ARM64) ++#if 0 // !defined(SKNX_NO_SIMD) && defined(SK_CPU_ARM64) + float32x4_t fs; + asm ("fcvtl %[fs].4s, %[hs].4h \n" // vcvt_f32_f16(...) + : [fs] "=w" (fs) // =w: write-only NEON register +@@ -62,7 +62,7 @@ static inline Sk4f SkHalfToFloat_finite_ + } + + static inline Sk4h SkFloatToHalf_finite_ftz(const Sk4f& fs) { +-#if !defined(SKNX_NO_SIMD) && defined(SK_CPU_ARM64) ++#if 0 // !defined(SKNX_NO_SIMD) && defined(SK_CPU_ARM64) + float32x4_t vec = fs.fVec; + asm ("fcvtn %[vec].4h, %[vec].4s \n" // vcvt_f16_f32(vec) + : [vec] "+w" (vec)); // +w: read-write NEON register +diff -up firefox-72.0/gfx/skia/skia/src/opts/SkRasterPipeline_opts.h.aarch64-skia firefox-72.0/gfx/skia/skia/src/opts/SkRasterPipeline_opts.h +--- firefox-72.0/gfx/skia/skia/src/opts/SkRasterPipeline_opts.h.aarch64-skia 2020-01-03 09:00:37.538296107 +0100 ++++ firefox-72.0/gfx/skia/skia/src/opts/SkRasterPipeline_opts.h 2020-01-03 10:11:41.259219508 +0100 +@@ -1087,7 +1087,7 @@ SI F from_half(U16 h) { + } + + SI U16 to_half(F f) { +-#if defined(JUMPER_IS_NEON) && defined(SK_CPU_ARM64) \ ++#if 0 //defined(JUMPER_IS_NEON) && defined(SK_CPU_ARM64) \ + && !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds. + return vcvt_f16_f32(f); + +diff -up firefox-72.0/gfx/skia/skia/third_party/skcms/src/Transform_inl.h.aarch64-skia firefox-72.0/gfx/skia/skia/third_party/skcms/src/Transform_inl.h +--- firefox-72.0/gfx/skia/skia/third_party/skcms/src/Transform_inl.h.aarch64-skia 2020-01-03 09:00:37.538296107 +0100 ++++ firefox-72.0/gfx/skia/skia/third_party/skcms/src/Transform_inl.h 2020-01-03 10:11:53.513250979 +0100 +@@ -183,8 +183,6 @@ SI F F_from_Half(U16 half) { + SI U16 Half_from_F(F f) { + #if defined(USING_NEON_FP16) + return bit_pun(f); +-#elif defined(USING_NEON_F16C) +- return (U16)vcvt_f16_f32(f); + #elif defined(USING_AVX512F) + return (U16)_mm512_cvtps_ph((__m512 )f, _MM_FROUND_CUR_DIRECTION ); + #elif defined(USING_AVX_F16C) diff --git a/SOURCES/build-arm-libaom.patch b/SOURCES/build-arm-libaom.patch new file mode 100644 index 0000000..985f01d --- /dev/null +++ b/SOURCES/build-arm-libaom.patch @@ -0,0 +1,12 @@ +diff -up firefox-73.0/media/libaom/moz.build.old firefox-73.0/media/libaom/moz.build +--- firefox-73.0/media/libaom/moz.build.old 2020-02-07 23:13:28.000000000 +0200 ++++ firefox-73.0/media/libaom/moz.build 2020-02-17 10:30:08.509805092 +0200 +@@ -55,7 +55,7 @@ elif CONFIG['CPU_ARCH'] == 'arm': + + for f in SOURCES: + if f.endswith('neon.c'): +- SOURCES[f].flags += CONFIG['VPX_ASFLAGS'] ++ SOURCES[f].flags += CONFIG['NEON_FLAGS'] + + if CONFIG['OS_TARGET'] == 'Android': + # For cpu-features.h diff --git a/SOURCES/build-arm-libopus.patch b/SOURCES/build-arm-libopus.patch new file mode 100644 index 0000000..1b3f31b --- /dev/null +++ b/SOURCES/build-arm-libopus.patch @@ -0,0 +1,12 @@ +diff -up firefox-66.0/media/libopus/silk/arm/arm_silk_map.c.old firefox-66.0/media/libopus/silk/arm/arm_silk_map.c +--- firefox-66.0/media/libopus/silk/arm/arm_silk_map.c.old 2019-03-12 21:07:35.356677522 +0100 ++++ firefox-66.0/media/libopus/silk/arm/arm_silk_map.c 2019-03-12 21:07:42.937693394 +0100 +@@ -28,7 +28,7 @@ POSSIBILITY OF SUCH DAMAGE. + # include "config.h" + #endif + +-#include "main_FIX.h" ++#include "fixed/main_FIX.h" + #include "NSQ.h" + #include "SigProc_FIX.h" + diff --git a/SOURCES/build-ascii-decode-fail-rhel7.patch b/SOURCES/build-ascii-decode-fail-rhel7.patch new file mode 100644 index 0000000..1bc1630 --- /dev/null +++ b/SOURCES/build-ascii-decode-fail-rhel7.patch @@ -0,0 +1,45 @@ +diff -up firefox-102.0/third_party/python/PyYAML/lib3/yaml/reader.py.build-ascii-decode-fail-rhel7 firefox-102.0/third_party/python/PyYAML/lib3/yaml/reader.py +--- firefox-102.0/third_party/python/PyYAML/lib3/yaml/reader.py.build-ascii-decode-fail-rhel7 2022-06-23 09:11:39.000000000 +0200 ++++ firefox-102.0/third_party/python/PyYAML/lib3/yaml/reader.py 2022-08-16 13:24:31.697757209 +0200 +@@ -73,6 +73,8 @@ class Reader(object): + self.name = "" + self.check_printable(stream) + self.buffer = stream+'\0' ++ #self.encoding = 'utf-8' ++ #self.raw_decode = codecs.utf_8_decode + elif isinstance(stream, bytes): + self.name = "" + self.raw_buffer = stream +@@ -83,6 +85,11 @@ class Reader(object): + self.eof = False + self.raw_buffer = None + self.determine_encoding() ++ print("DEBUG_OUTPUT:") ++ print(self.name) ++ print(self.encoding) ++ print(self.stream) ++ #print(self.stream.read()) + + def peek(self, index=0): + try: +diff -up firefox-102.0/toolkit/components/nimbus/generate/generate_feature_manifest.py.build-ascii-decode-fail-rhel7 firefox-102.0/toolkit/components/nimbus/generate/generate_feature_manifest.py +--- firefox-102.0/toolkit/components/nimbus/generate/generate_feature_manifest.py.build-ascii-decode-fail-rhel7 2022-08-16 14:16:33.432529817 +0200 ++++ firefox-102.0/toolkit/components/nimbus/generate/generate_feature_manifest.py 2022-08-17 08:01:38.175878171 +0200 +@@ -37,7 +37,7 @@ def generate_feature_manifest(fd, input_ + write_fm_js_headers(fd) + nimbus_dir_path = pathlib.Path(input_file).parent + try: +- with open(input_file, "r") as yaml_input: ++ with open(input_file, "r", encoding="utf-8") as yaml_input: + data = yaml.safe_load(yaml_input) + with pathlib.Path(nimbus_dir_path, FEATURE_MANIFEST_SCHEMA).open() as f: + schema = json.load(f) +@@ -92,7 +92,7 @@ def generate_platform_feature_manifest(f + ) + + try: +- with open(input_file, "r") as yaml_input: ++ with open(input_file, "r", encoding="utf-8") as yaml_input: + data = yaml.safe_load(yaml_input) + fd.write(file_structure(data)) + except (IOError) as e: diff --git a/SOURCES/build-big-endian-errors.patch b/SOURCES/build-big-endian-errors.patch new file mode 100644 index 0000000..b4bcb38 --- /dev/null +++ b/SOURCES/build-big-endian-errors.patch @@ -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; diff --git a/SOURCES/build-debuginfo-fix.patch b/SOURCES/build-debuginfo-fix.patch deleted file mode 100644 index 03fc300..0000000 --- a/SOURCES/build-debuginfo-fix.patch +++ /dev/null @@ -1,24 +0,0 @@ -diff -up firefox-91.0.1/third_party/libwebrtc/webrtc/modules/audio_processing/utility/ooura_fft.cc.debuginfo-fix firefox-91.0.1/third_party/libwebrtc/webrtc/modules/audio_processing/utility/ooura_fft.cc ---- firefox-91.0.1/third_party/libwebrtc/webrtc/modules/audio_processing/utility/ooura_fft.cc.debuginfo-fix 2021-09-01 11:11:46.738285751 +0200 -+++ firefox-91.0.1/third_party/libwebrtc/webrtc/modules/audio_processing/utility/ooura_fft.cc 2021-09-01 11:11:56.127319530 +0200 -@@ -21,7 +21,7 @@ - * be found in the AUTHORS file in the root of the source tree. - */ - --#include "modules/audio_processing//utility/ooura_fft.h" -+#include "modules/audio_processing/utility/ooura_fft.h" - - #include - -diff -up firefox-91.0.1/third_party/libwebrtc/webrtc/modules/audio_processing/utility/ooura_fft_sse2.cc.debuginfo-fix firefox-91.0.1/third_party/libwebrtc/webrtc/modules/audio_processing/utility/ooura_fft_sse2.cc ---- firefox-91.0.1/third_party/libwebrtc/webrtc/modules/audio_processing/utility/ooura_fft_sse2.cc.debuginfo-fix 2021-09-01 11:12:26.513428847 +0200 -+++ firefox-91.0.1/third_party/libwebrtc/webrtc/modules/audio_processing/utility/ooura_fft_sse2.cc 2021-09-01 11:12:32.117449009 +0200 -@@ -8,7 +8,7 @@ - * be found in the AUTHORS file in the root of the source tree. - */ - --#include "modules/audio_processing//utility/ooura_fft.h" -+#include "modules/audio_processing/utility/ooura_fft.h" - - #include - diff --git a/SOURCES/build-disable-elfhack.patch b/SOURCES/build-disable-elfhack.patch new file mode 100644 index 0000000..04d49f2 --- /dev/null +++ b/SOURCES/build-disable-elfhack.patch @@ -0,0 +1,12 @@ +diff -up firefox-97.0/toolkit/moz.configure.disable-elfhack firefox-97.0/toolkit/moz.configure +--- firefox-97.0/toolkit/moz.configure.disable-elfhack 2022-02-08 09:58:47.518047952 +0100 ++++ firefox-97.0/toolkit/moz.configure 2022-02-08 10:17:49.552945956 +0100 +@@ -1273,7 +1273,7 @@ with only_when("--enable-compile-environ + help="{Enable|Disable} elf hacks", + ) + +- set_config("USE_ELF_HACK", depends_if("--enable-elf-hack")(lambda _: True)) ++ set_config("USE_ELF_HACK", depends_if("--enable-elf-hack")(lambda _: False)) + + + @depends(build_environment) diff --git a/SOURCES/build-mozconfig-fix.patch b/SOURCES/build-mozconfig-fix.patch deleted file mode 100644 index 91dffb1..0000000 --- a/SOURCES/build-mozconfig-fix.patch +++ /dev/null @@ -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 diff --git a/SOURCES/build-nss-version.patch b/SOURCES/build-nss-version.patch deleted file mode 100644 index 25d34f6..0000000 --- a/SOURCES/build-nss-version.patch +++ /dev/null @@ -1,24 +0,0 @@ -diff -up firefox-91.0.1/build/moz.configure/nspr.configure.nss-nspr-downgrade firefox-91.0.1/build/moz.configure/nspr.configure ---- firefox-91.0.1/build/moz.configure/nspr.configure.nss-nspr-downgrade 2021-08-25 13:17:26.265307060 +0200 -+++ firefox-91.0.1/build/moz.configure/nspr.configure 2021-08-25 13:17:28.161313632 +0200 -@@ -50,7 +50,7 @@ set_define("JS_WITHOUT_NSPR", True, when - def nspr_minver(js_standalone): - if js_standalone: - return "nspr >= 4.10" -- return "nspr >= 4.32" -+ return "nspr >= 4.31" - - - nspr_pkg = pkg_check_modules("NSPR", nspr_minver, when="--with-system-nspr") -diff -up firefox-91.0.1/build/moz.configure/nss.configure.nss-nspr-downgrade firefox-91.0.1/build/moz.configure/nss.configure ---- firefox-91.0.1/build/moz.configure/nss.configure.nss-nspr-downgrade 2021-08-25 13:17:45.049372175 +0200 -+++ firefox-91.0.1/build/moz.configure/nss.configure 2021-08-25 13:17:37.763346918 +0200 -@@ -9,7 +9,7 @@ option("--with-system-nss", help="Use sy - imply_option("--with-system-nspr", True, when="--with-system-nss") - - nss_pkg = pkg_check_modules( -- "NSS", "nss >= 3.68", when="--with-system-nss", config=False -+ "NSS", "nss >= 3.67", when="--with-system-nss", config=False - ) - - set_config("MOZ_SYSTEM_NSS", True, when="--with-system-nss") diff --git a/SOURCES/build-ppc64le-inline.patch b/SOURCES/build-ppc64le-inline.patch deleted file mode 100644 index de0f6d9..0000000 --- a/SOURCES/build-ppc64le-inline.patch +++ /dev/null @@ -1,27 +0,0 @@ -diff -up firefox-68.1.0/js/xpconnect/src/XPCWrappedNative.cpp.ppc64le-inline firefox-68.1.0/js/xpconnect/src/XPCWrappedNative.cpp ---- firefox-68.1.0/js/xpconnect/src/XPCWrappedNative.cpp.ppc64le-inline 2019-08-26 18:52:28.000000000 +0200 -+++ firefox-68.1.0/js/xpconnect/src/XPCWrappedNative.cpp 2019-08-29 08:49:57.695687874 +0200 -@@ -1092,7 +1092,11 @@ class MOZ_STACK_CLASS CallMethodHelper f - MOZ_ALWAYS_INLINE bool GetOutParamSource(uint8_t paramIndex, - MutableHandleValue srcp) const; - -+#if (__GNUC__ && __linux__ && __PPC64__ && _LITTLE_ENDIAN) -+ bool GatherAndConvertResults(); -+#else - MOZ_ALWAYS_INLINE bool GatherAndConvertResults(); -+#endif - - MOZ_ALWAYS_INLINE bool QueryInterfaceFastPath(); - -@@ -1139,7 +1143,11 @@ class MOZ_STACK_CLASS CallMethodHelper f - - ~CallMethodHelper(); - -+#if (__GNUC__ && __linux__ && __PPC64__ && _LITTLE_ENDIAN) -+ bool Call(); -+#else - MOZ_ALWAYS_INLINE bool Call(); -+#endif - - // Trace implementation so we can put our CallMethodHelper in a Rooted. - void trace(JSTracer* aTrc); diff --git a/SOURCES/build-remove-dav1d-from-wayland-dep.patch b/SOURCES/build-remove-dav1d-from-wayland-dep.patch new file mode 100644 index 0000000..d073acd --- /dev/null +++ b/SOURCES/build-remove-dav1d-from-wayland-dep.patch @@ -0,0 +1,49 @@ +diff -up firefox-102.0/media/ffvpx/config_common.h.dav1d-remove firefox-102.0/media/ffvpx/config_common.h +--- firefox-102.0/media/ffvpx/config_common.h.dav1d-remove 2022-08-08 12:48:33.218128539 +0200 ++++ firefox-102.0/media/ffvpx/config_common.h 2022-08-08 12:48:52.986003374 +0200 +@@ -24,15 +24,11 @@ + #undef CONFIG_VP8_VAAPI_HWACCEL + #undef CONFIG_VP9_VAAPI_HWACCEL + #undef CONFIG_AV1_VAAPI_HWACCEL +-#undef CONFIG_LIBDAV1D +-#undef CONFIG_AV1_DECODER + #define CONFIG_VAAPI 1 + #define CONFIG_VAAPI_1 1 + #define CONFIG_VP8_VAAPI_HWACCEL 1 + #define CONFIG_VP9_VAAPI_HWACCEL 1 + #define CONFIG_AV1_VAAPI_HWACCEL 1 +-#define CONFIG_LIBDAV1D 1 +-#define CONFIG_AV1_DECODER 1 + #endif + + #endif +diff -up firefox-102.0/media/ffvpx/libavcodec/moz.build.dav1d-remove firefox-102.0/media/ffvpx/libavcodec/moz.build +--- firefox-102.0/media/ffvpx/libavcodec/moz.build.dav1d-remove 2022-08-08 12:44:24.098710736 +0200 ++++ firefox-102.0/media/ffvpx/libavcodec/moz.build 2022-08-08 12:46:42.635828719 +0200 +@@ -104,17 +104,23 @@ if not CONFIG['MOZ_FFVPX_AUDIOONLY']: + ] + if CONFIG['MOZ_WAYLAND']: + LOCAL_INCLUDES += ['/media/mozva'] ++ if CONFIG['MOZ_DAV1D_ASM']: ++ SOURCES += [ ++ 'libdav1d.c', ++ ] + SOURCES += [ + 'atsc_a53.c', +- 'libdav1d.c', + 'vaapi_av1.c', + 'vaapi_decode.c', + 'vaapi_vp8.c', + 'vaapi_vp9.c', + ] ++ if CONFIG['MOZ_DAV1D_ASM']: ++ USE_LIBS += [ ++ 'dav1d', ++ 'media_libdav1d_asm', ++ ] + USE_LIBS += [ +- 'dav1d', +- 'media_libdav1d_asm', + 'mozva' + ] + diff --git a/SOURCES/cbindgen-already-covers.patch b/SOURCES/cbindgen-already-covers.patch new file mode 100644 index 0000000..ab98649 --- /dev/null +++ b/SOURCES/cbindgen-already-covers.patch @@ -0,0 +1,11 @@ +diff -up thunderbird-102.1.0/gfx/webrender_bindings/webrender_ffi.h.cbindgen-covers thunderbird-102.1.0/gfx/webrender_bindings/webrender_ffi.h +--- thunderbird-102.1.0/gfx/webrender_bindings/webrender_ffi.h.cbindgen-covers 2022-08-04 12:47:06.970587140 +0200 ++++ thunderbird-102.1.0/gfx/webrender_bindings/webrender_ffi.h 2022-08-04 12:47:13.642579587 +0200 +@@ -73,7 +73,6 @@ struct WrPipelineInfo; + struct WrPipelineIdAndEpoch; + using WrPipelineIdEpochs = nsTArray; + +-const uint64_t ROOT_CLIP_CHAIN = ~0; + + } // namespace wr + } // namespace mozilla diff --git a/SOURCES/disable-openh264-download.patch b/SOURCES/disable-openh264-download.patch new file mode 100644 index 0000000..028b730 --- /dev/null +++ b/SOURCES/disable-openh264-download.patch @@ -0,0 +1,39 @@ +diff -up firefox-81.0/toolkit/modules/GMPInstallManager.jsm.old firefox-81.0/toolkit/modules/GMPInstallManager.jsm +--- firefox-81.0/toolkit/modules/GMPInstallManager.jsm.old 2020-09-25 10:39:04.769458703 +0200 ++++ firefox-81.0/toolkit/modules/GMPInstallManager.jsm 2020-09-25 10:39:22.038504747 +0200 +@@ -54,10 +54,6 @@ function getScopedLogger(prefix) { + + const LOCAL_GMP_SOURCES = [ + { +- id: "gmp-gmpopenh264", +- src: "chrome://global/content/gmp-sources/openh264.json", +- }, +- { + id: "gmp-widevinecdm", + src: "chrome://global/content/gmp-sources/widevinecdm.json", + }, +diff --git a/toolkit/content/jar.mn b/toolkit/content/jar.mn +--- a/toolkit/content/jar.mn ++++ b/toolkit/content/jar.mn +@@ -108,7 +108,6 @@ toolkit.jar: + #ifdef XP_MACOSX + content/global/macWindowMenu.js + #endif +- content/global/gmp-sources/openh264.json (gmp-sources/openh264.json) + content/global/gmp-sources/widevinecdm.json (gmp-sources/widevinecdm.json) + + # Third party files +diff --git a/toolkit/modules/GMPInstallManager.jsm b/toolkit/modules/GMPInstallManager.jsm +--- a/toolkit/modules/GMPInstallManager.jsm ++++ b/toolkit/modules/GMPInstallManager.jsm +@@ -238,6 +234,9 @@ GMPInstallManager.prototype = { + * downloaderr, verifyerr or previouserrorencountered + */ + installAddon(gmpAddon) { ++ if (gmpAddon.isOpenH264) { ++ return Promise.reject({ type: "disabled" }); ++ } + if (this._deferred) { + let log = getScopedLogger("GMPInstallManager.installAddon"); + log.error("previous error encountered"); + diff --git a/SOURCES/disable-openpgp-in-thunderbird.patch b/SOURCES/disable-openpgp-in-thunderbird.patch index 820f2e4..43bc620 100644 --- a/SOURCES/disable-openpgp-in-thunderbird.patch +++ b/SOURCES/disable-openpgp-in-thunderbird.patch @@ -1,28 +1,12 @@ -diff --git a/comm/mail/extensions/openpgp/content/BondOpenPGP.jsm b/comm/mail/extensions/openpgp/content/BondOpenPGP.jsm ---- a/comm/mail/extensions/openpgp/content/BondOpenPGP.jsm -+++ b/comm/mail/extensions/openpgp/content/BondOpenPGP.jsm -@@ -53,20 +53,23 @@ var BondOpenPGP = { - - // if null, we haven't yet read the pref - // if true, pref was enabled and we already triggered init - _isEnabled: null, - +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 - setIsEnabledFromPref() { -- this._isEnabled = Services.prefs.getBoolPref("mail.openpgp.enable"); -+ return false; -+ //this._isEnabled = Services.prefs.getBoolPref("mail.openpgp.enable"); - }, - async init() { ++ // We don't have support for the opengpg in rhel ATM. + return; -+ - if (!MailConstants.MOZ_OPENPGP) { + if (this._alreadyTriedInit) { + // We have previously attempted to init, don't try again. return; - } - - // We never shut off after pref change, disabling requires restart. - // If null, it means we're here for the first time, read the pref. - // If false, it could mean the pref was now turned on at runtime. - // In both scenarios, null and false, we reread the pref to check diff --git a/SOURCES/expat-CVE-2022-25235.patch b/SOURCES/expat-CVE-2022-25235.patch deleted file mode 100644 index ac495b1..0000000 --- a/SOURCES/expat-CVE-2022-25235.patch +++ /dev/null @@ -1,49 +0,0 @@ -diff -up thunderbird-91.7.0/parser/expat/lib/xmltok.c.expat-CVE-2022-25235 thunderbird-91.7.0/parser/expat/lib/xmltok.c ---- thunderbird-91.7.0/parser/expat/lib/xmltok.c.expat-CVE-2022-25235 2022-03-02 17:57:38.364361168 +0100 -+++ thunderbird-91.7.0/parser/expat/lib/xmltok.c 2022-03-02 17:58:22.235512399 +0100 -@@ -65,13 +65,6 @@ - + ((((byte)[2]) >> 5) & 1)] \ - & (1u << (((byte)[2]) & 0x1F))) - --#define UTF8_GET_NAMING(pages, p, n) \ -- ((n) == 2 \ -- ? UTF8_GET_NAMING2(pages, (const unsigned char *)(p)) \ -- : ((n) == 3 \ -- ? UTF8_GET_NAMING3(pages, (const unsigned char *)(p)) \ -- : 0)) -- - /* Detection of invalid UTF-8 sequences is based on Table 3.1B - of Unicode 3.2: http://www.unicode.org/unicode/reports/tr28/ - with the additional restriction of not allowing the Unicode -diff -up thunderbird-91.7.0/parser/expat/lib/xmltok_impl.c.expat-CVE-2022-25235 thunderbird-91.7.0/parser/expat/lib/xmltok_impl.c ---- thunderbird-91.7.0/parser/expat/lib/xmltok_impl.c.expat-CVE-2022-25235 2022-03-02 17:57:38.365361172 +0100 -+++ thunderbird-91.7.0/parser/expat/lib/xmltok_impl.c 2022-03-02 18:04:51.240853247 +0100 -@@ -34,7 +34,7 @@ - case BT_LEAD ## n: \ - if (end - ptr < n) \ - return XML_TOK_PARTIAL_CHAR; \ -- if (!IS_NAME_CHAR(enc, ptr, n)) { \ -+ if (IS_INVALID_CHAR(enc, ptr, n) || ! IS_NAME_CHAR(enc, ptr, n)) { \ - *nextTokPtr = ptr; \ - return XML_TOK_INVALID; \ - } \ -@@ -62,7 +62,7 @@ - case BT_LEAD ## n: \ - if (end - ptr < n) \ - return XML_TOK_PARTIAL_CHAR; \ -- if (!IS_NMSTRT_CHAR(enc, ptr, n)) { \ -+ if (IS_INVALID_CHAR(enc, ptr, n) || ! IS_NMSTRT_CHAR(enc, ptr, n)) { \ - *nextTokPtr = ptr; \ - return XML_TOK_INVALID; \ - } \ -@@ -1090,6 +1090,10 @@ PREFIX(prologTok)(const ENCODING *enc, c - case BT_LEAD ## n: \ - if (end - ptr < n) \ - return XML_TOK_PARTIAL_CHAR; \ -+ if (IS_INVALID_CHAR(enc, ptr, n)) { \ -+ *nextTokPtr = ptr; \ -+ return XML_TOK_INVALID; \ -+ } \ - if (IS_NMSTRT_CHAR(enc, ptr, n)) { \ - ptr += n; \ - tok = XML_TOK_NAME; \ diff --git a/SOURCES/expat-CVE-2022-25236.patch b/SOURCES/expat-CVE-2022-25236.patch deleted file mode 100644 index 84cafd2..0000000 --- a/SOURCES/expat-CVE-2022-25236.patch +++ /dev/null @@ -1,40 +0,0 @@ -diff -up thunderbird-91.7.0/parser/expat/lib/xmlparse.c.expat-CVE-2022-25236 thunderbird-91.7.0/parser/expat/lib/xmlparse.c ---- thunderbird-91.7.0/parser/expat/lib/xmlparse.c.expat-CVE-2022-25236 2022-03-02 18:08:40.085642028 +0100 -+++ thunderbird-91.7.0/parser/expat/lib/xmlparse.c 2022-03-02 18:13:31.838667958 +0100 -@@ -700,8 +700,7 @@ XML_ParserCreate(const XML_Char *encodin - XML_Parser XMLCALL - XML_ParserCreateNS(const XML_Char *encodingName, XML_Char nsSep) - { -- XML_Char tmp[2]; -- *tmp = nsSep; -+ XML_Char tmp[2] = {nsSep, 0}; - return XML_ParserCreate_MM(encodingName, NULL, tmp); - } - #endif -@@ -1276,8 +1275,7 @@ XML_ExternalEntityParserCreate(XML_Parse - would be otherwise. - */ - if (ns) { -- XML_Char tmp[2]; -- *tmp = namespaceSeparator; -+ XML_Char tmp[2] = {parser->m_namespaceSeparator, 0}; - parser = parserCreate(encodingName, &parser->m_mem, tmp, newDtd); - } - else { -@@ -3667,6 +3665,16 @@ addBinding(XML_Parser parser, PREFIX *pr - if (!mustBeXML && isXMLNS - && (len > xmlnsLen || uri[len] != xmlnsNamespace[len])) - isXMLNS = XML_FALSE; -+ // NOTE: While Expat does not validate namespace URIs against RFC 3986, -+ // we have to at least make sure that the XML processor on top of -+ // Expat (that is splitting tag names by namespace separator into -+ // 2- or 3-tuples (uri-local or uri-local-prefix)) cannot be confused -+ // by an attacker putting additional namespace separator characters -+ // into namespace declarations. That would be ambiguous and not to -+ // be expected. -+ if (parser->m_ns && (uri[len] == parser->m_namespaceSeparator)) { -+ return XML_ERROR_SYNTAX; -+ } - } - isXML = isXML && len == xmlLen; - isXMLNS = isXMLNS && len == xmlnsLen; diff --git a/SOURCES/expat-CVE-2022-25315.patch b/SOURCES/expat-CVE-2022-25315.patch deleted file mode 100644 index 4d4efb7..0000000 --- a/SOURCES/expat-CVE-2022-25315.patch +++ /dev/null @@ -1,24 +0,0 @@ -diff -up thunderbird-91.7.0/parser/expat/lib/xmlparse.c.expat-CVE-2022-25315 thunderbird-91.7.0/parser/expat/lib/xmlparse.c ---- thunderbird-91.7.0/parser/expat/lib/xmlparse.c.expat-CVE-2022-25315 2022-03-02 18:17:50.966583254 +0100 -+++ thunderbird-91.7.0/parser/expat/lib/xmlparse.c 2022-03-02 18:19:27.636924735 +0100 -@@ -2479,6 +2479,7 @@ storeRawNames(XML_Parser parser) - while (tag) { - int bufSize; - int nameLen = sizeof(XML_Char) * (tag->name.strLen + 1); -+ size_t rawNameLen; - char *rawNameBuf = tag->buf + nameLen; - /* Stop if already stored. Since tagStack is a stack, we can stop - at the first entry that has already been copied; everything -@@ -2490,7 +2491,11 @@ storeRawNames(XML_Parser parser) - /* For re-use purposes we need to ensure that the - size of tag->buf is a multiple of sizeof(XML_Char). - */ -- bufSize = nameLen + ROUND_UP(tag->rawNameLength, sizeof(XML_Char)); -+ rawNameLen = ROUND_UP(tag->rawNameLength, sizeof(XML_Char)); -+ /* Detect and prevent integer overflow. */ -+ if (rawNameLen > (size_t)INT_MAX - nameLen) -+ return XML_FALSE; -+ bufSize = nameLen + (int)rawNameLen; - if (bufSize > tag->bufEnd - tag->buf) { - char *temp = (char *)REALLOC(tag->buf, bufSize); - if (temp == NULL) diff --git a/SOURCES/fedora-shebang-build.patch b/SOURCES/fedora-shebang-build.patch new file mode 100644 index 0000000..9ade86c --- /dev/null +++ b/SOURCES/fedora-shebang-build.patch @@ -0,0 +1,9 @@ +diff -up firefox-73.0/build/unix/run-mozilla.sh.old firefox-73.0/build/unix/run-mozilla.sh +--- firefox-73.0/build/unix/run-mozilla.sh.old 2020-02-12 09:58:00.150895904 +0100 ++++ firefox-73.0/build/unix/run-mozilla.sh 2020-02-12 09:58:06.505860696 +0100 +@@ -1,4 +1,4 @@ +-#!/bin/sh ++#!/usr/bin/sh + # + # This Source Code Form is subject to the terms of the Mozilla Public + # License, v. 2.0. If a copy of the MPL was not distributed with this diff --git a/SOURCES/firefox-gcc-build.patch b/SOURCES/firefox-gcc-build.patch new file mode 100644 index 0000000..55017ad --- /dev/null +++ b/SOURCES/firefox-gcc-build.patch @@ -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); + } + diff --git a/SOURCES/firefox-nss-addon-hack.patch b/SOURCES/firefox-nss-addon-hack.patch new file mode 100644 index 0000000..0322707 --- /dev/null +++ b/SOURCES/firefox-nss-addon-hack.patch @@ -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) { diff --git a/SOURCES/firefox-nss-version.patch b/SOURCES/firefox-nss-version.patch new file mode 100644 index 0000000..7b7c859 --- /dev/null +++ b/SOURCES/firefox-nss-version.patch @@ -0,0 +1,13 @@ +diff -up firefox-102.2.0/build/moz.configure/nss.configure.nss-version firefox-102.2.0/build/moz.configure/nss.configure +--- firefox-102.2.0/build/moz.configure/nss.configure.nss-version 2022-08-23 18:17:14.699869558 +0200 ++++ firefox-102.2.0/build/moz.configure/nss.configure 2022-08-23 18:15:33.790051448 +0200 +@@ -9,7 +9,7 @@ system_lib_option("--with-system-nss", h + imply_option("--with-system-nspr", True, when="--with-system-nss") + + nss_pkg = pkg_check_modules( +- "NSS", "nss >= 3.79.1", when="--with-system-nss", config=False ++ "NSS", "nss >= 3.79", when="--with-system-nss", config=False + ) + + set_config("MOZ_SYSTEM_NSS", True, when="--with-system-nss") +diff -up firefox-102.2.0/.nss-version firefox-102.2.0/ diff --git a/SOURCES/get-calendar-langpacks.sh b/SOURCES/get-calendar-langpacks.sh deleted file mode 100755 index 854cae2..0000000 --- a/SOURCES/get-calendar-langpacks.sh +++ /dev/null @@ -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 < find; -diff -up firefox-91.0/toolkit/xre/nsXREDirProvider.cpp.1170092 firefox-91.0/toolkit/xre/nsXREDirProvider.cpp ---- firefox-91.0/toolkit/xre/nsXREDirProvider.cpp.1170092 2021-07-27 23:30:56.000000000 +0200 -+++ firefox-91.0/toolkit/xre/nsXREDirProvider.cpp 2021-07-29 16:26:20.071628932 +0200 -@@ -71,6 +71,7 @@ +diff -up firefox-87.0/toolkit/xre/nsXREDirProvider.cpp.1170092 firefox-87.0/toolkit/xre/nsXREDirProvider.cpp +--- firefox-87.0/toolkit/xre/nsXREDirProvider.cpp.1170092 2021-03-18 14:52:00.000000000 +0100 ++++ firefox-87.0/toolkit/xre/nsXREDirProvider.cpp 2021-03-22 19:37:56.574480347 +0100 +@@ -65,6 +65,7 @@ #endif #ifdef XP_UNIX # include @@ -46,7 +47,7 @@ diff -up firefox-91.0/toolkit/xre/nsXREDirProvider.cpp.1170092 firefox-91.0/tool #endif #ifdef XP_IOS # include "UIKitDirProvider.h" -@@ -550,6 +551,21 @@ nsXREDirProvider::GetFile(const char* aP +@@ -552,6 +553,21 @@ nsXREDirProvider::GetFile(const char* aP } } } @@ -68,26 +69,26 @@ diff -up firefox-91.0/toolkit/xre/nsXREDirProvider.cpp.1170092 firefox-91.0/tool if (NS_FAILED(rv) || !file) return NS_ERROR_FAILURE; if (ensureFilePermissions) { -@@ -827,6 +843,16 @@ nsresult nsXREDirProvider::GetFilesInter - LoadDirIntoArray(mXULAppDir, kAppendBackgroundTasksPrefDir, directories); +@@ -874,6 +890,16 @@ nsresult nsXREDirProvider::GetFilesInter } #endif + + // Add /etc//pref/ directory if it exists + nsCOMPtr 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)) { ++ 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)) { -diff -up firefox-91.0/xpcom/io/nsAppDirectoryServiceDefs.h.1170092 firefox-91.0/xpcom/io/nsAppDirectoryServiceDefs.h ---- firefox-91.0/xpcom/io/nsAppDirectoryServiceDefs.h.1170092 2021-07-27 23:31:38.000000000 +0200 -+++ firefox-91.0/xpcom/io/nsAppDirectoryServiceDefs.h 2021-07-29 16:20:44.168514012 +0200 + // NS_APP_CHROME_DIR_LIST is only used to get default (native) icons +diff -up firefox-87.0/xpcom/io/nsAppDirectoryServiceDefs.h.1170092 firefox-87.0/xpcom/io/nsAppDirectoryServiceDefs.h +--- firefox-87.0/xpcom/io/nsAppDirectoryServiceDefs.h.1170092 2021-03-18 14:51:58.000000000 +0100 ++++ firefox-87.0/xpcom/io/nsAppDirectoryServiceDefs.h 2021-03-22 19:20:02.430310213 +0100 @@ -59,6 +59,7 @@ #define NS_APP_PREFS_DEFAULTS_DIR_LIST "PrefDL" #define NS_APP_PREFS_OVERRIDE_DIR \ diff --git a/SOURCES/mozilla-1516803.patch b/SOURCES/mozilla-1516803.patch new file mode 100644 index 0000000..5053e51 --- /dev/null +++ b/SOURCES/mozilla-1516803.patch @@ -0,0 +1,15 @@ +diff -up firefox-84.0/security/sandbox/linux/moz.build.1516803 firefox-84.0/security/sandbox/linux/moz.build +--- firefox-84.0/security/sandbox/linux/moz.build.1516803 2020-12-10 16:17:55.425139545 +0100 ++++ firefox-84.0/security/sandbox/linux/moz.build 2020-12-10 16:29:21.945860841 +0100 +@@ -114,9 +114,8 @@ if CONFIG["CC_TYPE"] in ("clang", "gcc") + # gcc lto likes to put the top level asm in syscall.cc in a different partition + # from the function using it which breaks the build. Work around that by + # forcing there to be only one partition. +-for f in CONFIG["OS_CXXFLAGS"]: +- if f.startswith("-flto") and CONFIG["CC_TYPE"] != "clang": +- LDFLAGS += ["--param lto-partitions=1"] ++if CONFIG['CC_TYPE'] != 'clang': ++ LDFLAGS += ['--param', 'lto-partitions=1'] + + DEFINES["NS_NO_XPCOM"] = True + DisableStlWrapping() diff --git a/SOURCES/mozilla-1669639.patch b/SOURCES/mozilla-1669639.patch new file mode 100644 index 0000000..cd04aab --- /dev/null +++ b/SOURCES/mozilla-1669639.patch @@ -0,0 +1,14 @@ +--- firefox-81.0.1/build/mach_initialize.py.old 2020-10-06 14:16:06.212974910 +0200 ++++ firefox-81.0.1/build/mach_initialize.py 2020-10-06 14:19:03.313179557 +0200 +@@ -507,7 +507,10 @@ class ImportHook(object): + # doesn't happen or because it doesn't matter). + if not os.path.exists(module.__file__[:-1]): + if os.path.exists(module.__file__): +- os.remove(module.__file__) ++ try: ++ os.remove(module.__file__) ++ except: ++ pass + del sys.modules[module.__name__] + module = self(name, globals, locals, fromlist, level) + diff --git a/SOURCES/mozilla-1670333.patch b/SOURCES/mozilla-1670333.patch new file mode 100644 index 0000000..1c5c476 --- /dev/null +++ b/SOURCES/mozilla-1670333.patch @@ -0,0 +1,68 @@ +diff -up firefox-99.0/dom/media/mp4/MP4Demuxer.cpp.1670333 firefox-99.0/dom/media/mp4/MP4Demuxer.cpp +--- firefox-99.0/dom/media/mp4/MP4Demuxer.cpp.1670333 2022-03-31 01:24:44.000000000 +0200 ++++ firefox-99.0/dom/media/mp4/MP4Demuxer.cpp 2022-04-04 09:58:35.606351546 +0200 +@@ -31,6 +31,8 @@ mozilla::LogModule* GetDemuxerLog() { re + DDMOZ_LOG(gMediaDemuxerLog, mozilla::LogLevel::Debug, "::%s: " arg, \ + __func__, ##__VA_ARGS__) + ++extern bool gUseKeyframeFromContainer; ++ + namespace mozilla { + + DDLoggedTypeDeclNameAndBase(MP4TrackDemuxer, MediaTrackDemuxer); +@@ -394,6 +396,12 @@ already_AddRefed 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-99.0/dom/media/platforms/PDMFactory.cpp.1670333 firefox-99.0/dom/media/platforms/PDMFactory.cpp +--- firefox-99.0/dom/media/platforms/PDMFactory.cpp.1670333 2022-03-31 01:24:44.000000000 +0200 ++++ firefox-99.0/dom/media/platforms/PDMFactory.cpp 2022-04-04 10:09:57.383419125 +0200 +@@ -58,6 +58,8 @@ + + #include + ++bool gUseKeyframeFromContainer = false; ++ + namespace mozilla { + + #define PDM_INIT_LOG(msg, ...) \ +@@ -495,7 +497,7 @@ void PDMFactory::CreateRddPDMs() { + #ifdef MOZ_FFMPEG + if (StaticPrefs::media_ffmpeg_enabled() && + StaticPrefs::media_rdd_ffmpeg_enabled() && +- !CreateAndStartupPDM()) { ++ !(mFFmpegUsed = CreateAndStartupPDM())) { + mFailureFlags += GetFailureFlagBasedOnFFmpegStatus( + FFmpegRuntimeLinker::LinkStatusCode()); + } +@@ -602,8 +604,9 @@ void PDMFactory::CreateDefaultPDMs() { + + CreateAndStartupPDM(); + +- if (StaticPrefs::media_gmp_decoder_enabled() && ++ if (StaticPrefs::media_gmp_decoder_enabled() && !mFFmpegUsed && + !CreateAndStartupPDM()) { ++ gUseKeyframeFromContainer = true; + mFailureFlags += DecoderDoctorDiagnostics::Flags::GMPPDMFailedToStartup; + } + } +diff -up firefox-99.0/dom/media/platforms/PDMFactory.h.1670333 firefox-99.0/dom/media/platforms/PDMFactory.h +--- firefox-99.0/dom/media/platforms/PDMFactory.h.1670333 2022-03-31 01:24:44.000000000 +0200 ++++ firefox-99.0/dom/media/platforms/PDMFactory.h 2022-04-04 09:58:35.606351546 +0200 +@@ -121,6 +121,7 @@ class PDMFactory final { + RefPtr mNullPDM; + + DecoderDoctorDiagnostics::FlagsSet mFailureFlags; ++ bool mFFmpegUsed = false; + + friend class RemoteVideoDecoderParent; + static void EnsureInit(); diff --git a/SOURCES/mozilla-1775202.patch b/SOURCES/mozilla-1775202.patch new file mode 100644 index 0000000..b1748de --- /dev/null +++ b/SOURCES/mozilla-1775202.patch @@ -0,0 +1,17 @@ +diff --git a/third_party/libwebrtc/moz.build b/third_party/libwebrtc/moz.build +index 8579f8bb3622..d9ca79d4fcb8 100644 +--- a/third_party/libwebrtc/moz.build ++++ b/third_party/libwebrtc/moz.build +@@ -520,7 +520,10 @@ if CONFIG["CPU_ARCH"] == "ppc64" and CONFIG["OS_TARGET"] == "Linux": + "/third_party/libwebrtc/api/audio_codecs/isac/audio_decoder_isac_float_gn", + "/third_party/libwebrtc/api/audio_codecs/isac/audio_encoder_isac_float_gn", + "/third_party/libwebrtc/modules/audio_coding/isac_c_gn", +- "/third_party/libwebrtc/modules/audio_coding/isac_gn" ++ "/third_party/libwebrtc/modules/audio_coding/isac_gn", ++ "/third_party/libwebrtc/modules/desktop_capture/desktop_capture_generic_gn", ++ "/third_party/libwebrtc/modules/desktop_capture/desktop_capture_gn", ++ "/third_party/libwebrtc/modules/desktop_capture/primitives_gn" + ] + + if CONFIG["CPU_ARCH"] == "x86" and CONFIG["OS_TARGET"] == "Linux": + diff --git a/SOURCES/mozilla-bmo1005535.patch b/SOURCES/mozilla-bmo1005535.patch index cab0134..d20d812 100644 --- a/SOURCES/mozilla-bmo1005535.patch +++ b/SOURCES/mozilla-bmo1005535.patch @@ -1,7 +1,20 @@ -diff -up firefox-78.0/gfx/skia/skia/src/gpu/GrColor.h.mozilla.bmo1005535 firefox-78.0/gfx/skia/skia/src/gpu/GrColor.h ---- firefox-78.0/gfx/skia/skia/src/gpu/GrColor.h.mozilla.bmo1005535 2020-06-25 16:16:34.459083304 +0200 -+++ firefox-78.0/gfx/skia/skia/src/gpu/GrColor.h 2020-06-25 16:17:00.968174743 +0200 -@@ -64,7 +64,7 @@ static inline GrColor GrColorPackRGBA(un +# HG changeset patch +# User Steve Singer +# Date 1558451540 -7200 +# Tue May 21 17:12:20 2019 +0200 +# Node ID 433beec63e6b5f409683af20a0c1ab137cc7bfad +# Parent c0fdccc716e80a6d289c94f5d507ae141c62a3bf +Bug 1005535 - Get skia GPU building on big endian. + +diff --git a/gfx/skia/skia/src/gpu/GrColor.h b/gfx/skia/skia/src/gpu/GrColor.h +--- a/gfx/skia/skia/src/gpu/GrColor.h ++++ b/gfx/skia/skia/src/gpu/GrColor.h +@@ -59,17 +59,17 @@ static inline GrColor GrColorPackRGBA(un + #define GrColorUnpackG(color) (((color) >> GrColor_SHIFT_G) & 0xFF) + #define GrColorUnpackB(color) (((color) >> GrColor_SHIFT_B) & 0xFF) + #define GrColorUnpackA(color) (((color) >> GrColor_SHIFT_A) & 0xFF) + + /** * Since premultiplied means that alpha >= color, we construct a color with * each component==255 and alpha == 0 to be "illegal" */ @@ -10,3 +23,8 @@ diff -up firefox-78.0/gfx/skia/skia/src/gpu/GrColor.h.mozilla.bmo1005535 firefox /** Normalizes and coverts an uint8_t to a float. [0, 255] -> [0.0, 1.0] */ static inline float GrNormalizeByteToFloat(uint8_t value) { + static const float ONE_OVER_255 = 1.f / 255.f; + return value * ONE_OVER_255; + } + + /** Used to pick vertex attribute types. */ diff --git a/SOURCES/mozilla-bmo1504834-part1.patch b/SOURCES/mozilla-bmo1504834-part1.patch index 01da145..1afe3aa 100644 --- a/SOURCES/mozilla-bmo1504834-part1.patch +++ b/SOURCES/mozilla-bmo1504834-part1.patch @@ -1,7 +1,16 @@ -diff -up firefox-78.0/gfx/2d/DrawTargetSkia.cpp.mozilla-bmo1504834-part1 firefox-78.0/gfx/2d/DrawTargetSkia.cpp ---- firefox-78.0/gfx/2d/DrawTargetSkia.cpp.mozilla-bmo1504834-part1 2020-06-17 04:18:58.000000000 +0200 -+++ firefox-78.0/gfx/2d/DrawTargetSkia.cpp 2020-06-25 16:52:29.824532769 +0200 -@@ -135,8 +135,7 @@ static IntRect CalculateSurfaceBounds(co +# HG changeset patch +# Parent b5471d23321d16a0bacc25b7afd27d2e16adba1a +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 +@@ -130,18 +130,17 @@ static IntRect CalculateSurfaceBounds(co + Rect sampledBounds = inverse.TransformBounds(*aBounds); + if (!sampledBounds.ToIntRect(&bounds)) { + return surfaceBounds; + } + return surfaceBounds.Intersect(bounds); } @@ -11,10 +20,20 @@ diff -up firefox-78.0/gfx/2d/DrawTargetSkia.cpp.mozilla-bmo1504834-part1 firefox static bool VerifyRGBXFormat(uint8_t* aData, const IntSize& aSize, const int32_t aStride, SurfaceFormat aFormat) { -diff -up firefox-78.0/gfx/2d/Types.h.mozilla-bmo1504834-part1 firefox-78.0/gfx/2d/Types.h ---- firefox-78.0/gfx/2d/Types.h.mozilla-bmo1504834-part1 2020-06-25 16:52:29.826532776 +0200 -+++ firefox-78.0/gfx/2d/Types.h 2020-06-25 16:55:02.942063616 +0200 -@@ -90,15 +90,8 @@ enum class SurfaceFormat : int8_t { + if (aFormat != SurfaceFormat::B8G8R8X8 || aSize.IsEmpty()) { + return true; + } + // We should've initialized the data to be opaque already + // On debug builds, verify that this is actually true. +diff --git a/gfx/2d/Types.h b/gfx/2d/Types.h +--- a/gfx/2d/Types.h ++++ b/gfx/2d/Types.h +@@ -84,25 +84,18 @@ enum class SurfaceFormat : int8_t { + Depth, + + // This represents the unknown format. + UNKNOWN, + // The following values are endian-independent synonyms. The _UINT32 suffix // indicates that the name reflects the layout when viewed as a uint32_t // value. @@ -30,10 +49,20 @@ diff -up firefox-78.0/gfx/2d/Types.h.mozilla-bmo1504834-part1 firefox-78.0/gfx/2 // The following values are OS and endian-independent synonyms. // -diff -up firefox-78.0/gfx/skia/skia/third_party/skcms/skcms.cc.mozilla-bmo1504834-part1 firefox-78.0/gfx/skia/skia/third_party/skcms/skcms.cc ---- firefox-78.0/gfx/skia/skia/third_party/skcms/skcms.cc.mozilla-bmo1504834-part1 2020-06-17 04:18:58.000000000 +0200 -+++ firefox-78.0/gfx/skia/skia/third_party/skcms/skcms.cc 2020-06-25 16:54:02.993855444 +0200 -@@ -30,6 +30,8 @@ + // TODO(aosmond): When everything blocking bug 1581828 has been resolved, we + // can make this use R8B8G8A8 and R8B8G8X8 for non-Windows platforms. + OS_RGBA = A8R8G8B8_UINT32, + OS_RGBX = X8R8G8B8_UINT32 + }; +diff --git a/gfx/skia/skia/third_party/skcms/skcms.cc b/gfx/skia/skia/third_party/skcms/skcms.cc +--- a/gfx/skia/skia/third_party/skcms/skcms.cc ++++ b/gfx/skia/skia/third_party/skcms/skcms.cc +@@ -25,16 +25,18 @@ + // it'd be a lot slower. But we want all those headers included so we + // can use their features after runtime checks later. + #include + #include + #include #include #include #endif @@ -42,17 +71,27 @@ diff -up firefox-78.0/gfx/skia/skia/third_party/skcms/skcms.cc.mozilla-bmo150483 #endif // sizeof(x) will return size_t, which is 32-bit on some machines and 64-bit on others. -@@ -280,20 +282,28 @@ enum { + // We have better testing on 64-bit machines, so force 32-bit machines to behave like 64-bit. + // + // Please do not use sizeof() directly, and size_t only when required. + // (We have no way of enforcing these requests...) + #define SAFE_SIZEOF(x) ((uint64_t)sizeof(x)) +@@ -275,30 +277,38 @@ enum { + skcms_Signature_sf32 = 0x73663332, + // XYZ is also a PCS signature, so it's defined in skcms.h + // skcms_Signature_XYZ = 0x58595A20, + }; + 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 ++#else + #if defined(_MSC_VER) -+ return _byteswap_ushort(be); + return _byteswap_ushort(be); +-#else + #else return __builtin_bswap16(be); + #endif @@ -63,15 +102,20 @@ diff -up firefox-78.0/gfx/skia/skia/third_party/skcms/skcms.cc.mozilla-bmo150483 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 ++#else + #if defined(_MSC_VER) -+ return _byteswap_ulong(be); + return _byteswap_ulong(be); +-#else + #else return __builtin_bswap32(be); + #endif #endif } + static int32_t read_big_i32(const uint8_t* ptr) { + return (int32_t)read_big_u32(ptr); + } + + static float read_big_fixed(const uint8_t* ptr) { diff --git a/SOURCES/mozilla-bmo1504834-part2.patch b/SOURCES/mozilla-bmo1504834-part2.patch deleted file mode 100644 index e6e6aa5..0000000 --- a/SOURCES/mozilla-bmo1504834-part2.patch +++ /dev/null @@ -1,88 +0,0 @@ -# HG changeset patch -# Parent 36563351309ddbc6c29559ba50a41d005f925abb -Skia does not support big endian. The places to fix are too numerous and upstream (skia, not Mozilla) -has no interest in maintaining big endian. -So here we try to swizzle the input for skia, so that skia always works on LE, and when it comes -out again, we transform back to BE. - -diff -r 36563351309d gfx/2d/ConvolutionFilter.cpp ---- a/gfx/2d/ConvolutionFilter.cpp Mon Sep 09 17:59:28 2019 +0200 -+++ b/gfx/2d/ConvolutionFilter.cpp Tue Sep 10 08:25:13 2019 +0200 -@@ -35,9 +35,38 @@ - return true; - } - -+static void ByteSwapArray(uint8_t *u8Array, int32_t size) { -+ uint32_t *array = reinterpret_cast(u8Array); -+ for (int pxl = 0; pxl < size; ++pxl) { -+ // Use an endian swap to move the bytes, i.e. BGRA -> ARGB. -+ uint32_t rgba = array[pxl]; -+ array[pxl] = NativeEndian::swapToLittleEndian(rgba); -+ } -+} -+ - void ConvolutionFilter::ConvolveHorizontally(const uint8_t* aSrc, uint8_t* aDst, - bool aHasAlpha) { -+#if MOZ_BIG_ENDIAN -+ int outputSize = mFilter->numValues(); -+ -+ // Input size isn't handed in, so we have to calculate it quickly -+ int inputSize = 0; -+ for (int xx = 0; xx < outputSize; ++xx) { -+ // Get the filter that determines the current output pixel. -+ int filterOffset, filterLength; -+ mFilter->FilterForValue(xx, &filterOffset, &filterLength); -+ inputSize = std::max(inputSize, filterOffset + filterLength); -+ } -+ -+ ByteSwapArray((uint8_t*)aSrc, inputSize); -+#endif -+ - SkOpts::convolve_horizontally(aSrc, *mFilter, aDst, aHasAlpha); -+ -+#if MOZ_BIG_ENDIAN -+ ByteSwapArray((uint8_t*)aSrc, inputSize); -+ ByteSwapArray(aDst, outputSize); -+#endif - } - - void ConvolutionFilter::ConvolveVertically(uint8_t* const* aSrc, uint8_t* aDst, -@@ -49,8 +78,26 @@ - int32_t filterLength; - auto filterValues = - mFilter->FilterForValue(aRowIndex, &filterOffset, &filterLength); -+ -+#if MOZ_BIG_ENDIAN -+ for (int filterY = 0; filterY < filterLength; filterY++) { -+ // Skia only knows LE, so we have to swizzle the input -+ ByteSwapArray(aSrc[filterY], aRowSize); -+ } -+#endif -+ - SkOpts::convolve_vertically(filterValues, filterLength, aSrc, aRowSize, aDst, - aHasAlpha); -+ -+#if MOZ_BIG_ENDIAN -+ // After skia is finished, we swizzle back to BE, in case -+ // the input is used again somewhere else -+ for (int filterY = 0; filterY < filterLength; filterY++) { -+ ByteSwapArray(aSrc[filterY], aRowSize); -+ } -+ // The destination array as well -+ ByteSwapArray(aDst, aRowSize); -+#endif - } - - /* ConvolutionFilter::ComputeResizeFactor is derived from Skia's -diff -r 36563351309d gfx/skia/skia/include/core/SkPreConfig.h ---- a/gfx/skia/skia/include/core/SkPreConfig.h Mon Sep 09 17:59:28 2019 +0200 -+++ b/gfx/skia/skia/include/core/SkPreConfig.h Tue Sep 10 08:25:13 2019 +0200 -@@ -73,7 +73,7 @@ - defined(__ppc__) || defined(__hppa) || \ - defined(__PPC__) || defined(__PPC64__) || \ - defined(_MIPSEB) || defined(__ARMEB__) || \ -- defined(__s390__) || \ -+ defined(__s390__) || defined(__s390x__) || \ - (defined(__sh__) && defined(__BIG_ENDIAN__)) || \ - (defined(__ia64) && defined(__BIG_ENDIAN__)) - #define SK_CPU_BENDIAN diff --git a/SOURCES/mozilla-bmo1504834-part3.patch b/SOURCES/mozilla-bmo1504834-part3.patch index 1a498f8..d07702e 100644 --- a/SOURCES/mozilla-bmo1504834-part3.patch +++ b/SOURCES/mozilla-bmo1504834-part3.patch @@ -1,12 +1,17 @@ # HG changeset patch -# Parent aecb4600e5da17443b224c79eee178c1d8e155e3 +# Parent d1d66f7e4d0e7fd45e91e4fcee07555e72046d48 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 -r aecb4600e5da gfx/skia/skia/include/private/SkNx.h ---- a/gfx/skia/skia/include/private/SkNx.h Tue Aug 20 09:46:55 2019 +0200 -+++ b/gfx/skia/skia/include/private/SkNx.h Mon Sep 09 10:04:06 2019 +0200 -@@ -238,7 +238,18 @@ +diff --git a/gfx/skia/skia/include/private/SkNx.h b/gfx/skia/skia/include/private/SkNx.h +--- a/gfx/skia/skia/include/private/SkNx.h ++++ b/gfx/skia/skia/include/private/SkNx.h +@@ -233,17 +233,28 @@ struct SkNx<1,T> { + AI SkNx operator<<(int bits) const { return fVal << bits; } + AI SkNx operator>>(int bits) const { return fVal >> bits; } + + AI SkNx operator+(const SkNx& y) const { return fVal + y.fVal; } + AI SkNx operator-(const SkNx& y) const { return fVal - y.fVal; } AI SkNx operator*(const SkNx& y) const { return fVal * y.fVal; } AI SkNx operator/(const SkNx& y) const { return fVal / y.fVal; } @@ -25,10 +30,20 @@ diff -r aecb4600e5da gfx/skia/skia/include/private/SkNx.h AI SkNx operator|(const SkNx& y) const { return FromBits(ToBits(fVal) | ToBits(y.fVal)); } AI SkNx operator^(const SkNx& y) const { return FromBits(ToBits(fVal) ^ ToBits(y.fVal)); } -diff -r aecb4600e5da gfx/skia/skia/src/opts/SkBlitMask_opts.h ---- a/gfx/skia/skia/src/opts/SkBlitMask_opts.h Tue Aug 20 09:46:55 2019 +0200 -+++ b/gfx/skia/skia/src/opts/SkBlitMask_opts.h Mon Sep 09 10:04:06 2019 +0200 -@@ -203,7 +203,13 @@ + AI SkNx operator==(const SkNx& y) const { return FromBits(fVal == y.fVal ? ~0 : 0); } + AI SkNx operator!=(const SkNx& y) const { return FromBits(fVal != y.fVal ? ~0 : 0); } + AI SkNx operator<=(const SkNx& y) const { return FromBits(fVal <= y.fVal ? ~0 : 0); } + AI SkNx operator>=(const SkNx& y) const { return FromBits(fVal >= y.fVal ? ~0 : 0); } + AI SkNx operator< (const SkNx& y) const { return FromBits(fVal < y.fVal ? ~0 : 0); } +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 +@@ -198,17 +198,23 @@ namespace SK_OPTS_NS { + const SkAlpha* mask, size_t maskRB, + int w, int h) { + auto fn = [](const Sk4px& d, const Sk4px& aa) { + // = (s + d(1-sa))aa + d(1-aa) + // = s*aa + d(1-sa*aa) // ~~~> // a = 1*aa + d(1-1*aa) = aa + d(1-aa) // c = 0*aa + d(1-1*aa) = d(1-aa) @@ -42,3 +57,8 @@ diff -r aecb4600e5da gfx/skia/skia/src/opts/SkBlitMask_opts.h + d.approxMulDiv255(aa.inv()); }; while (h --> 0) { + Sk4px::MapDstAlpha(w, dst, mask, fn); + dst += dstRB / sizeof(*dst); + mask += maskRB / sizeof(*mask); + } + } diff --git a/SOURCES/mozilla-bmo1504834-part4.patch b/SOURCES/mozilla-bmo1504834-part4.patch deleted file mode 100644 index 9d2ffc4..0000000 --- a/SOURCES/mozilla-bmo1504834-part4.patch +++ /dev/null @@ -1,30 +0,0 @@ -# HG changeset patch -# Parent 46ea866ca3acb8bb5e1709ceb799b9c94f591dec -Problem description: Tab-titles that are too long to fit into a tab get faded out. - On big endian this is broken and instead of fading out, the - tab gets white and the font transparent, leading to an unreadable - tab-title -Solution: This is not a real solution, but a hack. The real solution would have been - to byte-swap the correct buffer, but I could not find it. - So the next best thing is to deactivate the fading-effect. Now all tab-titles - are readable, albeit not as pretty to look at as they could be. -Side-effects: I have not yet found an unwanted side-effect. - -diff -r 46ea866ca3ac -r 6ef20eee3f8f gfx/2d/DrawTargetSkia.cpp ---- a/gfx/2d/DrawTargetSkia.cpp Tue Oct 22 12:27:22 2019 +0200 -+++ b/gfx/2d/DrawTargetSkia.cpp Thu Oct 31 09:11:56 2019 +0100 -@@ -1861,6 +1861,14 @@ - SkCanvas::kPreserveLCDText_SaveLayerFlag | - (aCopyBackground ? SkCanvas::kInitWithPrevious_SaveLayerFlag : 0)); - -+#if MOZ_BIG_ENDIAN -+ // Pushing a layer where an aMask is defined produces wrong output. -+ // We _should_ endian swap the data, but I couldn't find a workable way to do so -+ // Therefore I deactivate those layers in the meantime. -+ // The result is: Tab-titles that are longer than the available space should be faded out. -+ // The fading doesn't work, so we deactivate the fading-effect here. -+ if (!aMask) -+#endif - mCanvas->saveLayer(saveRec); - - SetPermitSubpixelAA(aOpaque); diff --git a/SOURCES/mozilla-bmo1554971.patch b/SOURCES/mozilla-bmo1554971.patch deleted file mode 100644 index 9958150..0000000 --- a/SOURCES/mozilla-bmo1554971.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -up firefox-91.0/toolkit/components/extensions/schemas/runtime.json.mozilla-bmo1554971 firefox-91.0/toolkit/components/extensions/schemas/runtime.json ---- firefox-91.0/toolkit/components/extensions/schemas/runtime.json.mozilla-bmo1554971 2021-07-29 17:20:08.523253193 +0200 -+++ firefox-91.0/toolkit/components/extensions/schemas/runtime.json 2021-07-29 17:21:23.517498581 +0200 -@@ -64,7 +64,7 @@ - { - "id": "PlatformArch", - "type": "string", -- "enum": ["aarch64", "arm", "ppc64", "s390x", "sparc64", "x86-32", "x86-64"], -+ "enum": ["aarch64", "arm", "ppc64", "ppc64le", "s390x", "sparc64", "x86-32", "x86-64"], - "allowedContexts": ["content", "devtools"], - "description": "The machine's processor architecture." - }, diff --git a/SOURCES/mozilla-bmo1602730.patch b/SOURCES/mozilla-bmo1602730.patch deleted file mode 100644 index c11f958..0000000 --- a/SOURCES/mozilla-bmo1602730.patch +++ /dev/null @@ -1,28 +0,0 @@ -diff -r 6ef20eee3f8f gfx/layers/basic/BasicCompositor.cpp ---- a/gfx/layers/basic/BasicCompositor.cpp Thu Oct 31 09:11:56 2019 +0100 -+++ b/gfx/layers/basic/BasicCompositor.cpp Wed Dec 11 16:16:09 2019 +0100 -@@ -693,9 +693,13 @@ - - RefPtr sourceMask; - Matrix maskTransform; -+ // Setting an alpha-mask here breaks the URL-bar on big endian (s390x) -+ // if the typed URL is too long for the textbox (automatic scrolling needed) -+#if MOZ_LITTLE_ENDIAN - if (aTransform.Is2D()) { - SetupMask(aEffectChain, dest, offset, sourceMask, maskTransform); - } -+#endif - - CompositionOp blendMode = CompositionOp::OP_OVER; - if (Effect* effect = -diff -r 6ef20eee3f8f gfx/layers/composite/CompositableHost.cpp ---- a/gfx/layers/composite/CompositableHost.cpp Thu Oct 31 09:11:56 2019 +0100 -+++ b/gfx/layers/composite/CompositableHost.cpp Wed Dec 11 16:16:09 2019 +0100 -@@ -91,6 +91,7 @@ - } - MOZ_ASSERT(source); - -+ // Alternatively: Comment out these lines where the alpha-mask is set - RefPtr effect = - new EffectMask(source, source->GetSize(), aTransform); - aEffects.mSecondaryEffects[EffectTypes::MASK] = effect; diff --git a/SOURCES/mozilla-bmo1626236.patch b/SOURCES/mozilla-bmo1626236.patch deleted file mode 100644 index 32e3742..0000000 --- a/SOURCES/mozilla-bmo1626236.patch +++ /dev/null @@ -1,86 +0,0 @@ -# HG changeset patch -# User msirringhaus@suse.de -# Date 1582805876 -3600 -# Thu Feb 27 13:17:56 2020 +0100 -# Node ID cc3d09abea31068e57f1ab918782f9f86fc6a158 -# Parent 9cd90914846f667f18babc491a74c164ae5d6e9f -imported patch decoder_workaround.patch - -diff -r 9cd90914846f image/decoders/nsGIFDecoder2.cpp ---- a/image/decoders/nsGIFDecoder2.cpp Thu Feb 27 12:57:14 2020 +0100 -+++ b/image/decoders/nsGIFDecoder2.cpp Fri Mar 27 13:06:18 2020 +0100 -@@ -422,6 +422,9 @@ - MOZ_ASSERT(mSwizzleFn); - uint8_t* data = reinterpret_cast(aColormap); - mSwizzleFn(data, data, aColors); -+#if MOZ_BIG_ENDIAN() -+ SwizzleRow(SurfaceFormat::A8R8G8B8, SurfaceFormat::B8G8R8A8)(data, data, aColors); -+#endif - } - - LexerResult nsGIFDecoder2::DoDecode(SourceBufferIterator& aIterator, -diff -r 9cd90914846f image/decoders/nsJPEGDecoder.cpp ---- a/image/decoders/nsJPEGDecoder.cpp Thu Feb 27 12:57:14 2020 +0100 -+++ b/image/decoders/nsJPEGDecoder.cpp Fri Mar 27 13:06:18 2020 +0100 -@@ -263,6 +263,9 @@ - case JCS_YCbCr: - // By default, we will output directly to BGRA. If we need to apply - // special color transforms, this may change. -+#if MOZ_BIG_ENDIAN() -+ mInfo.out_color_space = MOZ_JCS_EXT_NATIVE_ENDIAN_XRGB; -+#else - switch (SurfaceFormat::OS_RGBX) { - case SurfaceFormat::B8G8R8X8: - mInfo.out_color_space = JCS_EXT_BGRX; -@@ -277,6 +280,7 @@ - mState = JPEG_ERROR; - return Transition::TerminateFailure(); - } -+#endif - break; - case JCS_CMYK: - case JCS_YCCK: -diff -r 9cd90914846f image/decoders/nsPNGDecoder.cpp ---- a/image/decoders/nsPNGDecoder.cpp Thu Feb 27 12:57:14 2020 +0100 -+++ b/image/decoders/nsPNGDecoder.cpp Fri Mar 27 13:06:18 2020 +0100 -@@ -361,7 +361,7 @@ - IResumable* aOnResume) { - MOZ_ASSERT(!HasError(), "Shouldn't call DoDecode after error!"); - -- return mLexer.Lex(aIterator, aOnResume, -+ LexerResult res = mLexer.Lex(aIterator, aOnResume, - [=](State aState, const char* aData, size_t aLength) { - switch (aState) { - case State::PNG_DATA: -@@ -371,6 +371,14 @@ - } - MOZ_CRASH("Unknown State"); - }); -+ -+#if MOZ_BIG_ENDIAN() -+ if(res.is() && res.as() == TerminalState::SUCCESS) { -+ NativeEndian::swapToLittleEndianInPlace((uint32_t*)(mImageData), mImageDataLength / 4); -+ } -+#endif -+ -+ return res; - } - - LexerTransition nsPNGDecoder::ReadPNGData( -diff -r 9cd90914846f image/decoders/nsWebPDecoder.cpp ---- a/image/decoders/nsWebPDecoder.cpp Thu Feb 27 12:57:14 2020 +0100 -+++ b/image/decoders/nsWebPDecoder.cpp Fri Mar 27 13:06:18 2020 +0100 -@@ -237,7 +237,12 @@ - // WebP doesn't guarantee that the alpha generated matches the hint in the - // header, so we always need to claim the input is BGRA. If the output is - // BGRX, swizzling will mask off the alpha channel. -+#if MOZ_BIG_ENDIAN() -+ mBuffer.colorspace = MODE_ARGB; -+ SurfaceFormat inFormat = mFormat; -+#else - SurfaceFormat inFormat = SurfaceFormat::OS_RGBA; -+#endif - - SurfacePipeFlags pipeFlags = SurfacePipeFlags(); - if (mFormat == SurfaceFormat::OS_RGBA && - diff --git a/SOURCES/mozilla-bmo849632.patch b/SOURCES/mozilla-bmo849632.patch index 177fdc3..9de64b9 100644 --- a/SOURCES/mozilla-bmo849632.patch +++ b/SOURCES/mozilla-bmo849632.patch @@ -1,16 +1,24 @@ +# 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 -diff -r 6b017d3e9733 gfx/gl/GLContext.h ---- a/gfx/gl/GLContext.h Mon Sep 09 10:04:05 2019 +0200 -+++ b/gfx/gl/GLContext.h Wed Nov 13 17:13:04 2019 +0100 -@@ -1551,6 +1551,13 @@ + +diff --git a/gfx/gl/GLContext.h b/gfx/gl/GLContext.h +--- a/gfx/gl/GLContext.h ++++ b/gfx/gl/GLContext.h +@@ -1548,16 +1548,23 @@ class GLContext : public GenericAtomicRe + AFTER_GL_CALL; + } + + void raw_fReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, + GLenum format, GLenum type, GLvoid* pixels) { BEFORE_GL_CALL; mSymbols.fReadPixels(x, y, width, height, format, type, pixels); OnSyncCall(); -+#if MOZ_BIG_ENDIAN ++#if MOZ_BIG_ENDIAN() + uint8_t* itr = (uint8_t*)pixels; + for (GLsizei i = 0; i < width * height; i++) { + NativeEndian::swapToLittleEndianInPlace((uint32_t*)itr, 1); @@ -20,4 +28,8 @@ diff -r 6b017d3e9733 gfx/gl/GLContext.h AFTER_GL_CALL; mHeavyGLCallsSinceLastFlush = true; } - + + void fReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, + GLenum format, GLenum type, GLvoid* pixels); + + public: diff --git a/SOURCES/mozilla-bmo998749.patch b/SOURCES/mozilla-bmo998749.patch index 4ddde4c..50e22b5 100644 --- a/SOURCES/mozilla-bmo998749.patch +++ b/SOURCES/mozilla-bmo998749.patch @@ -27,4 +27,3 @@ diff -r 506857dace0a -r 34676feac1a5 gfx/2d/FilterProcessing.h class FilterProcessing { public: - diff --git a/SOURCES/mozilla-build-arm.patch b/SOURCES/mozilla-build-arm.patch new file mode 100644 index 0000000..e390a28 --- /dev/null +++ b/SOURCES/mozilla-build-arm.patch @@ -0,0 +1,14 @@ +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) diff --git a/SOURCES/mozilla-s390-context.patch b/SOURCES/mozilla-s390-context.patch index 55bd7a8..34b2357 100644 --- a/SOURCES/mozilla-s390-context.patch +++ b/SOURCES/mozilla-s390-context.patch @@ -3,34 +3,51 @@ # Date 1558452408 -7200 # Tue May 21 17:26:48 2019 +0200 # Node ID 602e92722e765a3c238d3b96b26c0c8063b5eeb4 -# Parent a3cc550d25e3a04d906f516928cbcbe50efd585e +# Parent 136e1f2c44a3099b3e49a576fa62c8ad77aa431e [mq]: mozilla-s390-context.patch -diff -r a3cc550d25e3 -r 602e92722e76 js/src/wasm/WasmSignalHandlers.cpp ---- a/js/src/wasm/WasmSignalHandlers.cpp Tue May 21 17:22:06 2019 +0200 -+++ b/js/src/wasm/WasmSignalHandlers.cpp Tue May 21 17:26:48 2019 +0200 -@@ -154,6 +154,10 @@ - # define R01_sig(p) ((p)->uc_mcontext.gp_regs[1]) - # define R32_sig(p) ((p)->uc_mcontext.gp_regs[32]) - # endif +diff --git a/js/src/wasm/WasmSignalHandlers.cpp b/js/src/wasm/WasmSignalHandlers.cpp +--- a/js/src/wasm/WasmSignalHandlers.cpp ++++ b/js/src/wasm/WasmSignalHandlers.cpp +@@ -157,16 +157,20 @@ using mozilla::DebugOnly; + # define R32_sig(p) ((p)->uc_mcontext.gp_regs[32]) + # endif + # if defined(__linux__) && defined(__loongarch__) + # define EPC_sig(p) ((p)->uc_mcontext.pc) + # define RRA_sig(p) ((p)->uc_mcontext.gregs[1]) + # define RSP_sig(p) ((p)->uc_mcontext.gregs[3]) + # define RFP_sig(p) ((p)->uc_mcontext.gregs[22]) + # endif +# if defined(__linux__) && defined(__s390x__) +# define GR_sig(p,x) ((p)->uc_mcontext.gregs[x]) +# define PSWa_sig(p) ((p)->uc_mcontext.psw.addr) +# endif - #elif defined(__NetBSD__) - # define EIP_sig(p) ((p)->uc_mcontext.__gregs[_REG_EIP]) - # define EBP_sig(p) ((p)->uc_mcontext.__gregs[_REG_EBP]) -@@ -385,8 +389,13 @@ - # define PC_sig(p) R32_sig(p) - # define SP_sig(p) R01_sig(p) - # define FP_sig(p) R01_sig(p) -+#elif defined(__s390x__) -+# define PC_sig(p) PSWa_sig(p) -+# define SP_sig(p) GR_sig(p, 15) -+# define FP_sig(p) GR_sig(p, 11) - #endif + # elif defined(__NetBSD__) + # define EIP_sig(p) ((p)->uc_mcontext.__gregs[_REG_EIP]) + # define EBP_sig(p) ((p)->uc_mcontext.__gregs[_REG_EBP]) + # define ESP_sig(p) ((p)->uc_mcontext.__gregs[_REG_ESP]) + # define RIP_sig(p) ((p)->uc_mcontext.__gregs[_REG_RIP]) + # define RSP_sig(p) ((p)->uc_mcontext.__gregs[_REG_RSP]) + # define RBP_sig(p) ((p)->uc_mcontext.__gregs[_REG_RBP]) + # define R11_sig(p) ((p)->uc_mcontext.__gregs[_REG_R11]) +@@ -399,16 +403,20 @@ struct macos_aarch64_context { + # define PC_sig(p) R32_sig(p) + # define SP_sig(p) R01_sig(p) + # define FP_sig(p) R01_sig(p) + # elif defined(__loongarch__) + # define PC_sig(p) EPC_sig(p) + # define FP_sig(p) RFP_sig(p) + # define SP_sig(p) RSP_sig(p) + # define LR_sig(p) RRA_sig(p) ++# elif defined(__s390x__) ++# define PC_sig(p) PSWa_sig(p) ++# define SP_sig(p) GR_sig(p, 15) ++# define FP_sig(p) GR_sig(p, 11) + # endif -+ static void SetContextPC(CONTEXT* context, uint8_t* pc) { - #ifdef PC_sig + # ifdef PC_sig *reinterpret_cast(&PC_sig(context)) = pc; + # else + MOZ_CRASH(); + # endif diff --git a/SOURCES/mozilla-s390x-skia-gradient.patch b/SOURCES/mozilla-s390x-skia-gradient.patch index 8c0e3bd..a5e5d95 100644 --- a/SOURCES/mozilla-s390x-skia-gradient.patch +++ b/SOURCES/mozilla-s390x-skia-gradient.patch @@ -49,4 +49,3 @@ diff -r acf59ea86dd1 gfx/skia/skia/src/shaders/gradients/Sk4fLinearGradient.cpp } } - diff --git a/SOURCES/node-stdout-nonblocking-wrapper b/SOURCES/node-stdout-nonblocking-wrapper index e36d134..7dfb513 100755 --- a/SOURCES/node-stdout-nonblocking-wrapper +++ b/SOURCES/node-stdout-nonblocking-wrapper @@ -1,3 +1,2 @@ #!/bin/sh -#exec /usr/bin/node "$@" 2>&1 | cat - -exec $MOZ_NODEJS "$@" 2>&1 | cat - +exec node "$@" 2>&1 | cat - diff --git a/SOURCES/one_swizzle_to_rule_them_all.patch b/SOURCES/one_swizzle_to_rule_them_all.patch new file mode 100644 index 0000000..bb37560 --- /dev/null +++ b/SOURCES/one_swizzle_to_rule_them_all.patch @@ -0,0 +1,34 @@ +# HG changeset patch +# User M. Sirringhaus +# 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(); diff --git a/SOURCES/pgo.patch b/SOURCES/pgo.patch new file mode 100644 index 0000000..eec103c --- /dev/null +++ b/SOURCES/pgo.patch @@ -0,0 +1,115 @@ +diff -up firefox-99.0/build/moz.configure/lto-pgo.configure.pgo firefox-99.0/build/moz.configure/lto-pgo.configure +--- firefox-99.0/build/moz.configure/lto-pgo.configure.pgo 2022-03-31 01:24:38.000000000 +0200 ++++ firefox-99.0/build/moz.configure/lto-pgo.configure 2022-04-04 10:15:45.387694143 +0200 +@@ -247,8 +247,8 @@ def lto( + cflags.append("-flto") + ldflags.append("-flto") + else: +- cflags.append("-flto=thin") +- ldflags.append("-flto=thin") ++ cflags.append("-flto") ++ ldflags.append("-flto") + + if target.os == "Android" and value == "cross": + # Work around https://github.com/rust-lang/rust/issues/90088 +@@ -264,7 +264,7 @@ def lto( + if value == "full": + cflags.append("-flto") + else: +- cflags.append("-flto=thin") ++ cflags.append("-flto") + # With clang-cl, -flto can only be used with -c or -fuse-ld=lld. + # AC_TRY_LINKs during configure don't have -c, so pass -fuse-ld=lld. + cflags.append("-fuse-ld=lld") +diff -up firefox-99.0/build/pgo/profileserver.py.pgo firefox-99.0/build/pgo/profileserver.py +--- firefox-99.0/build/pgo/profileserver.py.pgo 2022-03-31 01:24:38.000000000 +0200 ++++ firefox-99.0/build/pgo/profileserver.py 2022-04-04 10:15:45.387694143 +0200 +@@ -11,7 +11,7 @@ import glob + import subprocess + + import mozcrash +-from mozbuild.base import MozbuildObject, BinaryNotFoundException ++from mozbuild.base import MozbuildObject, BinaryNotFoundException, BuildEnvironmentNotFoundException + from mozfile import TemporaryDirectory + from mozhttpd import MozHttpd + from mozprofile import FirefoxProfile, Preferences +@@ -87,9 +87,22 @@ if __name__ == "__main__": + locations = ServerLocations() + locations.add_host(host="127.0.0.1", port=PORT, options="primary,privileged") + +- old_profraw_files = glob.glob("*.profraw") +- for f in old_profraw_files: +- os.remove(f) ++ using_gcc = False ++ try: ++ if build.config_environment.substs.get('CC_TYPE') == 'gcc': ++ using_gcc = True ++ except BuildEnvironmentNotFoundException: ++ pass ++ ++ if using_gcc: ++ for dirpath, _, filenames in os.walk('.'): ++ for f in filenames: ++ if f.endswith('.gcda'): ++ os.remove(os.path.join(dirpath, f)) ++ else: ++ old_profraw_files = glob.glob('*.profraw') ++ for f in old_profraw_files: ++ os.remove(f) + + with TemporaryDirectory() as profilePath: + # TODO: refactor this into mozprofile +@@ -212,6 +225,10 @@ if __name__ == "__main__": + print("Firefox exited successfully, but produced a crashreport") + sys.exit(1) + ++ print('Copying profile data....') ++ os.system('pwd'); ++ os.system('tar cf profdata.tar.gz `find . -name "*.gcda"`; cd ..; tar xf instrumented/profdata.tar.gz;'); ++ + llvm_profdata = env.get("LLVM_PROFDATA") + if llvm_profdata: + profraw_files = glob.glob("*.profraw") +diff -up firefox-99.0/build/unix/mozconfig.unix.pgo firefox-99.0/build/unix/mozconfig.unix +--- firefox-99.0/build/unix/mozconfig.unix.pgo 2022-03-31 01:24:38.000000000 +0200 ++++ firefox-99.0/build/unix/mozconfig.unix 2022-04-04 10:15:45.387694143 +0200 +@@ -4,6 +4,15 @@ if [ -n "$FORCE_GCC" ]; then + CC="$MOZ_FETCHES_DIR/gcc/bin/gcc" + CXX="$MOZ_FETCHES_DIR/gcc/bin/g++" + ++ if [ -n "$MOZ_PGO" ]; then ++ if [ -z "$USE_ARTIFACT" ]; then ++ ac_add_options --enable-lto ++ fi ++ export AR="$topsrcdir/gcc/bin/gcc-ar" ++ export NM="$topsrcdir/gcc/bin/gcc-nm" ++ export RANLIB="$topsrcdir/gcc/bin/gcc-ranlib" ++ fi ++ + # We want to make sure we use binutils and other binaries in the tooltool + # package. + mk_add_options "export PATH=$MOZ_FETCHES_DIR/gcc/bin:$PATH" +diff -up firefox-99.0/extensions/spellcheck/src/moz.build.pgo firefox-99.0/extensions/spellcheck/src/moz.build +--- firefox-99.0/extensions/spellcheck/src/moz.build.pgo 2022-03-31 01:24:50.000000000 +0200 ++++ firefox-99.0/extensions/spellcheck/src/moz.build 2022-04-04 10:15:45.387694143 +0200 +@@ -28,3 +28,5 @@ EXPORTS.mozilla += [ + "mozInlineSpellChecker.h", + "mozSpellChecker.h", + ] ++ ++CXXFLAGS += ['-fno-devirtualize'] +diff -up firefox-99.0/toolkit/components/terminator/nsTerminator.cpp.pgo firefox-99.0/toolkit/components/terminator/nsTerminator.cpp +--- firefox-99.0/toolkit/components/terminator/nsTerminator.cpp.pgo 2022-04-04 10:15:45.387694143 +0200 ++++ firefox-99.0/toolkit/components/terminator/nsTerminator.cpp 2022-04-04 10:19:07.022239556 +0200 +@@ -466,6 +466,11 @@ void nsTerminator::StartWatchdog() { + } + #endif + ++ // Disable watchdog for PGO train builds - writting profile information at ++ // exit may take time and it is better to make build hang rather than ++ // silently produce poorly performing binary. ++ crashAfterMS = INT32_MAX; ++ + UniquePtr options(new Options()); + // crashAfterTicks is guaranteed to be > 0 as + // crashAfterMS >= ADDITIONAL_WAIT_BEFORE_CRASH_MS >> HEARTBEAT_INTERVAL_MS diff --git a/SOURCES/rhbz-1219542-s390-build.patch b/SOURCES/rhbz-1219542-s390-build.patch new file mode 100644 index 0000000..f94e43a --- /dev/null +++ b/SOURCES/rhbz-1219542-s390-build.patch @@ -0,0 +1,23 @@ +diff -up firefox-55.0/js/src/old-configure.in.rhbz-1219542-s390 firefox-55.0/js/src/old-configure.in +--- firefox-55.0/js/src/old-configure.in.rhbz-1219542-s390 2017-07-31 18:20:48.000000000 +0200 ++++ firefox-55.0/js/src/old-configure.in 2017-08-02 14:31:32.190243669 +0200 +@@ -541,7 +541,7 @@ case "$host" in + + *-linux*|*-kfreebsd*-gnu|*-gnu*) + HOST_CFLAGS="$HOST_CFLAGS -DXP_UNIX" +- HOST_OPTIMIZE_FLAGS="${HOST_OPTIMIZE_FLAGS=-O3}" ++ HOST_OPTIMIZE_FLAGS="${HOST_OPTIMIZE_FLAGS=-O1}" + ;; + + *) +@@ -617,8 +617,8 @@ case "$target" in + + *-*linux*) + if test "$GNU_CC" -o "$GNU_CXX"; then +- MOZ_PGO_OPTIMIZE_FLAGS="-O3" +- MOZ_OPTIMIZE_FLAGS="-O3" ++ MOZ_PGO_OPTIMIZE_FLAGS="-O1" ++ MOZ_OPTIMIZE_FLAGS="-O1" + if test -z "$CLANG_CC"; then + MOZ_OPTIMIZE_FLAGS="-freorder-blocks $MOZ_OPTIMIZE_FLAGS" + fi diff --git a/SOURCES/rhbz-1354671.patch b/SOURCES/rhbz-1354671.patch new file mode 100644 index 0000000..b6e8bbd --- /dev/null +++ b/SOURCES/rhbz-1354671.patch @@ -0,0 +1,12 @@ +diff -up firefox-70.0/layout/base/PresShell.h.1354671 firefox-70.0/layout/base/PresShell.h +--- firefox-70.0/layout/base/PresShell.h.1354671 2019-10-22 12:33:12.987775587 +0200 ++++ firefox-70.0/layout/base/PresShell.h 2019-10-22 12:36:39.999366086 +0200 +@@ -257,7 +257,7 @@ class PresShell final : public nsStubDoc + * to the same aSize value. AllocateFrame is infallible and will abort + * on out-of-memory. + */ +- void* AllocateFrame(nsQueryFrame::FrameIID aID, size_t aSize) { ++ void* __attribute__((optimize("no-lifetime-dse"))) AllocateFrame(nsQueryFrame::FrameIID aID, size_t aSize) { + #define FRAME_ID(classname, ...) \ + static_assert(size_t(nsQueryFrame::FrameIID::classname##_id) == \ + size_t(eArenaObjectID_##classname), \ diff --git a/SOURCES/svg-rendering.patch b/SOURCES/svg-rendering.patch new file mode 100644 index 0000000..9c0559c --- /dev/null +++ b/SOURCES/svg-rendering.patch @@ -0,0 +1,29 @@ +# HG changeset patch +# User M. Sirringhaus +# 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. diff --git a/SOURCES/thunderbird-mozconfig b/SOURCES/thunderbird-mozconfig index 4500696..7445114 100644 --- a/SOURCES/thunderbird-mozconfig +++ b/SOURCES/thunderbird-mozconfig @@ -12,19 +12,23 @@ ac_add_options --enable-chrome-format=omni ac_add_options --enable-pulseaudio ac_add_options --without-system-icu ac_add_options --enable-release -ac_add_options --update-channel=release ac_add_options --allow-addon-sideload ac_add_options --with-system-jpeg ac_add_options --enable-js-shell ac_add_options --with-unsigned-addon-scopes=app,system - +ac_add_options --without-sysroot +# investigate this one: +ac_add_options --without-wasm-sandboxed-libraries 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 --disable-crashreporter +ac_add_options --enable-official-branding +ac_add_options --disable-bootstrap 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 diff --git a/SOURCES/thunderbird-redhat-default-prefs.js b/SOURCES/thunderbird-redhat-default-prefs.js new file mode 100644 index 0000000..4d01b78 --- /dev/null +++ b/SOURCES/thunderbird-redhat-default-prefs.js @@ -0,0 +1,36 @@ +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.autoDisableScopes", 0); + +/* 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 */ +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", ""); +/* Disable telemetry */ +pref("datareporting.healthreport.uploadEnabled", false); +pref("datareporting.policy.dataSubmissionEnabled", false); +pref("toolkit.telemetry.archive.enabled", false); diff --git a/SOURCES/thunderbird-redhat-default-prefs.js.rhel7 b/SOURCES/thunderbird-redhat-default-prefs.js.rhel7 deleted file mode 100644 index 4d01b78..0000000 --- a/SOURCES/thunderbird-redhat-default-prefs.js.rhel7 +++ /dev/null @@ -1,36 +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.autoDisableScopes", 0); - -/* 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 */ -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", ""); -/* Disable telemetry */ -pref("datareporting.healthreport.uploadEnabled", false); -pref("datareporting.policy.dataSubmissionEnabled", false); -pref("toolkit.telemetry.archive.enabled", false); diff --git a/SOURCES/thunderbird.sh.in b/SOURCES/thunderbird.sh.in index 6a9cb72..800c776 100644 --- a/SOURCES/thunderbird.sh.in +++ b/SOURCES/thunderbird.sh.in @@ -36,6 +36,22 @@ 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 ## @@ -126,20 +142,4 @@ 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 "$@" diff --git a/SPECS/thunderbird.spec b/SPECS/thunderbird.spec index 80eb30e..7d4959b 100644 --- a/SPECS/thunderbird.spec +++ b/SPECS/thunderbird.spec @@ -1,10 +1,10 @@ # Set for local builds only %global disable_toolsets 0 -%ifarch %{ix86} - # no debug package for the i686 because oom on i686 with debuginfos - #FIXME revise if still necessary - %global debug_package %{nil} +%if 0%{?fedora} > 35 || 0%{?rhel} > 9 +%global dictionarydir hunspell +%else +%global dictionarydir myspell %endif %{lua: @@ -21,25 +21,28 @@ function dist_to_rhel_minor(str, start) if match then return 7 end + return -1 end} %global rhel_minor_version %{lua:print(dist_to_rhel_minor(rpm.expand("%dist")))} -%global build_with_clang 0 + +# Produce debug (non-optimized) package build. Suitable for debugging only +# as the build is *very* slow. +%global debug_build 0 %global system_nss 1 %global bundle_nss 0 +%global build_langpacks 1 %if 0%{?rhel} == 8 - %if %{rhel_minor_version} < 3 + %if %{rhel_minor_version} <= 4 %global bundle_nss 1 %global system_nss 1 %endif %endif -%define use_bundled_ffi 0 +%global build_with_asan 0 -# Don't use system hunspell for now -%global system_hunspell 0 %global use_llvmts 0 %global use_nodejsts 0 %if 0%{?rhel} < 8 @@ -47,167 +50,200 @@ end} %global use_nodejsts 1 %endif + %global nodejs_rb nodejs %global llvm_version 7.0 - -%if 0%{?rhel} == 8 -%global llvm_version 6.0 +%if "%{toolchain}" == "clang" +%global build_with_clang 1 +%else +%global build_with_clang 0 %endif +%ifarch armv7hl +%global create_debuginfo 0 +%endif %if 0%{?rhel} == 7 %global use_dts 1 %global nodejs_rb rh-nodejs10-nodejs %global llvm_version 11.0 %endif +# Temporary disabled due to +# https://bugzilla.redhat.com/show_bug.cgi?id=1951606 +%global enable_mozilla_crashreporter 0 + +%global system_ffi 1 +%ifarch armv7hl +%global system_libvpx 1 +%else +%global system_libvpx 0 +%endif +%global hardened_build 1 +%global system_jpeg 1 +%global disable_elfhack 1 +%global use_bundled_cbindgen 1 +%if %{debug_build} +%global release_build 0 +%endif +# Build PGO+LTO on x86_64 only due to build issues +# on other arches. +%global build_with_pgo 0 +%ifarch x86_64 +%if 0%{?release_build} +%global build_with_pgo 0 +%endif +%endif %global use_rustts 1 -%if 0%{?rhel} >= 9 +%global dts_version 10 +%global rust_version 1.62 +%if 0%{?rhel} >= 8 %global use_rustts 0 %endif - -%global dts_version 10 -%global rust_version 1.52 +%if 0%{?flatpak} +%global build_with_pgo 0 +%endif %if 0%{?disable_toolsets} %global use_rustts 0 %global use_dts 0 %global use_llvmts 0 +%global use_nodejsts 0 +%global nodejs_rb nodejs %endif # Big endian platforms %ifarch ppc64 s390x -# Javascript Intl API is not supported on big endian platforms right now: -# https://bugzilla.mozilla.org/show_bug.cgi?id=1322212 %global big_endian 1 %endif -# Hardened build? -%global hardened_build 1 - -%ifarch %{ix86} x86_64 -%global run_tests 0 -%else -%global run_tests 0 +%if 0%{?build_with_pgo} +%global use_xvfb 1 +%global build_tests 1 %endif - -# Build as a debug package? -%global debug_build 0 - -%define thunderbird_app_id \{3550f703-e582-4d05-9a08-453d09bdfdc6\} # Minimal required versions +%global cairo_version 1.13.1 +%global freetype_version 2.1.9 +%global libnotify_version 0.7.0 +%if %{?system_libvpx} +%global libvpx_version 1.8.2 +%endif -%if 0%{?system_nss} -%global nspr_version 4.32 -# NSS/NSPR quite often ends in build override, so as requirement the version -# we're building against could bring us some broken dependencies from time to time. -#%global nspr_build_version %(pkg-config --silence-errors --modversion nspr 2>/dev/null || echo 65536) +%if %{?system_nss} +%global nspr_version 4.34 %global nspr_build_version %{nspr_version} -%global nss_version 3.53.1 -#%global nss_build_version %(pkg-config --silence-errors --modversion nss 2>/dev/null || echo 65536) +%global nss_version 3.79 %global nss_build_version %{nss_version} %endif +%define thunderbird_app_id \{3550f703-e582-4d05-9a08-453d09bdfdc6\} +%global langpackdir %{mozappdir}/extensions -# GTK3 bundling -%define avoid_bundled_rebuild 0 +# The tarball is pretty inconsistent with directory structure. +# Sometimes there is a top level directory. That goes here. +# +# IMPORTANT: If there is no top level directory, this should be +# set to the cwd, ie: '.' +%define objdir objdir +%define mozappdir %{_libdir}/thunderbird %define bundled_install_path %{mozappdir}/bundled - +%define official_branding 1 # We could use %%include, but in %%files, %%post and other sections, but in these # sections it could lead to syntax errors about unclosed %%if. Work around it by # using the following macro %define include_file() %{expand:%(cat '%1')} -%global mozappdir %{_libdir}/%{name} -%global mozappdirdev %{_libdir}/%{name}-devel-%{version} -%global langpackdir %{mozappdir}/extensions -%global tarballdir %{name}-%{version} -#global pre_tag alpha - -%global official_branding 1 -%global build_langpacks 1 - -# Workaround the dreaded "upstream source file changed content" rpmdiff failure that only secalert can waive. -# If set to .b2 or .b3 ... the processed source file needs to be renamed before upload, e.g. -# thunderbird-91.9.0.b2.processed-source.tar.xz -# When unset use processed source file name as is. -#global buildnum .b2 +# Exclude private libraries from autogenerated provides and requires +%global __provides_exclude_from ^%{mozappdir} +%global __requires_exclude ^(%%(find %{buildroot}%{mozappdir} -name '*.so' | xargs -n1 basename | sort -u | paste -s -d '|' -)) Summary: Mozilla Thunderbird mail/newsgroup client Name: thunderbird -Version: 91.13.0 -Release: 1%{?dist} +Version: 102.3.0 +Release: 3%{?dist} URL: http://www.mozilla.org/projects/thunderbird/ License: MPLv1.1 or GPLv2+ or LGPLv2+ -Group: Applications/Internet %if 0%{?rhel} == 9 ExcludeArch: %{ix86} %endif %if 0%{?rhel} == 8 + %if %{rhel_minor_version} == 1 +ExcludeArch: %{ix86} aarch64 s390x + %else ExcludeArch: %{ix86} + %endif %endif %if 0%{?rhel} == 7 -ExcludeArch: s390 ppc +ExcludeArch: aarch64 s390 ppc %endif -# We can't use the official tarball as it contains some test files that use -# licenses that are rejected by Red Hat Legal. -# The official tarball has to be always processed by the process-official-tarball -# script. -# Link to official tarball: https://archive.mozilla.org/pub/thunderbird/releases/%%{version}%%{?pre_version}/source/thunderbird-%%{version}%%{?pre_version}.source.tar.xz -Source0: thunderbird-%{version}%{?pre_version}%{?buildnum}.processed-source.tar.xz +#Source0: https://archive.mozilla.org/pub/thunderbird/releases/%{version}%{?pre_version}/source/thunderbird-%{version}%{?pre_version}.processed-source.tar.xz +Source0: thunderbird-%{version}%{?pre_version}.processed-source.tar.xz %if %{build_langpacks} -Source1: thunderbird-langpacks-%{version}%{?ext_version}-20220819.tar.xz +Source1: thunderbird-langpacks-%{version}-20220916.tar.xz %endif Source2: cbindgen-vendor.tar.xz -Source3: get-calendar-langpacks.sh -Source4: process-official-tarball - +Source3: process-official-tarball Source10: thunderbird-mozconfig +Source12: thunderbird-redhat-default-prefs.js Source20: thunderbird.desktop Source21: thunderbird.sh.in Source24: mozilla-api-key +Source25: thunderbird-symbolic.svg Source27: google-api-key -Source28: node-stdout-nonblocking-wrapper -Source701: thunderbird-redhat-default-prefs.js.rhel7 - -Source403: nss-3.67.0-7.el8_1.src.rpm +Source32: node-stdout-nonblocking-wrapper +Source35: google-loc-api-key +Source403: nss-3.79.0-6.el8_1.src.rpm Source401: nss-setup-flags-env.inc -Source402: nspr-4.32.0-1.el8_1.src.rpm +Source402: nspr-4.34.0-3.el8_1.src.rpm # Build patches -# workaround for https://bugzilla.redhat.com/show_bug.cgi?id=1699374 -Patch1001: build-ppc64le-inline.patch -#Patch1003: python-missing-utimensat.patch -Patch1008: build-rhel7-nasm-dwarf.patch -Patch1009: build-debuginfo-fix.patch -# workaround for https://bugzilla.redhat.com/show_bug.cgi?id=1699374 -Patch4: build-mozconfig-fix.patch -Patch6: build-nss-version.patch - -# Fedora/RHEL specific patches +Patch3: mozilla-build-arm.patch +Patch25: rhbz-1219542-s390-build.patch +# Fixing missing cacheFlush when JS_CODEGEN_NONE is used (s390x) +Patch40: build-aarch64-skia.patch +Patch41: build-disable-elfhack.patch +Patch44: build-arm-libopus.patch +Patch47: fedora-shebang-build.patch +Patch49: build-arm-libaom.patch +Patch53: firefox-gcc-build.patch +Patch54: mozilla-1669639.patch +Patch71: 0001-GLIBCXX-fix-for-GCC-12.patch +Patch72: build-remove-dav1d-from-wayland-dep.patch +Patch73: build-ascii-decode-fail-rhel7.patch +Patch75: build-big-endian-errors.patch +Patch76: firefox-nss-version.patch +Patch77: mozilla-1775202.patch + +# Fedora specific patches Patch215: firefox-enable-addons.patch Patch219: rhbz-1173156.patch Patch224: mozilla-1170092.patch -Patch237: disable-openpgp-in-thunderbird.patch +#ARM run-time patch +Patch226: rhbz-1354671.patch +Patch228: disable-openh264-download.patch +Patch229: firefox-nss-addon-hack.patch +Patch230: disable-openpgp-in-thunderbird.patch +Patch231: cbindgen-already-covers.patch # Upstream patches - -Patch503: mozilla-s390-context.patch -Patch505: mozilla-bmo1005535.patch -Patch506: mozilla-bmo1504834-part1.patch -Patch507: mozilla-bmo1504834-part2.patch -Patch508: mozilla-bmo1504834-part3.patch -Patch509: mozilla-bmo1504834-part4.patch -Patch510: mozilla-bmo1554971.patch -Patch511: mozilla-bmo1602730.patch -Patch512: mozilla-bmo849632.patch -Patch513: mozilla-bmo998749.patch -Patch514: mozilla-s390x-skia-gradient.patch -Patch515: mozilla-bmo1626236.patch -Patch516: expat-CVE-2022-25235.patch -Patch517: expat-CVE-2022-25236.patch -Patch518: expat-CVE-2022-25315.patch +Patch415: mozilla-1670333.patch +Patch416: mozilla-bmo1005535.patch +Patch417: mozilla-bmo1504834-part1.patch +Patch418: mozilla-bmo1504834-part3.patch +Patch419: mozilla-bmo849632.patch +Patch420: mozilla-bmo998749.patch +Patch421: mozilla-s390-context.patch +Patch422: mozilla-s390x-skia-gradient.patch +Patch423: one_swizzle_to_rule_them_all.patch +Patch424: svg-rendering.patch + +# PGO/LTO patches +Patch600: pgo.patch +Patch602: mozilla-1516803.patch + +# Backported WebRTC changes for PipeWire/Wayland screen sharing support +Patch1008: build-rhel7-nasm-dwarf.patch %if %{?system_nss} %if !0%{?bundle_nss} @@ -217,31 +253,37 @@ BuildRequires: nss-static >= %{nss_version} %endif %endif BuildRequires: pkgconfig(libpng) -BuildRequires: xz -BuildRequires: libXt-devel -BuildRequires: mesa-libGL-devel -Requires: liberation-fonts-common -Requires: liberation-sans-fonts +%if %{?system_jpeg} BuildRequires: libjpeg-devel +%endif BuildRequires: zip BuildRequires: bzip2-devel BuildRequires: pkgconfig(zlib) +BuildRequires: pkgconfig(gtk+-3.0) BuildRequires: pkgconfig(gtk+-2.0) -BuildRequires: krb5-devel +BuildRequires: pkgconfig(krb5) BuildRequires: pkgconfig(pango) -BuildRequires: pkgconfig(freetype2) >= 2.1.9 +BuildRequires: pkgconfig(freetype2) >= %{freetype_version} BuildRequires: pkgconfig(xt) +BuildRequires: pkgconfig(xtst) BuildRequires: pkgconfig(xrender) -%if %{?system_hunspell} -BuildRequires: hunspell-devel -%endif BuildRequires: pkgconfig(libstartup-notification-1.0) -BuildRequires: pkgconfig(libnotify) +BuildRequires: pkgconfig(libnotify) >= %{libnotify_version} BuildRequires: pkgconfig(dri) BuildRequires: pkgconfig(libcurl) +BuildRequires: pkgconfig(alsa) +BuildRequires: libstdc++-devel +BuildRequires: libstdc++-static BuildRequires: dbus-glib-devel +%if %{?system_libvpx} +BuildRequires: libvpx-devel >= %{libvpx_version} +%endif +%if %{?system_ffi} +BuildRequires: libffi-devel +%endif +BuildRequires: startup-notification-devel +BuildRequires: alsa-lib-devel BuildRequires: m4 - BuildRequires: pkgconfig(libpulse) %if 0%{?use_dts} @@ -256,13 +298,11 @@ BuildRequires: cargo BuildRequires: rust BuildRequires: clang clang-libs llvm %endif - +BuildRequires: %{nodejs_rb} >= 10.21 +%if 0%{?rhel} == 7 BuildRequires: scl-utils BuildRequires: findutils - -BuildRequires: %{nodejs_rb} >= 10.21 -BuildRequires: python3 - +%endif %if 0%{?rhel} == 8 BuildRequires: cargo BuildRequires: rust >= %{rust_version} @@ -271,35 +311,33 @@ BuildRequires: llvm-devel >= %{llvm_version} BuildRequires: clang >= %{llvm_version} BuildRequires: clang-devel >= %{llvm_version} BuildRequires: rustfmt >= %{rust_version} -%else +%endif + %if 0%{?use_rustts} BuildRequires: rust-toolset-%{rust_version} %endif + %if 0%{?use_llvmts} BuildRequires: llvm-toolset-%{llvm_version} BuildRequires: llvm-toolset-%{llvm_version}-llvm-devel BuildRequires: llvm-toolset-%{llvm_version}-clang BuildRequires: llvm-toolset-%{llvm_version}-clang-devel %endif -%endif -BuildRequires: nasm -%if %{build_with_clang} -BuildRequires: lld -%endif -%if 0%{?rhel} == 8 - %if %{rhel_minor_version} >= 3 -BuildRequires: pkgconfig(libpipewire-0.3) - %else +%if 0%{?rhel} > 7 BuildRequires: pipewire-devel - %endif %endif -BuildRequires: gtk3-devel -BuildRequires: glib2-devel -BuildRequires: perl-interpreter +%if !0%{?use_bundled_cbindgen} +BuildRequires: cbindgen +%endif +BuildRequires: nasm >= 1.13 +BuildRequires: libappstream-glib +%if 0%{?big_endian} +BuildRequires: icu +%endif # Bundled nss/nspr requirement %if 0%{?bundle_nss} BuildRequires: nss-softokn @@ -308,38 +346,106 @@ BuildRequires: zlib-devel BuildRequires: pkgconfig BuildRequires: gawk BuildRequires: psmisc +BuildRequires: perl-interpreter BuildRequires: gcc-c++ BuildRequires: xmlto %endif - -Requires: mozilla-filesystem +# Don't require any OpenPGP backend with the librnp interface, because RHEL does not have it +#Requires: thunderbird-librnp%{?_isa} +# prefer the librnp implementation bundled with thunderbird +#Not in RHEL7 Suggests: thunderbird-librnp-rnp%{?_isa} Requires: p11-kit-trust +Requires: pciutils-libs %if %{?system_nss} %if !0%{?bundle_nss} Requires: nspr >= %{nspr_build_version} Requires: nss >= %{nss_build_version} %endif %endif +BuildRequires: python3-devel +BuildRequires: python3-setuptools BuildRequires: desktop-file-utils -BuildRequires: system-bookmarks -Requires: redhat-indexhtml +%if %{?system_ffi} +BuildRequires: pkgconfig(libffi) +%endif -%if %{?run_tests} +%if 0%{?use_xvfb} BuildRequires: xorg-x11-server-Xvfb %endif - -BuildRequires: pkgconfig(libffi) - -%if 0%{?big_endian} - %if 0%{?flatpak} -BuildRequires: icu - %endif +%if %{build_with_asan} +BuildRequires: libasan +BuildRequires: libasan-static +%endif +BuildRequires: perl-interpreter +#BuildRequires: fdk-aac-free-devel not on rhel8 +%if 0%{?test_on_wayland} +BuildRequires: mutter +BuildRequires: gsettings-desktop-schemas +BuildRequires: gnome-settings-daemon +BuildRequires: mesa-dri-drivers +BuildRequires: xorg-x11-server-Xwayland +BuildRequires: dbus-x11 +BuildRequires: gnome-keyring +%endif +%if 0%{?run_firefox_tests} +BuildRequires: procps-ng +BuildRequires: nss-tools +BuildRequires: dejavu-sans-mono-fonts +BuildRequires: dejavu-sans-fonts +BuildRequires: dejavu-serif-fonts +BuildRequires: dbus-x11 +BuildRequires: gnome-keyring +BuildRequires: mesa-dri-drivers +# ---------------------------------------- +BuildRequires: liberation-fonts-common +BuildRequires: liberation-mono-fonts +BuildRequires: liberation-sans-fonts +BuildRequires: liberation-serif-fonts +# ---------------------------------- +# Missing on f32 +%if 0%{?fedora} > 33 +BuildRequires: google-carlito-fonts +%endif +BuildRequires: google-droid-sans-fonts +BuildRequires: google-noto-fonts-common +BuildRequires: google-noto-cjk-fonts-common +BuildRequires: google-noto-sans-cjk-ttc-fonts +BuildRequires: google-noto-sans-gurmukhi-fonts +BuildRequires: google-noto-sans-fonts +BuildRequires: google-noto-emoji-color-fonts +BuildRequires: google-noto-sans-sinhala-vf-fonts +# ----------------------------------- +BuildRequires: thai-scalable-fonts-common +BuildRequires: thai-scalable-waree-fonts +BuildRequires: khmeros-base-fonts +BuildRequires: jomolhari-fonts +# ---------------------------------- +BuildRequires: lohit-tamil-fonts +BuildRequires: lohit-telugu-fonts +# ---------------------------------- +BuildRequires: paktype-naskh-basic-fonts +# faild to build in Koji / f32 +%if 0%{?fedora} > 33 +BuildRequires: pt-sans-fonts +%endif +BuildRequires: smc-meera-fonts +BuildRequires: stix-fonts +BuildRequires: abattis-cantarell-fonts +BuildRequires: xorg-x11-fonts-ISO8859-1-100dpi +BuildRequires: xorg-x11-fonts-misc +%endif +BuildRequires: make +BuildRequires: pciutils-libs + +Obsoletes: mozilla <= 37:1.7.13 +Provides: webclient +%if 0%{?rhel} == 8 && %{rhel_minor_version} < 6 +%ifarch aarch64 +BuildRequires: gcc-toolset-12-annobin-plugin-gcc +%endif %endif - -Obsoletes: thunderbird-lightning -# ================================================================================== # Bundled libraries Provides: bundled(angle) @@ -388,87 +494,119 @@ Provides: bundled(libprio) Provides: bundled(rlbox_sandboxing_api) Provides: bundled(sqlite3) -#TB third party libs -Provides: bundled(libgcrypt) -Provides: bundled(libgpg-error) -Provides: bundled(libotr) - -# In case we enable MOZ_OPENPGP add following: -#Provides: bundled(botan) -#Provides: bundled(bzip2) -#Provides: bundled(json-c) -#Provides: bundled(rnp) - %if 0%{?bundle_nss} -Provides: bundled(nss) = 3.67.0 -Provides: bundled(nspr) = 4.32.0 +Provides: bundled(nss) = 3.79.0 +Provides: bundled(nspr) = 4.34.0 %endif + %description Mozilla Thunderbird is a standalone mail and newsgroup client. +#%package librnp-rnp +#Summary: OpenPGP implementation for Thunderbird based on RNP +#Requires: %{name}%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} +#Provides: thunderbird-librnp +#Provides: thunderbird-librnp%{?_isa} +#Conflicts: thunderbird-librnp%{?_isa} +#%description librnp-rnp +#The thunderbird-librnp-rnp package contains an OpenPGP implementation +#based on RNP. +#%files librnp-rnp +#%{mozappdir}/librnp.so +#%{mozappdir}/rnp-cli +#%{mozappdir}/rnpkeys %prep echo "Build environment" echo "dist %{?dist}" -echo "RHEL 8 minor version: %{rhel_minor_version}" +echo "RHEL 8 minor version: %{?rhel_minor_version}" echo "use_bundled_ffi %{?use_bundled_ffi}" echo "bundle_nss %{?bundle_nss}" echo "system_nss %{?system_nss}" echo "use_rustts %{?use_rustts}" +%setup -q -%setup -q -n %{tarballdir} -# Firefox patches +# Build patches +#MISSING% patch9 -p2 -b .arm +%ifarch s390 +%patch25 -p1 -b .rhbz-1219542-s390 +%endif +%patch40 -p1 -b .aarch64-skia +%if 0%{?disable_elfhack} +%patch41 -p1 -b .disable-elfhack +%endif +%patch3 -p1 -b .arm +%patch44 -p1 -b .build-arm-libopus +%patch47 -p1 -b .fedora-shebang +%patch49 -p1 -b .build-arm-libaom +%patch53 -p1 -b .firefox-gcc-build +%patch54 -p1 -b .1669639 +%patch71 -p1 -b .0001-GLIBCXX-fix-for-GCC-12 +%patch72 -p1 -b .build-remove-dav1d-from-wayland-dep + +%patch75 -p1 -b .build-big-endian-errors +%patch76 -p1 -b .firefox-nss-version +#ppc64le build failure because of webrtc +%patch77 -p1 -b .mozilla-1775202 -%patch4 -p1 -b .build-mozconfig-fix -%patch6 -p1 -b .nss-version +%patch73 -p1 -b .build-ascii-decode-fail-rhel7 + +# Test patches # Fedora patches %patch215 -p1 -b .addons %patch219 -p1 -b .rhbz-1173156 %patch224 -p1 -b .1170092 - -# Patch for big endian platforms only -%if 0%{?big_endian} +#ARM run-time patch +%ifarch aarch64 +%patch226 -p1 -b .1354671 +%endif +%patch228 -p1 -b .disable-openh264-download +%patch229 -p1 -b .firefox-nss-addon-hack +%patch230 -p1 -b .disable-openpgp-in-thunderbird +%patch231 -p1 -b .cbindgen-already-covers + +%patch415 -p1 -b .1670333 +%patch416 -p1 -b .mozilla-bmo1005535 +%patch417 -p1 -b .mozilla-bmo1504834-part1 +%patch418 -p1 -b .mozilla-bmo1504834-part3 +%patch419 -p1 -b .mozilla-bmo849632 +%patch420 -p1 -b .mozilla-bmo998749 +%patch421 -p1 -b .mozilla-s390-context +%patch422 -p1 -b .mozilla-s390x-skia-gradient +%patch423 -p1 -b .one_swizzle_to_rule_them_all +%patch424 -p1 -b .svg-rendering + +# PGO patches +%if %{build_with_pgo} +%if !%{build_with_clang} +%patch600 -p1 -b .pgo +%patch602 -p1 -b .1516803 +%endif %endif -# Thunderbird patches -%patch503 -p1 -b .mozilla-s390-context -%patch505 -p1 -b .mozilla-bmo1005535 -%patch506 -p1 -b .mozilla-bmo1504834-part1 -%patch507 -p1 -b .mozilla-bmo1504834-part2 -%patch508 -p1 -b .mozilla-bmo1504834-part3 -%patch509 -p1 -b .mozilla-bmo1504834-part4 -%patch510 -p1 -b .mozilla-bmo1554971 -%patch511 -p1 -b .mozilla-bmo1602730 -%patch512 -p1 -b .mozilla-bmo849632 -%patch513 -p1 -b .mozilla-bmo998749 -%patch514 -p1 -b .mozilla-s390x-skia-gradient -%patch515 -p1 -b .mozilla-bmo1626236 -%patch516 -p1 -b .expat-CVE-2022-25235 -%patch517 -p1 -b .expat-CVE-2022-25236 -%patch518 -p1 -b .expat-CVE-2022-25315 -%patch237 -p1 -b .disable-openpgp-in-thunderbird - - -%patch1001 -p1 -b .ppc64le-inline %if 0%{?rhel} == 7 -# fix the /usr/lib/rpm/debugedit: canonicalization unexpectedly shrank by one character -%patch1009 -p1 -b .build-debuginfo-fix %ifarch %{ix86} # -F dwarf not available in RHEL7's nasm %patch1008 -p1 -b .build-rhel7-nasm-dwarf %endif %endif + + %{__rm} -f .mozconfig %{__cp} %{SOURCE10} .mozconfig -# Modify mozconfig file +echo "ac_add_options --enable-default-toolkit=cairo-gtk3-wayland" >> .mozconfig %if %{official_branding} echo "ac_add_options --enable-official-branding" >> .mozconfig %endif %{__cp} %{SOURCE24} mozilla-api-key %{__cp} %{SOURCE27} google-api-key +%{__cp} %{SOURCE35} google-loc-api-key + +echo "ac_add_options --prefix=\"%{_prefix}\"" >> .mozconfig +echo "ac_add_options --libdir=\"%{_libdir}\"" >> .mozconfig %if %{?system_nss} echo "ac_add_options --with-system-nspr" >> .mozconfig @@ -478,19 +616,25 @@ echo "ac_add_options --without-system-nspr" >> .mozconfig echo "ac_add_options --without-system-nss" >> .mozconfig %endif -%ifarch %{ix86} x86_64 -echo "ac_add_options --disable-elf-hack" >> .mozconfig +%if %{?system_ffi} +echo "ac_add_options --enable-system-ffi" >> .mozconfig %endif -%if %{?system_hunspell} -echo "ac_add_options --enable-system-hunspell" >> .mozconfig +%ifarch %{arm} +echo "ac_add_options --disable-elf-hack" >> .mozconfig %endif %if %{?debug_build} echo "ac_add_options --enable-debug" >> .mozconfig echo "ac_add_options --disable-optimize" >> .mozconfig %else +%global optimize_flags "none" +%ifarch s390x +%global optimize_flags "-g -O1" +%endif +%ifarch ppc64le aarch64 %global optimize_flags "-g -O2" +%endif %if %{optimize_flags} != "none" echo 'ac_add_options --enable-optimize=%{?optimize_flags}' >> .mozconfig %else @@ -504,52 +648,61 @@ echo "ac_add_options --disable-debug" >> .mozconfig echo "ac_add_options --disable-jemalloc" >> .mozconfig %endif -%ifnarch %{ix86} x86_64 -echo "ac_add_options --disable-webrtc" >> .mozconfig +%if 0%{?build_tests} +echo "ac_add_options --enable-tests" >> .mozconfig +%else +echo "ac_add_options --disable-tests" >> .mozconfig %endif -%ifarch s390x +%if !%{?system_jpeg} +echo "ac_add_options --without-system-jpeg" >> .mozconfig +%else +echo "ac_add_options --with-system-jpeg" >> .mozconfig +%endif + +%if %{?system_libvpx} +echo "ac_add_options --with-system-libvpx" >> .mozconfig +%else +echo "ac_add_options --without-system-libvpx" >> .mozconfig +%endif + +%ifarch s390 s390x echo "ac_add_options --disable-jit" >> .mozconfig %endif -%ifnarch %{ix86} -%if !0%{?debug_build} -echo "ac_add_options --disable-debug-symbols" >> .mozconfig +%if %{build_with_asan} +echo "ac_add_options --enable-address-sanitizer" >> .mozconfig +echo "ac_add_options --disable-jemalloc" >> .mozconfig %endif + +%if !%{enable_mozilla_crashreporter} +echo "ac_add_options --disable-crashreporter" >> .mozconfig %endif # AV1 requires newer nasm that was rebased in 8.4 -%if 0%{?rhel} == 7 || (0%{?rhel} == 8 && 0%{rhel_minor_version} < 4) +%if 0%{?rhel} == 7 || (0%{?rhel} == 8 && %{rhel_minor_version} < 4) echo "ac_add_options --disable-av1" >> .mozconfig %endif -echo 'export NODEJS="%{_buildrootdir}/bin/node-stdout-nonblocking-wrapper"' >> .mozconfig +# api keys full path +echo "ac_add_options --with-mozilla-api-keyfile=`pwd`/mozilla-api-key" >> .mozconfig +# It seems that the api key we have is for the safe browsing only +echo "ac_add_options --with-google-location-service-api-keyfile=`pwd`/google-loc-api-key" >> .mozconfig +echo "ac_add_options --with-google-safebrowsing-api-keyfile=`pwd`/google-api-key" >> .mozconfig -cat .mozconfig +echo 'export NODEJS="%{_buildrootdir}/bin/node-stdout-nonblocking-wrapper"' >> .mozconfig # Remove executable bit to make brp-mangle-shebangs happy. -chmod -x third_party/rust/itertools/src/lib.rs -chmod a-x third_party/rust/gfx-backend-vulkan/src/*.rs -chmod a-x third_party/rust/gfx-hal/src/*.rs -chmod a-x third_party/rust/ash/src/extensions/ext/*.rs -chmod a-x third_party/rust/ash/src/extensions/khr/*.rs -chmod a-x third_party/rust/ash/src/extensions/mvk/*.rs -chmod a-x third_party/rust/ash/src/extensions/nv/*.rs +find third_party -type f -iname "*.rs"|xargs chmod a-x -#--------------------------------------------------------------------- +#=============================================================================== %build # Disable LTO to work around rhbz#1883904 %define _lto_cflags %{nil} -ulimit -a -free -#set -e -# Hack for missing shell when building in brew on RHEL6 - -%if ! 0%{?avoid_bundled_rebuild} - rm -rf %{_buildrootdir}/* -%endif export PATH="%{_buildrootdir}/bin:$PATH" +# Cleanup buildroot for existing rpms from bundled nss/nspr and other packages +rm -rf %{_buildrootdir}/* function install_rpms_to_current_dir() { PACKAGE_RPM=$(eval echo $1) @@ -570,61 +723,6 @@ function install_rpms_to_current_dir() { rpm2cpio "$package" | cpio -idu done } - -function build_bundled_package() { - PACKAGE_RPM=$1 - PACKAGE_FILES=$2 - PACKAGE_SOURCE=$3 - PACKAGE_BUILD_OPTIONS=$4 - export PACKAGE_DIR="%{_topdir}/RPMS" - - PACKAGE_ALREADY_BUILD=0 - %if %{?avoid_bundled_rebuild} - if ls $PACKAGE_DIR/$PACKAGE_RPM; then - PACKAGE_ALREADY_BUILD=1 - fi - if ls $PACKAGE_DIR/%{_arch}/$PACKAGE_RPM; then - PACKAGE_ALREADY_BUILD=1 - fi - %endif - if [ $PACKAGE_ALREADY_BUILD == 0 ]; then - echo "Rebuilding $PACKAGE_RPM from $PACKAGE_SOURCE"; echo "===============================" - rpmbuild --nodeps $PACKAGE_BUILD_OPTIONS --rebuild $PACKAGE_SOURCE - cat /var/tmp/rpm-tmp* - fi - - find $PACKAGE_DIR - if [ ! -f $PACKAGE_DIR/$PACKAGE_RPM ]; then - # Hack for tps tests - ARCH_STR=%{_arch} - %ifarch %{ix86} - ARCH_STR="i?86" - %endif - export PACKAGE_DIR="$PACKAGE_DIR/$ARCH_STR" - fi - pushd $PACKAGE_DIR - - echo "Installing $PACKAGE_DIR/$PACKAGE_RPM"; echo "===============================" - pwd - PACKAGE_LIST=$(echo $PACKAGE_DIR/$PACKAGE_RPM | tr " " "\n") - for PACKAGE in $PACKAGE_LIST - do - rpm2cpio $PACKAGE | cpio -iduv - done - - PATH=$PACKAGE_DIR/usr/bin:$PATH - export PATH - LD_LIBRARY_PATH=$PACKAGE_DIR/usr/%{_lib}:$LD_LIBRARY_PATH - export LD_LIBRARY_PATH - - # Clean rpms to avoid including them to package - %if ! 0%{?avoid_bundled_rebuild} - rm -f $PACKAGE_FILES - %endif - - popd -} - %if 0%{?bundle_nss} rpm -ivh %{SOURCE402} #rpmbuild --nodeps --define '_prefix %{bundled_install_path}' --without=tests -ba %{_specdir}/nspr.spec @@ -636,22 +734,23 @@ function build_bundled_package() { echo "Setting nspr flags" # nss-setup-flags-env.inc sed -i 's@%{bundled_install_path}@%{_buildrootdir}%{bundled_install_path}@g' %{_buildrootdir}%{bundled_install_path}/%{_lib}/pkgconfig/nspr*.pc + cat %{_buildrootdir}%{bundled_install_path}/%{_lib}/pkgconfig/nspr*.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" + pkg-config --libs-only-L nspr + pkg-config --libs nspr + export PATH="%{_buildrootdir}%{bundled_install_path}/bin:$PATH" export PATH=%{_buildrootdir}/%{bundled_install_path}/bin:$PATH echo $PKG_CONFIG_PATH rpm -ivh %{SOURCE403} - rpmbuild --nodeps --define '_prefix %{bundled_install_path}' -ba %{_specdir}/nss.spec + rpmbuild --nodeps --define '_prefix %{bundled_install_path}' --without=tests -ba %{_specdir}/nss.spec pushd %{_buildrootdir} #cleanup - #rm -rf {_buildrootdir}/usr/lib/debug/* - #rm -rf {_buildrootdir}/usr/lib/.build-id install_rpms_to_current_dir nss-3*.rpm install_rpms_to_current_dir nss-devel*.rpm install_rpms_to_current_dir nss-pkcs11-devel*.rpm @@ -672,29 +771,12 @@ function build_bundled_package() { find %{_buildrootdir} %endif -%if 0%{use_bundled_ffi} - # Install libraries to the predefined location to later add them to the Firefox libraries - rpm -ivh %{SOURCE303} - rpmbuild --nodeps --define '_prefix %{bundled_install_path}' -ba %{_specdir}/libffi.spec - pushd %{_buildrootdir} - install_rpms_to_current_dir 'libffi*.rpm' - popd - %filter_from_requires /libffi.so.6/d -%endif -%filter_setup - -function replace_prefix() { - FILE_NAME=$1 - PKG_CONFIG_PREFIX=$2 - - cat $FILE_NAME | tail -n +2 > tmp.txt - echo "$PKG_CONFIG_PREFIX" > $FILE_NAME - cat tmp.txt >> $FILE_NAME - rm -rf tmp.txt -} - -# We need to disable exit on error temporarily for the following scripts: set +e +%if 0%{?rhel} == 8 && %{rhel_minor_version} < 6 +%ifarch aarch64 +source scl_source enable gcc-toolset-12 +%endif +%endif %if 0%{?use_dts} source scl_source enable devtoolset-%{dts_version} %endif @@ -704,79 +786,105 @@ source scl_source enable rust-toolset-%{rust_version} %if 0%{?use_nodejsts} source scl_source enable rh-nodejs10 %endif +%if 0%{?use_llvmts} +source scl_source enable llvm-toolset-%{llvm_version} +%endif +set -e env which gcc which c++ which g++ which ld which nasm -# Build and install local node if needed -# ====================================== -export MOZ_NODEJS=`which node` - +which node +%if 0%{?use_bundled_cbindgen} mkdir -p my_rust_vendor cd my_rust_vendor %{__tar} xf %{SOURCE2} -cd - mkdir -p .cargo cat > .cargo/config < 30 +MOZ_OPT_FLAGS="$MOZ_OPT_FLAGS -fpermissive" +%endif %if %{?hardened_build} - MOZ_OPT_FLAGS="$MOZ_OPT_FLAGS -fPIC -Wl,-z,relro -Wl,-z,now" - %endif +MOZ_OPT_FLAGS="$MOZ_OPT_FLAGS -fPIC -Wl,-z,relro -Wl,-z,now" +%endif %if %{?debug_build} - MOZ_OPT_FLAGS=$(echo "$MOZ_OPT_FLAGS" | %{__sed} -e 's/-O2//') +MOZ_OPT_FLAGS=$(echo "$MOZ_OPT_FLAGS" | %{__sed} -e 's/-O2//') +%endif +%ifarch s390 +MOZ_OPT_FLAGS=$(echo "$MOZ_OPT_FLAGS" | %{__sed} -e 's/-g/-g1/') +# If MOZ_DEBUG_FLAGS is empty, firefox's build will default it to "-g" which +# overrides the -g1 from line above and breaks building on s390/arm +# (OOM when linking, rhbz#1238225) +export MOZ_DEBUG_FLAGS=" " %endif -# We don't wantfirefox to use CK_GCM_PARAMS_V3 in nss -MOZ_OPT_FLAGS="$MOZ_OPT_FLAGS -DNSS_PKCS11_3_0_STRICT" - +%ifarch %{arm} %{ix86} +MOZ_OPT_FLAGS=$(echo "$MOZ_OPT_FLAGS" | %{__sed} -e 's/-g/-g0/') +export MOZ_DEBUG_FLAGS=" " +%endif %if !%{build_with_clang} - %ifarch aarch64 %{ix86} x86_64 s390x - MOZ_LINK_FLAGS="-Wl,--no-keep-memory -Wl,--reduce-memory-overheads" - %endif - %ifarch %{ix86} - MOZ_LINK_FLAGS="-Wl,--no-keep-memory -Wl,--strip-debug" - echo "ac_add_options --enable-linker=gold" >> .mozconfig - %endif +%ifarch s390x ppc aarch64 %{ix86} +MOZ_LINK_FLAGS="-Wl,--no-keep-memory -Wl,--reduce-memory-overheads" +%endif +%ifarch %{arm} +MOZ_LINK_FLAGS="-Wl,--no-keep-memory -Wl,--strip-debug" +echo "ac_add_options --enable-linker=gold" >> .mozconfig +%endif +%endif +%if 0%{?flatpak} +# Make sure the linker can find libraries in /app/lib64 as we don't use +# __global_ldflags that normally sets this. +MOZ_LINK_FLAGS="$MOZ_LINK_FLAGS -L%{_libdir}" +%endif +%ifarch %{arm} %{ix86} %{s390x} +export RUSTFLAGS="-Cdebuginfo=0" +echo 'export RUSTFLAGS="-Cdebuginfo=0"' >> .mozconfig +%endif +#%ifarch aarch64 +#export RUSTFLAGS="-Cdebuginfo=0 -Clinker=/opt/rh/gcc-toolset-12/root/usr/bin/gcc" +#echo 'export RUSTFLAGS="-Cdebuginfo=0 -Clinker=/opt/rh/gcc-toolset-12/root/usr/bin/gcc"' >> .mozconfig +#%endif +%if %{build_with_asan} +MOZ_OPT_FLAGS="$MOZ_OPT_FLAGS -fsanitize=address -Dxmalloc=myxmalloc" +MOZ_LINK_FLAGS="$MOZ_LINK_FLAGS -fsanitize=address -ldl" %endif %if 0%{?bundle_nss} @@ -786,79 +894,53 @@ MOZ_OPT_FLAGS="$MOZ_OPT_FLAGS -DNSS_PKCS11_3_0_STRICT" MOZ_LINK_FLAGS="-Wl,-rpath-link,%{_buildrootdir}%{bundled_install_path}/%{_lib} $MOZ_LINK_FLAGS" %endif -%ifarch %{ix86} - export RUSTFLAGS="-Cdebuginfo=0" - echo 'export RUSTFLAGS="-Cdebuginfo=0"' >> .mozconfig -%endif +# We don't want thunderbird to use CK_GCM_PARAMS_V3 in nss +MOZ_OPT_FLAGS="$MOZ_OPT_FLAGS -DNSS_PKCS11_3_0_STRICT" -export PREFIX='%{_prefix}' -export LIBDIR='%{_libdir}' -export CC=gcc -export CXX=g++ echo "export CFLAGS=\"$MOZ_OPT_FLAGS\"" >> .mozconfig echo "export CXXFLAGS=\"$MOZ_OPT_FLAGS\"" >> .mozconfig echo "export LDFLAGS=\"$MOZ_LINK_FLAGS\"" >> .mozconfig %if %{build_with_clang} - echo "export LLVM_PROFDATA=\"llvm-profdata\"" >> .mozconfig - echo "export AR=\"llvm-ar\"" >> .mozconfig - echo "export NM=\"llvm-nm\"" >> .mozconfig - echo "export RANLIB=\"llvm-ranlib\"" >> .mozconfig - echo "ac_add_options --enable-linker=lld" >> .mozconfig +echo "export LLVM_PROFDATA=\"llvm-profdata\"" >> .mozconfig +echo "export AR=\"llvm-ar\"" >> .mozconfig +echo "export NM=\"llvm-nm\"" >> .mozconfig +echo "export RANLIB=\"llvm-ranlib\"" >> .mozconfig +echo "ac_add_options --enable-linker=lld" >> .mozconfig %else - echo "export CC=gcc" >> .mozconfig - echo "export CXX=g++" >> .mozconfig - echo "export AR=\"gcc-ar\"" >> .mozconfig - echo "export NM=\"gcc-nm\"" >> .mozconfig - echo "export RANLIB=\"gcc-ranlib\"" >> .mozconfig +echo "export CC=gcc" >> .mozconfig +echo "export CXX=g++" >> .mozconfig +echo "export AR=\"gcc-ar\"" >> .mozconfig +echo "export NM=\"gcc-nm\"" >> .mozconfig +echo "export RANLIB=\"gcc-ranlib\"" >> .mozconfig +%endif +%if 0%{?build_with_pgo} +echo "ac_add_options MOZ_PGO=1" >> .mozconfig +# PGO build doesn't work with ccache +export CCACHE_DISABLE=1 %endif MOZ_SMP_FLAGS=-j1 -# More than two build tasks can lead to OOM gcc crash. -%if 0%{?rhel} < 8 - [ -z "$RPM_BUILD_NCPUS" ] && \ - RPM_BUILD_NCPUS="`/usr/bin/getconf _NPROCESSORS_ONLN`" - [ "$RPM_BUILD_NCPUS" -ge 2 ] && MOZ_SMP_FLAGS=-j2 -%else - %ifarch %{ix86} x86_64 ppc64 ppc64le aarch64 - [ -z "$RPM_BUILD_NCPUS" ] && \ +# On x86_64 architectures, Mozilla can build up to 4 jobs at once in parallel, +# however builds tend to fail on other arches when building in parallel. +#%ifarch %{ix86} s390x %{arm} aarch64 ppc64le +#[ -z "$RPM_BUILD_NCPUS" ] && \ +# RPM_BUILD_NCPUS="`/usr/bin/getconf _NPROCESSORS_ONLN`" +#[ "$RPM_BUILD_NCPUS" -ge 2 ] && MOZ_SMP_FLAGS=-j2 +#%endif +#%ifarch x86_64 ppc ppc64 ppc64le +[ -z "$RPM_BUILD_NCPUS" ] && \ RPM_BUILD_NCPUS="`/usr/bin/getconf _NPROCESSORS_ONLN`" - [ "$RPM_BUILD_NCPUS" -ge 2 ] && MOZ_SMP_FLAGS=-j2 - [ "$RPM_BUILD_NCPUS" -ge 4 ] && MOZ_SMP_FLAGS=-j3 - [ "$RPM_BUILD_NCPUS" -ge 8 ] && MOZ_SMP_FLAGS=-j3 - %endif -%endif - -cat /proc/meminfo -# Free memory in kB - -# Free memory in kB -if grep -q MemAvailable /proc/meminfo; then - MEM_AVAILABLE=$(grep MemAvailable /proc/meminfo | awk '{ print $2 }') -else - MEM_AVAILABLE=$(grep MemFree /proc/meminfo | awk '{ print $2 }') -fi - -# Usually the compiler processes can take 2 GB of memory at peaks -TASK_SIZE=4000000 -MEM_CONSTRAINED_JOBS=$(( MEM_AVAILABLE / TASK_SIZE )) - -if [ $MEM_CONSTRAINED_JOBS -le 0 ]; then - MEM_CONSTRAINED_JOBS=1 -fi +[ "$RPM_BUILD_NCPUS" -ge 2 ] && MOZ_SMP_FLAGS=-j2 +[ "$RPM_BUILD_NCPUS" -ge 4 ] && MOZ_SMP_FLAGS=-j4 +[ "$RPM_BUILD_NCPUS" -ge 8 ] && MOZ_SMP_FLAGS=-j8 +[ "$RPM_BUILD_NCPUS" -ge 16 ] && MOZ_SMP_FLAGS=-j16 +#%endif -CPU_AVAILABLE=$(/usr/bin/getconf _NPROCESSORS_ONLN) -# Pick the minimum from available CPUs or memory constrained number of jobs -MOZ_SMP_FLAGS=-j$([ "$CPU_AVAILABLE" -le "$MEM_CONSTRAINED_JOBS" ] && echo "$CPU_AVAILABLE" || echo "$MEM_CONSTRAINED_JOBS") - -# override smp flags to the rpmbuild defaults ATM -%ifnarch ppc64le -MOZ_SMP_FLAGS=%{_smp_mflags} -%endif - -%ifarch s390x -MOZ_SMP_FLAGS=-j2 -%endif +echo "mk_add_options MOZ_MAKE_FLAGS=\"$MOZ_SMP_FLAGS\"" >> .mozconfig +echo "mk_add_options MOZ_SERVICES_SYNC=1" >> .mozconfig +echo "export STRIP=/bin/true" >> .mozconfig +#export MACH_USE_SYSTEM_PYTHON=1 %if 0%{?bundle_nss} echo "Setting nss flags" @@ -868,29 +950,12 @@ MOZ_SMP_FLAGS=-j2 echo $PKG_CONFIG_PATH %endif -export MOZ_MAKE_FLAGS="$MOZ_SMP_FLAGS" -#export MOZ_SERVICES_SYNC="1" -# we need to strip the sources on i686 because to we don't use rpm to generate debugsymbols because of oom -%ifnarch %{ix86} - export STRIP=/bin/true -%endif -which node -echo 'export NODEJS="%{_buildrootdir}/bin/node-stdout-nonblocking-wrapper"' -env -ls %{_buildrootdir} export MACH_USE_SYSTEM_PYTHON=1 -%if 0%{?use_llvmts} - #scl enable llvm-toolset-%{llvm_version} './mach build -v' - ./mach build -v || exit 1 -%else - ./mach build -v || exit 1 -%endif -# Look for the reason we get: /usr/lib/rpm/debugedit: canonicalization unexpectedly shrank by one character -readelf -wl objdir/dist/bin/libxul.so | grep "/" +./mach build -v || exit 1 -#--------------------------------------------------------------------- +#--------------------------------------------------------------------- %install export MACH_USE_SYSTEM_PYTHON=1 function install_rpms_to_current_dir() { @@ -936,53 +1001,60 @@ function install_rpms_to_current_dir() { popd %endif -# Install bundled libffi -%if %{use_bundled_ffi} - pushd %{buildroot} - install_rpms_to_current_dir libffi-3*.rpm - popd -%endif - DESTDIR=%{buildroot} make -C objdir install -%{__mkdir_p} %{buildroot}{%{_libdir},%{_bindir},%{_datadir}/applications} + +# install icons +for s in 16 22 24 32 48 64 128 256; do + %{__mkdir_p} $RPM_BUILD_ROOT%{_datadir}/icons/hicolor/${s}x${s}/apps + %{__cp} -p comm/mail/branding/%{name}/default${s}.png \ + $RPM_BUILD_ROOT%{_datadir}/icons/hicolor/${s}x${s}/apps/thunderbird.png +done + +# Install high contrast icon +%{__mkdir_p} %{buildroot}%{_datadir}/icons/hicolor/symbolic/apps +%{__cp} -p %{SOURCE25} \ + %{buildroot}%{_datadir}/icons/hicolor/symbolic/apps desktop-file-install --dir %{buildroot}%{_datadir}/applications %{SOURCE20} # set up the thunderbird start script -rm -rf %{buildroot}%{_bindir}/thunderbird -%{__rm} -rf %{buildroot}%{_bindir}/thunderbird -%{__cat} %{SOURCE21} > %{buildroot}%{_bindir}/thunderbird -sed -i -e 's|%PREFIX%|%{_prefix}|' %{buildroot}%{_bindir}/thunderbird -sed -i -e 's|%RHEL_ENV_VARS%||' %{buildroot}%{_bindir}/thunderbird -%{__chmod} 755 %{buildroot}%{_bindir}/thunderbird - -%{__cat} %{SOURCE701} | %{__sed} -e 's,THUNDERBIRD_RPM_VR,%{version}-%{release},g' > \ - %{buildroot}/rh-default-prefs -%{__install} -D %{buildroot}/rh-default-prefs %{buildroot}/%{mozappdir}/greprefs/all-redhat.js -%{__install} -D %{buildroot}/rh-default-prefs %{buildroot}/%{mozappdir}/defaults/pref/all-redhat.js -%{__rm} %{buildroot}/rh-default-prefs +rm -f $RPM_BUILD_ROOT/%{_bindir}/thunderbird +%{__cat} %{SOURCE21} | %{__sed} -e 's,%PREFIX%,%{_prefix},g' > \ + $RPM_BUILD_ROOT/%{_bindir}/thunderbird +%{__chmod} 755 $RPM_BUILD_ROOT/%{_bindir}/thunderbird +# Run firefox under wayland only on RHEL9 and newer +%if 0%{?rhel} < 9 +sed -i -e 's|%DISABLE_WAYLAND_PLACEHOLDER%|export MOZ_DISABLE_WAYLAND=1|' %{buildroot}%{_bindir}/thunderbird +%else +sed -i -e 's|%DISABLE_WAYLAND_PLACEHOLDER%||' %{buildroot}%{_bindir}/thunderbird +%endif -# install icons -for s in 16 22 24 32 48 256; do - %{__mkdir_p} %{buildroot}%{_datadir}/icons/hicolor/${s}x${s}/apps - %{__cp} -p comm/mail/branding/%{name}/default${s}.png \ - %{buildroot}%{_datadir}/icons/hicolor/${s}x${s}/apps/thunderbird.png -done +# set up our default preferences +%{__cat} %{SOURCE12} | %{__sed} -e 's,THUNDERBIRD_RPM_VR,%{version}-%{release},g' \ + -e 's,myspell,%{dictionarydir},g' \ + > $RPM_BUILD_ROOT/rh-default-prefs +%{__install} -D $RPM_BUILD_ROOT/rh-default-prefs $RPM_BUILD_ROOT/%{mozappdir}/greprefs/all-redhat.js +%{__install} -D $RPM_BUILD_ROOT/rh-default-prefs $RPM_BUILD_ROOT/%{mozappdir}/defaults/pref/all-redhat.js +%{__rm} $RPM_BUILD_ROOT/rh-default-prefs -%{__rm} -f %{buildroot}%{_bindir}/thunderbird-config +%{__rm} -f $RPM_BUILD_ROOT%{_bindir}/thunderbird-config # own mozilla plugin dir (#135050) -%{__mkdir_p} %{buildroot}%{_libdir}/mozilla/plugins +%{__mkdir_p} $RPM_BUILD_ROOT%{_libdir}/mozilla/plugins # own extension directories -%{__mkdir_p} %{buildroot}%{_datadir}/mozilla/extensions/%{thunderbird_app_id} -%{__mkdir_p} %{buildroot}%{_libdir}/mozilla/extensions/%{thunderbird_app_id} +%{__mkdir_p} $RPM_BUILD_ROOT%{_datadir}/mozilla/extensions/%{thunderbird_app_id} +%{__mkdir_p} $RPM_BUILD_ROOT%{_libdir}/mozilla/extensions/%{thunderbird_app_id} + +# System config dir (#1525709) +%{__mkdir_p} %{buildroot}%{_sysconfdir}/%{name}/pref # Install langpacks -echo > %{name}.lang -%if %{build_langpacks} -# Extract langpacks, make any mods needed, repack the langpack, and install it. +%{__rm} -f %{name}.lang # Delete for --short-circuit option +touch %{name}.lang + +%if 0%{?build_langpacks} %{__mkdir_p} %{buildroot}%{langpackdir} %{__tar} xf %{SOURCE1} for langpack in `ls thunderbird-langpacks/*.xpi`; do @@ -1001,34 +1073,32 @@ for langpack in `ls thunderbird-langpacks/*.xpi`; do echo "%%lang($language) %{langpackdir}/${extensionID}.xpi" >> %{name}.lang done %{__rm} -rf thunderbird-langpacks - -echo "Adding following langpacks:" -cat %{name}.lang %endif + # Get rid of devel package and its debugsymbols -%{__rm} -rf %{buildroot}%{_libdir}/%{name}-devel-%{version} +%{__rm} -rf $RPM_BUILD_ROOT%{_libdir}/%{name}-devel-%{version} # Copy over the LICENSE -%{__install} -p -c -m 644 LICENSE %{buildroot}/%{mozappdir} +install -c -m 644 LICENSE $RPM_BUILD_ROOT%{mozappdir} # Use the system hunspell dictionaries -%{__rm} -rf %{buildroot}%{mozappdir}/dictionaries -ln -s %{_datadir}/myspell %{buildroot}%{mozappdir}/dictionaries +%{__rm} -rf $RPM_BUILD_ROOT/%{mozappdir}/dictionaries +ln -s $(pkg-config --variable prefix hunspell)/share/%{dictionarydir} $RPM_BUILD_ROOT%{mozappdir}/dictionaries # ghost files -%{__mkdir_p} %{buildroot}%{mozappdir}/components -touch %{buildroot}%{mozappdir}/components/compreg.dat -touch %{buildroot}%{mozappdir}/components/xpti.dat - -# Clean thunderbird-devel debuginfo -rm -rf %{_prefix}/lib/debug/lib/%{name}-devel-* -rm -rf %{_prefix}/lib/debug/lib64/%{name}-devel-* +%{__mkdir_p} $RPM_BUILD_ROOT%{mozappdir}/components +touch $RPM_BUILD_ROOT%{mozappdir}/components/compreg.dat +touch $RPM_BUILD_ROOT%{mozappdir}/components/xpti.dat +# Add debuginfo for crash-stats.mozilla.com +%if %{enable_mozilla_crashreporter} +%{__mkdir_p} $RPM_BUILD_ROOT/%{moz_debug_dir} +%{__cp} %{objdir}/dist/%{symbols_file_name} $RPM_BUILD_ROOT/%{moz_debug_dir} +%endif # Removing librnp.so - we cannot deliver that in RHELs -%{__rm} -rf %{buildroot}%{mozappdir}/librnp.so - +%{__rm} -rf %{buildroot}%{mozappdir}/librnp.so %{buildroot}%{mozappdir}/rnp-cli %{buildroot}%{mozappdir}/rnpkeys # Register as an application to be visible in the software center mkdir -p $RPM_BUILD_ROOT%{_datadir}/metainfo %{__cp} -p comm/mail/branding/%{name}/net.thunderbird.Thunderbird.appdata.xml $RPM_BUILD_ROOT%{_datadir}/metainfo/thunderbird.appdata.xml @@ -1036,6 +1106,16 @@ sed -i -e 's|thunderbird|' "$RPM_BUILD_ROOT%{ #=============================================================================== +%clean +rm -rf %{_srcrpmdir}/libffi*.src.rpm +find %{_rpmdir} -name "libffi*.rpm" -delete +rm -rf %{_srcrpmdir}/openssl*.src.rpm +find %{_rpmdir} -name "openssl*.rpm" -delete +rm -rf %{_srcrpmdir}/nss*.src.rpm +find %{_rpmdir} -name "nss*.rpm" -delete +rm -rf %{_srcrpmdir}/nspr*.src.rpm +find %{_rpmdir} -name "nspr*.rpm" -delete + %post update-desktop-database &> /dev/null || : touch --no-create %{_datadir}/icons/hicolor &>/dev/null || : @@ -1056,6 +1136,8 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %attr(755,root,root) %{_bindir}/thunderbird %{_datadir}/metainfo/*.appdata.xml %attr(644,root,root) %{_datadir}/applications/thunderbird.desktop +%dir %{_sysconfdir}/%{name} +%dir %{_sysconfdir}/%{name}/* %dir %{_datadir}/mozilla/extensions/%{thunderbird_app_id} %dir %{_libdir}/mozilla/extensions/%{thunderbird_app_id} %dir %{mozappdir} @@ -1064,14 +1146,13 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %dir %{mozappdir}/components %ghost %{mozappdir}/components/compreg.dat %ghost %{mozappdir}/components/xpti.dat -%if %{build_langpacks} -%dir %{langpackdir} -%endif - %{mozappdir}/omni.ja %{mozappdir}/plugin-container %{mozappdir}/defaults %{mozappdir}/dictionaries +%if %{build_langpacks} +%dir %{langpackdir} +%endif %{mozappdir}/greprefs %{mozappdir}/isp %{mozappdir}/thunderbird-bin @@ -1086,17 +1167,20 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_datadir}/icons/hicolor/256x256/apps/thunderbird.png %{_datadir}/icons/hicolor/32x32/apps/thunderbird.png %{_datadir}/icons/hicolor/48x48/apps/thunderbird.png -%{mozappdir}/pingsender -%{mozappdir}/dependentlibs.list -%{mozappdir}/fonts/TwemojiMozilla.ttf - -%if !%{?system_nss} -%exclude %{mozappdir}/libnssckbi.so +%{_datadir}/icons/hicolor/64x64/apps/thunderbird.png +%{_datadir}/icons/hicolor/128x128/apps/thunderbird.png +%{_datadir}/icons/hicolor/symbolic/apps/thunderbird-symbolic.svg +%if %{enable_mozilla_crashreporter} +%{mozappdir}/crashreporter +%{mozappdir}/crashreporter.ini +%{mozappdir}/Throbber-small.gif %endif -%if 0%{use_bundled_ffi} -%{mozappdir}/bundled/%{_lib}/libffi.so* -%exclude %{_datadir}/doc/libffi* +%if !%{?system_nss} +%{mozappdir}/*.chk %endif +%{mozappdir}/dependentlibs.list +%{mozappdir}/fonts +%{mozappdir}/pingsender %if 0%{?bundle_nss} %{mozappdir}/bundled/%{_lib}/libfreebl* @@ -1114,8 +1198,8 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : #=============================================================================== %changelog -* Wed Aug 24 2022 CentOS Sources - 91.13.0-1.el9.centos -- Apply debranding changes +* Fri Sep 16 2022 Jan Horak - 102.3.0-3 +- Update to 102.3.0 build1 * Fri Aug 19 2022 Eike Rathke - 91.13.0-1 - Update to 91.13.0 build1 @@ -1302,1142 +1386,3 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : - Rebuild to fix rhbz#1725919 - Thunderbird fails to authenticate with gmail with ssl/tls and OAuth2. -* Fri Jun 21 2019 Jan Horak - 60.7.2-2 -- Update to 60.7.2 build2 - -* Thu Jun 20 2019 Jan Horak - 60.7.2-1 -- Update to 60.7.2 - -* Tue Jun 18 2019 Jan Horak - 60.7.1-1 -- Update to 60.7.1 - -* Mon May 27 2019 Martin Stransky - 60.7.0-1 -- Update to 60.7.0 - -* Mon Mar 25 2019 Martin Stransky - 60.6.1-1 -- Update to 60.6.1 - -* Tue Mar 19 2019 Martin Stransky - 60.6.0-1 -- Update to 60.6.0 - -* Tue Jan 29 2019 Martin Stransky - 60.5.0-1 -- Update to 60.5.0 - -* Thu Jan 3 2019 Jan Horak - 60.4.0-1 -- Update to 60.4.0 - -* Wed Oct 31 2018 Jan Horak - 60.3.0-1 -- Update to 60.3.0 - -* Wed Oct 31 2018 Jan Horak - 60.2.1-6 -- Fixed missing calendar langpacks - -* Tue Oct 16 2018 Jan Horak - 60.2.1-5 -- Fixing minor issues - -* Wed Oct 10 2018 Jan Horak - 60.2.1-3 -- Reverting deleting of key3db - -* Wed Oct 3 2018 Jan Horak - 60.2.1-2 -- Update to 60.2.1 -- Added fix for rhbz#1546988 - -* Fri Sep 14 2018 Jan Horak - 60.0-1 -- Rebase to version 60 - -* Tue Jul 10 2018 Jan Horak - 52.9.1-1 -- Update to 52.9.1 - -* Thu May 17 2018 Jan Horak - 52.8.0-2 -- Update to 52.8.0 - -* Mon Mar 26 2018 Jan Horak - 52.7.0-1 -- Update to 52.7.0 - -* Fri Jan 26 2018 Jan Horak - 52.6.0-1 -- Update to 52.6.0 - -* Tue Jan 2 2018 Jan Horak - 52.5.2-1 -- Update to 52.5.2 - -* Mon Nov 27 2017 Jan Horak - 52.5.0-1 -- Update to 52.5.0 - -* Wed Oct 4 2017 Jan Horak - 52.4.0-2 -- Update to 52.4.0 (b2) - -* Mon Aug 21 2017 Jan Horak - 52.3.0-1 -- Update to 52.3.0 - -* Thu Jun 29 2017 Jan Horak - 52.2.1-1 -- Update to 52.2.1 - -* Thu Jun 15 2017 Jan Horak - 52.2.0-1 -- Update to 52.2.0 - -* Tue May 2 2017 Jan Horak - 52.1.0-1 -- Update to 52.1.0 - -* Thu Apr 13 2017 Jan Horak - 52.0.1-1 -- Update to 52.0.1 - -* Tue Mar 7 2017 Jan Horak - 45.8.0-1 -- Update to 45.8.0 - -* Thu Jan 26 2017 Jan Horak - 45.7.0-1 -- Update to 45.7.0 - -* Fri Dec 16 2016 Martin Stransky - 45.6.0-1 -- Update to the latest upstream (45.6.0) - -* Thu Dec 1 2016 Jan Horak - 45.5.1-1 -- Update to 45.5.1 - -* Fri Nov 18 2016 Jan Horak - 45.5.0-1 -- Update to 45.5.0 - -* Thu Sep 29 2016 Jan Horak - 45.4.0-1 -- Update to 45.4.0 - -* Fri Aug 26 2016 Jan Horak - 45.3.0-1 -- Update to 45.3.0 - -* Wed Jun 29 2016 Jan Horak - 45.2-1 -- Update to 45.2 - -* Mon Jun 6 2016 Jan Horak - 45.1.1-1 -- Update to 45.1.1 - -* Mon Jun 06 2016 Jan Horak - 45.1.0-5 -- Do not add symlinks to some langpacks - -* Tue May 17 2016 Jan Horak - 45.1.0-4 -- Update to 45.1.0 - -* Tue Apr 26 2016 Jan Horak - 45.0-5 -- Update to 45.0 - -* Tue Sep 29 2015 Jan Horak - 38.3.0-1 -- Update to 38.3.0 - -* Fri Aug 14 2015 Jan Horak - 38.2.0-1 -- Update to 38.2.0 - -* Wed Jul 15 2015 Jan Horak - 38.1.0-2 -- Rebase to 38.1.0 - -* Wed Jul 15 2015 Jan Horak - 31.8.0-1 -- Update to 31.8.0 - -* Sun May 10 2015 Jan Horak - 31.7.0-1 -- Update to 31.7.0 - -* Tue Mar 31 2015 Jan Horak - 31.6.0-1 -- Update to 31.6.0 - -* Mon Feb 23 2015 Jan Horak - 31.5.0-2 -- Update to 31.5.0 - -* Sat Jan 10 2015 Jan Horak - 31.4.0-1 -- Update to 31.4.0 - -* Mon Dec 22 2014 Jan Horak - 31.3.0-2 -- Fixed problems with dictionaries (mozbz#1097550) - -* Fri Nov 28 2014 Jan Horak - 31.3.0-1 -- Update to 31.3.0 - -* Thu Oct 30 2014 Jan Horak - 31.2.0-2 -- Update to 31.2.0 - -* Wed Oct 1 2014 Martin Stransky - 31.1.1-5 -- Sync preferences with Firefox - -* Thu Sep 18 2014 Yaakov Selkowitz - 31.1.1-4 -- Fix dependency generation for internal libraries (#1140471) - -* Fri Sep 12 2014 Jan Horak - 31.1.1-3 -- Update to 31.1.1 - -* Tue Sep 9 2014 Jan Horak - 31.1.0-4 -- Use system libffi - -* Wed Sep 3 2014 Jan Horak - 31.1.0-2 -- Added fix for ppc64le - -* Mon Sep 1 2014 Jan Horak - 31.1.0-1 -- Update to 31.1.0 - -* Wed Jul 30 2014 Martin Stransky - 31.0-2 -- Added patch for mozbz#858919 - -* Tue Jul 29 2014 Martin Stransky - 31.0-1 -- Update to 31.0 - -* Tue Jul 22 2014 Jan Horak - 24.7.0-1 -- Update to 24.7.0 - -* Mon Jun 9 2014 Jan Horak - 24.6.0-1 -- Update to 24.6.0 - -* Sun Jun 08 2014 Fedora Release Engineering - 24.5.0-6 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild - -* Fri May 23 2014 Brent Baude - 24.5.0-5 -- Moving the ppc64 conditional up before the cd so it will -- apply cleanly - -* Fri May 23 2014 Martin Stransky - 24.5.0-4 -- Added a build fix for ppc64 - rhbz#1100495 - -* Mon May 5 2014 Jan Horak - 24.5.0-3 -- Fixed find requires - -* Mon Apr 28 2014 Jan Horak - 24.5.0-1 -- Update to 24.5.0 - -* Tue Apr 22 2014 Jan Horak - 24.4.0-2 -- Added support for ppc64le - -* Tue Mar 18 2014 Jan Horak - 24.4.0-1 -- Update to 24.4.0 - -* Mon Feb 3 2014 Jan Horak - 24.3.0-1 -- Update to 24.3.0 - -* Mon Dec 16 2013 Martin Stransky - 24.2.0-4 -- Fixed rhbz#1024232 - thunderbird: squiggly lines used - for spelling correction disappear randomly - -* Fri Dec 13 2013 Martin Stransky - 24.2.0-3 -- Build with -Werror=format-security (rhbz#1037353) - -* Wed Dec 11 2013 Martin Stransky - 24.2.0-2 -- rhbz#1001998 - added a workaround for system notifications - -* Mon Dec 9 2013 Jan Horak - 24.2.0-1 -- Update to 24.2.0 - -* Sat Nov 02 2013 Dennis Gilmore - 24.1.0-2 -- remove ExcludeArch: armv7hl - -* Wed Oct 30 2013 Jan Horak - 24.1.0-1 -- Update to 24.1.0 - -* Thu Oct 17 2013 Martin Stransky - 24.0-4 -- Fixed rhbz#1005611 - BEAST workaround not enabled in Firefox - -* Wed Sep 25 2013 Jan Horak - 24.0-3 -- Update to 24.0 - -* Mon Sep 23 2013 Jan Horak - 17.0.9-1 -- Update to 17.0.9 ESR - -* Mon Aug 5 2013 Jan Horak - 17.0.8-1 -- Update to 17.0.8 - -* Sun Aug 04 2013 Fedora Release Engineering - 17.0.7-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild - -* Tue Jun 25 2013 Jan Horak - 17.0.7-1 -- Update to 17.0.7 - -* Wed Jun 12 2013 Jan Horak - 17.0.6-2 -- Fixed rhbz#973371 - unable to install addons - -* Tue May 14 2013 Jan Horak - 17.0.6-1 -- Update to 17.0.6 - -* Tue Apr 2 2013 Jan Horak - 17.0.5-1 -- Update to 17.0.5 - -* Mon Mar 11 2013 Jan Horak - 17.0.4-1 -- Update to 17.0.4 - -* Tue Feb 19 2013 Jan Horak - 17.0.3-1 -- Update to 17.0.3 - -* Fri Feb 15 2013 Fedora Release Engineering - 17.0.2-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild - -* Tue Jan 15 2013 Martin Stransky - 17.0.2-3 -- Added fix for NM regression (mozbz#791626) - -* Tue Jan 15 2013 Jan Horak - 17.0.2-2 -- Added mozilla-746112 patch to fix crash on ppc(64) - -* Thu Jan 10 2013 Jan Horak - 17.0.2-1 -- Update to 17.0.2 - -* Mon Nov 19 2012 Jan Horak - 17.0-1 -- Update to 17.0 - -* Mon Oct 29 2012 Jan Horak - 16.0.2-1 -- Update to 16.0.2 - -* Tue Oct 16 2012 Jan Horak - 16.0.1-2 -- Fixed nss and nspr versions - -* Thu Oct 11 2012 Jan Horak - 16.0.1-1 -- Update to 16.0.1 - -* Tue Oct 9 2012 Jan Horak - 16.0-1 -- Update to 16.0 - -* Tue Sep 18 2012 Dan Horák - 15.0.1-3 -- Added fix for rhbz#855923 - TB freezes on Fedora 18 for PPC64 - -* Fri Sep 14 2012 Martin Stransky - 15.0.1-2 -- Added build flags for second arches - -* Tue Sep 11 2012 Jan Horak - 15.0.1-1 -- Update to 15.0.1 - -* Fri Sep 7 2012 Jan Horak - 15.0-2 -- Added workaround fix for PPC (rbhz#852698) - -* Mon Aug 27 2012 Jan Horak - 15.0-1 -- Update to 15.0 - -* Wed Aug 1 2012 Martin Stransky - 14.0-4 -- Removed StartupWMClass (rhbz#844863) -- Fixed -g parameter -- Removed thunderbird-devel before packing to avoid debugsymbols duplicities (rhbz#823940) - -* Sat Jul 21 2012 Fedora Release Engineering - 14.0-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild - -* Tue Jul 17 2012 Jan Horak - 14.0-1 -- Update to 14.0 - -* Fri Jun 15 2012 Jan Horak - 13.0.1-1 -- Update to 13.0.1 - -* Tue Jun 5 2012 Jan Horak - 13.0-1 -- Update to 13.0 - -* Mon May 7 2012 Martin Stransky - 12.0.1-2 -- Fixed #717245 - adhere Static Library Packaging Guidelines - -* Mon Apr 30 2012 Jan Horak - 12.0.1-1 -- Update to 12.0.1 - -* Tue Apr 24 2012 Jan Horak - 12.0-1 -- Update to 12.0 - -* Mon Apr 16 2012 Peter Robinson - 11.0.1-2 -- Add upstream patch to fix FTBFS on ARM - -* Thu Mar 29 2012 Jan Horak - 11.0.1-1 -- Update to 11.0.1 - -* Thu Mar 22 2012 Jan Horak - 11.0-6 -- Added translations to thunderbird.desktop file - -* Fri Mar 16 2012 Martin Stransky - 11.0-5 -- gcc 4.7 build fixes - -* Wed Mar 14 2012 Peter Robinson - 11.0-4 -- Add ARM configuration options - -* Wed Mar 14 2012 Martin Stransky - 11.0-3 -- Build with system libvpx - -* Tue Mar 13 2012 Martin Stransky - 11.0-1 -- Update to 11.0 - -* Thu Feb 23 2012 Jan Horak - 10.0.1-3 -- Added fix for proxy settings mozbz#682832 - -* Thu Feb 16 2012 Martin Stransky - 10.0.1-2 -- Added fix for mozbz#727401 - -* Thu Feb 9 2012 Jan Horak - 10.0.1-1 -- Update to 10.0.1 - -* Mon Feb 6 2012 Martin Stransky - 10.0-2 -- gcc 4.7 build fixes - -* Tue Jan 31 2012 Jan Horak - 10.0-1 -- Update to 10.0 - -* Sat Jan 14 2012 Fedora Release Engineering - 9.0-7 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild - -* Thu Jan 05 2012 Dan Horák - 9.0-6 -- disable jemalloc on s390(x) (taken from xulrunner) - -* Wed Jan 04 2012 Dan Horák - 9.0-5 -- fix build on secondary arches (cherry-picked from 13afcd4c097c) - -* Thu Dec 22 2011 Jan Horak - 9.0-4 -- Update to 9.0 - -* Fri Dec 9 2011 Martin Stransky - 8.0-4 -- enabled gio support (#760644) - -* Tue Nov 29 2011 Jan Horak - 8.0-3 -- Fixed s390x issues - -* Thu Nov 10 2011 Jan Horak - 8.0-2 -- Enable Mozilla's crash reporter again for all archs -- Temporary workaround for langpacks -- Disabled addon check UI (#753551) - -* Tue Nov 8 2011 Jan Horak - 8.0-1 -- Update to 8.0 - -* Tue Oct 18 2011 Martin Stransky - 7.0.1-3 -- Added NM patches (mozbz#627672, mozbz#639959) - -* Wed Oct 12 2011 Dan Horák - 7.0.1-2 -- fix build on secondary arches (copied from xulrunner) - -* Fri Sep 30 2011 Jan Horak - 7.0.1-1 -- Update to 7.0.1 - -* Tue Sep 27 2011 Jan Horak - 7.0-1 -- Update to 7.0 - -* Tue Sep 6 2011 Jan Horak - 6.0.2-1 -- Update to 6.0.2 - -* Wed Aug 31 2011 Jan Horak - 6.0-3 -- Distrust a specific Certificate Authority - -* Wed Aug 31 2011 Dan Horák - 6.0-2 -- add secondary-ipc patch from xulrunner - -* Tue Aug 16 2011 Jan Horak - 6.0-1 -- Update to 6.0 - -* Tue Aug 16 2011 Remi Collet 5.0-4 -- Don't unzip the langpacks - -* Mon Aug 15 2011 Jan Horak - 5.0-3 -- Rebuild due to rhbz#728707 - -* Wed Jul 20 2011 Dan Horák - 5.0-2 -- add xulrunner patches for secondary arches - -* Tue Jun 28 2011 Jan Horak - 5.0-1 -- Update to 5.0 - -* Tue Jun 21 2011 Jan Horak - 3.1.11-1 -- Update to 3.1.11 - -* Wed May 25 2011 Caolán McNamara - 3.1.10-2 -- rebuild for new hunspell - -* Thu Apr 28 2011 Jan Horak - 3.1.10-1 -- Update to 3.1.10 - -* Thu Apr 21 2011 Christopher Aillon - 3.1.9-7 -- Make gvfs-open launch a compose window (salimma) -- Spec file cleanups (salimma, caillon) -- Split out mozilla crashreporter symbols to its own debuginfo package (caillon) - -* Sat Apr 2 2011 Christopher Aillon - 3.1.9-6 -- Drop gio support: the code hooks don't exist yet for TB 3.1.x - -* Fri Apr 1 2011 Orion Poplawski - 3.1.9-5 -- Enable startup notification - -* Sun Mar 20 2011 Dan Horák - 3.1.9-4 -- updated the s390 build patch - -* Fri Mar 18 2011 Jan Horak - 3.1.9-3 -- Removed gnome-vfs2, libgnomeui and libgnome from build requires - -* Wed Mar 9 2011 Jan Horak - 3.1.9-2 -- Disabled gnomevfs, enabled gio - -* Mon Mar 7 2011 Jan Horak - 3.1.9-1 -- Update to 3.1.9 - -* Tue Mar 1 2011 Jan Horak - 3.1.8-3 -- Update to 3.1.8 - -* Wed Feb 9 2011 Christopher Aillon - 3.1.7-6 -- Drop the -lightning subpackage, it needs to be in its own SRPM - -* Mon Feb 7 2011 Christopher Aillon - 3.1.7-5 -- Bring back the default mailer check but fix up the directory - -* Wed Dec 15 2010 Jan Horak - 3.1.7-4 -- Mozilla crash reporter enabled - -* Thu Dec 9 2010 Jan Horak - 3.1.7-2 -- Fixed useragent - -* Thu Dec 9 2010 Jan Horak - 3.1.7-1 -- Update to 3.1.7 - -* Sat Nov 27 2010 Remi Collet - 3.1.6-8 -- fix cairo + nspr required version -- lightning: fix thunderbird version required -- lightning: fix release (b3pre) -- lightning: clean install - -* Mon Nov 22 2010 Jan Horak - 3.1.6-7 -- Added x-scheme-handler/mailto to thunderbird.desktop file - -* Mon Nov 8 2010 Jan Horak - 3.1.6-4 -- Added libnotify patch -- Removed dependency on static libraries - -* Fri Oct 29 2010 Jan Horak - 3.1.6-2 -- Move thunderbird-lightning extension from Sunbird package to Thunderbird - -* Wed Oct 27 2010 Jan Horak - 3.1.6-1 -- Update to 3.1.6 - -* Tue Oct 19 2010 Jan Horak - 3.1.5-1 -- Update to 3.1.5 - -* Thu Sep 16 2010 Dan Horák - 3.1.3-2 -- fix build on s390 - -* Tue Sep 7 2010 Jan Horak - 3.1.3-1 -- Update to 3.1.3 - -* Fri Aug 6 2010 Jan Horak - 3.1.2-1 -- Update to 3.1.2 -- Disable updater - -* Tue Jul 20 2010 Jan Horak - 3.1.1-1 -- Update to 3.1.1 - -* Thu Jun 24 2010 Jan Horak - 3.1-1 -- Thunderbird 3.1 - -* Fri Jun 11 2010 Jan Horak - 3.1-0.3.rc2 -- TryExec added to desktop file - -* Wed Jun 9 2010 Christopher Aillon 3.1-0.2.rc2 -- Thunderbird 3.1 RC2 - -* Tue May 25 2010 Christopher Aillon 3.1-0.1.rc1 -- Thunderbird 3.1 RC1 - -* Fri Apr 30 2010 Jan Horak - 3.0.4-3 -- Fix for mozbz#550455 - -* Tue Apr 13 2010 Martin Stransky - 3.0.4-2 -- Fixed langpacks (#580444) - -* Tue Mar 30 2010 Jan Horak - 3.0.4-1 -- Update to 3.0.4 - -* Sat Mar 06 2010 Kalev Lember - 3.0.3-2 -- Own extension directories (#532132) - -* Mon Mar 1 2010 Jan Horak - 3.0.3-1 -- Update to 3.0.3 - -* Thu Feb 25 2010 Jan Horak - 3.0.2-1 -- Update to 3.0.2 - -* Wed Jan 20 2010 Martin Stransky - 3.0.1-1 -- Update to 3.0.1 - -* Mon Jan 18 2010 Martin Stransky - 3.0-5 -- Added fix for #480603 - thunderbird takes - unacceptably long time to start - -* Wed Dec 9 2009 Jan Horak - 3.0-4 -- Update to 3.0 - -* Thu Dec 3 2009 Jan Horak - 3.0-3.13.rc2 -- Update to RC2 - -* Wed Nov 25 2009 Jan Horak - 3.0-3.12.rc1 -- Sync with Mozilla latest RC1 build - -* Thu Nov 19 2009 Jan Horak - 3.0-3.11.rc1 -- Update to RC1 - -* Thu Sep 17 2009 Christopher Aillon - 3.0-3.9.b4 -- Update to 3.0 b4 - -* Thu Aug 6 2009 Martin Stransky - 3.0-3.8.beta3 -- Added fix for #437596 -- Removed unused patches - -* Thu Aug 6 2009 Jan Horak - 3.0-3.7.beta3 -- Removed unused build requirements - -* Mon Aug 3 2009 Jan Horak - 3.0-3.6.beta3 -- Build with system hunspell - -* Sun Jul 26 2009 Fedora Release Engineering - 3.0-3.5.b3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild - -* Fri Jul 24 2009 Jan Horak - 3.0-2.5.beta3 -- Use system hunspell - -* Tue Jul 21 2009 Jan Horak - 3.0-2.4.beta3 -- Update to 3.0 beta3 - -* Mon Mar 30 2009 Jan Horak - 3.0-2.2.beta2 -- Fixed open-browser.sh to use xdg-open instead of gnome-open - -* Mon Mar 23 2009 Christopher Aillon - 3.0-2.1.beta2 -- Disable the default app nag dialog - -* Tue Mar 17 2009 Jan Horak - 3.0-2.beta2 -- Fixed clicked link does not open in browser (#489120) -- Fixed missing help in thunderbird (#488885) - -* Mon Mar 2 2009 Jan Horak - 3.0-1.beta2 -- Update to 3.0 beta2 -- Added Patch2 to build correctly when building with --enable-shared option - -* Wed Feb 25 2009 Fedora Release Engineering - 2.0.0.18-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild - -* Wed Jan 07 2009 Christopher Aillon - 2.0.0.18-2 -- Disable the crash dialog - -* Wed Nov 19 2008 Christopher Aillon 2.0.0.18-1 -- Update to 2.0.0.18 - -* Thu Oct 9 2008 Christopher Aillon 2.0.0.17-1 -- Update to 2.0.0.17 - -* Wed Jul 23 2008 Christopher Aillon 2.0.0.16-1 -- Update to 2.0.0.16 - -* Thu May 1 2008 Christopher Aillon 2.0.0.14-1 -- Update to 2.0.0.14 -- Use the system dictionaries - -* Fri Apr 18 2008 Christopher Aillon 2.0.0.12-6 -- Icon belongs in _datadir/pixmaps - -* Fri Apr 18 2008 Christopher Aillon 2.0.0.12-5 -- rebuilt - -* Mon Apr 7 2008 Christopher Aillon 2.0.0.12-4 -- Add %%lang attributes to langpacks - -* Sat Mar 15 2008 Christopher Aillon 2.0.0.12-3 -- Avoid conflict between gecko debuginfos - -* Mon Mar 03 2008 Martin Stransky 2.0.0.12-2 -- Updated starting script (#426331) - -* Tue Feb 26 2008 Christopher Aillon 2.0.0.12-1 -- Update to 2.0.0.12 -- Fix up icon location and some scriptlets - -* Sun Dec 9 2007 Christopher Aillon 2.0.0.9-2 -- Fix some rpmlint warnings -- Drop some old patches and obsoletes - -* Thu Nov 15 2007 Christopher Aillon 2.0.0.9-1 -- Update to 2.0.0.9 - -* Wed Sep 26 2007 Martin Stransky 2.0.0.6-6 -- Fixed #242657 - firefox -g doesn't work - -* Tue Sep 25 2007 Christopher Aillon 2.0.0.6-5 -- Removed hardcoded MAX_PATH, PATH_MAX and MAXPATHLEN macros - -* Tue Sep 11 2007 Christopher Aillon 2.0.0.6-4 -- Fix crashes when using GTK+ themes containing a gtkrc which specify - GtkOptionMenu::indicator_size and GtkOptionMenu::indicator_spacing - -* Mon Sep 10 2007 Martin Stransky 2.0.0.6-3 -- added fix for #246248 - firefox crashes when searching for word "do" - -* Mon Aug 13 2007 Christopher Aillon 2.0.0.6-2 -- Update the license tag - -* Wed Aug 8 2007 Christopher Aillon 2.0.0.6-1 -- Update to 2.0.0.6 -- Own the application directory (#244901) - -* Tue Jul 31 2007 Martin Stransky 2.0.0.0-3 -- added pango ligature fix - -* Thu Apr 19 2007 Christopher Aillon 2.0.0.0-1 -- Update to 2.0.0.0 Final - -* Fri Apr 13 2007 Christopher Aillon 2.0.0.0-0.5.rc1 -- Fix the desktop file -- Clean up the files list -- Remove the default client stuff from the pref window - -* Thu Apr 12 2007 Christopher Aillon 2.0.0.0-0.4.rc1 -- Rebuild into Fedora - -* Wed Apr 11 2007 Christopher Aillon 2.0.0.0-0.3.rc1 -- Update langpacks - -* Thu Apr 5 2007 Christopher Aillon 2.0.0.0-0.2.rc1 -- Build option tweaks -- Bring the install section to parity with Firefox's - -* Thu Apr 5 2007 Christopher Aillon 2.0.0.0-0.1.rc1 -- Update to 2.0.0.0 RC1 - -* Sun Mar 25 2007 Christopher Aillon 1.5.0.11-1 -- Update to 1.5.0.11 - -* Fri Mar 2 2007 Martin Stransky 1.5.0.10-1 -- Update to 1.5.0.10 - -* Mon Feb 12 2007 Martin Stransky 1.5.0.9-8 -- added fix for #227406: garbage characters on some websites - (when pango is disabled) - -* Tue Jan 30 2007 Christopher Aillon 1.5.0.9-7 -- Updated cursor position patch from tagoh to fix issue with "jumping" - cursor when in a textfield with tabs. - -* Tue Jan 30 2007 Christopher Aillon 1.5.0.9-6 -- Fix the DND implementation to not grab, so it works with new GTK+. - -* Thu Dec 21 2006 Behdad Esfahbod 1.5.0.9-5 -- Added firefox-1.5-pango-underline.patch - -* Wed Dec 20 2006 Behdad Esfahbod 1.5.0.9-4 -- Added firefox-1.5-pango-justified-range.patch - -* Tue Dec 19 2006 Behdad Esfahbod 1.5.0.9-3 -- Added firefox-1.5-pango-cursor-position-more.patch - -* Tue Dec 19 2006 Matthias Clasen 1.5.0.9-2 -- Add a Requires: launchmail (#219884) - -* Tue Dec 19 2006 Christopher Aillon 1.5.0.9-1 -- Update to 1.5.0.9 -- Take firefox's pango fixes -- Don't offer to import...nothing. - -* Tue Nov 7 2006 Christopher Aillon 1.5.0.8-1 -- Update to 1.5.0.8 -- Allow choosing of download directory -- Take the user to the correct directory from the Download Manager. -- Patch to add support for printing via pango from Behdad. - -* Sun Oct 8 2006 Christopher Aillon - 1.5.0.7-4 -- Default to use of system colors - -* Wed Oct 4 2006 Christopher Aillon - 1.5.0.7-3 -- Bring the invisible character to parity with GTK+ - -* Wed Sep 27 2006 Christopher Aillon - 1.5.0.7-2 -- Fix crash when changing gtk key theme -- Prevent UI freezes while changing GNOME theme -- Remove verbiage about pango; no longer required by upstream. - -* Wed Sep 13 2006 Christopher Aillon - 1.5.0.7-1 -- Update to 1.5.0.7 - -* Thu Sep 7 2006 Christopher Aillon - 1.5.0.5-8 -- Shuffle order of the install phase around - -* Thu Sep 7 2006 Christopher Aillon - 1.5.0.5-7 -- Let there be art for Alt+Tab again -- s/tbdir/mozappdir/g - -* Wed Sep 6 2006 Christopher Aillon - 1.5.0.5-6 -- Fix for cursor position in editor widgets by tagoh and behdad (#198759) - -* Tue Sep 5 2006 Christopher Aillon - 1.5.0.5-5 -- Update nopangoxft.patch -- Fix rendering of MathML thanks to Behdad Esfahbod. -- Update start page text to reflect the MathML fixes. -- Enable pango by default on all locales -- Build using -rpath -- Re-enable GCC visibility - -* Thu Aug 3 2006 Kai Engert - 1.5.0.5-4 -- Fix a build failure in mailnews mime code. - -* Tue Aug 1 2006 Matthias Clasen - 1.5.0.5-3 -- Rebuild - -* Thu Jul 27 2006 Christopher Aillon - 1.5.0.5-2 -- Update to 1.5.0.5 - -* Wed Jul 12 2006 Jesse Keating - 1.5.0.4-2.1 -- rebuild - -* Mon Jun 12 2006 Kai Engert - 1.5.0.4-2 -- Update to 1.5.0.4 -- Fix desktop-file-utils requires - -* Wed Apr 19 2006 Christopher Aillon - 1.5.0.2-2 -- Update to 1.5.0.2 - -* Thu Mar 16 2006 Christopher Aillon - 1.5-7 -- Bring the other arches back - -* Mon Mar 13 2006 Christopher Aillon - 1.5.6 -- Temporarily disable other arches that we don't ship FC5 with, for time - -* Mon Mar 13 2006 Christopher Aillon - 1.5-5 -- Add a notice to the mail start page denoting this is a pango enabled build. - -* Fri Feb 10 2006 Christopher Aillon - 1.5-3 -- Add dumpstack.patch -- Improve the langpack install stuff - -* Tue Feb 07 2006 Jesse Keating - 1.5-2.1 -- rebuilt for new gcc4.1 snapshot and glibc changes - -* Fri Jan 27 2006 Christopher Aillon - 1.5-2 -- Add some langpacks back in -- Stop providing MozillaThunderbird - -* Thu Jan 12 2006 Christopher Aillon - 1.5-1 -- Official 1.5 release is out - -* Wed Jan 11 2006 Christopher Aillon - 1.5-0.5.6.rc1 -- Fix crash when deleting highlighted text while composing mail within - plaintext editor with spellcheck enabled. - -* Tue Jan 3 2006 Christopher Aillon - 1.5-0.5.5.rc1 -- Looks like we can build on ppc64 again. - -* Fri Dec 16 2005 Christopher Aillon - 1.5-0.5.4.rc1 -- Rebuild - -* Fri Dec 16 2005 Christopher Aillon - 1.5-0.5.3.rc1 -- Once again, disable ppc64 because of a new issue. - See https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=175944 - -- Use the system NSS libraries -- Build on ppc64 - -* Fri Dec 09 2005 Jesse Keating -- rebuilt - -* Mon Nov 28 2005 Christopher Aillon - 1.5-0.5.1.rc1 -- Fix issue with popup dialogs and other actions causing lockups - -* Sat Nov 5 2005 Christopher Aillon 1.5-0.5.0.rc1 -- Update to 1.5 rc1 - -* Sat Oct 8 2005 Christopher Aillon 1.5-0.5.0.beta2 -- Update to 1.5 beta2 - -* Wed Sep 28 2005 Christopher Aillon 1.5-0.5.0.beta1 -- Update to 1.5 beta1 -- Bring the install phase of the spec file up to speed - -* Sun Aug 14 2005 Christopher Aillon 1.0.6-4 -- Rebuild - -* Sat Aug 6 2005 Christopher Aillon 1.0.6-3 -- Add patch to make file chooser dialog modal - -* Fri Jul 22 2005 Christopher Aillon 1.0.6-2 -- Update to 1.0.6 - -* Mon Jul 18 2005 Christopher Aillon 1.0.6-0.1.fc5 -- 1.0.6 Release Candidate - -* Fri Jul 15 2005 Christopher Aillon 1.0.2-8 -- Use system NSPR -- Fix crash on 64bit platforms (#160330) - -* Thu Jun 23 2005 Kristian Høgsberg 1.0.2-7 -- Add firefox-1.0-pango-cairo.patch to get rid of the last few Xft - references, fixing the "no fonts" problem. - -* Fri May 13 2005 Christopher Aillon 1.0.2-6 -- Change the Exec line in the desktop file to `thunderbird` - -* Fri May 13 2005 Christopher Aillon 1.0.2-5 -- Update pango patche, MOZ_DISABLE_PANGO now works as advertised. - -* Mon May 9 2005 Christopher Aillon 1.0.2-4 -- Add temporary workaround to not create files in the user's $HOME (#149664) - -* Wed May 4 2005 Christopher Aillon 1.0.2-3 -- Don't have downloads "disappear" when downloading to desktop (#139015) -- Fix for some more cursor issues in textareas (149991, 150002, 152089) -- Add upstream patch to fix bidi justification of pango -- Add patch to fix launching of helper applications -- Add patch to properly link against libgfxshared_s.a -- Fix multilib conflicts - -* Wed Apr 27 2005 Warren Togami -- correct confusing PANGO vars in startup script - -* Wed Mar 23 2005 Christopher Aillon 1.0.2-1 -- Thunderbird 1.0.2 - -* Tue Mar 8 2005 Christopher Aillon 1.0-5 -- Add patch to compile against new fortified glibc macros - -* Sat Mar 5 2005 Christopher Aillon 1.0-4 -- Rebuild against GCC 4.0 -- Add execshield patches -- Minor specfile cleanup - -* Mon Dec 20 2004 Christopher Aillon 1.0-3 -- Rebuild - -* Thu Dec 16 2004 Christopher Aillon 1.0-2 -- Add RPM version to useragent - -* Thu Dec 16 2004 Christopher Blizzard -- Port over pango patches from firefox - -* Wed Dec 8 2004 Christopher Aillon 1.0-1 -- Thunderbird 1.0 - -* Mon Dec 6 2004 Christopher Aillon 1.0-0.rc1.1 -- Fix advanced prefs - -* Fri Dec 3 2004 Christopher Aillon -- Make this run on s390(x) now for real - -* Wed Dec 1 2004 Christopher Aillon 1.0-0.rc1.0 -- Update to 1.0 rc1 - -* Fri Nov 19 2004 Christopher Aillon -- Add patches to build and run on s390(x) - -* Thu Nov 11 2004 Christopher Aillon 0.9.0-2 -- Rebuild to fix file chooser - -* Fri Nov 5 2004 Christopher Aillon 0.9.0-1 -- Update to 0.9 - -* Fri Oct 22 2004 Christopher Aillon 0.8.0-10 -- Prevent inlining of stack direction detection (#135255) - -* Tue Oct 19 2004 Christopher Aillon 0.8.0-9 -- More file chooser fixes (same as in firefox) -- Fix for upstream 28327. - -* Mon Oct 18 2004 Christopher Blizzard 0.8.0-8 -- Update the pango patch - -* Mon Oct 18 2004 Christopher Blizzard 0.8.0-8 -- Pull over patches from firefox build: - - disable default application dialog - - don't include software update since it doesn't work - - make external app support work - -* Thu Oct 14 2004 Christopher Blizzard 0.8.0-7 -- Use pango for rendering - -* Tue Oct 12 2004 Christopher Aillon 0.8.0-6 -- Fix for 64 bit crash at startup (b.m.o #256603) - -* Sat Oct 9 2004 Christopher Aillon 0.8.0-5 -- Add patches to fix xremote (#135036) - -* Fri Oct 8 2004 Christopher Aillon 0.8.0-4 -- Add patch to fix button focus issues (#133507) -- Add patch for fix IMAP race issues (bmo #246439) - -* Fri Oct 1 2004 Bill Nottingham 0.8.0-3 -- filter out library Provides: and internal Requires: - -* Tue Sep 28 2004 Christopher Aillon 0.8.0-2 -- Backport the GTK+ File Chooser. -- Add fix for JS math on x86_64 systems -- Add pkgconfig patch - -* Thu Sep 16 2004 Christopher Aillon 0.8.0-1 -- Update to 0.8.0 -- Remove enigmail -- Update BuildRequires -- Remove gcc34 and extension manager patches -- they are upstreamed. -- Fix for gnome-vfs2 error at component registration - -* Fri Sep 03 2004 Christopher Aillon 0.7.3-5 -- Build with --disable-xprint - -* Wed Sep 01 2004 David Hill 0.7.3-4 -- remove all Xvfb-related hacks - -* Wed Sep 01 2004 Warren Togami -- actually apply psfonts -- add mozilla gnome-uriloader patch to prevent build failure - -* Tue Aug 31 2004 Warren Togami 0.7.3-3 -- rawhide import -- apply NetBSD's freetype 2.1.8 patch -- apply psfonts patch -- remove BR on /usr/bin/ex, breaks beehive - -* Tue Aug 31 2004 David Hill 0.7.3-0.fdr.2 -- oops, fix %%install - -* Thu Aug 26 2004 David Hill 0.7.3-0.fdr.1 -- update to Thunderbird 0.7.3 and Enigmail 0.85.0 -- remove XUL.mfasl on startup, add Debian enigmail patches -- add Xvfb hack for -install-global-extension - -* Wed Jul 14 2004 David Hill 0.7.2-0.fdr.0 -- update to 0.7.2, just because it's there -- update gcc-3.4 patch (Kaj Niemi) -- add EM registration patch and remove instdir hack - -* Sun Jul 04 2004 David Hill 0.7.1-0.fdr.1 -- re-add Enigmime 1.0.7, omit Enigmail until the Mozilla EM problems are fixed - -* Wed Jun 30 2004 David Hill 0.7.1-0.fdr.0 -- update to 0.7.1 -- remove Enigmail - -* Mon Jun 28 2004 David Hill 0.7-0.fdr.1 -- re-enable Enigmail 0.84.1 -- add gcc-3.4 patch (Kaj Niemi) -- use official branding (with permission) - -* Fri Jun 18 2004 David Hill 0.7-0.fdr.0 -- update to 0.7 -- temporarily disable Enigmail 0.84.1, make ftp links work (#1634) -- specify libdir, change BR for apt (V. Skyttä, #1617) - -* Tue May 18 2004 Warren Togami 0.6-0.fdr.5 -- temporary workaround for enigmail skin "modern" bug - -* Mon May 10 2004 David Hill 0.6-0.fdr.4 -- update to Enigmail 0.84.0 -- update launch script - -* Mon May 10 2004 David Hill 0.6-0.fdr.3 -- installation directory now versioned -- allow root to run the program (for installing extensions) -- remove unnecessary %%pre and %%post -- remove separators, update mozconfig and launch script (M. Schwendt, #1460) - -* Wed May 05 2004 David Hill 0.6-0.fdr.2 -- include Enigmail, re-add release notes -- delete %%{_libdir}/thunderbird in %%pre - -* Mon May 03 2004 David Hill 0.6-0.fdr.1 -- update to Thunderbird 0.6 - -* Fri Apr 30 2004 David Hill 0.6-0.fdr.0.rc1 -- update to Thunderbird 0.6 RC1 -- add new icon, remove release notes - -* Thu Apr 15 2004 David Hill 0.6-0.fdr.0.20040415 -- update to latest CVS, update mozconfig and %%build accordingly -- update to Enigmail 0.83.6 -- remove x-remote and x86_64 patches -- build with -Os - -* Thu Apr 15 2004 David Hill 0.5-0.fdr.12 -- update x-remote patch -- more startup script fixes - -* Tue Apr 06 2004 David Hill 0:0.5-0.fdr.11 -- startup script fixes, and a minor cleanup - -* Sun Apr 04 2004 Warren Togami 0:0.5-0.fdr.10 -- Minor cleanups - -* Sun Apr 04 2004 David Hill 0:0.5-0.fdr.8 -- minor improvements to open-browser.sh and startup script -- update to latest version of Blizzard's x-remote patch - -* Thu Mar 25 2004 David Hill 0:0.5-0.fdr.7 -- update open-browser.sh, startup script, and BuildRequires - -* Sun Mar 14 2004 David Hill 0:0.5-0.fdr.6 -- update open-browser script, modify BuildRequires (Warren) -- add Blizzard's x-remote patch -- initial attempt at x-remote-enabled startup script - -* Sun Mar 07 2004 David Hill 0:0.5-0.fdr.5 -- refuse to run with excessive privileges - -* Fri Feb 27 2004 David Hill 0:0.5-0.fdr.4 -- add Mozilla x86_64 patch (Oliver Sontag) -- Enigmail source filenames now include the version -- modify BuildRoot - -* Thu Feb 26 2004 David Hill 0:0.5-0.fdr.3 -- use the updated official tarball - -* Wed Feb 18 2004 David Hill 0:0.5-0.fdr.2 -- fix %%prep script - -* Mon Feb 16 2004 David Hill 0:0.5-0.fdr.1 -- update Enigmail to 0.83.3 -- use official source tarball (after removing the CRLFs) -- package renamed to thunderbird - -* Mon Feb 09 2004 David Hill 0:0.5-0.fdr.0 -- update to 0.5 -- check for lockfile before launching - -* Fri Feb 06 2004 David Hill -- update to latest cvs -- update to Enigmail 0.83.2 - -* Thu Jan 29 2004 David Hill 0:0.4-0.fdr.5 -- update to Enigmail 0.83.1 -- removed Mozilla/Firebird script patching - -* Sat Jan 03 2004 David Hill 0:0.4-0.fdr.4 -- add startup notification to .desktop file - -* Thu Dec 25 2003 Warren Togami 0:0.4-0.fdr.3 -- open-browser.sh release 3 -- patch broken /usr/bin/mozilla script during install -- dir ownership -- XXX: Source fails build on x86_64... fix later - -* Tue Dec 23 2003 David Hill 0:0.4-0.fdr.2 -- update to Enigmail 0.82.5 -- add Warren's open-browser.sh (#1113) - -* Tue Dec 09 2003 David Hill 0:0.4-0.fdr.1 -- use Thunderbird's mozilla-xremote-client to launch browser - -* Sun Dec 07 2003 David Hill 0:0.4-0.fdr.0 -- update to 0.4 -- make hyperlinks work (with recent versions of Firebird/Mozilla) - -* Thu Dec 04 2003 David Hill -- update to 0.4rc2 - -* Wed Dec 03 2003 David Hill -- update to 0.4rc1 and Enigmail 0.82.4 - -* Thu Nov 27 2003 David Hill -- update to latest CVS and Enigmail 0.82.3 - -* Sun Nov 16 2003 David Hill -- update to latest CVS (0.4a) -- update Enigmail to 0.82.2 -- alter mozconfig for new build requirements -- add missing BuildReq (#987) - -* Thu Oct 16 2003 David Hill 0:0.3-0.fdr.0 -- update to 0.3 - -* Sun Oct 12 2003 David Hill 0:0.3rc3-0.fdr.0 -- update to 0.3rc3 -- update Enigmail to 0.81.7 - -* Thu Oct 02 2003 David Hill 0:0.3rc2-0.fdr.0 -- update to 0.3rc2 - -* Wed Sep 17 2003 David Hill 0:0.2-0.fdr.2 -- simplify startup script - -* Wed Sep 10 2003 David Hill 0:0.2-0.fdr.1 -- add GPG support (Enigmail 0.81.6) -- specfile fixes (#679) - -* Thu Sep 04 2003 David Hill 0:0.2-0.fdr.0 -- update to 0.2 - -* Mon Sep 01 2003 David Hill -- initial RPM - (based on the fedora MozillaFirebird-0.6.1 specfile)