Hello community, here is the log from the commit of package libqt5-qtwebkit for openSUSE:Factory checked in at 2018-02-19 12:59:29 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libqt5-qtwebkit (Old) and /work/SRC/openSUSE:Factory/.libqt5-qtwebkit.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libqt5-qtwebkit" Mon Feb 19 12:59:29 2018 rev:45 rq:576797 version:5.212~alpha2 Changes: -------- --- /work/SRC/openSUSE:Factory/libqt5-qtwebkit/libqt5-qtwebkit.changes 2017-12-23 12:15:14.967978658 +0100 +++ /work/SRC/openSUSE:Factory/.libqt5-qtwebkit.new/libqt5-qtwebkit.changes 2018-02-19 12:59:32.665157326 +0100 @@ -1,0 +2,47 @@ +Wed Dec 20 10:12:41 UTC 2017 - [email protected] + +- Add patch to fix build failure with CMake 3.10 + * fix-build-with-cmake-3.10.diff +- Use Gstreamer for audio/video support optional + +------------------------------------------------------------------- +Tue Dec 12 12:58:44 UTC 2017 - [email protected] + +- Add patch to keep the same private symbol version scheme: + * tell-the-truth-about-private-api.patch +- Add patch to fix detection of OpenGL ES 2.0 with Qt >= 5.8: + * fix-gles-detection.patch +- Add patch to enable symbol versioning for libQt5WebKit.so.5 as well: + * qt5webkit-symver.patch + +------------------------------------------------------------------- +Tue Dec 12 11:49:08 UTC 2017 - [email protected] + +- Ported to Konstantin Tokarev's <[email protected]> QtWebKit fork + version 5.212.0 Alpha 2 (FATE#323918, bsc#1050469) + * Based on WebKitGTK 2.12 (uses CMake instead of QMake) + * Newer WebKit base + * Improved support for web standards + * Many bugfixes and patched security holes inherited from upstream WebKit + * For more details please see: + https://github.com/annulen/webkit/releases/tag/qtwebkit-5.212.0-alpha + and + https://github.com/annulen/webkit/releases/tag/qtwebkit-5.212.0-alpha2 +- Drop unneeded patches + * 03_hide_std_symbols.diff + * 04_enable_debug_information.diff + * 05-fix-linker-errors.diff + * 7dac8c2d5f743563df76c2347c6ad394b6779ffc.patch + * fix-build-icu59.patch + * no-Werror-rpath.diff + * reduce-link-optimization.diff + * workaround-gcc7-crash.patch +- Set minimum amount of RAM in _constraints to 10 GiB for x86_64 +- Add patch to always enable X11 target build: + * enable_x11_target_always.patch +- Add patch to work around gcc7-related crash: + * webkit-fix-WTF-StringImpl-copyChars-segfaults-with-gcc7.patch +- Corrected License tag. QtWebKit is just LGPL-2.1+ and does not follow Qt's + commercial-inspired licensing scheme of (L)GPLv3-only. + +------------------------------------------------------------------- Old: ---- 03_hide_std_symbols.diff 04_enable_debug_information.diff 05-fix-linker-errors.diff 7dac8c2d5f743563df76c2347c6ad394b6779ffc.patch fix-build-icu59.patch no-Werror-rpath.diff qtwebkit-opensource-src-5.9.0.tar.xz reduce-link-optimization.diff workaround-gcc7-crash.patch New: ---- enable_x11_target_always.patch fix-build-with-cmake-3.10.diff fix-gles-detection.patch qt5webkit-symver.patch qtwebkit-5.212.0-alpha2.tar.xz tell-the-truth-about-private-api.patch webkit-fix-WTF-StringImpl-copyChars-segfaults-with-gcc7.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libqt5-qtwebkit.spec ++++++ --- /var/tmp/diff_new_pack.HJN93A/_old 2018-02-19 12:59:39.784900555 +0100 +++ /var/tmp/diff_new_pack.HJN93A/_new 2018-02-19 12:59:39.788900412 +0100 @@ -15,75 +15,82 @@ # Please submit bugfixes or comments via http://bugs.opensuse.org/ # +%bcond_without avsupport %define qt5_snapshot 0 %define libname libQt5WebKitWidgets5 +%define base_name qtwebkit +%define real_version 5.212 +%define so_version 5.212 +%define full_version 5.212.0 +%define required_qt5 5.2 +%define prerel_version alpha2 +%define tar_version %{base_name}-%{full_version}-%{prerel_version} +%define make_jobs /usr/bin/make -j4 VERBOSE=1 Name: libqt5-qtwebkit -Version: 5.9.0 +Version: 5.212~%{prerel_version} Release: 0 -%define base_name libqt5 -%define real_version 5.9.0 -%define so_version 5.9.0 -%define tar_version qtwebkit-opensource-src-%{real_version} -# Workaround ppc64le build failures due to OOM issue, bnc#863533 -%ifarch ppc64le -%define make_jobs /usr/bin/make -j4 VERBOSE=1 -%endif Summary: Qt 5 WebKit Library -License: LGPL-2.1-with-Qt-Company-Qt-exception-1.1 or LGPL-3.0-with-Qt-Company-Qt-exception-1.1 +License: LGPL-2.1+ Group: Development/Libraries/X11 Url: https://www.qt.io -Source: https://download.qt.io/community_releases/5.9/%{real_version}-final/%{tar_version}.tar.xz +Source: https://github.com/annulen/webkit/releases/download/%{tar_version}/%{tar_version}.tar.xz Source1: baselibs.conf Source99: libqt5-qtwebkit-rpmlintrc -Patch1: 04_enable_debug_information.diff -# PATCH-FIX-OPENSUSE 03_hide_std_symbols.diff [email protected] -- Do not make the std:: symbols in webkit public (taken from Ubuntu) -Patch2: 03_hide_std_symbols.diff -Patch3: reduce-link-optimization.diff -Patch4: 7dac8c2d5f743563df76c2347c6ad394b6779ffc.patch -# PATCH-FIX-OPENSUSE 05-fix-linker-errors.diff [email protected] -- Fix linking errors -Patch5: 05-fix-linker-errors.diff -# PATCH-FIX-UPSTREAM fix-build-icu59.patch -Patch6: fix-build-icu59.patch -# PATCH-FIX-UPSTREAM workaround-gcc7-crash.patch -Patch7: workaround-gcc7-crash.patch -# PATCH-MISSING-TAG -- See http://wiki.opensuse.org/openSUSE:Packaging_Patches_guidelines -Patch130: no-Werror-rpath.diff - -BuildRequires: libQt5Core-private-headers-devel >= %{version} -BuildRequires: libQt5Gui-private-headers-devel >= %{version} -BuildRequires: libQt5Widgets-private-headers-devel >= %{version} -BuildRequires: libqt5-qtdeclarative-private-headers-devel >= %{version} -BuildRequires: libqt5-qtlocation-private-headers-devel >= %{version} -BuildRequires: pkgconfig(Qt5Core) >= %{version} -BuildRequires: pkgconfig(Qt5Location) >= %{version} -BuildRequires: pkgconfig(Qt5Network) >= %{version} -BuildRequires: pkgconfig(Qt5OpenGL) >= %{version} -BuildRequires: pkgconfig(Qt5PrintSupport) >= %{version} -BuildRequires: pkgconfig(Qt5Quick) >= %{version} -BuildRequires: pkgconfig(Qt5Sensors) >= %{version} -BuildRequires: pkgconfig(Qt5Sql) >= %{version} -BuildRequires: pkgconfig(Qt5Test) >= %{version} -BuildRequires: pkgconfig(Qt5WebChannel) >= %{version} -BuildRequires: pkgconfig(Qt5Widgets) >= %{version} -%if 0%{?suse_version} < 1315 -BuildRequires: pkgconfig(gstreamer-0.10) -BuildRequires: pkgconfig(gstreamer-app-0.10) -BuildRequires: pkgconfig(gstreamer-base-0.10) -BuildRequires: pkgconfig(gstreamer-interfaces-0.10) -BuildRequires: pkgconfig(gstreamer-pbutils-0.10) -BuildRequires: pkgconfig(gstreamer-plugins-base-0.10) -BuildRequires: pkgconfig(gstreamer-video-0.10) +# PATCH-FIX-OPENSUSE Enable X11 target build always as we didn't ship Xcb Plugin cmake file - [email protected] +Patch0: enable_x11_target_always.patch +# PATCH-FIX-OPENSUSE +Patch1: tell-the-truth-about-private-api.patch +# PATCH-FIX-UPSTREAM Fix segfaults when built with gcc7 - [email protected] +Patch2: webkit-fix-WTF-StringImpl-copyChars-segfaults-with-gcc7.patch +# PATCH-FIX-UPSTREAM Fix build when Qt uses OpenGL ES 2 +Patch3: fix-gles-detection.patch +# PATCH-FIX-OPENSUSE +Patch4: qt5webkit-symver.patch +# PATCH-FIX-UPSTREAM https://github.com/annulen/webkit/commit/f51554bf104ab0491370f66631fe46143a23d5c2 +Patch5: fix-build-with-cmake-3.10.diff + +# openSUSE Leap 42.x defaults to GCC 4 +%if 0%{?suse_version} == 1315 +%define _cxx g++-6 +%define _cc gcc-6 +BuildRequires: gcc6 +BuildRequires: gcc6-c++ +#!BuildIgnore: libgcc_s1 %else +%define _cxx g++ +%define _cc gcc +BuildRequires: gcc +BuildRequires: gcc-c++ +%endif +%if %{with avsupport} BuildRequires: pkgconfig(gstreamer-1.0) BuildRequires: pkgconfig(gstreamer-app-1.0) BuildRequires: pkgconfig(gstreamer-base-1.0) BuildRequires: pkgconfig(gstreamer-pbutils-1.0) BuildRequires: pkgconfig(gstreamer-plugins-base-1.0) BuildRequires: pkgconfig(gstreamer-video-1.0) +%define _avSupport ON +%else +%define _avSupport OFF %endif +BuildRequires: libQt5Core-private-headers-devel >= %{required_qt5} +BuildRequires: libQt5Gui-private-headers-devel >= %{required_qt5} +BuildRequires: libQt5Widgets-private-headers-devel >= %{required_qt5} +BuildRequires: libqt5-qtdeclarative-private-headers-devel >= %{required_qt5} +BuildRequires: libqt5-qtlocation-private-headers-devel >= %{required_qt5} +BuildRequires: pkgconfig(Qt5Core) >= %{required_qt5} +BuildRequires: pkgconfig(Qt5Location) >= %{required_qt5} +BuildRequires: pkgconfig(Qt5Network) >= %{required_qt5} +BuildRequires: pkgconfig(Qt5OpenGL) >= %{required_qt5} +BuildRequires: pkgconfig(Qt5PrintSupport) >= %{required_qt5} +BuildRequires: pkgconfig(Qt5Quick) >= %{required_qt5} +BuildRequires: pkgconfig(Qt5Sensors) >= %{required_qt5} +BuildRequires: pkgconfig(Qt5Test) >= %{required_qt5} +BuildRequires: pkgconfig(Qt5WebChannel) >= %{required_qt5} +BuildRequires: pkgconfig(Qt5Widgets) >= %{required_qt5} BuildRequires: bison BuildRequires: flex BuildRequires: gperf @@ -92,6 +99,7 @@ BuildRequires: libxslt-devel BuildRequires: python-xml BuildRequires: ruby +BuildRequires: hyphen-devel BuildRequires: pkgconfig(fontconfig) BuildRequires: pkgconfig(gl) BuildRequires: pkgconfig(glib-2.0) @@ -120,23 +128,18 @@ the full screen as specified within the QML application. %prep -%setup -q -n qtwebkit-opensource-src-%{real_version} +%setup -q -n %{tar_version} +%patch0 -p1 %patch1 -p1 %patch2 -p1 %patch3 -p1 -%patch4 -Rp1 +%patch4 -p1 %patch5 -p1 -%patch6 -p1 -%patch7 -p1 -%patch130 -p1 %package -n %libname Summary: Qt 5 WebKit Widget library Group: Development/Libraries/X11 Requires: libQt5WebKit5 = %version -%requires_ge libQt5OpenGL5 -%requires_ge libQt5PrintSupport5 -%requires_ge libQt5Widgets5 %description -n %libname The Qt WebKit module provides the WebView API, which allows QML @@ -147,12 +150,6 @@ %package -n libQt5WebKit5 Summary: Qt5 WebKit Library Group: Development/Libraries/X11 -%requires_ge libQt5Gui5 -%requires_ge libQt5Network5 -%requires_ge libQt5Positioning5 -%requires_ge libQt5Sensors5 -%requires_ge libQt5Sql5 -%requires_ge libQt5WebChannel5 %description -n libQt5WebKit5 You need this package if you want to compile programs with qtwebkit. @@ -164,39 +161,37 @@ # imports splited with 5.4.1 Conflicts: libQt5WebKit5 < 5.4.1 Requires: libQt5WebKit5 = %version -%requires_ge libQtQuick5 %description -n libQt5WebKit5-imports You need this package if you want to compile programs with qtwebkit. %package -n libQt5WebKitWidgets-devel -Summary: Development files for the Qt5 Webkit Widgets library +Summary: Development files for the Qt5 WebKit Widgets library Group: Development/Libraries/X11 Requires: %libname = %{version} Requires: libQt5WebKit5-devel = %{version} -Requires: libqt5-qtdeclarative-devel >= %{version} -Requires: libqt5-qtsensors-devel >= %{version} +Requires: libqt5-qtdeclarative-devel +Requires: libqt5-qtsensors-devel %description -n libQt5WebKitWidgets-devel You need this package if you want to compile programs with qtwebkit. %package -n libQt5WebKit5-devel -Summary: Development files for the Qt5 Webkit library +Summary: Development files for the Qt5 WebKit library Group: Development/Libraries/X11 Requires: libQt5WebKit5 = %version -Requires: pkgconfig(Qt5Core) >= %version -Requires: pkgconfig(Qt5Gui) >= %version -Requires: pkgconfig(Qt5Network) >= %version -Requires: pkgconfig(Qt5Qml) >= %version -Requires: pkgconfig(Qt5Quick) >= %version -Requires: pkgconfig(Qt5Sensors) >= %version -Requires: pkgconfig(Qt5Sql) >= %version +Requires: pkgconfig(Qt5Core) +Requires: pkgconfig(Qt5Gui) +Requires: pkgconfig(Qt5Network) +Requires: pkgconfig(Qt5Qml) +Requires: pkgconfig(Qt5Quick) +Requires: pkgconfig(Qt5Sensors) %description -n libQt5WebKit5-devel You need this package if you want to compile programs with qtwebkit. %package -n libQt5WebKitWidgets-private-headers-devel -Summary: Non-ABI stable experimental API for the Qt5 Webkit Widgets library +Summary: Non-ABI stable experimental API for the Qt5 WebKit Widgets library Group: Development/Libraries/C and C++ BuildArch: noarch Requires: libQt5WebKit-private-headers-devel = %{version} @@ -209,7 +204,7 @@ the exact Qt version. %package -n libQt5WebKit-private-headers-devel -Summary: Non-ABI stable experimental API for the Qt5 Webkit library +Summary: Non-ABI stable experimental API for the Qt5 WebKit library Group: Development/Libraries/C and C++ BuildArch: noarch Requires: libQt5WebKit5-devel = %{version} @@ -221,7 +216,7 @@ the exact Qt version. %package devel -Summary: Development files for the Qt5 Webkit library +Summary: Development files for the Qt5 WebKit library Group: Development/Libraries/X11 Requires: libQt5WebKit5-devel = %{version} Requires: libQt5WebKitWidgets-devel = %{version} @@ -253,27 +248,37 @@ %postun -n libQt5WebKit5 -p /sbin/ldconfig %build -#if %qt5_snapshot +%if %qt5_snapshot #force the configure script to generate the forwarding headers (it checks whether .git directory exists) mkdir .git -#endif -export QMAKEPATH=`pwd` -RPM_OPT_FLAGS="$RPM_OPT_FLAGS " -export RPM_OPT_FLAGS=${RPM_OPT_FLAGS/-g / /} -export LDFLAGS="$LDFLAGS -Wl,--reduce-memory-overheads -Wl,--no-keep-memory -Wl,--as-needed" -export PATH=%{_libqt5_bindir}:$PATH -%ifarch aarch64 ppc ppc64 ppc64le s390 s390x -%_libqt5_qmake DEFINES+=ENABLE_JIT=0 DEFINES+=ENABLE_YARR_JIT=0 DEFINES+=ENABLE_ASSEMBLER=0 -%else -%_libqt5_qmake %endif +%global optflags %(echo %{optflags} -Wl,--no-keep-memory -Wl,--reduce-memory-overheads | sed 's/-g /-g1 /') +%cmake -DPORT=Qt \ + -DCMAKE_C_COMPILER=%{_cc} \ + -DCMAKE_CXX_COMPILER=%{_cxx} \ + -DCMAKE_BUILD_TYPE=Release \ + -DENABLE_VIDEO=%{_avSupport} \ + -DENABLE_WEB_AUDIO=%{_avSupport} \ +%ifarch ppc ppc64 ppc64le s390 s390x + -DENABLE_JIT=OFF \ + -DUSE_SYSTEM_MALLOC=ON \ +%endif + -DCMAKE_EXE_LINKER_FLAGS="-Wl,--as-needed -Wl,-z,now -pthread" \ + -DCMAKE_MODULE_LINKER_FLAGS="-Wl,--as-needed -Wl,-z,now -pthread" \ + -DCMAKE_SHARED_LINKER_FLAGS="-Wl,--as-needed -Wl,-z,now -pthread" + %make_jobs %install -%qmake5_install +%cmake_install find %{buildroot}/%{_libqt5_libdir} -type f -name '*la' -print -exec perl -pi -e 's,-L%{_builddir}/\S+,,g' {} + -find %{buildroot}/%{_libqt5_libdir} -type f -name '*pc' -print -exec perl -pi -e "s, -L$RPM_BUILD_DIR/?\S+,,g" {} + -exec sed -i -e "s,^moc_location=.*,moc_location=%{_lib}qt5_bindir/moc," -e "s,uic_location=.*,uic_location=%{_lib}qt5_bindir/uic," {} + -find %{buildroot}/%{_libqt5_libdir} -type f -name '*prl' -exec sed -i -e "/^QMAKE_PRL_BUILD_DIR/d" {} + + +# fix pkgconfig file +sed -i '/Name/a Description: Qt5 WebKit module' %{buildroot}%{_libqt5_libdir}/pkgconfig/Qt5WebKit.pc +sed -i "s,Cflags: -I%{_libqt5_includedir}/Qt5WebKit,Cflags: -I%{_libqt5_includedir}/QtWebKit,g" %{buildroot}%{_libqt5_libdir}/pkgconfig/Qt5WebKit.pc + +sed -i '/Name/a Description: Qt5 WebKitWidgets module' %{buildroot}%{_libqt5_libdir}/pkgconfig/Qt5WebKitWidgets.pc +sed -i "s,Cflags: -I%{_libqt5_includedir}/Qt5WebKitWidgets,Cflags: -I%{_libqt5_includedir}/QtWebKitWidgets,g" %{buildroot}%{_libqt5_libdir}/pkgconfig/Qt5WebKitWidgets.pc # kill .la files rm -f %{buildroot}%{_libqt5_libdir}/lib*.la @@ -289,7 +294,9 @@ %defattr(-,root,root,755) %doc LICENSE.* %{_libqt5_libdir}/libQt5WebKit.so.* +%{_libqt5_libexecdir}/QtWebDatabaseProcess %{_libqt5_libexecdir}/QtWebPluginProcess +%{_libqt5_libexecdir}/QtWebNetworkProcess %files -n libQt5WebKit5-imports %defattr(-,root,root,755) @@ -299,35 +306,31 @@ %files -n libQt5WebKitWidgets-private-headers-devel %defattr(-,root,root,755) %doc LICENSE.* -%{_libqt5_includedir}/QtWebKitWidgets/%{so_version} +%{_libqt5_includedir}/QtWebKitWidgets/%{full_version} %files -n libQt5WebKit-private-headers-devel %defattr(-,root,root,755) %doc LICENSE.* -%{_libqt5_includedir}/QtWebKit/%{so_version} +%{_libqt5_includedir}/QtWebKit/%{full_version} %files -n libQt5WebKit5-devel %defattr(-,root,root,755) %doc LICENSE.* -%exclude %{_libqt5_includedir}/QtWebKit/%{so_version} +%exclude %{_libqt5_includedir}/QtWebKit/%{full_version} %{_libqt5_includedir}/QtWebKit %{_libqt5_libdir}/cmake/Qt5WebKit -%{_libqt5_libdir}/libQt5WebKit.prl %{_libqt5_libdir}/libQt5WebKit.so %{_libqt5_libdir}/pkgconfig/Qt5WebKit.pc %{_libqt5_archdatadir}/mkspecs/modules/qt_lib_webkit.pri -%{_libqt5_archdatadir}/mkspecs/modules/qt_lib_webkit_private.pri %files -n libQt5WebKitWidgets-devel %defattr(-,root,root,755) %doc LICENSE.* -%exclude %{_libqt5_includedir}/QtWebKitWidgets/%{so_version} +%exclude %{_libqt5_includedir}/QtWebKitWidgets/%{full_version} %{_libqt5_includedir}/QtWebKitWidgets %{_libqt5_libdir}/cmake/Qt5WebKitWidgets -%{_libqt5_libdir}/libQt5WebKitWidgets.prl %{_libqt5_libdir}/libQt5WebKitWidgets.so %{_libqt5_libdir}/pkgconfig/Qt5WebKitWidgets.pc %{_libqt5_archdatadir}/mkspecs/modules/qt_lib_webkitwidgets.pri -%{_libqt5_archdatadir}/mkspecs/modules/qt_lib_webkitwidgets_private.pri %changelog ++++++ _constraints ++++++ --- /var/tmp/diff_new_pack.HJN93A/_old 2018-02-19 12:59:39.824899113 +0100 +++ /var/tmp/diff_new_pack.HJN93A/_new 2018-02-19 12:59:39.824899113 +0100 @@ -1,12 +1,22 @@ <constraints> <hardware> <memory> - <size unit="G">8</size> + <size unit="G">6</size> </memory> <processors>4</processors> </hardware> <overwrite> <conditions> + <arch>x86_64</arch> + </conditions> + <hardware> + <memory> + <size unit="G">10</size> + </memory> + </hardware> + </overwrite> + <overwrite> + <conditions> <arch>s390x</arch> </conditions> <hardware> ++++++ enable_x11_target_always.patch ++++++ From: Max Lin <[email protected]> Subject: Enable X11 target build always openSUSE didn't ship Xcb Plugin's cmake file, it need to make sure X11 target build is on always. Index: qtwebkit-5.212.0-alpha2/Source/cmake/OptionsQt.cmake =================================================================== --- qtwebkit-5.212.0-alpha2.orig/Source/cmake/OptionsQt.cmake +++ qtwebkit-5.212.0-alpha2/Source/cmake/OptionsQt.cmake @@ -154,7 +154,7 @@ endif () # FIXME: Move Qt handling here find_package(Qt5Gui QUIET) -if (UNIX AND TARGET Qt5::QXcbIntegrationPlugin AND NOT APPLE) +if (UNIX AND NOT APPLE) set(ENABLE_X11_TARGET_DEFAULT ON) else () set(ENABLE_X11_TARGET_DEFAULT OFF) ++++++ fix-build-with-cmake-3.10.diff ++++++ >From f51554bf104ab0491370f66631fe46143a23d5c2 Mon Sep 17 00:00:00 2001 From: Konstantin Tokarev <[email protected]> Date: Sat, 7 Oct 2017 17:38:32 +0300 Subject: [PATCH] [cmake] Fix build with CMake 3.10: -frtti was enabled for wrong file path Change-Id: I65d4f491f21c17f6d99a14259988d2ddb0d67105 --- Source/WebKit/PlatformQt.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/WebKit/PlatformQt.cmake b/Source/WebKit/PlatformQt.cmake index 61433257a76..edfa57e97ac 100644 --- a/Source/WebKit/PlatformQt.cmake +++ b/Source/WebKit/PlatformQt.cmake @@ -795,6 +795,7 @@ if (COMPILER_IS_GCC_OR_CLANG) set_source_files_properties( qt/Api/qwebdatabase.cpp qt/Api/qwebelement.cpp + qt/Api/qwebfullscreenrequest.cpp qt/Api/qwebhistory.cpp qt/Api/qwebhistoryinterface.cpp qt/Api/qwebpluginfactory.cpp @@ -804,7 +805,6 @@ if (COMPILER_IS_GCC_OR_CLANG) qt/WidgetApi/qgraphicswebview.cpp qt/WidgetApi/qwebframe.cpp - qt/WidgetApi/qwebfullscreenrequest.cpp qt/WidgetApi/qwebinspector.cpp qt/WidgetApi/qwebpage.cpp qt/WidgetApi/qwebview.cpp -- 2.13.6 ++++++ fix-gles-detection.patch ++++++ >From 23d86b98f095a25b6bc78b9d3654077a7f1f5c04 Mon Sep 17 00:00:00 2001 From: Thiago Macieira <[email protected]> Date: Mon, 3 Jul 2017 12:46:34 -0700 Subject: [PATCH] Fix build when Qt uses OpenGL ES 2 The QT_OPENGL_ES_2 macro is a QtGui feature, so it's not provided by qglobal.h, but instead qtguiglobal.h (a header new in 5.8.0). Using the QtGui/ prefix here to make sure it includes even if WTF/Platform.h is compiled without -I$QTDIR/include/QtGui. Change-Id: I8d96dea9955d4c749b99fffd14cde9c566436381 Reviewed-by: Allan Sandfeld Jensen <[email protected]> --- Source/WTF/wtf/Platform.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Source/WTF/wtf/Platform.h b/Source/WTF/wtf/Platform.h index f3d725217..0666ac710 100644 --- a/Source/WTF/wtf/Platform.h +++ b/Source/WTF/wtf/Platform.h @@ -1052,6 +1052,9 @@ #if PLATFORM(QT) #ifdef __cplusplus #include <qglobal.h> +#if QT_VERSION >= QT_VERSION_CHECK(5,8,0) +#include <QtGui/qtguiglobal.h> +#endif #endif #if defined(QT_OPENGL_ES_2) && !defined(USE_OPENGL_ES_2) #define USE_OPENGL_ES_2 1 -- 2.15.1 ++++++ qt5webkit-symver.patch ++++++ From: Fabian Vogt <[email protected]> Subject: Also use a linker version script for libQt5WebKit To maintain ABI compatibility with the older libQt5WebKit5 packages. https://github.com/annulen/webkit/issues/597 diff --git a/Source/WebKit/CMakeLists.txt b/Source/WebKit/CMakeLists.txt index 82dc1e662a5..bfe480c7cf4 100644 --- a/Source/WebKit/CMakeLists.txt +++ b/Source/WebKit/CMakeLists.txt @@ -78,6 +78,13 @@ if (${PORT} STREQUAL "Qt") if (ENABLE_WEBKIT2) add_dependencies(WebKit WebKit2) endif () + + set(VERSION_SCRIPT "${CMAKE_BINARY_DIR}/QtWebKit.version") + add_custom_command(TARGET WebKit PRE_LINK + COMMAND ${PERL_EXECUTABLE} ${TOOLS_DIR}/qt/generate-version-script.pl ${Qt5_VERSION} > ${VERSION_SCRIPT} + VERBATIM + ) + set_target_properties(WebKit PROPERTIES LINK_FLAGS -Wl,--version-script,${VERSION_SCRIPT}) endif () add_dependencies(WebKit WebCore) diff --git a/Source/WebKit2/CMakeLists.txt b/Source/WebKit2/CMakeLists.txt index e5d08ed68ba..6736689a2d1 100644 --- a/Source/WebKit2/CMakeLists.txt +++ b/Source/WebKit2/CMakeLists.txt @@ -776,6 +776,13 @@ if (WebKit2_VERSION_SCRIPT) ADD_TARGET_PROPERTIES(WebKit2 LINK_FLAGS "${WebKit2_VERSION_SCRIPT}") endif () +set(VERSION_SCRIPT "${CMAKE_BINARY_DIR}/QtWebKit2.version") +add_custom_command(TARGET WebKit2 PRE_LINK + COMMAND ${PERL_EXECUTABLE} ${TOOLS_DIR}/qt/generate-version-script.pl ${Qt5_VERSION} > ${VERSION_SCRIPT} + VERBATIM +) +set_target_properties(WebKit2 PROPERTIES LINK_FLAGS -Wl,--version-script,${VERSION_SCRIPT}) + add_executable(WebProcess ${WebProcess_SOURCES}) add_webkit2_prefix_header(WebProcess) target_link_libraries(WebProcess ${WebProcess_LIBRARIES}) ++++++ tell-the-truth-about-private-api.patch ++++++ From: Fabian Vogt <[email protected]> Subject: Tell the same truth as QtCore about the private API It may change with each new release, so also include the minor and patch versions in the symbol version. Index: qtwebkit-5.212.0-alpha2/Tools/qt/generate-version-script.pl =================================================================== --- qtwebkit-5.212.0-alpha2.orig/Tools/qt/generate-version-script.pl +++ qtwebkit-5.212.0-alpha2/Tools/qt/generate-version-script.pl @@ -32,14 +32,15 @@ my $qtNamespace = shift @ARGV; die "Usage: $0 <Qt version> [Qt namespace]\n" unless $qtVer; -$qtVer =~ /^(\d+)\.(\d+)\.\d+$/ or die "$qtVer is not valid Qt version\n"; +$qtVer =~ /^(\d+)\.(\d+)\.(\d+)$/ or die "$qtVer is not valid Qt version\n"; my $major = $1; my $minor = $2; +my $patch = $3; # Next code tries to mirror logic of mkspecs/features/qt_module.prf say -"Qt_${major}_PRIVATE_API { +"Qt_${major}.${minor}.${patch}_PRIVATE_API { qt_private_api_tag*; };"; ++++++ webkit-fix-WTF-StringImpl-copyChars-segfaults-with-gcc7.patch ++++++ >From 7175db5f8c38b3f3f3146a085719285ea440e459 Mon Sep 17 00:00:00 2001 From: "[email protected]" <[email protected]@268f45cc-cd09-0410-ab3c-d52691b4dbfc> Date: Thu, 6 Jul 2017 02:31:35 +0000 Subject: [PATCH] WTF::StringImpl::copyChars segfaults when built with GCC 7 https://bugs.webkit.org/show_bug.cgi?id=173407 Reviewed by Andreas Kling. JSTests: * stress/string-repeat-copy-chars-crash.js: Added. (shouldBe): Source/WTF: With GCC 7, StringImpl::copyChars() behaves as unexpected. This function violates strict aliasing rule. This optimization is originally introduced to improve performance in SunSpider's string tests in 2008. When running it in my Linux box, it no longer causes any observable difference. So, we just remove this optimization. baseline patched string-base64 7.7544+-0.1761 7.6138+-0.2071 might be 1.0185x faster string-fasta 10.5429+-0.2746 ? 10.7500+-0.2669 ? might be 1.0196x slower string-tagcloud 14.8588+-0.2828 14.8039+-0.3039 string-unpack-code 36.1769+-0.4251 35.3397+-0.5398 might be 1.0237x faster string-validate-input 8.5182+-0.2206 8.3514+-0.2179 might be 1.0200x faster * wtf/text/StringImpl.h: (WTF::StringImpl::copyChars): git-svn-id: http://svn.webkit.org/repository/webkit/trunk@219182 268f45cc-cd09-0410-ab3c-d52691b4dbfc --- JSTests/ChangeLog | 10 +++++++++ JSTests/stress/string-repeat-copy-chars-crash.js | 8 ++++++++ Source/WTF/ChangeLog | 26 ++++++++++++++++++++++++ Source/WTF/wtf/text/StringImpl.h | 23 +-------------------- 4 files changed, 45 insertions(+), 22 deletions(-) create mode 100644 JSTests/stress/string-repeat-copy-chars-crash.js Index: qtwebkit-5.212.0-alpha2/Source/WTF/wtf/text/StringImpl.h =================================================================== --- qtwebkit-5.212.0-alpha2.orig/Source/WTF/wtf/text/StringImpl.h +++ qtwebkit-5.212.0-alpha2/Source/WTF/wtf/text/StringImpl.h @@ -619,25 +619,7 @@ public: *destination = *source; return; } - - if (numCharacters <= s_copyCharsInlineCutOff) { - unsigned i = 0; -#if (CPU(X86) || CPU(X86_64)) - const unsigned charsPerInt = sizeof(uint32_t) / sizeof(T); - - if (numCharacters > charsPerInt) { - unsigned stopCount = numCharacters & ~(charsPerInt - 1); - - const uint32_t* srcCharacters = reinterpret_cast<const uint32_t*>(source); - uint32_t* destCharacters = reinterpret_cast<uint32_t*>(destination); - for (unsigned j = 0; i < stopCount; i += charsPerInt, ++j) - destCharacters[j] = srcCharacters[j]; - } -#endif - for (; i < numCharacters; ++i) - destination[i] = source[i]; - } else - memcpy(destination, source, numCharacters * sizeof(T)); + memcpy(destination, source, numCharacters * sizeof(T)); } ALWAYS_INLINE static void copyChars(UChar* destination, const LChar* source, unsigned numCharacters) @@ -855,9 +837,6 @@ private: return *tailPointer<StringImpl*>(); } - // This number must be at least 2 to avoid sharing empty, null as well as 1 character strings from SmallStrings. - static const unsigned s_copyCharsInlineCutOff = 20; - enum class CaseConvertType { Upper, Lower }; template<CaseConvertType type, typename CharacterType> static Ref<StringImpl> convertASCIICase(StringImpl&, const CharacterType*, unsigned);
