From 76ad37733ae22f9a5626e07fe33d1e481b21c301 Mon Sep 17 00:00:00 2001 From: Eric Hameleers Date: Wed, 15 Jun 2016 13:00:52 +0200 Subject: deps: updated for KDE 5_16.06 The packages for qt5 and qt5-webkit were both upgraded to 5.6.1. This is now the Plasma 5 minimum required version because of all the issues the developers had with 5.6.0. Remember, qt5 still depends on libxkbcommon. --- deps/qt5-webkit/.url | 2 +- deps/qt5-webkit/qt5-webkit.SlackBuild | 4 +- deps/qt5/.url | 2 +- deps/qt5/patches/qt5.qlockfile-deadlock.patch | 116 ++++++++++++++++++++++++++ deps/qt5/qt5.SlackBuild | 18 ++-- 5 files changed, 129 insertions(+), 13 deletions(-) create mode 100644 deps/qt5/patches/qt5.qlockfile-deadlock.patch (limited to 'deps') diff --git a/deps/qt5-webkit/.url b/deps/qt5-webkit/.url index 126a427..46f309b 100644 --- a/deps/qt5-webkit/.url +++ b/deps/qt5-webkit/.url @@ -1 +1 @@ -http://download.qt.io/community_releases/5.6/5.6.0/qtwebkit-opensource-src-5.6.0.tar.xz +http://download.qt.io/community_releases/5.6/5.6.1/qtwebkit-opensource-src-5.6.1.tar.xz diff --git a/deps/qt5-webkit/qt5-webkit.SlackBuild b/deps/qt5-webkit/qt5-webkit.SlackBuild index 5c818f6..df11112 100755 --- a/deps/qt5-webkit/qt5-webkit.SlackBuild +++ b/deps/qt5-webkit/qt5-webkit.SlackBuild @@ -22,10 +22,10 @@ # Derived from the qt5.SlackBuild -# Modifications for qt5-webkit 5.6.0 2016 by Eric Hameleers, Eindhoven, NL +# Modifications for qt5-webkit 5.6.0, 5.6.1 2016 by Eric Hameleers, Eindhoven, NL PKGNAM=qt5-webkit -VERSION=${VERSION:-5.6.0} +VERSION=${VERSION:-5.6.1} BUILD=${BUILD:-1} NUMJOBS=${NUMJOBS:--j7} diff --git a/deps/qt5/.url b/deps/qt5/.url index 241563c..a5dc197 100644 --- a/deps/qt5/.url +++ b/deps/qt5/.url @@ -1 +1 @@ -http://download.qt.io/official_releases/qt/5.6/5.6.0/single/qt-everywhere-opensource-src-5.6.0.tar.xz +http://download.qt.io/official_releases/qt/5.6/5.6.1/single/qt-everywhere-opensource-src-5.6.1.tar.xz diff --git a/deps/qt5/patches/qt5.qlockfile-deadlock.patch b/deps/qt5/patches/qt5.qlockfile-deadlock.patch new file mode 100644 index 0000000..e51d5ad --- /dev/null +++ b/deps/qt5/patches/qt5.qlockfile-deadlock.patch @@ -0,0 +1,116 @@ +# Taken from: +# https://projects.archlinux.org/svntogit/packages.git/plain/trunk/qlockfile-deadlock.patch?h=packages/qt5 +# QTBUG-44771 +# ---------------------------------------------------------------------------- +From f58e882b7594c59b6050d3c87562fcf836d10f60 Mon Sep 17 00:00:00 2001 +From: Olivier Goffart +Date: Tue, 14 Apr 2015 10:58:26 +0200 +Subject: QLockFile: fix deadlock when the lock file is corrupted + +[ChangeLog][QtCore][QLockFile] Fixed a deadlock when the lock file +is corrupted. + +Task-number: QTBUG-44771 +Change-Id: Ic490b09d70ff1cc1733b64949889a73720b2d0f3 +Reviewed-by: David Faure +--- + src/corelib/io/qlockfile_unix.cpp | 10 +++++----- + src/corelib/io/qlockfile_win.cpp | 22 +++++++++++----------- + tests/auto/corelib/io/qlockfile/tst_qlockfile.cpp | 17 +++++++++++++++++ + 3 files changed, 33 insertions(+), 16 deletions(-) + +diff --git a/qtbase/src/corelib/io/qlockfile_unix.cpp b/qtbase/src/corelib/io/qlockfile_unix.cpp +index bf1015a..dc9f8f7 100644 +--- a/qtbase/src/corelib/io/qlockfile_unix.cpp ++++ b/qtbase/src/corelib/io/qlockfile_unix.cpp +@@ -181,11 +181,11 @@ bool QLockFilePrivate::isApparentlyStale() const + { + qint64 pid; + QString hostname, appname; +- if (!getLockInfo(&pid, &hostname, &appname)) +- return false; +- if (hostname.isEmpty() || hostname == QString::fromLocal8Bit(localHostName())) { +- if (::kill(pid, 0) == -1 && errno == ESRCH) +- return true; // PID doesn't exist anymore ++ if (getLockInfo(&pid, &hostname, &appname)) { ++ if (hostname.isEmpty() || hostname == QString::fromLocal8Bit(localHostName())) { ++ if (::kill(pid, 0) == -1 && errno == ESRCH) ++ return true; // PID doesn't exist anymore ++ } + } + const qint64 age = QFileInfo(fileName).lastModified().msecsTo(QDateTime::currentDateTime()); + return staleLockTime > 0 && age > staleLockTime; +diff --git a/qtbase/src/corelib/io/qlockfile_win.cpp b/qtbase/src/corelib/io/qlockfile_win.cpp +index f9f2909..3587c7b 100644 +--- a/qtbase/src/corelib/io/qlockfile_win.cpp ++++ b/qtbase/src/corelib/io/qlockfile_win.cpp +@@ -115,21 +115,21 @@ bool QLockFilePrivate::isApparentlyStale() const + { + qint64 pid; + QString hostname, appname; +- if (!getLockInfo(&pid, &hostname, &appname)) +- return false; + + // On WinRT there seems to be no way of obtaining information about other + // processes due to sandboxing + #ifndef Q_OS_WINRT +- if (hostname == QString::fromLocal8Bit(localHostName())) { +- HANDLE procHandle = ::OpenProcess(PROCESS_QUERY_INFORMATION, FALSE, pid); +- if (!procHandle) +- return true; +- // We got a handle but check if process is still alive +- DWORD dwR = ::WaitForSingleObject(procHandle, 0); +- ::CloseHandle(procHandle); +- if (dwR == WAIT_TIMEOUT) +- return true; ++ if (getLockInfo(&pid, &hostname, &appname)) { ++ if (hostname == QString::fromLocal8Bit(localHostName())) { ++ HANDLE procHandle = ::OpenProcess(PROCESS_QUERY_INFORMATION, FALSE, pid); ++ if (!procHandle) ++ return true; ++ // We got a handle but check if process is still alive ++ DWORD dwR = ::WaitForSingleObject(procHandle, 0); ++ ::CloseHandle(procHandle); ++ if (dwR == WAIT_TIMEOUT) ++ return true; ++ } + } + #endif // !Q_OS_WINRT + const qint64 age = QFileInfo(fileName).lastModified().msecsTo(QDateTime::currentDateTime()); +diff --git a/qtbase/tests/auto/corelib/io/qlockfile/tst_qlockfile.cpp b/qtbase/tests/auto/corelib/io/qlockfile/tst_qlockfile.cpp +index 77bef94..12bea67 100644 +--- a/qtbase/tests/auto/corelib/io/qlockfile/tst_qlockfile.cpp ++++ b/qtbase/tests/auto/corelib/io/qlockfile/tst_qlockfile.cpp +@@ -58,6 +58,7 @@ private slots: + void staleLongLockFromBusyProcess(); + void staleLockRace(); + void noPermissions(); ++ void corruptedLockFile(); + + public: + QString m_helperApp; +@@ -415,5 +416,21 @@ void tst_QLockFile::noPermissions() + QCOMPARE(int(lockFile.error()), int(QLockFile::PermissionError)); + } + ++void tst_QLockFile::corruptedLockFile() ++{ ++ const QString fileName = dir.path() + "/corruptedLockFile"; ++ ++ { ++ // Create a empty file. Typically the result of a computer crash or hard disk full. ++ QFile file(fileName); ++ QVERIFY(file.open(QFile::WriteOnly)); ++ } ++ ++ QLockFile secondLock(fileName); ++ secondLock.setStaleLockTime(100); ++ QVERIFY(secondLock.tryLock(10000)); ++ QCOMPARE(int(secondLock.error()), int(QLockFile::NoError)); ++} ++ + QTEST_MAIN(tst_QLockFile) + #include "tst_qlockfile.moc" +-- +cgit v0.11.0 + diff --git a/deps/qt5/qt5.SlackBuild b/deps/qt5/qt5.SlackBuild index d5c57cc..67e104d 100755 --- a/deps/qt5/qt5.SlackBuild +++ b/deps/qt5/qt5.SlackBuild @@ -48,7 +48,7 @@ # Modifications for qt 5.6.0 2016 by Eric Hameleers, Eindhoven, NL PKGNAM=qt5 -VERSION=${VERSION:-5.6.0} +VERSION=${VERSION:-5.6.1} BUILD=${BUILD:-1} NUMJOBS=${NUMJOBS:--j7} @@ -134,10 +134,10 @@ 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 - +## 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 @@ -146,10 +146,10 @@ cd qtbase 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 - +## qtwebengine fails to build with system nss 3.23: +#cd qtwebengine +# cat $CWD/patches/qt5.qtbug-51890.patch | patch -p1 --verbose || exit 1 +#cd - if ! pkg-config --exists libpulse 2>/dev/null ; then # Forcibly disable pulseaudio in qtwebengine: -- cgit v1.2.3