summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartchus2016-12-09 08:13:36 +0100
committerMartchus2016-12-09 08:13:36 +0100
commit9a80c510256e336c3fc871a8d3890438356aeb00 (patch)
tree7ca2e4cf03b16f60e30c2ea52cdcb31c373d789f
parent6b651f77658909ef1f6626413c70d79f5f9538ee (diff)
downloadaur-9a80c510256e336c3fc871a8d3890438356aeb00.tar.gz
Update to 5.7.0
-rw-r--r--.SRCINFO51
-rw-r--r--0001-Use-correct-ICU-libs.patch27
-rw-r--r--0002-Use-pkg-config.patch25
-rw-r--r--0003-Use-system-ANGLE-rather-than-bundled-version.patch68
-rw-r--r--0004-Prevent-symbols-not-being-exported-in-Qt5WebKit.dll.patch46
-rw-r--r--0005-Build-with-smaller-debug-info.patch (renamed from qtwebkit-opensource-src-5.0.1-debuginfo.patch)94
-rw-r--r--0006-Establish-compatibility-with-latest-ANGLE.patch (renamed from qt5-qtwebkit-fix-compatibility-with-latest-angle.patch)174
-rw-r--r--0007-Include-intrin.h-for-declaration-of-_mm_mfence.patch25
-rw-r--r--0008-Link-against-ANGLE-even-if-Qt-is-configured-not-to.patch36
-rw-r--r--0009-Fixed-crash-probably-miscompilation-with-MinGW-w64-5.patch51
-rw-r--r--PKGBUILD178
-rw-r--r--qt5-qtwebkit-dont-depend-on-icu.patch256
-rw-r--r--qt5-qtwebkit-enable-pkgconfig-support-for-win32-target.patch12
-rw-r--r--qt5-qtwebkit-use-correct-icu-libs.patch11
-rw-r--r--qt5-qtwebkit-use-linux-shell.patch11
-rw-r--r--qt5-qtwebkit-workaround-build-breakage-after-svn-commit-136242.patch21
-rw-r--r--qt5-webkit-pthread.patch32
-rw-r--r--qtwebkit-dont-use-bundled-angle-libraries.patch94
-rw-r--r--revert-qt4-unicode-removal.patch808
-rw-r--r--webkit-commit-151422.patch46
20 files changed, 565 insertions, 1501 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 345d1eca1e4d..b60ff9943d5d 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -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
+
diff --git a/PKGBUILD b/PKGBUILD
index 5463dce483cb..2d0c3914f73c 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -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 &nbsp with a real space since ICU no longer treats &nbsp 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();
- }
-