From b969e528142030e72e3faf6a80098f804c35265c Mon Sep 17 00:00:00 2001 From: Johnny Hughes Date: Mon, 14 Oct 2024 09:35:12 -0500 Subject: [PATCH] Revert "thunderbird package is retired on branch c10s for CS-2551" This reverts commit 403afa1b28915ce5b25258bdbb5ebaa31764c46b. --- .gitignore | 126 +++++++++++++++++++++++ README.md | 3 - build-big-endian-errors.patch | 57 ++++++++++ build-disable-elfhack.patch | 12 +++ build-ffvpx.patch | 24 +++++ build-libaom.patch | 20 ++++ build-ppc64-abiv2.patch | 12 +++ build-rhel7-lower-node-min-version.patch | 11 ++ build-rhel7-nasm-dwarf.patch | 12 +++ dead.package | 1 - disable-openpgp-in-thunderbird.patch | 13 +++ firefox-enable-addons.patch | 13 +++ firefox-gcc-build.patch | 38 +++++++ firefox-nss-addon-hack.patch | 19 ++++ gating.yaml | 6 ++ get-calendar-langpacks.sh | 126 +++++++++++++++++++++++ get_rust_bundled_provides.sh | 14 +++ google-api-key | 1 + google-loc-api-key | 1 + mozilla-api-key | 1 + mozilla-bmo1170092.patch | 95 +++++++++++++++++ mozilla-bmo1504834-part1.patch | 86 ++++++++++++++++ 22 files changed, 687 insertions(+), 4 deletions(-) create mode 100644 .gitignore delete mode 100644 README.md create mode 100644 build-big-endian-errors.patch create mode 100644 build-disable-elfhack.patch create mode 100644 build-ffvpx.patch create mode 100644 build-libaom.patch create mode 100644 build-ppc64-abiv2.patch create mode 100644 build-rhel7-lower-node-min-version.patch create mode 100644 build-rhel7-nasm-dwarf.patch delete mode 100644 dead.package create mode 100644 disable-openpgp-in-thunderbird.patch create mode 100644 firefox-enable-addons.patch create mode 100644 firefox-gcc-build.patch create mode 100644 firefox-nss-addon-hack.patch create mode 100644 gating.yaml create mode 100755 get-calendar-langpacks.sh create mode 100755 get_rust_bundled_provides.sh create mode 100644 google-api-key create mode 100644 google-loc-api-key create mode 100644 mozilla-api-key create mode 100644 mozilla-bmo1170092.patch create mode 100644 mozilla-bmo1504834-part1.patch diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..fb8ae41 --- /dev/null +++ b/.gitignore @@ -0,0 +1,126 @@ +/cbindgen-vendor.tar.xz +/nspr-4.32.0-1.el8_1.src.rpm +/nss-3.67.0-6.el8_1.src.rpm +/thunderbird-91.1.2.processed-source.tar.xz +/thunderbird-langpacks-91.1.2-20210929.tar.xz +/thunderbird-langpacks-91.2.0-20211004.tar.xz +/thunderbird-91.2.0.processed-source.tar.xz +/thunderbird-91.3.0.processed-source.tar.xz +/thunderbird-langpacks-91.3.0-20211101.tar.xz +/thunderbird-langpacks-91.3.0-20211102.tar.xz +/thunderbird-91.4.0.processed-source.tar.xz +/thunderbird-langpacks-91.4.0-20211201.tar.xz +/nss-3.67.0-7.el8_1.src.rpm +/thunderbird-langpacks-91.4.0-20211206.tar.xz +/thunderbird-91.5.0.processed-source.tar.xz +/thunderbird-langpacks-91.5.0-20220107.tar.xz +/thunderbird-langpacks-91.6.0-20220207.tar.xz +/thunderbird-91.6.0.processed-source.tar.xz +/thunderbird-langpacks-91.7.0-20220303.tar.xz +/thunderbird-91.7.0.processed-source.tar.xz +/thunderbird-langpacks-91.7.0-20220308.tar.xz +/thunderbird-langpacks-91.8.0-20220405.tar.xz +/thunderbird-91.8.0.processed-source.tar.xz +/thunderbird-langpacks-91.9.0-20220428.tar.xz +/thunderbird-91.9.0.processed-source.tar.xz +/thunderbird-langpacks-91.9.0-20220502.tar.xz +/thunderbird-langpacks-91.9.0-20220503.tar.xz +/thunderbird-91.9.1.processed-source.tar.xz +/thunderbird-langpacks-91.9.1-20220523.tar.xz +/thunderbird-91.10.0.processed-source.tar.xz +/thunderbird-langpacks-91.10.0-20220530.tar.xz +/thunderbird-91.11.0.processed-source.tar.xz +/thunderbird-langpacks-91.11.0-20220623.tar.xz +/thunderbird-91.11.0.b2.processed-source.tar.xz +/thunderbird-langpacks-91.11.0-20220628.tar.xz +/thunderbird-91.12.0.processed-source.tar.xz +/thunderbird-langpacks-91.12.0-20220725.tar.xz +/thunderbird-91.13.0.processed-source.tar.xz +/thunderbird-langpacks-91.13.0-20220819.tar.xz +/nss-3.79.0-6.el8_1.src.rpm +/nspr-4.34.0-3.el8_1.src.rpm +/thunderbird-102.2.1.source.tar.xz +/thunderbird-langpacks-102.2.1-20220901.tar.xz +/thunderbird-102.2.1.processed-source.tar.xz +/thunderbird-102.3.0.processed-source.tar.xz +/thunderbird-langpacks-102.3.0-20220916.tar.xz +/thunderbird-langpacks-102.4.0-20221017.tar.xz +/thunderbird-102.4.0.processed-source.tar.xz +/thunderbird-102.5.0.processed-source.tar.xz +/thunderbird-langpacks-102.5.0-20221111.tar.xz +/thunderbird-langpacks-102.5.0-20221115.tar.xz +/thunderbird-102.6.0.processed-source.tar.xz +/thunderbird-langpacks-102.6.0-20221209.tar.xz +/thunderbird-langpacks-102.6.0-20221213.tar.xz +/thunderbird-102.7.0.processed-source.tar.xz +/thunderbird-langpacks-102.7.0-20230116.tar.xz +/thunderbird-102.7.1.processed-source.tar.xz +/thunderbird-langpacks-102.7.1-20230124.tar.xz +/thunderbird-langpacks-102.7.1-20230131.tar.xz +/thunderbird-102.8.0.processed-source.tar.xz +/thunderbird-langpacks-102.8.0-20230210.tar.xz +/thunderbird-102.8.0.b2.processed-source.tar.xz +/thunderbird-langpacks-102.8.0-20230215.tar.xz +/thunderbird-102.9.0.processed-source.tar.xz +/thunderbird-langpacks-102.9.0-20230313.tar.xz +/nss-3.79.0-11.el8_1.src.rpm +/thunderbird-102.10.0.processed-source.tar.xz +/thunderbird-langpacks-102.10.0-20230406.tar.xz +/thunderbird-102.10.0.b2.processed-source.tar.xz +/thunderbird-langpacks-102.10.0-20230411.tar.xz +/thunderbird-102.11.0.processed-source.tar.xz +/thunderbird-langpacks-102.11.0-20230504.tar.xz +/thunderbird-115.1.0.processed-source.tar.xz +/thunderbird-langpacks-115.1.0-20230804.tar.xz +/nspr-4.35.0-1.el8_1.src.rpm +/nss-3.90.0-2.el8_1.src.rpm +/thunderbird-115.2.1.processed-source.tar.xz +/thunderbird-langpacks-115.2.1-20230908.tar.xz +/nss-3.90.0-3.el9_0.src.rpm +/nss-3.90.0-3-no-buildid.el9_0.src.rpm +/thunderbird-115.3.0.processed-source.tar.xz +/thunderbird-langpacks-115.3.0-20230926.tar.xz +/thunderbird-langpacks-115.3.1-20230929.tar.xz +/thunderbird-115.3.1.processed-source.tar.xz +/thunderbird-langpacks-115.4.0-20231020.tar.xz +/thunderbird-115.4.0.processed-source.tar.xz +/thunderbird-langpacks-115.4.0-20231021.tar.xz +/thunderbird-115.4.0.b2.processed-source.tar.xz +/thunderbird-langpacks-115.4.0-20231024.tar.xz +/thunderbird-115.4.0.b3.processed-source.tar.xz +/thunderbird-115.4.1.processed-source.tar.xz +/thunderbird-langpacks-115.4.1-20231025.tar.xz +/thunderbird-115.5.0.processed-source.tar.xz +/thunderbird-langpacks-115.5.0-20231121.tar.xz +/thunderbird-115.6.0.processed-source.tar.xz +/thunderbird-langpacks-115.6.0-20231218.tar.xz +/thunderbird-115.7.0.processed-source.tar.xz +/thunderbird-langpacks-115.7.0-20240122.tar.xz +/thunderbird-115.8.0.processed-source.tar.xz +/thunderbird-langpacks-115.8.0-20240219.tar.xz +/thunderbird-115.9.0.processed-source.tar.xz +/thunderbird-langpacks-115.9.0-20240318.tar.xz +/thunderbird-115.10.0.processed-source.tar.xz +/thunderbird-langpacks-115.10.0-20240412.tar.xz +/thunderbird-115.10.0.b2.processed-source.tar.xz +/thunderbird-langpacks-115.10.0-20240415.tar.xz +/thunderbird-115.11.0.processed-source.tar.xz +/thunderbird-langpacks-115.11.0-20240513.tar.xz +/thunderbird-115.12.0.processed-source.tar.xz +/thunderbird-langpacks-115.12.0-20240610.tar.xz +/thunderbird-langpacks-115.12.0-20240611.tar.xz +/thunderbird-115.12.0.b2.processed-source.tar.xz +/thunderbird-115.12.1.processed-source.tar.xz +/thunderbird-langpacks-115.12.1-20240618.tar.xz +/thunderbird-128.0b4.processed-source.tar.xz +/thunderbird-langpacks-128.0b4-20240627.tar.xz +/thunderbird-langpacks-128.0esr-20240710.tar.xz +/thunderbird-128.0esr.processed-source.tar.xz +/nss-3.101.0-6.el9_2.src.rpm +/nss-3.101.0-6.fc40.src.rpm +/nss-3.101.0-6.el8_2.src.rpm +/thunderbird-langpacks-128.1.1esr-20240829.tar.xz +/nss-3.101.0-6.el9_0.src.rpm +/thunderbird-128.1.1esr.processed-source.tar.xz +/thunderbird-128.2.0esr.processed-source.tar.xz +/thunderbird-langpacks-128.2.0esr-20240905.tar.xz diff --git a/README.md b/README.md deleted file mode 100644 index 24b9ea2..0000000 --- a/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# Package Not Available -This package is not available on CentOS Stream 10. -It may be available on another branch. \ No newline at end of file diff --git a/build-big-endian-errors.patch b/build-big-endian-errors.patch new file mode 100644 index 0000000..b4bcb38 --- /dev/null +++ b/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/build-disable-elfhack.patch b/build-disable-elfhack.patch new file mode 100644 index 0000000..c866a68 --- /dev/null +++ b/build-disable-elfhack.patch @@ -0,0 +1,12 @@ +diff -up firefox-128.0/toolkit/moz.configure.disable-elfhack firefox-128.0/toolkit/moz.configure +--- firefox-128.0/toolkit/moz.configure.disable-elfhack 2024-06-19 17:24:29.964976617 +0200 ++++ firefox-128.0/toolkit/moz.configure 2024-06-19 17:24:53.015843805 +0200 +@@ -1553,7 +1553,7 @@ with only_when("--enable-compile-environ + @depends(host, target) + def has_elfhack(host, target): + return ( +- target.kernel == "Linux" ++ False and target.kernel == "Linux" + and host.kernel == "Linux" + and target.cpu in ("arm", "aarch64", "x86", "x86_64") + ) diff --git a/build-ffvpx.patch b/build-ffvpx.patch new file mode 100644 index 0000000..09e60bb --- /dev/null +++ b/build-ffvpx.patch @@ -0,0 +1,24 @@ +diff -up thunderbird-128.0/media/ffvpx/libavcodec/av1dec.c.build-ffvpx thunderbird-128.0/media/ffvpx/libavcodec/av1dec.c +--- thunderbird-128.0/media/ffvpx/libavcodec/av1dec.c.build-ffvpx 2024-06-24 22:43:40.000000000 +0200 ++++ thunderbird-128.0/media/ffvpx/libavcodec/av1dec.c 2024-07-10 11:20:23.200948767 +0200 +@@ -887,7 +887,7 @@ static av_cold int av1_decode_init(AVCod + ff_cbs_fragment_reset(&s->current_obu); + } + +- s->dovi.logctx = avctx; ++ s->dovi.logctx = (AVContext *) avctx; + s->dovi.dv_profile = 10; // default for AV1 + sd = ff_get_coded_side_data(avctx, AV_PKT_DATA_DOVI_CONF); + if (sd && sd->size > 0) +diff -up thunderbird-128.0/media/ffvpx/libavcodec/libdav1d.c.build-ffvpx thunderbird-128.0/media/ffvpx/libavcodec/libdav1d.c +--- thunderbird-128.0/media/ffvpx/libavcodec/libdav1d.c.build-ffvpx 2024-07-10 12:46:57.005539959 +0200 ++++ thunderbird-128.0/media/ffvpx/libavcodec/libdav1d.c 2024-07-10 12:47:19.067507705 +0200 +@@ -289,7 +289,7 @@ static av_cold int libdav1d_init(AVCodec + c->delay = res > 1 ? res : 0; + #endif + +- dav1d->dovi.logctx = c; ++ dav1d->dovi.logctx = (AVContext *) c; + dav1d->dovi.dv_profile = 10; // default for AV1 + sd = ff_get_coded_side_data(c, AV_PKT_DATA_DOVI_CONF); + if (sd && sd->size > 0) diff --git a/build-libaom.patch b/build-libaom.patch new file mode 100644 index 0000000..cab71b5 --- /dev/null +++ b/build-libaom.patch @@ -0,0 +1,20 @@ +diff -up firefox-128.0/config/external/moz.build.libaom firefox-128.0/config/external/moz.build +--- firefox-128.0/config/external/moz.build.libaom 2024-07-31 15:32:39.460374047 +0200 ++++ firefox-128.0/config/external/moz.build 2024-07-31 15:34:41.646064796 +0200 +@@ -39,8 +39,8 @@ if CONFIG["MOZ_VORBIS"]: + if not CONFIG["MOZ_SYSTEM_LIBVPX"]: + external_dirs += ["media/libvpx"] + ++external_dirs += ["media/libaom"] + if CONFIG["MOZ_AV1"]: +- external_dirs += ["media/libaom"] + external_dirs += ["media/libdav1d"] + + if not CONFIG["MOZ_SYSTEM_PNG"]: +diff -up firefox-128.0/third_party/aom/third_party/fastfeat/README.libaom firefox-128.0/third_party/aom/third_party/fastfeat/README +diff -up firefox-128.0/third_party/aom/third_party/googletest/README.libaom firefox-128.0/third_party/aom/third_party/googletest/README +diff -up firefox-128.0/third_party/aom/third_party/libwebm/README.libaom firefox-128.0/third_party/aom/third_party/libwebm/README +diff -up firefox-128.0/third_party/aom/third_party/libyuv/README.libaom firefox-128.0/third_party/aom/third_party/libyuv/README +diff -up firefox-128.0/third_party/aom/third_party/SVT-AV1/README.libaom firefox-128.0/third_party/aom/third_party/SVT-AV1/README +diff -up firefox-128.0/third_party/aom/third_party/vector/README.libaom firefox-128.0/third_party/aom/third_party/vector/README +diff -up firefox-128.0/third_party/aom/third_party/x86inc/README.libaom firefox-128.0/third_party/aom/third_party/x86inc/README diff --git a/build-ppc64-abiv2.patch b/build-ppc64-abiv2.patch new file mode 100644 index 0000000..7a68390 --- /dev/null +++ b/build-ppc64-abiv2.patch @@ -0,0 +1,12 @@ +diff -up firefox-115.0.2/security/nss/lib/freebl/sha512-p8.s.ppc-abiv2 firefox-115.0.2/security/nss/lib/freebl/sha512-p8.s +--- firefox-115.0.2/security/nss/lib/freebl/sha512-p8.s.ppc-abiv2 2023-07-25 09:01:42.602375809 +0200 ++++ firefox-115.0.2/security/nss/lib/freebl/sha512-p8.s 2023-07-25 09:01:48.273373924 +0200 +@@ -3,7 +3,7 @@ + # See the full LICENSE under scripts/. + + .machine "any" +-.abiversion 2 ++.abiversion 1 + .text + + .globl sha512_block_p8 diff --git a/build-rhel7-lower-node-min-version.patch b/build-rhel7-lower-node-min-version.patch new file mode 100644 index 0000000..398cbc3 --- /dev/null +++ b/build-rhel7-lower-node-min-version.patch @@ -0,0 +1,11 @@ +--- firefox-115.8.0/python/mozbuild/mozbuild/nodeutil.py.lower-node-min-version 2024-02-12 21:53:56.000000000 +0200 ++++ firefox-115.8.0/python/mozbuild/mozbuild/nodeutil.py 2024-02-14 16:48:12.476182627 +0200 +@@ -13,7 +13,7 @@ from mozboot.util import get_tools_dir + from packaging.version import Version + from six import PY3 + +-NODE_MIN_VERSION = Version("12.22.12") ++NODE_MIN_VERSION = Version("10.24.0") + NPM_MIN_VERSION = Version("6.14.16") + + diff --git a/build-rhel7-nasm-dwarf.patch b/build-rhel7-nasm-dwarf.patch new file mode 100644 index 0000000..5e2ba4a --- /dev/null +++ b/build-rhel7-nasm-dwarf.patch @@ -0,0 +1,12 @@ +diff -up firefox-91.0.1/python/mozbuild/mozbuild/frontend/context.py.rhel7-nasm firefox-91.0.1/python/mozbuild/mozbuild/frontend/context.py +--- firefox-91.0.1/python/mozbuild/mozbuild/frontend/context.py.rhel7-nasm 2021-08-31 08:02:10.814740774 +0200 ++++ firefox-91.0.1/python/mozbuild/mozbuild/frontend/context.py 2021-08-31 08:04:03.967146994 +0200 +@@ -420,7 +420,7 @@ class AsmFlags(BaseCompileFlags): + if self._context.config.substs.get("OS_ARCH") == "WINNT": + debug_flags += ["-F", "cv8"] + elif self._context.config.substs.get("OS_ARCH") != "Darwin": +- debug_flags += ["-F", "dwarf"] ++ debug_flags += ["-f", "elf32"] + elif ( + self._context.config.substs.get("OS_ARCH") == "WINNT" + and self._context.config.substs.get("CPU_ARCH") == "aarch64" diff --git a/dead.package b/dead.package deleted file mode 100644 index 2c8f74a..0000000 --- a/dead.package +++ /dev/null @@ -1 +0,0 @@ -thunderbird package is retired on branch c10s for CS-2551 \ No newline at end of file diff --git a/disable-openpgp-in-thunderbird.patch b/disable-openpgp-in-thunderbird.patch new file mode 100644 index 0000000..1cb7e94 --- /dev/null +++ b/disable-openpgp-in-thunderbird.patch @@ -0,0 +1,13 @@ +diff -up thunderbird-128.0/comm/mail/extensions/openpgp/content/$.disable-openpgp thunderbird-128.0/comm/mail/extensions/openpgp/content/$ +diff -up thunderbird-128.0/comm/mail/extensions/openpgp/content/BondOpenPGP.sys.mjs.disable-openpgp thunderbird-128.0/comm/mail/extensions/openpgp/content/BondOpenPGP.sys.mjs +--- thunderbird-128.0/comm/mail/extensions/openpgp/content/BondOpenPGP.sys.mjs.disable-openpgp 2024-08-13 16:21:15.804595768 +0200 ++++ thunderbird-128.0/comm/mail/extensions/openpgp/content/BondOpenPGP.sys.mjs 2024-08-13 16:20:40.900692240 +0200 +@@ -27,6 +27,8 @@ export var BondOpenPGP = { + _alreadyTriedInit: false, // if already true, we will not try again + + async init() { ++ // We don't have support for the opengpg in rhel ATM. ++ return; + if (this._alreadyTriedInit) { + // We have previously attempted to init, don't try again. + return; diff --git a/firefox-enable-addons.patch b/firefox-enable-addons.patch new file mode 100644 index 0000000..5aeb23f --- /dev/null +++ b/firefox-enable-addons.patch @@ -0,0 +1,13 @@ +diff -up firefox-128.0/browser/app/profile/firefox.js.addons firefox-128.0/browser/app/profile/firefox.js +--- firefox-128.0/browser/app/profile/firefox.js.addons 2024-06-13 11:47:04.255428350 +0200 ++++ firefox-128.0/browser/app/profile/firefox.js 2024-06-13 11:53:00.442837371 +0200 +@@ -56,7 +56,8 @@ pref("extensions.systemAddon.update.enab + + // Disable add-ons that are not installed by the user in all scopes by default. + // See the SCOPE constants in AddonManager.sys.mjs for values to use here. +-pref("extensions.autoDisableScopes", 15); ++pref("extensions.autoDisableScopes", 0); ++pref("extensions.showMismatchUI", false); + // Scopes to scan for changes at startup. + pref("extensions.startupScanScopes", 0); + diff --git a/firefox-gcc-build.patch b/firefox-gcc-build.patch new file mode 100644 index 0000000..55017ad --- /dev/null +++ b/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/firefox-nss-addon-hack.patch b/firefox-nss-addon-hack.patch new file mode 100644 index 0000000..0322707 --- /dev/null +++ b/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/gating.yaml b/gating.yaml new file mode 100644 index 0000000..d353613 --- /dev/null +++ b/gating.yaml @@ -0,0 +1,6 @@ +--- !Policy +product_versions: + - rhel-10 +decision_context: osci_compose_gate +rules: + - !PassingTestCaseRule {test_case_name: desktop-qe.desktop-ci.tier1-gating.functional} diff --git a/get-calendar-langpacks.sh b/get-calendar-langpacks.sh new file mode 100755 index 0000000..854cae2 --- /dev/null +++ b/get-calendar-langpacks.sh @@ -0,0 +1,126 @@ +#!/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 </pref ++ rv = NS_GetSpecialDirectory(NS_APP_PREFS_SYSTEM_CONFIG_DIR, ++ getter_AddRefs(jsFile)); ++ NS_ENSURE_SUCCESS(rv, rv); ++ ++ rv = jsFile->AppendNative(nsLiteralCString("pref")); ++ NS_ENSURE_SUCCESS(rv, rv); ++ rv = jsFile->AppendNative(nsDependentCString(aFileName)); ++ NS_ENSURE_SUCCESS(rv, rv); + ++ rv = NS_NewLocalFileInputStream(getter_AddRefs(inStr), jsFile); ++ NS_ENSURE_SUCCESS(rv, rv); ++ } + } else { + nsAutoCString location("resource://gre/defaults/autoconfig/"); + location += aFileName; +diff -up firefox-115.0.2/modules/libpref/Preferences.cpp.1170092 firefox-115.0.2/modules/libpref/Preferences.cpp +--- firefox-115.0.2/modules/libpref/Preferences.cpp.1170092 2023-07-10 21:09:00.000000000 +0200 ++++ firefox-115.0.2/modules/libpref/Preferences.cpp 2023-07-17 10:33:23.444355156 +0200 +@@ -4825,6 +4825,9 @@ nsresult Preferences::InitInitialObjects + // + // Thus, in the omni.jar case, we always load app-specific default + // preferences from omni.jar, whether or not `$app == $gre`. ++ // ++ // At very end load configuration from system config location: ++ // - /etc/firefox/pref/*.js + + nsresult rv = NS_ERROR_FAILURE; + UniquePtr find; +diff -up firefox-115.0.2/toolkit/xre/nsXREDirProvider.cpp.1170092 firefox-115.0.2/toolkit/xre/nsXREDirProvider.cpp +--- firefox-115.0.2/toolkit/xre/nsXREDirProvider.cpp.1170092 2023-07-10 22:57:20.000000000 +0200 ++++ firefox-115.0.2/toolkit/xre/nsXREDirProvider.cpp 2023-07-17 10:56:25.309692121 +0200 +@@ -72,6 +72,7 @@ + #endif + #ifdef XP_UNIX + # include ++# include "nsIXULAppInfo.h" + #endif + #ifdef XP_IOS + # include "UIKitDirProvider.h" +@@ -478,6 +479,17 @@ nsXREDirProvider::GetFile(const char* aP + rv = file->AppendNative(nsLiteralCString(PREF_OVERRIDE_DIRNAME)); + NS_ENSURE_SUCCESS(rv, rv); + rv = EnsureDirectoryExists(file); ++ } else if (!strcmp(aProperty, NS_APP_PREFS_SYSTEM_CONFIG_DIR)) { ++ nsCString sysConfigDir = nsLiteralCString("/etc/"); ++ nsCOMPtr appInfo = do_GetService("@mozilla.org/xre/app-info;1"); ++ if (!appInfo) ++ return NS_ERROR_NOT_AVAILABLE; ++ nsCString appName; ++ appInfo->GetName(appName); ++ ToLowerCase(appName); ++ sysConfigDir.Append(appName); ++ NS_NewNativeLocalFile(sysConfigDir, false, getter_AddRefs(file)); ++ rv = EnsureDirectoryExists(file); + } else { + // We don't know anything about this property. Fail without warning, because + // otherwise we'll get too much warning spam due to +@@ -694,6 +706,16 @@ nsXREDirProvider::GetFiles(const char* a + } + #endif + ++ // Add /etc//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)) ++ directories.AppendObject(systemPrefDir); ++ } ++ + rv = NS_NewArrayEnumerator(aResult, directories, NS_GET_IID(nsIFile)); + } else if (!strcmp(aProperty, NS_APP_CHROME_DIR_LIST)) { + // NS_APP_CHROME_DIR_LIST is only used to get default (native) icons +diff -up firefox-115.0.2/xpcom/io/nsAppDirectoryServiceDefs.h.1170092 firefox-115.0.2/xpcom/io/nsAppDirectoryServiceDefs.h +--- firefox-115.0.2/xpcom/io/nsAppDirectoryServiceDefs.h.1170092 2023-07-10 21:09:13.000000000 +0200 ++++ firefox-115.0.2/xpcom/io/nsAppDirectoryServiceDefs.h 2023-07-17 10:33:23.444355156 +0200 +@@ -58,6 +58,7 @@ + #define NS_APP_PREFS_DEFAULTS_DIR_LIST "PrefDL" + #define NS_APP_PREFS_OVERRIDE_DIR \ + "PrefDOverride" // Directory for per-profile defaults ++#define NS_APP_PREFS_SYSTEM_CONFIG_DIR "PrefSysConf" // Directory with system-wide configuration + + #define NS_APP_USER_PROFILE_50_DIR "ProfD" + #define NS_APP_USER_PROFILE_LOCAL_50_DIR "ProfLD" diff --git a/mozilla-bmo1504834-part1.patch b/mozilla-bmo1504834-part1.patch new file mode 100644 index 0000000..f117b89 --- /dev/null +++ b/mozilla-bmo1504834-part1.patch @@ -0,0 +1,86 @@ +diff -up firefox-128.0/gfx/2d/DrawTargetSkia.cpp.mozilla-bmo1504834-part1 firefox-128.0/gfx/2d/DrawTargetSkia.cpp +--- firefox-128.0/gfx/2d/DrawTargetSkia.cpp.mozilla-bmo1504834-part1 2024-06-12 15:02:55.000000000 +0200 ++++ firefox-128.0/gfx/2d/DrawTargetSkia.cpp 2024-06-13 11:36:54.550728034 +0200 +@@ -156,8 +156,8 @@ static IntRect CalculateSurfaceBounds(co + } + + static const int kARGBAlphaOffset = +- SurfaceFormat::A8R8G8B8_UINT32 == SurfaceFormat::B8G8R8A8 ? 3 : 0; +- ++ 0; // Skia is always BGRA SurfaceFormat::A8R8G8B8_UINT32 == ++ // SurfaceFormat::B8G8R8A8 ? 3 : 0; + static bool VerifyRGBXFormat(uint8_t* aData, const IntSize& aSize, + const int32_t aStride, SurfaceFormat aFormat) { + if (aFormat != SurfaceFormat::B8G8R8X8 || aSize.IsEmpty()) { +diff -up firefox-128.0/gfx/2d/Types.h.mozilla-bmo1504834-part1 firefox-128.0/gfx/2d/Types.h +--- firefox-128.0/gfx/2d/Types.h.mozilla-bmo1504834-part1 2024-06-12 15:02:56.000000000 +0200 ++++ firefox-128.0/gfx/2d/Types.h 2024-06-13 11:36:54.551728036 +0200 +@@ -89,18 +89,11 @@ enum class SurfaceFormat : int8_t { + // This represents the unknown format. + UNKNOWN, // TODO: Replace uses with Maybe. + +-// The following values are endian-independent synonyms. The _UINT32 suffix +-// indicates that the name reflects the layout when viewed as a uint32_t +-// value. +-#if MOZ_LITTLE_ENDIAN() ++ // The following values are endian-independent synonyms. The _UINT32 suffix ++ // indicates that the name reflects the layout when viewed as a uint32_t ++ // value. + A8R8G8B8_UINT32 = B8G8R8A8, // 0xAARRGGBB + X8R8G8B8_UINT32 = B8G8R8X8, // 0x00RRGGBB +-#elif MOZ_BIG_ENDIAN() +- A8R8G8B8_UINT32 = A8R8G8B8, // 0xAARRGGBB +- X8R8G8B8_UINT32 = X8R8G8B8, // 0x00RRGGBB +-#else +-# error "bad endianness" +-#endif + + // The following values are OS and endian-independent synonyms. + // +diff -up firefox-128.0/gfx/skia/skia/modules/skcms/skcms.cc.mozilla-bmo1504834-part1 firefox-128.0/gfx/skia/skia/modules/skcms/skcms.cc +--- firefox-128.0/gfx/skia/skia/modules/skcms/skcms.cc.mozilla-bmo1504834-part1 2024-06-12 15:02:57.000000000 +0200 ++++ firefox-128.0/gfx/skia/skia/modules/skcms/skcms.cc 2024-06-13 11:38:45.377835856 +0200 +@@ -31,6 +31,8 @@ + #include + #include + #endif ++#else ++ #define SKCMS_PORTABLE + #endif + + using namespace skcms_private; +@@ -324,20 +326,28 @@ enum { + static uint16_t read_big_u16(const uint8_t* ptr) { + uint16_t be; + memcpy(&be, ptr, sizeof(be)); +-#if defined(_MSC_VER) +- return _byteswap_ushort(be); ++#if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ ++ return be; + #else +- return __builtin_bswap16(be); ++ #if defined(_MSC_VER) ++ return _byteswap_ushort(be); ++ #else ++ return __builtin_bswap16(be); ++ #endif + #endif + } + + static uint32_t read_big_u32(const uint8_t* ptr) { + uint32_t be; + memcpy(&be, ptr, sizeof(be)); +-#if defined(_MSC_VER) +- return _byteswap_ulong(be); ++#if __BYTE_ORDER == __ORDER_BIG_ENDIAN__ ++ return be; + #else +- return __builtin_bswap32(be); ++ #if defined(_MSC_VER) ++ return _byteswap_ulong(be); ++ #else ++ return __builtin_bswap32(be); ++ #endif + #endif + } +