From af6518f2d43aea60e9abd6e22742c44bb3c4d28c Mon Sep 17 00:00:00 2001 From: Duncaen Date: Thu, 6 Jul 2023 14:00:43 +0200 Subject: [PATCH] firefox-esr: update to 115.0. --- .../patches/avoid-redefinition.patch | 15 ---- .../patches/firefox-i686-build.patch | 14 ++++ .../firefox-esr/patches/fix-i386-fdlibm.patch | 18 ----- .../patches/fix-i686-build-moz-1792159.patch | 18 +++++ .../firefox-esr/patches/flac-no-ffvpx.patch | 2 +- .../firefox-esr/patches/rust-lto-thin.patch | 12 +++ srcpkgs/firefox-esr/patches/skia-sucks1.patch | 77 ------------------- srcpkgs/firefox-esr/patches/skia-sucks2.patch | 44 ----------- srcpkgs/firefox-esr/patches/skia-sucks3.patch | 32 -------- srcpkgs/firefox-esr/template | 8 +- 10 files changed, 49 insertions(+), 191 deletions(-) delete mode 100644 srcpkgs/firefox-esr/patches/avoid-redefinition.patch create mode 100644 srcpkgs/firefox-esr/patches/firefox-i686-build.patch delete mode 100644 srcpkgs/firefox-esr/patches/fix-i386-fdlibm.patch create mode 100644 srcpkgs/firefox-esr/patches/fix-i686-build-moz-1792159.patch create mode 100644 srcpkgs/firefox-esr/patches/rust-lto-thin.patch delete mode 100644 srcpkgs/firefox-esr/patches/skia-sucks1.patch delete mode 100644 srcpkgs/firefox-esr/patches/skia-sucks2.patch delete mode 100644 srcpkgs/firefox-esr/patches/skia-sucks3.patch diff --git a/srcpkgs/firefox-esr/patches/avoid-redefinition.patch b/srcpkgs/firefox-esr/patches/avoid-redefinition.patch deleted file mode 100644 index 867d37c62a9..00000000000 --- a/srcpkgs/firefox-esr/patches/avoid-redefinition.patch +++ /dev/null @@ -1,15 +0,0 @@ -Author: Rasmus Thomsen -Reason: FF is mixing userspace net headers (net/if.h) and kernelspace ones -(linux/if.h), leading to redefinitions. We need to include net/if.h before -linux/if.h because linux/if.h has redifinition guards whereas net/if.h doesnt -Upstream: No ---- a/dom/media/webrtc/transport/third_party/nICEr/src/stun/addrs-netlink.c 2020-07-28 19:24:32.359751046 +0200 -+++ b/dom/media/webrtc/transport/third_party/nICEr/src/stun/addrs-netlink.c 2020-07-28 19:24:37.856343751 +0200 -@@ -31,6 +31,7 @@ - */ - - #if defined(LINUX) -+#include - #include "addrs-netlink.h" - #include - #include diff --git a/srcpkgs/firefox-esr/patches/firefox-i686-build.patch b/srcpkgs/firefox-esr/patches/firefox-i686-build.patch new file mode 100644 index 00000000000..01561761df9 --- /dev/null +++ b/srcpkgs/firefox-esr/patches/firefox-i686-build.patch @@ -0,0 +1,14 @@ +https://src.fedoraproject.org/rpms/firefox/blob/rawhide/f/firefox-i686-build.patch + +diff -up firefox-105.0/mozglue/misc/SIMD_avx2.cpp.old firefox-105.0/mozglue/misc/SIMD_avx2.cpp +--- firefox-105.0/mozglue/misc/SIMD_avx2.cpp.old 2022-09-22 21:35:07.006221995 +0200 ++++ firefox-105.0/mozglue/misc/SIMD_avx2.cpp 2022-09-22 21:36:12.972480517 +0200 +@@ -55,7 +55,7 @@ __m256i CmpEq256(__m256i a, __m256i b) { + return _mm256_cmpeq_epi64(a, b); + } + +-# if defined(__GNUC__) && !defined(__clang__) ++# if 0 + + // See the comment in SIMD.cpp over Load32BitsIntoXMM. This is just adapted + // from that workaround. Testing this, it also yields the correct instructions diff --git a/srcpkgs/firefox-esr/patches/fix-i386-fdlibm.patch b/srcpkgs/firefox-esr/patches/fix-i386-fdlibm.patch deleted file mode 100644 index db8dd3961c0..00000000000 --- a/srcpkgs/firefox-esr/patches/fix-i386-fdlibm.patch +++ /dev/null @@ -1,18 +0,0 @@ -# error: typedef redefinition with different types ('__double_t' (aka 'double') vs 'long double') -# https://bugzilla.mozilla.org/show_bug.cgi?id=1729459 - ---- a/modules/fdlibm/src/math_private.h -+++ b/modules/fdlibm/src/math_private.h -@@ -30,7 +30,12 @@ - * Adapted from https://github.com/freebsd/freebsd-src/search?q=__double_t - */ - -+#if defined(__linux__) && defined(__i386__) && !defined(__clang__) -+// rely on glibc's double_t -+typedef long double __double_t; -+#else - typedef double __double_t; -+#endif - typedef __double_t double_t; - - /* diff --git a/srcpkgs/firefox-esr/patches/fix-i686-build-moz-1792159.patch b/srcpkgs/firefox-esr/patches/fix-i686-build-moz-1792159.patch new file mode 100644 index 00000000000..592dcad93eb --- /dev/null +++ b/srcpkgs/firefox-esr/patches/fix-i686-build-moz-1792159.patch @@ -0,0 +1,18 @@ +--- a/js/src/jit/shared/AtomicOperations-shared-jit.cpp ++++ b/js/src/jit/shared/AtomicOperations-shared-jit.cpp +@@ -5,4 +5,9 @@ + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + ++// bug 1792159 ++#if defined(__i386__) && defined(__GNUC__) && !defined(__clang__) ++# include "../../../mfbt/Attributes.h" ++#endif ++ + #include "jit/AtomicOperations.h" + +--- a/config/check_spidermonkey_style.py ++++ b/config/check_spidermonkey_style.py +@@ -68,2 +68,3 @@ + "jit/AtomicOperationsGenerated.h", # generated in $OBJDIR ++ "../../../mfbt/Attributes.h", # unrecognized path + "jit/CacheIROpsGenerated.h", # generated in $OBJDIR diff --git a/srcpkgs/firefox-esr/patches/flac-no-ffvpx.patch b/srcpkgs/firefox-esr/patches/flac-no-ffvpx.patch index ebf48deb972..643d186f3ad 100644 --- a/srcpkgs/firefox-esr/patches/flac-no-ffvpx.patch +++ b/srcpkgs/firefox-esr/patches/flac-no-ffvpx.patch @@ -19,7 +19,7 @@ index 53fc3c9937f7..b23771ab80fa 100644 +#elif defined(MOZ_FFMPEG) + RefPtr platform = new PDMFactory(); + return StaticPrefs::media_flac_enabled() && -+ platform->SupportsMimeType("audio/flac"_ns); ++ platform->SupportsMimeType("audio/flac"_ns) != media::DecodeSupport::Unsupported; #else // Until bug 1295886 is fixed. return false; diff --git a/srcpkgs/firefox-esr/patches/rust-lto-thin.patch b/srcpkgs/firefox-esr/patches/rust-lto-thin.patch new file mode 100644 index 00000000000..788fceab39f --- /dev/null +++ b/srcpkgs/firefox-esr/patches/rust-lto-thin.patch @@ -0,0 +1,12 @@ +set rust crate lto to thin to not use fatlto for gkrust which fails sometimes +--- a/config/makefiles/rust.mk ++++ b/config/makefiles/rust.mk +@@ -92,7 +92,7 @@ + # 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$(if $(filter full,$(MOZ_LTO_RUST_CROSS)),=fat) ++cargo_rustc_flags += -Clto=thin + endif + # We need -Cembed-bitcode=yes for all crates when using -Clto. + RUSTFLAGS += -Cembed-bitcode=yes diff --git a/srcpkgs/firefox-esr/patches/skia-sucks1.patch b/srcpkgs/firefox-esr/patches/skia-sucks1.patch deleted file mode 100644 index cd9eecccf61..00000000000 --- a/srcpkgs/firefox-esr/patches/skia-sucks1.patch +++ /dev/null @@ -1,77 +0,0 @@ -https://bugzilla.mozilla.org/show_bug.cgi?id=1504834#c5 -https://bugzilla.mozilla.org/attachment.cgi?id=9028600 - ---- a/gfx/skia/skia/third_party/skcms/skcms.cc -+++ b/gfx/skia/skia/third_party/skcms/skcms.cc -@@ -30,6 +30,8 @@ - #include - #include - #endif -+#elif defined(__BIG_ENDIAN__) -+ #define SKCMS_PORTABLE - #endif - - // sizeof(x) will return size_t, which is 32-bit on some machines and 64-bit on others. -@@ -280,20 +282,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 defined(__BIG_ENDIAN__) -+ return be; - #else -+ #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 defined(__BIG_ENDIAN__) -+ return be; - #else -+ #if defined(_MSC_VER) -+ return _byteswap_ulong(be); -+ #else - return __builtin_bswap32(be); -+ #endif - #endif - } - ---- a/gfx/2d/DrawTargetSkia.cpp -+++ b/gfx/2d/DrawTargetSkia.cpp -@@ -138,8 +138,7 @@ static IntRect CalculateSurfaceBounds(const IntSize& a - return surfaceBounds.Intersect(bounds); - } - --static const int kARGBAlphaOffset = -- SurfaceFormat::A8R8G8B8_UINT32 == SurfaceFormat::B8G8R8A8 ? 3 : 0; -+static const int kARGBAlphaOffset = 0; - - static bool VerifyRGBXFormat(uint8_t* aData, const IntSize& aSize, - const int32_t aStride, SurfaceFormat aFormat) { ---- a/gfx/2d/Types.h -+++ b/gfx/2d/Types.h -@@ -87,15 +87,8 @@ enum class SurfaceFormat : int8_t { - // 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. - // diff --git a/srcpkgs/firefox-esr/patches/skia-sucks2.patch b/srcpkgs/firefox-esr/patches/skia-sucks2.patch deleted file mode 100644 index 1a498f8711d..00000000000 --- a/srcpkgs/firefox-esr/patches/skia-sucks2.patch +++ /dev/null @@ -1,44 +0,0 @@ -# HG changeset patch -# Parent aecb4600e5da17443b224c79eee178c1d8e155e3 -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 @@ - AI SkNx operator*(const SkNx& y) const { return fVal * y.fVal; } - AI SkNx operator/(const SkNx& y) const { return fVal / y.fVal; } - -+ // On Big endian the commented out variant doesn't work, -+ // and honestly, I have no idea why it exists in the first place. -+ // The reason its broken is, I think, that it defaults to the double-variant of ToBits() -+ // which gets a 64-bit integer, and FromBits returns 32-bit, -+ // cutting off the wrong half again. -+ // Overall, I see no reason to have ToBits and FromBits at all (even for floats/doubles). -+ // Still we are only "fixing" this for big endian and leave little endian alone (never touch a running system) -+#ifdef SK_CPU_BENDIAN -+ AI SkNx operator&(const SkNx& y) const { return fVal & y.fVal; } -+#else - AI SkNx operator&(const SkNx& y) const { return FromBits(ToBits(fVal) & ToBits(y.fVal)); } -+#endif - 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 @@ - // ~~~> - // a = 1*aa + d(1-1*aa) = aa + d(1-aa) - // c = 0*aa + d(1-1*aa) = d(1-aa) -+ -+ // For big endian we have to swap the alpha-mask from 0,0,0,255 to 255,0,0,0 -+#ifdef SK_CPU_BENDIAN -+ return Sk4px(Sk16b(aa) & Sk16b(255,0,0,0, 255,0,0,0, 255,0,0,0, 255,0,0,0)) -+#else - return Sk4px(Sk16b(aa) & Sk16b(0,0,0,255, 0,0,0,255, 0,0,0,255, 0,0,0,255)) -+#endif - + d.approxMulDiv255(aa.inv()); - }; - while (h --> 0) { diff --git a/srcpkgs/firefox-esr/patches/skia-sucks3.patch b/srcpkgs/firefox-esr/patches/skia-sucks3.patch deleted file mode 100644 index 4bf77e68440..00000000000 --- a/srcpkgs/firefox-esr/patches/skia-sucks3.patch +++ /dev/null @@ -1,32 +0,0 @@ -CompositableHost.cpp patch added by @q66, based on patch in issue 1602730. - -# 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/srcpkgs/firefox-esr/template b/srcpkgs/firefox-esr/template index fcad6ea4194..319a8ff58c2 100644 --- a/srcpkgs/firefox-esr/template +++ b/srcpkgs/firefox-esr/template @@ -4,15 +4,15 @@ # After bumping this package, restore the depends of browsh # pkgname=firefox-esr -version=102.9.0 -revision=2 +version=115.0 +revision=1 build_helper="rust" short_desc="Mozilla Firefox web browser - Extended Support Release" maintainer="Orphaned " license="MPL-2.0, GPL-2.0-or-later, LGPL-2.1-or-later" homepage="https://www.mozilla.org/firefox/" distfiles="${MOZILLA_SITE}/firefox/releases/${version}esr/source/firefox-${version}esr.source.tar.xz" -checksum=31b074623f09ca821a8a7dee0b3d2df1a45f1164264d31c26b4969a4d6a21dd1 +checksum=dbf35684998012aa085e8e0bc9e995d16dcbf5fd5aa5cbb1f7381be4967b400d lib32disabled=yes @@ -148,7 +148,7 @@ do_build() { # https://phabricator.services.mozilla.com/D134738 # case "$XBPS_TARGET_MACHINE" in - ppc64le*|armv7l*) echo "ac_add_options --disable-webrtc" ;; + armv7l*) echo "ac_add_options --disable-webrtc" ;; esac # third_party/libwebrtc/common_audio/wav_file.cc:93:2: error: