summaryrefslogtreecommitdiffstats
path: root/deps/qt5
diff options
context:
space:
mode:
author Eric Hameleers <alien@slackware.com>2017-01-27 10:44:40 +0100
committer Eric Hameleers <alien@slackware.com>2017-01-27 10:44:40 +0100
commit3a9a6b03fe2e098d803f3db020a884a266f1b059 (patch)
tree991f31425090cbe2d1cf89a0c5a875b0594899cb /deps/qt5
parent9acb3d93cc78968adcf962dbdc13c0d0c696df11 (diff)
downloadktown-3a9a6b03fe2e098d803f3db020a884a266f1b059.tar.gz
ktown-3a9a6b03fe2e098d803f3db020a884a266f1b059.tar.xz
deps: support the new and changed requirements for KDE 5_17.01
New: - libdmtx - libwacom - qrencode Upgraded: - PyQt - libinput - qt5 - qt5-webkit - sip
Diffstat (limited to 'deps/qt5')
-rw-r--r--deps/qt5/.url2
-rw-r--r--deps/qt5/patches/qt5.qtbug-49061.patch80
-rw-r--r--deps/qt5/patches/qt5.qtbug-55583.patch41
-rwxr-xr-xdeps/qt5/qt5.SlackBuild28
4 files changed, 134 insertions, 17 deletions
diff --git a/deps/qt5/.url b/deps/qt5/.url
index 34da870..350e58d 100644
--- a/deps/qt5/.url
+++ b/deps/qt5/.url
@@ -1 +1 @@
-http://download.qt.io/official_releases/qt/5.7/5.7.0/single/qt-everywhere-opensource-src-5.7.0.tar.gz
+http://download.qt.io/official_releases/qt/5.7/5.7.1/single/qt-everywhere-opensource-src-5.7.1.tar.xz
diff --git a/deps/qt5/patches/qt5.qtbug-49061.patch b/deps/qt5/patches/qt5.qtbug-49061.patch
new file mode 100644
index 0000000..d006edb
--- /dev/null
+++ b/deps/qt5/patches/qt5.qtbug-49061.patch
@@ -0,0 +1,80 @@
+#
+# https://github.com/qt/qtbase/commit/494376f9.patch
+#
+From 494376f980e96339b6f1eff7c41336ca4d853065 Mon Sep 17 00:00:00 2001
+From: Thiago Macieira <thiago.macieira@intel.com>
+Date: Thu, 12 Nov 2015 10:14:51 -0800
+Subject: [PATCH] Stop unloading plugins in QPluginLoader and QFactoryLoader
+
+QPluginLoader hasn't unloaded in its destructor since Qt 5.0, but we
+missed the equivalent code in QFactoryLoader (which bypasses
+QPluginLoader). Besides, QPluginLoader::unload() was still doing
+unloading, which it won't anymore.
+
+Not unloading plugins is Qt's policy, as decided during the 5.0
+development process and reaffirmed now in 5.6. This is due to static
+data in plugins leaking out and remaining in use past the unloading of
+the plugin, causing crashes.
+
+This does not affect QLibrary and QLibrary::unload(). Those are meant
+for non-Qt loadable modules, so unloading them may be safe.
+
+Task-number: QTBUG-49061
+Discussed-on: http://lists.qt-project.org/pipermail/development/2015-November/023681.html
+Change-Id: I461e9fc7199748faa187ffff1416070f138df8db
+Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
+Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
+---
+ src/corelib/plugin/qfactoryloader.cpp | 6 ++++--
+ src/corelib/plugin/qpluginloader.cpp | 5 +++--
+ 2 files changed, 7 insertions(+), 4 deletions(-)
+
+diff --git a/src/corelib/plugin/qfactoryloader.cpp b/src/corelib/plugin/qfactoryloader.cpp
+index 53b38c3..c820d53 100644
+--- a/src/corelib/plugin/qfactoryloader.cpp
++++ b/src/corelib/plugin/qfactoryloader.cpp
+@@ -203,10 +203,12 @@ void QFactoryLoader::update()
+ ++keyUsageCount;
+ }
+ }
+- if (keyUsageCount || keys.isEmpty())
++ if (keyUsageCount || keys.isEmpty()) {
++ library->setLoadHints(QLibrary::PreventUnloadHint); // once loaded, don't unload
+ d->libraryList += library;
+- else
++ } else {
+ library->release();
++ }
+ }
+ }
+ #else
+diff --git a/src/corelib/plugin/qpluginloader.cpp b/src/corelib/plugin/qpluginloader.cpp
+index 62067c7..4752f69 100644
+--- a/src/corelib/plugin/qpluginloader.cpp
++++ b/src/corelib/plugin/qpluginloader.cpp
+@@ -154,6 +154,7 @@ QPluginLoader::QPluginLoader(const QString &fileName, QObject *parent)
+ : QObject(parent), d(0), did_load(false)
+ {
+ setFileName(fileName);
++ setLoadHints(QLibrary::PreventUnloadHint);
+ }
+
+ /*!
+@@ -348,7 +349,7 @@ static QString locatePlugin(const QString& fileName)
+ void QPluginLoader::setFileName(const QString &fileName)
+ {
+ #if defined(QT_SHARED)
+- QLibrary::LoadHints lh;
++ QLibrary::LoadHints lh = QLibrary::PreventUnloadHint;
+ if (d) {
+ lh = d->loadHints();
+ d->release();
+@@ -394,7 +395,7 @@ QString QPluginLoader::errorString() const
+ \brief Give the load() function some hints on how it should behave.
+
+ You can give hints on how the symbols in the plugin are
+- resolved. By default, none of the hints are set.
++ resolved. By default since Qt 5.7, QLibrary::PreventUnloadHint is set.
+
+ See the documentation of QLibrary::loadHints for a complete
+ description of how this property works.
diff --git a/deps/qt5/patches/qt5.qtbug-55583.patch b/deps/qt5/patches/qt5.qtbug-55583.patch
new file mode 100644
index 0000000..804f538
--- /dev/null
+++ b/deps/qt5/patches/qt5.qtbug-55583.patch
@@ -0,0 +1,41 @@
+#
+# https://github.com/qt/qtbase/commit/84ea00d4.patch
+#
+From 84ea00d47049d882f2fabf1446ec6c6eb5fe3038 Mon Sep 17 00:00:00 2001
+From: J-P Nurmi <jpnurmi@qt.io>
+Date: Tue, 6 Dec 2016 16:30:31 +0100
+Subject: [PATCH] QGtk3Dialog: don't crash on Wayland
+
+Check if it's an X11 window before calling XSetTransientForHint().
+No transient parent will be set for GTK+ dialogs on Wayland. That
+has to be implemented separately.
+
+Task-number: QTBUG-55583
+Change-Id: Iabc2a72681c8157bb2f2fe500892853aa397106b
+Reviewed-by: Dmitry Shachnev <mitya57@gmail.com>
+Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
+---
+ src/plugins/platformthemes/gtk3/qgtk3dialoghelpers.cpp | 10 ++++++----
+ 1 file changed, 6 insertions(+), 4 deletions(-)
+
+diff --git a/src/plugins/platformthemes/gtk3/qgtk3dialoghelpers.cpp b/src/plugins/platformthemes/gtk3/qgtk3dialoghelpers.cpp
+index ba5089a..699b058 100644
+--- a/src/plugins/platformthemes/gtk3/qgtk3dialoghelpers.cpp
++++ b/src/plugins/platformthemes/gtk3/qgtk3dialoghelpers.cpp
+@@ -135,10 +135,12 @@ bool QGtk3Dialog::show(Qt::WindowFlags flags, Qt::WindowModality modality, QWind
+
+ GdkWindow *gdkWindow = gtk_widget_get_window(gtkWidget);
+ if (parent) {
+- GdkDisplay *gdkDisplay = gdk_window_get_display(gdkWindow);
+- XSetTransientForHint(gdk_x11_display_get_xdisplay(gdkDisplay),
+- gdk_x11_window_get_xid(gdkWindow),
+- parent->winId());
++ if (GDK_IS_X11_WINDOW(gdkWindow)) {
++ GdkDisplay *gdkDisplay = gdk_window_get_display(gdkWindow);
++ XSetTransientForHint(gdk_x11_display_get_xdisplay(gdkDisplay),
++ gdk_x11_window_get_xid(gdkWindow),
++ parent->winId());
++ }
+ }
+
+ if (modality != Qt::NonModal) {
diff --git a/deps/qt5/qt5.SlackBuild b/deps/qt5/qt5.SlackBuild
index 089c09e..7326328 100755
--- a/deps/qt5/qt5.SlackBuild
+++ b/deps/qt5/qt5.SlackBuild
@@ -48,12 +48,13 @@
# 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
+# Modifications for qt 5.7.1 2017 by Eric Hameleers, Eindhoven, NL
PKGNAM=qt5
-VERSION=${VERSION:-5.7.0}
+VERSION=${VERSION:-5.7.1}
PKGSRC=$(echo $VERSION |cut -d- -f1)
PKGVER=$(echo $VERSION |tr - _)
-BUILD=${BUILD:-3}
+BUILD=${BUILD:-1}
NUMJOBS=${NUMJOBS:--j7}
@@ -135,24 +136,19 @@ fi
# Fix path to mysql header:
cat $CWD/patches/qt5.mysql.h.diff | patch -p1 --verbose || exit 1
-# Fix UNSIGNED values in QMYSQL:
-cd qtbase
- cat $CWD/patches/qt5.qtbug-53237.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 -
-# Fix freetype engine performance:
+# Don't unload plugins in QPluginLoader (segfault in LXQT):
cd qtbase
- cat $CWD/patches/qt5.qtbug-49452.patch | patch -p1 --verbose || exit 1
+ cat $CWD/patches/qt5.qtbug-49061.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 -
-
-# Fix crash on exit when using default property aliases with layouts:
-cd qtdeclarative
- cat $CWD/patches/qt5.qtbug-51927.patch | patch -p1 --verbose || exit 1
+# Fix file chooser segfault on Gnome/Wayland:
+cd qtbase
+ cat $CWD/patches/qt5.qtbug-55583.patch | patch -p1 --verbose || exit 1
cd -
if ! pkg-config --exists libpulse 2>/dev/null ; then