Hello community,

here is the log from the commit of package chromium for openSUSE:Factory 
checked in at 2018-05-10 15:50:00
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/chromium (Old)
 and      /work/SRC/openSUSE:Factory/.chromium.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "chromium"

Thu May 10 15:50:00 2018 rev:186 rq:605680 version:66.0.3359.139

Changes:
--------
--- /work/SRC/openSUSE:Factory/chromium/chromium.changes        2018-04-29 
19:38:07.204714826 +0200
+++ /work/SRC/openSUSE:Factory/.chromium.new/chromium.changes   2018-05-10 
15:50:03.451817705 +0200
@@ -1,0 +2,17 @@
+Wed May  9 08:36:30 UTC 2018 - tchva...@suse.com
+
+- Add patch chromium-skia-system-fontconfig.patch to fix
+  bsc#1092272
+
+-------------------------------------------------------------------
+Fri May  4 06:53:49 UTC 2018 - guillaume.gar...@opensuse.org
+
+- Enable build on AArch64
+- Fix build on AArch64:
+  * set target_cpu to arm64
+  * disable tcmalloc and swiftshader for aarch64
+  * Add new patches:
+    - chromium-65.0.3325.162-skia-aarch64-buildfix.patch
+    - chromium-skia-neon.patch 
+
+-------------------------------------------------------------------

New:
----
  chromium-65.0.3325.162-skia-aarch64-buildfix.patch
  chromium-skia-neon.patch
  chromium-skia-system-fontconfig.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ chromium.spec ++++++
--- /var/tmp/diff_new_pack.bQJ6bn/_old  2018-05-10 15:50:15.451377906 +0200
+++ /var/tmp/diff_new_pack.bQJ6bn/_new  2018-05-10 15:50:15.455377759 +0200
@@ -34,6 +34,11 @@
 %endif
 %bcond_with system_vpx
 %bcond_with clang
+%ifarch aarch64
+%bcond_with swiftshader
+%else
+%bcond_without swiftshader
+%endif
 Name:           chromium
 Version:        66.0.3359.139
 Release:        0
@@ -68,11 +73,18 @@
 # Google seem not too keen on merging this but GPU accel is quite important
 #  https://chromium-review.googlesource.com/c/chromium/src/+/532294
 Patch100:       chromium-vaapi.patch
+# Google does not care much about system libs here
+#  https://bugs.chromium.org/p/skia/issues/detail?id=6663
+Patch101:       chromium-skia-system-fontconfig.patch
 # GN buildsystem related patches
 Patch200:       chromium-last-commit-position-r0.patch
 Patch201:       fix-gn-bootstrap.patch
 # PATCH-FIX-SUSE: allow codecs to be set with chromium branding
 Patch202:       chromium-prop-codecs.patch
+# PATCH-FIX-UPSTREAM fedora patch to fix skia build on aarch64
+Patch300:       chromium-65.0.3325.162-skia-aarch64-buildfix.patch
+# PATCH-FIX-UPSTREAM backport commit b84682 to fix skia with GCC on aarch64 - 
https://chromium.googlesource.com/chromium/src/+/b84682f31dc99b9c90f5a04947075815697c68d9
+Patch301:       chromium-skia-neon.patch
 BuildRequires:  SDL-devel
 BuildRequires:  binutils-gold
 BuildRequires:  bison
@@ -137,7 +149,10 @@
 BuildRequires:  pkgconfig(libpci)
 BuildRequires:  pkgconfig(libpulse)
 BuildRequires:  pkgconfig(libssl)
+%ifnarch aarch64
+# Current tcmalloc does not support AArch64
 BuildRequires:  pkgconfig(libtcmalloc)
+%endif
 BuildRequires:  pkgconfig(libudev)
 BuildRequires:  pkgconfig(libwebp)
 BuildRequires:  pkgconfig(libxslt)
@@ -187,7 +202,7 @@
 Obsoletes:      chromium-ffmpeg
 Obsoletes:      chromium-ffmpegsumo
 # no 32bit supported and it takes ages to build
-ExcludeArch:    %{arm} aarch64 i586 ppc ppc64 ppc64le
+ExcludeArch:    %{arm} i586 ppc ppc64 ppc64le
 %if %{with system_harfbuzz}
 BuildRequires:  pkgconfig(harfbuzz) >= 1.7.0
 %endif
@@ -494,7 +509,9 @@
 myconf_gn+=" use_custom_libcxx=false"
 myconf_gn+=" is_debug=false"
 myconf_gn+=" enable_nacl=false"
+%if %{with swiftshader}
 myconf_gn+=" use_swiftshader_with_subzero=true"
+%endif
 myconf_gn+=" is_component_ffmpeg=true"
 myconf_gn+=" use_cups=true"
 myconf_gn+=" use_aura=true"
@@ -506,7 +523,10 @@
 myconf_gn+=" is_component_build=false"
 myconf_gn+=" use_sysroot=false"
 myconf_gn+=" fatal_linker_warnings=false"
+%ifnarch aarch64
+# Current tcmalloc does not support AArch64
 myconf_gn+=" use_allocator=\"tcmalloc\""
+%endif
 myconf_gn+=" fieldtrial_testing_like_official_build=true"
 myconf_gn+=" use_gold=true"
 myconf_gn+=" use_lld=false"
@@ -543,6 +563,15 @@
 myconf_gn+=" arm_use_thumb=true"
 %endif
 
+%ifarch aarch64
+myconf_gn+=" target_cpu=\"arm64\""
+%endif
+
+%ifarch aarch64
+# We don't need to cross compile while building on an aarch64 system.
+sed -i 's|aarch64-linux-gnu-||g' build/toolchain/linux/BUILD.gn
+%endif
+
 # Set up Google API keys, see 
http://www.chromium.org/developers/how-tos/api-keys
 # Note: these are for the openSUSE Chromium builds ONLY. For your own 
distribution,
 # please get your own set of keys.
@@ -586,8 +615,10 @@
 cp -a icudtl.dat %{buildroot}%{_libdir}/chromium/
 %endif
 
+%if %{with swiftshader}
 mkdir -p %{buildroot}%{_libdir}/chromium/swiftshader
 cp -a swiftshader/*.so %{buildroot}%{_libdir}/chromium/swiftshader/
+%endif
 
 # chromedriver
 cp -a chromedriver %{buildroot}%{_libdir}/chromium/
@@ -652,8 +683,10 @@
 %dir %{_datadir}/gnome-control-center
 %dir %{_datadir}/gnome-control-center/default-apps
 %{_libdir}/chromium/
+%if %{with swiftshader}
 %dir %{_libdir}/chromium/swiftshader/
 %{_libdir}/chromium/swiftshader/*.so
+%endif
 %{_datadir}/applications/*.desktop
 %dir %{_datadir}/appdata/
 %{_datadir}/appdata/chromium-browser.appdata.xml

++++++ chromium-65.0.3325.162-skia-aarch64-buildfix.patch ++++++
diff -up 
chromium-65.0.3325.162/third_party/skia/src/jumper/SkJumper_stages.cpp.aarch64fix
 chromium-65.0.3325.162/third_party/skia/src/jumper/SkJumper_stages.cpp
--- 
chromium-65.0.3325.162/third_party/skia/src/jumper/SkJumper_stages.cpp.aarch64fix
   2018-03-15 15:27:35.201345844 -0400
+++ chromium-65.0.3325.162/third_party/skia/src/jumper/SkJumper_stages.cpp      
2018-03-15 15:31:30.471777400 -0400
@@ -666,7 +666,7 @@ SI F approx_powf(F x, F y) {
 }
 
 SI F from_half(U16 h) {
-#if defined(__aarch64__) && !defined(SK_BUILD_FOR_GOOGLE3)  // Temporary 
workaround for some Google3 builds.
+#if defined(JUMPER_IS_NEON) && defined(__aarch64__) && 
!defined(SK_BUILD_FOR_GOOGLE3)  // Temporary workaround for some Google3 builds.
     return vcvt_f32_f16(h);
 
 #elif defined(JUMPER_IS_HSW) || defined(JUMPER_IS_AVX512)
@@ -686,7 +686,7 @@ SI F from_half(U16 h) {
 }
 
 SI U16 to_half(F f) {
-#if defined(__aarch64__) && !defined(SK_BUILD_FOR_GOOGLE3)  // Temporary 
workaround for some Google3 builds.
+#if defined(JUMPER_IS_NEON) && defined(__aarch64__) && 
!defined(SK_BUILD_FOR_GOOGLE3)  // Temporary workaround for some Google3 builds.
     return vcvt_f16_f32(f);
 
 #elif defined(JUMPER_IS_HSW) || defined(JUMPER_IS_AVX512)
++++++ chromium-skia-neon.patch ++++++
>From b84682f31dc99b9c90f5a04947075815697c68d9 Mon Sep 17 00:00:00 2001
From: Jose Dapena Paz <jose.dap...@lge.com>
Date: Wed, 07 Mar 2018 20:07:48 +0000
Subject: [PATCH] GCC: do not initialize NEON int32x4_t with braces initializer

GCC does not support int32x4_t loading using braces wrapping 4 ints.
Instead we should use the NEON intrinsic to load from an array of
ints.

Bug: 819294
Change-Id: I13b877405273e4ebcc944d50c155ee29ff31cc99
Reviewed-on: https://chromium-review.googlesource.com/951773
Commit-Queue: Mike Klein <mtkl...@chromium.org>
Reviewed-by: Mike Klein <mtkl...@chromium.org>
Cr-Commit-Position: refs/heads/master@{#541544}
---

diff --git a/skia/ext/convolver_neon.cc b/skia/ext/convolver_neon.cc
index 26b91b9..cae6bc2 100644
--- a/skia/ext/convolver_neon.cc
+++ b/skia/ext/convolver_neon.cc
@@ -23,7 +23,7 @@
     remainder[2] += coeff * pixels_left[i * 4 + 2];
     remainder[3] += coeff * pixels_left[i * 4 + 3];
   }
-  return {remainder[0], remainder[1], remainder[2], remainder[3]};
+  return vld1q_s32(remainder);
 }
 
 // Convolves horizontally along a single row. The row data is given in
@@ -336,4 +336,4 @@
   }
 }
 
-}  // namespace skia
\ No newline at end of file
+}  // namespace skia

++++++ chromium-skia-system-fontconfig.patch ++++++
--- a/third_party/skia/src/ports/SkFontHost_FreeType.cpp        2017-10-10 
17:42:06.956950985 +0200
+++ b/third_party/skia/src/ports/SkFontHost_FreeType.cpp        2017-10-10 
17:46:05.824187787 +0200
@@ -99,8 +99,6 @@
     FreeTypeLibrary()
         : fGetVarDesignCoordinates(nullptr)
         , fLibrary(nullptr)
-        , fIsLCDSupported(false)
-        , fLCDExtra(0)
     {
         if (FT_New_Library(&gFTMemory, &fLibrary)) {
             return;
@@ -147,12 +145,7 @@
         }
 #endif
 
-        // Setup LCD filtering. This reduces color fringes for LCD smoothed 
glyphs.
-        // The default has changed over time, so this doesn't mean the same 
thing to all users.
-        if (FT_Library_SetLcdFilter(fLibrary, FT_LCD_FILTER_DEFAULT) == 0) {
-            fIsLCDSupported = true;
-            fLCDExtra = 2; //Using a filter adds one full pixel to each side.
-        }
+        FT_Library_SetLcdFilter(fLibrary, FT_LCD_FILTER_DEFAULT);
     }
     ~FreeTypeLibrary() {
         if (fLibrary) {
@@ -161,8 +153,6 @@
     }
 
     FT_Library library() { return fLibrary; }
-    bool isLCDSupported() { return fIsLCDSupported; }
-    int lcdExtra() { return fLCDExtra; }
 
     // FT_Get_{MM,Var}_{Blend,Design}_Coordinates were added in FreeType 2.7.1.
     // Prior to this there was no way to get the coordinates out of the 
FT_Face.
@@ -173,8 +163,6 @@
 
 private:
     FT_Library fLibrary;
-    bool fIsLCDSupported;
-    int fLCDExtra;
 
     // FT_Library_SetLcdFilterWeights was introduced in FreeType 2.4.0.
     // The following platforms provide FreeType of at least 2.4.0.
@@ -704,17 +692,6 @@
         rec->fTextSize = SkIntToScalar(1 << 14);
     }
 
-    if (isLCD(*rec)) {
-        // TODO: re-work so that FreeType is set-up and selected by the 
SkFontMgr.
-        SkAutoMutexAcquire ama(gFTMutex);
-        ref_ft_library();
-        if (!gFTLibrary->isLCDSupported()) {
-            // If the runtime Freetype library doesn't support LCD, disable it 
here.
-            rec->fMaskFormat = SkMask::kA8_Format;
-        }
-        unref_ft_library();
-    }
-
     SkPaint::Hinting h = rec->getHinting();
     if (SkPaint::kFull_Hinting == h && !isLCD(*rec)) {
         // collapse full->normal hinting if we're not doing LCD
@@ -1115,11 +1092,11 @@
 void SkScalerContext_FreeType::updateGlyphIfLCD(SkGlyph* glyph) {
     if (isLCD(fRec)) {
         if (fLCDIsVert) {
-            glyph->fHeight += gFTLibrary->lcdExtra();
-            glyph->fTop -= gFTLibrary->lcdExtra() >> 1;
+            glyph->fHeight += 2;
+            glyph->fTop -= 1;
         } else {
-            glyph->fWidth += gFTLibrary->lcdExtra();
-            glyph->fLeft -= gFTLibrary->lcdExtra() >> 1;
+            glyph->fWidth += 2;
+            glyph->fLeft -= 1;
         }
     }
 }

Reply via email to