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; } } }