bugfixes, improvements firefox69
authorWolfgang Rosenauer <wr@rosenauer.org>
Mon, 09 Sep 2019 23:36:13 +0200
branchfirefox69
changeset 1108 33b03cfb3747
parent 1107 a2aa55e10564
child 1109 972f68ac6b1a
bugfixes, improvements
MozillaFirefox/MozillaFirefox.changes
MozillaFirefox/MozillaFirefox.spec
mozilla-bmo1504834-part3.patch
--- a/MozillaFirefox/MozillaFirefox.changes	Mon Sep 09 09:30:11 2019 +0200
+++ b/MozillaFirefox/MozillaFirefox.changes	Mon Sep 09 23:36:13 2019 +0200
@@ -1,4 +1,10 @@
 -------------------------------------------------------------------
+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>
 
 - Mozilla Firefox 69.0
--- a/MozillaFirefox/MozillaFirefox.spec	Mon Sep 09 09:30:11 2019 +0200
+++ b/MozillaFirefox/MozillaFirefox.spec	Mon Sep 09 23:36:13 2019 +0200
@@ -83,7 +83,7 @@
 BuildRequires:  mozilla-nspr-devel >= 4.21
 BuildRequires:  mozilla-nss-devel >= 3.45
 BuildRequires:  nasm >= 2.13
-BuildRequires:  nodejs >= 8.11
+BuildRequires:  nodejs8 >= 8.11
 BuildRequires:  python-devel
 BuildRequires:  python2-xml
 BuildRequires:  python3 >= 3.5
@@ -137,7 +137,7 @@
 Group:          Productivity/Networking/Web/Browsers
 Url:            http://www.mozilla.org/
 %if !%{with only_print_mozconfig}
-Source:         http://ftp.mozilla.org/pub/firefox/releases/%{version}%{orig_suffix}/source/firefox-%{orig_version}%{orig_suffix}.source.tar.xz
+Source:         http://ftp.mozilla.org/pub/%{progname}/releases/%{version}%{orig_suffix}/source/firefox-%{orig_version}%{orig_suffix}.source.tar.xz
 Source1:        MozillaFirefox.desktop
 Source2:        MozillaFirefox-rpmlintrc
 Source3:        mozilla.sh.in
@@ -305,7 +305,7 @@
 %patch8 -p1
 %patch9 -p1
 %patch10 -p1
-%ifarch s390x
+%ifarch s390x ppc64
 %patch11 -p1
 %endif
 %patch12 -p1
@@ -313,10 +313,10 @@
 %patch14 -p1
 %patch15 -p1
 %patch16 -p1
-#%patch17 -p1
-#%patch18 -p1
-#%patch19 -p1
-%patch20 -p1
+%patch17 -p1
+%patch18 -p1
+%patch19 -p1
+#%patch20 -p1
 %patch21 -p1
 %patch22 -p1
 # Firefox
@@ -446,7 +446,7 @@
 ac_add_options --disable-webrtc
 %endif
 # mitigation/workaround for bmo#1512162
-%ifarch ppc64le
+%ifarch ppc64le s390x
 ac_add_options --enable-optimize="-O1"
 %endif
 %ifarch x86_64
--- a/mozilla-bmo1504834-part3.patch	Mon Sep 09 09:30:11 2019 +0200
+++ b/mozilla-bmo1504834-part3.patch	Mon Sep 09 23:36:13 2019 +0200
@@ -3,36 +3,42 @@
 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 -r 49f25e4c2fd1 gfx/skia/skia/include/private/SkNx.h
+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	Fri Aug 23 15:00:43 2019 +0200
-@@ -238,7 +238,14 @@
++++ 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; }
  
--    AI SkNx operator&(const SkNx& y) const { return FromBits(ToBits(fVal) & ToBits(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).
-+    // AI SkNx operator&(const SkNx& y) const { return FromBits(ToBits(fVal) & ToBits(y.fVal)); }
++    // 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 -r 49f25e4c2fd1 gfx/skia/skia/src/opts/SkBlitMask_opts.h
+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	Fri Aug 23 15:00:43 2019 +0200
-@@ -203,7 +203,9 @@
++++ 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)
--            return Sk4px(Sk16b(aa) & Sk16b(0,0,0,255, 0,0,0,255, 0,0,0,255, 0,0,0,255))
 +
 +            // 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) {