diff --git a/extra/qt5/CVE-2013-4549.patch b/extra/qt5/CVE-2013-4549.patch deleted file mode 100644 index 6111aa8fe..000000000 --- a/extra/qt5/CVE-2013-4549.patch +++ /dev/null @@ -1,235 +0,0 @@ -From 46a8885ae486e238a39efa5119c2714f328b08e4 Mon Sep 17 00:00:00 2001 -From: Mitch Curtis <mitch.curtis@digia.com> -Date: Fri, 27 Sep 2013 12:32:28 +0200 -Subject: [PATCH] Disallow deep or widely nested entity references. - -Nested references with a depth of 2 or greater will fail. References -that partially expand to greater than 1024 characters will also fail. - -Change-Id: Id4e49d6f7cf51e3a247efdb4c6c7c9bd9b223f6e -Reviewed-by: Richard J. Moore <rich@kde.org> -Reviewed-by: Lars Knoll <lars.knoll@digia.com> - -From f1053d94f59f053ce4acad9320df14f1fbe4faac Mon Sep 17 00:00:00 2001 -From: Mitch Curtis <mitch.curtis@digia.com> -Date: Mon, 11 Nov 2013 14:27:40 +0100 -Subject: [PATCH] Fully expand entities to ensure deep or widely nested ones fail parsing - -With 46a8885ae486e238a39efa5119c2714f328b08e4, we failed when parsing -entities whose partially expanded size was greater than 1024 -characters. That was not enough, so now we fully expand all entities. - -Amends 46a8885ae486e238a39efa5119c2714f328b08e4. - -Change-Id: Ie80720d7e04d825eb4eebf528140eb94806c02b1 -Reviewed-by: Richard J. Moore <rich@kde.org> -Reviewed-by: Lars Knoll <lars.knoll@digia.com> - -diff --git a/src/xml/sax/qxml.cpp b/src/xml/sax/qxml.cpp -index 45c0f3e..e6d78d3 100644 ---- a/src/xml/sax/qxml.cpp -+++ b/src/xml/sax/qxml.cpp -@@ -424,6 +424,10 @@ private: - int stringValueLen; - QString emptyStr; - -+ // The limit to the amount of times the DTD parsing functions can be called -+ // for the DTD currently being parsed. -+ int dtdRecursionLimit; -+ - const QString &string(); - void stringClear(); - void stringAddC(QChar); -@@ -493,6 +497,8 @@ private: - void parseFailed(ParseFunction where, int state); - void pushParseState(ParseFunction function, int state); - -+ bool isPartiallyExpandedEntityValueTooLarge(QString *errorMessage); -+ - Q_DECLARE_PUBLIC(QXmlSimpleReader) - QXmlSimpleReader *q_ptr; - -@@ -2757,6 +2763,8 @@ QXmlSimpleReaderPrivate::QXmlSimpleReaderPrivate(QXmlSimpleReader *reader) - useNamespacePrefixes = false; - reportWhitespaceCharData = true; - reportEntities = false; -+ -+ dtdRecursionLimit = 2; - } - - QXmlSimpleReaderPrivate::~QXmlSimpleReaderPrivate() -@@ -5035,6 +5043,11 @@ bool QXmlSimpleReaderPrivate::parseDoctype() - } - break; - case Mup: -+ if (dtdRecursionLimit > 0 && parameterEntities.size() > dtdRecursionLimit) { -+ reportParseError(QString::fromLatin1( -+ "DTD parsing exceeded recursion limit of %1.").arg(dtdRecursionLimit)); -+ return false; -+ } - if (!parseMarkupdecl()) { - parseFailed(&QXmlSimpleReaderPrivate::parseDoctype, state); - return false; -@@ -6644,6 +6657,37 @@ bool QXmlSimpleReaderPrivate::parseChoiceSeq() - return false; - } - -+bool QXmlSimpleReaderPrivate::isPartiallyExpandedEntityValueTooLarge(QString *errorMessage) -+{ -+ const QString value = string(); -+ QMap<QString, int> referencedEntityCounts; -+ foreach (QString entityName, entities.keys()) { -+ for (int i = 0; i < value.size() && i != -1; ) { -+ i = value.indexOf(entityName, i); -+ if (i != -1) { -+ // The entityName we're currently trying to find -+ // was matched in this string; increase our count. -+ ++referencedEntityCounts[entityName]; -+ i += entityName.size(); -+ } -+ } -+ } -+ -+ foreach (QString entityName, referencedEntityCounts.keys()) { -+ const int timesReferenced = referencedEntityCounts[entityName]; -+ const QString entityValue = entities[entityName]; -+ if (entityValue.size() * timesReferenced > 1024) { -+ if (errorMessage) { -+ *errorMessage = QString::fromLatin1("The XML entity \"%1\"" -+ "expands too a string that is too large to process when " -+ "referencing \"%2\" %3 times.").arg(entityName).arg(entityName).arg(timesReferenced); -+ } -+ return true; -+ } -+ } -+ return false; -+} -+ - /* - Parse a EntityDecl [70]. - -@@ -6738,6 +6782,15 @@ bool QXmlSimpleReaderPrivate::parseEntityDecl() - switch (state) { - case EValue: - if ( !entityExist(name())) { -+ QString errorMessage; -+ if (isPartiallyExpandedEntityValueTooLarge(&errorMessage)) { -+ // The entity at entityName is entityValue.size() characters -+ // long in its unexpanded form, and was mentioned timesReferenced times, -+ // resulting in a string that would be greater than 1024 characters. -+ reportParseError(errorMessage); -+ return false; -+ } -+ - entities.insert(name(), string()); - if (declHnd) { - if (!declHnd->internalEntityDecl(name(), string())) { -diff --git a/src/xml/sax/qxml.cpp b/src/xml/sax/qxml.cpp -index e6d78d3..f3a1e47 100644 ---- a/src/xml/sax/qxml.cpp -+++ b/src/xml/sax/qxml.cpp -@@ -426,7 +426,9 @@ private: - - // The limit to the amount of times the DTD parsing functions can be called - // for the DTD currently being parsed. -- int dtdRecursionLimit; -+ static const int dtdRecursionLimit = 2; -+ // The maximum amount of characters an entity value may contain, after expansion. -+ static const int entityCharacterLimit = 1024; - - const QString &string(); - void stringClear(); -@@ -497,7 +499,7 @@ private: - void parseFailed(ParseFunction where, int state); - void pushParseState(ParseFunction function, int state); - -- bool isPartiallyExpandedEntityValueTooLarge(QString *errorMessage); -+ bool isExpandedEntityValueTooLarge(QString *errorMessage); - - Q_DECLARE_PUBLIC(QXmlSimpleReader) - QXmlSimpleReader *q_ptr; -@@ -2763,8 +2765,6 @@ QXmlSimpleReaderPrivate::QXmlSimpleReaderPrivate(QXmlSimpleReader *reader) - useNamespacePrefixes = false; - reportWhitespaceCharData = true; - reportEntities = false; -- -- dtdRecursionLimit = 2; - } - - QXmlSimpleReaderPrivate::~QXmlSimpleReaderPrivate() -@@ -6657,30 +6657,43 @@ bool QXmlSimpleReaderPrivate::parseChoiceSeq() - return false; - } - --bool QXmlSimpleReaderPrivate::isPartiallyExpandedEntityValueTooLarge(QString *errorMessage) -+bool QXmlSimpleReaderPrivate::isExpandedEntityValueTooLarge(QString *errorMessage) - { -- const QString value = string(); -- QMap<QString, int> referencedEntityCounts; -- foreach (QString entityName, entities.keys()) { -- for (int i = 0; i < value.size() && i != -1; ) { -- i = value.indexOf(entityName, i); -- if (i != -1) { -- // The entityName we're currently trying to find -- // was matched in this string; increase our count. -- ++referencedEntityCounts[entityName]; -- i += entityName.size(); -+ QMap<QString, int> literalEntitySizes; -+ // The entity at (QMap<QString,) referenced the entities at (QMap<QString,) (int>) times. -+ QMap<QString, QMap<QString, int> > referencesToOtherEntities; -+ QMap<QString, int> expandedSizes; -+ -+ // For every entity, check how many times all entity names were referenced in its value. -+ foreach (QString toSearch, entities.keys()) { -+ // The amount of characters that weren't entity names, but literals, like 'X'. -+ QString leftOvers = entities.value(toSearch); -+ // How many times was entityName referenced by toSearch? -+ foreach (QString entityName, entities.keys()) { -+ for (int i = 0; i < leftOvers.size() && i != -1; ) { -+ i = leftOvers.indexOf(QString::fromLatin1("&%1;").arg(entityName), i); -+ if (i != -1) { -+ leftOvers.remove(i, entityName.size() + 2); -+ // The entityName we're currently trying to find was matched in this string; increase our count. -+ ++referencesToOtherEntities[toSearch][entityName]; -+ } - } - } -+ literalEntitySizes[toSearch] = leftOvers.size(); - } - -- foreach (QString entityName, referencedEntityCounts.keys()) { -- const int timesReferenced = referencedEntityCounts[entityName]; -- const QString entityValue = entities[entityName]; -- if (entityValue.size() * timesReferenced > 1024) { -+ foreach (QString entity, referencesToOtherEntities.keys()) { -+ expandedSizes[entity] = literalEntitySizes[entity]; -+ foreach (QString referenceTo, referencesToOtherEntities.value(entity).keys()) { -+ const int references = referencesToOtherEntities.value(entity).value(referenceTo); -+ // The total size of an entity's value is the expanded size of all of its referenced entities, plus its literal size. -+ expandedSizes[entity] += expandedSizes[referenceTo] * references + literalEntitySizes[referenceTo] * references; -+ } -+ -+ if (expandedSizes[entity] > entityCharacterLimit) { - if (errorMessage) { -- *errorMessage = QString::fromLatin1("The XML entity \"%1\"" -- "expands too a string that is too large to process when " -- "referencing \"%2\" %3 times.").arg(entityName).arg(entityName).arg(timesReferenced); -+ *errorMessage = QString::fromLatin1("The XML entity \"%1\" expands too a string that is too large to process (%2 characters > %3)."); -+ *errorMessage = (*errorMessage).arg(entity).arg(expandedSizes[entity]).arg(entityCharacterLimit); - } - return true; - } -@@ -6783,10 +6796,7 @@ bool QXmlSimpleReaderPrivate::parseEntityDecl() - case EValue: - if ( !entityExist(name())) { - QString errorMessage; -- if (isPartiallyExpandedEntityValueTooLarge(&errorMessage)) { -- // The entity at entityName is entityValue.size() characters -- // long in its unexpanded form, and was mentioned timesReferenced times, -- // resulting in a string that would be greater than 1024 characters. -+ if (isExpandedEntityValueTooLarge(&errorMessage)) { - reportParseError(errorMessage); - return false; - } --- -1.7 diff --git a/extra/qt5/PKGBUILD b/extra/qt5/PKGBUILD index f59f0909c..c2af64a3b 100644 --- a/extra/qt5/PKGBUILD +++ b/extra/qt5/PKGBUILD @@ -13,11 +13,12 @@ highmem=1 pkgbase=qt5 pkgname=('qt5-base' + 'qt5-connectivity' 'qt5-declarative' 'qt5-doc' 'qt5-graphicaleffects' 'qt5-imageformats' - 'qt5-jsbackend' + 'qt5-location' 'qt5-multimedia' 'qt5-quick1' 'qt5-quickcontrols' @@ -30,8 +31,8 @@ pkgname=('qt5-base' 'qt5-webkit' 'qt5-x11extras' 'qt5-xmlpatterns') -pkgver=5.1.1 -pkgrel=6 +pkgver=5.2.0 +pkgrel=1 arch=('i686' 'x86_64') url='http://qt-project.org/' license=('GPL3' 'LGPL' 'FDL' 'custom') @@ -40,26 +41,22 @@ makedepends=('libxcb' 'xcb-proto' 'xcb-util' 'xcb-util-image' 'xcb-util-wm' 'xcb 'libjpeg-turbo' 'cups' 'libpulse' 'hicolor-icon-theme' 'desktop-file-utils' 'postgresql-libs' 'libmariadbclient' 'sqlite' 'unixodbc' 'python2' 'ruby' 'gperf' 'libxslt' 'libxcomposite' 'fontconfig' - 'openal' 'gtk2' 'libxkbcommon' 'icu') + 'openal' 'gtk2' 'libxkbcommon' 'icu' 'python') groups=('qt' 'qt5') _pkgfqn="qt-everywhere-opensource-src-${pkgver}" -source=("http://download.qt-project.org/official_releases/qt/5.1/${pkgver}/single/${_pkgfqn}.tar.xz" +source=("http://download.qt-project.org/official_releases/qt/5.2/${pkgver}/single/${_pkgfqn}.tar.xz" 'assistant.desktop' 'designer.desktop' 'linguist.desktop' 'qdbusviewer.desktop' 'use-python2.patch' - 'deppath_gnu.patch' 'rpi.patch' 'undef_B0.patch' - 'bison3.patch' 'CVE-2013-4549.patch' 'libmng2.patch') -md5sums=('44a507beebef73eb364b5a2ec7bbe090' + 'deppath_gnu.patch' 'rpi.patch' 'undef_B0.patch') +md5sums=('8f60b47ca9461831d940f579ee90517e' 'b2897dd6a2967bccf8f10e397aafee55' '9638a78e502719ef8fe5f8d10d0361a9' '188da8f4c87316e730ebf1c6217bf5a0' '322b419b16c75d4de0ee7ad0a246caa1' - '92831f79144d5cb8121915423ba47575' + 'a378deccf363bd6079da459c89aff7b9' '21e4389ed0dd9c37e7cb48712d3bff91' '3f8d2f8fb4e5715f7ce79950fac3c31f' - '8a9ba2d990d8840a2114fcffb9f9d2a4' - '6b162cd2bc104f0ae83ca039401be7bf' - 'e59ba552e12408dcc9486cdbb1f233e3' - '478647fa057d190a7d789cf78995167b') + '8a9ba2d990d8840a2114fcffb9f9d2a4') prepare() { cd ${_pkgfqn} @@ -84,16 +81,6 @@ prepare() { sed -i -e "s|#![ ]*/usr/bin/python$|#!/usr/bin/python2|" \ -e "s|#![ ]*/usr/bin/env python$|#!/usr/bin/env python2|" \ $(find . -name '*.py') - - # Fix build with bison 3.x - cd qtwebkit - patch -p1 -i "${srcdir}"/bison3.patch - - cd ../qtbase - patch -p1 -i "${srcdir}"/CVE-2013-4549.patch - - cd ../qtimageformats - patch -p1 -i "${srcdir}"/libmng2.patch } build() { @@ -147,8 +134,8 @@ build() { package_qt5-base() { pkgdesc='A cross-platform application and UI framework' depends=('libjpeg-turbo' 'xcb-util-keysyms' 'libgl' 'dbus' 'fontconfig' 'systemd' - 'xcb-util-wm' 'libxrender' 'libxi' 'sqlite' 'libpng' 'xcb-util-image' - 'icu' 'qtchooser' 'libxkbcommon') + 'xcb-util-wm' 'libxrender' 'libxi' 'sqlite' 'xcb-util-image' 'icu' + 'qtchooser' 'libxkbcommon') optdepends=('postgresql-libs: PostgreSQL driver' 'libmariadbclient: MariaDB driver' 'unixodbc: ODBC driver') @@ -167,7 +154,7 @@ package_qt5-base() { # Fix wrong qmake path in pri file sed -i "s|${srcdir}/${_pkgfqn}/qtbase|/usr|" \ - "${pkgdir}"/usr/lib/qt/mkspecs/modules/qt_lib_bootstrap.pri + "${pkgdir}"/usr/lib/qt/mkspecs/modules/qt_lib_bootstrap_private.pri # Useful symlinks install -d "${pkgdir}"/usr/bin @@ -176,9 +163,24 @@ package_qt5-base() { done } +package_qt5-connectivity() { + pkgdesc='A cross-platform application and UI framework (QtBluetooth, QtNfc)' + depends=('qt5-declarative') + + cd ${_pkgfqn}/qtconnectivity + make INSTALL_ROOT="${pkgdir}" install + + # Fix wrong path in prl files + find "${pkgdir}/usr/lib" -type f -name '*.prl' \ + -exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d;s/\(QMAKE_PRL_LIBS =\).*/\1/' {} \; + + install -D -m644 LGPL_EXCEPTION.txt \ + "${pkgdir}"/usr/share/licenses/${pkgname}/LGPL_EXCEPTION.txt +} + package_qt5-declarative() { pkgdesc='A cross-platform application and UI framework (QtQml, QtQuick)' - depends=('qt5-jsbackend' 'qt5-xmlpatterns') + depends=('qt5-xmlpatterns') conflicts=('qt') cd ${_pkgfqn}/qtdeclarative @@ -215,21 +217,6 @@ package_qt5-doc() { "${pkgdir}"/usr/share/licenses/${pkgname}/LGPL_EXCEPTION.txt } -package_qt5-jsbackend() { - pkgdesc='A cross-platform application and UI framework (QtV8)' - depends=('qt5-base') - - cd ${_pkgfqn}/qtjsbackend - make INSTALL_ROOT="${pkgdir}" install - - # Fix wrong path in prl files - find "${pkgdir}/usr/lib" -type f -name '*.prl' \ - -exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d;s/\(QMAKE_PRL_LIBS =\).*/\1/' {} \; - - install -D -m644 LGPL_EXCEPTION.txt \ - "${pkgdir}"/usr/share/licenses/${pkgname}/LGPL_EXCEPTION.txt -} - package_qt5-xmlpatterns() { pkgdesc='A cross-platform application and UI framework (QtXmlPatterns)' depends=('qt5-base') @@ -293,7 +280,7 @@ package_qt5-graphicaleffects() { package_qt5-imageformats() { pkgdesc='A cross-platform application and UI framework (Images plugins)' - depends=('qt5-base' 'libtiff' 'libmng') + depends=('qt5-base' 'libtiff') conflicts=('qt') cd ${_pkgfqn}/qtimageformats @@ -303,6 +290,21 @@ package_qt5-imageformats() { "${pkgdir}"/usr/share/licenses/${pkgname}/LGPL_EXCEPTION.txt } +package_qt5-location() { + pkgdesc='A cross-platform application and UI framework (QtLocation, QtPositioning)' + depends=('qt5-declarative') + + cd ${_pkgfqn}/qtlocation + make INSTALL_ROOT="${pkgdir}" install + + # Fix wrong path in prl files + find "${pkgdir}/usr/lib" -type f -name '*.prl' \ + -exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d;s/\(QMAKE_PRL_LIBS =\).*/\1/' {} \; + + install -D -m644 LGPL_EXCEPTION.txt \ + "${pkgdir}"/usr/share/licenses/${pkgname}/LGPL_EXCEPTION.txt +} + package_qt5-quick1() { pkgdesc='A cross-platform application and UI framework (QtDeclarative)' depends=('qt5-webkit' 'qt5-script') @@ -447,7 +449,7 @@ package_qt5-tools() { package_qt5-webkit() { pkgdesc='A cross-platform application and UI framework (QtWebKit)' - depends=('qt5-declarative' 'gstreamer0.10-base' 'libxslt' 'libxcomposite' 'qt5-sensors') + depends=('qt5-sensors' 'qt5-location' 'gstreamer0.10-base' 'libxslt' 'libxcomposite') license=('GPL3' 'LGPL' 'FDL') cd ${_pkgfqn}/qtwebkit diff --git a/extra/qt5/bison3.patch b/extra/qt5/bison3.patch deleted file mode 100644 index 4070c88e8..000000000 --- a/extra/qt5/bison3.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 60ba8bd5b3575d0c7740571fbb4e681b21a49a82 Mon Sep 17 00:00:00 2001 -From: Allan Sandfeld Jensen <allan.jensen@digia.com> -Date: Fri, 16 Aug 2013 18:27:07 +0200 -Subject: [PATCH] ANGLE doesn't build with bison 3.0 - -https://bugs.webkit.org/show_bug.cgi?id=119798 - -Reviewed by Antti Koivisto. - -Make glslang.y compatible with bison 3.0 -by using %lex-param to set YYLEX_PARAM. - -* src/compiler/glslang.y: - -git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154109 268f45cc-cd09-0410-ab3c-d52691b4dbfc - -Task-number: QTBUG-32913 -Change-Id: I15505d31f0588c4d558b73befdb9d2358e29c1a3 -Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com> ---- - Source/ThirdParty/ANGLE/src/compiler/glslang.y | 1 + - 1 files changed, 1 insertions(+), 0 deletions(-) - -diff --git a/Source/ThirdParty/ANGLE/src/compiler/glslang.y b/Source/ThirdParty/ANGLE/src/compiler/glslang.y -index 3cad335..b41e95a 100644 ---- a/Source/ThirdParty/ANGLE/src/compiler/glslang.y -+++ b/Source/ThirdParty/ANGLE/src/compiler/glslang.y -@@ -47,6 +47,7 @@ WHICH GENERATES THE GLSL ES PARSER (glslang_tab.cpp AND glslang_tab.h). - %expect 1 /* One shift reduce conflict because of if | else */ - %pure-parser - %parse-param {TParseContext* context} -+%lex-param {YYLEX_PARAM} - - %union { - struct { --- -1.7.1 - diff --git a/extra/qt5/libmng2.patch b/extra/qt5/libmng2.patch deleted file mode 100644 index 0e23f60f7..000000000 --- a/extra/qt5/libmng2.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 9ae386653c321c8ddc10fad5ea88f32ebb3d3ffe Mon Sep 17 00:00:00 2001 -From: aavit <eirik.aavitsland@digia.com> -Date: Fri, 22 Nov 2013 15:04:23 +0100 -Subject: [PATCH] Recognize newer libmng versions in config test - -libmng 2.0.x has been released and is compatible and usable, but since -it no longer provides a VERSION_MAJOR macro, the config test would fail. - -Task-number: QTBUG-34894 -Change-Id: I106aa258de0851af01d1bb016c2971dd8e30fd24 -Reviewed-by: Liang Qi <liang.qi@digia.com> ---- - config.tests/libmng/libmng.cpp | 2 ++ - 1 files changed, 2 insertions(+), 0 deletions(-) - -diff --git a/config.tests/libmng/libmng.cpp b/config.tests/libmng/libmng.cpp -index 9def33e..fc3e693 100644 ---- a/config.tests/libmng/libmng.cpp -+++ b/config.tests/libmng/libmng.cpp -@@ -46,9 +46,11 @@ int main(int, char **) - mng_handle hMNG; - mng_cleanup(&hMNG); - -+#if defined(MNG_VERSION_MAJOR) - #if MNG_VERSION_MAJOR < 1 || (MNG_VERSION_MAJOR == 1 && MNG_VERSION_MINOR == 0 && MNG_VERSION_RELEASE < 9) - #error System libmng version is less than 1.0.9; using built-in version instead. - #endif -+#endif - - return 0; - } --- -1.7.1 - diff --git a/extra/qt5/use-python2.patch b/extra/qt5/use-python2.patch index 57487b996..3433766db 100644 --- a/extra/qt5/use-python2.patch +++ b/extra/qt5/use-python2.patch @@ -1,26 +1,35 @@ ---- qt-everywhere-opensource-src-5.0.0/qtjsbackend/src/v8/v8.pri~ 2013-01-11 06:50:55.241495644 +0000 -+++ qt-everywhere-opensource-src-5.0.0/qtjsbackend/src/v8/v8.pri 2013-01-11 06:51:29.987894356 +0000 -@@ -303,7 +303,7 @@ - V8_EXPERIMENTAL_LIBRARY_FILES = \ - $$V8SRC/proxy.js \ +--- qt-everywhere-opensource-src-5.2.0-rc1/qtwebkit/Source/WebCore/DerivedSources.pri~ 2013-11-29 16:57:47.573721157 +0000 ++++ qt-everywhere-opensource-src-5.2.0-rc1/qtwebkit/Source/WebCore/DerivedSources.pri 2013-11-29 16:58:22.270157823 +0000 +@@ -819,7 +819,7 @@ + inspectorValidate.output = InspectorProtocolVersion.h + inspectorValidate.input = INSPECTOR_JSON + inspectorValidate.script = $$PWD/inspector/generate-inspector-protocol-version +-inspectorValidate.commands = python $$inspectorValidate.script -o ${QMAKE_FILE_OUT} ${QMAKE_FILE_IN} ++inspectorValidate.commands = python2 $$inspectorValidate.script -o ${QMAKE_FILE_OUT} ${QMAKE_FILE_IN} + inspectorValidate.depends = $$PWD/inspector/generate-inspector-protocol-version + inspectorValidate.add_output_to_sources = false + GENERATORS += inspectorValidate +@@ -827,7 +827,7 @@ + inspectorJSON.output = InspectorFrontend.cpp InspectorBackendDispatcher.cpp InspectorTypeBuilder.cpp + inspectorJSON.input = INSPECTOR_JSON + inspectorJSON.script = $$PWD/inspector/CodeGeneratorInspector.py +-inspectorJSON.commands = python $$inspectorJSON.script $$PWD/inspector/Inspector.json --output_h_dir ${QMAKE_FUNC_FILE_OUT_PATH} --output_cpp_dir ${QMAKE_FUNC_FILE_OUT_PATH} ++inspectorJSON.commands = python2 $$inspectorJSON.script $$PWD/inspector/Inspector.json --output_h_dir ${QMAKE_FUNC_FILE_OUT_PATH} --output_cpp_dir ${QMAKE_FUNC_FILE_OUT_PATH} + inspectorJSON.depends = $$inspectorJSON.script + GENERATORS += inspectorJSON --v8_js2c.commands = python $$V8DIR/tools/js2c.py $$V8_GENERATED_SOURCES_DIR/libraries.cpp CORE off -+v8_js2c.commands = python2 $$V8DIR/tools/js2c.py $$V8_GENERATED_SOURCES_DIR/libraries.cpp CORE off - v8_js2c.commands += $$V8SRC/macros.py ${QMAKE_FILE_IN} - v8_js2c.output = $$V8_GENERATED_SOURCES_DIR/libraries.cpp - v8_js2c.input = V8_LIBRARY_FILES -@@ -314,7 +314,7 @@ - v8_js2c.name = generating[v8] ${QMAKE_FILE_IN} - silent:v8_js2c.commands = @echo generating[v8] ${QMAKE_FILE_IN} && $$v8_js2c.commands - --v8_js2c_experimental.commands = python $$V8DIR/tools/js2c.py $$V8_GENERATED_SOURCES_DIR/experimental-libraries.cpp EXPERIMENTAL off -+v8_js2c_experimental.commands = python2 $$V8DIR/tools/js2c.py $$V8_GENERATED_SOURCES_DIR/experimental-libraries.cpp EXPERIMENTAL off - v8_js2c_experimental.commands += $$V8SRC/macros.py ${QMAKE_FILE_IN} - v8_js2c_experimental.output = $$V8_GENERATED_SOURCES_DIR/experimental-libraries.cpp - v8_js2c_experimental.input = V8_EXPERIMENTAL_LIBRARY_FILES ---- qt-everywhere-opensource-src-5.0.0/qtwebkit/Source/JavaScriptCore/DerivedSources.pri~ 2013-01-09 11:29:16.452266719 +0000 -+++ qt-everywhere-opensource-src-5.0.0/qtwebkit/Source/JavaScriptCore/DerivedSources.pri 2013-01-09 11:30:18.188538725 +0000 -@@ -85,14 +85,14 @@ +@@ -927,7 +927,7 @@ + entities.output = HTMLEntityTable.cpp + entities.input = HTML_ENTITIES + entities.script = $$PWD/html/parser/create-html-entity-table +-entities.commands = python $$entities.script -o ${QMAKE_FILE_OUT} $$HTML_ENTITIES ++entities.commands = python2 $$entities.script -o ${QMAKE_FILE_OUT} $$HTML_ENTITIES + entities.clean = ${QMAKE_FILE_OUT} + entities.depends = $$PWD/html/parser/create-html-entity-table + GENERATORS += entities +--- qt-everywhere-opensource-src-5.2.0-rc1/qtwebkit/Source/JavaScriptCore/DerivedSources.pri~ 2013-11-29 16:58:05.470269189 +0000 ++++ qt-everywhere-opensource-src-5.2.0-rc1/qtwebkit/Source/JavaScriptCore/DerivedSources.pri 2013-11-29 16:58:44.276678608 +0000 +@@ -83,14 +83,14 @@ retgen.output = RegExpJitTables.h retgen.script = $$PWD/create_regex_tables retgen.input = retgen.script @@ -37,7 +46,7 @@ GENERATORS += klgen EXTRACTOR_BINARY = LLIntOffsetsExtractor$$BIN_EXTENSION -@@ -117,7 +117,7 @@ +@@ -114,7 +114,7 @@ disassembler.input = DISASSEMBLER_FILES disassembler.script = $$PWD/disassembler/udis86/itab.py disassembler.depends = $$DISASSEMBLER_DEPENDENCY @@ -46,73 +55,34 @@ disassembler.CONFIG += no_link GENERATORS += disassembler } ---- qt-everywhere-opensource-src-5.0.0/qtwebkit/Source/WebCore/DerivedSources.pri~ 2013-01-09 11:46:01.165612894 +0000 -+++ qt-everywhere-opensource-src-5.0.0/qtwebkit/Source/WebCore/DerivedSources.pri 2013-01-09 11:46:27.465404725 +0000 -@@ -779,7 +779,7 @@ - inspectorValidate.output = InspectorProtocolVersion.h - inspectorValidate.input = INSPECTOR_JSON - inspectorValidate.script = $$PWD/inspector/generate-inspector-protocol-version --inspectorValidate.commands = python $$inspectorValidate.script -o ${QMAKE_FILE_OUT} ${QMAKE_FILE_IN} -+inspectorValidate.commands = python2 $$inspectorValidate.script -o ${QMAKE_FILE_OUT} ${QMAKE_FILE_IN} - inspectorValidate.depends = $$PWD/inspector/generate-inspector-protocol-version - inspectorValidate.add_output_to_sources = false - GENERATORS += inspectorValidate -@@ -787,7 +787,7 @@ - inspectorJSON.output = InspectorFrontend.cpp InspectorBackendDispatcher.cpp InspectorTypeBuilder.cpp - inspectorJSON.input = INSPECTOR_JSON - inspectorJSON.script = $$PWD/inspector/CodeGeneratorInspector.py --inspectorJSON.commands = python $$inspectorJSON.script $$PWD/inspector/Inspector.json --output_h_dir ${QMAKE_FUNC_FILE_OUT_PATH} --output_cpp_dir ${QMAKE_FUNC_FILE_OUT_PATH} -+inspectorJSON.commands = python2 $$inspectorJSON.script $$PWD/inspector/Inspector.json --output_h_dir ${QMAKE_FUNC_FILE_OUT_PATH} --output_cpp_dir ${QMAKE_FUNC_FILE_OUT_PATH} - inspectorJSON.depends = $$inspectorJSON.script - GENERATORS += inspectorJSON - -@@ -908,7 +908,7 @@ - entities.output = HTMLEntityTable.cpp - entities.input = HTML_ENTITIES - entities.script = $$PWD/html/parser/create-html-entity-table --entities.commands = python $$entities.script -o ${QMAKE_FILE_OUT} $$HTML_ENTITIES -+entities.commands = python2 $$entities.script -o ${QMAKE_FILE_OUT} $$HTML_ENTITIES - entities.clean = ${QMAKE_FILE_OUT} - entities.depends = $$PWD/html/parser/create-html-entity-table - GENERATORS += entities ---- qt-everywhere-opensource-src-5.0.1/qtwebkit/Source/WebKit2/DerivedSources.pri~ 2013-02-10 13:48:49.800319915 +0000 -+++ qt-everywhere-opensource-src-5.0.1/qtwebkit/Source/WebKit2/DerivedSources.pri 2013-02-10 13:49:09.966867900 +0000 -@@ -120,14 +120,14 @@ - $$PWD/Scripts/webkit2/model.py \ - $$PWD/Scripts/webkit2/parser.py - --message_header_generator.commands = $${PYTHON} $${SOURCE_DIR}/WebKit2/Scripts/generate-messages-header.py ${QMAKE_FILE_IN} > ${QMAKE_FILE_OUT} -+message_header_generator.commands = python2 $${SOURCE_DIR}/WebKit2/Scripts/generate-messages-header.py ${QMAKE_FILE_IN} > ${QMAKE_FILE_OUT} - message_header_generator.input = MESSAGE_RECEIVERS - message_header_generator.depends = $$SCRIPTS - message_header_generator.output_function = message_header_generator_output - message_header_generator.add_output_to_sources = false - GENERATORS += message_header_generator - --message_receiver_generator.commands = $${PYTHON} $${SOURCE_DIR}/WebKit2/Scripts/generate-message-receiver.py ${QMAKE_FILE_IN} > ${QMAKE_FILE_OUT} -+message_receiver_generator.commands = python2 $${SOURCE_DIR}/WebKit2/Scripts/generate-message-receiver.py ${QMAKE_FILE_IN} > ${QMAKE_FILE_OUT} - message_receiver_generator.input = MESSAGE_RECEIVERS - message_receiver_generator.depends = $$SCRIPTS - message_receiver_generator.output_function = message_receiver_generator_output ---- qt-everywhere-opensource-src-5.0.2/qtwebkit/Tools/qmake/mkspecs/features/configure.prf~ 2013-04-11 08:05:15.149214600 +0000 -+++ qt-everywhere-opensource-src-5.0.2/qtwebkit/Tools/qmake/mkspecs/features/configure.prf 2013-04-11 08:05:28.829105110 +0000 +--- qt-everywhere-opensource-src-5.2.0-rc1/qtwebkit/Tools/qmake/mkspecs/features/configure.prf~ 2013-11-29 16:59:04.859875494 +0000 ++++ qt-everywhere-opensource-src-5.2.0-rc1/qtwebkit/Tools/qmake/mkspecs/features/configure.prf 2013-11-29 16:59:40.539638968 +0000 @@ -116,7 +116,7 @@ - production_build:blackberry { - addReasonForSkippingBuild("Build not supported on BB10 yet.") + production_build:blackberry|qnx { + addReasonForSkippingBuild("Build not supported on BB10/QNX yet.") } - requiredPrograms = gperf python perl bison ruby flex + requiredPrograms = gperf python2 perl bison ruby flex for(program, requiredPrograms): \ !programExistsInPath($$program): \ addReasonForSkippingBuild("Missing $$program from PATH") ---- qt-everywhere-opensource-src-5.1.0/qtjsbackend/src/3rdparty/v8/src/d8.gyp.old 2013-07-03 19:22:34.536705691 +0000 -+++ qt-everywhere-opensource-src-5.1.0/qtjsbackend/src/3rdparty/v8/src/d8.gyp 2013-07-03 19:22:25.606770334 +0000 -@@ -99,7 +99,7 @@ - '<(SHARED_INTERMEDIATE_DIR)/d8-js.cc', - ], - 'action': [ -- 'python', -+ 'python2', - '../tools/js2c.py', - '<@(_outputs)', - 'D8', +--- qt-everywhere-opensource-src-5.2.0-rc1/qtdeclarative/src/3rdparty/masm/masm.pri~ 2013-11-29 17:03:43.228028589 +0000 ++++ qt-everywhere-opensource-src-5.2.0-rc1/qtdeclarative/src/3rdparty/masm/masm.pri 2013-11-29 17:03:57.537933557 +0000 +@@ -47,7 +47,7 @@ + udis86.output = udis86_itab.h + udis86.input = ITAB + udis86.CONFIG += no_link +- udis86.commands = python $$PWD/disassembler/udis86/itab.py ${QMAKE_FILE_IN} ++ udis86.commands = python2 $$PWD/disassembler/udis86/itab.py ${QMAKE_FILE_IN} + QMAKE_EXTRA_COMPILERS += udis86 + + udis86_tab_cfile.target = $$OUT_PWD/udis86_itab.c +@@ -67,7 +67,7 @@ + retgen.script = $$PWD/create_regex_tables + retgen.input = retgen.script + retgen.CONFIG += no_link +-retgen.commands = python $$retgen.script > ${QMAKE_FILE_OUT} ++retgen.commands = python2 $$retgen.script > ${QMAKE_FILE_OUT} + QMAKE_EXTRA_COMPILERS += retgen + + # Taken from WebKit/Tools/qmake/mkspecs/features/unix/default_post.prf