Firefox 69.0 as released to Factory/Tumbleweed firefox69
authorWolfgang Rosenauer <wr@rosenauer.org>
Sat, 14 Sep 2019 10:56:02 +0200
branchfirefox69
changeset 1109 972f68ac6b1a
parent 1108 33b03cfb3747
child 1110 9e4b30f05706
Firefox 69.0 as released to Factory/Tumbleweed (including fixes for arch specific patches)
MozillaFirefox/MozillaFirefox.changes
MozillaFirefox/MozillaFirefox.spec
MozillaFirefox/mozilla-bmo1512162.patch
mozilla-bmo1504834-part2.patch
mozilla-bmo1511604.patch
mozilla-bmo1512162.patch
series
--- 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