# HG changeset patch # User Wolfgang Rosenauer # Date 1568451362 -7200 # Node ID 972f68ac6b1a89c3441bb1ccf5b7302537498aea # Parent 33b03cfb3747c8c45ae74528f14630151983f3bc Firefox 69.0 as released to Factory/Tumbleweed (including fixes for arch specific patches) diff -r 33b03cfb3747 -r 972f68ac6b1a MozillaFirefox/MozillaFirefox.changes --- a/MozillaFirefox/MozillaFirefox.changes Mon Sep 09 23:36:13 2019 +0200 +++ b/MozillaFirefox/MozillaFirefox.changes Sat Sep 14 10:56:02 2019 +0200 @@ -1,9 +1,3 @@ -------------------------------------------------------------------- -Mon Sep 9 08:38:39 UTC 2019 - Wolfgang Rosenauer - -- require nodejs8 to avoid multiple choices during build -- enabled correctly guarded BE patches again - ------------------------------------------------------------------- Thu Sep 5 13:02:39 UTC 2019 - Wolfgang Rosenauer @@ -42,9 +36,9 @@ Wed Sep 4 15:38:40 UTC 2019 - Wolfgang Rosenauer - added a bunch of patches mainly for big endian platforms - * mozilla-bmo1504834-part1.patch (currently unused as it breaks LE) - * mozilla-bmo1504834-part2.patch (currently unused as it breaks LE) - * mozilla-bmo1504834-part3.patch (currently unused as it breaks LE) + * mozilla-bmo1504834-part1.patch + * mozilla-bmo1504834-part2.patch + * mozilla-bmo1504834-part3.patch * mozilla-bmo1511604.patch * mozilla-bmo1554971.patch * mozilla-bmo1573381.patch diff -r 33b03cfb3747 -r 972f68ac6b1a MozillaFirefox/MozillaFirefox.spec --- a/MozillaFirefox/MozillaFirefox.spec Mon Sep 09 23:36:13 2019 +0200 +++ b/MozillaFirefox/MozillaFirefox.spec Sat Sep 14 10:56:02 2019 +0200 @@ -184,6 +184,7 @@ Patch20: mozilla-bmo1511604.patch Patch21: mozilla-bmo1554971.patch Patch22: mozilla-nestegg-big-endian.patch +Patch23: mozilla-bmo1512162.patch # Firefox/browser Patch101: firefox-kde.patch Patch102: firefox-branded-icons.patch @@ -316,9 +317,10 @@ %patch17 -p1 %patch18 -p1 %patch19 -p1 -#%patch20 -p1 +%patch20 -p1 %patch21 -p1 %patch22 -p1 +%patch23 -p1 # Firefox %patch101 -p1 %patch102 -p1 @@ -485,7 +487,7 @@ grep amazondotcom dist/firefox/browser/omni.ja # copy tree into RPM_BUILD_ROOT mkdir -p %{buildroot}%{progdir} -cp -rf $RPM_BUILD_DIR/obj/dist/firefox/* %{buildroot}%{progdir} +cp -rf $RPM_BUILD_DIR/obj/dist/%{progname}/* %{buildroot}%{progdir} mkdir -p %{buildroot}%{progdir}/distribution/extensions mkdir -p %{buildroot}%{progdir}/browser/defaults/preferences/ # install gre prefs diff -r 33b03cfb3747 -r 972f68ac6b1a MozillaFirefox/mozilla-bmo1512162.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/MozillaFirefox/mozilla-bmo1512162.patch Sat Sep 14 10:56:02 2019 +0200 @@ -0,0 +1,1 @@ +../mozilla-bmo1512162.patch \ No newline at end of file diff -r 33b03cfb3747 -r 972f68ac6b1a mozilla-bmo1504834-part2.patch --- a/mozilla-bmo1504834-part2.patch Mon Sep 09 23:36:13 2019 +0200 +++ b/mozilla-bmo1504834-part2.patch Sat Sep 14 10:56:02 2019 +0200 @@ -1,14 +1,19 @@ # HG changeset patch -# Parent 548d0a2f3a22bfac32ec0c3921c6c969c8bf32a9 +# Parent 6fa4b62427433e8f445d05c557e5db096667d880 Skia does not support big endian. The places to fix are too numerous and upstream (skia, not Mozilla) has no interest in maintaining big endian. So here we try to swizzle the input for skia, so that skia always works on LE, and when it comes out again, we transform back to BE. -diff -r 548d0a2f3a22 gfx/2d/ConvolutionFilter.cpp ---- a/gfx/2d/ConvolutionFilter.cpp Mon Jul 22 16:57:54 2019 +0200 -+++ b/gfx/2d/ConvolutionFilter.cpp Thu Jul 25 14:27:59 2019 +0200 -@@ -35,9 +35,38 @@ +diff --git a/gfx/2d/ConvolutionFilter.cpp b/gfx/2d/ConvolutionFilter.cpp +--- a/gfx/2d/ConvolutionFilter.cpp ++++ b/gfx/2d/ConvolutionFilter.cpp +@@ -30,32 +30,79 @@ bool ConvolutionFilter::GetFilterOffsetA + int32_t* aResultLength) { + if (aRowIndex >= mFilter->numValues()) { + return false; + } + mFilter->FilterForValue(aRowIndex, aResultOffset, aResultLength); return true; } @@ -23,7 +28,7 @@ + void ConvolutionFilter::ConvolveHorizontally(const uint8_t* aSrc, uint8_t* aDst, bool aHasAlpha) { -+#ifdef MOZ_BIG_ENDIAN ++#if MOZ_BIG_ENDIAN + int outputSize = mFilter->numValues(); + + // Input size isn't handed in, so we have to calculate it quickly @@ -40,19 +45,23 @@ + SkOpts::convolve_horizontally(aSrc, *mFilter, aDst, aHasAlpha); + -+#ifdef MOZ_BIG_ENDIAN ++#if MOZ_BIG_ENDIAN + ByteSwapArray((uint8_t*)aSrc, inputSize); + ByteSwapArray(aDst, outputSize); +#endif } void ConvolutionFilter::ConvolveVertically(uint8_t* const* aSrc, uint8_t* aDst, -@@ -49,8 +78,26 @@ + int32_t aRowIndex, int32_t aRowSize, + bool aHasAlpha) { + MOZ_ASSERT(aRowIndex < mFilter->numValues()); + + int32_t filterOffset; int32_t filterLength; auto filterValues = mFilter->FilterForValue(aRowIndex, &filterOffset, &filterLength); + -+#ifdef MOZ_BIG_ENDIAN ++#if MOZ_BIG_ENDIAN + for (int filterY = 0; filterY < filterLength; filterY++) { + // Skia only knows LE, so we have to swizzle the input + ByteSwapArray(aSrc[filterY], aRowSize); @@ -62,7 +71,7 @@ SkOpts::convolve_vertically(filterValues, filterLength, aSrc, aRowSize, aDst, aHasAlpha); + -+#ifdef MOZ_BIG_ENDIAN ++#if MOZ_BIG_ENDIAN + // After skia is finished, we swizzle back to BE, in case + // the input is used again somewhere else + for (int filterY = 0; filterY < filterLength; filterY++) { @@ -74,10 +83,20 @@ } /* ConvolutionFilter::ComputeResizeFactor is derived from Skia's -diff -r 548d0a2f3a22 gfx/skia/skia/include/core/SkPreConfig.h ---- a/gfx/skia/skia/include/core/SkPreConfig.h Mon Jul 22 16:57:54 2019 +0200 -+++ b/gfx/skia/skia/include/core/SkPreConfig.h Thu Jul 25 14:27:59 2019 +0200 -@@ -73,7 +73,7 @@ + * SkBitmapScaler/SkResizeFilter::computeFactors. It is governed by Skia's + * BSD-style license (see gfx/skia/LICENSE) and the following copyright: + * Copyright (c) 2015 Google Inc. + */ + bool ConvolutionFilter::ComputeResizeFilter(ResizeMethod aResizeMethod, +diff --git a/gfx/skia/skia/include/core/SkPreConfig.h b/gfx/skia/skia/include/core/SkPreConfig.h +--- a/gfx/skia/skia/include/core/SkPreConfig.h ++++ b/gfx/skia/skia/include/core/SkPreConfig.h +@@ -68,17 +68,17 @@ + #define SK_CPU_BENDIAN + #elif defined(__BYTE_ORDER__) && (__BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__) + #define SK_CPU_LENDIAN + #elif defined(__sparc) || defined(__sparc__) || \ + defined(_POWER) || defined(__powerpc__) || \ defined(__ppc__) || defined(__hppa) || \ defined(__PPC__) || defined(__PPC64__) || \ defined(_MIPSEB) || defined(__ARMEB__) || \ @@ -86,3 +105,8 @@ (defined(__sh__) && defined(__BIG_ENDIAN__)) || \ (defined(__ia64) && defined(__BIG_ENDIAN__)) #define SK_CPU_BENDIAN + #else + #define SK_CPU_LENDIAN + #endif + #endif + diff -r 33b03cfb3747 -r 972f68ac6b1a mozilla-bmo1511604.patch --- a/mozilla-bmo1511604.patch Mon Sep 09 23:36:13 2019 +0200 +++ b/mozilla-bmo1511604.patch Sat Sep 14 10:56:02 2019 +0200 @@ -3,7 +3,7 @@ # Date 1543674229 0 # Sat Dec 01 14:23:49 2018 +0000 # Node ID 0309ff19e46b126c527e633518d7de8570442114 -# Parent 53107afbc21ec78e7ac46d37af212505f2032d5d +# Parent ba2c9b0542c95cc5ee26c264e8338fc9ba94c958 Bug 1511604 - Swizzle YCbCr->RGB data on big-endian machines Taken from https://bugzilla.mozilla.org/show_bug.cgi?id=1511604 @@ -11,10 +11,12 @@ Again, input for skia is swizzled to LE, as skia only understands LE. -diff -r 53107afbc21e -r 0309ff19e46b gfx/ycbcr/YCbCrUtils.cpp ---- a/gfx/ycbcr/YCbCrUtils.cpp Wed Nov 07 04:50:21 2018 +0000 -+++ b/gfx/ycbcr/YCbCrUtils.cpp Sat Dec 01 14:23:49 2018 +0000 -@@ -3,7 +3,9 @@ +diff --git a/gfx/ycbcr/YCbCrUtils.cpp b/gfx/ycbcr/YCbCrUtils.cpp +--- a/gfx/ycbcr/YCbCrUtils.cpp ++++ b/gfx/ycbcr/YCbCrUtils.cpp +@@ -1,14 +1,16 @@ + /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- + * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ @@ -24,11 +26,21 @@ #include "YCbCrUtils.h" #include "yuv_convert.h" -@@ -236,6 +238,13 @@ + #include "ycbcr_to_rgb565.h" + + namespace mozilla { + namespace gfx { + +@@ -231,16 +233,23 @@ ConvertYCbCrToRGB(const layers::PlanarYC + srcData.mPicSize.width, + srcData.mPicSize.height, + srcData.mYStride, + srcData.mCbCrStride, + aStride, yuvtype, srcData.mYUVColorSpace); } -+#ifdef MOZ_BIG_ENDIAN ++#if MOZ_BIG_ENDIAN + // libyuv makes endian-correct result, which needs to be swapped to BGRX + if (aDestFormat != SurfaceFormat::R5G6B5_UINT16) + gfx::SwizzleData(aDestBuffer, aStride, gfx::SurfaceFormat::X8R8G8B8, @@ -38,11 +50,21 @@ } void -@@ -257,6 +266,12 @@ + ConvertYCbCrAToARGB(const uint8_t* aSrcY, + const uint8_t* aSrcU, + const uint8_t* aSrcV, + const uint8_t* aSrcA, + int aSrcStrideYA, int aSrcStrideUV, +@@ -252,12 +261,18 @@ ConvertYCbCrAToARGB(const uint8_t* aSrcY + aSrcV, + aSrcA, + aDstARGB, + aWidth, + aHeight, aSrcStrideYA, aSrcStrideUV, aDstStrideARGB); -+#ifdef MOZ_BIG_ENDIAN ++#if MOZ_BIG_ENDIAN + // libyuv makes endian-correct result, which needs to be swapped to BGRA + gfx::SwizzleData(aDstARGB, aDstStrideARGB, gfx::SurfaceFormat::A8R8G8B8, + aDstARGB, aDstStrideARGB, gfx::SurfaceFormat::B8G8R8A8, @@ -51,4 +73,4 @@ } } // namespace gfx - + } // namespace mozilla diff -r 33b03cfb3747 -r 972f68ac6b1a mozilla-bmo1512162.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mozilla-bmo1512162.patch Sat Sep 14 10:56:02 2019 +0200 @@ -0,0 +1,34 @@ +# HG changeset patch +# Parent e5858dc7ab007042436496f7cfb9a5abf10f5082 +This fixes a broken build for gcc < 9 on ppc64le. +This patch can be removed for newer gcc-versions. + +diff -r e5858dc7ab00 -r 5d3469aabe61 js/xpconnect/src/XPCWrappedNative.cpp +--- a/js/xpconnect/src/XPCWrappedNative.cpp Thu Nov 29 10:07:29 2018 +0100 ++++ b/js/xpconnect/src/XPCWrappedNative.cpp Tue Sep 10 12:42:13 2019 +0200 +@@ -1092,7 +1092,11 @@ + MOZ_ALWAYS_INLINE bool GetOutParamSource(uint8_t paramIndex, + MutableHandleValue srcp) const; + +- MOZ_ALWAYS_INLINE bool GatherAndConvertResults(); ++#if !(__GNUC__ && __linux__ && __PPC64__ && _LITTLE_ENDIAN) ++// Work around a compiler bug on ppc64le (bug 1512162). ++ MOZ_ALWAYS_INLINE ++#endif ++ bool GatherAndConvertResults(); + + MOZ_ALWAYS_INLINE bool QueryInterfaceFastPath(); + +@@ -1139,7 +1143,11 @@ + + ~CallMethodHelper(); + +- MOZ_ALWAYS_INLINE bool Call(); ++#if !(__GNUC__ && __linux__ && __PPC64__ && _LITTLE_ENDIAN) ++// Work around a compiler bug on ppc64le (bug 1512162). ++ MOZ_ALWAYS_INLINE ++#endif ++ bool Call(); + + // Trace implementation so we can put our CallMethodHelper in a Rooted. + void trace(JSTracer* aTrc); diff -r 33b03cfb3747 -r 972f68ac6b1a series --- a/series Mon Sep 09 23:36:13 2019 +0200 +++ b/series Sat Sep 14 10:56:02 2019 +0200 @@ -21,6 +21,7 @@ mozilla-bmo1511604.patch mozilla-bmo1554971.patch mozilla-nestegg-big-endian.patch +mozilla-bmo1512162.patch # Firefox patches firefox-kde.patch