Firefox 69.0 as released to Factory/Tumbleweed
(including fixes for arch specific patches)
--- 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 <wr@rosenauer.org>
-
-- require nodejs8 to avoid multiple choices during build
-- enabled correctly guarded BE patches again
-
-------------------------------------------------------------------
Thu Sep 5 13:02:39 UTC 2019 - Wolfgang Rosenauer <wr@rosenauer.org>
@@ -42,9 +36,9 @@
Wed Sep 4 15:38:40 UTC 2019 - Wolfgang Rosenauer <wr@rosenauer.org>
- 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
--- 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
--- /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
--- 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
+
--- 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
--- /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<T>.
+ void trace(JSTracer* aTrc);
--- 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