summaryrefslogtreecommitdiffstats
path: root/deps/qt5
diff options
context:
space:
mode:
author Eric Hameleers <alien@slackware.com>2017-06-25 12:33:35 +0200
committer Eric Hameleers <alien@slackware.com>2017-06-25 12:33:35 +0200
commit780a8bb7752241f169bbbc7b48129ee489574f10 (patch)
treedf8c832f36f690957a63049e86748bd6364625f1 /deps/qt5
parent55557f22da56bfbeb2317d649b893e8d81279718 (diff)
downloadktown-780a8bb7752241f169bbbc7b48129ee489574f10.tar.gz
ktown-780a8bb7752241f169bbbc7b48129ee489574f10.tar.xz
Updated deps for upcoming KDE 5_17.06
On slackware-current, we switch to Qt 5.9 which is going to be a LTS release (Long Term Support).
Diffstat (limited to 'deps/qt5')
-rw-r--r--deps/qt5/.url2
-rw-r--r--deps/qt5/patches/qt5.mysql.h.diff7
-rw-r--r--deps/qt5/patches/qt5.qtbug-60558.patch32
-rw-r--r--deps/qt5/patches/qt5.qtbug-61140.patch101
-rwxr-xr-xdeps/qt5/qt5.SlackBuild49
5 files changed, 158 insertions, 33 deletions
diff --git a/deps/qt5/.url b/deps/qt5/.url
index 350e58d..79507a2 100644
--- a/deps/qt5/.url
+++ b/deps/qt5/.url
@@ -1 +1 @@
-http://download.qt.io/official_releases/qt/5.7/5.7.1/single/qt-everywhere-opensource-src-5.7.1.tar.xz
+https://download.qt.io/archive/qt/5.9/5.9.0/single/qt-everywhere-opensource-src-5.9.0.tar.xz
diff --git a/deps/qt5/patches/qt5.mysql.h.diff b/deps/qt5/patches/qt5.mysql.h.diff
index 41dc9d3..f1cf11b 100644
--- a/deps/qt5/patches/qt5.mysql.h.diff
+++ b/deps/qt5/patches/qt5.mysql.h.diff
@@ -1,7 +1,6 @@
-diff -Naur qt-everywhere-opensource-src-5.1.0.orig/qtbase/src/sql/drivers/mysql/qsql_mysql_p.h qt-everywhere-opensource-src-5.1.0/qtbase/src/sql/drivers/mysql/qsql_mysql_p.h
---- qt-everywhere-opensource-src-5.1.0.orig/qtbase/src/sql/drivers/mysql/qsql_mysql_p.h 2013-07-02 07:09:52.000000000 +0000
-+++ qt-everywhere-opensource-src-5.1.0/qtbase/src/sql/drivers/mysql/qsql_mysql_p.h 2013-07-21 21:21:01.190172379 +0000
-@@ -60,7 +60,7 @@
+--- qt-everywhere-opensource-src-5.9.0/qtbase/src/plugins/sqldrivers/mysql/qsql_mysql_p.h.orig 2017-05-26 14:43:31.000000000 +0200
++++ qt-everywhere-opensource-src-5.9.0/qtbase/src/plugins/sqldrivers/mysql/qsql_mysql_p.h 2017-06-17 22:11:34.211899826 +0200
+@@ -57,7 +57,7 @@
#include <QtCore/qt_windows.h>
#endif
diff --git a/deps/qt5/patches/qt5.qtbug-60558.patch b/deps/qt5/patches/qt5.qtbug-60558.patch
new file mode 100644
index 0000000..2d03920
--- /dev/null
+++ b/deps/qt5/patches/qt5.qtbug-60558.patch
@@ -0,0 +1,32 @@
+https://github.com/qt/qtbase/commit/f45c6c18.patch
+
+From f45c6c180463ccb6620e1d273a264f14a1204a93 Mon Sep 17 00:00:00 2001
+From: Thiago Macieira <thiago.macieira@intel.com>
+Date: Wed, 3 May 2017 14:08:50 -0700
+Subject: [PATCH] QInternal::unregisterCallback: don't crash on unregistering
+ during exit
+
+Task-number: QTBUG-60558
+Change-Id: Ica9894dc9b5e48278fd4fffd14bb34c6d98d2555
+Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
+---
+ src/corelib/global/qglobal.cpp | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/src/corelib/global/qglobal.cpp b/src/corelib/global/qglobal.cpp
+index c37503f3db..22fc20d47e 100644
+--- a/src/corelib/global/qglobal.cpp
++++ b/src/corelib/global/qglobal.cpp
+@@ -3988,8 +3988,10 @@ bool QInternal::registerCallback(Callback cb, qInternalCallback callback)
+ bool QInternal::unregisterCallback(Callback cb, qInternalCallback callback)
+ {
+ if (cb >= 0 && cb < QInternal::LastCallback) {
+- QInternal_CallBackTable *cbt = global_callback_table();
+- return (bool) cbt->callbacks[cb].removeAll(callback);
++ if (global_callback_table.exists()) {
++ QInternal_CallBackTable *cbt = global_callback_table();
++ return (bool) cbt->callbacks[cb].removeAll(callback);
++ }
+ }
+ return false;
+ }
diff --git a/deps/qt5/patches/qt5.qtbug-61140.patch b/deps/qt5/patches/qt5.qtbug-61140.patch
new file mode 100644
index 0000000..17468a9
--- /dev/null
+++ b/deps/qt5/patches/qt5.qtbug-61140.patch
@@ -0,0 +1,101 @@
+https://github.com/qt/qtbase/commit/744fd39e.patch
+
+From 744fd39e66b0b44e65a2505d674fa1cda8b205a4 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Tor=20Arne=20Vestb=C3=B8?= <tor.arne.vestbo@qt.io>
+Date: Fri, 2 Jun 2017 11:09:55 +0200
+Subject: [PATCH] xcb: Don't destroy foreign windows
+
+We can't rely on virtual dispatch in the destructor.
+
+Task-number: QTBUG-61140
+Change-Id: Ib1026caf126095778c24254775cb5a0bfecf3a38
+Reviewed-by: Fabian Vogt
+Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
+---
+ src/plugins/platforms/xcb/qxcbintegration.cpp | 18 +-----------------
+ src/plugins/platforms/xcb/qxcbwindow.cpp | 16 ++++++++++------
+ src/plugins/platforms/xcb/qxcbwindow.h | 12 ++++++++++++
+ 3 files changed, 23 insertions(+), 23 deletions(-)
+
+diff --git a/src/plugins/platforms/xcb/qxcbintegration.cpp b/src/plugins/platforms/xcb/qxcbintegration.cpp
+index b414bee204..8e3ee20329 100644
+--- a/src/plugins/platforms/xcb/qxcbintegration.cpp
++++ b/src/plugins/platforms/xcb/qxcbintegration.cpp
+@@ -214,25 +214,9 @@ QPlatformWindow *QXcbIntegration::createPlatformWindow(QWindow *window) const
+ return xcbWindow;
+ }
+
+-class QXcbForeignWindow : public QXcbWindow
+-{
+-public:
+- QXcbForeignWindow(QWindow *window, WId nativeHandle)
+- : QXcbWindow(window) { m_window = nativeHandle; }
+- ~QXcbForeignWindow() {}
+- bool isForeignWindow() const override { return true; }
+-
+-protected:
+- // No-ops
+- void create() override {}
+- void destroy() override {}
+-};
+-
+ QPlatformWindow *QXcbIntegration::createForeignWindow(QWindow *window, WId nativeHandle) const
+ {
+- QXcbWindow *xcbWindow = new QXcbForeignWindow(window, nativeHandle);
+- xcbWindow->create();
+- return xcbWindow;
++ return new QXcbForeignWindow(window, nativeHandle);
+ }
+
+ #ifndef QT_NO_OPENGL
+diff --git a/src/plugins/platforms/xcb/qxcbwindow.cpp b/src/plugins/platforms/xcb/qxcbwindow.cpp
+index 289d0720e7..d6c69d52ef 100644
+--- a/src/plugins/platforms/xcb/qxcbwindow.cpp
++++ b/src/plugins/platforms/xcb/qxcbwindow.cpp
+@@ -597,13 +597,17 @@ QXcbWindow::~QXcbWindow()
+ }
+
+ destroy();
++}
+
+- if (isForeignWindow()) {
+- if (connection()->mouseGrabber() == this)
+- connection()->setMouseGrabber(Q_NULLPTR);
+- if (connection()->mousePressWindow() == this)
+- connection()->setMousePressWindow(Q_NULLPTR);
+- }
++QXcbForeignWindow::~QXcbForeignWindow()
++{
++ // Clear window so that destroy() does not affect it
++ m_window = 0;
++
++ if (connection()->mouseGrabber() == this)
++ connection()->setMouseGrabber(nullptr);
++ if (connection()->mousePressWindow() == this)
++ connection()->setMousePressWindow(nullptr);
+ }
+
+ void QXcbWindow::destroy()
+diff --git a/src/plugins/platforms/xcb/qxcbwindow.h b/src/plugins/platforms/xcb/qxcbwindow.h
+index 56628094ee..f38343b6c2 100644
+--- a/src/plugins/platforms/xcb/qxcbwindow.h
++++ b/src/plugins/platforms/xcb/qxcbwindow.h
+@@ -278,6 +278,18 @@ public Q_SLOTS:
+ xcb_cursor_t m_currentBitmapCursor = XCB_CURSOR_NONE;
+ };
+
++class QXcbForeignWindow : public QXcbWindow
++{
++public:
++ QXcbForeignWindow(QWindow *window, WId nativeHandle)
++ : QXcbWindow(window) { m_window = nativeHandle; }
++ ~QXcbForeignWindow();
++ bool isForeignWindow() const override { return true; }
++
++protected:
++ void create() override {} // No-op
++};
++
+ QT_END_NAMESPACE
+
+ Q_DECLARE_METATYPE(QXcbWindow*)
diff --git a/deps/qt5/qt5.SlackBuild b/deps/qt5/qt5.SlackBuild
index 88908e1..34656dc 100755
--- a/deps/qt5/qt5.SlackBuild
+++ b/deps/qt5/qt5.SlackBuild
@@ -36,7 +36,7 @@
# Alternate method (we don't use this):
# wget http://qt.gitorious.org/qt/kde-qt/archive-tarball/4.6.2-patched
#
-# Modifications 2010, 2011, 2012, 2013, 2014, 2015, 2016 Eric Hameleers, Eindhoven, NL
+# Modifications 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017 Eric Hameleers, Eindhoven, NL
# qt 4.7.3, 4.7.4, 4.8.0, 4.8.1, 4.8.2, 4.8.4, are built from original nokia sources.
#
# Modifications for qt 5.2.0 2013 by Michael James, AU
@@ -49,19 +49,20 @@
# 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
+# Modifications for qt 5.9.0 2017 by Eric Hameleers, Eindhoven, NL
PKGNAM=qt5
-VERSION=${VERSION:-5.7.1}
+VERSION=${VERSION:-5.9.0}
PKGSRC=$(echo $VERSION |cut -d- -f1)
PKGVER=$(echo $VERSION |tr - _)
-BUILD=${BUILD:-3}
+BUILD=${BUILD:-1}
NUMJOBS=${NUMJOBS:--j7}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$(uname -m)" in
- i?86) ARCH=i486 ;;
+ i?86) ARCH=i586 ;;
arm*) readelf /usr/bin/file -A | egrep -q "Tag_CPU.*[4,5]" && ARCH=arm || ARCH=armv7hl ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) ARCH=$(uname -m) ;;
@@ -73,6 +74,10 @@ if [ "$ARCH" = "i486" ]; then
SLKCFLAGS="-O2 -march=i486 -mtune=i686"
SLKLDFLAGS=""
LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
+ SLKLDFLAGS=""
+ LIBDIRSUFFIX=""
elif [ "$ARCH" = "s390" ]; then
SLKCFLAGS="-O2"
SLKLDFLAGS=""
@@ -119,12 +124,6 @@ find . \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \;
-# Fix dangling symlinks, thanks Larry Hajali:
-rm -f qtwebengine/src/3rdparty/chromium/third_party/mesa/src/src/gallium/state_trackers/d3d1x/w32api
-rm -f qtwebengine/src/3rdparty/chromium/third_party/webrtc/tools/e2e_quality/audio/perf
-ln -s ../../../../../tools/perf \
- qtwebengine/src/3rdparty/chromium/third_party/webrtc/tools/e2e_quality/audio/
-
# Use -reduce-relocations only on i?86 and x86_64 architextures.
# https://bugreports.qt-project.org/browse/QTBUG-36129
if echo $ARCH | grep -q '\(i.86\|x86_64\)' 2>/dev/null; then
@@ -136,19 +135,18 @@ fi
# Fix path to mysql header:
cat $CWD/patches/qt5.mysql.h.diff | patch -p1 --verbose || exit 1
-## 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 missing private includes: QTBUG-37417
+sed -e '/CMAKE_NO_PRIVATE_INCLUDES\ \=\ true/d' \
+ -i qtbase/mkspecs/features/create_cmake.prf
-# Don't unload plugins in QPluginLoader (segfault in LXQT):
+# Don't destroy foreign windows, QTBUG-61140:
cd qtbase
- cat $CWD/patches/qt5.qtbug-49061.patch | patch -p1 --verbose || exit 1
+ cat $CWD/patches/qt5.qtbug-61140.patch | patch -p1 --verbose || exit 1
cd -
-# Fix file chooser segfault on Gnome/Wayland:
+# Fix crashes with QtCurve, QTBUG-60558:
cd qtbase
- cat $CWD/patches/qt5.qtbug-55583.patch | patch -p1 --verbose || exit 1
+ cat $CWD/patches/qt5.qtbug-60558.patch | patch -p1 --verbose || exit 1
cd -
if ! pkg-config --exists libpulse 2>/dev/null ; then
@@ -190,7 +188,6 @@ export QT_PLUGIN_PATH="${QTDIR}/qtbase/plugins"
-examplesdir /usr/doc/qt5-$PKGVER/examples \
-system-libpng \
-system-libjpeg \
- -system-pcre \
-system-sqlite \
-system-zlib \
-plugin-sql-mysql \
@@ -226,16 +223,12 @@ make install INSTALL_ROOT=$PKG || exit 1
find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
| cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
-# Fix internal linking for Qt5WebKit.pc , thanks to Larry Hajali's SBo script:
+# Fix internal linking for Qt5WebEngineCore.pc ,
+# thanks to Larry Hajali's SBo script:
sed -i \
- -e "s|-Wl,-whole-archive -lWebKit1 -Wl,-no-whole-archive -L${PWD}/qtwebkit/Source/WebKit[^ ]* ||" \
- -e "s|-Wl,-whole-archive -lWebKit2 -Wl,-no-whole-archive -L${PWD}/qtwebkit/Source/WebKit2[^ ]* ||" \
- -e "s|-Wl,-whole-archive -lWebCore -Wl,-no-whole-archive -L${PWD}/qtwebkit/Source/WebCore[^ ]* ||" \
- -e "s|-Wl,-whole-archive -lANGLE -Wl,-no-whole-archive -L${PWD}/qtwebkit/Source/ThirdParty/ANGLE[^ ]* ||" \
- -e "s|-Wl,-whole-archive -lJavaScriptCore -Wl,-no-whole-archive -L${PWD}/qtwebkit/Source/JavaScriptCore[^ ]* ||" \
- -e "s|-Wl,-whole-archive -lWTF -Wl,-no-whole-archive -L${PWD}/qtwebkit/Source/WTF[^ ]* ||" \
- -e "s|-Wl,-whole-archive -lleveldb -Wl,-no-whole-archive -L${PWD}/qtwebkit/Source/ThirdParty/leveldb[^ ]* ||" \
- $PKG/usr/lib${LIBDIRSUFFIX}/pkgconfig/Qt5WebKit.pc
+ -e 's|-Wl,--start-group.* -Wl,--end-group||' \
+ -e "s|-L${PWD}/qtwebengine/src/core/api/Release||" \
+ $PKG/usr/lib${LIBDIRSUFFIX}/pkgconfig/Qt5WebEngineCore.pc
# Fix the path in prl files:
find "$PKG/usr/lib${LIBDIRSUFFIX}" -type f -name '*.prl' \