diff --git a/.gitignore b/.gitignore index e69de29..44a97fc 100644 --- a/.gitignore +++ b/.gitignore @@ -0,0 +1 @@ +/qtwebkit-opensource-src-5.0.2.tar.xz diff --git a/qt5-qtwebkit.spec b/qt5-qtwebkit.spec new file mode 100644 index 0000000..2fe909b --- /dev/null +++ b/qt5-qtwebkit.spec @@ -0,0 +1,198 @@ + +%global qt_module qtwebkit + +Summary: Qt5 - QtWebKit components +Name: qt5-qtwebkit +Version: 5.0.2 +Release: 6%{?dist} + +# See LICENSE.GPL LICENSE.LGPL LGPL_EXCEPTION.txt, for details +# See also http://qt-project.org/doc/qt-5.0/qtdoc/licensing.html +License: LGPLv2 with exceptions or GPLv3 with exceptions +Url: http://qt-project.org/ +Source0: http://releases.qt-project.org/qt5/%{version}%{?pre:-%{pre}}/submodules/%{qt_module}-opensource-src-%{version}.tar.xz + +# Search /usr/lib{,64}/mozilla/plugins-wrapped for browser plugins too +Patch1: webkit-qtwebkit-2.2-tp1-pluginpath.patch + +# smaller debuginfo s/-g/-g1/ (debian uses -gstabs) to avoid 4gb size limit +Patch3: qtwebkit-opensource-src-5.0.1-debuginfo.patch + +# tweak linker flags to minimize memory usage on "small" platforms +Patch4: qtwebkit-2.3-save_memory.patch + +# try to use unbundled system angleproject library +%define system_angle 1 +Patch5: qtwebkit-opensource-src-5.0.2-system_angle.patch +# Fix compilation against latest ANGLE +# https://bugs.webkit.org/show_bug.cgi?id=109127 +Patch6: webkit-commit-142567.patch +%if 0%{?system_angle} +BuildRequires: angleproject-devel angleproject-static +%endif + +# Prevent flooding the logs with warnings about COMPILE_ASSERT +# https://bugs.webkit.org/show_bug.cgi?id=113147 +# Based on upstream commit r147640 +Patch7: webkit-commit-147640.patch + +# Prevent flooding the logs with warnings about HashMap +# https://bugs.webkit.org/show_bug.cgi?id=113454 +Patch9: webkit-commit-147345.patch + + +BuildRequires: qt5-qtbase-devel >= %{version} +BuildRequires: qt5-qtdeclarative-devel >= %{version} + +BuildRequires: bison +BuildRequires: chrpath +BuildRequires: flex +BuildRequires: gperf +BuildRequires: libicu-devel +BuildRequires: libjpeg-devel +BuildRequires: pkgconfig(gio-2.0) pkgconfig(glib-2.0) +BuildRequires: pkgconfig(fontconfig) +BuildRequires: pkgconfig(gl) +# gstreamer media support +BuildRequires: pkgconfig(gstreamer-0.10) pkgconfig(gstreamer-app-0.10) +BuildRequires: pkgconfig(icu-i18n) +BuildRequires: pkgconfig(libpng) +BuildRequires: pkgconfig(libpcre) +BuildRequires: pkgconfig(libwebp) +BuildRequires: pkgconfig(libxslt) +BuildRequires: pkgconfig(sqlite3) +BuildRequires: pkgconfig(xcomposite) pkgconfig(xrender) +BuildRequires: perl perl(version) perl(Digest::MD5) +BuildRequires: ruby +BuildRequires: zlib-devel + +%{?_qt5_version:Requires: qt5-qtbase%{?_isa} >= %{_qt5_version}} + +##upstream patches + + +%description +%{summary} + +%package devel +Summary: Development files for %{name} +Requires: %{name}%{?_isa} = %{version}-%{release} +Requires: qt5-qtbase-devel%{?_isa} +Requires: qt5-qtdeclarative-devel%{?_isa} +%description devel +%{summary}. + + +%prep +%setup -q -n qtwebkit-opensource-src-%{version}%{?pre:-%{pre}} + +%patch1 -p1 -b .pluginpath +%patch3 -p1 -b .debuginfo +%patch4 -p1 -b .save_memory +%if 0%{?system_angle} +%patch5 -p1 -b .system_angle +%patch6 -p1 -b .svn142567 +%endif + +%patch7 -p1 -b .svn147640 +%patch9 -p1 -b .svn147345 + +echo "nuke bundled code..." +# nuke bundled code +mkdir Source/ThirdParty/orig +mv Source/ThirdParty/{glu/,gtest/,gyp/,mt19937ar.c,qunit/} \ + Source/ThirdParty/orig/ + +%if 0%{?system_angle} +mv Source/ThirdParty/ANGLE/ \ + Source/ThirdParty/orig/ +%endif + + +%build +%{_qt5_qmake} %{?system_angle:DEFINES+=USE_SYSTEM_ANGLE=1} + +make %{?_smp_mflags} + + +%install + +make install INSTALL_ROOT=%{buildroot} + +## .prl file love (maybe consider just deleting these -- rex +# nuke dangling reference(s) to %%buildroot, excessive (.la-like) libs +sed -i \ + -e "/^QMAKE_PRL_BUILD_DIR/d" \ + -e "/^QMAKE_PRL_LIBS/d" \ + %{buildroot}%{_qt5_libdir}/*.prl + +## unpackaged files +# .la files, die, die, die. +rm -fv %{buildroot}%{_qt5_libdir}/lib*.la + +## kill rpath's +pushd %{buildroot} +for remove_rpath in \ + %{_qt5_libexecdir}/QtWebPluginProcess \ + %{_qt5_libexecdir}/QtWebProcess \ + %{_qt5_archdatadir}/qml/QtWebKit/libqmlwebkitplugin.so \ + %{_qt5_archdatadir}/qml/QtWebKit/experimental/libqmlwebkitexperimentalplugin.so \ +; do +chrpath --list %{buildroot}$remove_rpath +chrpath --delete %{buildroot}$remove_rpath +done +popd + + +%post -p /sbin/ldconfig +%postun -p /sbin/ldconfig + +%files +%doc Source/WebCore/LICENSE* +%doc ChangeLog VERSION +%{_qt5_libdir}/libQt5WebKit.so.5* +%{_qt5_libdir}/libQt5WebKitWidgets.so.5* +%{_qt5_libexecdir}/QtWebPluginProcess +%{_qt5_libexecdir}/QtWebProcess +%{_qt5_archdatadir}/qml/QtWebKit/ + +%files devel +%{_qt5_headerdir}/Qt*/ +%{_qt5_libdir}/libQt5*.so +%{_qt5_libdir}/libQt5*.prl +%{_qt5_libdir}/cmake/Qt5*/ +%{_qt5_libdir}/pkgconfig/Qt5*.pc +%{_qt5_archdatadir}/mkspecs/modules/*.pri + + +%changelog +* Fri Jun 21 2013 Rex Dieter 5.0.2-6 +- %%doc ChangeLog VERSION +- %%doc Source/WebCore/LICENSE* +- squash more rpaths + +* Fri May 17 2013 Rex Dieter 5.0.2-5 +- unbundle angleproject code + +* Wed May 15 2013 Rex Dieter 5.0.2-4 +- BR: perl(version) perl(Digest::MD5) pkgconfig(xslt) +- deal with bundled code +- add (commented) upstream link http://qt-project.org/doc/qt-5.0/qtdoc/licensing.html + to clarify licensing + +* Thu May 09 2013 Rex Dieter 5.0.2-3 +- -devel: Requires: qt5-qtdeclarative-devel + +* Fri Apr 12 2013 Rex Dieter 5.0.2-2 +- BR: qt5-qtdeclarative-devel + +* Thu Apr 11 2013 Rex Dieter 5.0.2-1 +- 5.0.2 + +* Mon Feb 25 2013 Rex Dieter 5.0.1-2 +- .prl love +- BR: pkgconfig(gl) + +* Sat Feb 23 2013 Rex Dieter 5.0.1-1 +- first try + diff --git a/qtwebkit-2.3-save_memory.patch b/qtwebkit-2.3-save_memory.patch new file mode 100644 index 0000000..6ccb158 --- /dev/null +++ b/qtwebkit-2.3-save_memory.patch @@ -0,0 +1,12 @@ +diff -up webkit-qtwebkit-23/Source/WebCore/WebCore.pri.save_memory webkit-qtwebkit-23/Source/WebCore/WebCore.pri +--- webkit-qtwebkit-23/Source/WebCore/WebCore.pri.save_memory 2013-02-15 09:46:12.000000000 -0600 ++++ webkit-qtwebkit-23/Source/WebCore/WebCore.pri 2013-02-21 16:42:30.996634743 -0600 +@@ -336,6 +336,8 @@ mac { + } + unix:!mac:*-g++*:QMAKE_CXXFLAGS += -fdata-sections + unix:!mac:*-g++*:QMAKE_LFLAGS += -Wl,--gc-sections ++unix:!mac:*-g++*:!equals(QT_ARCH, powerpc):!equals(QT_ARCH, s390):!equals(QT_ARCH, mips):!equals(QT_ARCH, arm):QMAKE_LFLAGS += -Wl,--no-keep-memory ++unix:!mac:*-g++*:!equals(QT_ARCH, powerpc):!equals(QT_ARCH, s390):!equals(QT_ARCH, mips):!equals(QT_ARCH, arm):QMAKE_LFLAGS += -Wl,--reduce-memory-overheads + linux*-g++*:QMAKE_LFLAGS += $$QMAKE_LFLAGS_NOUNDEF + + unix|win32-g++* { diff --git a/qtwebkit-opensource-src-5.0.1-debuginfo.patch b/qtwebkit-opensource-src-5.0.1-debuginfo.patch new file mode 100644 index 0000000..b9224a9 --- /dev/null +++ b/qtwebkit-opensource-src-5.0.1-debuginfo.patch @@ -0,0 +1,80 @@ +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 +@@ -7,6 +7,12 @@ + + SOURCE_DIR = $${ROOT_WEBKIT_DIR}/Source/JavaScriptCore + ++#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("JavaScriptCore workaround for QtWebkit: do not build with -g, but with -g1") ++# QMAKE_CXXFLAGS_RELEASE -= -g ++# QMAKE_CXXFLAGS_RELEASE += -g1 ++#} ++ + 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 +@@ -7,6 +7,12 @@ + + SOURCE_DIR = $${ROOT_WEBKIT_DIR}/Source/WebCore + ++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("WebCore workaround for QtWebkit: do not build with -g, but with -g1") ++ QMAKE_CXXFLAGS_RELEASE -= -g ++ QMAKE_CXXFLAGS_RELEASE += -g1 ++} ++ + QT *= network sql core-private gui-private + + WEBCORE_GENERATED_SOURCES_DIR = $${ROOT_BUILD_DIR}/Source/WebCore/$${GENERATED_SOURCES_DESTDIR} +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_RELEASE -= -g ++# QMAKE_CXXFLAGS_RELEASE += -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 +@@ -7,6 +7,12 @@ + + SOURCE_DIR = $${ROOT_WEBKIT_DIR}/Source/WebKit + ++#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("WebKit workaround for QtWebkit: do not build with -g, but with -g1") ++# QMAKE_CXXFLAGS_RELEASE -= -g ++# QMAKE_CXXFLAGS_RELEASE += -g1 ++#} ++ + 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 ). + 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_RELEASE -= -g ++# QMAKE_CXXFLAGS_RELEASE += -g1 ++#} ++ + mac { + # Mac OS does ship libicu but not the associated header files. + # Therefore WebKit provides adequate header files. diff --git a/qtwebkit-opensource-src-5.0.2-system_angle.patch b/qtwebkit-opensource-src-5.0.2-system_angle.patch new file mode 100644 index 0000000..6d5009c --- /dev/null +++ b/qtwebkit-opensource-src-5.0.2-system_angle.patch @@ -0,0 +1,114 @@ +diff -up qtwebkit-opensource-src-5.0.2/Source/api.pri.system_angle qtwebkit-opensource-src-5.0.2/Source/api.pri +--- qtwebkit-opensource-src-5.0.2/Source/api.pri.system_angle 2013-04-08 19:11:51.000000000 -0500 ++++ qtwebkit-opensource-src-5.0.2/Source/api.pri 2013-05-25 07:24:57.723118634 -0500 +@@ -24,8 +24,6 @@ build?(webkit1): { + } + build?(webkit2): QMAKE_INTERNAL_INCLUDED_FILES *= WebKit2/Target.pri + +-use?(3D_GRAPHICS): WEBKIT += angle +- + MODULE = webkit + CONFIG += creating_module + +diff -up qtwebkit-opensource-src-5.0.2/Source/WebCore/Target.pri.system_angle qtwebkit-opensource-src-5.0.2/Source/WebCore/Target.pri +--- qtwebkit-opensource-src-5.0.2/Source/WebCore/Target.pri.system_angle 2013-04-08 19:11:51.000000000 -0500 ++++ qtwebkit-opensource-src-5.0.2/Source/WebCore/Target.pri 2013-05-25 07:24:57.722118644 -0500 +@@ -3988,7 +3988,7 @@ use?(3D_GRAPHICS) { + platform/graphics/texmap/TextureMapperGL.cpp \ + platform/graphics/texmap/TextureMapperShaderManager.cpp + +- INCLUDEPATH += $$PWD/platform/graphics/gpu ++ INCLUDEPATH += $$PWD/platform/graphics/gpu /usr/include/GLSLANG + + contains(QT_CONFIG, opengl) | contains(QT_CONFIG, opengles2) { + !contains(QT_CONFIG, opengles2) { +diff -up qtwebkit-opensource-src-5.0.2/Source/WebCore/WebCore.pri.system_angle qtwebkit-opensource-src-5.0.2/Source/WebCore/WebCore.pri +--- qtwebkit-opensource-src-5.0.2/Source/WebCore/WebCore.pri.system_angle 2013-05-25 07:24:57.718118687 -0500 ++++ qtwebkit-opensource-src-5.0.2/Source/WebCore/WebCore.pri 2013-05-25 09:24:18.318809566 -0500 +@@ -214,12 +214,13 @@ enable?(WEB_AUDIO) { + + use?(3D_GRAPHICS) { + win32: { +- win32-g++: { ++ win32-g++*: { + # 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 { ++ INCLUDEPATH += /usr/i686-w64-mingw32/sys-root/mingw/include/GLSLANG + LIBS += $$QMAKE_LIBS_OPENGL_ES2 + } + } else { +@@ -228,6 +229,8 @@ use?(3D_GRAPHICS) { + } + } else { + contains(QT_CONFIG, opengles2): LIBS += -lEGL ++ INCLUDEPATH += /usr/include/GLSLANG ++ LIBS += -ltranslator_glsl -ltranslator_common -lpreprocessor + } + } + +diff -up qtwebkit-opensource-src-5.0.2/Source/WebKit2/Target.pri.system_angle qtwebkit-opensource-src-5.0.2/Source/WebKit2/Target.pri +--- qtwebkit-opensource-src-5.0.2/Source/WebKit2/Target.pri.system_angle 2013-04-08 19:11:42.000000000 -0500 ++++ qtwebkit-opensource-src-5.0.2/Source/WebKit2/Target.pri 2013-05-25 07:24:57.723118634 -0500 +@@ -938,7 +938,10 @@ enable?(TOUCH_EVENTS) { + + enable?(GEOLOCATION): QT += location + +-use?(3D_GRAPHICS): WEBKIT += angle ++use?(3D_GRAPHICS) { ++ WEBKIT += angle ++ INCLUDEPATH += /usr/include/GLSLANG ++} + + use?(PLUGIN_BACKEND_XLIB) { + DEFINES += XP_UNIX +diff -up qtwebkit-opensource-src-5.0.2/Source/WebKit/WebKit1.pro.system_angle qtwebkit-opensource-src-5.0.2/Source/WebKit/WebKit1.pro +--- qtwebkit-opensource-src-5.0.2/Source/WebKit/WebKit1.pro.system_angle 2013-04-08 19:11:39.000000000 -0500 ++++ qtwebkit-opensource-src-5.0.2/Source/WebKit/WebKit1.pro 2013-05-25 07:24:57.722118644 -0500 +@@ -92,7 +92,10 @@ HEADERS += \ + INCLUDEPATH += \ + $$PWD/qt/WebCoreSupport + +-use?(3D_GRAPHICS): WEBKIT += angle ++use?(3D_GRAPHICS) { ++ WEBKIT += angle ++ INCLUDEPATH += /usr/include/GLSLANG ++} + + enable?(GEOLOCATION) { + HEADERS += \ +diff -up qtwebkit-opensource-src-5.0.2/Tools/qmake/mkspecs/features/webkit_modules.prf.system_angle qtwebkit-opensource-src-5.0.2/Tools/qmake/mkspecs/features/webkit_modules.prf +--- qtwebkit-opensource-src-5.0.2/Tools/qmake/mkspecs/features/webkit_modules.prf.system_angle 2013-04-08 19:11:53.000000000 -0500 ++++ qtwebkit-opensource-src-5.0.2/Tools/qmake/mkspecs/features/webkit_modules.prf 2013-05-25 07:24:57.723118634 -0500 +@@ -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 JavaScriptCore WTF ++libraries = WebKit1 WebKit2 WebCore JavaScriptCore WTF + for(library, libraries) { + contains(WEBKIT, $$lower($$library)) { + WEBKIT -= $$lower($$library) +diff -up qtwebkit-opensource-src-5.0.2/Tools/qmake/mkspecs/modules/angle.prf.system_angle qtwebkit-opensource-src-5.0.2/Tools/qmake/mkspecs/modules/angle.prf +diff -up qtwebkit-opensource-src-5.0.2/WebKit.pro.system_angle qtwebkit-opensource-src-5.0.2/WebKit.pro +--- qtwebkit-opensource-src-5.0.2/WebKit.pro.system_angle 2013-04-08 19:11:32.000000000 -0500 ++++ qtwebkit-opensource-src-5.0.2/WebKit.pro 2013-05-25 07:24:57.720118666 -0500 +@@ -18,11 +18,11 @@ JavaScriptCore.file = Source/JavaScriptC + JavaScriptCore.makefile = Makefile.JavaScriptCore + SUBDIRS += JavaScriptCore + +-use?(3D_GRAPHICS) { +- ANGLE.file = Source/ThirdParty/ANGLE/ANGLE.pro +- ANGLE.makefile = Makefile.ANGLE +- SUBDIRS += ANGLE +-} ++#use?(3D_GRAPHICS) { ++# ANGLE.file = Source/ThirdParty/ANGLE/ANGLE.pro ++# ANGLE.makefile = Makefile.ANGLE ++# SUBDIRS += ANGLE ++#} + + WebCore.file = Source/WebCore/WebCore.pro + WebCore.makefile = Makefile.WebCore diff --git a/sources b/sources index e69de29..84c2a5e 100644 --- a/sources +++ b/sources @@ -0,0 +1 @@ +85aad9f287910c21c8464d7d1ea010a9 qtwebkit-opensource-src-5.0.2.tar.xz diff --git a/webkit-commit-142567.patch b/webkit-commit-142567.patch new file mode 100644 index 0000000..af8c3e8 --- /dev/null +++ b/webkit-commit-142567.patch @@ -0,0 +1,57 @@ +Index: trunk/Source/WebCore/platform/graphics/ANGLEWebKitBridge.cpp +=================================================================== +--- trunk/Source/WebCore/platform/graphics/ANGLEWebKitBridge.cpp (revision 136430) ++++ trunk/Source/WebCore/platform/graphics/ANGLEWebKitBridge.cpp (revision 142567) +@@ -33,7 +33,14 @@ + namespace WebCore { + +-inline static int getValidationResultValue(const ShHandle compiler, ShShaderInfo shaderInfo) +-{ +- int value = -1; ++// Temporary typedef to support an incompatible change in the ANGLE API. ++#if !defined(ANGLE_SH_VERSION) || ANGLE_SH_VERSION < 108 ++typedef int ANGLEGetInfoType; ++#else ++typedef size_t ANGLEGetInfoType; ++#endif ++ ++inline static ANGLEGetInfoType getValidationResultValue(const ShHandle compiler, ShShaderInfo shaderInfo) ++{ ++ ANGLEGetInfoType value = 0; + ShGetInfo(compiler, shaderInfo, &value); + return value; +@@ -56,13 +63,11 @@ + } + +- int numSymbols = getValidationResultValue(compiler, symbolType); +- if (numSymbols < 0) +- return false; +- +- int maxNameLength = getValidationResultValue(compiler, symbolMaxNameLengthType); ++ ANGLEGetInfoType numSymbols = getValidationResultValue(compiler, symbolType); ++ ++ ANGLEGetInfoType maxNameLength = getValidationResultValue(compiler, symbolMaxNameLengthType); + if (maxNameLength <= 1) + return false; + +- int maxMappedNameLength = getValidationResultValue(compiler, SH_MAPPED_NAME_MAX_LENGTH); ++ ANGLEGetInfoType maxMappedNameLength = getValidationResultValue(compiler, SH_MAPPED_NAME_MAX_LENGTH); + if (maxMappedNameLength <= 1) + return false; +@@ -72,7 +77,7 @@ + Vector mappedNameBuffer(maxMappedNameLength); + +- for (int i = 0; i < numSymbols; ++i) { ++ for (ANGLEGetInfoType i = 0; i < numSymbols; ++i) { + ANGLEShaderSymbol symbol; +- int nameLength = -1; ++ ANGLEGetInfoType nameLength = 0; + switch (symbolType) { + case SH_ACTIVE_ATTRIBUTES: +@@ -88,5 +93,5 @@ + return false; + } +- if (nameLength <= 0) ++ if (!nameLength) + return false; + diff --git a/webkit-commit-147345.patch b/webkit-commit-147345.patch new file mode 100644 index 0000000..6fa6a14 --- /dev/null +++ b/webkit-commit-147345.patch @@ -0,0 +1,105 @@ +Index: trunk/Source/WTF/wtf/HashMap.h +=================================================================== +--- trunk/Source/WTF/wtf/HashMap.h (revision 147344) ++++ trunk/Source/WTF/wtf/HashMap.h (revision 147345) +@@ -137,27 +137,33 @@ + AddResult inlineAdd(const KeyType&, MappedPassInReferenceType); + +- class HashMapKeysProxy : private HashMap { ++ HashTableType m_impl; ++ }; ++ ++ template ++ class HashMap::HashMapKeysProxy : ++ private HashMap { + public: +- typedef typename HashMap::iterator::Keys iterator; +- typedef typename HashMap::const_iterator::Keys const_iterator; +- ++ typedef HashMap HashMapType; ++ typedef typename HashMapType::iterator::Keys iterator; ++ typedef typename HashMapType::const_iterator::Keys const_iterator; ++ + iterator begin() + { +- return HashMap::begin().keys(); +- } +- ++ return HashMapType::begin().keys(); ++ } ++ + iterator end() + { +- return HashMap::end().keys(); ++ return HashMapType::end().keys(); + } + + const_iterator begin() const + { +- return HashMap::begin().keys(); +- } +- ++ return HashMapType::begin().keys(); ++ } ++ + const_iterator end() const + { +- return HashMap::end().keys(); ++ return HashMapType::end().keys(); + } + +@@ -170,29 +176,32 @@ + HashMapKeysProxy& operator=(const HashMapKeysProxy&); + ~HashMapKeysProxy(); +- }; +- +- class HashMapValuesProxy : private HashMap { ++ }; ++ ++ template ++ class HashMap::HashMapValuesProxy : ++ private HashMap { + public: +- typedef typename HashMap::iterator::Values iterator; +- typedef typename HashMap::const_iterator::Values const_iterator; +- ++ typedef HashMap HashMapType; ++ typedef typename HashMapType::iterator::Values iterator; ++ typedef typename HashMapType::const_iterator::Values const_iterator; ++ + iterator begin() + { +- return HashMap::begin().values(); +- } +- ++ return HashMapType::begin().values(); ++ } ++ + iterator end() + { +- return HashMap::end().values(); ++ return HashMapType::end().values(); + } + + const_iterator begin() const + { +- return HashMap::begin().values(); +- } +- ++ return HashMapType::begin().values(); ++ } ++ + const_iterator end() const + { +- return HashMap::end().values(); ++ return HashMapType::end().values(); + } + +@@ -205,7 +214,4 @@ + HashMapValuesProxy& operator=(const HashMapValuesProxy&); + ~HashMapValuesProxy(); +- }; +- +- HashTableType m_impl; + }; + diff --git a/webkit-commit-147640.patch b/webkit-commit-147640.patch new file mode 100644 index 0000000..3d6f704 --- /dev/null +++ b/webkit-commit-147640.patch @@ -0,0 +1,12 @@ +--- qtwebkit-opensource-src-5.0.2/Source/WTF/wtf/Compiler.h.static_assert 2013-05-18 00:27:58.755311019 +0200 ++++ qtwebkit-opensource-src-5.0.2/Source/WTF/wtf/Compiler.h 2013-05-18 00:36:49.386262802 +0200 +@@ -122,6 +122,9 @@ + + /* Specific compiler features */ + #if COMPILER(GCC) && !COMPILER(CLANG) ++#if GCC_VERSION_AT_LEAST(4, 8, 0) ++#pragma GCC diagnostic ignored "-Wunused-local-typedefs" ++#endif + #if GCC_VERSION_AT_LEAST(4, 7, 0) && defined(__cplusplus) && __cplusplus >= 201103L + #define WTF_COMPILER_SUPPORTS_CXX_RVALUE_REFERENCES 1 + #define WTF_COMPILER_SUPPORTS_CXX_DELETED_FUNCTIONS 1 diff --git a/webkit-qtwebkit-2.2-tp1-pluginpath.patch b/webkit-qtwebkit-2.2-tp1-pluginpath.patch new file mode 100644 index 0000000..b1e8e2f --- /dev/null +++ b/webkit-qtwebkit-2.2-tp1-pluginpath.patch @@ -0,0 +1,19 @@ +diff -up webkit-qtwebkit/Source/WebCore/plugins/PluginDatabase.cpp.orig webkit-qtwebkit/Source/WebCore/plugins/PluginDatabase.cpp +--- webkit-qtwebkit/Source/WebCore/plugins/PluginDatabase.cpp.orig 2011-05-12 10:06:43.000000000 +0200 ++++ webkit-qtwebkit/Source/WebCore/plugins/PluginDatabase.cpp 2011-05-12 10:08:08.000000000 +0200 +@@ -380,6 +380,7 @@ Vector PluginDatabase::defaultPl + paths.append("/usr/lib/firefox/plugins"); + paths.append("/usr/lib64/browser-plugins"); + paths.append("/usr/lib/browser-plugins"); ++ paths.append("/usr/lib/mozilla/plugins-wrapped"); + paths.append("/usr/lib/mozilla/plugins"); + paths.append("/usr/local/netscape/plugins"); + paths.append("/opt/mozilla/plugins"); +@@ -389,6 +390,7 @@ Vector PluginDatabase::defaultPl + paths.append("/usr/lib/netscape/plugins"); + paths.append("/usr/lib/netscape/plugins-libc5"); + paths.append("/usr/lib/netscape/plugins-libc6"); ++ paths.append("/usr/lib64/mozilla/plugins-wrapped"); + paths.append("/usr/lib64/netscape/plugins"); + paths.append("/usr/lib64/mozilla/plugins"); + paths.append("/usr/lib/nsbrowser/plugins");