diff options
author | A. Wilcox <AWilcox@Wilcox-Tech.com> | 2024-08-07 10:45:26 -0500 |
---|---|---|
committer | A. Wilcox <AWilcox@Wilcox-Tech.com> | 2024-11-19 00:57:01 -0600 |
commit | e8ff2fd66b52e4b56b71d6058f21d43a2a995256 (patch) | |
tree | 02de2c7c958f936d9e7f0e3b623375d47519f422 | |
parent | 213ba0c15d2af856e3ab2febe1d9cf14089456f2 (diff) | |
download | packages-e8ff2fd66b52e4b56b71d6058f21d43a2a995256.tar.gz packages-e8ff2fd66b52e4b56b71d6058f21d43a2a995256.tar.bz2 packages-e8ff2fd66b52e4b56b71d6058f21d43a2a995256.tar.xz packages-e8ff2fd66b52e4b56b71d6058f21d43a2a995256.zip |
user/firefox-esr: Update to 128.1.0esr
24 files changed, 261 insertions, 684 deletions
diff --git a/user/firefox-esr/APKBUILD b/user/firefox-esr/APKBUILD index 82c29ffd7..e90c1308c 100644 --- a/user/firefox-esr/APKBUILD +++ b/user/firefox-esr/APKBUILD @@ -1,9 +1,9 @@ # Contributor: Molly Miller <adelie@m-squa.red> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=firefox-esr -pkgver=91.13.0 -_llvmver=14 -pkgrel=4 +pkgver=128.1.0 +_llvmver=18 +pkgrel=0 pkgdesc="Firefox web browser (extended support release)" url="https://www.mozilla.org/firefox/" arch="all !ppc" # #837 @@ -33,25 +33,20 @@ source="https://ftp.mozilla.org/pub/firefox/releases/$_ffxver/source/firefox-$_f mozconfig bad-google-code.patch - BTS-1074.patch - disable-arm-flac.patch fix-mutex-build.patch fix-seccomp-bpf.patch - gcc89074.patch + icu-75.patch jpeg-link.patch mozilla-build-arm.patch - newer-cbindgen.patch pmmx-double-format.patch ppc32-fix.patch - python3.11-open-U.patch - python3.11-regex-inline-flags.patch rust-32bit.patch shut-up-warning.patch + skia-endian.patch skia-unified.patch stackwalk-x86-ppc.patch - triplet-vendor-support.patch webrender.patch - gcc13.patch + without-jit.patch firefox.desktop firefox-safe.desktop @@ -97,12 +92,14 @@ prepare() { } build() { + export CFLAGS="$CFLAGS -Wno-dangling-pointer -Wno-array-bounds -Wno-comment -Wno-maybe-uninitialized -Wno-misleading-indentation" + export CXXFLAGS="$CFLAGS -Wno-class-memaccess -Wno-changes-meaning" export PATH="/usr/lib/llvm${_llvmver}/bin:${PATH}" #1230 export SHELL=/bin/sh export BUILD_OFFICIAL=1 export MOZILLA_OFFICIAL=1 export USE_SHORT_LIBNAME=1 - export MACH_USE_SYSTEM_PYTHON=1 + export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE=system # set rpath so linker finds the libs export LDFLAGS="$LDFLAGS -Wl,-rpath,${_mozappdir}" @@ -121,7 +118,7 @@ run() { } package() { - export MACH_USE_SYSTEM_PYTHON=1 + export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE=system DESTDIR="$pkgdir" ./mach install install -m755 -d ${pkgdir}/usr/share/applications @@ -157,27 +154,22 @@ package() { EOF } -sha512sums="38b4cc52de21e76d6061e6ba175e1cbfd888a16070aa951f5a44283f2db9d7e94f2504621f0da78feac6e71491a6d0e7038f63dd0ae112dcad700eb02e9aa516 firefox-91.13.0esr.source.tar.xz -86168a5e5b8aa3ea7cc0d40174baa97595c82b8e599937155fbd7761e7df7220980c74f75e96c34e5f660423e42ad67761f57b2923389be363253868bac033a9 mozconfig -ace7492f4fb0523c7340fdc09c831906f74fddad93822aff367135538dacd3f56288b907f5a04f53f94c76e722ba0bab73e28d83ec12d3e672554712e6b08613 bad-google-code.patch -57410e4b9199f3c7db1cd4a0cf3e67cd962b585730c073edb1cadc3bcac5b0aec4e6f7efe24f3eadd1020aefef475e08e97f13dc6b6534e639f33cc6fb1abe04 BTS-1074.patch -33c6c9d845981137e41e396463c09a55c4effe56628f9f7a4e13b7328e4591b97bc607df484393994a9da07d701f2eaee4e30b463284159e4206e1c42a1a4cdc disable-arm-flac.patch -c0b2bf43206c2a5154e560ef30189a1062ae856861b39f52ce69002390ff9972d43e387bfd2bf8d2ab3cac621987bc042c8c0a8b4cf90ae05717ca7705271880 fix-mutex-build.patch -70863b985427b9653ce5e28d6064f078fb6d4ccf43dd1b68e72f97f44868fc0ce063161c39a4e77a0a1a207b7365d5dc7a7ca5e68c726825eba814f2b93e2f5d fix-seccomp-bpf.patch -6eb7fb134760f5d232710c56f18f14de4f533e41e269531edd01f5650f6d641513e34a8d2294af5ad6fd184736f674c734efb4cc003636a75e14a8fdba2fe3b0 gcc89074.patch -240d6c9290a20e2c9ccfa2d15c9a636fc1b09b62f09285eb688974d888390da2a84271f14c397570b58ccdcf29b99370f7183cc0dbbbe581bf6e7d7ee8dcabd2 jpeg-link.patch -e61664bc93eadce5016a06a4d0684b34a05074f1815e88ef2613380d7b369c6fd305fb34f83b5eb18b9e3138273ea8ddcfdcb1084fdcaa922a1e5b30146a3b18 mozilla-build-arm.patch -eb158bf2e4b9d513ae36f3c977a3b110ea8c4801c3c94841bc3ad4cdca3bdfc96d4a662e5a2e662fe7a01b0f1af097280097b16f5d0e83d29b4a7e6cbb8c7396 newer-cbindgen.patch -573b90c73512d2b9971e466b138ffeea94b28f9a20e11e75ee1121e3f6a14fb4bf1a30622da6d48f67e5ea0bc58b200ba5fc3e930bae52f83b2f25f6c10806dd pmmx-double-format.patch +sha512sums="8055a7f83acf0cab6124ba5809aff1c082e81a0d30ff318ec719f8fd3f4af9aa60e2094c1abd6c981193d751075a9569370176e20e50f3c1959fe27a15511388 firefox-128.1.0esr.source.tar.xz +aaeec88eda3ca5ef00503f2e1656f8a143017d5ff60bd289ce7a49b7f8352ce5b61556c732e5eb3b6859e1c30551219eb5bbb954e9b88eca8d3f44683bdd747d mozconfig +1fff71be77aa34791ef8aa972b5dc5f131d79f4b895ebbfb59bc223078764d6f79c82a3a4e4c717a3893ecbe4907d556f27e97d2692e41f02365f06da759a71a bad-google-code.patch +5e6c3fa027052cc43ba161cf5c12016b07723e7c0b002a42431bbd5d716d512d5245ab6befbb56c37c7d244441533f810f4e7b583f83bbe965981931f1435a94 fix-mutex-build.patch +9f2892eff9d09f3eed1f9a9ee98ba9c6a6826c30ccdeabfefb8733abc98e7b612418827262423568e830c6354a2b8242f471bc200b7079f21862bb00947da716 fix-seccomp-bpf.patch +0a84e8cb6604fdb7601745b60c04ee74733632ada32bfd85eb32db8fee095cfb79c82033e5e3cf3bbc7b7f4df753e86ffe18e26e63a6603a93c3bb5a459aabd3 icu-75.patch +a2400c8df888637d9ebe33d82dc2fb95792685c9938b5486230a5c15bc819cbb850a2bdcb54a775516652fc8ffd6b40f8c591ab7941211f9516064101380ebbf jpeg-link.patch +9f5730ee3a29b86786089abcfffab32bf2210f1a1ec43260ae824a08acda687dbfa37306b82a4978dd022bcf747eab155f7f3c5f73a1375f1c3c4fcd106dae3e mozilla-build-arm.patch +1864c6c63c647f3ed1b3ca4df7f52a2c7ec4c65f2e067a9842d24a242f01e047d59ffbf88ad3740d830df1eb0bade929e245e640db135fe14f4c0d879269cb7e pmmx-double-format.patch 06a3f4ee6d3726adf3460952fcbaaf24bb15ef8d15b3357fdd1766c7a62b00bd53a1e943b5df7f4e1a69f4fae0d44b64fae1e027d7812499c77894975969ea10 ppc32-fix.patch -07c311921e50fdb86c587000418306292548117f32a69b78db9d8ebd3a1b08196774a3d284b7e2898a2f1fbb9987b2367092f33957824514fd3d7c7b618a83e2 python3.11-open-U.patch -c9c5610b99e73a1eedd3510e73921cba84f8c6d0c58fc7fe5b4a7ec261bd5fe530560856fba46d6b37f84c6e467d5b43946968dc8230b5491bba976b0b5ae33c python3.11-regex-inline-flags.patch -153f955169e1489d49867be90f68e8a4722cad8edb3a9d1ddb6161e34399e1b4e9e82dc8d72aaba1d5f585bca7c4852433e8ecb068be1583df7155c7cce0223b rust-32bit.patch -39ddb15d1453a8412275c36fc8db3befc69dffd4a362e932d280fb7fd1190db595a2af9b468ee49e0714f5e9df6e48eb5794122a64fa9f30d689de8693acbb15 shut-up-warning.patch -961fa1c856e97e4d08da4682f520ecf23075571a532a781c5e14dbec4915130b02a8199caf6602013ea904d347c4f06d086b0fe84a3850dd6910d351232da599 skia-unified.patch -452b47b825294779f98ed46bc1065dad76b79ff453521ef049934a120f349c84a1c863b16af1828fe053059823da9690ec917c055ae02dcc5c80c54cad732448 stackwalk-x86-ppc.patch -60ffc4b95ba72aa19fb4f4aaf91393e8c730dae536a19248e2dd21c38cc32891bff69a6b51ea903f185ecc680dae4b21ec11d8cac67b3b038b3f0e757639ad94 triplet-vendor-support.patch -b7c1ac21cd03b7cdc887e005ed970cf13ff95643c7651decf1e6d42094cda6a0464dc2ba3cded3827f6d0f3682c2c9b081a7667f386133aa6e3072d0464e72e8 webrender.patch -bb57b3ed998543f9a2edcc379a0c5e2d7e855a0d6f538547f18cdfce56f6c91a3c26a8b1505824628fdd394f0f75a8e98c7fb559ef79eac803d4028e5e9827e5 gcc13.patch +e1c8a85c46a9cc804eb6b5946d35b63fa2cfc7ad8b4f250c5eaf1b590b139a66d9a833246bc26ae2e340fffb81b6761cf51c600181895bd49feb9a3b8fbfe331 rust-32bit.patch +c2248297df00633771da7e6b9f2caba3dd5108d93617f652fa8b2fb4e6975821e5fee866c00713f8fce08e760fa456e2dd19a8ef7370e5a2c65dc09614526be9 shut-up-warning.patch +11f7ce86376b54281082fa5b9d3fefee8046eabe38a0ec17266764b4f62cb90f4744245c1ca93d73ed74cf81c066dab7ddcb3fe9704be8f91e0a2a4f664b203a skia-endian.patch +79c0ca37cbb6ebffe8d59d5955045cf2d8016c1f81d6cc8fceb1474849079b927c8163e9ca6ba4e88c27193e270aaba3ac76ea9dcf19c3be49322c6d049c903b skia-unified.patch +9df89366bd51670f534591e4c169186703ad3166a493f522e58f129fb79af375d71baaf0f6b238126792118a2d3ed0f011b010e39497ab5901ee5bea63a84fa2 stackwalk-x86-ppc.patch +ebdc82ee06a0b649631758d9bb5a2c082e9e04dab06a633a7f0c00fad0fb6751d4b768f7ce3fe57f15e08144f26d91fc33229a1db87cdc683b37e1d0485ce76a webrender.patch +ed78e15030d79b10026ebae26e44a68d16c2a8567082072b5099b0dde4f79ae217a21737e0d9c7ec6a3cc99de3ab3c9083cca7d82889d559bb18cc15fa7e6f2a without-jit.patch f3b7c3e804ce04731012a46cb9e9a6b0769e3772aef9c0a4a8c7520b030fdf6cd703d5e9ff49275f14b7d738fe82a0a4fde3bc3219dff7225d5db0e274987454 firefox.desktop 5dcb6288d0444a8a471d669bbaf61cdb1433663eff38b72ee5e980843f5fc07d0d60c91627a2c1159215d0ad77ae3f115dcc5fdfe87e64ca704b641aceaa44ed firefox-safe.desktop" diff --git a/user/firefox-esr/BTS-1074.patch b/user/firefox-esr/BTS-1074.patch deleted file mode 100644 index fdc5478b4..000000000 --- a/user/firefox-esr/BTS-1074.patch +++ /dev/null @@ -1,62 +0,0 @@ -gas(1) under binutils-2.41 no longer allows invalid negative shifts. - -This patch fixes the bundled FFmpeg in Firefox to not use them. - ---- a/media/ffvpx/libavcodec/x86/mathops.h.old 2023-10-03 22:15:24.440738743 -0500 -+++ b/media/ffvpx/libavcodec/x86/mathops.h 2023-10-03 22:15:41.458911245 -0500 -@@ -35,12 +35,20 @@ - static av_always_inline av_const int MULL(int a, int b, unsigned shift) - { - int rt, dummy; -+ if (__builtin_constant_p(shift)) - __asm__ ( - "imull %3 \n\t" - "shrdl %4, %%edx, %%eax \n\t" - :"=a"(rt), "=d"(dummy) -- :"a"(a), "rm"(b), "ci"((uint8_t)shift) -+ :"a"(a), "rm"(b), "i"(shift & 0x1F) - ); -+ else -+ __asm__ ( -+ "imull %3 \n\t" -+ "shrdl %4, %%edx, %%eax \n\t" -+ :"=a"(rt), "=d"(dummy) -+ :"a"(a), "rm"(b), "c"((uint8_t)shift) -+ ); - return rt; - } - -@@ -113,19 +121,31 @@ - // avoid +32 for shift optimization (gcc should do that ...) - #define NEG_SSR32 NEG_SSR32 - static inline int32_t NEG_SSR32( int32_t a, int8_t s){ -+ if (__builtin_constant_p(s)) - __asm__ ("sarl %1, %0\n\t" - : "+r" (a) -- : "ic" ((uint8_t)(-s)) -+ : "i" (-s & 0x1F) - ); -+ else -+ __asm__ ("sarl %1, %0\n\t" -+ : "+r" (a) -+ : "c" ((uint8_t)(-s)) -+ ); - return a; - } - - #define NEG_USR32 NEG_USR32 - static inline uint32_t NEG_USR32(uint32_t a, int8_t s){ -+ if (__builtin_constant_p(s)) - __asm__ ("shrl %1, %0\n\t" - : "+r" (a) -- : "ic" ((uint8_t)(-s)) -+ : "i" (-s & 0x1F) - ); -+ else -+ __asm__ ("shrl %1, %0\n\t" -+ : "+r" (a) -+ : "c" ((uint8_t)(-s)) -+ ); - return a; - } - diff --git a/user/firefox-esr/bad-google-code.patch b/user/firefox-esr/bad-google-code.patch index e214af432..31659370d 100644 --- a/user/firefox-esr/bad-google-code.patch +++ b/user/firefox-esr/bad-google-code.patch @@ -1,6 +1,6 @@ --- firefox-esr-60.2.1/toolkit/crashreporter/google-breakpad/src/common/linux/dump_symbols.cc +++ firefox-esr-60.2.1/toolkit/crashreporter/google-breakpad/src/common/linux/dump_symbols.cc -@@ -45,6 +45,7 @@ +@@ -47,6 +47,7 @@ #include <sys/mman.h> #include <sys/stat.h> #include <unistd.h> @@ -34,7 +34,7 @@ --- firefox-esr-60.2.1/toolkit/crashreporter/google-breakpad/src/third_party/lss/linux_syscall_support.h +++ firefox-esr-60.2.1/toolkit/crashreporter/google-breakpad/src/third_party/lss/linux_syscall_support.h -@@ -1134,6 +1134,12 @@ struct kernel_statfs { +@@ -1246,6 +1246,12 @@ struct kernel_statfs { #ifndef __NR_fallocate #define __NR_fallocate 285 #endif diff --git a/user/firefox-esr/disable-arm-flac.patch b/user/firefox-esr/disable-arm-flac.patch deleted file mode 100644 index fa1ba8753..000000000 --- a/user/firefox-esr/disable-arm-flac.patch +++ /dev/null @@ -1,15 +0,0 @@ -32-bit ARM assembler is mostly for Android32 accel anyway. - -It doesn't link properly on musl (TEXTRELs). - ---- firefox-91.13.0/toolkit/moz.configure.old 2023-10-09 10:40:18.231733637 +0000 -+++ firefox-91.13.0/toolkit/moz.configure 2023-10-10 02:22:34.743712070 +0000 -@@ -1894,7 +1894,7 @@ - flac_only = True - elif target.cpu == "x86_64": - flags = ["-D__x86_64__", "-DPIC", "-DELF", "-Pconfig_unix64.asm"] -- elif target.cpu in ("x86", "arm", "aarch64"): -+ elif target.cpu in ("x86", "aarch64"): - flac_only = True - else: - enable = False diff --git a/user/firefox-esr/fix-mutex-build.patch b/user/firefox-esr/fix-mutex-build.patch index a569e5aa7..1d1d0772b 100644 --- a/user/firefox-esr/fix-mutex-build.patch +++ b/user/firefox-esr/fix-mutex-build.patch @@ -1,18 +1,18 @@ --- firefox-60.3.0/memory/build/Mutex.h.old 2018-10-17 20:39:32.000000000 +0000 +++ firefox-60.3.0/memory/build/Mutex.h 2018-10-26 05:22:54.980000000 +0000 -@@ -39,7 +39,7 @@ +@@ -57,7 +57,7 @@ } #elif defined(XP_DARWIN) - mMutex = OS_SPINLOCK_INIT; + mMutex = OS_UNFAIR_LOCK_INIT; -#elif defined(XP_LINUX) && !defined(ANDROID) +#elif defined(XP_LINUX) && defined(__GLIBC__) pthread_mutexattr_t attr; if (pthread_mutexattr_init(&attr) != 0) { return false; -@@ -107,7 +107,7 @@ +@@ -142,7 +142,7 @@ # if defined(XP_DARWIN) - # define STATIC_MUTEX_INIT OS_SPINLOCK_INIT + # define STATIC_MUTEX_INIT OS_UNFAIR_LOCK_INIT -# elif defined(XP_LINUX) && !defined(ANDROID) +# elif defined(XP_LINUX) && defined(__GLIBC__) # define STATIC_MUTEX_INIT PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP diff --git a/user/firefox-esr/fix-seccomp-bpf.patch b/user/firefox-esr/fix-seccomp-bpf.patch index 47cde56c7..08068b5f5 100644 --- a/user/firefox-esr/fix-seccomp-bpf.patch +++ b/user/firefox-esr/fix-seccomp-bpf.patch @@ -1,8 +1,8 @@ --- a/security/sandbox/chromium/sandbox/linux/seccomp-bpf/trap.cc.orig 2015-09-23 09:10:08.812740571 +0200 +++ b/security/sandbox/chromium/sandbox/linux/seccomp-bpf/trap.cc 2015-09-23 09:11:38.404746155 +0200 -@@ -23,6 +23,11 @@ - #include "sandbox/linux/services/android_ucontext.h" - #endif +@@ -25,6 +25,11 @@ + #include "sandbox/linux/system_headers/linux_seccomp.h" + #include "sandbox/linux/system_headers/linux_signal.h" +// musl libc defines siginfo_t __si_fields instead of _sifields +#if defined(OS_LINUX) && !defined(__GLIBC__) diff --git a/user/firefox-esr/gcc13.patch b/user/firefox-esr/gcc13.patch deleted file mode 100644 index 1c4f085e0..000000000 --- a/user/firefox-esr/gcc13.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- firefox-91.13.0/gfx/2d/Rect.h.old 2022-08-15 13:04:38.000000000 -0500 -+++ firefox-91.13.0/gfx/2d/Rect.h 2024-05-28 20:50:50.230975904 -0500 -@@ -15,6 +15,7 @@ - #include "mozilla/Maybe.h" - - #include <cmath> -+#include <cstdint> - - namespace mozilla { - diff --git a/user/firefox-esr/gcc89074.patch b/user/firefox-esr/gcc89074.patch deleted file mode 100644 index e9713193c..000000000 --- a/user/firefox-esr/gcc89074.patch +++ /dev/null @@ -1,24 +0,0 @@ -Upstream-URL: https://bugzilla.mozilla.org/show_bug.cgi?id=1688122 -Upstream-URL: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89074 - -Valid code, but only used for debugging. GCC 12 fixed this. -Moz upstream not interested. - ---- firefox-91.13.0/dom/base/nsTreeSanitizer.cpp.old 2022-08-15 13:04:32.000000000 -0500 -+++ firefox-91.13.0/dom/base/nsTreeSanitizer.cpp 2022-11-19 00:42:15.892580023 -0600 -@@ -632,15 +632,6 @@ - constexpr const nsStaticAtom* const kURLAttributesSVG[] = {nsGkAtoms::href, - nullptr}; - --static_assert(AllOf(std::begin(kURLAttributesSVG), std::end(kURLAttributesSVG), -- [](auto aURLAttributeSVG) { -- return AnyOf(std::begin(kAttributesSVG), -- std::end(kAttributesSVG), -- [&](auto aAttributeSVG) { -- return aAttributeSVG == aURLAttributeSVG; -- }); -- })); -- - const nsStaticAtom* const kElementsMathML[] = { - nsGkAtoms::abs_, // abs - nsGkAtoms::_and, // and diff --git a/user/firefox-esr/icu-75.patch b/user/firefox-esr/icu-75.patch new file mode 100644 index 000000000..617dd76a9 --- /dev/null +++ b/user/firefox-esr/icu-75.patch @@ -0,0 +1,41 @@ +https://bugs.gentoo.org/917599 +https://bugzilla.mozilla.org/show_bug.cgi?id=1862601 +https://hg.mozilla.org/try/rev/d5f3b0c4f08a426ce00a153c04e177eecb6820e2 + +# HG changeset patch +# User André Bargull <andre.bargull@gmail.com> +# Date 1697435923 -7200 +# Node ID d5f3b0c4f08a426ce00a153c04e177eecb6820e2 +# Parent c63994f8259efdf6e745c960aa9e1409d5477049 +Bug xxx - Part 12: Add new line break classes. r? + +diff --git a/intl/lwbrk/LineBreaker.cpp b/intl/lwbrk/LineBreaker.cpp +--- a/intl/lwbrk/LineBreaker.cpp ++++ b/intl/lwbrk/LineBreaker.cpp +@@ -443,17 +443,23 @@ static int8_t GetClass(uint32_t u, LineB + /* JT = 34, [JT] */ CLASS_CHARACTER, + /* JV = 35, [JV] */ CLASS_CHARACTER, + /* CLOSE_PARENTHESIS = 36, [CP] */ CLASS_CLOSE_LIKE_CHARACTER, + /* CONDITIONAL_JAPANESE_STARTER = 37, [CJ] */ CLASS_CLOSE, + /* HEBREW_LETTER = 38, [HL] */ CLASS_CHARACTER, + /* REGIONAL_INDICATOR = 39, [RI] */ CLASS_CHARACTER, + /* E_BASE = 40, [EB] */ CLASS_BREAKABLE, + /* E_MODIFIER = 41, [EM] */ CLASS_CHARACTER, +- /* ZWJ = 42, [ZWJ]*/ CLASS_CHARACTER}; ++ /* ZWJ = 42, [ZWJ]*/ CLASS_CHARACTER, ++ /* AKSARA = 43, [AK] */ CLASS_CHARACTER, ++ /* AKSARA_PREBASE = 44, [AP] */ CLASS_CHARACTER, ++ /* AKSARA_START = 45, [AS] */ CLASS_CHARACTER, ++ /* VIRAMA_FINAL = 46, [VF] */ CLASS_CHARACTER, ++ /* VIRAMA = 47, [VI] */ CLASS_CHARACTER, ++ }; + + static_assert(U_LB_COUNT == mozilla::ArrayLength(sUnicodeLineBreakToClass), + "Gecko vs ICU LineBreak class mismatch"); + + auto cls = GetLineBreakClass(u); + MOZ_ASSERT(cls < mozilla::ArrayLength(sUnicodeLineBreakToClass)); + + // Overrides based on rules for the different line-break values given in + + diff --git a/user/firefox-esr/jpeg-link.patch b/user/firefox-esr/jpeg-link.patch index a04d924d4..724bc76fb 100644 --- a/user/firefox-esr/jpeg-link.patch +++ b/user/firefox-esr/jpeg-link.patch @@ -1,6 +1,6 @@ --- firefox-91.13.0/toolkit/moz.configure.old 2022-08-15 13:05:59.000000000 -0500 +++ firefox-91.13.0/toolkit/moz.configure 2022-11-15 01:26:57.874201494 -0600 -@@ -1758,14 +1758,14 @@ +@@ -2274,14 +2274,14 @@ ) with only_when("--with-system-jpeg"): diff --git a/user/firefox-esr/mozconfig b/user/firefox-esr/mozconfig index ed1f42dbb..b49d3be3f 100644 --- a/user/firefox-esr/mozconfig +++ b/user/firefox-esr/mozconfig @@ -23,3 +23,4 @@ ac_add_options --with-system-nss ac_add_options --with-system-pixman ac_add_options --with-system-png ac_add_options --with-system-zlib +ac_add_options --without-wasm-sandboxed-libraries diff --git a/user/firefox-esr/mozilla-build-arm.patch b/user/firefox-esr/mozilla-build-arm.patch index dcf2f6d8a..17c95d01d 100644 --- a/user/firefox-esr/mozilla-build-arm.patch +++ b/user/firefox-esr/mozilla-build-arm.patch @@ -1,10 +1,10 @@ --- ./gfx/ycbcr/moz.build.orig 2014-04-03 13:50:38.990296661 +0000 +++ ./gfx/ycbcr/moz.build 2014-04-03 13:52:26.878268547 +0000 -@@ -59,7 +59,7 @@ +@@ -53,7 +53,7 @@ 'yuv_row_other.cpp', ] --if CONFIG['CPU_ARCH'] == 'arm' and CONFIG['HAVE_ARM_NEON']: +-if CONFIG['TARGET_CPU'] == 'arm' and CONFIG['HAVE_ARM_NEON']: +if CONFIG['HAVE_ARM_NEON']: SOURCES += [ 'yuv_row_arm.s', diff --git a/user/firefox-esr/newer-cbindgen.patch b/user/firefox-esr/newer-cbindgen.patch deleted file mode 100644 index 9829237ee..000000000 --- a/user/firefox-esr/newer-cbindgen.patch +++ /dev/null @@ -1,17 +0,0 @@ -Description: Remove an extra constant definition that is now being - generated by newer versions of cbindgen (0.24), and causing - build failures because it is defined in several places. -Author: Olivier Tilloy <olivier.tilloy@canonical.com> -Upstream-URL: https://bugzilla.mozilla.org/show_bug.cgi?id=1773259 - ---- a/gfx/webrender_bindings/webrender_ffi.h -+++ b/gfx/webrender_bindings/webrender_ffi.h -@@ -77,8 +77,6 @@ struct WrPipelineInfo; - struct WrPipelineIdAndEpoch; - using WrPipelineIdEpochs = nsTArray<WrPipelineIdAndEpoch>; - --const uint64_t ROOT_CLIP_CHAIN = ~0; -- - } // namespace wr - } // namespace mozilla - diff --git a/user/firefox-esr/pmmx-double-format.patch b/user/firefox-esr/pmmx-double-format.patch index 4b2289fab..e520987b3 100644 --- a/user/firefox-esr/pmmx-double-format.patch +++ b/user/firefox-esr/pmmx-double-format.patch @@ -12,5 +12,5 @@ index 51d79f9c2ec59..fafd7d6fc1e0d 100644 typedef double __double_t; +#endif typedef __double_t double_t; + typedef float __float_t; - /* diff --git a/user/firefox-esr/python3.11-open-U.patch b/user/firefox-esr/python3.11-open-U.patch deleted file mode 100644 index 8cbab9c0a..000000000 --- a/user/firefox-esr/python3.11-open-U.patch +++ /dev/null @@ -1,102 +0,0 @@ ---- thunderbird-91.11.0/dom/base/usecounters.py.python-open-U 2022-06-28 04:37:00.000000000 +0200 -+++ thunderbird-91.11.0/dom/base/usecounters.py 2022-07-11 19:17:46.266517761 +0200 -@@ -8,7 +8,7 @@ import re - - def read_conf(conf_filename): - # Can't read/write from a single StringIO, so make a new one for reading. -- stream = open(conf_filename, "rU") -+ stream = open(conf_filename, "r") - - def parse_counters(stream): - for line_num, line in enumerate(stream): ---- thunderbird-91.11.0/python/mozbuild/mozbuild/action/process_define_files.py.python-open-U 2022-06-28 04:37:39.000000000 +0200 -+++ thunderbird-91.11.0/python/mozbuild/mozbuild/action/process_define_files.py 2022-07-11 19:18:24.056417112 +0200 -@@ -36,7 +36,7 @@ def process_define_file(output, input): - ) and not config.substs.get("JS_STANDALONE"): - config = PartialConfigEnvironment(mozpath.join(topobjdir, "js", "src")) - -- with open(path, "rU") as input: -+ with open(path, "r") as input: - r = re.compile( - "^\s*#\s*(?P<cmd>[a-z]+)(?:\s+(?P<name>\S+)(?:\s+(?P<value>\S+))?)?", re.U - ) ---- thunderbird-91.11.0/python/mozbuild/mozbuild/backend/base.py.python-open-U 2022-06-28 04:37:39.000000000 +0200 -+++ thunderbird-91.11.0/python/mozbuild/mozbuild/backend/base.py 2022-07-11 19:18:34.165390187 +0200 -@@ -272,7 +272,7 @@ class BuildBackend(LoggingMixin): - return status - - @contextmanager -- def _write_file(self, path=None, fh=None, readmode="rU"): -+ def _write_file(self, path=None, fh=None, readmode="r"): - """Context manager to write a file. - - This is a glorified wrapper around FileAvoidWrite with integration to ---- thunderbird-91.11.0/python/mozbuild/mozbuild/preprocessor.py.python-open-U 2022-06-28 04:37:20.000000000 +0200 -+++ thunderbird-91.11.0/python/mozbuild/mozbuild/preprocessor.py 2022-07-11 19:19:30.677239685 +0200 -@@ -531,7 +531,7 @@ class Preprocessor: - - if args: - for f in args: -- with io.open(f, "rU", encoding="utf-8") as input: -+ with io.open(f, "r", encoding="utf-8") as input: - self.processFile(input=input, output=out) - if depfile: - mk = Makefile() -@@ -860,7 +860,7 @@ class Preprocessor: - args = self.applyFilters(args) - if not os.path.isabs(args): - args = os.path.join(self.curdir, args) -- args = io.open(args, "rU", encoding="utf-8") -+ args = io.open(args, "r", encoding="utf-8") - except Preprocessor.Error: - raise - except Exception: -@@ -914,7 +914,7 @@ class Preprocessor: - def preprocess(includes=[sys.stdin], defines={}, output=sys.stdout, marker="#"): - pp = Preprocessor(defines=defines, marker=marker) - for f in includes: -- with io.open(f, "rU", encoding="utf-8") as input: -+ with io.open(f, "r", encoding="utf-8") as input: - pp.processFile(input=input, output=output) - return pp.includes - ---- thunderbird-91.11.0/python/mozbuild/mozbuild/util.py.python-open-U 2022-06-28 04:37:40.000000000 +0200 -+++ thunderbird-91.11.0/python/mozbuild/mozbuild/util.py 2022-07-11 19:19:19.903268374 +0200 -@@ -225,7 +225,7 @@ class FileAvoidWrite(BytesIO): - still occur, as well as diff capture if requested. - """ - -- def __init__(self, filename, capture_diff=False, dry_run=False, readmode="rU"): -+ def __init__(self, filename, capture_diff=False, dry_run=False, readmode="r"): - BytesIO.__init__(self) - self.name = filename - assert type(capture_diff) == bool -@@ -1447,7 +1447,7 @@ def patch_main(): - - def my_get_command_line(): - with open( -- os.path.join(os.path.dirname(__file__), "fork_interpose.py"), "rU" -+ os.path.join(os.path.dirname(__file__), "fork_interpose.py"), "r" - ) as fork_file: - fork_code = fork_file.read() - # Add our relevant globals. ---- thunderbird-91.11.0/python/mozbuild/mozpack/files.py.python-open-U 2022-06-28 04:37:40.000000000 +0200 -+++ thunderbird-91.11.0/python/mozbuild/mozpack/files.py 2022-07-11 19:19:40.372213866 +0200 -@@ -574,7 +574,7 @@ class PreprocessedFile(BaseFile): - pp = Preprocessor(defines=self.defines, marker=self.marker) - pp.setSilenceDirectiveWarnings(self.silence_missing_directive_warnings) - -- with _open(self.path, "rU") as input: -+ with _open(self.path, "r") as input: - with _open(os.devnull, "w") as output: - pp.processFile(input=input, output=output) - -@@ -631,7 +631,7 @@ class PreprocessedFile(BaseFile): - pp = Preprocessor(defines=self.defines, marker=self.marker) - pp.setSilenceDirectiveWarnings(self.silence_missing_directive_warnings) - -- with _open(self.path, "rU") as input: -+ with _open(self.path, "r") as input: - pp.processFile(input=input, output=dest, depfile=deps_out) - - dest.close() diff --git a/user/firefox-esr/python3.11-regex-inline-flags.patch b/user/firefox-esr/python3.11-regex-inline-flags.patch deleted file mode 100644 index 39481ec01..000000000 --- a/user/firefox-esr/python3.11-regex-inline-flags.patch +++ /dev/null @@ -1,27 +0,0 @@ ---- thunderbird-91.11.0/xpcom/idl-parser/xpidl/xpidl.py.python-inline-flags 2022-06-28 04:39:56.000000000 +0200 -+++ thunderbird-91.11.0/xpcom/idl-parser/xpidl/xpidl.py 2022-07-11 21:55:05.287553042 +0200 -@@ -1563,13 +1563,13 @@ class IDLParser(object): - t_ignore = " \t" - - def t_multilinecomment(self, t): -- r"/\*(?s).*?\*/" -+ r"/\*(?s:.*?)\*/" - t.lexer.lineno += t.value.count("\n") - if t.value.startswith("/**"): - self._doccomments.append(t.value) - - def t_singlelinecomment(self, t): -- r"(?m)//.*?$" -+ r"(?m://.*?$)" - - def t_IID(self, t): - return t -@@ -1582,7 +1582,7 @@ class IDLParser(object): - return t - - def t_LCDATA(self, t): -- r"(?s)%\{[ ]*C\+\+[ ]*\n(?P<cdata>.*?\n?)%\}[ ]*(C\+\+)?" -+ r"(?s:%\{[ ]*C\+\+[ ]*\n(?P<cdata>.*?\n?)%\}[ ]*(C\+\+)?)" - t.type = "CDATA" - t.value = t.lexer.lexmatch.group("cdata") - t.lexer.lineno += t.value.count("\n") diff --git a/user/firefox-esr/rust-32bit.patch b/user/firefox-esr/rust-32bit.patch index cff36e90b..4829e44bf 100644 --- a/user/firefox-esr/rust-32bit.patch +++ b/user/firefox-esr/rust-32bit.patch @@ -1,32 +1,30 @@ ---- firefox-91.13.0/config/makefiles/rust.mk.old 2022-08-15 13:04:32.000000000 -0500 -+++ firefox-91.13.0/config/makefiles/rust.mk 2022-11-15 01:35:10.150096648 -0600 -@@ -64,19 +64,19 @@ +LTO kills the build on 32-bit architectures. + +--- firefox-128.0/config/makefiles/rust.mk.old 2024-07-04 11:20:25.000000000 -0500 ++++ firefox-128.0/config/makefiles/rust.mk 2024-08-04 03:20:25.375459833 -0500 +@@ -82,25 +82,6 @@ # These flags are passed via `cargo rustc` and only apply to the final rustc # invocation (i.e., only the top-level crate, not its dependencies). cargo_rustc_flags = $(CARGO_RUSTCFLAGS) -ifndef DEVELOPER_OPTIONS -ifndef MOZ_DEBUG_RUST -+#ifndef DEVELOPER_OPTIONS -+#ifndef MOZ_DEBUG_RUST - # Enable link-time optimization for release builds, but not when linking - # gkrust_gtest. And not when doing cross-language LTO. +-# Enable link-time optimization for release builds, but not when linking +-# gkrust_gtest. And not when doing cross-language LTO. -ifndef MOZ_LTO_RUST_CROSS +-# Never enable when sancov is enabled to work around https://github.com/rust-lang/rust/issues/90300. +-ifndef rustflags_sancov +-# Never enable when coverage is enabled to work around https://github.com/rust-lang/rust/issues/90045. +-ifndef MOZ_CODE_COVERAGE -ifeq (,$(findstring gkrust_gtest,$(RUST_LIBRARY_FILE))) --cargo_rustc_flags += -Clto +-cargo_rustc_flags += -Clto$(if $(filter full,$(MOZ_LTO_RUST_CROSS)),=fat) -endif -+#ifndef MOZ_LTO_RUST_CROSS -+#ifeq (,$(findstring gkrust_gtest,$(RUST_LIBRARY_FILE))) -+#cargo_rustc_flags += -Clto -+#endif - # We need -Cembed-bitcode=yes for all crates when using -Clto. +-# We need -Cembed-bitcode=yes for all crates when using -Clto. -RUSTFLAGS += -Cembed-bitcode=yes -endif -endif -endif -+#RUSTFLAGS += -Cembed-bitcode=yes -+#endif -+#endif -+#endif +-endif +-endif ifdef CARGO_INCREMENTAL export CARGO_INCREMENTAL diff --git a/user/firefox-esr/shut-up-warning.patch b/user/firefox-esr/shut-up-warning.patch index 8df045af1..bc90b6e2b 100644 --- a/user/firefox-esr/shut-up-warning.patch +++ b/user/firefox-esr/shut-up-warning.patch @@ -1,6 +1,6 @@ --- firefox-68.0.1/gfx/2d/HelpersCairo.h.old 2019-07-17 20:51:26.000000000 +0000 +++ firefox-68.0.1/gfx/2d/HelpersCairo.h 2019-08-10 11:38:36.047380153 +0000 -@@ -147,7 +147,7 @@ +@@ -149,7 +149,7 @@ case SurfaceFormat::R5G6B5_UINT16: return CAIRO_FORMAT_RGB16_565; default: diff --git a/user/firefox-esr/skia-endian.patch b/user/firefox-esr/skia-endian.patch new file mode 100644 index 000000000..7a88b0869 --- /dev/null +++ b/user/firefox-esr/skia-endian.patch @@ -0,0 +1,112 @@ +https://bugzilla.mozilla.org/show_bug.cgi?id=1888396 + +--- firefox-128.0/gfx/skia/skia/include/private/SkColorData.h ++++ firefox-128.0/gfx/skia/skia/include/private/SkColorData.h +@@ -12,6 +12,13 @@ #include "include/core/SkColor.h" + #include "include/core/SkColorPriv.h" + #include "include/private/base/SkTo.h" + ++/* Macro to covert between big endian and little endian memory order. */ ++#ifdef SK_CPU_BENDIAN ++#define BE_CONVERT(c) ((((c) & 0xff)<<24) | (((c) & 0xff00)<<8) | (((c) & 0xff0000)>>8) | (((c) & 0xff000000)>>24)) ++#else ++#define BE_CONVERT(c) c ++#endif ++ + //////////////////////////////////////////////////////////////////////////////////////////// + // Convert a 16bit pixel to a 32bit pixel + +--- firefox-128.0/gfx/skia/skia/src/core/SkBlitRow_D32.cpp ++++ firefox-128.0/gfx/skia/skia/src/core/SkBlitRow_D32.cpp +@@ -555,7 +555,7 @@ } + void SkBlitRow::Color32(SkPMColor dst[], int count, SkPMColor color) { + switch (SkGetPackedA32(color)) { + case 0: /* Nothing to do */ return; +- case 255: SkOpts::memset32(dst, color, count); return; ++ case 255: SkOpts::memset32(dst, BE_CONVERT(color), count); return; + } +- return SkOpts::blit_row_color32(dst, count, color); ++ return SkOpts::blit_row_color32(dst, count, BE_CONVERT(color)); + } +--- firefox-128.0/gfx/skia/skia/src/core/SkBlitter_ARGB32.cpp ++++ firefox-128.0/gfx/skia/skia/src/core/SkBlitter_ARGB32.cpp +@@ -1487,7 +1487,7 @@ } + unsigned aa = antialias[0]; + if (aa) { + if ((opaqueMask & aa) == 255) { +- SkOpts::memset32(device, color, count); ++ SkOpts::memset32(device, BE_CONVERT(color), count); + } else { + uint32_t sc = SkAlphaMulQ(color, SkAlpha255To256(aa)); + SkBlitRow::Color32(device, count, sc); +@@ -1503,17 +1503,17 @@ void SkARGB32_Blitter::blitAntiH2(int x, + uint32_t* device = fDevice.writable_addr32(x, y); + SkDEBUGCODE((void)fDevice.writable_addr32(x + 1, y);) + +- device[0] = SkBlendARGB32(fPMColor, device[0], a0); +- device[1] = SkBlendARGB32(fPMColor, device[1], a1); ++ device[0] = BE_CONVERT(SkBlendARGB32(fPMColor, BE_CONVERT(device[0]), a0)); ++ device[1] = BE_CONVERT(SkBlendARGB32(fPMColor, BE_CONVERT(device[1]), a1)); + } + + void SkARGB32_Blitter::blitAntiV2(int x, int y, U8CPU a0, U8CPU a1) { + uint32_t* device = fDevice.writable_addr32(x, y); + SkDEBUGCODE((void)fDevice.writable_addr32(x, y + 1);) + +- device[0] = SkBlendARGB32(fPMColor, device[0], a0); ++ device[0] = BE_CONVERT(SkBlendARGB32(fPMColor, BE_CONVERT(device[0]), a0)); + device = (uint32_t*)((char*)device + fDevice.rowBytes()); +- device[0] = SkBlendARGB32(fPMColor, device[0], a1); ++ device[0] = BE_CONVERT(SkBlendARGB32(fPMColor, BE_CONVERT(device[0]), a1)); + } + + ////////////////////////////////////////////////////////////////////////////////////// +@@ -1604,17 +1604,17 @@ void SkARGB32_Opaque_Blitter::blitAntiH2 + uint32_t* device = fDevice.writable_addr32(x, y); + SkDEBUGCODE((void)fDevice.writable_addr32(x + 1, y);) + +- device[0] = SkFastFourByteInterp(fPMColor, device[0], a0); +- device[1] = SkFastFourByteInterp(fPMColor, device[1], a1); ++ device[0] = BE_CONVERT(SkFastFourByteInterp(fPMColor, BE_CONVERT(device[0]), a0)); ++ device[1] = BE_CONVERT(SkFastFourByteInterp(fPMColor, BE_CONVERT(device[1]), a1)); + } + + void SkARGB32_Opaque_Blitter::blitAntiV2(int x, int y, U8CPU a0, U8CPU a1) { + uint32_t* device = fDevice.writable_addr32(x, y); + SkDEBUGCODE((void)fDevice.writable_addr32(x, y + 1);) + +- device[0] = SkFastFourByteInterp(fPMColor, device[0], a0); ++ device[0] = BE_CONVERT(SkFastFourByteInterp(fPMColor, BE_CONVERT(device[0]), a0)); + device = (uint32_t*)((char*)device + fDevice.rowBytes()); +- device[0] = SkFastFourByteInterp(fPMColor, device[0], a1); ++ device[0] = BE_CONVERT(SkFastFourByteInterp(fPMColor, BE_CONVERT(device[0]), a1)); + } + + /////////////////////////////////////////////////////////////////////////////// +@@ -1634,7 +1634,7 @@ } + unsigned dst_scale = SkAlpha255To256(255 - SkGetPackedA32(color)); + size_t rowBytes = fDevice.rowBytes(); + while (--height >= 0) { +- device[0] = color + SkAlphaMulQ(device[0], dst_scale); ++ device[0] = BE_CONVERT(color + SkAlphaMulQ(BE_CONVERT(device[0]), dst_scale)); + device = (uint32_t*)((char*)device + rowBytes); + } + } +@@ -1651,7 +1651,7 @@ uint32_t color = fPMColor; + size_t rowBytes = fDevice.rowBytes(); + + if (SkGetPackedA32(fPMColor) == 0xFF) { +- SkOpts::rect_memset32(device, color, width, rowBytes, height); ++ SkOpts::rect_memset32(device, BE_CONVERT(color), width, rowBytes, height); + } else { + while (height --> 0) { + SkBlitRow::Color32(device, width, color); +@@ -1680,7 +1680,7 @@ } + unsigned aa = antialias[0]; + if (aa) { + if (aa == 255) { +- SkOpts::memset32(device, black, count); ++ SkOpts::memset32(device, BE_CONVERT(black), count); + } else { + SkPMColor src = aa << SK_A32_SHIFT; + unsigned dst_scale = 256 - aa; diff --git a/user/firefox-esr/skia-unified.patch b/user/firefox-esr/skia-unified.patch index 77bc56299..ad0f6d42b 100644 --- a/user/firefox-esr/skia-unified.patch +++ b/user/firefox-esr/skia-unified.patch @@ -1,34 +1,10 @@ -https://bugzilla.mozilla.org/show_bug.cgi?id=1344659 - ---- firefox-102.1.0/gfx/2d/Types.h -+++ firefox-102.1.0/gfx/2d/Types.h -@@ -91,15 +91,8 @@ 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. --#if MOZ_LITTLE_ENDIAN() - 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. - // - - -https://bugzilla.mozilla.org/show_bug.cgi?id=1325259 - --- firefox-102.1.0/gfx/2d/DrawTargetSkia.cpp +++ firefox-102.1.0/gfx/2d/DrawTargetSkia.cpp -@@ -154,8 +154,12 @@ } +@@ -155,8 +155,12 @@ } return surfaceBounds.Intersect(bounds); } -+#if __sparc ++#if MOZ_BIG_ENDIAN() +static const int kARGBAlphaOffset = 0; +#else static const int kARGBAlphaOffset = @@ -52,11 +28,11 @@ 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 @@ +@@ -2011,6 +2011,14 @@ SkCanvas::kPreserveLCDText_SaveLayerFlag | (aCopyBackground ? SkCanvas::kInitWithPrevious_SaveLayerFlag : 0)); -+#if MOZ_BIG_ENDIAN ++#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. diff --git a/user/firefox-esr/stackwalk-x86-ppc.patch b/user/firefox-esr/stackwalk-x86-ppc.patch index eed7a0956..df9ebfd94 100644 --- a/user/firefox-esr/stackwalk-x86-ppc.patch +++ b/user/firefox-esr/stackwalk-x86-ppc.patch @@ -1,16 +1,16 @@ --- thunderbird-52.6.0/mozglue/misc/StackWalk.cpp +++ thunderbird-52.6.0/mozglue/misc/StackWalk.cpp -@@ -41,13 +41,7 @@ static CriticalAddress gCriticalAddress; - #define MOZ_STACKWALK_SUPPORTS_MACOSX 0 +@@ -50,13 +50,6 @@ static CriticalAddress gCriticalAddress; + # define HAVE___LIBC_STACK_END 0 #endif -#if (defined(linux) && \ - ((defined(__GNUC__) && (defined(__i386) || defined(PPC))) || \ -- defined(HAVE__UNWIND_BACKTRACE))) +- defined(HAVE__UNWIND_BACKTRACE)) && \ +- (HAVE___LIBC_STACK_END || ANDROID)) -# define MOZ_STACKWALK_SUPPORTS_LINUX 1 -#else # define MOZ_STACKWALK_SUPPORTS_LINUX 0 -#endif - - #if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) - #define HAVE___LIBC_STACK_END 1 + + #if HAVE___LIBC_STACK_END diff --git a/user/firefox-esr/triplet-vendor-support.patch b/user/firefox-esr/triplet-vendor-support.patch deleted file mode 100644 index d0ca17e81..000000000 --- a/user/firefox-esr/triplet-vendor-support.patch +++ /dev/null @@ -1,316 +0,0 @@ -Squashed version of https://github.com/bytecodealliance/target-lexicon/pull/35 - -diff -Naur firefox-91.13.0/third_party/rust/target-lexicon-0.9.0_orig/build.rs firefox-91.13.0/third_party/rust/target-lexicon-0.9.0/build.rs ---- firefox-91.13.0/third_party/rust/target-lexicon-0.9.0_orig/build.rs 2022-08-15 13:05:59.000000000 -0500 -+++ firefox-91.13.0/third_party/rust/target-lexicon-0.9.0/build.rs 2022-11-23 00:35:04.697192794 -0600 -@@ -32,6 +32,7 @@ - } - } - -+use self::targets::Vendor; - use self::triple::Triple; - - fn main() { -@@ -52,6 +53,8 @@ - writeln!(out, "use crate::Aarch64Architecture::*;")?; - writeln!(out, "#[allow(unused_imports)]")?; - writeln!(out, "use crate::ArmArchitecture::*;")?; -+ writeln!(out, "#[allow(unused_imports)]")?; -+ writeln!(out, "use crate::CustomVendor;")?; - writeln!(out)?; - writeln!(out, "/// The `Triple` of the current host.")?; - writeln!(out, "pub const HOST: Triple = Triple {{")?; -@@ -60,7 +63,7 @@ - " architecture: Architecture::{:?},", - triple.architecture - )?; -- writeln!(out, " vendor: Vendor::{:?},", triple.vendor)?; -+ writeln!(out, " vendor: {},", vendor_display(&triple.vendor))?; - writeln!( - out, - " operating_system: OperatingSystem::{:?},", -@@ -90,7 +93,7 @@ - writeln!(out, "impl Vendor {{")?; - writeln!(out, " /// Return the vendor for the current host.")?; - writeln!(out, " pub const fn host() -> Self {{")?; -- writeln!(out, " Vendor::{:?}", triple.vendor)?; -+ writeln!(out, " {}", vendor_display(&triple.vendor))?; - writeln!(out, " }}")?; - writeln!(out, "}}")?; - writeln!(out)?; -@@ -138,7 +141,11 @@ - " architecture: Architecture::{:?},", - triple.architecture - )?; -- writeln!(out, " vendor: Vendor::{:?},", triple.vendor)?; -+ writeln!( -+ out, -+ " vendor: {},", -+ vendor_display(&triple.vendor) -+ )?; - writeln!( - out, - " operating_system: OperatingSystem::{:?},", -@@ -160,3 +167,13 @@ - - Ok(()) - } -+ -+fn vendor_display(vendor: &Vendor) -> String { -+ match vendor { -+ Vendor::Custom(custom) => format!( -+ "Vendor::Custom(CustomVendor::Static({:?}))", -+ custom.as_str() -+ ), -+ known => format!("Vendor::{:?}", known), -+ } -+} -diff -Naur firefox-91.13.0/third_party/rust/target-lexicon-0.9.0_orig/src/lib.rs firefox-91.13.0/third_party/rust/target-lexicon-0.9.0/src/lib.rs ---- firefox-91.13.0/third_party/rust/target-lexicon-0.9.0_orig/src/lib.rs 2022-08-15 13:05:37.000000000 -0500 -+++ firefox-91.13.0/third_party/rust/target-lexicon-0.9.0/src/lib.rs 2022-11-23 00:35:04.697192794 -0600 -@@ -28,7 +28,7 @@ - pub use self::host::HOST; - pub use self::parse_error::ParseError; - pub use self::targets::{ -- Aarch64Architecture, Architecture, ArmArchitecture, BinaryFormat, Environment, OperatingSystem, -- Vendor, -+ Aarch64Architecture, Architecture, ArmArchitecture, BinaryFormat, CustomVendor, Environment, -+ OperatingSystem, Vendor, - }; - pub use self::triple::{CallingConvention, Endianness, PointerWidth, Triple}; -diff -Naur firefox-91.13.0/third_party/rust/target-lexicon-0.9.0_orig/src/targets.rs firefox-91.13.0/third_party/rust/target-lexicon-0.9.0/src/targets.rs ---- firefox-91.13.0/third_party/rust/target-lexicon-0.9.0_orig/src/targets.rs 2022-08-15 13:05:42.000000000 -0500 -+++ firefox-91.13.0/third_party/rust/target-lexicon-0.9.0/src/targets.rs 2022-11-23 00:35:04.697192794 -0600 -@@ -1,7 +1,10 @@ - // This file defines all the identifier enums and target-aware logic. - - use crate::triple::{Endianness, PointerWidth, Triple}; -+use alloc::boxed::Box; -+use alloc::string::String; - use core::fmt; -+use core::hash::{Hash, Hasher}; - use core::str::FromStr; - - /// The "architecture" field, which in some cases also specifies a specific -@@ -290,9 +293,42 @@ - } - } - -+/// A string for a `Vendor::Custom` that can either be used in `const` -+/// contexts or hold dynamic strings. -+#[derive(Clone, Debug, Eq)] -+pub enum CustomVendor { -+ /// An owned `String`. This supports the general case. -+ Owned(Box<String>), -+ /// A static `str`, so that `CustomVendor` can be constructed in `const` -+ /// contexts. -+ Static(&'static str), -+} -+ -+impl CustomVendor { -+ /// Extracts a string slice. -+ pub fn as_str(&self) -> &str { -+ match self { -+ CustomVendor::Owned(s) => s, -+ CustomVendor::Static(s) => s, -+ } -+ } -+} -+ -+impl PartialEq for CustomVendor { -+ fn eq(&self, other: &Self) -> bool { -+ self.as_str() == other.as_str() -+ } -+} -+ -+impl Hash for CustomVendor { -+ fn hash<H: Hasher>(&self, state: &mut H) { -+ self.as_str().hash(state) -+ } -+} -+ - /// The "vendor" field, which in practice is little more than an arbitrary - /// modifier. --#[derive(Copy, Clone, Debug, PartialEq, Eq, Hash)] -+#[derive(Clone, Debug, PartialEq, Eq, Hash)] - #[allow(missing_docs)] - pub enum Vendor { - Unknown, -@@ -306,6 +342,15 @@ - Sun, - Uwp, - Wrs, -+ -+ /// A custom vendor. "Custom" in this context means that the vendor is -+ /// not specifically recognized by upstream Autotools, LLVM, Rust, or other -+ /// relevant authorities on triple naming. It's useful for people building -+ /// and using locally patched toolchains. -+ /// -+ /// Outside of such patched environments, users of `target-lexicon` should -+ /// treat `Custom` the same as `Unknown` and ignore the string. -+ Custom(CustomVendor), - } - - /// The "operating system" field, which sometimes implies an environment, and -@@ -717,6 +762,7 @@ - Vendor::Sun => "sun", - Vendor::Uwp => "uwp", - Vendor::Wrs => "wrs", -+ Vendor::Custom(ref name) => name.as_str(), - }; - f.write_str(s) - } -@@ -738,7 +784,43 @@ - "sun" => Vendor::Sun, - "uwp" => Vendor::Uwp, - "wrs" => Vendor::Wrs, -- _ => return Err(()), -+ custom => { -+ use alloc::borrow::ToOwned; -+ -+ // A custom vendor. Since triple syntax is so loosely defined, -+ // be as conservative as we can to avoid potential ambiguities. -+ // We err on the side of being too strict here, as we can -+ // always relax it if needed. -+ -+ // Don't allow empty string names. -+ if custom.is_empty() { -+ return Err(()); -+ } -+ -+ // Don't allow any other recognized name as a custom vendor, -+ // since vendors can be omitted in some contexts. -+ if Architecture::from_str(custom).is_ok() -+ || OperatingSystem::from_str(custom).is_ok() -+ || Environment::from_str(custom).is_ok() -+ || BinaryFormat::from_str(custom).is_ok() -+ { -+ return Err(()); -+ } -+ -+ // Require the first character to be an ascii lowercase. -+ if !custom.chars().nth(0).unwrap().is_ascii_lowercase() { -+ return Err(()); -+ } -+ -+ // Restrict the set of characters permitted in a custom vendor. -+ if custom.chars().any(|c: char| { -+ !(c.is_ascii_lowercase() || c.is_ascii_digit() || c == '_' || c == '.') -+ }) { -+ return Err(()); -+ } -+ -+ Vendor::Custom(CustomVendor::Owned(Box::new(custom.to_owned()))) -+ } - }) - } - } -@@ -1120,4 +1202,87 @@ - assert_eq!(t.environment, Environment::Eabihf); - assert_eq!(t.binary_format, BinaryFormat::Elf); - } -+ -+ #[test] -+ fn custom_vendors() { -+ // Test various invalid cases. -+ assert!(Triple::from_str("x86_64--linux").is_err()); -+ assert!(Triple::from_str("x86_64-42-linux").is_err()); -+ assert!(Triple::from_str("x86_64-__customvendor__-linux").is_err()); -+ assert!(Triple::from_str("x86_64-^-linux").is_err()); -+ assert!(Triple::from_str("x86_64- -linux").is_err()); -+ assert!(Triple::from_str("x86_64-CustomVendor-linux").is_err()); -+ assert!(Triple::from_str("x86_64-linux-linux").is_err()); -+ assert!(Triple::from_str("x86_64-x86_64-linux").is_err()); -+ assert!(Triple::from_str("x86_64-elf-linux").is_err()); -+ assert!(Triple::from_str("x86_64-gnu-linux").is_err()); -+ assert!(Triple::from_str("x86_64-linux-customvendor").is_err()); -+ assert!(Triple::from_str("customvendor").is_err()); -+ assert!(Triple::from_str("customvendor-x86_64").is_err()); -+ assert!(Triple::from_str("x86_64-").is_err()); -+ assert!(Triple::from_str("x86_64--").is_err()); -+ -+ // Test various Unicode things. -+ assert!( -+ Triple::from_str("x86_64-𝓬𝓾𝓼𝓽𝓸𝓶𝓿𝓮𝓷𝓭𝓸𝓻-linux").is_err(), -+ "unicode font hazard" -+ ); -+ assert!( -+ Triple::from_str("x86_64-ćúśtőḿvéńdőŕ-linux").is_err(), -+ "diacritical mark stripping hazard" -+ ); -+ assert!( -+ Triple::from_str("x86_64-customvendοr-linux").is_err(), -+ "homoglyph hazard" -+ ); -+ assert!(Triple::from_str("x86_64-customvendor-linux").is_ok()); -+ assert!( -+ Triple::from_str("x86_64-ffi-linux").is_err(), -+ "normalization hazard" -+ ); -+ assert!(Triple::from_str("x86_64-ffi-linux").is_ok()); -+ assert!( -+ Triple::from_str("x86_64-customvendor-linux").is_err(), -+ "zero-width character hazard" -+ ); -+ assert!( -+ Triple::from_str("x86_64-customvendor-linux").is_err(), -+ "BOM hazard" -+ ); -+ -+ // Test some valid cases. -+ let t = Triple::from_str("x86_64-customvendor-linux") -+ .expect("can't parse target with custom vendor"); -+ assert_eq!(t.architecture, Architecture::X86_64); -+ assert_eq!( -+ t.vendor, -+ Vendor::Custom(CustomVendor::Static("customvendor")) -+ ); -+ assert_eq!(t.operating_system, OperatingSystem::Linux); -+ assert_eq!(t.environment, Environment::Unknown); -+ assert_eq!(t.binary_format, BinaryFormat::Elf); -+ assert_eq!(t.to_string(), "x86_64-customvendor-linux"); -+ -+ let t = -+ Triple::from_str("x86_64-customvendor").expect("can't parse target with custom vendor"); -+ assert_eq!(t.architecture, Architecture::X86_64); -+ assert_eq!( -+ t.vendor, -+ Vendor::Custom(CustomVendor::Static("customvendor")) -+ ); -+ assert_eq!(t.operating_system, OperatingSystem::Unknown); -+ assert_eq!(t.environment, Environment::Unknown); -+ assert_eq!(t.binary_format, BinaryFormat::Unknown); -+ -+ assert_eq!( -+ Triple::from_str("unknown-foo"), -+ Ok(Triple { -+ architecture: Architecture::Unknown, -+ vendor: Vendor::Custom(CustomVendor::Static("foo")), -+ operating_system: OperatingSystem::Unknown, -+ environment: Environment::Unknown, -+ binary_format: BinaryFormat::Unknown, -+ }) -+ ); -+ } - } -diff -Naur firefox-91.13.0/third_party/rust/target-lexicon-0.9.0_orig/src/triple.rs firefox-91.13.0/third_party/rust/target-lexicon-0.9.0/src/triple.rs ---- firefox-91.13.0/third_party/rust/target-lexicon-0.9.0_orig/src/triple.rs 2022-08-15 13:05:59.000000000 -0500 -+++ firefox-91.13.0/third_party/rust/target-lexicon-0.9.0/src/triple.rs 2022-11-23 00:35:04.697192794 -0600 -@@ -323,10 +323,6 @@ - Err(ParseError::UnrecognizedArchitecture("foo".to_owned())) - ); - assert_eq!( -- Triple::from_str("unknown-foo"), -- Err(ParseError::UnrecognizedVendor("foo".to_owned())) -- ); -- assert_eq!( - Triple::from_str("unknown-unknown-foo"), - Err(ParseError::UnrecognizedOperatingSystem("foo".to_owned())) - ); -diff -Naur firefox-91.13.0/third_party/rust/target-lexicon-0.9.0_orig/.cargo-checksum.json firefox-91.13.0/third_party/rust/target-lexicon-0.9.0/.cargo-checksum.json ---- firefox-91.13.0/third_party/rust/target-lexicon-0.9.0_orig/.cargo-checksum.json 2022-08-15 13:05:38.000000000 -0500 -+++ firefox-91.13.0/third_party/rust/target-lexicon-0.9.0/.cargo-checksum.json 2022-11-23 01:16:14.304912521 -0600 -@@ -1 +1 @@ --{"files":{"Cargo.lock":"a1a162e6ce8fc2234a6ddf7090410006a1920ace8738772e32a5b50e4780c19d","Cargo.toml":"f3b545fa0f184fd0d3624e6e5c205fcbdf1ad0934a2e08406549ad53c2a62ac3","LICENSE":"268872b9816f90fd8e85db5a28d33f8150ebb8dd016653fb39ef1f94f2686bc5","README.md":"c3467056d91be3f59562158ee9604c729b5b5f473efbefb036032803eb76809e","build.rs":"723100e9cdc30cd8c48407233c2cffa10f5b10703a0a11bac1230d8b86e49ccf","examples/host.rs":"503bafddfb372123fe4dc0e7b8037808beb5bfe6df60c00d3315922bd3792c6c","examples/misc.rs":"49a579845450b7b020ed5c97dca142fc548725893cbc82f6f750ee0caab2beca","newlist":"89564342916321c5bc35e772d374a7f0af22cc9ae6dcc0027eca48d2269f18cb","src/host.rs":"fb543df4f362e9119a58523563e453110f4e3a426f0995911d0ca386657cf1d9","src/lib.rs":"4414353c30f25d44df6cc14f7f9eea9991222289c6aa662b74406f6923235970","src/parse_error.rs":"b3735eabc0fd0a9dfdd6375662f20ec96a79852a00a05a98fb2e421545285e53","src/targets.rs":"9ccc0849cff06d8906dacbdc15136cc47fab85ccd795033ddfdde1397dfcfe32","src/triple.rs":"949bd83b043b53b18f643ebc3fbebbfe02a13998b787fda432a5d36aa27d20bd","test.sh":"22e3c630a6c84e90d5c70c367a6712be8eeca1e7682c00d1f65bf53e330e9191"},"package":"6f4c118a7a38378f305a9e111fcb2f7f838c0be324bfb31a77ea04f7f6e684b4"} -\ No newline at end of file -+{"files":{"Cargo.lock":"a1a162e6ce8fc2234a6ddf7090410006a1920ace8738772e32a5b50e4780c19d","Cargo.toml":"f3b545fa0f184fd0d3624e6e5c205fcbdf1ad0934a2e08406549ad53c2a62ac3","LICENSE":"268872b9816f90fd8e85db5a28d33f8150ebb8dd016653fb39ef1f94f2686bc5","README.md":"c3467056d91be3f59562158ee9604c729b5b5f473efbefb036032803eb76809e","build.rs":"85d6a1b6392b56946f48c0ff1526736a37fe012951bf3855709da1d6cfb4baa0","examples/host.rs":"503bafddfb372123fe4dc0e7b8037808beb5bfe6df60c00d3315922bd3792c6c","examples/misc.rs":"49a579845450b7b020ed5c97dca142fc548725893cbc82f6f750ee0caab2beca","newlist":"89564342916321c5bc35e772d374a7f0af22cc9ae6dcc0027eca48d2269f18cb","src/host.rs":"fb543df4f362e9119a58523563e453110f4e3a426f0995911d0ca386657cf1d9","src/lib.rs":"89986c98b9a04e0f1e957e0127e23a53048a1f0d597493723c4bba031c2ca32d","src/parse_error.rs":"b3735eabc0fd0a9dfdd6375662f20ec96a79852a00a05a98fb2e421545285e53","src/targets.rs":"f2048f06e3e2151a8181d8c92651fa45e64b8bfdfd18ead4b6c18ee7c9fb9003","src/triple.rs":"4704266fec8763bc70d230aad3608bdb790b51e41149056daa2ce0d5fdaef5a3","test.sh":"22e3c630a6c84e90d5c70c367a6712be8eeca1e7682c00d1f65bf53e330e9191"},"package":"6f4c118a7a38378f305a9e111fcb2f7f838c0be324bfb31a77ea04f7f6e684b4"} diff --git a/user/firefox-esr/webrender.patch b/user/firefox-esr/webrender.patch index a2457e576..1c0d381ac 100644 --- a/user/firefox-esr/webrender.patch +++ b/user/firefox-esr/webrender.patch @@ -6,10 +6,9 @@ # Parent 20d81e68da033746bf81acbb08490f16679853da Bug 1716707 [s390x] Software WebRender does not support big endian -diff -r 20d81e68da03 -r 903e5f164c0e gfx/webrender_bindings/RenderCompositorSWGL.cpp ---- a/gfx/webrender_bindings/RenderCompositorSWGL.cpp Thu Mar 24 06:57:58 2022 +0000 -+++ b/gfx/webrender_bindings/RenderCompositorSWGL.cpp Thu Mar 24 02:36:16 2022 -0700 -@@ -7,6 +7,7 @@ +--- firefox-128.0/gfx/webrender_bindings/RenderCompositorSWGL.cpp ++++ firefox-128.0/gfx/webrender_bindings/RenderCompositorSWGL.cpp +@@ -7,6 +7,7 @@ * file, You can obtain one at http://moz #include "RenderCompositorSWGL.h" #include "mozilla/gfx/Logging.h" @@ -17,24 +16,27 @@ diff -r 20d81e68da03 -r 903e5f164c0e gfx/webrender_bindings/RenderCompositorSWGL #include "mozilla/widget/CompositorWidget.h" #ifdef MOZ_WIDGET_GTK -@@ -235,6 +237,13 @@ +@@ -242,6 +243,17 @@ mDT->ReleaseBits(mMappedData); } 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()); ++ // With exception to certain text boxes with 1 line (46 pixels) and 2 lines ++ // (64 pixels) in Firefox 115. Per following bug: ++ // https://bugzilla.mozilla.org/show_bug.cgi?id=1900574 ++ if ((int)mDT->GetSize().height != 46 && mDT->GetSize().height != 64) ++ 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 -r 20d81e68da03 -r 903e5f164c0e image/imgFrame.cpp ---- a/image/imgFrame.cpp Thu Mar 24 06:57:58 2022 +0000 -+++ b/image/imgFrame.cpp Thu Mar 24 02:36:16 2022 -0700 -@@ -372,6 +372,17 @@ +--- firefox-128.0/image/imgFrame.cpp ++++ firefox-128.0/image/imgFrame.cpp +@@ -372,6 +372,17 @@ mAborted = true; return NS_ERROR_OUT_OF_MEMORY; } diff --git a/user/firefox-esr/without-jit.patch b/user/firefox-esr/without-jit.patch new file mode 100644 index 000000000..dff372ec0 --- /dev/null +++ b/user/firefox-esr/without-jit.patch @@ -0,0 +1,28 @@ +diff -r 81fc811c3c39 toolkit/components/translations/actors/TranslationsParent.sys.mjs +--- a/toolkit/components/translations/actors/TranslationsParent.sys.mjs Thu Aug 08 21:26:29 2024 -0700 ++++ b/toolkit/components/translations/actors/TranslationsParent.sys.mjs Sat Aug 10 16:45:13 2024 -0700 +@@ -618,16 +618,25 @@ + * Detect if Wasm SIMD is supported, and cache the value. It's better to check + * for support before downloading large binary blobs to a user who can't even + * use the feature. This function also respects mocks and simulating unsupported + * engines. + * + * @type {boolean} + */ + static getIsTranslationsEngineSupported() { ++ try { ++ // Ensure WebAssembly is supported and enabled (may not be on tier-3). ++ if (!WebAssembly) { ++ return false; ++ } ++ } catch(e) { ++ return false; ++ } ++ + if (lazy.simulateUnsupportedEnginePref) { + // Use the non-lazy console.log so that the user is always informed as to why + // the translations engine is not working. + console.log( + "Translations: The translations engine is disabled through the pref " + + '"browser.translations.simulateUnsupportedEngine".' + ); |