summaryrefslogtreecommitdiffstats
path: root/deps/qt5
diff options
context:
space:
mode:
Diffstat (limited to 'deps/qt5')
-rw-r--r--deps/qt5/.url2
-rw-r--r--deps/qt5/patches/qt5.glibc224.patch33
-rw-r--r--deps/qt5/patches/qt5.qtbug-49452.patch58
-rw-r--r--deps/qt5/patches/qt5.qtbug-53237.patch90
-rwxr-xr-xdeps/qt5/qt5.SlackBuild39
5 files changed, 200 insertions, 22 deletions
diff --git a/deps/qt5/.url b/deps/qt5/.url
index c819030..34da870 100644
--- a/deps/qt5/.url
+++ b/deps/qt5/.url
@@ -1 +1 @@
-http://download.qt.io/official_releases/qt/5.6/5.6.1-1/single/qt-everywhere-opensource-src-5.6.1-1.tar.xz
+http://download.qt.io/official_releases/qt/5.7/5.7.0/single/qt-everywhere-opensource-src-5.7.0.tar.gz
diff --git a/deps/qt5/patches/qt5.glibc224.patch b/deps/qt5/patches/qt5.glibc224.patch
new file mode 100644
index 0000000..773781a
--- /dev/null
+++ b/deps/qt5/patches/qt5.glibc224.patch
@@ -0,0 +1,33 @@
+From b12ffcd411d4776f7120ccecb3be34344d930d2b Mon Sep 17 00:00:00 2001
+From: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
+Date: Tue, 9 Aug 2016 16:21:29 +0200
+Subject: Do not depend on Linux 4.5
+
+Avoid using MADV_FREE that was only recently added to Linux. It will fail when
+run on older Linux kernels.
+
+Change-Id: I9b0369fb31402f088b2327c12f70dd39f5e4c8c0
+Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
+---
+ chromium/third_party/WebKit/Source/wtf/PageAllocator.cpp | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/src/3rdparty/chromium/third_party/WebKit/Source/wtf/PageAllocator.cpp b/src/3rdparty/chromium/third_party/WebKit/Source/wtf/PageAllocator.cpp
+index 121b687..be7c3b9 100644
+--- a/src/3rdparty/chromium/third_party/WebKit/Source/wtf/PageAllocator.cpp
++++ b/src/3rdparty/chromium/third_party/WebKit/Source/wtf/PageAllocator.cpp
+@@ -39,6 +39,11 @@
+
+ #include <sys/mman.h>
+
++#if OS(LINUX) && defined(MADV_FREE)
++// Added in Linux 4.5, but we don't want to depend on 4.5 at runtime
++#undef MADV_FREE
++#endif
++
+ #ifndef MADV_FREE
+ #define MADV_FREE MADV_DONTNEED
+ #endif
+--
+cgit v1.0-4-g1e03
+
diff --git a/deps/qt5/patches/qt5.qtbug-49452.patch b/deps/qt5/patches/qt5.qtbug-49452.patch
new file mode 100644
index 0000000..4549ff1
--- /dev/null
+++ b/deps/qt5/patches/qt5.qtbug-49452.patch
@@ -0,0 +1,58 @@
+From 6f423555eba55ccdf7287071e10576bc1b687fd2 Mon Sep 17 00:00:00 2001
+From: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
+Date: Mon, 1 Aug 2016 13:39:53 +0200
+Subject: [PATCH] REG: Fix unwanted cache flush in Freetype engine
+
+The Freetype cache was almost completely disabled by
+134c6db8587a8ce156d4fa31ffa62605821851b2 because after that
+change, the lockedAlphaMapForGlyph() function would no longer
+cut off early for empty glyphs like spaces, but rather go
+through all alpha map functions before it realized that there
+was nothing to render. This would in turn invalidate the cache
+for every empty glyph, causing all glyphs to be rerendered for
+every isolated word.
+
+This change adds back a cut off. This is only needed in the
+lockedAlphaMapForGlyph() function, since the superclass implementation
+of the other alpha map functions already contains a cut off for
+width/height == 0.
+
+[ChangeLog][Qt Gui][Text] Fixed a performance regression in Freetype
+engine that was introduced in Qt 5.5.
+
+Change-Id: I381285939909e99cc5fb5f3497fecf9fa871f29a
+Task-number: QTBUG-49452
+Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
+---
+ src/gui/text/qfontengine_ft.cpp | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/src/gui/text/qfontengine_ft.cpp b/src/gui/text/qfontengine_ft.cpp
+index 4de41df..7c878da 100644
+--- a/src/gui/text/qfontengine_ft.cpp
++++ b/src/gui/text/qfontengine_ft.cpp
+@@ -1716,7 +1716,7 @@ glyph_metrics_t QFontEngineFT::alphaMapBoundingBox(glyph_t glyph, QFixed subPixe
+
+ static inline QImage alphaMapFromGlyphData(QFontEngineFT::Glyph *glyph, QFontEngine::GlyphFormat glyphFormat)
+ {
+- if (glyph == Q_NULLPTR)
++ if (glyph == Q_NULLPTR || glyph->height == 0 || glyph->width == 0)
+ return QImage();
+
+ QImage::Format format = QImage::Format_Invalid;
+@@ -1764,11 +1764,15 @@ QImage *QFontEngineFT::lockedAlphaMapForGlyph(glyph_t glyphIndex, QFixed subPixe
+
+ currentlyLockedAlphaMap = alphaMapFromGlyphData(glyph, neededFormat);
+
++ const bool glyphHasGeometry = glyph != Q_NULLPTR && glyph->height != 0 && glyph->width != 0;
+ if (!cacheEnabled && glyph != &emptyGlyph) {
+ currentlyLockedAlphaMap = currentlyLockedAlphaMap.copy();
+ delete glyph;
+ }
+
++ if (!glyphHasGeometry)
++ return Q_NULLPTR;
++
+ if (currentlyLockedAlphaMap.isNull())
+ return QFontEngine::lockedAlphaMapForGlyph(glyphIndex, subPixelPosition, neededFormat, t, offset);
+
diff --git a/deps/qt5/patches/qt5.qtbug-53237.patch b/deps/qt5/patches/qt5.qtbug-53237.patch
new file mode 100644
index 0000000..c6d5739
--- /dev/null
+++ b/deps/qt5/patches/qt5.qtbug-53237.patch
@@ -0,0 +1,90 @@
+From 8e889378115c69508b050a511621ac8e30ec4158 Mon Sep 17 00:00:00 2001
+From: Jesus Fernandez <jesus.fernandez@theqtcompany.com>
+Date: Mon, 13 Jun 2016 19:09:15 +0200
+Subject: [PATCH] Fix UNSIGNED values in QMYSQL
+
+The unsigned flag in columns was ignored when creating the list of
+bound values in a mysql table. So the result iteration with
+QSqlQuery::next stops after the first wrong truncated value.
+
+[ChangeLog][QtSql] Fixed QSqlQuery::prepare value truncation error when
+using UNSIGNED values in a MySQL database.
+
+Task-number: QTBUG-53969
+Task-number: QTBUG-53237
+Change-Id: I10d977993445f2794f1dd8c88b2e83517ef524f3
+Reviewed-by: Milian Wolff <milian.wolff@kdab.com>
+---
+ src/sql/drivers/mysql/qsql_mysql.cpp | 1 +
+ tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp | 39 +++++++++++++++++++++++
+ 2 files changed, 40 insertions(+)
+
+diff --git a/src/sql/drivers/mysql/qsql_mysql.cpp b/src/sql/drivers/mysql/qsql_mysql.cpp
+index 96bdcc4..55bf499 100644
+--- a/src/sql/drivers/mysql/qsql_mysql.cpp
++++ b/src/sql/drivers/mysql/qsql_mysql.cpp
+@@ -387,6 +387,7 @@ bool QMYSQLResultPrivate::bindInValues()
+ bind->buffer_length = f.bufLength = fieldInfo->length + 1;
+ bind->is_null = &f.nullIndicator;
+ bind->length = &f.bufLength;
++ bind->is_unsigned = fieldInfo->flags & UNSIGNED_FLAG ? 1 : 0;
+ f.outField=field;
+
+ ++i;
+diff --git a/tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp b/tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp
+index bd553d5..f1c4333 100644
+--- a/tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp
++++ b/tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp
+@@ -233,6 +233,9 @@ private slots:
+ void QTBUG_36211_data() { generic_data("QPSQL"); }
+ void QTBUG_36211();
+
++ void QTBUG_53969_data() { generic_data("QMYSQL"); }
++ void QTBUG_53969();
++
+ void sqlite_constraint_data() { generic_data("QSQLITE"); }
+ void sqlite_constraint();
+
+@@ -3652,6 +3655,42 @@ void tst_QSqlQuery::QTBUG_36211()
+ }
+ }
+
++void tst_QSqlQuery::QTBUG_53969()
++{
++ QFETCH( QString, dbName );
++ QVector<int> values = QVector<int>() << 10 << 20 << 127 << 128 << 1, tableValues;
++ QSqlDatabase db = QSqlDatabase::database( dbName );
++ CHECK_DATABASE( db );
++ tableValues.reserve(values.size());
++ if (tst_Databases::getDatabaseType(db) == QSqlDriver::MySqlServer) {
++ const QString tableName(qTableName("bug53969", __FILE__, db));
++ tst_Databases::safeDropTable( db, tableName );
++
++ QSqlQuery q(db);
++ QVERIFY_SQL(q, exec(QString("CREATE TABLE %1 (id INT AUTO_INCREMENT PRIMARY KEY, "
++ "test_number TINYINT(3) UNSIGNED)")
++ .arg(tableName)));
++
++ QVERIFY_SQL(q, prepare("INSERT INTO " + tableName + " (test_number) VALUES (:value)"));
++
++ QVector<int>::iterator begin = values.begin(), end = values.end(), it;
++ for (it = begin; it != end; ++it) {
++ q.bindValue(":value", *it);
++ QVERIFY_SQL(q, exec());
++ }
++
++ QVERIFY_SQL(q, prepare("SELECT test_number FROM " + tableName));
++ QVERIFY_SQL(q, exec());
++
++ while (q.next()) {
++ bool ok;
++ tableValues.push_back(q.value(0).toUInt(&ok));
++ QVERIFY(ok);
++ }
++ QCOMPARE(values, tableValues);
++ }
++}
++
+ void tst_QSqlQuery::oraOCINumber()
+ {
+ QFETCH( QString, dbName );
diff --git a/deps/qt5/qt5.SlackBuild b/deps/qt5/qt5.SlackBuild
index e7df254..0b5c52f 100755
--- a/deps/qt5/qt5.SlackBuild
+++ b/deps/qt5/qt5.SlackBuild
@@ -47,12 +47,13 @@
# Modifications for qt 5.5.1 2015,2016 by Eric Hameleers, Eindhoven, NL
# Modifications for qt 5.6.0 2016 by Eric Hameleers, Eindhoven, NL
# Modifications for qt 5.6.1 2016 by Eric Hameleers, Eindhoven, NL
+# Modifications for qt 5.7.0 2016 by Eric Hameleers, Eindhoven, NL
PKGNAM=qt5
-VERSION=${VERSION:-5.6.1-1}
+VERSION=${VERSION:-5.7.0}
PKGSRC=$(echo $VERSION |cut -d- -f1)
PKGVER=$(echo $VERSION |tr - _)
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
NUMJOBS=${NUMJOBS:--j7}
@@ -134,25 +135,20 @@ fi
# Fix path to mysql header:
cat $CWD/patches/qt5.mysql.h.diff | patch -p1 --verbose || exit 1
-## Properly detect ALSA version 1.1.0 as being newer than 1.0.10:
-#cat $CWD/patches/qt5.alsa.patch | patch -p1 --verbose || exit 1
-#
-## Build with explicitlib, preventing linker errors:
-#cd qtbase
-# cat $CWD/patches/qt5.qtbug-51621.patch | patch -p1 --verbose || exit 1
-#cd -
-#
-## Backport fixes for QtDBus deadlocks:
-#cd qtbase
-# cat $CWD/patches/qt5.qtbug-51648.patch | patch -p1 --verbose || exit 1
-# cat $CWD/patches/qt5.qtbug-51649.patch | patch -p1 --verbose || exit 1
-# cat $CWD/patches/qt5.qtbug-51676.patch | patch -p1 --verbose || exit 1
-#cd -
-#
-## qtwebengine fails to build with system nss 3.23:
-#cd qtwebengine
-# cat $CWD/patches/qt5.qtbug-51890.patch | patch -p1 --verbose || exit 1
-#cd -
+# Fix UNSIGNED values in QMYSQL:
+cd qtbase
+ cat $CWD/patches/qt5.qtbug-53237.patch | patch -p1 --verbose || exit 1
+cd -
+
+# Fix freetype engine performance:
+cd qtbase
+ cat $CWD/patches/qt5.qtbug-49452.patch | patch -p1 --verbose || exit 1
+cd -
+
+# Don't depend on features that were only added in linux 4.5:
+cd qtwebengine
+ cat $CWD/patches/qt5.glibc224.patch | patch -p1 --verbose || exit 1
+cd -
if ! pkg-config --exists libpulse 2>/dev/null ; then
# Forcibly disable pulseaudio in qtwebengine:
@@ -197,6 +193,7 @@ export QT_PLUGIN_PATH="${QTDIR}/qtbase/plugins"
-dbus \
-glib \
-icu \
+ -opengl \
-openssl \
-optimized-qmake \
-qpa xcb \