From a98a0f7394dc5c31b713e7eecb467926902758774c25bd264183323788812545 Mon Sep 17 00:00:00 2001 From: Dominique Leuenberger Date: Thu, 21 Mar 2019 08:41:52 +0000 Subject: [PATCH] Accepting request 685657 from KDE:Qt5 Qt 5.12.2 OBS-URL: https://build.opensuse.org/request/show/685657 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/libqt5-qtwebengine?expand=0&rev=44 --- chromium-66.0.3359.170-gcc8-alignof.patch | 25 --- ...le-gpu-when-using-nouveau-boo-1005323.diff | 16 +- gn-fix_arm.patch | 207 ------------------ libqt5-qtwebengine.changes | 34 +++ libqt5-qtwebengine.spec | 13 +- qtwebengine-everywhere-src-5.12.0.tar.xz | 3 - qtwebengine-everywhere-src-5.12.2.tar.xz | 3 + 7 files changed, 50 insertions(+), 251 deletions(-) delete mode 100644 chromium-66.0.3359.170-gcc8-alignof.patch delete mode 100644 gn-fix_arm.patch delete mode 100644 qtwebengine-everywhere-src-5.12.0.tar.xz create mode 100644 qtwebengine-everywhere-src-5.12.2.tar.xz diff --git a/chromium-66.0.3359.170-gcc8-alignof.patch b/chromium-66.0.3359.170-gcc8-alignof.patch deleted file mode 100644 index 467b313..0000000 --- a/chromium-66.0.3359.170-gcc8-alignof.patch +++ /dev/null @@ -1,25 +0,0 @@ -From: Fedora -Subject: Fix build for 32-bit platforms - -Apparently not upstream, can't find this anywhere. So I assume Fedora is the actual source? -https://src.fedoraproject.org/cgit/rpms/chromium.git/tree/chromium-66.0.3359.170-gcc8-alignof.patch - -Index: qtwebengine-everywhere-src-5.12.0-beta1/src/3rdparty/chromium/mojo/public/c/system/macros.h -=================================================================== ---- qtwebengine-everywhere-src-5.12.0-beta1.orig/src/3rdparty/chromium/mojo/public/c/system/macros.h -+++ qtwebengine-everywhere-src-5.12.0-beta1/src/3rdparty/chromium/mojo/public/c/system/macros.h -@@ -27,7 +27,13 @@ - (sizeof(void*) == 4 ? 32 : 0) - - // Like the C++11 |alignof| operator. --#if __cplusplus >= 201103L -+#if defined(__GNUC__) && __GNUC__ >= 8 -+// GCC 8 has changed the alignof operator to return the minimal alignment -+// required by the target ABI, instead of the preferred alignment. -+// This means that on 32-bit x86, it will return 4 instead of 8. -+// Use __alignof__ instead to avoid this. -+#define MOJO_ALIGNOF(type) __alignof__(type) -+#elif __cplusplus >= 201103L - #define MOJO_ALIGNOF(type) alignof(type) - #elif defined(__GNUC__) - #define MOJO_ALIGNOF(type) __alignof__(type) diff --git a/disable-gpu-when-using-nouveau-boo-1005323.diff b/disable-gpu-when-using-nouveau-boo-1005323.diff index 5859668..83626b3 100644 --- a/disable-gpu-when-using-nouveau-boo-1005323.diff +++ b/disable-gpu-when-using-nouveau-boo-1005323.diff @@ -7,11 +7,11 @@ It also crashes when running on wayland, the cause is not yet known. Work around these issues by not doing GPU-accelerated rendering in such cases. -Index: qtwebengine-everywhere-src-5.12.0-alpha/src/core/web_engine_context.cpp +Index: qtwebengine-everywhere-src-5.12.1/src/core/web_engine_context.cpp =================================================================== ---- qtwebengine-everywhere-src-5.12.0-alpha.orig/src/core/web_engine_context.cpp -+++ qtwebengine-everywhere-src-5.12.0-alpha/src/core/web_engine_context.cpp -@@ -101,6 +101,7 @@ +--- qtwebengine-everywhere-src-5.12.1.orig/src/core/web_engine_context.cpp ++++ qtwebengine-everywhere-src-5.12.1/src/core/web_engine_context.cpp +@@ -102,6 +102,7 @@ #include #ifndef QT_NO_OPENGL # include @@ -19,7 +19,7 @@ Index: qtwebengine-everywhere-src-5.12.0-alpha/src/core/web_engine_context.cpp #endif #include #include -@@ -162,6 +163,39 @@ void dummyGetPluginCallback(const std::v +@@ -161,6 +162,39 @@ void dummyGetPluginCallback(const std::v } #endif @@ -59,7 +59,7 @@ Index: qtwebengine-everywhere-src-5.12.0-alpha/src/core/web_engine_context.cpp } // namespace namespace QtWebEngineCore { -@@ -440,6 +474,27 @@ WebEngineContext::WebEngineContext() +@@ -449,6 +483,27 @@ WebEngineContext::WebEngineContext() const char *glType = 0; #ifndef QT_NO_OPENGL @@ -87,9 +87,9 @@ Index: qtwebengine-everywhere-src-5.12.0-alpha/src/core/web_engine_context.cpp bool tryGL = !usingANGLE() && (!usingSoftwareDynamicGL() -@@ -450,7 +505,7 @@ WebEngineContext::WebEngineContext() +@@ -457,7 +512,7 @@ WebEngineContext::WebEngineContext() + // performant, but at least provides WebGL support. || enableWebGLSoftwareRendering - #endif ) - && !usingQtQuick2DRenderer(); + && !usingQtQuick2DRenderer() && !disableGpu; diff --git a/gn-fix_arm.patch b/gn-fix_arm.patch deleted file mode 100644 index bbedd25..0000000 --- a/gn-fix_arm.patch +++ /dev/null @@ -1,207 +0,0 @@ -From bf9a9d0532d7749901082ffce976d182672c2d36 Mon Sep 17 00:00:00 2001 -From: Allan Sandfeld Jensen -Date: Mon, 10 Dec 2018 14:35:22 +0100 -Subject: [PATCH 1/1] Fix building gn on arm - -Two arm header files were missing. - -Change-Id: I3d9cd03c682b9de6b38e75085bcda9deef81b5fa -Fixes: QTBUG-72393 -Reviewed-by: Michal Klocek ---- -PATH updated by guillaume@opensuse.org to match qt path - - src/3rdparty/gn/base/numerics/safe_conversions_arm_impl.h | 51 +++++++++++ - src/3rdparty/gn/base/numerics/safe_math_arm_impl.h | 122 +++++++++++++++++++++++++++ - 2 files changed, 173 insertions(+) - create mode 100644 src/3rdparty/gn/base/numerics/safe_conversions_arm_impl.h - create mode 100644 src/3rdparty/gn/base/numerics/safe_math_arm_impl.h - -diff --git a/src/3rdparty/gn/base/numerics/safe_conversions_arm_impl.h b/src/3rdparty/gn/base/numerics/safe_conversions_arm_impl.h -new file mode 100644 -index 0000000000..da5813f65e ---- /dev/null -+++ b/src/3rdparty/gn/base/numerics/safe_conversions_arm_impl.h -@@ -0,0 +1,51 @@ -+// Copyright 2017 The Chromium Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style license that can be -+// found in the LICENSE file. -+ -+#ifndef BASE_NUMERICS_SAFE_CONVERSIONS_ARM_IMPL_H_ -+#define BASE_NUMERICS_SAFE_CONVERSIONS_ARM_IMPL_H_ -+ -+#include -+#include -+#include -+ -+#include "base/numerics/safe_conversions_impl.h" -+ -+namespace base { -+namespace internal { -+ -+// Fast saturation to a destination type. -+template -+struct SaturateFastAsmOp { -+ static const bool is_supported = -+ std::is_signed::value && std::is_integral::value && -+ std::is_integral::value && -+ IntegerBitsPlusSign::value <= IntegerBitsPlusSign::value && -+ IntegerBitsPlusSign::value <= IntegerBitsPlusSign::value && -+ !IsTypeInRangeForNumericType::value; -+ -+ __attribute__((always_inline)) static Dst Do(Src value) { -+ int32_t src = value; -+ typename std::conditional::value, int32_t, -+ uint32_t>::type result; -+ if (std::is_signed::value) { -+ asm("ssat %[dst], %[shift], %[src]" -+ : [dst] "=r"(result) -+ : [src] "r"(src), [shift] "n"(IntegerBitsPlusSign::value <= 32 -+ ? IntegerBitsPlusSign::value -+ : 32)); -+ } else { -+ asm("usat %[dst], %[shift], %[src]" -+ : [dst] "=r"(result) -+ : [src] "r"(src), [shift] "n"(IntegerBitsPlusSign::value < 32 -+ ? IntegerBitsPlusSign::value -+ : 31)); -+ } -+ return static_cast(result); -+ } -+}; -+ -+} // namespace internal -+} // namespace base -+ -+#endif // BASE_NUMERICS_SAFE_CONVERSIONS_ARM_IMPL_H_ -diff --git a/src/3rdparty/gn/base/numerics/safe_math_arm_impl.h b/src/3rdparty/gn/base/numerics/safe_math_arm_impl.h -new file mode 100644 -index 0000000000..a7cda1bb23 ---- /dev/null -+++ b/src/3rdparty/gn/base/numerics/safe_math_arm_impl.h -@@ -0,0 +1,122 @@ -+// Copyright 2017 The Chromium Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style license that can be -+// found in the LICENSE file. -+ -+#ifndef BASE_NUMERICS_SAFE_MATH_ARM_IMPL_H_ -+#define BASE_NUMERICS_SAFE_MATH_ARM_IMPL_H_ -+ -+#include -+#include -+#include -+ -+#include "base/numerics/safe_conversions.h" -+ -+namespace base { -+namespace internal { -+ -+template -+struct CheckedMulFastAsmOp { -+ static const bool is_supported = -+ FastIntegerArithmeticPromotion::is_contained; -+ -+ // The following is much more efficient than the Clang and GCC builtins for -+ // performing overflow-checked multiplication when a twice wider type is -+ // available. The below compiles down to 2-3 instructions, depending on the -+ // width of the types in use. -+ // As an example, an int32_t multiply compiles to: -+ // smull r0, r1, r0, r1 -+ // cmp r1, r1, asr #31 -+ // And an int16_t multiply compiles to: -+ // smulbb r1, r1, r0 -+ // asr r2, r1, #16 -+ // cmp r2, r1, asr #15 -+ template -+ __attribute__((always_inline)) static bool Do(T x, U y, V* result) { -+ using Promotion = typename FastIntegerArithmeticPromotion::type; -+ Promotion presult; -+ -+ presult = static_cast(x) * static_cast(y); -+ *result = static_cast(presult); -+ return IsValueInRangeForNumericType(presult); -+ } -+}; -+ -+template -+struct ClampedAddFastAsmOp { -+ static const bool is_supported = -+ BigEnoughPromotion::is_contained && -+ IsTypeInRangeForNumericType< -+ int32_t, -+ typename BigEnoughPromotion::type>::value; -+ -+ template -+ __attribute__((always_inline)) static V Do(T x, U y) { -+ // This will get promoted to an int, so let the compiler do whatever is -+ // clever and rely on the saturated cast to bounds check. -+ if (IsIntegerArithmeticSafe::value) -+ return saturated_cast(x + y); -+ -+ int32_t result; -+ int32_t x_i32 = x; -+ int32_t y_i32 = y; -+ -+ asm("qadd %[result], %[first], %[second]" -+ : [result] "=r"(result) -+ : [first] "r"(x_i32), [second] "r"(y_i32)); -+ return saturated_cast(result); -+ } -+}; -+ -+template -+struct ClampedSubFastAsmOp { -+ static const bool is_supported = -+ BigEnoughPromotion::is_contained && -+ IsTypeInRangeForNumericType< -+ int32_t, -+ typename BigEnoughPromotion::type>::value; -+ -+ template -+ __attribute__((always_inline)) static V Do(T x, U y) { -+ // This will get promoted to an int, so let the compiler do whatever is -+ // clever and rely on the saturated cast to bounds check. -+ if (IsIntegerArithmeticSafe::value) -+ return saturated_cast(x - y); -+ -+ int32_t result; -+ int32_t x_i32 = x; -+ int32_t y_i32 = y; -+ -+ asm("qsub %[result], %[first], %[second]" -+ : [result] "=r"(result) -+ : [first] "r"(x_i32), [second] "r"(y_i32)); -+ return saturated_cast(result); -+ } -+}; -+ -+template -+struct ClampedMulFastAsmOp { -+ static const bool is_supported = CheckedMulFastAsmOp::is_supported; -+ -+ template -+ __attribute__((always_inline)) static V Do(T x, U y) { -+ // Use the CheckedMulFastAsmOp for full-width 32-bit values, because -+ // it's fewer instructions than promoting and then saturating. -+ if (!IsIntegerArithmeticSafe::value && -+ !IsIntegerArithmeticSafe::value) { -+ V result; -+ if (CheckedMulFastAsmOp::Do(x, y, &result)) -+ return result; -+ return CommonMaxOrMin(IsValueNegative(x) ^ IsValueNegative(y)); -+ } -+ -+ assert((FastIntegerArithmeticPromotion::is_contained)); -+ using Promotion = typename FastIntegerArithmeticPromotion::type; -+ return saturated_cast(static_cast(x) * -+ static_cast(y)); -+ } -+}; -+ -+} // namespace internal -+} // namespace base -+ -+#endif // BASE_NUMERICS_SAFE_MATH_ARM_IMPL_H_ --- -2.16.3 - diff --git a/libqt5-qtwebengine.changes b/libqt5-qtwebengine.changes index 277dd39..c106523 100644 --- a/libqt5-qtwebengine.changes +++ b/libqt5-qtwebengine.changes @@ -1,3 +1,37 @@ +------------------------------------------------------------------- +Thu Mar 14 08:52:25 UTC 2019 - fabian@ritter-vogt.de + +- Update to 5.12.2: + * New bugfix release + * For more details please see: + * http://code.qt.io/cgit/qt/qtwebengine.git/plain/dist/changes-5.12.2/?h=5.12.2 +- Remove patches, now upstream: + * cve-2019-5786.patch + +------------------------------------------------------------------- +Mon Mar 11 16:14:07 UTC 2019 - Martin Herkt <9+suse@cirno.systems> + +- Add cve-2019-5786.patch + Backport fix for CVE-2019-5786 + https://bugreports.qt.io/browse/QTBUG-74254 + +------------------------------------------------------------------- +Mon Feb 4 14:16:08 UTC 2019 - wbauer@tmo.at + +- Fix build on Leap 42.3 by adding c++14 to QT_CONFIG + +------------------------------------------------------------------- +Fri Feb 1 08:40:35 UTC 2019 - fabian@ritter-vogt.de + +- Update to 5.12.1: + * New bugfix release + * For more details please see: + * http://code.qt.io/cgit/qt/qtwebengine.git/plain/dist/changes-5.12.1/?h=v5.12.1 +- Refresh disable-gpu-when-using-nouveau-boo-1005323.diff +- Remove patches, now upstream: + * gn-fix_arm.patch + * chromium-66.0.3359.170-gcc8-alignof.patch + ------------------------------------------------------------------- Mon Jan 21 14:14:56 UTC 2019 - Bernhard Wiedemann diff --git a/libqt5-qtwebengine.spec b/libqt5-qtwebengine.spec index 2cae53c..5125a51 100644 --- a/libqt5-qtwebengine.spec +++ b/libqt5-qtwebengine.spec @@ -52,16 +52,16 @@ %global _qtwebengine_dictionaries_dir %{_libqt5_datadir}/qtwebengine_dictionaries Name: libqt5-qtwebengine -Version: 5.12.0 +Version: 5.12.2 Release: 0 Summary: Qt 5 WebEngine Library License: LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only Group: Development/Libraries/X11 Url: https://www.qt.io %define base_name libqt5 -%define real_version 5.12.0 -%define so_version 5.12.0 -%define tar_version qtwebengine-everywhere-src-5.12.0 +%define real_version 5.12.2 +%define so_version 5.12.2 +%define tar_version qtwebengine-everywhere-src-5.12.2 Source: https://download.qt.io/official_releases/qt/5.12/%{real_version}/submodules/%{tar_version}.tar.xz Source1: baselibs.conf # PATCH-FIX-UPSTREAM armv6-ffmpeg-no-thumb.patch - Fix ffmpeg configuration for armv6 @@ -70,10 +70,6 @@ Patch1: armv6-ffmpeg-no-thumb.patch Patch2: disable-gpu-when-using-nouveau-boo-1005323.diff # PATCH-FIX-UPSTREAM harmony-fix.diff -- Show the patent-free LCD rendering. Without this patch, only grayscale rendering is used. (for freetype-2.8.1) boo#1061344 Patch5: harmony-fix.diff -# PATCH-FIX-UPSTREAM gn-fix_arm.patch -- https://bugreports.qt.io/browse/QTBUG-72393 -Patch6: gn-fix_arm.patch -# PATCH-FIX-UPSTREAM -Patch8: chromium-66.0.3359.170-gcc8-alignof.patch # PATCH-FIX-OPENSUSE (copied from the chromium package) Patch9: chromium-non-void-return.patch # PATCH-FIX-UPSTREAM reproducible.patch -- https://bugs.chromium.org/p/chromium/issues/detail?id=740363 boo#1047218 @@ -270,6 +266,7 @@ mkdir .git # ARGH! echo "QT_GCC_MAJOR_VERSION = 7" > qtwebengine_new.pro echo "QT_GCC_MINOR_VERSION = 2" >> qtwebengine_new.pro +echo "QT_CONFIG += c++14" >> qtwebengine_new.pro cat qtwebengine.pro >> qtwebengine_new.pro mv qtwebengine{_new,}.pro %endif diff --git a/qtwebengine-everywhere-src-5.12.0.tar.xz b/qtwebengine-everywhere-src-5.12.0.tar.xz deleted file mode 100644 index 612a523..0000000 --- a/qtwebengine-everywhere-src-5.12.0.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:bd581e390a30e0f74d41b0e3334b3cf612dd4af23de36a3bf5931d5b4453687c -size 252044400 diff --git a/qtwebengine-everywhere-src-5.12.2.tar.xz b/qtwebengine-everywhere-src-5.12.2.tar.xz new file mode 100644 index 0000000..c7460c5 --- /dev/null +++ b/qtwebengine-everywhere-src-5.12.2.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:082b1d6e60c1be61881bc8533acc67d9688620d6b3a538417f62b27b34ead493 +size 249240772