summaryrefslogtreecommitdiff
path: root/source/l/qt5
diff options
context:
space:
mode:
authorPatrick J Volkerding <volkerdi@slackware.com>2020-02-17 06:03:43 +0000
committerEric Hameleers <alien@slackware.com>2020-02-17 17:59:51 +0100
commit8ea9f1e02e85e3cc2b4ccda52639e96651d21653 (patch)
treedacfd5fff40a77f9335c18e572a6587149bb0abc /source/l/qt5
parent6087aff6cae8d8d4c46ce086cb7b70a5af412d2b (diff)
downloadcurrent-8ea9f1e02e85e3cc2b4ccda52639e96651d21653.tar.gz
Mon Feb 17 06:03:43 UTC 202020200217060343
ap/ksh93-20200131_e4fea8c5-x86_64-1.txz: Upgraded. ap/zsh-5.8-x86_64-1.txz: Upgraded. l/brotli-1.0.7-x86_64-1.txz: Added. l/gmime-3.2.6-x86_64-1.txz: Upgraded. l/hyphen-2.8.8-x86_64-1.txz: Added. l/openal-soft-1.20.1-x86_64-1.txz: Upgraded. Thanks to Skaendo and Willy Sudiarto Raharjo. l/qt5-webkit-5.212.0_alpha3-x86_64-1.txz: Added. Thanks to alienBOB. l/woff2-20180531_a0d0ed7-x86_64-1.txz: Added. n/bluez-5.53-x86_64-1.txz: Upgraded. n/mutt-1.13.4-x86_64-1.txz: Upgraded. n/samba-4.11.6-x86_64-3.txz: Rebuilt. n/socat-1.7.3.4-x86_64-1.txz: Added. n/whois-5.5.6-x86_64-1.txz: Upgraded. testing/packages/PAM/samba-4.11.6-x86_64-3_pam.txz: Rebuilt. Added patches to fix joining a DC when using krb5. Looks like the patches are already upstreamed in the latest 4.12.0-rc. Thanks to camerabambai.
Diffstat (limited to 'source/l/qt5')
-rw-r--r--source/l/qt5/patches/platformplugin-install-path-fix.patch15
-rw-r--r--source/l/qt5/patches/qt5.alsa.patch11
-rw-r--r--source/l/qt5/patches/qt5.cr206850.patch43
-rw-r--r--source/l/qt5/patches/qt5.delayed_highlight.patch72
-rw-r--r--source/l/qt5/patches/qt5.glibc224.patch33
-rw-r--r--source/l/qt5/patches/qt5.private-includes.patch53
-rw-r--r--source/l/qt5/patches/qt5.qlockfile-deadlock.patch116
-rw-r--r--source/l/qt5/patches/qt5.qt5uitoolsconfig.patch17
-rw-r--r--source/l/qt5/patches/qt5.qtbug-49061.patch80
-rw-r--r--source/l/qt5/patches/qt5.qtbug-49452.patch58
-rw-r--r--source/l/qt5/patches/qt5.qtbug-51621.patch39
-rw-r--r--source/l/qt5/patches/qt5.qtbug-51648.patch88
-rw-r--r--source/l/qt5/patches/qt5.qtbug-51649.patch159
-rw-r--r--source/l/qt5/patches/qt5.qtbug-51676.patch126
-rw-r--r--source/l/qt5/patches/qt5.qtbug-51890.patch82
-rw-r--r--source/l/qt5/patches/qt5.qtbug-51927.patch185
-rw-r--r--source/l/qt5/patches/qt5.qtbug-53237.patch90
-rw-r--r--source/l/qt5/patches/qt5.qtbug-55583.patch41
-rw-r--r--source/l/qt5/patches/qt5.qtbug-60558.patch32
-rw-r--r--source/l/qt5/patches/qt5.qtbug-61140.patch101
-rw-r--r--source/l/qt5/patches/qt5.qtbug-66103.patch172
-rw-r--r--source/l/qt5/patches/qt5.qtbug-69310.patch37
-rw-r--r--source/l/qt5/patches/qt5.qtbug-76255.patch35
-rw-r--r--source/l/qt5/patches/qt5.qtbug-77037.patch89
-rw-r--r--source/l/qt5/patches/qt5.qtbug-77364.patch13
-rw-r--r--source/l/qt5/patches/qt5.webengine_gcc8.patch26
-rw-r--r--source/l/qt5/patches/qt5.whandle.patch24
-rw-r--r--source/l/qt5/patches/qtbase-qxcbwindow.patch97
-rw-r--r--source/l/qt5/patches/qtbase-zlib-compression.patch41
-rwxr-xr-xsource/l/qt5/qt5.SlackBuild23
30 files changed, 9 insertions, 1989 deletions
diff --git a/source/l/qt5/patches/platformplugin-install-path-fix.patch b/source/l/qt5/patches/platformplugin-install-path-fix.patch
deleted file mode 100644
index db9b33b9..00000000
--- a/source/l/qt5/patches/platformplugin-install-path-fix.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-See https://bugs.webkit.org/show_bug.cgi?id=117077
-
-diff -Naur qt-everywhere-opensource-src-5.0.2.orig/qtwebkit/Source/WebKit/qt/examples/platformplugin/platformplugin.pro qt-everywhere-opensource-src-5.0.2/qtwebkit/Source/WebKit/qt/examples/platformplugin/platformplugin.pro
---- qt-everywhere-opensource-src-5.0.2.orig/qtwebkit/Source/WebKit/qt/examples/platformplugin/platformplugin.pro 2013-04-09 00:11:38.000000000 +0000
-+++ qt-everywhere-opensource-src-5.0.2/qtwebkit/Source/WebKit/qt/examples/platformplugin/platformplugin.pro 2013-05-31 01:18:29.157175082 +0000
-@@ -20,7 +20,8 @@
- }
- }
-
--DESTDIR = $$[QT_INSTALL_PLUGINS]/webkit
-+target.path = $$[QT_INSTALL_PLUGINS]/webkit
-+INSTALLS += target
-
- SOURCES += \
- WebPlugin.cpp \
diff --git a/source/l/qt5/patches/qt5.alsa.patch b/source/l/qt5/patches/qt5.alsa.patch
deleted file mode 100644
index 892431b3..00000000
--- a/source/l/qt5/patches/qt5.alsa.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- qt-everywhere-opensource-src-5.6.0/qtbase/config.tests/unix/alsa/alsatest.cpp.orig 2016-02-29 08:15:48.203031809 +0000
-+++ qt-everywhere-opensource-src-5.6.0/qtbase/config.tests/unix/alsa/alsatest.cpp 2016-02-29 08:16:39.712811962 +0000
-@@ -32,7 +32,7 @@
- ****************************************************************************/
-
- #include <alsa/asoundlib.h>
--#if(!(SND_LIB_MAJOR == 1 && SND_LIB_MINOR == 0 && SND_LIB_SUBMINOR >= 10))
-+#if(!(SND_LIB_MAJOR == 1 && (SND_LIB_MINOR > 0 || SND_LIB_SUBMINOR >= 10)))
- #error "Alsa version found too old, require >= 1.0.10"
- #endif
-
diff --git a/source/l/qt5/patches/qt5.cr206850.patch b/source/l/qt5/patches/qt5.cr206850.patch
deleted file mode 100644
index 1fb71df1..00000000
--- a/source/l/qt5/patches/qt5.cr206850.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-The latest MariaDB versions aren't caught properly by the checks in Qt, which
-may cause a regression to appear (regression, because it was already fixed in
-Qt by Dan Vratil): this manifests itself in Akonadi losing its connection to
-the database if running for long periods of time.
-
-Until this is fixed in Qt, you may want to apply this patch in your packages:
-
-https://codereview.qt-project.org/#/c/206850/
-
-From 64588c9bae92ef79f9ca5e87653ffb0962691d0d Mon Sep 17 00:00:00 2001
-From: Andy Shaw <andy.shaw@qt.io>
-Date: Wed, 27 Sep 2017 09:23:10 +0200
-Subject: [PATCH] Extend the MariaDB define check to cover the later versions too
-
-Change-Id: Ide89b4e07feb116bf152cbf3f5630d313e8ba0f1
----
- src/plugins/sqldrivers/mysql/qsql_mysql.cpp | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/src/plugins/sqldrivers/mysql/qsql_mysql.cpp b/src/plugins/sqldrivers/mysql/qsql_mysql.cpp
-index 6e428fb..b2d3e85 100644
---- a/src/plugins/sqldrivers/mysql/qsql_mysql.cpp
-+++ b/src/plugins/sqldrivers/mysql/qsql_mysql.cpp
-@@ -1159,14 +1159,14 @@ static void qLibraryInit()
- # endif // MYSQL_VERSION_ID
- #endif // Q_NO_MYSQL_EMBEDDED
-
--#ifdef MARIADB_BASE_VERSION
-+#if defined(MARIADB_BASE_VERSION) || defined(MARIADB_VERSION_ID)
- qAddPostRoutine(mysql_server_end);
- #endif
- }
-
- static void qLibraryEnd()
- {
--#if !defined(MARIADB_BASE_VERSION)
-+#if !defined(MARIADB_BASE_VERSION) && !defined(MARIADB_VERSION_ID)
- # if !defined(Q_NO_MYSQL_EMBEDDED)
- # if MYSQL_VERSION_ID > 40000
- # if (MYSQL_VERSION_ID >= 40110 && MYSQL_VERSION_ID < 50000) || MYSQL_VERSION_ID >= 50003
---
-2.7.4
-
diff --git a/source/l/qt5/patches/qt5.delayed_highlight.patch b/source/l/qt5/patches/qt5.delayed_highlight.patch
deleted file mode 100644
index 201179bb..00000000
--- a/source/l/qt5/patches/qt5.delayed_highlight.patch
+++ /dev/null
@@ -1,72 +0,0 @@
-From f8f0f3eef1151c9377a5c76ccfa6432e930e1307 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?M=C3=A5rten=20Nordheim?= <marten.nordheim@qt.io>
-Date: Mon, 14 Jan 2019 10:37:42 +0100
-Subject: QSyntaxHighlighter: cancel delayed highlight if done manually
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-It was an implicit effect before which stopped working after
-dec7961709c90f6977d2447f7fa6c6625af41cb2. Reintroduce it as some
-projects used this side-effect as a way to abort the initial
-highlighting.
-
-Change-Id: I5340ee9882a242bc8b5f7f843f1cfe793a65d357
-Reviewed-by: J?drzej Nowacki <jedrzej.nowacki@qt.io>
----
- src/gui/text/qsyntaxhighlighter.cpp | 1 +
- .../qsyntaxhighlighter/tst_qsyntaxhighlighter.cpp | 19 +++++++++++++++++++
- 2 files changed, 20 insertions(+)
-
-diff --git a/src/gui/text/qsyntaxhighlighter.cpp b/src/gui/text/qsyntaxhighlighter.cpp
-index b09f8b565a..0e07b69868 100644
---- a/src/gui/text/qsyntaxhighlighter.cpp
-+++ b/src/gui/text/qsyntaxhighlighter.cpp
-@@ -376,6 +376,7 @@ void QSyntaxHighlighter::rehighlight()
-
- QTextCursor cursor(d->doc);
- d->rehighlight(cursor, QTextCursor::End);
-+ d->rehighlightPending = false; // user manually did a full rehighlight
- }
-
- /*!
-diff --git a/tests/auto/gui/text/qsyntaxhighlighter/tst_qsyntaxhighlighter.cpp b/tests/auto/gui/text/qsyntaxhighlighter/tst_qsyntaxhighlighter.cpp
-index 9d6ce78b24..c683ecd424 100644
---- a/tests/auto/gui/text/qsyntaxhighlighter/tst_qsyntaxhighlighter.cpp
-+++ b/tests/auto/gui/text/qsyntaxhighlighter/tst_qsyntaxhighlighter.cpp
-@@ -82,6 +82,7 @@ private slots:
- void preservePreeditArea();
- void task108530();
- void avoidUnnecessaryRehighlight();
-+ void avoidUnnecessaryDelayedRehighlight();
- void noContentsChangedDuringHighlight();
- void rehighlight();
- void rehighlightBlock();
-@@ -478,6 +479,24 @@ void tst_QSyntaxHighlighter::avoidUnnecessaryRehighlight()
- QTRY_VERIFY(!hl->highlighted);
- }
-
-+void tst_QSyntaxHighlighter::avoidUnnecessaryDelayedRehighlight()
-+{
-+ // Having text in the document before creating the highlighter starts the delayed rehighlight
-+ cursor.insertText("Hello World");
-+
-+ TestHighlighter *hl = new TestHighlighter(doc);
-+ QVERIFY(!hl->highlighted);
-+
-+ hl->rehighlight();
-+ QVERIFY(hl->highlighted);
-+
-+ hl->highlighted = false;
-+ // Process events, including delayed rehighlight emission
-+ QCoreApplication::processEvents();
-+ // Should be cancelled and no extra rehighlight should be done
-+ QVERIFY(!hl->highlighted);
-+}
-+
- void tst_QSyntaxHighlighter::noContentsChangedDuringHighlight()
- {
- QVector<QTextLayout::FormatRange> formats;
---
-cgit v1.2.1
-
diff --git a/source/l/qt5/patches/qt5.glibc224.patch b/source/l/qt5/patches/qt5.glibc224.patch
deleted file mode 100644
index 773781ac..00000000
--- a/source/l/qt5/patches/qt5.glibc224.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-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/source/l/qt5/patches/qt5.private-includes.patch b/source/l/qt5/patches/qt5.private-includes.patch
deleted file mode 100644
index 3ef8ebe4..00000000
--- a/source/l/qt5/patches/qt5.private-includes.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-# Taken from http://code.qt.io/cgit/qt/qtbase.git/patch/?id=67aa365d
-# ------------------------------------------------------------------
-
-From 67aa365d41ebfe082b4efcfd725e4d5f08be678c Mon Sep 17 00:00:00 2001
-From: Ulf Hermann <ulf.hermann@qt.io>
-Date: Wed, 25 Apr 2018 12:48:21 +0200
-Subject: Do emit CMake declarations for existing private headers
-
-We need to make sure we don't emit CMake declarations for private
-headers if those headers are absent. However, most of the time we have
-private headers and should add them.
-
-Task-number: QTBUG-37417
-Change-Id: I639eb93d008de27928dedac540894af70c1883b9
-Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
----
- mkspecs/features/create_cmake.prf | 10 +++++-----
- 1 file changed, 5 insertions(+), 5 deletions(-)
-
-diff --git a/mkspecs/features/create_cmake.prf b/mkspecs/features/create_cmake.prf
-index 66acedef55..2ed708e085 100644
---- a/mkspecs/features/create_cmake.prf
-+++ b/mkspecs/features/create_cmake.prf
-@@ -28,9 +28,13 @@ CMAKE_OUT_DIR = $$MODULE_BASE_OUTDIR/lib/cmake
-
- CMAKE_MODULE_NAME = $$cmakeModuleName($${MODULE})
-
-+!generated_privates {
-+ isEmpty(SYNCQT.INJECTED_PRIVATE_HEADER_FILES):isEmpty(SYNCQT.PRIVATE_HEADER_FILES): \
-+ CMAKE_NO_PRIVATE_INCLUDES = true
-+}
-+
- split_incpath {
- CMAKE_ADD_SOURCE_INCLUDE_DIRS = true
-- CMAKE_NO_PRIVATE_INCLUDES = true # Don't add private includes in the build dir which don't exist
- CMAKE_SOURCE_INCLUDES = \
- $$cmakeTargetPaths($$QT_MODULE_INCLUDE_BASE $$QT_MODULE_INCLUDE_BASE/Qt$${CMAKE_MODULE_NAME})
- CMAKE_SOURCE_PRIVATE_INCLUDES = \
-@@ -53,10 +57,6 @@ contains(CMAKE_INCLUDE_DIR, "^\\.\\./.*") {
- CMAKE_INCLUDE_DIR_IS_ABSOLUTE = True
- }
-
--isEmpty(QT.$${MODULE}_private.includes)| \
-- !exists($$first(QT.$${MODULE}_private.includes)): \
-- CMAKE_NO_PRIVATE_INCLUDES = true
--
- CMAKE_LIB_DIR = $$cmakeRelativePath($$[QT_INSTALL_LIBS], $$[QT_INSTALL_PREFIX])
- contains(CMAKE_LIB_DIR,"^\\.\\./.*") {
- CMAKE_LIB_DIR = $$[QT_INSTALL_LIBS]/
---
-cgit v1.1-6-g87c4
-
-
diff --git a/source/l/qt5/patches/qt5.qlockfile-deadlock.patch b/source/l/qt5/patches/qt5.qlockfile-deadlock.patch
deleted file mode 100644
index e51d5ad0..00000000
--- a/source/l/qt5/patches/qt5.qlockfile-deadlock.patch
+++ /dev/null
@@ -1,116 +0,0 @@
-# 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 <ogoffart@woboq.com>
-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 <david.faure@kdab.com>
----
- 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/source/l/qt5/patches/qt5.qt5uitoolsconfig.patch b/source/l/qt5/patches/qt5.qt5uitoolsconfig.patch
deleted file mode 100644
index 1a0da5b9..00000000
--- a/source/l/qt5/patches/qt5.qt5uitoolsconfig.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-The fix for https://bugreports.qt.io/browse/QTBUG-76244 was not complete.
-Further quoting is needed to deal with empty variables.
--- Eric Hameleers <alien@slackware.com>
-
---- qt-everywhere-src-5.13.0/qtbase/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in.orig 2019-06-13 06:18:18.000000000 +0200
-+++ qt-everywhere-src-5.13.0/qtbase/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in 2019-07-09 19:37:15.253291684 +0200
-@@ -57,8 +57,8 @@
-
- if(EXISTS \"${prl_file_location}\")
- file(STRINGS \"${prl_file_location}\" _prl_strings REGEX \"QMAKE_PRL_LIBS[ \\t]*=\")
-- string(REGEX REPLACE \"QMAKE_PRL_LIBS[ \\t]*=[ \\t]*([^\\n]*)\" \"\\\\1\" _static_depends ${_prl_strings})
-- string(REGEX REPLACE \"[ \\t]+\" \";\" _static_depends ${_static_depends})
-+ string(REGEX REPLACE \"QMAKE_PRL_LIBS[ \\t]*=[ \\t]*([^\\n]*)\" \"\\\\1\" _static_depends \"${_prl_strings}\")
-+ string(REGEX REPLACE \"[ \\t]+\" \";\" _static_depends \"${_static_depends}\")
- string(REGEX REPLACE \"[ \\t]+\" \";\" _standard_libraries \"${CMAKE_CXX_STANDARD_LIBRARIES}\")
- set(_search_paths)
- string(REPLACE \"\\$\\$[QT_INSTALL_LIBS]\" \"${_qt5_install_libs}\" _static_depends \"${_static_depends}\")
diff --git a/source/l/qt5/patches/qt5.qtbug-49061.patch b/source/l/qt5/patches/qt5.qtbug-49061.patch
deleted file mode 100644
index d006edbe..00000000
--- a/source/l/qt5/patches/qt5.qtbug-49061.patch
+++ /dev/null
@@ -1,80 +0,0 @@
-#
-# 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/source/l/qt5/patches/qt5.qtbug-49452.patch b/source/l/qt5/patches/qt5.qtbug-49452.patch
deleted file mode 100644
index 4549ff16..00000000
--- a/source/l/qt5/patches/qt5.qtbug-49452.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-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/source/l/qt5/patches/qt5.qtbug-51621.patch b/source/l/qt5/patches/qt5.qtbug-51621.patch
deleted file mode 100644
index 187a3d78..00000000
--- a/source/l/qt5/patches/qt5.qtbug-51621.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-build with explicitlib after all
-
-unlike speculated in 2fe363514, this is not a workaround at all: it
-causes that libraries' public link interfaces (LIBS) are exported in the
-first place. unlike with staticlib, this does not export LIBS_PRIVATE,
-so it wouldn't even be a particularly effective workaround for rpath
-brokenness anyway.
-
-the problem was pretty well hidden by the qt module system, which at the
-level of libraries is pretty redundant with the .prl file handling,
-which shows just how stupid the whole "design" is.
-
-unlike before, we now enable explicitlib for all libraries, not just qt
-modules - we enable create_prl for all of them as well, after all.
-
-an immediate effect of this change is that it fixes linking on RaspPI:
-the qtcore headers make the user code require linking libatomic, so we
-must add it to our public link interface.
-
-Task-number: QTBUG-51621
-Change-Id: I5742c88694db8e8a9b79d17222dc6df2b38e5ab2
-
-X-Git-Url: https://codereview.qt-project.org/gitweb?p=qt%2Fqtbase.git;a=blobdiff_plain;f=mkspecs%2Ffeatures%2Fqt_build_config.prf;h=b3081b960ec192c3421d7a1c2bd5a628f0ca8455;hp=518fd93f0457c6060721c38ad8b6a0286407e562;hb=268e7ee9778de79d2485bdd028721ec7adbc1324;hpb=495e8c205424253186bef47421de63534d23dd59
-
-diff --git a/mkspecs/features/qt_build_config.prf b/mkspecs/features/qt_build_config.prf
-index 518fd93..b3081b9 100644
---- a/mkspecs/features/qt_build_config.prf
-+++ b/mkspecs/features/qt_build_config.prf
-@@ -72,6 +72,10 @@ CONFIG += \
- # However, testcases should be still built with exceptions.
- exceptions_off testcase_exceptions
-
-+# Under Windows, this is neither necessary (transitive deps are automatically
-+# resolved), nor functional (.res files end up in .prl files and break things).
-+unix: CONFIG += explicitlib
-+
-
- defineTest(qtBuildPart) {
- bp = $$eval($$upper($$section(_QMAKE_CONF_, /, -2, -2))_BUILD_PARTS)
diff --git a/source/l/qt5/patches/qt5.qtbug-51648.patch b/source/l/qt5/patches/qt5.qtbug-51648.patch
deleted file mode 100644
index 279839b0..00000000
--- a/source/l/qt5/patches/qt5.qtbug-51648.patch
+++ /dev/null
@@ -1,88 +0,0 @@
-From b024fbe83863fc57364a52c717d5b43d654bdb5d Mon Sep 17 00:00:00 2001
-From: Weng Xuetian <wengxt@gmail.com>
-Date: Sat, 5 Mar 2016 12:23:21 -0800
-Subject: [PATCH] QtDBus: clean up signal hooks and object tree in
- closeConnection
-
-If a QObject is added or passed as receiver to QDBusConnection::connect()
-and it is managed by Q_GLOBAL_STATIC or similar mechanism, it is
-possible that when that its destructor is called after the dbus daemon
-thread ends. In that case, QObject::destroyed connected via
-Qt::BlockingQueuedConnection to QDBusConnectionPrivate will cause dead
-lock since the thread is no longer processing events.
-
-Task-number: QTBUG-51648
-Change-Id: I1a1810a6d6d0234af0269d5f3fc1f54101bf1547
----
- src/dbus/qdbusconnection_p.h | 1 +
- src/dbus/qdbusintegrator.cpp | 28 +++++++++++++++++++++++++++-
- 2 files changed, 28 insertions(+), 1 deletion(-)
-
-diff --git a/src/dbus/qdbusconnection_p.h b/src/dbus/qdbusconnection_p.h
-index c77daf7..565eb83 100644
---- a/src/dbus/qdbusconnection_p.h
-+++ b/src/dbus/qdbusconnection_p.h
-@@ -254,6 +254,7 @@ private:
- const QVector<int> &metaTypes, int slotIdx);
-
- SignalHookHash::Iterator removeSignalHookNoLock(SignalHookHash::Iterator it);
-+ void disconnectObjectTree(ObjectTreeNode &node);
-
- bool isServiceRegisteredByThread(const QString &serviceName);
-
-diff --git a/src/dbus/qdbusintegrator.cpp b/src/dbus/qdbusintegrator.cpp
-index cd44861..a3cd47b 100644
---- a/src/dbus/qdbusintegrator.cpp
-+++ b/src/dbus/qdbusintegrator.cpp
-@@ -1030,7 +1030,6 @@ QDBusConnectionPrivate::~QDBusConnectionPrivate()
- qPrintable(name));
-
- closeConnection();
-- rootNode.children.clear(); // free resources
- qDeleteAll(cachedMetaObjects);
-
- if (mode == ClientMode || mode == PeerMode) {
-@@ -1052,6 +1051,20 @@ QDBusConnectionPrivate::~QDBusConnectionPrivate()
- }
- }
-
-+void QDBusConnectionPrivate::disconnectObjectTree(QDBusConnectionPrivate::ObjectTreeNode &haystack)
-+{
-+ QDBusConnectionPrivate::ObjectTreeNode::DataList::Iterator it = haystack.children.begin();
-+
-+ while (it != haystack.children.end()) {
-+ disconnectObjectTree(*it);
-+ it++;
-+ }
-+
-+ if (haystack.obj) {
-+ haystack.obj->disconnect(this);
-+ }
-+}
-+
- void QDBusConnectionPrivate::closeConnection()
- {
- QDBusWriteLocker locker(CloseConnectionAction, this);
-@@ -1075,6 +1088,19 @@ void QDBusConnectionPrivate::closeConnection()
- }
-
- qDeleteAll(pendingCalls);
-+
-+ // clean up all signal hook and object tree, to avoid QObject::destroyed
-+ // being activated to dbus daemon thread which already quits.
-+ // dbus connection is already closed, so there is nothing we could do be clean
-+ // up everything here.
-+ SignalHookHash::iterator sit = signalHooks.begin();
-+ while (sit != signalHooks.end()) {
-+ sit.value().obj->disconnect(this);
-+ sit++;
-+ }
-+
-+ disconnectObjectTree(rootNode);
-+ rootNode.children.clear(); // free resources
- }
-
- void QDBusConnectionPrivate::checkThread()
---
-2.7.1
-
diff --git a/source/l/qt5/patches/qt5.qtbug-51649.patch b/source/l/qt5/patches/qt5.qtbug-51649.patch
deleted file mode 100644
index 3b7cf9ec..00000000
--- a/source/l/qt5/patches/qt5.qtbug-51649.patch
+++ /dev/null
@@ -1,159 +0,0 @@
-From acde2e69df5dedc624674107596f276125e22864 Mon Sep 17 00:00:00 2001
-From: Weng Xuetian <wengxt@gmail.com>
-Date: Thu, 3 Mar 2016 21:56:53 -0800
-Subject: [PATCH] QtDBus: finish all pending call with error if disconnected
-
-libdbus will send a local signal if connection gets disconnected. When
-this happens, end all pending calls with QDBusError::Disconnected.
-
-Task-number: QTBUG-51649
-Change-Id: I5c7d2a468bb5da746d0c0e53e458c1e376f186a9
----
- src/dbus/dbus_minimal_p.h | 2 ++
- src/dbus/qdbusintegrator.cpp | 26 +++++++++++++++++-----
- src/dbus/qdbusutil_p.h | 6 +++++
- .../dbus/qdbusconnection/tst_qdbusconnection.cpp | 22 ++++++++++++++++++
- .../dbus/qdbusconnection/tst_qdbusconnection.h | 1 +
- 5 files changed, 51 insertions(+), 6 deletions(-)
-
-diff --git a/src/dbus/dbus_minimal_p.h b/src/dbus/dbus_minimal_p.h
-index f0a2954..8f25b24 100644
---- a/src/dbus/dbus_minimal_p.h
-+++ b/src/dbus/dbus_minimal_p.h
-@@ -99,9 +99,11 @@ typedef dbus_uint32_t dbus_bool_t;
- /* dbus-shared.h */
- #define DBUS_SERVICE_DBUS "org.freedesktop.DBus"
- #define DBUS_PATH_DBUS "/org/freedesktop/DBus"
-+#define DBUS_PATH_LOCAL "/org/freedesktop/DBus/Local"
- #define DBUS_INTERFACE_DBUS "org.freedesktop.DBus"
- #define DBUS_INTERFACE_INTROSPECTABLE "org.freedesktop.DBus.Introspectable"
- #define DBUS_INTERFACE_PROPERTIES "org.freedesktop.DBus.Properties"
-+#define DBUS_INTERFACE_LOCAL "org.freedesktop.DBus.Local"
-
- #define DBUS_NAME_FLAG_ALLOW_REPLACEMENT 0x1 /**< Allow another service to become the primary owner if requested */
- #define DBUS_NAME_FLAG_REPLACE_EXISTING 0x2 /**< Request to replace the current primary owner */
-diff --git a/src/dbus/qdbusintegrator.cpp b/src/dbus/qdbusintegrator.cpp
-index cd44861..320419f 100644
---- a/src/dbus/qdbusintegrator.cpp
-+++ b/src/dbus/qdbusintegrator.cpp
-@@ -519,6 +519,14 @@ bool QDBusConnectionPrivate::handleMessage(const QDBusMessage &amsg)
- switch (amsg.type()) {
- case QDBusMessage::SignalMessage:
- handleSignal(amsg);
-+ // Check local disconnected signal from libdbus
-+ if (amsg.interface() == QDBusUtil::dbusInterfaceLocal()
-+ && amsg.path() == QDBusUtil::dbusPathLocal()
-+ && amsg.member() == QDBusUtil::disconnected()
-+ && !QDBusMessagePrivate::isLocal(amsg)) {
-+ while (!pendingCalls.isEmpty())
-+ processFinishedCall(pendingCalls.first());
-+ }
- // if there are any other filters in this DBusConnection,
- // let them see the signal too
- return false;
-@@ -1767,10 +1775,16 @@ void QDBusConnectionPrivate::processFinishedCall(QDBusPendingCallPrivate *call)
-
- QDBusMessage &msg = call->replyMessage;
- if (call->pending) {
-- // decode the message
-- DBusMessage *reply = q_dbus_pending_call_steal_reply(call->pending);
-- msg = QDBusMessagePrivate::fromDBusMessage(reply, connection->capabilities);
-- q_dbus_message_unref(reply);
-+ // when processFinishedCall is called and pending call is not completed,
-+ // it means we received disconnected signal from libdbus
-+ if (q_dbus_pending_call_get_completed(call->pending)) {
-+ // decode the message
-+ DBusMessage *reply = q_dbus_pending_call_steal_reply(call->pending);
-+ msg = QDBusMessagePrivate::fromDBusMessage(reply, connection->capabilities);
-+ q_dbus_message_unref(reply);
-+ } else {
-+ msg = QDBusMessage::createError(QDBusError::Disconnected, QDBusUtil::disconnectedErrorMessage());
-+ }
- }
- qDBusDebug() << connection << "got message reply:" << msg;
-
-@@ -2070,8 +2084,8 @@ void QDBusConnectionPrivate::sendInternal(QDBusPendingCallPrivate *pcall, void *
- pcall->pending = pending;
- q_dbus_pending_call_set_notify(pending, qDBusResultReceived, pcall, 0);
-
-- // DBus won't notify us when a peer disconnects so we need to track these ourselves
-- if (mode == QDBusConnectionPrivate::PeerMode)
-+ // DBus won't notify us when a peer disconnects or server terminates so we need to track these ourselves
-+ if (mode == QDBusConnectionPrivate::PeerMode || mode == QDBusConnectionPrivate::ClientMode)
- pendingCalls.append(pcall);
-
- return;
-diff --git a/src/dbus/qdbusutil_p.h b/src/dbus/qdbusutil_p.h
-index 8f5ae92..ca70ff9 100644
---- a/src/dbus/qdbusutil_p.h
-+++ b/src/dbus/qdbusutil_p.h
-@@ -155,6 +155,8 @@ namespace QDBusUtil
- { return QStringLiteral(DBUS_SERVICE_DBUS); }
- inline QString dbusPath()
- { return QStringLiteral(DBUS_PATH_DBUS); }
-+ inline QString dbusPathLocal()
-+ { return QStringLiteral(DBUS_PATH_LOCAL); }
- inline QString dbusInterface()
- {
- // it's the same string, but just be sure
-@@ -165,8 +167,12 @@ namespace QDBusUtil
- { return QStringLiteral(DBUS_INTERFACE_PROPERTIES); }
- inline QString dbusInterfaceIntrospectable()
- { return QStringLiteral(DBUS_INTERFACE_INTROSPECTABLE); }
-+ inline QString dbusInterfaceLocal()
-+ { return QStringLiteral(DBUS_INTERFACE_LOCAL); }
- inline QString nameOwnerChanged()
- { return QStringLiteral("NameOwnerChanged"); }
-+ inline QString disconnected()
-+ { return QStringLiteral("Disconnected"); }
- inline QString disconnectedErrorMessage()
- { return QStringLiteral("Not connected to D-Bus server"); }
- }
-diff --git a/tests/auto/dbus/qdbusconnection/tst_qdbusconnection.cpp b/tests/auto/dbus/qdbusconnection/tst_qdbusconnection.cpp
-index e91f87d..6c7e6b1 100644
---- a/tests/auto/dbus/qdbusconnection/tst_qdbusconnection.cpp
-+++ b/tests/auto/dbus/qdbusconnection/tst_qdbusconnection.cpp
-@@ -1218,6 +1218,28 @@ void tst_QDBusConnection::callVirtualObjectLocal()
- QCOMPARE(obj.replyArguments, subPathReply.arguments());
- }
-
-+void tst_QDBusConnection::pendingCallWhenDisconnected()
-+{
-+ QDBusServer *server = new QDBusServer;
-+ QDBusConnection con = QDBusConnection::connectToPeer(server->address(), "disconnect");
-+ QTestEventLoop::instance().enterLoop(2);
-+ QVERIFY(!QTestEventLoop::instance().timeout());
-+ QVERIFY(con.isConnected());
-+
-+ delete server;
-+
-+ // Make sure we call the method before we know it is disconnected.
-+ QVERIFY(con.isConnected());
-+ QDBusMessage message = QDBusMessage::createMethodCall("", "/", QString(), "method");
-+ QDBusPendingCall reply = con.asyncCall(message);
-+
-+ QTestEventLoop::instance().enterLoop(2);
-+ QVERIFY(!con.isConnected());
-+ QVERIFY(reply.isFinished());
-+ QVERIFY(reply.isError());
-+ QVERIFY(reply.error().type() == QDBusError::Disconnected);
-+}
-+
- QString MyObject::path;
- QString MyObjectWithoutInterface::path;
- QString MyObjectWithoutInterface::interface;
-diff --git a/tests/auto/dbus/qdbusconnection/tst_qdbusconnection.h b/tests/auto/dbus/qdbusconnection/tst_qdbusconnection.h
-index a53ba32..720e484 100644
---- a/tests/auto/dbus/qdbusconnection/tst_qdbusconnection.h
-+++ b/tests/auto/dbus/qdbusconnection/tst_qdbusconnection.h
-@@ -121,6 +121,7 @@ private slots:
- void registerVirtualObject();
- void callVirtualObject();
- void callVirtualObjectLocal();
-+ void pendingCallWhenDisconnected();
-
- public:
- QString serviceName() const { return "org.qtproject.Qt.Autotests.QDBusConnection"; }
---
-2.7.1
-
diff --git a/source/l/qt5/patches/qt5.qtbug-51676.patch b/source/l/qt5/patches/qt5.qtbug-51676.patch
deleted file mode 100644
index 8672a213..00000000
--- a/source/l/qt5/patches/qt5.qtbug-51676.patch
+++ /dev/null
@@ -1,126 +0,0 @@
-From 11c5e716b08b6b3c5a7c9fce96b0cde8624ec869 Mon Sep 17 00:00:00 2001
-From: Thiago Macieira <thiago.macieira@intel.com>
-Date: Tue, 15 Mar 2016 11:00:20 -0700
-Subject: [PATCH] Fix QtDBus deadlock inside kded/kiod
-
-Whenever a message spy was installed, we failed to actually process
-looped-back messages by queueing them for processing by the spy. That
-had as a consequence that the caller got an error reply. Worse, since
-the message had been queued, QtDBus would attempt to deliver it later.
-Since that message had isLocal==true, bad things happened inside the
-manager thread.
-
-The correct solution is not to queue the message for the filter. If the
-message is local, then simply deliver directly, as we're still in the
-user's thread. This used to be the behavior in Qt 5.5.
-
-Task-number: QTBUG-51676
-Change-Id: I1dc112894cde7121e8ce302ae51b438ade1ff612
----
- src/dbus/qdbusintegrator.cpp | 42 ++++++++++++++++++++++++++++++++----------
- src/dbus/qdbusintegrator_p.h | 1 +
- 2 files changed, 33 insertions(+), 10 deletions(-)
-
-diff --git a/src/dbus/qdbusintegrator.cpp b/src/dbus/qdbusintegrator.cpp
-index cd44861..478a2c4 100644
---- a/src/dbus/qdbusintegrator.cpp
-+++ b/src/dbus/qdbusintegrator.cpp
-@@ -481,6 +481,11 @@ QDBusSpyCallEvent::~QDBusSpyCallEvent()
-
- void QDBusSpyCallEvent::placeMetaCall(QObject *)
- {
-+ invokeSpyHooks(msg, hooks, hookCount);
-+}
-+
-+inline void QDBusSpyCallEvent::invokeSpyHooks(const QDBusMessage &msg, const Hook *hooks, int hookCount)
-+{
- // call the spy hook list
- for (int i = 0; i < hookCount; ++i)
- hooks[i](msg);
-@@ -509,7 +514,12 @@ bool QDBusConnectionPrivate::handleMessage(const QDBusMessage &amsg)
- {
- if (!ref.load())
- return false;
-- if (!dispatchEnabled && !QDBusMessagePrivate::isLocal(amsg)) {
-+
-+ // local message are always delivered, regardless of filtering
-+ // or whether the dispatcher is enabled
-+ bool isLocal = QDBusMessagePrivate::isLocal(amsg);
-+
-+ if (!dispatchEnabled && !isLocal) {
- // queue messages only, we'll handle them later
- qDBusDebug() << this << "delivery is suspended";
- pendingMessages << amsg;
-@@ -523,13 +533,23 @@ bool QDBusConnectionPrivate::handleMessage(const QDBusMessage &amsg)
- // let them see the signal too
- return false;
- case QDBusMessage::MethodCallMessage:
-- // run it through the spy filters (if any) before the regular processing
-+ // run it through the spy filters (if any) before the regular processing:
-+ // a) if it's a local message, we're in the caller's thread, so invoke the filter directly
-+ // b) if it's an external message, post to the main thread
- if (Q_UNLIKELY(qDBusSpyHookList.exists()) && qApp) {
- const QDBusSpyHookList &list = *qDBusSpyHookList;
-- qDBusDebug() << this << "invoking message spies";
-- QCoreApplication::postEvent(qApp, new QDBusSpyCallEvent(this, QDBusConnection(this),
-- amsg, list.constData(), list.size()));
-- return true;
-+ if (isLocal) {
-+ Q_ASSERT(QThread::currentThread() != thread());
-+ qDBusDebug() << this << "invoking message spies directly";
-+ QDBusSpyCallEvent::invokeSpyHooks(amsg, list.constData(), list.size());
-+ } else {
-+ qDBusDebug() << this << "invoking message spies via event";
-+ QCoreApplication::postEvent(qApp, new QDBusSpyCallEvent(this, QDBusConnection(this),
-+ amsg, list.constData(), list.size()));
-+
-+ // we'll be called back, so return
-+ return true;
-+ }
- }
-
- handleObjectCall(amsg);
-@@ -1451,9 +1471,9 @@ void QDBusConnectionPrivate::handleObjectCall(const QDBusMessage &msg)
- // that means the dispatchLock mutex is locked
- // must not call out to user code in that case
- //
-- // however, if the message is internal, handleMessage was called
-- // directly and no lock is in place. We can therefore call out to
-- // user code, if necessary
-+ // however, if the message is internal, handleMessage was called directly
-+ // (user's thread) and no lock is in place. We can therefore call out to
-+ // user code, if necessary.
- ObjectTreeNode result;
- int usedLength;
- QThread *objThread = 0;
-@@ -1492,12 +1512,14 @@ void QDBusConnectionPrivate::handleObjectCall(const QDBusMessage &msg)
- usedLength, msg));
- return;
- } else if (objThread != QThread::currentThread()) {
-- // synchronize with other thread
-+ // looped-back message, targeting another thread:
-+ // synchronize with it
- postEventToThread(HandleObjectCallPostEventAction, result.obj,
- new QDBusActivateObjectEvent(QDBusConnection(this), this, result,
- usedLength, msg, &sem));
- semWait = true;
- } else {
-+ // looped-back message, targeting current thread
- semWait = false;
- }
- } // release the lock
-diff --git a/src/dbus/qdbusintegrator_p.h b/src/dbus/qdbusintegrator_p.h
-index 2bbebdf..c0d9c22 100644
---- a/src/dbus/qdbusintegrator_p.h
-+++ b/src/dbus/qdbusintegrator_p.h
-@@ -145,6 +145,7 @@ public:
- {}
- ~QDBusSpyCallEvent();
- void placeMetaCall(QObject *) Q_DECL_OVERRIDE;
-+ static inline void invokeSpyHooks(const QDBusMessage &msg, const Hook *hooks, int hookCount);
-
- QDBusConnection conn; // keeps the refcount in QDBusConnectionPrivate up
- QDBusMessage msg;
---
-2.7.1
-
diff --git a/source/l/qt5/patches/qt5.qtbug-51890.patch b/source/l/qt5/patches/qt5.qtbug-51890.patch
deleted file mode 100644
index 51168b90..00000000
--- a/source/l/qt5/patches/qt5.qtbug-51890.patch
+++ /dev/null
@@ -1,82 +0,0 @@
-QTBUG-51890: qtwebengine fails to build with system nss 3.23
-Patch obtained from:
-https://github.com/qtproject/qtwebengine/commit/82900c7b96b2a6fb42fe3841df7685b820edd588.patch
-
-And modified to exclude the "Subproject commit" lines.
-
-# ----------------------------------------------------------------------------
-
-From 82900c7b96b2a6fb42fe3841df7685b820edd588 Mon Sep 17 00:00:00 2001
-From: Kai Koehne <kai.koehne@theqtcompany.com>
-Date: Thu, 24 Mar 2016 13:55:28 +0100
-Subject: [PATCH] Use system NSS only for certificate handling
-
-Compiling against NSS 3.23 fails with current Chromium. Also, with NSS
-3.21 there are failures connecting to e.g. google.com.
-
-Fix this by adapting the setup endorsed by upstream Chromium: BoringSSL
-is always used for cryptography, and NSS only for certificate handlng.
-
-Patches included in 3rdparty update:
-
-0a385bb [backport] Call EnsureNSSHttpIOInit in the chimera build.
-0472123 Fix build against newer NSS
-90c62c4 <third_party/libpng> [Backport] update to libpng 1.2.56
-34857b8 <third_party/libpng> [Backport] Stop large iCCP chunks causing delays and "Aw Snap!"
-
-Task-number: QTBUG-52193
-Task-number: QTBUG-51890
-Task-number: QTBUG-52068
-Change-Id: If8aaed9b9a09475c5ed0dfec64d31f45ce9670f5
-Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
----
- src/3rdparty | 2 +-
- src/core/config/linux.pri | 9 ++++++---
- tools/qmake/mkspecs/features/configure.prf | 4 ++--
- 3 files changed, 9 insertions(+), 6 deletions(-)
-
-#diff --git a/src/3rdparty b/src/3rdparty
-#index 3b2b78c..0a385bb 160000
-#--- a/src/3rdparty
-#+++ b/src/3rdparty
-#@@ -1 +1 @@
-#-Subproject commit 3b2b78caa761db2b7b25dc51c3dae8316f595db1
-#+Subproject commit 0a385bb01d9cf060fae4c9d350ee98561654df96
-diff --git a/src/core/config/linux.pri b/src/core/config/linux.pri
-index 88c1a41..39eeb2a 100644
---- a/src/core/config/linux.pri
-+++ b/src/core/config/linux.pri
-@@ -18,11 +18,14 @@ GYP_CONFIG += \
- use_gio=0 \
- use_gnome_keyring=0 \
- use_kerberos=0 \
-- use_pango=0
-+ use_pango=0 \
-+ use_openssl=1
-
--!use?(nss) {
-+use?(nss) {
-+ GYP_CONFIG += use_nss_certs=1 \
-+ use_openssl_certs=0
-+} else {
- GYP_CONFIG += use_nss_certs=0 \
-- use_openssl=1 \
- use_openssl_certs=1
- }
-
-diff --git a/tools/qmake/mkspecs/features/configure.prf b/tools/qmake/mkspecs/features/configure.prf
-index 4cb4600..953572d 100644
---- a/tools/qmake/mkspecs/features/configure.prf
-+++ b/tools/qmake/mkspecs/features/configure.prf
-@@ -72,9 +72,9 @@ defineTest(runConfigure) {
- defineTest(finalizeConfigure) {
- linux {
- use?(nss) {
-- log("SSL............................... Using system NSS$${EOL}")
-+ log("Certificate handling.............. Using system NSS$${EOL}")
- } else {
-- log("SSL............................... Using bundled BoringSSL$${EOL}")
-+ log("Certificate handling.............. Using bundled BoringSSL$${EOL}")
- }
- use?(system_icu) {
- packagesExist("icu-uc icu-i18n") {
diff --git a/source/l/qt5/patches/qt5.qtbug-51927.patch b/source/l/qt5/patches/qt5.qtbug-51927.patch
deleted file mode 100644
index d253dc15..00000000
--- a/source/l/qt5/patches/qt5.qtbug-51927.patch
+++ /dev/null
@@ -1,185 +0,0 @@
-From 5149aa68eca6ede8836ec4f07a14d22d9da9b161 Mon Sep 17 00:00:00 2001
-From: Mitch Curtis <mitch.curtis@qt.io>
-Date: Tue, 13 Sep 2016 12:42:12 +0200
-Subject: Fix crash on exit when using default property aliases with layouts
-
-The layout was being destroyed before the text, which meant that the
-removeItemChangeListener() call never got hit. To ensure that the
-listener is always removed, loop through each child in QQuickLayout's
-destructor.
-
-This is a manual cherry-pick of
-59c6c0e0b1b5b46747595a58e11311b7393d7e70.
-
-Task-number: QTBUG-51927
-Change-Id: I669f42beb8c3dd6b4b741cae0b16e017bb3409df
-Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
----
- src/imports/layouts/qquicklayout.cpp | 4 ++
- .../qquicklayouts/data/rowlayout/Container.qml | 55 ++++++++++++++++++++++
- .../qquicklayouts/data/rowlayout/ContainerUser.qml | 53 +++++++++++++++++++++
- .../quick/qquicklayouts/data/tst_rowlayout.qml | 12 +++++
- 4 files changed, 124 insertions(+)
- create mode 100644 tests/auto/quick/qquicklayouts/data/rowlayout/Container.qml
- create mode 100644 tests/auto/quick/qquicklayouts/data/rowlayout/ContainerUser.qml
-
-diff --git a/src/imports/layouts/qquicklayout.cpp b/src/imports/layouts/qquicklayout.cpp
-index abc8f97..9914826 100644
---- a/src/imports/layouts/qquicklayout.cpp
-+++ b/src/imports/layouts/qquicklayout.cpp
-@@ -698,6 +698,10 @@ QQuickLayout::QQuickLayout(QQuickLayoutPrivate &dd, QQuickItem *parent)
- QQuickLayout::~QQuickLayout()
- {
- d_func()->m_isReady = false;
-+
-+ const auto childItems = d_func()->childItems;
-+ for (QQuickItem *child : childItems)
-+ QQuickItemPrivate::get(child)->removeItemChangeListener(this, QQuickItemPrivate::SiblingOrder);
- }
-
- QQuickLayoutAttached *QQuickLayout::qmlAttachedProperties(QObject *object)
-diff --git a/tests/auto/quick/qquicklayouts/data/rowlayout/Container.qml b/tests/auto/quick/qquicklayouts/data/rowlayout/Container.qml
-new file mode 100644
-index 0000000..22205c1
---- /dev/null
-+++ b/tests/auto/quick/qquicklayouts/data/rowlayout/Container.qml
-@@ -0,0 +1,55 @@
-+/****************************************************************************
-+**
-+** Copyright (C) 2016 The Qt Company Ltd.
-+** Contact: http://www.qt.io/licensing/
-+**
-+** This file is part of the test suite of the Qt Toolkit.
-+**
-+** $QT_BEGIN_LICENSE:BSD$
-+** You may use this file under the terms of the BSD license as follows:
-+**
-+** "Redistribution and use in source and binary forms, with or without
-+** modification, are permitted provided that the following conditions are
-+** met:
-+** * Redistributions of source code must retain the above copyright
-+** notice, this list of conditions and the following disclaimer.
-+** * Redistributions in binary form must reproduce the above copyright
-+** notice, this list of conditions and the following disclaimer in
-+** the documentation and/or other materials provided with the
-+** distribution.
-+** * Neither the name of The Qt Company Ltd nor the names of its
-+** contributors may be used to endorse or promote products derived
-+** from this software without specific prior written permission.
-+**
-+**
-+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-+**
-+** $QT_END_LICENSE$
-+**
-+****************************************************************************/
-+
-+import QtQuick 2.7
-+import QtQuick.Layouts 1.3
-+
-+Item {
-+ objectName: "qtbug51927-window"
-+ visible: true
-+
-+ default property alias _contents: customContent.data
-+
-+ RowLayout {
-+ id: customContent
-+ objectName: "qtbug51927-columnLayout"
-+ anchors.fill: parent
-+ }
-+}
-diff --git a/tests/auto/quick/qquicklayouts/data/rowlayout/ContainerUser.qml b/tests/auto/quick/qquicklayouts/data/rowlayout/ContainerUser.qml
-new file mode 100644
-index 0000000..ff7ce62
---- /dev/null
-+++ b/tests/auto/quick/qquicklayouts/data/rowlayout/ContainerUser.qml
-@@ -0,0 +1,53 @@
-+/****************************************************************************
-+**
-+** Copyright (C) 2016 The Qt Company Ltd.
-+** Contact: http://www.qt.io/licensing/
-+**
-+** This file is part of the test suite of the Qt Toolkit.
-+**
-+** $QT_BEGIN_LICENSE:BSD$
-+** You may use this file under the terms of the BSD license as follows:
-+**
-+** "Redistribution and use in source and binary forms, with or without
-+** modification, are permitted provided that the following conditions are
-+** met:
-+** * Redistributions of source code must retain the above copyright
-+** notice, this list of conditions and the following disclaimer.
-+** * Redistributions in binary form must reproduce the above copyright
-+** notice, this list of conditions and the following disclaimer in
-+** the documentation and/or other materials provided with the
-+** distribution.
-+** * Neither the name of The Qt Company Ltd nor the names of its
-+** contributors may be used to endorse or promote products derived
-+** from this software without specific prior written permission.
-+**
-+**
-+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-+**
-+** $QT_END_LICENSE$
-+**
-+****************************************************************************/
-+
-+import QtQuick 2.6
-+import QtQuick.Window 2.2
-+
-+Container {
-+ visible: true
-+
-+ Text {
-+ objectName: "qtbug51927-text"
-+ text: qsTr("Hello World")
-+ anchors.centerIn: parent
-+ renderType: Text.QtRendering
-+ }
-+}
-diff --git a/tests/auto/quick/qquicklayouts/data/tst_rowlayout.qml b/tests/auto/quick/qquicklayouts/data/tst_rowlayout.qml
-index 33b8fd0..2d4e227 100644
---- a/tests/auto/quick/qquicklayouts/data/tst_rowlayout.qml
-+++ b/tests/auto/quick/qquicklayouts/data/tst_rowlayout.qml
-@@ -926,5 +926,17 @@ Item {
- waitForRendering(layout)
- layout.destroy()
- }
-+
-+
-+ function test_defaultPropertyAliasCrash() {
-+ var containerUserComponent = Qt.createComponent("rowlayout/ContainerUser.qml");
-+ compare(containerUserComponent.status, Component.Ready);
-+
-+ var containerUser = containerUserComponent.createObject(testCase);
-+ verify(containerUser);
-+
-+ // Shouldn't crash.
-+ containerUser.destroy();
-+ }
- }
- }
---
-cgit v1.0-4-g1e03
-
diff --git a/source/l/qt5/patches/qt5.qtbug-53237.patch b/source/l/qt5/patches/qt5.qtbug-53237.patch
deleted file mode 100644
index c6d5739d..00000000
--- a/source/l/qt5/patches/qt5.qtbug-53237.patch
+++ /dev/null
@@ -1,90 +0,0 @@
-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/source/l/qt5/patches/qt5.qtbug-55583.patch b/source/l/qt5/patches/qt5.qtbug-55583.patch
deleted file mode 100644
index 804f5383..00000000
--- a/source/l/qt5/patches/qt5.qtbug-55583.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-#
-# 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/source/l/qt5/patches/qt5.qtbug-60558.patch b/source/l/qt5/patches/qt5.qtbug-60558.patch
deleted file mode 100644
index 2d039203..00000000
--- a/source/l/qt5/patches/qt5.qtbug-60558.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-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/source/l/qt5/patches/qt5.qtbug-61140.patch b/source/l/qt5/patches/qt5.qtbug-61140.patch
deleted file mode 100644
index 17468a95..00000000
--- a/source/l/qt5/patches/qt5.qtbug-61140.patch
+++ /dev/null
@@ -1,101 +0,0 @@
-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/source/l/qt5/patches/qt5.qtbug-66103.patch b/source/l/qt5/patches/qt5.qtbug-66103.patch
deleted file mode 100644
index 62d1b301..00000000
--- a/source/l/qt5/patches/qt5.qtbug-66103.patch
+++ /dev/null
@@ -1,172 +0,0 @@
-https://code.qt.io/cgit/qt/qtbase.git/patch/?id=4a7771f206d4b29be549d3827c36a46679d90de6
-
-From 4a7771f206d4b29be549d3827c36a46679d90de6 Mon Sep 17 00:00:00 2001
-From: Eike Hein <hein@kde.org>
-Date: Sun, 7 Jan 2018 13:02:01 +0900
-Subject: QSimpleDrag: Fix mouse release coords for delayed event transmission
-
-On platforms such as XCB, the drag cursor pixmap is shown via a window
-(a QShapedPixmapWindow) under the cursor.
-
-The mouse button release event at the end of the drag is received in
-this QXcbWindow, but intercepted by an event filter that QSimpleDrag
-installs on the QApplication. It then resends it unmodified(!) after
-the drag has ended and the drag pixmap window destroyed, causing it to
-be delivered to the new top-level window.
-
-The local coordinates in the unmodified QMouseEvent are local to the
-drag pixmap window and don't match the window it is delayed-transmitted
-to.
-
-This ends up having fatal, user-visible effects particularly in Qt
-Quick: QQuickWindow synthesizes a hover event once per frame using
-the last received mouse coordinates, here: the release posted by
-QSimpleDrag. This is done to update the hover event state for items
-under the cursor when the mouse hasn't moved (e.g. QQuickMouseArea::
-containsMouse). The bogus event coordinates in the release event then
-usually end up causing an item near the top-left of the QQuickWindow
-to assume it is hovered (because drag pixmap windows tend to be small),
-even when the mouse cursor is actually far away from it at the end of
-the drag.
-
-This shows up e.g. in the Plasma 5 desktop, where dragging an icon
-on the desktop will cause the icon at the top-left of the screen (if
-any) to switch to hovered state, as the release coordinates on the
-drag pixmap window (showing a dragged icon) fall into the geometry
-of the top-left icon.
-
-QSimpleDrag contains a topLevelAt() function to find the top-level
-window under the global cursor coordinates that is not the drag
-pixmap window. This is used by the drop event delivery code.
-
-This patch uses this function to find the relevant top-level window,
-then asks it to map the global cusor coordinates to its local
-coordinate system, then synthesizes a new QMouseEvent with local
-coordinates computed in this fashion. As a result the window now
-gets a release event with coordinates that make sense and are
-correct.
-
-Task-number: QTBUG-66103
-Change-Id: I04ebe6ccd4a991fdd4b540ff0227973ea8896a9d
-Reviewed-by: Eike Hein <hein@kde.org>
-Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
----
- src/gui/kernel/qsimpledrag.cpp | 32 +++++++++++++++++++++++++++-----
- src/gui/kernel/qsimpledrag_p.h | 6 +++---
- 2 files changed, 30 insertions(+), 8 deletions(-)
-
-diff --git a/src/gui/kernel/qsimpledrag.cpp b/src/gui/kernel/qsimpledrag.cpp
-index a1e25dc53c..87d3ba5915 100644
---- a/src/gui/kernel/qsimpledrag.cpp
-+++ b/src/gui/kernel/qsimpledrag.cpp
-@@ -58,6 +58,7 @@
-
- #include <QtCore/QEventLoop>
- #include <QtCore/QDebug>
-+#include <QtCore/QLoggingCategory>
-
- #include <private/qguiapplication_p.h>
- #include <private/qdnd_p.h>
-@@ -69,6 +70,8 @@ QT_BEGIN_NAMESPACE
-
- #ifndef QT_NO_DRAGANDDROP
-
-+Q_LOGGING_CATEGORY(lcDnd, "qt.gui.dnd")
-+
- static QWindow* topLevelAt(const QPoint &pos)
- {
- QWindowList list = QGuiApplication::topLevelWindows();
-@@ -94,10 +97,10 @@ static QWindow* topLevelAt(const QPoint &pos)
- */
-
- QBasicDrag::QBasicDrag() :
-- m_restoreCursor(false), m_eventLoop(0),
-+ m_current_window(nullptr), m_restoreCursor(false), m_eventLoop(nullptr),
- m_executed_drop_action(Qt::IgnoreAction), m_can_drop(false),
-- m_drag(0), m_drag_icon_window(0), m_useCompositing(true),
-- m_screen(Q_NULLPTR)
-+ m_drag(nullptr), m_drag_icon_window(nullptr), m_useCompositing(true),
-+ m_screen(nullptr)
- {
- }
-
-@@ -161,6 +164,7 @@ bool QBasicDrag::eventFilter(QObject *o, QEvent *e)
- return true; // Eat all mouse move events
- }
- case QEvent::MouseButtonRelease:
-+ {
- disableEventFilter();
- if (canDrop()) {
- QPoint nativePosition = getNativeMousePos(e, m_drag_icon_window);
-@@ -169,8 +173,25 @@ bool QBasicDrag::eventFilter(QObject *o, QEvent *e)
- cancel();
- }
- exitDndEventLoop();
-- QCoreApplication::postEvent(o, new QMouseEvent(*static_cast<QMouseEvent *>(e)));
-+
-+ // If a QShapedPixmapWindow (drag feedback) is being dragged along, the
-+ // mouse event's localPos() will be relative to that, which is useless.
-+ // We want a position relative to the window where the drag ends, if possible (?).
-+ // If there is no such window (belonging to this Qt application),
-+ // make the event relative to the window where the drag started. (QTBUG-66103)
-+ const QMouseEvent *release = static_cast<QMouseEvent *>(e);
-+ const QWindow *releaseWindow = topLevelAt(release->globalPos());
-+ qCDebug(lcDnd) << "mouse released over" << releaseWindow << "after drag from" << m_current_window << "globalPos" << release->globalPos();
-+ if (!releaseWindow)
-+ releaseWindow = m_current_window;
-+ QPoint releaseWindowPos = (releaseWindow ? releaseWindow->mapFromGlobal(release->globalPos()) : release->globalPos());
-+ QMouseEvent *newRelease = new QMouseEvent(release->type(),
-+ releaseWindowPos, releaseWindowPos, release->screenPos(),
-+ release->button(), release->buttons(),
-+ release->modifiers(), release->source());
-+ QCoreApplication::postEvent(o, newRelease);
- return true; // defer mouse release events until drag event loop has returned
-+ }
- case QEvent::MouseButtonDblClick:
- case QEvent::Wheel:
- return true;
-@@ -349,7 +370,7 @@ static inline QPoint fromNativeGlobalPixels(const QPoint &point)
- into account.
- */
-
--QSimpleDrag::QSimpleDrag() : m_current_window(0)
-+QSimpleDrag::QSimpleDrag()
- {
- }
-
-@@ -373,6 +394,7 @@ void QSimpleDrag::startDrag()
- updateCursor(Qt::IgnoreAction);
- }
- setExecutedDropAction(Qt::IgnoreAction);
-+ qCDebug(lcDnd) << "drag began from" << m_current_window<< "cursor pos" << QCursor::pos() << "can drop?" << canDrop();
- }
-
- void QSimpleDrag::cancel()
-diff --git a/src/gui/kernel/qsimpledrag_p.h b/src/gui/kernel/qsimpledrag_p.h
-index 0b8a0bc703..bbd7f7f4bb 100644
---- a/src/gui/kernel/qsimpledrag_p.h
-+++ b/src/gui/kernel/qsimpledrag_p.h
-@@ -105,6 +105,9 @@ protected:
-
- QDrag *drag() const { return m_drag; }
-
-+protected:
-+ QWindow *m_current_window;
-+
- private:
- void enableEventFilter();
- void disableEventFilter();
-@@ -132,9 +135,6 @@ protected:
- virtual void cancel() Q_DECL_OVERRIDE;
- virtual void move(const QPoint &globalPos) Q_DECL_OVERRIDE;
- virtual void drop(const QPoint &globalPos) Q_DECL_OVERRIDE;
--
--private:
-- QWindow *m_current_window;
- };
-
- #endif // QT_NO_DRAGANDDROP
---
-cgit v1.1-6-g87c4
-
-
diff --git a/source/l/qt5/patches/qt5.qtbug-69310.patch b/source/l/qt5/patches/qt5.qtbug-69310.patch
deleted file mode 100644
index b9246273..00000000
--- a/source/l/qt5/patches/qt5.qtbug-69310.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From fcba9fa861574f33e1d2e54d8c8d6da8062927cd Mon Sep 17 00:00:00 2001
-From: Allan Sandfeld Jensen <allan.jensen@qt.io>
-Date: Wed, 23 Jan 2019 10:42:12 +0100
-Subject: Fix regression in QPlainTextEdit updating
-
-It was incorrectly counting a block having more than one line as having
-changed visibility.
-
-Fixes: QTBUG-69310
-Change-Id: I502cda1d3e8a4efb1c14122353cc0a4731d8581c
-Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
----
- src/widgets/widgets/qplaintextedit.cpp | 7 ++++---
- 1 file changed, 4 insertions(+), 3 deletions(-)
-
-diff --git a/src/widgets/widgets/qplaintextedit.cpp b/src/widgets/widgets/qplaintextedit.cpp
-index d6f6a364a8..57f2dec8f7 100644
---- a/src/widgets/widgets/qplaintextedit.cpp
-+++ b/src/widgets/widgets/qplaintextedit.cpp
-@@ -312,10 +312,11 @@ void QPlainTextDocumentLayout::documentChanged(int from, int charsRemoved, int c
- QTextBlock block = changeStartBlock;
- do {
- block.clearLayout();
-- const int lineCount = block.isVisible() ? 1 : 0;
-- if (block.lineCount() != lineCount) {
-+ if (block.isVisible()
-+ ? (block.lineCount() == 0)
-+ : (block.lineCount() > 0)) {
- blockVisibilityChanged = true;
-- block.setLineCount(lineCount);
-+ block.setLineCount(block.isVisible() ? 1 : 0);
- }
- if (block == changeEndBlock)
- break;
---
-cgit v1.2.1
-
diff --git a/source/l/qt5/patches/qt5.qtbug-76255.patch b/source/l/qt5/patches/qt5.qtbug-76255.patch
deleted file mode 100644
index 678913ce..00000000
--- a/source/l/qt5/patches/qt5.qtbug-76255.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From cc32a691936f37eaaec618a71edd62f896009c9d Mon Sep 17 00:00:00 2001
-From: Joerg Bornemann <joerg.bornemann@qt.io>
-Date: Fri, 06 Sep 2019 10:54:44 +0200
-Subject: [PATCH] Fix CMake config files for -libdir different from "lib"
-
-When Qt was configured with -libdir different from "lib", one could not
-build with CMake whenever a static lib was pulled in (e.g. uitools).
-
-Do not hard-code "/lib" but use the correct variable also for static
-libraries.
-
-Fixes: QTBUG-76255
-Change-Id: I28c6861752e29e461247628d2b1f8a9ec32f0790
-Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
-Reviewed-by: Fabian Vogt <fabian@ritter-vogt.de>
----
-
-diff --git a/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in b/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in
-index d4fd057..f4a34d6 100644
---- a/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in
-+++ b/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in
-@@ -53,7 +53,11 @@
- set(_lib_deps)
- set(_link_flags)
-
-- get_filename_component(_qt5_install_libs \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/lib\" ABSOLUTE)
-+!!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE)
-+ set(_qt5_install_libs \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}\")
-+!!ELSE
-+ set(_qt5_install_libs \"$${CMAKE_LIB_DIR}\")
-+!!ENDIF
-
- if(EXISTS \"${prl_file_location}\")
- file(STRINGS \"${prl_file_location}\" _prl_strings REGEX \"QMAKE_PRL_LIBS_FOR_CMAKE[ \\t]*=\")
-
diff --git a/source/l/qt5/patches/qt5.qtbug-77037.patch b/source/l/qt5/patches/qt5.qtbug-77037.patch
deleted file mode 100644
index 4dac59a9..00000000
--- a/source/l/qt5/patches/qt5.qtbug-77037.patch
+++ /dev/null
@@ -1,89 +0,0 @@
-From 0b57f15958f07ef12c8944d6db7a33a6fe9d9c59 Mon Sep 17 00:00:00 2001
-From: Allan Sandfeld Jensen <allan.jensen@qt.io>
-Date: Mon, 23 Sep 2019 13:49:53 +0200
-Subject: Fix building with pulseaudio 13
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-The function signature changed though the ABI stayed the same.
-
-Change-Id: I86ca361b5e4f0c523e1031910df438c23beee876
-Fixes: QTBUG-77037
-Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io>
----
- chromium/media/audio/pulse/pulse.sigs | 16 ++++++++--------
- chromium/media/audio/pulse/pulse_stub_header.fragment | 11 +++++++++++
- 2 files changed, 19 insertions(+), 8 deletions(-)
-
-diff --git a/chromium/media/audio/pulse/pulse.sigs b/chromium/media/audio/pulse/pulse.sigs
-index 8b5888786a9..daaeb149c13 100644
---- a/chromium/media/audio/pulse/pulse.sigs
-+++ b/chromium/media/audio/pulse/pulse.sigs
-@@ -24,11 +24,11 @@ pa_operation* pa_context_get_source_info_by_index(pa_context* c, uint32_t idx, p
- pa_operation* pa_context_get_source_info_by_name(pa_context* c, const char* name, pa_source_info_cb_t cb, void *userdata);
- pa_operation* pa_context_get_source_info_list(pa_context* c, pa_source_info_cb_t cb, void* userdata);
- pa_operation* pa_context_get_sink_info_list(pa_context* c, pa_sink_info_cb_t cb, void* userdata);
--pa_context_state_t pa_context_get_state(pa_context* c);
-+pa_context_state_t pa_context_get_state(const_pa_context_ptr c);
- pa_context* pa_context_new(pa_mainloop_api* mainloop, const char* name);
- pa_operation* pa_context_set_source_volume_by_index(pa_context* c, uint32_t idx, const pa_cvolume* volume, pa_context_success_cb_t cb, void* userdata);
- void pa_context_set_state_callback(pa_context* c, pa_context_notify_cb_t cb, void* userdata);
--pa_operation_state_t pa_operation_get_state(pa_operation* o);
-+pa_operation_state_t pa_operation_get_state(const_pa_operation_ptr o);
- void pa_context_unref(pa_context* c);
- void pa_operation_unref(pa_operation* o);
- int pa_stream_begin_write(pa_stream* p, void** data, size_t* nbytes);
-@@ -38,23 +38,23 @@ pa_operation* pa_stream_cork(pa_stream* s, int b, pa_stream_success_cb_t cb, voi
- int pa_stream_disconnect(pa_stream* s);
- int pa_stream_drop(pa_stream *p);
- pa_operation* pa_stream_flush(pa_stream* s, pa_stream_success_cb_t cb, void* userdata);
--uint32_t pa_stream_get_device_index(pa_stream* s);
-+uint32_t pa_stream_get_device_index(const_pa_stream_ptr s);
- int pa_stream_get_latency(pa_stream* s, pa_usec_t* r_usec, int* negative);
--pa_stream_state_t pa_stream_get_state(pa_stream* p);
-+pa_stream_state_t pa_stream_get_state(const_pa_stream_ptr p);
- pa_stream* pa_stream_new(pa_context* c, const char* name, const pa_sample_spec* ss, const pa_channel_map * map);
- pa_stream* pa_stream_new_with_proplist(pa_context* c, const char* name, const pa_sample_spec* ss, const pa_channel_map* map, pa_proplist* p);
- pa_proplist* pa_proplist_new(void);
--int pa_proplist_contains(pa_proplist* p, const char* key);
-+int pa_proplist_contains(const_pa_proplist_ptr p, const char* key);
- void pa_proplist_free(pa_proplist* p);
--const char* pa_proplist_gets(pa_proplist* p, const char* key);
-+const char* pa_proplist_gets(const_pa_proplist_ptr p, const char* key);
- int pa_proplist_sets(pa_proplist* p, const char* key, const char* value);
--size_t pa_stream_readable_size(pa_stream *p);
-+size_t pa_stream_readable_size(const_pa_stream_ptr p);
- int pa_stream_peek(pa_stream* p, const void** data, size_t* nbytes);
- void pa_stream_set_read_callback(pa_stream* p, pa_stream_request_cb_t cb, void* userdata);
- void pa_stream_set_state_callback(pa_stream* s, pa_stream_notify_cb_t cb, void* userdata);
- int pa_stream_write(pa_stream* p, const void* data, size_t nbytes, pa_free_cb_t free_cb, int64_t offset, pa_seek_mode_t seek);
- void pa_stream_set_write_callback(pa_stream *p, pa_stream_request_cb_t cb, void *userdata);
- void pa_stream_unref(pa_stream* s);
--int pa_context_errno(pa_context *c);
-+int pa_context_errno(const_pa_context_ptr c);
- const char* pa_strerror(int error);
- pa_cvolume* pa_cvolume_set(pa_cvolume* a, unsigned channels, pa_volume_t v);
-diff --git a/chromium/media/audio/pulse/pulse_stub_header.fragment b/chromium/media/audio/pulse/pulse_stub_header.fragment
-index 2a2d3e7552b..cdaa841b29f 100644
---- a/chromium/media/audio/pulse/pulse_stub_header.fragment
-+++ b/chromium/media/audio/pulse/pulse_stub_header.fragment
-@@ -5,4 +5,15 @@ extern "C" {
-
- #include <pulse/pulseaudio.h>
-
-+#if PA_MAJOR > 12
-+typedef const pa_context* const_pa_context_ptr;
-+typedef const pa_operation* const_pa_operation_ptr;
-+typedef const pa_proplist* const_pa_proplist_ptr;
-+typedef const pa_stream* const_pa_stream_ptr;
-+#else
-+typedef pa_context* const_pa_context_ptr;
-+typedef pa_operation* const_pa_operation_ptr;
-+typedef pa_proplist* const_pa_proplist_ptr;
-+typedef pa_stream* const_pa_stream_ptr;
-+#endif
- }
---
-cgit v1.2.1
-
diff --git a/source/l/qt5/patches/qt5.qtbug-77364.patch b/source/l/qt5/patches/qt5.qtbug-77364.patch
deleted file mode 100644
index 088856c7..00000000
--- a/source/l/qt5/patches/qt5.qtbug-77364.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/src/widgets/kernel/qwidget.cpp b/src/widgets/kernel/qwidget.cpp
-index 04290a4ce1..27773d5762 100644
---- a/src/widgets/kernel/qwidget.cpp
-+++ b/src/widgets/kernel/qwidget.cpp
-@@ -6446,7 +6446,7 @@ void QWidget::setFocusProxy(QWidget * w)
-
- if (changingAppFocusWidget) {
- QWidget *newDeepestFocusProxy = d_func()->deepestFocusProxy();
-- QApplicationPrivate::focus_widget = newDeepestFocusProxy ? newDeepestFocusProxy : this;
-+ QApplicationPrivate::setFocusWidget(newDeepestFocusProxy ? newDeepestFocusProxy : this, Qt::NoFocusReason);
- }
- }
-
diff --git a/source/l/qt5/patches/qt5.webengine_gcc8.patch b/source/l/qt5/patches/qt5.webengine_gcc8.patch
deleted file mode 100644
index cf276bc7..00000000
--- a/source/l/qt5/patches/qt5.webengine_gcc8.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-# Prevent these errors caused by using GCC8
-# (original patch taken from Fedora's chromium SRPM):
-#
-# make: *** [Makefile:1028: module-qtwebengine-make_first] Error 2
-# FAILED: obj/mojo/public/c/system/system/thunks.o
-# ../../3rdparty/chromium/mojo/public/c/system/buffer.h:38:42: error: static assertion failed: int64_t has weird alignment
-# ../../3rdparty/chromium/mojo/public/c/system/data_pipe.h:49:42: error: static assertion failed: int64_t has weird alignment
-# ../../3rdparty/chromium/mojo/public/c/system/message_pipe.h:47:42: error: static assertion failed: int64_t has weird alignment
-#
---- a/src/3rdparty/chromium/mojo/public/c/system/macros.h 2018-05-15 14:58:46.448912634 -0400
-+++ b/src/3rdparty/chromium/mojo/public/c/system/macros.h 2018-05-15 14:58:52.041784613 -0400
-@@ -18,7 +18,13 @@
- #endif
-
- // Like the C++11 |alignof| operator.
--#if __cplusplus >= 201103L
-+#if defined(__GNUC__) && __GNUC__ >= 8
-+// GCC 8 has changed the alignof operator to return the minimal alignment
-+// required by the target ABI, instead of the preferred alignment.
-+// This means that on 32-bit x86, it will return 4 instead of 8.
-+// Use __alignof__ instead to avoid this.
-+#define MOJO_ALIGNOF(type) __alignof__(type)
-+#elif __cplusplus >= 201103L
- #define MOJO_ALIGNOF(type) alignof(type)
- #elif defined(__GNUC__)
- #define MOJO_ALIGNOF(type) __alignof__(type)
diff --git a/source/l/qt5/patches/qt5.whandle.patch b/source/l/qt5/patches/qt5.whandle.patch
deleted file mode 100644
index 4428974d..00000000
--- a/source/l/qt5/patches/qt5.whandle.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From: Ulf Hermann <ulf.hermann@theqtcompany.com>
-Date: Tue, 27 Oct 2015 14:25:42 +0000 (+0100)
-Subject: WIP: Also do hide/show via WA_OutsideWSRange for native widgets
-X-Git-Url: https://codereview.qt-project.org/gitweb?p=qt%2Fqtbase.git;a=commitdiff_plain;h=5ea44d1d516f0c68a6793279df5c1569ef9fadd2
-
-WIP: Also do hide/show via WA_OutsideWSRange for native widgets
-
-Task-number: QTBUG-48321
-Change-Id: I78ef29975181ee22429c9bd4b11d96d9e68b7a9c
----
-
-diff --git a/qtbase/src/widgets/kernel/qwidget.cpp b/qtbase/src/widgets/kernel/qwidget.cpp
-index a006246..024005d 100644
---- a/qtbase/src/widgets/kernel/qwidget.cpp
-+++ b/qtbase/src/widgets/kernel/qwidget.cpp
-@@ -7169,7 +7169,7 @@ void QWidgetPrivate::setGeometry_sys(int x, int y, int w, int h, bool isMove)
-
- bool needsShow = false;
-
-- if (q->isWindow()) {
-+ if (q->isWindow() || q->windowHandle()) {
- if (!(data.window_state & Qt::WindowFullScreen) && (w == 0 || h == 0)) {
- q->setAttribute(Qt::WA_OutsideWSRange, true);
- if (q->isVisible() && q->testAttribute(Qt::WA_Mapped))
diff --git a/source/l/qt5/patches/qtbase-qxcbwindow.patch b/source/l/qt5/patches/qtbase-qxcbwindow.patch
deleted file mode 100644
index 62a0bb44..00000000
--- a/source/l/qt5/patches/qtbase-qxcbwindow.patch
+++ /dev/null
@@ -1,97 +0,0 @@
-Taken from: https://code.qt.io/cgit/qt/qtbase.git/patch/?id=0c183117
-
-From 0c1831178540462da31fd7a4b6d2e446bc84498b Mon Sep 17 00:00:00 2001
-From: Erik Kurzinger <ekurzinger@nvidia.com>
-Date: Thu, 13 Jun 2019 08:15:50 -0700
-Subject: Track swap interval in QXcbWindow
-
-As per GLX_EXT_swap_control, the GLX swap interval is specified on a
-per-drawable basis. However, QGLXContext only tracks it per-context
-using the m_swapInterval member. If a new drawable is made current to a
-context, it is still necessary to call glXSwapIntervalEXT to change the
-swap interval, even if it has been previously called for the same
-context with a different drawable. However, currently,
-QGLXContext::makeCurrent doesn't do this if its m_swapInterval field
-matches the new swap interval. This change removes m_swapInterval from
-QGLXContext, instead tracking it in QXcbWindow. This still avoids
-unnecessary calls to glXSwapIntervalEXT, while ensuring the swap
-interval is always set for new window drawables.
-
-Change-Id: Idc34101476c6af618059f6f3d8925dee743994a3
-Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
-Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
----
- .../platforms/xcb/gl_integrations/xcb_glx/qglxintegration.cpp | 6 +++---
- src/plugins/platforms/xcb/gl_integrations/xcb_glx/qglxintegration.h | 1 -
- src/plugins/platforms/xcb/qxcbwindow.h | 4 ++++
- 3 files changed, 7 insertions(+), 4 deletions(-)
-
-diff --git a/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qglxintegration.cpp b/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qglxintegration.cpp
-index 4adf662152..f26f698e76 100644
---- a/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qglxintegration.cpp
-+++ b/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qglxintegration.cpp
-@@ -204,7 +204,6 @@ QGLXContext::QGLXContext(QXcbScreen *screen, const QSurfaceFormat &format, QPlat
- , m_shareContext(0)
- , m_format(format)
- , m_isPBufferCurrent(false)
-- , m_swapInterval(-1)
- , m_ownsContext(nativeHandle.isNull())
- , m_getGraphicsResetStatus(0)
- , m_lost(false)
-@@ -567,9 +566,9 @@ bool QGLXContext::makeCurrent(QPlatformSurface *surface)
-
- if (success && surfaceClass == QSurface::Window) {
- int interval = surface->format().swapInterval();
-+ QXcbWindow *window = static_cast<QXcbWindow *>(surface);
- QXcbScreen *screen = screenForPlatformSurface(surface);
-- if (interval >= 0 && m_swapInterval != interval && screen) {
-- m_swapInterval = interval;
-+ if (interval >= 0 && interval != window->swapInterval() && screen) {
- typedef void (*qt_glXSwapIntervalEXT)(Display *, GLXDrawable, int);
- typedef void (*qt_glXSwapIntervalMESA)(unsigned int);
- static qt_glXSwapIntervalEXT glXSwapIntervalEXT = 0;
-@@ -588,6 +587,7 @@ bool QGLXContext::makeCurrent(QPlatformSurface *surface)
- glXSwapIntervalEXT(m_display, glxDrawable, interval);
- else if (glXSwapIntervalMESA)
- glXSwapIntervalMESA(interval);
-+ window->setSwapInterval(interval);
- }
- }
-
-diff --git a/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qglxintegration.h b/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qglxintegration.h
-index be9d3f5dcb..2a88fd6e59 100644
---- a/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qglxintegration.h
-+++ b/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qglxintegration.h
-@@ -87,7 +87,6 @@ private:
- GLXContext m_shareContext;
- QSurfaceFormat m_format;
- bool m_isPBufferCurrent;
-- int m_swapInterval;
- bool m_ownsContext;
- GLenum (APIENTRY * m_getGraphicsResetStatus)();
- bool m_lost;
-diff --git a/src/plugins/platforms/xcb/qxcbwindow.h b/src/plugins/platforms/xcb/qxcbwindow.h
-index f98cd8a74d..8258cc2dfa 100644
---- a/src/plugins/platforms/xcb/qxcbwindow.h
-+++ b/src/plugins/platforms/xcb/qxcbwindow.h
-@@ -184,6 +184,9 @@ public:
- static void setWindowTitle(const QXcbConnection *conn, xcb_window_t window, const QString &title);
- static QString windowTitle(const QXcbConnection *conn, xcb_window_t window);
-
-+ int swapInterval() const { return m_swapInterval; }
-+ void setSwapInterval(int swapInterval) { m_swapInterval = swapInterval; }
-+
- public Q_SLOTS:
- void updateSyncRequestCounter();
-
-@@ -276,6 +279,7 @@ protected:
- SyncState m_syncState = NoSyncNeeded;
-
- QXcbSyncWindowRequest *m_pendingSyncRequest = nullptr;
-+ int m_swapInterval = -1;
- };
-
- class QXcbForeignWindow : public QXcbWindow
---
-cgit v1.2.1
-
diff --git a/source/l/qt5/patches/qtbase-zlib-compression.patch b/source/l/qt5/patches/qtbase-zlib-compression.patch
deleted file mode 100644
index a6896a4d..00000000
--- a/source/l/qt5/patches/qtbase-zlib-compression.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-Taken from: https://code.qt.io/cgit/qt/qtbase.git/patch/?id=cbdc9a77
-
-From cbdc9a7786278c31fdb6eb465f32d0374349c1ef Mon Sep 17 00:00:00 2001
-From: Thiago Macieira <thiago.macieira@intel.com>
-Date: Thu, 20 Jun 2019 09:36:46 -0700
-Subject: RCC: Change the default compression to Zlib
-
-Codebases using QResource::isCompressed() and assuming it is Zlib break
-if zstd is enabled. So change the default back to Zlib until Qt 6.0.
-
-[ChangeLog][Important Behavior Changes] RCC's default compression
-algorithm was changed back to Zlib, as it was in all previous releases
-until 5.13.0. The default will remain Zlib for all Qt 5.x releases but
-will change in Qt 6.0. To activate Zstd compression for your resources,
-either pass the --compress-algo=zstd option to the rcc tool or add the
-XML attribute compression-algorithm="zstd" to the <file> tags in the
-.qrc file.
-
-Task-number: QTBUG-76521
-Change-Id: Ief874765cd7b43798de3fffd15a9f56fd9ad1ad4
-Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
----
- src/tools/rcc/rcc.cpp | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/tools/rcc/rcc.cpp b/src/tools/rcc/rcc.cpp
-index 862e574f2d..011a7db810 100644
---- a/src/tools/rcc/rcc.cpp
-+++ b/src/tools/rcc/rcc.cpp
-@@ -58,7 +58,7 @@ enum {
- CONSTANT_COMPRESSTHRESHOLD_DEFAULT = 70
- };
-
--#if QT_CONFIG(zstd)
-+#if QT_CONFIG(zstd) && QT_VERSION >= QT_VERSION_CHECK(6,0,0)
- # define CONSTANT_COMPRESSALGO_DEFAULT RCCResourceLibrary::CompressionAlgorithm::Zstd
- #elif !defined(QT_NO_COMPRESS)
- # define CONSTANT_COMPRESSALGO_DEFAULT RCCResourceLibrary::CompressionAlgorithm::Zlib
---
-cgit v1.2.1
-
diff --git a/source/l/qt5/qt5.SlackBuild b/source/l/qt5/qt5.SlackBuild
index 9ffabd27..01100bd9 100755
--- a/source/l/qt5/qt5.SlackBuild
+++ b/source/l/qt5/qt5.SlackBuild
@@ -118,32 +118,29 @@ else
fi
# Fix path to mysql header:
-cat $CWD/patches/qt5.mysql.h.diff | patch -p1 --verbose || exit 1
+zcat $CWD/patches/qt5.mysql.h.diff.gz | patch -p1 --verbose || exit 1
# CMake generates wrong -isystem /usr/include compilations flags with Qt5::Gui
# and for it breaks KWin compilation with:
# /usr/include/c++/9.1.0/cstdlib:75:15: fatal error: stdlib.h: No such file or directory
# See also https://bugzilla.redhat.com/1704474
cd qtbase
- cat $CWD/patches/qt5.qtbase_cmake_isystem_includes.patch \
- | patch -p1 --verbose || exit 1
+ zcat $CWD/patches/qt5.qtbase_cmake_isystem_includes.patch.gz | patch -p1 --verbose || exit 1
cd - 1>/dev/null
# CVE-2020-0569 (fixed in 5.14.0):
cd qtbase
- cat $CWD/patches/qt5.cve-2020-0569.patch \
- | patch -p1 --verbose || exit 1
+ zcat $CWD/patches/qt5.cve-2020-0569.patch.gz | patch -p1 --verbose || exit 1
cd - 1>/dev/null
# CVE-2020-0570 (fixed in 5.14.1):
cd qtbase
- cat $CWD/patches/qt5.cve-2020-0570.patch \
- | patch -p1 --verbose || exit 1
+ zcat $CWD/patches/qt5.cve-2020-0570.patch.gz | patch -p1 --verbose || exit 1
cd - 1>/dev/null
if ! pkg-config --exists libpulse 2>/dev/null ; then
# Forcibly disable pulseaudio in qtwebengine:
- cat $CWD/patches/qt5.pulseaudio.diff | patch -p1 --verbose || exit 1
+ zcat $CWD/patches/qt5.pulseaudio.diff.gz | patch -p1 --verbose || exit 1
# Disable pulseaudio in Qt5:
PACONF="-no-pulseaudio"
else
@@ -210,12 +207,11 @@ export QT_PLUGIN_PATH="${QTDIR}/qtbase/plugins"
make $NUMJOBS || make || exit 1
make install INSTALL_ROOT=$PKG || exit 1
-# Strip binaries the Slackware way:
-find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
- | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+# Strip binaries:
+find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
# Remove rpaths:
-for file in $(find . | xargs file | grep -e "executable" -e "shared object" | grep ELF | cut -f 1 -d : 2> /dev/null) ; do
+for file in $(find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF | cut -f 1 -d : 2> /dev/null) ; do
if [ ! "$(patchelf --print-rpath $file 2> /dev/null)" = "" ]; then
patchelf --remove-rpath $file
fi
@@ -334,8 +330,7 @@ fi
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
-cat $CWD/doinst.sh > $PKG/install/doinst.sh
+zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh
cd $PKG
/sbin/makepkg -l y -c n $TMP/$PKGNAM-$PKGVER-$ARCH-$BUILD.txz
-