diff options
author | Martchus | 2016-12-09 08:13:36 +0100 |
---|---|---|
committer | Martchus | 2016-12-09 08:13:36 +0100 |
commit | 9a80c510256e336c3fc871a8d3890438356aeb00 (patch) | |
tree | 7ca2e4cf03b16f60e30c2ea52cdcb31c373d789f | |
parent | 6b651f77658909ef1f6626413c70d79f5f9538ee (diff) | |
download | aur-9a80c510256e336c3fc871a8d3890438356aeb00.tar.gz |
Update to 5.7.0
20 files changed, 565 insertions, 1501 deletions
@@ -1,14 +1,17 @@ # Generated by mksrcinfo v8 -# Thu Jun 16 08:09:03 UTC 2016 +# Fri Dec 9 07:13:36 UTC 2016 pkgbase = mingw-w64-qt5-webkit pkgdesc = Classes for a WebKit2 based implementation and a new QML API (mingw-w64) - pkgver = 5.6.1 - pkgrel = 1 + pkgver = 5.7.0 + pkgrel = 3 url = https://www.qt.io/ arch = any groups = mingw-w64-qt groups = mingw-w64-qt5 - license = custom, FDL, GPL3, LGPL + license = GPL3 + license = LGPL + license = FDL + license = custom makedepends = mingw-w64-gcc makedepends = python makedepends = gperf @@ -30,26 +33,26 @@ pkgbase = mingw-w64-qt5-webkit options = !strip options = !buildflags options = staticlibs - source = https://download.qt.io/community_releases/5.6/5.6.1/qtwebkit-opensource-src-5.6.1.tar.xz - source = qt5-qtwebkit-dont-depend-on-icu.patch - source = qt5-qtwebkit-enable-pkgconfig-support-for-win32-target.patch - source = qt5-qtwebkit-fix-compatibility-with-latest-angle.patch - source = qt5-qtwebkit-use-correct-icu-libs.patch - source = qt5-qtwebkit-workaround-build-breakage-after-svn-commit-136242.patch - source = qtwebkit-dont-use-bundled-angle-libraries.patch - source = qtwebkit-opensource-src-5.0.1-debuginfo.patch - source = revert-qt4-unicode-removal.patch - source = webkit-commit-151422.patch - md5sums = 9ea7cb557375ba2fc7c62742c522d093 - md5sums = 37dd6b694e1e178aa8b1815f7fe3537d - md5sums = ac574de962545d6a9e975b4db63c3e09 - md5sums = 4ad37c7d4dda8e77bb0a25c671f79adc - md5sums = 228f28df2b10e417a325176f7878ebe1 - md5sums = 18b21fd8e9517f48db7748544d2aa92f - md5sums = f452210683386f9c28f04d7dea0ecfc7 - md5sums = 6aba6468efafb64943887079e258b799 - md5sums = 4e374836f26853b4d82be0e87aa584a5 - md5sums = c36fe581e0f3b61cef19415782b257ca + source = https://download.qt.io/community_releases/5.7/5.7.0/qtwebkit-opensource-src-5.7.0.tar.xz + source = 0001-Use-correct-ICU-libs.patch + source = 0002-Use-pkg-config.patch + source = 0003-Use-system-ANGLE-rather-than-bundled-version.patch + source = 0004-Prevent-symbols-not-being-exported-in-Qt5WebKit.dll.patch + source = 0005-Build-with-smaller-debug-info.patch + source = 0006-Establish-compatibility-with-latest-ANGLE.patch + source = 0007-Include-intrin.h-for-declaration-of-_mm_mfence.patch + source = 0008-Link-against-ANGLE-even-if-Qt-is-configured-not-to.patch + source = 0009-Fixed-crash-probably-miscompilation-with-MinGW-w64-5.patch + sha256sums = c7a3253cbf8e6035c54c3b08d8a9457bd82efbce71d4b363c8f753fd07bd34df + sha256sums = 922c12e3726cfcecd99d773a3135ea05a36bd325c24cf07463d21f8778d5c5a0 + sha256sums = 2f7887173f777c6fb5ff49a37e1015b8e1d8f22f692917b0b0a24e22ad3022c5 + sha256sums = 8c0dc51d02814577c4ac557493a2b7d7b74311649bf3c91072e798fd7b2d7a98 + sha256sums = 3e9893be250bcadf2a3437f2fd1cc0d454211e315071939d9ebf27f00d600253 + sha256sums = cc0c239676f747b9c30fe1b774a5208fde5650f02f8388379d164d9ccaccab17 + sha256sums = b87eaa3c18764347f04a8d5fcae322052a194508ea0ba6eb2cd69db6385633c1 + sha256sums = 4da5c29a054a8a087b95f4a7788aee83a1a4388efa948150f8cf4e233ec426bc + sha256sums = 79587af527bbb80d7954de6fb23c279493166e88c0f44e3aaa956964b04fbd3e + sha256sums = 8302e606050da917b01fa3af8388c0d7ae6ff999129b8eb2ed27bcf5d4d37dd9 pkgname = mingw-w64-qt5-webkit diff --git a/0001-Use-correct-ICU-libs.patch b/0001-Use-correct-ICU-libs.patch new file mode 100644 index 000000000000..0c1695889285 --- /dev/null +++ b/0001-Use-correct-ICU-libs.patch @@ -0,0 +1,27 @@ +From 27c479ef693e765326b22d2f4cd1424593711f18 Mon Sep 17 00:00:00 2001 +From: Martchus <martchus@gmx.net> +Date: Sun, 25 Sep 2016 21:53:59 +0200 +Subject: [PATCH 1/9] Use correct ICU libs + +The ICU libraries used for cross-compilation are named +exactly the same as their native Linux counterpart +--- + Source/WTF/WTF.pri | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Source/WTF/WTF.pri b/Source/WTF/WTF.pri +index b4f7765..e762387 100644 +--- a/Source/WTF/WTF.pri ++++ b/Source/WTF/WTF.pri +@@ -14,7 +14,7 @@ mac { + INCLUDEPATH = $${ROOT_WEBKIT_DIR}/Source/WTF/icu $$INCLUDEPATH + LIBS += -licucore + } else:!use?(wchar_unicode): { +- win32 { ++ win32:!mingw { + CONFIG(static, static|shared) { + CONFIG(debug, debug|release) { + LIBS += -lsicuind -lsicuucd -lsicudtd +-- +2.10.2 + diff --git a/0002-Use-pkg-config.patch b/0002-Use-pkg-config.patch new file mode 100644 index 000000000000..3e58f5cb1f49 --- /dev/null +++ b/0002-Use-pkg-config.patch @@ -0,0 +1,25 @@ +From f879e4f9efd0cca7acd1f09953bc645107a42d21 Mon Sep 17 00:00:00 2001 +From: Martchus <martchus@gmx.net> +Date: Sun, 25 Sep 2016 21:56:42 +0200 +Subject: [PATCH 2/9] Use pkg-config + +--- + Tools/qmake/mkspecs/features/win32/default_pre.prf | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/Tools/qmake/mkspecs/features/win32/default_pre.prf b/Tools/qmake/mkspecs/features/win32/default_pre.prf +index b306c3b..95592c2 100644 +--- a/Tools/qmake/mkspecs/features/win32/default_pre.prf ++++ b/Tools/qmake/mkspecs/features/win32/default_pre.prf +@@ -4,6 +4,8 @@ + # See 'Tools/qmake/README' for an overview of the build system + # ------------------------------------------------------------------- + ++CONFIG += link_pkgconfig ++ + load(default_pre) + + debug: CONFIG += use_all_in_one_files +-- +2.10.2 + diff --git a/0003-Use-system-ANGLE-rather-than-bundled-version.patch b/0003-Use-system-ANGLE-rather-than-bundled-version.patch new file mode 100644 index 000000000000..076331dae804 --- /dev/null +++ b/0003-Use-system-ANGLE-rather-than-bundled-version.patch @@ -0,0 +1,68 @@ +From b22f0368b4d4d167fcc342bffb602c9c41578233 Mon Sep 17 00:00:00 2001 +From: Martchus <martchus@gmx.net> +Date: Sat, 5 Nov 2016 12:14:01 +0100 +Subject: [PATCH 3/9] Use system ANGLE rather than bundled version + +--- + Source/api.pri | 1 - + Tools/qmake/mkspecs/features/webkit_modules.prf | 2 +- + Tools/qmake/mkspecs/modules/angle.prf | 3 --- + WebKit.pro | 6 ------ + 4 files changed, 1 insertion(+), 11 deletions(-) + +diff --git a/Source/api.pri b/Source/api.pri +index de04652..f972f67 100644 +--- a/Source/api.pri ++++ b/Source/api.pri +@@ -24,7 +24,6 @@ build?(webkit1): { + } + build?(webkit2): QMAKE_INTERNAL_INCLUDED_FILES *= WebKit2/Target.pri + +-use?(3D_GRAPHICS): WEBKIT += angle + use?(leveldb):!use?(system_leveldb) WEBKIT += leveldb + + MODULE = webkit +diff --git a/Tools/qmake/mkspecs/features/webkit_modules.prf b/Tools/qmake/mkspecs/features/webkit_modules.prf +index 7040cbb..8c13175 100644 +--- a/Tools/qmake/mkspecs/features/webkit_modules.prf ++++ b/Tools/qmake/mkspecs/features/webkit_modules.prf +@@ -7,7 +7,7 @@ + + # Reorder libraries so that the link and include order is correct, + # and make sure the case matches the original case. +-libraries = WebKit1 WebKit2 WebCore ANGLE leveldb JavaScriptCore WTF ++libraries = WebKit1 WebKit2 WebCore leveldb JavaScriptCore WTF + for(library, libraries) { + contains(WEBKIT, $$lower($$library)) { + WEBKIT -= $$lower($$library) +diff --git a/Tools/qmake/mkspecs/modules/angle.prf b/Tools/qmake/mkspecs/modules/angle.prf +index 18631a7..3b04dea 100644 +--- a/Tools/qmake/mkspecs/modules/angle.prf ++++ b/Tools/qmake/mkspecs/modules/angle.prf +@@ -4,6 +4,3 @@ + # See 'Tools/qmake/README' for an overview of the build system + # ------------------------------------------------------------------- + +-WEBKIT.angle.root_source_dir = $${ROOT_WEBKIT_DIR}/Source/ThirdParty/ANGLE +- +-include($${WEBKIT.angle.root_source_dir}/ANGLE.pri) +diff --git a/WebKit.pro b/WebKit.pro +index 11b59e5..e9709a2 100644 +--- a/WebKit.pro ++++ b/WebKit.pro +@@ -18,12 +18,6 @@ JavaScriptCore.file = Source/JavaScriptCore/JavaScriptCore.pro + JavaScriptCore.makefile = Makefile.JavaScriptCore + SUBDIRS += JavaScriptCore + +-use?(3D_GRAPHICS) { +- ANGLE.file = Source/ThirdParty/ANGLE/ANGLE.pro +- ANGLE.makefile = Makefile.ANGLE +- SUBDIRS += ANGLE +-} +- + use?(leveldb):!use?(system_leveldb) { + leveldb.file = Source/ThirdParty/leveldb/leveldb.pro + leveldb.makefile = Makefile.leveldb +-- +2.10.2 + diff --git a/0004-Prevent-symbols-not-being-exported-in-Qt5WebKit.dll.patch b/0004-Prevent-symbols-not-being-exported-in-Qt5WebKit.dll.patch new file mode 100644 index 000000000000..5bc89b121b32 --- /dev/null +++ b/0004-Prevent-symbols-not-being-exported-in-Qt5WebKit.dll.patch @@ -0,0 +1,46 @@ +From 516214945fcf3aa7a04845eafa5f9fa9531024b3 Mon Sep 17 00:00:00 2001 +From: Martchus <martchus@gmx.net> +Date: Sun, 25 Sep 2016 22:08:26 +0200 +Subject: [PATCH 4/9] Prevent symbols not being exported in Qt5WebKit.dll + +WebKit svn commit 136242 implemented a split into QtWebKit and QtWebKitWidgets. +Due to this change a static library named WebKit1.a is created first. +After this a shared library is created named Qt5WebKit.dll which contains +the contents of this static library and some other object files. +However, various symbols in the static library are expected to be exported +in the Qt5WebKit.dll shared library. As static libraries normally don't care +about exported symbols (everything is exported after all) the decoration +attribute Q_DECL_EXPORT won't be set. +This results in undefined references when trying to link the QtWebKitWidgets +shared library (which depends on various symbols which aren't exported properly +in the Qt5WebKit.dll shared library). +--- + Source/WebKit/qt/Api/qwebkitglobal.h | 5 ----- + 1 file changed, 5 deletions(-) + +diff --git a/Source/WebKit/qt/Api/qwebkitglobal.h b/Source/WebKit/qt/Api/qwebkitglobal.h +index fe222c2..46d629c 100644 +--- a/Source/WebKit/qt/Api/qwebkitglobal.h ++++ b/Source/WebKit/qt/Api/qwebkitglobal.h +@@ -24,7 +24,6 @@ + #include <QtCore/qglobal.h> + #include <QtCore/qstring.h> + +-#ifndef QT_STATIC + # if !defined(QT_BUILD_WEBKITWIDGETS_LIB) && defined(BUILDING_WEBKIT) + # define QWEBKIT_EXPORT Q_DECL_EXPORT + # else +@@ -35,10 +34,6 @@ + # else + # define QWEBKITWIDGETS_EXPORT Q_DECL_IMPORT + # endif +-#else +-# define QWEBKITWIDGETS_EXPORT +-# define QWEBKIT_EXPORT +-#endif + + QWEBKIT_EXPORT QString qWebKitVersion(); + QWEBKIT_EXPORT int qWebKitMajorVersion(); +-- +2.10.2 + diff --git a/qtwebkit-opensource-src-5.0.1-debuginfo.patch b/0005-Build-with-smaller-debug-info.patch index d41241817c81..3685911fe9a3 100644 --- a/qtwebkit-opensource-src-5.0.1-debuginfo.patch +++ b/0005-Build-with-smaller-debug-info.patch @@ -1,6 +1,21 @@ -diff -up qtwebkit-opensource-src-5.0.1/Source/JavaScriptCore/JavaScriptCore.pri.debuginfo qtwebkit-opensource-src-5.0.1/Source/JavaScriptCore/JavaScriptCore.pri ---- qtwebkit-opensource-src-5.0.1/Source/JavaScriptCore/JavaScriptCore.pri.debuginfo 2013-01-29 13:03:49.000000000 -0600 -+++ qtwebkit-opensource-src-5.0.1/Source/JavaScriptCore/JavaScriptCore.pri 2013-02-23 13:54:22.578460045 -0600 +From 24d4206f6cd79ae3f6ed70897fbf327aed0730bb Mon Sep 17 00:00:00 2001 +From: Martchus <martchus@gmx.net> +Date: Sun, 25 Sep 2016 22:13:44 +0200 +Subject: [PATCH 5/9] Build with smaller debug info + +Avoid exceeding 4 GB size limit +--- + Source/JavaScriptCore/JavaScriptCore.pri | 6 ++++++ + Source/WTF/WTF.pri | 6 ++++++ + Source/WebCore/WebCore.pri | 7 +++++++ + Source/WebKit/WebKit1.pri | 6 ++++++ + Source/WebKit2/WebKit2.pri | 6 ++++++ + 5 files changed, 31 insertions(+) + +diff --git a/Source/JavaScriptCore/JavaScriptCore.pri b/Source/JavaScriptCore/JavaScriptCore.pri +index dec9d42..910fc4e 100644 +--- a/Source/JavaScriptCore/JavaScriptCore.pri ++++ b/Source/JavaScriptCore/JavaScriptCore.pri @@ -7,6 +7,12 @@ SOURCE_DIR = $${ROOT_WEBKIT_DIR}/Source/JavaScriptCore @@ -14,9 +29,27 @@ diff -up qtwebkit-opensource-src-5.0.1/Source/JavaScriptCore/JavaScriptCore.pri. JAVASCRIPTCORE_GENERATED_SOURCES_DIR = $${ROOT_BUILD_DIR}/Source/JavaScriptCore/$${GENERATED_SOURCES_DESTDIR} INCLUDEPATH += \ -diff -up qtwebkit-opensource-src-5.0.1/Source/WebCore/WebCore.pri.debuginfo qtwebkit-opensource-src-5.0.1/Source/WebCore/WebCore.pri ---- qtwebkit-opensource-src-5.0.1/Source/WebCore/WebCore.pri.debuginfo 2013-01-29 13:03:41.000000000 -0600 -+++ qtwebkit-opensource-src-5.0.1/Source/WebCore/WebCore.pri 2013-02-23 13:57:16.984279672 -0600 +diff --git a/Source/WTF/WTF.pri b/Source/WTF/WTF.pri +index e762387..86900ce 100644 +--- a/Source/WTF/WTF.pri ++++ b/Source/WTF/WTF.pri +@@ -8,6 +8,12 @@ + # All external modules should include WTF headers by prefixing with "wtf" (#include <wtf/some/thing.h>). + INCLUDEPATH += $$PWD + ++#equals(QT_ARCH, s390)|equals(QT_ARCH, arm)|equals(QT_ARCH, mips)|equals(QT_ARCH, i386)|equals(QT_ARCH, i686)|equals(QT_ARCH, x86_64) { ++# message("WTF workaround for QtWebkit: do not build with -g, but with -g1") ++# QMAKE_CXXFLAGS -= -g ++# QMAKE_CXXFLAGS += -g1 ++#} ++ + mac { + # Mac OS does ship libicu but not the associated header files. + # Therefore WebKit provides adequate header files. +diff --git a/Source/WebCore/WebCore.pri b/Source/WebCore/WebCore.pri +index 37cde57..ddad897 100644 +--- a/Source/WebCore/WebCore.pri ++++ b/Source/WebCore/WebCore.pri @@ -7,6 +7,12 @@ SOURCE_DIR = $${ROOT_WEBKIT_DIR}/Source/WebCore @@ -30,7 +63,7 @@ diff -up qtwebkit-opensource-src-5.0.1/Source/WebCore/WebCore.pri.debuginfo qtwe QT *= network sql core-private gui-private WEBCORE_GENERATED_SOURCES_DIR = $${ROOT_BUILD_DIR}/Source/WebCore/$${GENERATED_SOURCES_DESTDIR} -@@ -302,6 +308,7 @@ +@@ -316,6 +322,7 @@ mac { unix:!mac:*-g++*:QMAKE_CXXFLAGS += -fdata-sections unix:!mac:*-g++*:QMAKE_LFLAGS += -Wl,--gc-sections linux*-g++*:QMAKE_LFLAGS += $$QMAKE_LFLAGS_NOUNDEF @@ -38,25 +71,10 @@ diff -up qtwebkit-opensource-src-5.0.1/Source/WebCore/WebCore.pri.debuginfo qtwe enable_fast_mobile_scrolling: DEFINES += ENABLE_FAST_MOBILE_SCROLLING=1 -diff -up qtwebkit-opensource-src-5.0.1/Source/WebKit2/WebKit2.pri.debuginfo qtwebkit-opensource-src-5.0.1/Source/WebKit2/WebKit2.pri ---- qtwebkit-opensource-src-5.0.1/Source/WebKit2/WebKit2.pri.debuginfo 2013-01-29 13:03:39.000000000 -0600 -+++ qtwebkit-opensource-src-5.0.1/Source/WebKit2/WebKit2.pri 2013-02-23 13:54:22.579460033 -0600 -@@ -9,6 +9,12 @@ SOURCE_DIR = $${ROOT_WEBKIT_DIR}/Source/ - - WEBKIT2_GENERATED_SOURCES_DIR = $${ROOT_BUILD_DIR}/Source/WebKit2/$${GENERATED_SOURCES_DESTDIR} - -+#equals(QT_ARCH, s390)|equals(QT_ARCH, arm)|equals(QT_ARCH, mips)|equals(QT_ARCH, i386)|equals(QT_ARCH, i686)|equals(QT_ARCH, x86_64) { -+# message("WebKit2 workaround for QtWebkit: do not build with -g, but with -g1") -+# QMAKE_CXXFLAGS -= -g -+# QMAKE_CXXFLAGS += -g1 -+#} -+ - INCLUDEPATH += \ - $$SOURCE_DIR \ - $$SOURCE_DIR/Platform \ -diff -up qtwebkit-opensource-src-5.0.1/Source/WebKit/WebKit1.pri.debuginfo qtwebkit-opensource-src-5.0.1/Source/WebKit/WebKit1.pri ---- qtwebkit-opensource-src-5.0.1/Source/WebKit/WebKit1.pri.debuginfo 2013-01-29 13:03:54.000000000 -0600 -+++ qtwebkit-opensource-src-5.0.1/Source/WebKit/WebKit1.pri 2013-02-23 13:54:22.579460033 -0600 +diff --git a/Source/WebKit/WebKit1.pri b/Source/WebKit/WebKit1.pri +index 6fc1829..d86b846 100644 +--- a/Source/WebKit/WebKit1.pri ++++ b/Source/WebKit/WebKit1.pri @@ -7,6 +7,12 @@ SOURCE_DIR = $${ROOT_WEBKIT_DIR}/Source/WebKit @@ -70,19 +88,23 @@ diff -up qtwebkit-opensource-src-5.0.1/Source/WebKit/WebKit1.pri.debuginfo qtweb INCLUDEPATH += \ $$SOURCE_DIR/qt/Api \ $$SOURCE_DIR/qt/WebCoreSupport \ -diff -up qtwebkit-opensource-src-5.0.1/Source/WTF/WTF.pri.debuginfo qtwebkit-opensource-src-5.0.1/Source/WTF/WTF.pri ---- qtwebkit-opensource-src-5.0.1/Source/WTF/WTF.pri.debuginfo 2013-01-29 13:03:38.000000000 -0600 -+++ qtwebkit-opensource-src-5.0.1/Source/WTF/WTF.pri 2013-02-23 13:56:23.584947256 -0600 -@@ -8,6 +8,12 @@ - # All external modules should include WTF headers by prefixing with "wtf" (#include <wtf/some/thing.h>). - INCLUDEPATH += $$PWD +diff --git a/Source/WebKit2/WebKit2.pri b/Source/WebKit2/WebKit2.pri +index 3611524..f54b9ca 100644 +--- a/Source/WebKit2/WebKit2.pri ++++ b/Source/WebKit2/WebKit2.pri +@@ -9,6 +9,12 @@ SOURCE_DIR = $${ROOT_WEBKIT_DIR}/Source/WebKit2 + + WEBKIT2_GENERATED_SOURCES_DIR = $${ROOT_BUILD_DIR}/Source/WebKit2/$${GENERATED_SOURCES_DESTDIR} +#equals(QT_ARCH, s390)|equals(QT_ARCH, arm)|equals(QT_ARCH, mips)|equals(QT_ARCH, i386)|equals(QT_ARCH, i686)|equals(QT_ARCH, x86_64) { -+# message("WTF workaround for QtWebkit: do not build with -g, but with -g1") ++# message("WebKit2 workaround for QtWebkit: do not build with -g, but with -g1") +# QMAKE_CXXFLAGS -= -g +# QMAKE_CXXFLAGS += -g1 +#} + - mac { - # Mac OS does ship libicu but not the associated header files. - # Therefore WebKit provides adequate header files. + INCLUDEPATH += \ + $$SOURCE_DIR \ + $$SOURCE_DIR/Platform \ +-- +2.10.2 + diff --git a/qt5-qtwebkit-fix-compatibility-with-latest-angle.patch b/0006-Establish-compatibility-with-latest-ANGLE.patch index d20ba2c0d83e..a0bc2f006966 100644 --- a/qt5-qtwebkit-fix-compatibility-with-latest-angle.patch +++ b/0006-Establish-compatibility-with-latest-ANGLE.patch @@ -1,47 +1,21 @@ ---- qtwebkit-opensource-src-5.5.1/Source/WebCore/platform/graphics/ANGLEWebKitBridge.h.orig 2015-10-13 06:37:18.000000000 +0200 -+++ qtwebkit-opensource-src-5.5.1/Source/WebCore/platform/graphics/ANGLEWebKitBridge.h 2016-03-09 17:17:26.000000000 +0100 -@@ -35,13 +35,14 @@ - #include "GLSLANG/ShaderLang.h" - #else - #include "ShaderLang.h" -+#include "angle_gl.h" - #endif - - namespace WebCore { - - enum ANGLEShaderType { -- SHADER_TYPE_VERTEX = SH_VERTEX_SHADER, -- SHADER_TYPE_FRAGMENT = SH_FRAGMENT_SHADER, -+ SHADER_TYPE_VERTEX = GL_VERTEX_SHADER, -+ SHADER_TYPE_FRAGMENT = GL_FRAGMENT_SHADER, - }; - - enum ANGLEShaderSymbolType { -@@ -53,17 +54,17 @@ - ANGLEShaderSymbolType symbolType; - String name; - String mappedName; -- ShDataType dataType; -+ sh::GLenum dataType; - int size; - bool isArray; - - bool isSampler() const - { - return symbolType == SHADER_SYMBOL_TYPE_UNIFORM -- && (dataType == SH_SAMPLER_2D -- || dataType == SH_SAMPLER_CUBE -- || dataType == SH_SAMPLER_2D_RECT_ARB -- || dataType == SH_SAMPLER_EXTERNAL_OES); -+ && (dataType == GL_SAMPLER_2D -+ || dataType == GL_SAMPLER_CUBE -+ || dataType == GL_SAMPLER_2D_RECT_ARB -+ || dataType == GL_SAMPLER_EXTERNAL_OES); - } - }; - ---- qtwebkit-opensource-src-5.5.1/Source/WebCore/platform/graphics/ANGLEWebKitBridge.cpp.orig 2015-10-13 06:37:17.000000000 +0200 -+++ qtwebkit-opensource-src-5.5.1/Source/WebCore/platform/graphics/ANGLEWebKitBridge.cpp 2016-03-09 20:45:20.000000000 +0100 +From 967f96d827bc9af129fd1431b97de0dc9a076bef Mon Sep 17 00:00:00 2001 +From: Martchus <martchus@gmx.net> +Date: Sun, 25 Sep 2016 22:19:57 +0200 +Subject: [PATCH 6/9] Establish compatibility with latest ANGLE + +--- + .../platform/graphics/ANGLEWebKitBridge.cpp | 126 ++++----------------- + .../WebCore/platform/graphics/ANGLEWebKitBridge.h | 17 +-- + .../graphics/cairo/GraphicsContext3DCairo.cpp | 2 +- + .../platform/graphics/efl/GraphicsContext3DEfl.cpp | 2 +- + .../graphics/opengl/Extensions3DOpenGLCommon.cpp | 4 +- + .../platform/graphics/qt/GraphicsContext3DQt.cpp | 2 +- + 6 files changed, 33 insertions(+), 120 deletions(-) + +diff --git a/Source/WebCore/platform/graphics/ANGLEWebKitBridge.cpp b/Source/WebCore/platform/graphics/ANGLEWebKitBridge.cpp +index 9876c9f..84d3a2f 100644 +--- a/Source/WebCore/platform/graphics/ANGLEWebKitBridge.cpp ++++ b/Source/WebCore/platform/graphics/ANGLEWebKitBridge.cpp @@ -32,98 +32,25 @@ namespace WebCore { @@ -153,7 +127,7 @@ symbols.append(symbol); } } -@@ -163,15 +90,14 @@ +@@ -163,15 +90,14 @@ void ANGLEWebKitBridge::setResources(ShBuiltInResources resources) { // Resources are (possibly) changing - cleanup compilers if we had them already cleanupCompilers(); @@ -171,7 +145,7 @@ if (!m_fragmentCompiler || !m_vertexCompiler) { cleanupCompilers(); return false; -@@ -189,31 +115,17 @@ +@@ -189,31 +115,17 @@ bool ANGLEWebKitBridge::compileShaderSource(const char* shaderSource, ANGLEShade const char* const shaderSourceStrings[] = { shaderSource }; @@ -208,9 +182,89 @@ return false; return true; ---- qtwebkit-opensource-src-5.5.1/Source/WebCore/platform/graphics/opengl/Extensions3DOpenGLCommon.cpp.orig 2015-10-13 06:37:17.000000000 +0200 -+++ qtwebkit-opensource-src-5.5.1/Source/WebCore/platform/graphics/opengl/Extensions3DOpenGLCommon.cpp 2016-03-09 17:17:26.000000000 +0100 -@@ -172,7 +172,7 @@ +diff --git a/Source/WebCore/platform/graphics/ANGLEWebKitBridge.h b/Source/WebCore/platform/graphics/ANGLEWebKitBridge.h +index 83c2e00..825c2d0 100644 +--- a/Source/WebCore/platform/graphics/ANGLEWebKitBridge.h ++++ b/Source/WebCore/platform/graphics/ANGLEWebKitBridge.h +@@ -35,13 +35,14 @@ + #include "GLSLANG/ShaderLang.h" + #else + #include "ShaderLang.h" ++#include "angle_gl.h" + #endif + + namespace WebCore { + + enum ANGLEShaderType { +- SHADER_TYPE_VERTEX = SH_VERTEX_SHADER, +- SHADER_TYPE_FRAGMENT = SH_FRAGMENT_SHADER, ++ SHADER_TYPE_VERTEX = GL_VERTEX_SHADER, ++ SHADER_TYPE_FRAGMENT = GL_FRAGMENT_SHADER, + }; + + enum ANGLEShaderSymbolType { +@@ -53,24 +54,24 @@ struct ANGLEShaderSymbol { + ANGLEShaderSymbolType symbolType; + String name; + String mappedName; +- ShDataType dataType; ++ sh::GLenum dataType; + int size; + bool isArray; + + bool isSampler() const + { + return symbolType == SHADER_SYMBOL_TYPE_UNIFORM +- && (dataType == SH_SAMPLER_2D +- || dataType == SH_SAMPLER_CUBE +- || dataType == SH_SAMPLER_2D_RECT_ARB +- || dataType == SH_SAMPLER_EXTERNAL_OES); ++ && (dataType == GL_SAMPLER_2D ++ || dataType == GL_SAMPLER_CUBE ++ || dataType == GL_SAMPLER_2D_RECT_ARB ++ || dataType == GL_SAMPLER_EXTERNAL_OES); + } + }; + + class ANGLEWebKitBridge { + public: + +- ANGLEWebKitBridge(ShShaderOutput = SH_GLSL_OUTPUT, ShShaderSpec = SH_WEBGL_SPEC); ++ ANGLEWebKitBridge(ShShaderOutput = SH_GLSL_COMPATIBILITY_OUTPUT, ShShaderSpec = SH_WEBGL_SPEC); + ~ANGLEWebKitBridge(); + + ShBuiltInResources getResources() { return m_resources; } +diff --git a/Source/WebCore/platform/graphics/cairo/GraphicsContext3DCairo.cpp b/Source/WebCore/platform/graphics/cairo/GraphicsContext3DCairo.cpp +index d31adf3..3b99ad9 100644 +--- a/Source/WebCore/platform/graphics/cairo/GraphicsContext3DCairo.cpp ++++ b/Source/WebCore/platform/graphics/cairo/GraphicsContext3DCairo.cpp +@@ -80,7 +80,7 @@ PassRefPtr<GraphicsContext3D> GraphicsContext3D::create(GraphicsContext3D::Attri + GraphicsContext3D::GraphicsContext3D(GraphicsContext3D::Attributes attributes, HostWindow*, GraphicsContext3D::RenderStyle renderStyle) + : m_currentWidth(0) + , m_currentHeight(0) +- , m_compiler(isGLES2Compliant() ? SH_ESSL_OUTPUT : SH_GLSL_OUTPUT) ++ , m_compiler(isGLES2Compliant() ? SH_ESSL_OUTPUT : SH_GLSL_COMPATIBILITY_OUTPUT) + , m_attrs(attributes) + , m_texture(0) + , m_fbo(0) +diff --git a/Source/WebCore/platform/graphics/efl/GraphicsContext3DEfl.cpp b/Source/WebCore/platform/graphics/efl/GraphicsContext3DEfl.cpp +index ea25e43..a28c55f 100644 +--- a/Source/WebCore/platform/graphics/efl/GraphicsContext3DEfl.cpp ++++ b/Source/WebCore/platform/graphics/efl/GraphicsContext3DEfl.cpp +@@ -41,7 +41,7 @@ PassRefPtr<GraphicsContext3D> GraphicsContext3D::create(GraphicsContext3D::Attri + GraphicsContext3D::GraphicsContext3D(GraphicsContext3D::Attributes attrs, HostWindow* hostWindow, GraphicsContext3D::RenderStyle renderStyle) + : m_currentWidth(0) + , m_currentHeight(0) +- , m_compiler(isGLES2Compliant() ? SH_ESSL_OUTPUT : SH_GLSL_OUTPUT) ++ , m_compiler(isGLES2Compliant() ? SH_ESSL_OUTPUT : SH_GLSL_COMPATIBILITY_OUTPUT) + , m_attrs(attrs) + , m_renderStyle(renderStyle) + , m_texture(0) +diff --git a/Source/WebCore/platform/graphics/opengl/Extensions3DOpenGLCommon.cpp b/Source/WebCore/platform/graphics/opengl/Extensions3DOpenGLCommon.cpp +index 29a13c8..11f88f1 100644 +--- a/Source/WebCore/platform/graphics/opengl/Extensions3DOpenGLCommon.cpp ++++ b/Source/WebCore/platform/graphics/opengl/Extensions3DOpenGLCommon.cpp +@@ -172,10 +172,10 @@ String Extensions3DOpenGLCommon::getTranslatedShaderSourceANGLE(Platform3DObject String translatedShaderSource; String shaderInfoLog; @@ -218,4 +272,24 @@ + int extraCompileOptions = SH_CLAMP_INDIRECT_ARRAY_BOUNDS; if (m_requiresBuiltInFunctionEmulation) - extraCompileOptions |= SH_EMULATE_BUILT_IN_FUNCTIONS; +- extraCompileOptions |= SH_EMULATE_BUILT_IN_FUNCTIONS; ++ extraCompileOptions |= SH_EMULATE_ABS_INT_FUNCTION; + + Vector<ANGLEShaderSymbol> symbols; + bool isValid = compiler.compileShaderSource(entry.source.utf8().data(), shaderType, translatedShaderSource, shaderInfoLog, symbols, extraCompileOptions); +diff --git a/Source/WebCore/platform/graphics/qt/GraphicsContext3DQt.cpp b/Source/WebCore/platform/graphics/qt/GraphicsContext3DQt.cpp +index 43b546d..73b61e2 100644 +--- a/Source/WebCore/platform/graphics/qt/GraphicsContext3DQt.cpp ++++ b/Source/WebCore/platform/graphics/qt/GraphicsContext3DQt.cpp +@@ -428,7 +428,7 @@ GraphicsContext3D::GraphicsContext3D(GraphicsContext3D::Attributes attrs, HostWi + , m_multisampleColorBuffer(0) + , m_functions(0) + , m_private(adoptPtr(new GraphicsContext3DPrivate(this, hostWindow, renderStyle))) +- , m_compiler(isGLES2Compliant() ? SH_ESSL_OUTPUT : SH_GLSL_OUTPUT) ++ , m_compiler(isGLES2Compliant() ? SH_ESSL_OUTPUT : SH_GLSL_COMPATIBILITY_OUTPUT) + { + if (!m_private->m_surface || !m_private->m_platformContext) { + LOG_ERROR("GraphicsContext3D: GL context creation failed."); +-- +2.10.2 + diff --git a/0007-Include-intrin.h-for-declaration-of-_mm_mfence.patch b/0007-Include-intrin.h-for-declaration-of-_mm_mfence.patch new file mode 100644 index 000000000000..c0cfc92dbcac --- /dev/null +++ b/0007-Include-intrin.h-for-declaration-of-_mm_mfence.patch @@ -0,0 +1,25 @@ +From 24eda987a27f9b8b66acacce9a31cfc34b480154 Mon Sep 17 00:00:00 2001 +From: Martchus <martchus@gmx.net> +Date: Sun, 25 Sep 2016 22:21:54 +0200 +Subject: [PATCH 7/9] Include intrin.h for declaration of _mm_mfence + +--- + Source/WTF/wtf/Atomics.h | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/Source/WTF/wtf/Atomics.h b/Source/WTF/wtf/Atomics.h +index 8f950c7..142c0db 100644 +--- a/Source/WTF/wtf/Atomics.h ++++ b/Source/WTF/wtf/Atomics.h +@@ -68,6 +68,8 @@ + #elif !COMPILER(GCC) + extern "C" void _ReadWriteBarrier(void); + #pragma intrinsic(_ReadWriteBarrier) ++#else ++#include <intrin.h> + #endif + #include <windows.h> + #elif OS(QNX) +-- +2.10.2 + diff --git a/0008-Link-against-ANGLE-even-if-Qt-is-configured-not-to.patch b/0008-Link-against-ANGLE-even-if-Qt-is-configured-not-to.patch new file mode 100644 index 000000000000..49240918681f --- /dev/null +++ b/0008-Link-against-ANGLE-even-if-Qt-is-configured-not-to.patch @@ -0,0 +1,36 @@ +From 4ab08227b87a186d18f9e1806a2405099ac109ed Mon Sep 17 00:00:00 2001 +From: Martchus <martchus@gmx.net> +Date: Sat, 5 Nov 2016 12:46:27 +0100 +Subject: [PATCH 8/9] Link against ANGLE even if Qt is configured not to + +--- + Source/WebCore/WebCore.pri | 12 ++++-------- + 1 file changed, 4 insertions(+), 8 deletions(-) + +diff --git a/Source/WebCore/WebCore.pri b/Source/WebCore/WebCore.pri +index ddad897..f69e224 100644 +--- a/Source/WebCore/WebCore.pri ++++ b/Source/WebCore/WebCore.pri +@@ -215,15 +215,11 @@ enable?(WEB_AUDIO) { + use?(3D_GRAPHICS) { + win32: { + mingw: { +- # Make sure OpenGL libs are after the webcore lib so MinGW can resolve symbols +- contains(QT_CONFIG, opengles2) { +- CONFIG(debug, debug|release):contains(QT_CONFIG, angle) { +- LIBS += $$QMAKE_LIBS_OPENGL_ES2_DEBUG +- } else { +- LIBS += $$QMAKE_LIBS_OPENGL_ES2 +- } ++ # Always link against ANGLE ++ CONFIG(debug, debug|release):contains(QT_CONFIG, angle) { ++ LIBS += $$QMAKE_LIBS_OPENGL_ES2_DEBUG + } else { +- LIBS += $$QMAKE_LIBS_OPENGL ++ LIBS += $$QMAKE_LIBS_OPENGL_ES2 + } + } + } else { +-- +2.10.2 + diff --git a/0009-Fixed-crash-probably-miscompilation-with-MinGW-w64-5.patch b/0009-Fixed-crash-probably-miscompilation-with-MinGW-w64-5.patch new file mode 100644 index 000000000000..f9114eff6e2e --- /dev/null +++ b/0009-Fixed-crash-probably-miscompilation-with-MinGW-w64-5.patch @@ -0,0 +1,51 @@ +From e60cb272ada8e08297c85e22039d6b9a4c9d575c Mon Sep 17 00:00:00 2001 +From: Konstantin Tokarev <annulen@yandex.ru> +Date: Fri, 4 Nov 2016 00:44:49 +0300 +Subject: [PATCH 9/9] Fixed crash (probably miscompilation) with MinGW-w64 + 5.3.0 + +Change-Id: Iac1c5fe1879abfaa299ec909e5928912c2354126 +--- + Source/WebKit/qt/WidgetApi/qwebframe.cpp | 10 ---------- + Source/WebKit/qt/WidgetApi/qwebframe_p.h | 4 ++-- + 2 files changed, 2 insertions(+), 12 deletions(-) + +diff --git a/Source/WebKit/qt/WidgetApi/qwebframe.cpp b/Source/WebKit/qt/WidgetApi/qwebframe.cpp +index dd08725..1cec124 100644 +--- a/Source/WebKit/qt/WidgetApi/qwebframe.cpp ++++ b/Source/WebKit/qt/WidgetApi/qwebframe.cpp +@@ -119,16 +119,6 @@ QWebFrameAdapter* QWebFramePrivate::createChildFrame(QWebFrameData* frameData) + return newFrame->d; + } + +-QWebFrame *QWebFramePrivate::apiHandle() +-{ +- return q; +-} +- +-QObject *QWebFramePrivate::handle() +-{ +- return q; +-} +- + void QWebFramePrivate::contentsSizeDidChange(const QSize &size) + { + emit q->contentsSizeChanged(size); +diff --git a/Source/WebKit/qt/WidgetApi/qwebframe_p.h b/Source/WebKit/qt/WidgetApi/qwebframe_p.h +index 2a1c202..25fbdc3 100644 +--- a/Source/WebKit/qt/WidgetApi/qwebframe_p.h ++++ b/Source/WebKit/qt/WidgetApi/qwebframe_p.h +@@ -49,8 +49,8 @@ public: + static QWebFrame* kit(const QWebFrameAdapter*); + + // Adapter implementation +- virtual QWebFrame* apiHandle() OVERRIDE; +- virtual QObject* handle() OVERRIDE; ++ virtual QWebFrame* apiHandle() OVERRIDE { return q; } ++ virtual QObject* handle() OVERRIDE { return q; } + virtual void contentsSizeDidChange(const QSize &) OVERRIDE; + virtual int scrollBarPolicy(Qt::Orientation) const OVERRIDE; + virtual void emitUrlChanged() OVERRIDE; +-- +2.10.2 + @@ -5,12 +5,18 @@ # All my PKGBUILDs are managed at https://github.com/Martchus/PKGBUILDs where # you also find the URL of a binary repository. -# See the comment below for additional dependencies/functionality. +# See the comments to enable further dependencies/functionality. + +# Includes dynamic and static versions; if only one version is requried, just +# set $NO_STATIC_LIBS or $NO_SHARED_LIBS. + +# All patches are managed at https://github.com/Martchus/qtwebkit +# Note: most patches are originally from http://pkgs.fedoraproject.org/git/rpms/mingw-qt5-qtwebkit.git _qt_module=qtwebkit pkgname=mingw-w64-qt5-webkit -pkgver=5.6.1 -pkgrel=1 +pkgver=5.7.0 +pkgrel=3 arch=('any') pkgdesc="Classes for a WebKit2 based implementation and a new QML API (mingw-w64)" depends=('mingw-w64-qt5-declarative' @@ -26,128 +32,100 @@ depends=('mingw-w64-qt5-declarative' 'mingw-w64-icu' 'mingw-w64-sqlite' 'mingw-w64-libwebp') -# these dependencies will enable further functionality +# These dependencies will enable further functionality #depends+=('mingw-w64-webchannel') #depends+=('mingw-w64-gst-plugins-base') #optdepends+=('mingw-w64-gst-plugins-good: Webm codec support') makedepends=('mingw-w64-gcc' 'python' 'gperf' 'ruby' 'mingw-w64-pkg-config') options=('!strip' '!buildflags' 'staticlibs') -license=("custom, FDL, GPL3, LGPL") +license=('GPL3' 'LGPL' 'FDL' 'custom') url="https://www.qt.io/" _pkgfqn="${_qt_module}-opensource-src-${pkgver}" groups=(mingw-w64-qt mingw-w64-qt5) source=("https://download.qt.io/community_releases/${pkgver:0:3}/${pkgver}/${_pkgfqn}.tar.xz" - qt5-qtwebkit-dont-depend-on-icu.patch - qt5-qtwebkit-enable-pkgconfig-support-for-win32-target.patch - qt5-qtwebkit-fix-compatibility-with-latest-angle.patch - qt5-qtwebkit-use-correct-icu-libs.patch - qt5-qtwebkit-workaround-build-breakage-after-svn-commit-136242.patch - qtwebkit-dont-use-bundled-angle-libraries.patch - qtwebkit-opensource-src-5.0.1-debuginfo.patch - revert-qt4-unicode-removal.patch - webkit-commit-151422.patch) -md5sums=('9ea7cb557375ba2fc7c62742c522d093' - '37dd6b694e1e178aa8b1815f7fe3537d' - 'ac574de962545d6a9e975b4db63c3e09' - '4ad37c7d4dda8e77bb0a25c671f79adc' - '228f28df2b10e417a325176f7878ebe1' - '18b21fd8e9517f48db7748544d2aa92f' - 'f452210683386f9c28f04d7dea0ecfc7' - '6aba6468efafb64943887079e258b799' - '4e374836f26853b4d82be0e87aa584a5' - 'c36fe581e0f3b61cef19415782b257ca') - -_architectures="i686-w64-mingw32 x86_64-w64-mingw32" + '0001-Use-correct-ICU-libs.patch' + '0002-Use-pkg-config.patch' + '0003-Use-system-ANGLE-rather-than-bundled-version.patch' + '0004-Prevent-symbols-not-being-exported-in-Qt5WebKit.dll.patch' + '0005-Build-with-smaller-debug-info.patch' + '0006-Establish-compatibility-with-latest-ANGLE.patch' + '0007-Include-intrin.h-for-declaration-of-_mm_mfence.patch' + '0008-Link-against-ANGLE-even-if-Qt-is-configured-not-to.patch' + '0009-Fixed-crash-probably-miscompilation-with-MinGW-w64-5.patch') +sha256sums=('c7a3253cbf8e6035c54c3b08d8a9457bd82efbce71d4b363c8f753fd07bd34df' + '922c12e3726cfcecd99d773a3135ea05a36bd325c24cf07463d21f8778d5c5a0' + '2f7887173f777c6fb5ff49a37e1015b8e1d8f22f692917b0b0a24e22ad3022c5' + '8c0dc51d02814577c4ac557493a2b7d7b74311649bf3c91072e798fd7b2d7a98' + '3e9893be250bcadf2a3437f2fd1cc0d454211e315071939d9ebf27f00d600253' + 'cc0c239676f747b9c30fe1b774a5208fde5650f02f8388379d164d9ccaccab17' + 'b87eaa3c18764347f04a8d5fcae322052a194508ea0ba6eb2cd69db6385633c1' + '4da5c29a054a8a087b95f4a7788aee83a1a4388efa948150f8cf4e233ec426bc' + '79587af527bbb80d7954de6fb23c279493166e88c0f44e3aaa956964b04fbd3e' + '8302e606050da917b01fa3af8388c0d7ae6ff999129b8eb2ed27bcf5d4d37dd9') + +_architectures='i686-w64-mingw32 x86_64-w64-mingw32' + +# Disable building static version: building static Qt WebKit is not supported since Qt 4.7 +NO_STATIC_LIBS=true + +[[ $NO_STATIC_LIBS ]] || \ + makedepends+=('mingw-w64-qt5-base-static') \ + optdepends+=('mingw-w64-qt5-base-static: use of static libraries') \ + _configurations+=('CONFIG+=static') +[[ $NO_SHARED_LIBS ]] || \ + _configurations+=('CONFIG+=shared') prepare() { cd "${srcdir}/${_pkgfqn}" - # note: most patches are originally from http://pkgs.fedoraproject.org/git/rpms/mingw-qt5-qtwebkit.git - # however, I needed to update most of them in order to update to 5.6.0 and to use the latest ANGLE - - # The ICU libraries used for cross-compilation are named exactly the same as their native Linux counterpart - patch -p1 -b -i ../qt5-qtwebkit-use-correct-icu-libs.patch - - # By default the build system assumes that pkg-config isn't used for the win32 target - # However, we're using it in the Fedora MinGW toolchain so make sure it is used automatically - patch -p0 -b -i ../qt5-qtwebkit-enable-pkgconfig-support-for-win32-target.patch - - # Make sure the bundled copy of the ANGLE library isn't used - patch -p1 -b -i ../qtwebkit-dont-use-bundled-angle-libraries.patch - - # qt5-webkit depends on qt5-base with ICU support. - # As ICU support in qtbase also introduces over 20MB of additional dependency - # bloat (and the qtbase libraries itself are only 13MB) the decision was made - # to build qtbase without ICU support. - # Make sure qtwebkit doesn't depend on a qtbase with ICU support any more - patch -p1 -b -i ../qt5-qtwebkit-dont-depend-on-icu.patch - - # Undo the removal of the old Qt4 based unicode support - # as we want to use it instead of the bloated ICU - patch -p1 -R -b -i ../revert-qt4-unicode-removal.patch - - # WebKit svn commit 136242 implemented a split into QtWebKit and QtWebKitWidgets - # Due to this change a static library named WebKit1.a is created first. - # After this a shared library is created named Qt5WebKit.dll which contains - # the contents of this static library and some other object files. - # However, various symbols in the static library are expected to be exported - # in the Qt5WebKit.dll shared library. As static libraries normally don't care - # about exported symbols (everything is exported after all) the decoration - # attribute Q_DECL_EXPORT won't be set. - # This results in undefined references when trying to link the QtWebKitWidgets - # shared library (which depends on various symbols which aren't exported properly - # in the Qt5WebKit.dll shared library) - patch -p0 -b -i ../qt5-qtwebkit-workaround-build-breakage-after-svn-commit-136242.patch - - # Smaller debuginfo s/-g/-g1/ (debian uses -gstabs) to avoid 4gb size limit - patch -p1 -b -i ../qtwebkit-opensource-src-5.0.1-debuginfo.patch - - # Revert commit 151422 to fix a build failure which happens because we're not using ICU - patch -p1 -R -b -i ../webkit-commit-151422.patch - - # Fix compatibility issue when using the latest ANGLE - patch -p1 -b -i ../qt5-qtwebkit-fix-compatibility-with-latest-angle.patch + # Apply patches; further descriptions can be found in patch files itself + for patch in "$srcdir/"*.patch; do + patch -p1 -i "$patch" + done # Make sure the bundled copy of the ANGLE libraries isn't used rm -rf Source/ThirdParty/ANGLE } build() { - unset PKG_CONFIG_PATH cd "${srcdir}/${_pkgfqn}" + unset PKG_CONFIG_PATH + local default_cpath="$CPATH" for _arch in ${_architectures}; do - mkdir -p build-${_arch} && pushd build-${_arch} - - # Since Source/ThirdParty/ANGLE has been removed ensure files - # from system ANGLE can be included (patches from Fedora don't help - # here because Fedora uses other paths) - export CPATH="$CPATH:/usr/$_arch/include:/usr/$_arch/include/GLSLANG" - - # SH_GLSL_OUTPUT has been renamed to SH_GLSL_COMPATIBILITY_OUTPUT - # in the latest ANGLE version so I just add a definition for backward compatibility - - # intrin.h needs to be included otherwise declaration of _mm_mfence is missing - - ${_arch}-qmake-qt5 \ - "QMAKE_CXXFLAGS+=-Wno-c++0x-compat" \ - "QMAKE_CXXFLAGS+='-include /usr/i686-w64-mingw32/include/intrin.h'" \ - "DEFINES+=SH_GLSL_OUTPUT=SH_GLSL_COMPATIBILITY_OUTPUT" \ - ../WebKit.pro - make - popd + for _config in "${_configurations[@]}"; do + msg2 "Building ${_config##*=} version for ${_arch}" + mkdir -p build-${_arch}-${_config##*=} && pushd build-${_arch}-${_config##*=} + # Since Source/ThirdParty/ANGLE has been removed ensure files from system ANGLE can be included + export CPATH="${default_cpath}:/usr/$_arch/include:/usr/$_arch/include/GLSLANG" + + ${_arch}-qmake-qt5 \ + "QMAKE_CXXFLAGS+=-Wno-c++0x-compat" \ + ../WebKit.pro + make + popd + done done } package() { + cd "${srcdir}/${_pkgfqn}" + for _arch in ${_architectures}; do - cd "${srcdir}/${_pkgfqn}/build-${_arch}" - make INSTALL_ROOT="${pkgdir}" install - - # The .dll's are installed in both bindir and libdir - # One copy of the .dll's is sufficient - rm -f "${pkgdir}/usr/${_arch}/lib/"*.dll - find "${pkgdir}/usr/${_arch}" -name "*.exe" -o -name "*.bat" -o -name "*.def" -o -name "*.exp" -o -name '*.prl' | xargs -rtl1 rm - find "${pkgdir}/usr/${_arch}" -name "*.dll" -exec ${_arch}-strip --strip-unneeded {} \; - find "${pkgdir}/usr/${_arch}" -name "*.a" -o -name "*.dll" | xargs -rtl1 ${_arch}-strip -g + for _config in "${_configurations[@]}"; do + pushd build-${_arch}-${_config##*=} + + make INSTALL_ROOT="$pkgdir" install + find "${pkgdir}/usr/${_arch}/lib" -maxdepth 1 -name "*.dll" -exec rm {} \; + [ "$NO_STATIC_EXECUTABLES" -a "${_config##*=}" = static -o "$NO_EXECUTABLES" ] && \ + find "${pkgdir}/usr/${_arch}" -name "*.exe" -exec rm {} \; || \ + find "${pkgdir}/usr/${_arch}" -name "*.exe" -exec ${_arch}-strip --strip-all {} \; + find "${pkgdir}/usr/${_arch}" -name "*.dll" -exec ${_arch}-strip --strip-unneeded {} \; + find "${pkgdir}/usr/${_arch}" -name "*.a" -exec ${_arch}-strip -g {} \; + [[ -d "${pkgdir}/usr/${_arch}/lib/qt/bin/" ]] && \ + find "${pkgdir}/usr/${_arch}/lib/qt/bin/" -exec strip --strip-all {} \; + find "${pkgdir}/usr/${_arch}/lib/" -iname "*.so.$pkgver" -exec strip --strip-unneeded {} \; + popd + done done } + diff --git a/qt5-qtwebkit-dont-depend-on-icu.patch b/qt5-qtwebkit-dont-depend-on-icu.patch deleted file mode 100644 index 46f5a19fce15..000000000000 --- a/qt5-qtwebkit-dont-depend-on-icu.patch +++ /dev/null @@ -1,256 +0,0 @@ ---- qtwebkit-opensource-src-5.0.0/Tools/qmake/mkspecs/features/configure.prf.orig 2013-01-04 18:56:36.785550268 +0100 -+++ qtwebkit-opensource-src-5.0.0/Tools/qmake/mkspecs/features/configure.prf 2013-01-04 18:58:20.047373664 +0100 -@@ -120,9 +120,9 @@ - } - - # Sanity checks that would prevent us from building the whole project altogether. -- !config_icu:!osx:!use?(wchar_unicode) { -- addReasonForSkippingBuild("ICU is required.") -- } -+# !config_icu:!osx:!use?(wchar_unicode) { -+# addReasonForSkippingBuild("ICU is required.") -+# } - production_build:blackberry { - addReasonForSkippingBuild("Build not supported on BB10 yet.") - } ---- qtwebkit-opensource-src-5.0.0/Source/WTF/wtf/Platform.h.orig 2013-01-04 19:28:53.735934784 +0100 -+++ qtwebkit-opensource-src-5.0.0/Source/WTF/wtf/Platform.h 2013-01-04 19:28:13.856641177 +0100 -@@ -580,9 +580,13 @@ - # define WTF_USE_WCHAR_UNICODE 1 - #endif - -+#if OS(WINDOWS) && PLATFORM(QT) -+#define WTF_USE_QT4_UNICODE 1 -+#else - #if !USE(WCHAR_UNICODE) - #define WTF_USE_ICU_UNICODE 1 - #endif -+#endif - - #if PLATFORM(MAC) && !PLATFORM(IOS) - #if CPU(X86_64) ---- qtwebkit-opensource-src-5.0.0/Source/WebCore/platform/text/TextAllInOne.cpp.orig 2013-01-04 21:55:38.574265749 +0100 -+++ qtwebkit-opensource-src-5.0.0/Source/WebCore/platform/text/TextAllInOne.cpp 2013-01-04 20:51:54.156245445 +0100 -@@ -27,7 +27,11 @@ - - #include "TextBoundaries.cpp" - #include "TextBreakIterator.cpp" -+#if USE(QT4_UNICODE) -+#include "TextBreakIteratorQt.cpp" -+#else - #include "TextBreakIteratorICU.cpp" -+#endif - #include "TextCodec.cpp" - #include "TextCodecICU.cpp" - #include "TextCodecLatin1.cpp" -@@ -35,6 +39,10 @@ - #include "TextCodecUTF8.cpp" - #include "TextCodecUserDefined.cpp" - #include "TextEncoding.cpp" -+#if USE(QT4_UNICODE) -+#include "TextEncodingDetectorNone.cpp" -+#else - #include "TextEncodingDetectorICU.cpp" -+#endif - #include "TextEncodingRegistry.cpp" - #include "TextStream.cpp" ---- /dev/null 2012-12-26 00:21:52.105366365 +0100 -+++ qtwebkit-opensource-src-5.0.0/Source/WebCore/platform/text/TextBreakIteratorQt.cpp 2012-05-31 00:58:54.000000000 +0200 -@@ -0,0 +1,175 @@ -+/* -+ * Copyright (C) 2006 Lars Knoll <lars@trolltech.com> -+ * -+ * This library is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU Library General Public -+ * License as published by the Free Software Foundation; either -+ * version 2 of the License, or (at your option) any later version. -+ * -+ * This library is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ * Library General Public License for more details. -+ * -+ * You should have received a copy of the GNU Library General Public License -+ * along with this library; see the file COPYING.LIB. If not, write to -+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, -+ * Boston, MA 02110-1301, USA. -+ * -+ */ -+ -+#include "config.h" -+#include "TextBreakIterator.h" -+ -+#include <QtCore/qtextboundaryfinder.h> -+#include <algorithm> -+#include <qdebug.h> -+#include <wtf/Atomics.h> -+ -+// #define DEBUG_TEXT_ITERATORS -+#ifdef DEBUG_TEXT_ITERATORS -+#define DEBUG qDebug -+#else -+#define DEBUG if (1) {} else qDebug -+#endif -+ -+using namespace WTF; -+using namespace std; -+ -+namespace WebCore { -+ -+ class TextBreakIterator : public QTextBoundaryFinder { -+ public: -+ TextBreakIterator(QTextBoundaryFinder::BoundaryType type, const QString& string) -+ : QTextBoundaryFinder(type, string) -+ { } -+ TextBreakIterator() -+ : QTextBoundaryFinder() -+ { } -+ }; -+ -+ TextBreakIterator* setUpIterator(TextBreakIterator& iterator, QTextBoundaryFinder::BoundaryType type, const UChar* characters, int length) -+ { -+ if (!characters || !length) -+ return 0; -+ -+ if (iterator.isValid() && type == iterator.type() && iterator.string() == QString::fromRawData(reinterpret_cast<const QChar*>(characters), length)) { -+ iterator.toStart(); -+ return &iterator; -+ } -+ -+ iterator = TextBreakIterator(type, QString(reinterpret_cast<const QChar*>(characters), length)); -+ return &iterator; -+ } -+ -+ TextBreakIterator* wordBreakIterator(const UChar* string, int length) -+ { -+ static TextBreakIterator staticWordBreakIterator; -+ return setUpIterator(staticWordBreakIterator, QTextBoundaryFinder::Word, string, length); -+ } -+ -+ static TextBreakIterator* nonSharedCharacterBreakIterator; -+ -+ NonSharedCharacterBreakIterator::NonSharedCharacterBreakIterator(const UChar* buffer, int length) -+ { -+ m_iterator = nonSharedCharacterBreakIterator; -+ bool createdIterator = m_iterator && weakCompareAndSwap(reinterpret_cast<void**>(&nonSharedCharacterBreakIterator), m_iterator, 0); -+ if (!createdIterator) -+ m_iterator = new TextBreakIterator(); -+ if (!setUpIterator(*m_iterator, QTextBoundaryFinder::Grapheme, buffer, length)) { -+ delete m_iterator; -+ m_iterator = 0; -+ } -+ } -+ -+ NonSharedCharacterBreakIterator::~NonSharedCharacterBreakIterator() -+ { -+ if (!weakCompareAndSwap(reinterpret_cast<void**>(&nonSharedCharacterBreakIterator), 0, m_iterator)) -+ delete m_iterator; -+ } -+ -+ TextBreakIterator* cursorMovementIterator(const UChar* string, int length) -+ { -+ static TextBreakIterator staticCursorMovementIterator; -+ return setUpIterator(staticCursorMovementIterator, QTextBoundaryFinder::Grapheme, string, length); -+ } -+ -+ static TextBreakIterator* staticLineBreakIterator; -+ -+ TextBreakIterator* acquireLineBreakIterator(const UChar* string, int length, const AtomicString&) -+ { -+ TextBreakIterator* lineBreakIterator = 0; -+ if (staticLineBreakIterator) { -+ setUpIterator(*staticLineBreakIterator, QTextBoundaryFinder::Line, string, length); -+ std::swap(staticLineBreakIterator, lineBreakIterator); -+ } -+ -+ if (!lineBreakIterator && string && length) -+ lineBreakIterator = new TextBreakIterator(QTextBoundaryFinder::Line, QString(reinterpret_cast<const QChar*>(string), length)); -+ -+ return lineBreakIterator; -+ } -+ -+ void releaseLineBreakIterator(TextBreakIterator* iterator) -+ { -+ ASSERT(iterator); -+ -+ if (!staticLineBreakIterator) -+ staticLineBreakIterator = iterator; -+ else -+ delete iterator; -+ } -+ -+ TextBreakIterator* sentenceBreakIterator(const UChar* string, int length) -+ { -+ static TextBreakIterator staticSentenceBreakIterator; -+ return setUpIterator(staticSentenceBreakIterator, QTextBoundaryFinder::Sentence, string, length); -+ -+ } -+ -+ int textBreakFirst(TextBreakIterator* bi) -+ { -+ bi->toStart(); -+ DEBUG() << "textBreakFirst" << bi->position(); -+ return bi->position(); -+ } -+ -+ int textBreakNext(TextBreakIterator* bi) -+ { -+ int pos = bi->toNextBoundary(); -+ DEBUG() << "textBreakNext" << pos; -+ return pos; -+ } -+ -+ int textBreakPreceding(TextBreakIterator* bi, int pos) -+ { -+ bi->setPosition(pos); -+ int newpos = bi->toPreviousBoundary(); -+ DEBUG() << "textBreakPreceding" << pos << newpos; -+ return newpos; -+ } -+ -+ int textBreakFollowing(TextBreakIterator* bi, int pos) -+ { -+ bi->setPosition(pos); -+ int newpos = bi->toNextBoundary(); -+ DEBUG() << "textBreakFollowing" << pos << newpos; -+ return newpos; -+ } -+ -+ int textBreakCurrent(TextBreakIterator* bi) -+ { -+ return bi->position(); -+ } -+ -+ bool isTextBreak(TextBreakIterator*, int) -+ { -+ return true; -+ } -+ -+ bool isWordTextBreak(TextBreakIterator*) -+ { -+ return true; -+ } -+ -+} ---- a/Source/WebCore/platform/ThreadGlobalData.cpp -+++ b/Source/WebCore/platform/ThreadGlobalData.cpp -@@ -37,6 +37,8 @@ - - #if USE(ICU_UNICODE) - #include "TextCodecICU.h" -+#elif USE(QT4_UNICODE) -+#include "qt/TextCodecQt.h" - #endif - - #if PLATFORM(MAC) ---- qtwebkit-opensource-src-5.2.0-rc1/Source/WebCore/platform/text/TextBreakIteratorQt.cpp.orig 2013-12-04 00:08:41.281004481 +0100 -+++ qtwebkit-opensource-src-5.2.0-rc1/Source/WebCore/platform/text/TextBreakIteratorQt.cpp 2013-12-04 00:07:52.878531508 +0100 -@@ -96,7 +96,7 @@ - - static TextBreakIterator* staticLineBreakIterator; - -- TextBreakIterator* acquireLineBreakIterator(const UChar* string, int length, const AtomicString&) -+ TextBreakIterator* acquireLineBreakIterator(const UChar* string, int length, const AtomicString&, const UChar* priorContext, unsigned priorContextLength) - { - TextBreakIterator* lineBreakIterator = 0; - if (staticLineBreakIterator) { diff --git a/qt5-qtwebkit-enable-pkgconfig-support-for-win32-target.patch b/qt5-qtwebkit-enable-pkgconfig-support-for-win32-target.patch deleted file mode 100644 index 82355fca3b72..000000000000 --- a/qt5-qtwebkit-enable-pkgconfig-support-for-win32-target.patch +++ /dev/null @@ -1,12 +0,0 @@ ---- Tools/qmake/mkspecs/features/win32/default_pre.prf.orig 2012-11-12 21:19:24.500379251 +0100 -+++ Tools/qmake/mkspecs/features/win32/default_pre.prf 2012-11-12 21:19:50.901564454 +0100 -@@ -4,6 +4,9 @@ - # See 'Tools/qmake/README' for an overview of the build system - # ------------------------------------------------------------------- - -+# Make sure we process the PKGCONFIG variable if applicable -+CONFIG += link_pkgconfig -+ - load(default_pre) - - debug: CONFIG += use_all_in_one_files diff --git a/qt5-qtwebkit-use-correct-icu-libs.patch b/qt5-qtwebkit-use-correct-icu-libs.patch deleted file mode 100644 index e686d247c519..000000000000 --- a/qt5-qtwebkit-use-correct-icu-libs.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- qtwebkit-opensource-src-5.4.1/Source/WTF/WTF.pri.icu 2015-03-23 19:21:26.013831236 +0100 -+++ qtwebkit-opensource-src-5.4.1/Source/WTF/WTF.pri 2015-03-23 19:22:46.668582720 +0100 -@@ -14,7 +14,7 @@ - INCLUDEPATH = $${ROOT_WEBKIT_DIR}/Source/WTF/icu $$INCLUDEPATH - LIBS += -licucore - } else:!use?(wchar_unicode): { -- win32 { -+ win32:!mingw { - CONFIG(static, static|shared) { - CONFIG(debug, debug|release) { - LIBS += -lsicuind -lsicuucd -lsicudtd diff --git a/qt5-qtwebkit-use-linux-shell.patch b/qt5-qtwebkit-use-linux-shell.patch deleted file mode 100644 index 0312d6cd59ba..000000000000 --- a/qt5-qtwebkit-use-linux-shell.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- qtwebkit-opensource-src-5.5.0/Tools/qmake/mkspecs/features/default_pre.prf.orig 2015-08-08 00:28:12.099889263 +0200 -+++ qtwebkit-opensource-src-5.5.0/Tools/qmake/mkspecs/features/default_pre.prf 2015-08-08 00:28:34.329126204 +0200 -@@ -37,7 +37,7 @@ - } - - # Try to detect if we're running under Windows cmd.exe or not --win32:isEmpty(MINGW_IN_SHELL): CONFIG += win_cmd_shell -+win32:!mingw:isEmpty(MINGW_IN_SHELL): CONFIG += win_cmd_shell - - # Default location of generated sources - GENERATED_SOURCES_DESTDIR = generated diff --git a/qt5-qtwebkit-workaround-build-breakage-after-svn-commit-136242.patch b/qt5-qtwebkit-workaround-build-breakage-after-svn-commit-136242.patch deleted file mode 100644 index d40c5457623e..000000000000 --- a/qt5-qtwebkit-workaround-build-breakage-after-svn-commit-136242.patch +++ /dev/null @@ -1,21 +0,0 @@ ---- Source/WebKit/qt/Api/qwebkitglobal.h.orig 2013-01-06 19:14:49.225087412 +0100 -+++ Source/WebKit/qt/Api/qwebkitglobal.h 2013-01-06 19:15:02.498182976 +0100 -@@ -24,7 +24,6 @@ - #include <QtCore/qglobal.h> - #include <QtCore/qstring.h> - --#ifndef QT_STATIC - # if !defined(QT_BUILD_WEBKITWIDGETS_LIB) && defined(BUILDING_WEBKIT) - # define QWEBKIT_EXPORT Q_DECL_EXPORT - # else -@@ -37,10 +36,6 @@ - # else - # define QWEBKITWIDGETS_EXPORT Q_DECL_IMPORT - # endif --#else --# define QWEBKITWIDGETS_EXPORT --# define QWEBKIT_EXPORT --#endif - - QWEBKIT_EXPORT QString qWebKitVersion(); - QWEBKIT_EXPORT int qWebKitMajorVersion(); diff --git a/qt5-webkit-pthread.patch b/qt5-webkit-pthread.patch deleted file mode 100644 index 53d5439243bf..000000000000 --- a/qt5-webkit-pthread.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 5f359baacdf92fabcece83f0a2b30f74c7c02a3c Mon Sep 17 00:00:00 2001 -From: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com> -Date: Mon, 22 Feb 2016 10:57:32 +0100 -Subject: [PATCH] Fix linking with libpthread - -WebKit use libpthread directly but is depending on other qt modules -causing it to be linked against, which might break unless -lpthread -is last. Instead just add it explicitly after the static libraries. - -Change-Id: I2b95cff2c96373f8dce6f95052c4fccbe1982b33 -Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com> -(cherry picked from commit 5dd4bb67cfce812fd7686e43616e2069f354a7df) -Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com> ---- - Tools/qmake/mkspecs/features/default_post.prf | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/Tools/qmake/mkspecs/features/default_post.prf b/Tools/qmake/mkspecs/features/default_post.prf -index 67276b7..39bb3f7 100644 ---- a/Tools/qmake/mkspecs/features/default_post.prf -+++ b/Tools/qmake/mkspecs/features/default_post.prf -@@ -201,6 +201,7 @@ needToLink() { - linkAgainstLibrary($$library, $$eval(WEBKIT.$${library_identifier}.root_source_dir)) - LIBS += $$eval(WEBKIT.$${library_identifier}.dependent_libs) - } -+ posix:!darwin: LIBS += -lpthread - } - - creating_module { --- -2.7.1 - diff --git a/qtwebkit-dont-use-bundled-angle-libraries.patch b/qtwebkit-dont-use-bundled-angle-libraries.patch deleted file mode 100644 index 274313269ce6..000000000000 --- a/qtwebkit-dont-use-bundled-angle-libraries.patch +++ /dev/null @@ -1,94 +0,0 @@ ---- qtwebkit-opensource-src-5.0.0/WebKit.pro.orig 2013-01-04 01:50:18.373246956 +0100 -+++ qtwebkit-opensource-src-5.0.0/WebKit.pro 2013-01-04 01:50:23.777286725 +0100 -@@ -18,12 +18,6 @@ - JavaScriptCore.makefile = Makefile.JavaScriptCore - SUBDIRS += JavaScriptCore - --use?(3D_GRAPHICS) { -- ANGLE.file = Source/ThirdParty/ANGLE/ANGLE.pro -- ANGLE.makefile = Makefile.ANGLE -- SUBDIRS += ANGLE --} -- - use?(leveldb):!use?(system_leveldb) { - leveldb.file = Source/ThirdParty/leveldb/leveldb.pro - leveldb.makefile = Makefile.leveldb ---- qtwebkit-opensource-src-5.0.0/Source/WebCore/Target.pri.orig 2013-01-04 01:58:25.145960916 +0100 -+++ qtwebkit-opensource-src-5.0.0/Source/WebCore/Target.pri 2013-01-04 01:58:53.245166218 +0100 -@@ -4194,7 +4194,7 @@ - platform/graphics/texmap/coordinated/CoordinatedTile.cpp \ - platform/graphics/texmap/coordinated/UpdateAtlas.cpp - -- INCLUDEPATH += $$PWD/platform/graphics/gpu -+ INCLUDEPATH += $$PWD/platform/graphics/gpu /usr/i686-w64-mingw32/sys-root/mingw/include/GLSLANG - - contains(QT_CONFIG, opengl) { - contains(QT_CONFIG, opengles2) { ---- qtwebkit-opensource-src-5.0.0/Tools/qmake/mkspecs/modules/angle.prf.orig 2013-01-04 02:25:16.357429590 +0100 -+++ qtwebkit-opensource-src-5.0.0/Tools/qmake/mkspecs/modules/angle.prf 2013-01-04 02:25:29.383533741 +0100 -@@ -4,6 +4,3 @@ - # See 'Tools/qmake/README' for an overview of the build system - # ------------------------------------------------------------------- - --WEBKIT.angle.root_source_dir = $${ROOT_WEBKIT_DIR}/Source/ThirdParty/ANGLE -- --include($${WEBKIT.angle.root_source_dir}/ANGLE.pri) ---- qtwebkit-opensource-src-5.0.0/Source/WebKit/WebKit1.pro.orig 2013-01-04 13:58:41.258048080 +0100 -+++ qtwebkit-opensource-src-5.0.0/Source/WebKit/WebKit1.pro 2013-01-04 13:59:23.135351974 +0100 -@@ -96,7 +96,10 @@ - INCLUDEPATH += \ - $$PWD/qt/WebCoreSupport - --use?(3D_GRAPHICS): WEBKIT += angle -+use?(3D_GRAPHICS) { -+ WEBKIT += angle -+ INCLUDEPATH += /usr/i686-w64-mingw32/sys-root/mingw/include/GLSLANG -+} - - have?(qtpositioning):enable?(GEOLOCATION) { - HEADERS += \ ---- qtwebkit-opensource-src-5.0.0/Source/WebKit2/Target.pri.orig 2013-01-04 14:01:39.267381271 +0100 -+++ qtwebkit-opensource-src-5.0.0/Source/WebKit2/Target.pri 2013-01-04 14:02:01.414542791 +0100 -@@ -942,7 +942,10 @@ - - have?(qtpositioning):enable?(GEOLOCATION): QT += positioning - --use?(3D_GRAPHICS): WEBKIT += angle -+use?(3D_GRAPHICS) { -+ WEBKIT += angle -+ INCLUDEPATH += /usr/i686-w64-mingw32/sys-root/mingw/include/GLSLANG -+} - - use?(PLUGIN_BACKEND_XLIB) { - DEFINES += XP_UNIX ---- qtwebkit-opensource-src-5.0.0/Tools/qmake/mkspecs/features/webkit_modules.prf.orig 2013-01-04 14:37:56.650662923 +0100 -+++ qtwebkit-opensource-src-5.0.0/Tools/qmake/mkspecs/features/webkit_modules.prf 2013-01-04 14:38:20.063847512 +0100 -@@ -7,7 +7,7 @@ - - # Reorder libraries so that the link and include order is correct, - # and make sure the case matches the original case. --libraries = WebKit1 WebKit2 WebCore ANGLE leveldb JavaScriptCore WTF -+libraries = WebKit1 WebKit2 WebCore leveldb JavaScriptCore WTF - for(library, libraries) { - contains(WEBKIT, $$lower($$library)) { - WEBKIT -= $$lower($$library) ---- qtwebkit-opensource-src-5.0.2/Source/api.pri.orig 2013-05-18 01:36:18.524909031 +0200 -+++ qtwebkit-opensource-src-5.0.2/Source/api.pri 2013-05-18 02:14:48.609146344 +0200 -@@ -24,7 +24,6 @@ - } - build?(webkit2): QMAKE_INTERNAL_INCLUDED_FILES *= WebKit2/Target.pri - --use?(3D_GRAPHICS): WEBKIT += angle - use?(leveldb):!use?(system_leveldb) WEBKIT += leveldb - - MODULE = webkit ---- qtwebkit-opensource-src-5.0.2/Source/WebCore/WebCore.pri.orig 2013-05-18 01:50:16.481110868 +0200 -+++ qtwebkit-opensource-src-5.0.2/Source/WebCore/WebCore.pri 2013-05-18 02:19:24.941843621 +0200 -@@ -209,6 +209,7 @@ - CONFIG(debug, debug|release):contains(QT_CONFIG, angle) { - LIBS += $$QMAKE_LIBS_OPENGL_ES2_DEBUG - } else { -+ INCLUDEPATH += /usr/i686-w64-mingw32/sys-root/mingw/include/GLSLANG - LIBS += $$QMAKE_LIBS_OPENGL_ES2 - } - } else { diff --git a/revert-qt4-unicode-removal.patch b/revert-qt4-unicode-removal.patch deleted file mode 100644 index fc45b6b56c58..000000000000 --- a/revert-qt4-unicode-removal.patch +++ /dev/null @@ -1,808 +0,0 @@ -From 92b3cd3b0d01ca2f03e184cb16b75b31ab9a3ee6 Mon Sep 17 00:00:00 2001 -From: hausmann@webkit.org <hausmann@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc> -Date: Wed, 30 Jan 2013 12:27:34 +0000 -Subject: [PATCH] [Qt] Remove QT4_UNICODE related code paths - https://bugs.webkit.org/show_bug.cgi?id=108316 - -Reviewed by Kenneth Rohde Christiansen. - -Source/WebCore: - -Get rid of QT4_UNICODE and any related code paths. The Qt port -requires Qt5 and ICU these days. This also allows for the removal -of TextCodecQt. - -* Target.pri: -* platform/KURL.cpp: -(WebCore::appendEncodedHostname): -* platform/graphics/SurrogatePairAwareTextIterator.cpp: -(WebCore::SurrogatePairAwareTextIterator::normalizeVoicingMarks): -* platform/text/TextEncoding.cpp: -(WebCore::TextEncoding::encode): -* platform/text/TextEncodingRegistry.cpp: -(WebCore::extendTextCodecMaps): -* platform/text/qt/TextCodecQt.cpp: Removed. -* platform/text/qt/TextCodecQt.h: Removed. - -Source/WebKit/blackberry: - -* WebCoreSupport/AboutDataUseFeatures.in: The feature macro has been removed. - -Source/WTF: - -Get rid of QT4_UNICODE and any related code paths. The Qt port -requires Qt5 and ICU these days. - -* WTF.gypi: -* WTF.pro: -* wtf/unicode/Unicode.h: -* wtf/unicode/qt4/UnicodeQt4.h: Removed. - -git-svn-id: http://svn.webkit.org/repository/webkit/trunk@141255 268f45cc-cd09-0410-ab3c-d52691b4dbfc ---- - Source/WTF/ChangeLog | 15 + - Source/WTF/WTF.gypi | 1 - - Source/WTF/WTF.pro | 1 - - Source/WTF/wtf/unicode/Unicode.h | 4 +- - Source/WTF/wtf/unicode/qt4/UnicodeQt4.h | 377 -------------------- - Source/WebCore/ChangeLog | 23 ++ - Source/WebCore/Target.pri | 2 - - Source/WebCore/platform/KURL.cpp | 5 - - .../graphics/SurrogatePairAwareTextIterator.cpp | 5 - - Source/WebCore/platform/text/TextEncoding.cpp | 6 - - .../WebCore/platform/text/TextEncodingRegistry.cpp | 8 - - Source/WebCore/platform/text/qt/TextCodecQt.cpp | 160 --------- - Source/WebCore/platform/text/qt/TextCodecQt.h | 54 --- - Source/WebKit/blackberry/ChangeLog | 9 + - .../WebCoreSupport/AboutDataUseFeatures.in | 1 - - 15 files changed, 48 insertions(+), 623 deletions(-) - delete mode 100644 Source/WTF/wtf/unicode/qt4/UnicodeQt4.h - delete mode 100644 Source/WebCore/platform/text/qt/TextCodecQt.cpp - delete mode 100644 Source/WebCore/platform/text/qt/TextCodecQt.h - -diff --git a/Source/WTF/WTF.pro b/Source/WTF/WTF.pro -index c929c68..727d78b 100644 ---- a/Source/WTF/WTF.pro -+++ b/Source/WTF/WTF.pro -@@ -178,7 +178,6 @@ HEADERS += \ - unicode/CharacterNames.h \ - unicode/Collator.h \ - unicode/icu/UnicodeIcu.h \ -- unicode/qt4/UnicodeQt4.h \ - unicode/ScriptCodesFromICU.h \ - unicode/Unicode.h \ - unicode/UnicodeMacrosFromICU.h \ -diff --git a/Source/WTF/wtf/unicode/Unicode.h b/Source/WTF/wtf/unicode/Unicode.h -index 9260211..11fee6b 100644 ---- a/Source/WTF/wtf/unicode/Unicode.h -+++ b/Source/WTF/wtf/unicode/Unicode.h -@@ -30,8 +30,6 @@ - - #if USE(ICU_UNICODE) - #include <wtf/unicode/icu/UnicodeIcu.h> --#elif USE(QT4_UNICODE) --#include "qt4/UnicodeQt4.h" - #elif USE(WCHAR_UNICODE) - #include <wtf/unicode/wchar/UnicodeWchar.h> - #else -diff --git a/Source/WTF/wtf/unicode/qt4/UnicodeQt4.h b/Source/WTF/wtf/unicode/qt4/UnicodeQt4.h -deleted file mode 100644 -index a2d1ad4..0000000 ---- a/Source/WTF/wtf/unicode/qt4/UnicodeQt4.h -+++ /dev/null -@@ -1,377 +0,0 @@ --/* -- * Copyright (C) 2006 George Staikos <staikos@kde.org> -- * Copyright (C) 2006 Alexey Proskuryakov <ap@nypop.com> -- * Copyright (C) 2006, 2007, 2008, 2009 Apple Inc. All rights reserved. -- * -- * This library is free software; you can redistribute it and/or -- * modify it under the terms of the GNU Library General Public -- * License as published by the Free Software Foundation; either -- * version 2 of the License, or (at your option) any later version. -- * -- * This library is distributed in the hope that it will be useful, -- * but WITHOUT ANY WARRANTY; without even the implied warranty of -- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -- * Library General Public License for more details. -- * -- * You should have received a copy of the GNU Library General Public License -- * along with this library; see the file COPYING.LIB. If not, write to -- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, -- * Boston, MA 02110-1301, USA. -- * -- */ -- --#ifndef WTF_UNICODE_QT4_H --#define WTF_UNICODE_QT4_H -- --#include <wtf/unicode/ScriptCodesFromICU.h> --#include <wtf/unicode/UnicodeMacrosFromICU.h> -- --#include <QChar> --#include <QString> -- --#include <config.h> -- --#include <stdint.h> --#if USE(ICU_UNICODE) --#include <unicode/ubrk.h> --#endif -- --QT_BEGIN_NAMESPACE --namespace QUnicodeTables { -- struct Properties { -- ushort category : 8; -- ushort line_break_class : 8; -- ushort direction : 8; -- ushort combiningClass :8; -- ushort joining : 2; -- signed short digitValue : 6; /* 5 needed */ -- ushort unicodeVersion : 4; -- ushort lowerCaseSpecial : 1; -- ushort upperCaseSpecial : 1; -- ushort titleCaseSpecial : 1; -- ushort caseFoldSpecial : 1; /* currently unused */ -- signed short mirrorDiff : 16; -- signed short lowerCaseDiff : 16; -- signed short upperCaseDiff : 16; -- signed short titleCaseDiff : 16; -- signed short caseFoldDiff : 16; -- }; -- Q_CORE_EXPORT const Properties * QT_FASTCALL properties(uint ucs4); -- Q_CORE_EXPORT const Properties * QT_FASTCALL properties(ushort ucs2); --} --QT_END_NAMESPACE -- --// ugly hack to make UChar compatible with JSChar in API/JSStringRef.h --#if defined(Q_OS_WIN) || (COMPILER(RVCT) && !OS(LINUX)) --typedef wchar_t UChar; --#else --typedef uint16_t UChar; --#endif -- --#if !USE(ICU_UNICODE) --typedef uint32_t UChar32; --#endif -- --namespace WTF { --namespace Unicode { -- --enum Direction { -- LeftToRight = QChar::DirL, -- RightToLeft = QChar::DirR, -- EuropeanNumber = QChar::DirEN, -- EuropeanNumberSeparator = QChar::DirES, -- EuropeanNumberTerminator = QChar::DirET, -- ArabicNumber = QChar::DirAN, -- CommonNumberSeparator = QChar::DirCS, -- BlockSeparator = QChar::DirB, -- SegmentSeparator = QChar::DirS, -- WhiteSpaceNeutral = QChar::DirWS, -- OtherNeutral = QChar::DirON, -- LeftToRightEmbedding = QChar::DirLRE, -- LeftToRightOverride = QChar::DirLRO, -- RightToLeftArabic = QChar::DirAL, -- RightToLeftEmbedding = QChar::DirRLE, -- RightToLeftOverride = QChar::DirRLO, -- PopDirectionalFormat = QChar::DirPDF, -- NonSpacingMark = QChar::DirNSM, -- BoundaryNeutral = QChar::DirBN --}; -- --enum DecompositionType { -- DecompositionNone = QChar::NoDecomposition, -- DecompositionCanonical = QChar::Canonical, -- DecompositionCompat = QChar::Compat, -- DecompositionCircle = QChar::Circle, -- DecompositionFinal = QChar::Final, -- DecompositionFont = QChar::Font, -- DecompositionFraction = QChar::Fraction, -- DecompositionInitial = QChar::Initial, -- DecompositionIsolated = QChar::Isolated, -- DecompositionMedial = QChar::Medial, -- DecompositionNarrow = QChar::Narrow, -- DecompositionNoBreak = QChar::NoBreak, -- DecompositionSmall = QChar::Small, -- DecompositionSquare = QChar::Square, -- DecompositionSub = QChar::Sub, -- DecompositionSuper = QChar::Super, -- DecompositionVertical = QChar::Vertical, -- DecompositionWide = QChar::Wide --}; -- --enum CharCategory { -- NoCategory = 0, -- Mark_NonSpacing = U_MASK(QChar::Mark_NonSpacing), -- Mark_SpacingCombining = U_MASK(QChar::Mark_SpacingCombining), -- Mark_Enclosing = U_MASK(QChar::Mark_Enclosing), -- Number_DecimalDigit = U_MASK(QChar::Number_DecimalDigit), -- Number_Letter = U_MASK(QChar::Number_Letter), -- Number_Other = U_MASK(QChar::Number_Other), -- Separator_Space = U_MASK(QChar::Separator_Space), -- Separator_Line = U_MASK(QChar::Separator_Line), -- Separator_Paragraph = U_MASK(QChar::Separator_Paragraph), -- Other_Control = U_MASK(QChar::Other_Control), -- Other_Format = U_MASK(QChar::Other_Format), -- Other_Surrogate = U_MASK(QChar::Other_Surrogate), -- Other_PrivateUse = U_MASK(QChar::Other_PrivateUse), -- Other_NotAssigned = U_MASK(QChar::Other_NotAssigned), -- Letter_Uppercase = U_MASK(QChar::Letter_Uppercase), -- Letter_Lowercase = U_MASK(QChar::Letter_Lowercase), -- Letter_Titlecase = U_MASK(QChar::Letter_Titlecase), -- Letter_Modifier = U_MASK(QChar::Letter_Modifier), -- Letter_Other = U_MASK(QChar::Letter_Other), -- Punctuation_Connector = U_MASK(QChar::Punctuation_Connector), -- Punctuation_Dash = U_MASK(QChar::Punctuation_Dash), -- Punctuation_Open = U_MASK(QChar::Punctuation_Open), -- Punctuation_Close = U_MASK(QChar::Punctuation_Close), -- Punctuation_InitialQuote = U_MASK(QChar::Punctuation_InitialQuote), -- Punctuation_FinalQuote = U_MASK(QChar::Punctuation_FinalQuote), -- Punctuation_Other = U_MASK(QChar::Punctuation_Other), -- Symbol_Math = U_MASK(QChar::Symbol_Math), -- Symbol_Currency = U_MASK(QChar::Symbol_Currency), -- Symbol_Modifier = U_MASK(QChar::Symbol_Modifier), -- Symbol_Other = U_MASK(QChar::Symbol_Other) --}; -- -- --// FIXME: handle surrogates correctly in all methods -- --inline UChar32 toLower(UChar32 ch) --{ -- return QChar::toLower(uint32_t(ch)); --} -- --inline int toLower(UChar* result, int resultLength, const UChar* src, int srcLength, bool* error) --{ -- const UChar *e = src + srcLength; -- const UChar *s = src; -- UChar *r = result; -- uint rindex = 0; -- -- // this avoids one out of bounds check in the loop -- if (s < e && QChar(*s).isLowSurrogate()) { -- if (r) -- r[rindex] = *s++; -- ++rindex; -- } -- -- int needed = 0; -- while (s < e && (rindex < uint(resultLength) || !r)) { -- uint c = *s; -- if (QChar(c).isLowSurrogate() && QChar(*(s - 1)).isHighSurrogate()) -- c = QChar::surrogateToUcs4(*(s - 1), c); -- const QUnicodeTables::Properties *prop = QUnicodeTables::properties(c); -- if (prop->lowerCaseSpecial) { -- QString qstring; -- if (c < 0x10000) { -- qstring += QChar(c); -- } else { -- qstring += QChar(*(s-1)); -- qstring += QChar(*s); -- } -- qstring = qstring.toLower(); -- for (int i = 0; i < qstring.length(); ++i) { -- if (rindex >= uint(resultLength)) { -- needed += qstring.length() - i; -- break; -- } -- if (r) -- r[rindex] = qstring.at(i).unicode(); -- ++rindex; -- } -- } else { -- if (r) -- r[rindex] = *s + prop->lowerCaseDiff; -- ++rindex; -- } -- ++s; -- } -- if (s < e) -- needed += e - s; -- *error = (needed != 0); -- if (rindex < uint(resultLength)) -- r[rindex] = 0; -- return rindex + needed; --} -- --inline UChar32 toUpper(UChar32 c) --{ -- return QChar::toUpper(uint32_t(c)); --} -- --inline int toUpper(UChar* result, int resultLength, const UChar* src, int srcLength, bool* error) --{ -- const UChar *e = src + srcLength; -- const UChar *s = src; -- UChar *r = result; -- int rindex = 0; -- -- // this avoids one out of bounds check in the loop -- if (s < e && QChar(*s).isLowSurrogate()) { -- if (r) -- r[rindex] = *s++; -- ++rindex; -- } -- -- int needed = 0; -- while (s < e && (rindex < resultLength || !r)) { -- uint c = *s; -- if (QChar(c).isLowSurrogate() && QChar(*(s - 1)).isHighSurrogate()) -- c = QChar::surrogateToUcs4(*(s - 1), c); -- const QUnicodeTables::Properties *prop = QUnicodeTables::properties(c); -- if (prop->upperCaseSpecial) { -- QString qstring; -- if (c < 0x10000) { -- qstring += QChar(c); -- } else { -- qstring += QChar(*(s-1)); -- qstring += QChar(*s); -- } -- qstring = qstring.toUpper(); -- for (int i = 0; i < qstring.length(); ++i) { -- if (rindex >= resultLength) { -- needed += qstring.length() - i; -- break; -- } -- if (r) -- r[rindex] = qstring.at(i).unicode(); -- ++rindex; -- } -- } else { -- if (r) -- r[rindex] = *s + prop->upperCaseDiff; -- ++rindex; -- } -- ++s; -- } -- if (s < e) -- needed += e - s; -- *error = (needed != 0); -- if (rindex < resultLength) -- r[rindex] = 0; -- return rindex + needed; --} -- --inline int toTitleCase(UChar32 c) --{ -- return QChar::toTitleCase(uint32_t(c)); --} -- --inline UChar32 foldCase(UChar32 c) --{ -- return QChar::toCaseFolded(uint32_t(c)); --} -- --inline int foldCase(UChar* result, int resultLength, const UChar* src, int srcLength, bool* error) --{ -- // FIXME: handle special casing. Easiest with some low level API in Qt -- *error = false; -- if (resultLength < srcLength) { -- *error = true; -- return srcLength; -- } -- for (int i = 0; i < srcLength; ++i) -- result[i] = QChar::toCaseFolded(ushort(src[i])); -- return srcLength; --} -- --inline bool isArabicChar(UChar32 c) --{ -- return c >= 0x0600 && c <= 0x06FF; --} -- --inline bool isPrintableChar(UChar32 c) --{ -- const uint test = U_MASK(QChar::Other_Control) | -- U_MASK(QChar::Other_NotAssigned); -- return !(U_MASK(QChar::category(uint32_t(c))) & test); --} -- --inline bool isSeparatorSpace(UChar32 c) --{ -- return QChar::category(uint32_t(c)) == QChar::Separator_Space; --} -- --inline bool isPunct(UChar32 c) --{ -- const uint test = U_MASK(QChar::Punctuation_Connector) | -- U_MASK(QChar::Punctuation_Dash) | -- U_MASK(QChar::Punctuation_Open) | -- U_MASK(QChar::Punctuation_Close) | -- U_MASK(QChar::Punctuation_InitialQuote) | -- U_MASK(QChar::Punctuation_FinalQuote) | -- U_MASK(QChar::Punctuation_Other); -- return U_MASK(QChar::category(uint32_t(c))) & test; --} -- --inline bool isLower(UChar32 c) --{ -- return QChar::category(uint32_t(c)) == QChar::Letter_Lowercase; --} -- --inline bool hasLineBreakingPropertyComplexContext(UChar32) --{ -- // FIXME: Implement this to return whether the character has line breaking property SA (Complex Context). -- return false; --} -- --inline UChar32 mirroredChar(UChar32 c) --{ -- return QChar::mirroredChar(uint32_t(c)); --} -- --inline uint8_t combiningClass(UChar32 c) --{ -- return QChar::combiningClass(uint32_t(c)); --} -- --inline DecompositionType decompositionType(UChar32 c) --{ -- return (DecompositionType)QChar::decompositionTag(c); --} -- --inline int umemcasecmp(const UChar* a, const UChar* b, int len) --{ -- // handle surrogates correctly -- for (int i = 0; i < len; ++i) { -- uint c1 = QChar::toCaseFolded(ushort(a[i])); -- uint c2 = QChar::toCaseFolded(ushort(b[i])); -- if (c1 != c2) -- return c1 - c2; -- } -- return 0; --} -- --inline Direction direction(UChar32 c) --{ -- return (Direction)QChar::direction(uint32_t(c)); --} -- --inline CharCategory category(UChar32 c) --{ -- return (CharCategory) U_MASK(QChar::category(uint32_t(c))); --} -- --} // namespace Unicode --} // namespace WTF -- --#endif // WTF_UNICODE_QT4_H -diff --git a/Source/WebCore/Target.pri b/Source/WebCore/Target.pri -index 44f02b6..0e3cd5f 100644 ---- a/Source/WebCore/Target.pri -+++ b/Source/WebCore/Target.pri -@@ -2357,7 +2357,6 @@ HEADERS += \ - platform/text/DecodeEscapeSequences.h \ - platform/text/Hyphenation.h \ - platform/text/QuotedPrintable.h \ -- platform/text/qt/TextCodecQt.h \ - platform/text/RegularExpression.h \ - platform/text/SegmentedString.h \ - platform/text/TextBoundaries.h \ -@@ -2927,7 +2926,6 @@ SOURCES += \ - platform/qt/TemporaryLinkStubsQt.cpp \ - platform/text/qt/TextBoundariesQt.cpp \ - platform/text/qt/TextBreakIteratorInternalICUQt.cpp \ -- platform/text/qt/TextCodecQt.cpp \ - platform/qt/WidgetQt.cpp - - use?(LIBXML2) { -diff --git a/Source/WebCore/platform/KURL.cpp b/Source/WebCore/platform/KURL.cpp -index a1e0114..01a408c 100644 ---- a/Source/WebCore/platform/KURL.cpp -+++ b/Source/WebCore/platform/KURL.cpp -@@ -40,8 +40,6 @@ - - #if USE(ICU_UNICODE) - #include <unicode/uidna.h> --#elif USE(QT4_UNICODE) --#include <QUrl> - #endif - - // FIXME: This file makes too much use of the + operator on String. -@@ -1498,9 +1496,6 @@ - hostnameBufferLength, UIDNA_ALLOW_UNASSIGNED, 0, &error); - if (error == U_ZERO_ERROR) - buffer.append(hostnameBuffer, numCharactersConverted); --#elif USE(QT4_UNICODE) -- QByteArray result = QUrl::toAce(String(str, strLen)); -- buffer.append(result.constData(), result.length()); - #endif - } - -diff --git a/Source/WebCore/platform/graphics/SurrogatePairAwareTextIterator.cpp b/Source/WebCore/platform/graphics/SurrogatePairAwareTextIterator.cpp -index 11da4b9..e7eb43b 100644 ---- a/Source/WebCore/platform/graphics/SurrogatePairAwareTextIterator.cpp -+++ b/Source/WebCore/platform/graphics/SurrogatePairAwareTextIterator.cpp -@@ -90,11 +90,6 @@ UChar32 SurrogatePairAwareTextIterator::normalizeVoicingMarks() - int32_t resultLength = unorm_normalize(m_characters, 2, UNORM_NFC, UNORM_UNICODE_3_2, &normalizedCharacters[0], 2, &uStatus); - if (resultLength == 1 && !uStatus) - return normalizedCharacters[0]; --#elif USE(QT4_UNICODE) -- QString tmp(reinterpret_cast<const QChar*>(m_characters), 2); -- QString res = tmp.normalized(QString::NormalizationForm_C, QChar::Unicode_3_2); -- if (res.length() == 1) -- return res.at(0).unicode(); - #endif - } - -diff --git a/Source/WebCore/platform/text/TextEncoding.cpp b/Source/WebCore/platform/text/TextEncoding.cpp -index f28cd67..6c9a24d 100644 ---- a/Source/WebCore/platform/text/TextEncoding.cpp -+++ b/Source/WebCore/platform/text/TextEncoding.cpp -@@ -37,8 +37,6 @@ - - #if USE(ICU_UNICODE) - #include <unicode/unorm.h> --#elif USE(QT4_UNICODE) --#include <QString> - #endif - - namespace WebCore { -@@ -103,10 +101,6 @@ - sourceLength = normalizedLength; - } - return newTextCodec(*this)->encode(source, sourceLength, handling); --#elif USE(QT4_UNICODE) -- QString str(reinterpret_cast<const QChar*>(characters), length); -- str = str.normalized(QString::NormalizationForm_C); -- return newTextCodec(*this)->encode(reinterpret_cast<const UChar *>(str.utf16()), str.length(), handling); - #elif OS(WINDOWS) && USE(WCHAR_UNICODE) - // normalization will be done by Windows CE API - OwnPtr<TextCodec> textCodec = newTextCodec(*this); -diff --git a/Source/WebCore/platform/text/TextEncodingRegistry.cpp b/Source/WebCore/platform/text/TextEncodingRegistry.cpp -index 2790227..1d12202 100644 ---- a/Source/WebCore/platform/text/TextEncodingRegistry.cpp -+++ b/Source/WebCore/platform/text/TextEncodingRegistry.cpp -@@ -42,9 +42,6 @@ - #if USE(ICU_UNICODE) - #include "TextCodecICU.h" - #endif --#if USE(QT4_UNICODE) --#include "qt/TextCodecQt.h" --#endif - #if PLATFORM(MAC) - #include "TextCodecMac.h" - #endif -@@ -296,11 +293,6 @@ static void extendTextCodecMaps() - TextCodecICU::registerCodecs(addToTextCodecMap); - #endif - --#if USE(QT4_UNICODE) -- TextCodecQt::registerEncodingNames(addToTextEncodingNameMap); -- TextCodecQt::registerCodecs(addToTextCodecMap); --#endif -- - #if PLATFORM(MAC) - TextCodecMac::registerEncodingNames(addToTextEncodingNameMap); - TextCodecMac::registerCodecs(addToTextCodecMap); -diff --git a/Source/WebCore/platform/text/qt/TextCodecQt.cpp b/Source/WebCore/platform/text/qt/TextCodecQt.cpp -deleted file mode 100644 -index 6a36e1a..0000000 ---- a/Source/WebCore/platform/text/qt/TextCodecQt.cpp -+++ /dev/null -@@ -1,160 +0,0 @@ --/* -- * Copyright (C) 2006 Lars Knoll <lars@trolltech.com> -- * Copyright (C) 2008 Holger Hans Peter Freyther -- * -- * Redistribution and use in source and binary forms, with or without -- * modification, are permitted provided that the following conditions -- * are met: -- * 1. Redistributions of source code must retain the above copyright -- * notice, this list of conditions and the following disclaimer. -- * 2. Redistributions in binary form must reproduce the above copyright -- * notice, this list of conditions and the following disclaimer in the -- * documentation and/or other materials provided with the distribution. -- * -- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY -- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR -- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY -- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- */ -- --#include "config.h" --#if USE(QT4_UNICODE) --#include "TextCodecQt.h" -- --#include <qset.h> --#include <wtf/text/CString.h> --#include <wtf/text/WTFString.h> -- --namespace WebCore { -- --static QSet<QByteArray> *unique_names = 0; -- --static const char *getAtomicName(const QByteArray &name) --{ -- if (!unique_names) -- unique_names = new QSet<QByteArray>; -- -- unique_names->insert(name); -- return unique_names->find(name)->constData(); --} -- --void TextCodecQt::registerEncodingNames(EncodingNameRegistrar registrar) --{ -- QList<int> mibs = QTextCodec::availableMibs(); -- -- for (int i = 0; i < mibs.size(); ++i) { -- QTextCodec *c = QTextCodec::codecForMib(mibs.at(i)); -- const char *name = getAtomicName(c->name()); -- registrar(name, name); -- QList<QByteArray> aliases = c->aliases(); -- for (int i = 0; i < aliases.size(); ++i) { -- const char *a = getAtomicName(aliases.at(i)); -- registrar(a, name); -- } -- } --} -- --static PassOwnPtr<TextCodec> newTextCodecQt(const TextEncoding& encoding, const void*) --{ -- return adoptPtr(new TextCodecQt(encoding)); --} -- --void TextCodecQt::registerCodecs(TextCodecRegistrar registrar) --{ -- QList<int> mibs = QTextCodec::availableMibs(); -- -- for (int i = 0; i < mibs.size(); ++i) { -- QTextCodec *c = QTextCodec::codecForMib(mibs.at(i)); -- const char *name = getAtomicName(c->name()); -- registrar(name, newTextCodecQt, 0); -- } --} -- --TextCodecQt::TextCodecQt(const TextEncoding& encoding) -- : m_encoding(encoding) --{ -- m_codec = QTextCodec::codecForName(m_encoding.name()); --} -- --TextCodecQt::~TextCodecQt() --{ --} -- -- --String TextCodecQt::decode(const char* bytes, size_t length, bool flush, bool /*stopOnError*/, bool& sawError) --{ -- // We chop input buffer to smaller buffers to avoid excessive memory consumption -- // when the input buffer is big. This helps reduce peak memory consumption in -- // mobile devices where system RAM is limited. -- static const int MaxInputChunkSize = 1024 * 1024; -- const char* buf = bytes; -- const char* end = buf + length; -- String unicode(""); // a non-null string is expected -- -- while (buf < end) { -- int size = end - buf; -- size = qMin(size, MaxInputChunkSize); -- QString decoded = m_codec->toUnicode(buf, size, &m_state); -- unicode.append(reinterpret_cast_ptr<const UChar*>(decoded.unicode()), decoded.length()); -- buf += size; -- } -- -- sawError = m_state.invalidChars != 0; -- -- if (flush) { -- m_state.flags = QTextCodec::DefaultConversion; -- m_state.remainingChars = 0; -- m_state.invalidChars = 0; -- } -- -- return unicode; --} -- --CString TextCodecQt::encode(const UChar* characters, size_t length, UnencodableHandling handling) --{ -- QTextCodec::ConverterState state; -- state.flags = QTextCodec::ConversionFlags(QTextCodec::ConvertInvalidToNull | QTextCodec::IgnoreHeader); -- -- if (!length) -- return ""; -- -- QByteArray ba = m_codec->fromUnicode(reinterpret_cast<const QChar*>(characters), length, &state); -- -- // If some <b> characters </b> are unencodable, escape them as specified by <b> handling </b> -- // We append one valid encoded chunk to a QByteArray at a time. When we encounter an unencodable chunk we -- // escape it with getUnencodableReplacement, append it, then move to the next chunk. -- if (state.invalidChars) { -- state.invalidChars = 0; -- state.remainingChars = 0; -- int len = 0; -- ba.clear(); -- for (size_t pos = 0; pos < length; ++pos) { -- QByteArray tba = m_codec->fromUnicode(reinterpret_cast<const QChar*>(characters), ++len, &state); -- if (state.remainingChars) -- continue; -- if (state.invalidChars) { -- UnencodableReplacementArray replacement; -- getUnencodableReplacement(characters[0], handling, replacement); -- tba.replace('\0', replacement); -- state.invalidChars = 0; -- } -- ba.append(tba); -- characters += len; -- len = 0; -- state.remainingChars = 0; -- } -- } -- -- return CString(ba.constData(), ba.length()); --} -- -- --} // namespace WebCore --#endif -diff --git a/Source/WebCore/platform/text/qt/TextCodecQt.h b/Source/WebCore/platform/text/qt/TextCodecQt.h -deleted file mode 100644 -index f28f0bb..0000000 ---- a/Source/WebCore/platform/text/qt/TextCodecQt.h -+++ /dev/null -@@ -1,54 +0,0 @@ --/* -- * Copyright (C) 2006 Lars Knoll <lars@trolltech.com> -- * -- * Redistribution and use in source and binary forms, with or without -- * modification, are permitted provided that the following conditions -- * are met: -- * 1. Redistributions of source code must retain the above copyright -- * notice, this list of conditions and the following disclaimer. -- * 2. Redistributions in binary form must reproduce the above copyright -- * notice, this list of conditions and the following disclaimer in the -- * documentation and/or other materials provided with the distribution. -- * -- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY -- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR -- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY -- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- */ -- --#ifndef TextCodecQt_h --#define TextCodecQt_h -- --#include "TextCodec.h" --#include "TextEncoding.h" --#include <QTextCodec> -- --namespace WebCore { -- -- class TextCodecQt : public TextCodec { -- public: -- static void registerEncodingNames(EncodingNameRegistrar); -- static void registerCodecs(TextCodecRegistrar); -- -- TextCodecQt(const TextEncoding&); -- virtual ~TextCodecQt(); -- -- virtual String decode(const char*, size_t length, bool flush, bool stopOnError, bool& sawError); -- virtual CString encode(const UChar*, size_t length, UnencodableHandling); -- -- private: -- TextEncoding m_encoding; -- QTextCodec *m_codec; -- QTextCodec::ConverterState m_state; -- }; -- --} // namespace WebCore -- --#endif // TextCodecICU_h --- -1.7.1 - diff --git a/webkit-commit-151422.patch b/webkit-commit-151422.patch deleted file mode 100644 index 5656f61546a1..000000000000 --- a/webkit-commit-151422.patch +++ /dev/null @@ -1,46 +0,0 @@ -Index: trunk/Source/WebCore/rendering/RenderText.cpp
-===================================================================
---- trunk/Source/WebCore/rendering/RenderText.cpp (revision 151327)
-+++ trunk/Source/WebCore/rendering/RenderText.cpp (revision 151422)
-@@ -101,5 +101,5 @@
-
- unsigned length = string->length();
-- const UChar* characters = string->characters();
-+ const StringImpl& stringImpl = *string->impl();
-
- if (length >= numeric_limits<unsigned>::max())
-@@ -110,8 +110,8 @@
- for (unsigned i = 1; i < length + 1; i++) {
- // Replace   with a real space since ICU no longer treats   as a word separator.
-- if (characters[i - 1] == noBreakSpace)
-+ if (stringImpl[i - 1] == noBreakSpace)
- stringWithPrevious[i] = ' ';
- else
-- stringWithPrevious[i] = characters[i - 1];
-+ stringWithPrevious[i] = stringImpl[i - 1];
- }
-
-@@ -120,5 +120,6 @@
- return;
-
-- StringBuffer<UChar> data(length);
-+ StringBuilder result;
-+ result.reserveCapacity(length);
-
- int32_t endOfWord;
-@@ -126,10 +127,10 @@
- for (endOfWord = textBreakNext(boundary); endOfWord != TextBreakDone; startOfWord = endOfWord, endOfWord = textBreakNext(boundary)) {
- if (startOfWord) // Ignore first char of previous string
-- data[startOfWord - 1] = characters[startOfWord - 1] == noBreakSpace ? noBreakSpace : toTitleCase(stringWithPrevious[startOfWord]);
-+ result.append(stringImpl[startOfWord - 1] == noBreakSpace ? noBreakSpace : toTitleCase(stringWithPrevious[startOfWord]));
- for (int i = startOfWord + 1; i < endOfWord; i++)
-- data[i - 1] = characters[i - 1];
-- }
--
-- *string = String::adopt(data);
-+ result.append(stringImpl[i - 1]);
-+ }
-+
-+ *string = result.toString();
- }
-
|