commit:     36ad4ec6dc30a2cd5dd45bcb931233ca6d7f8c8a
Author:     Aric Belsito <lluixhi <AT> gmail <DOT> com>
AuthorDate: Mon May 14 16:21:24 2018 +0000
Commit:     Aric Belsito <lluixhi <AT> gmail <DOT> com>
CommitDate: Mon May 14 16:21:24 2018 +0000
URL:        https://gitweb.gentoo.org/proj/musl.git/commit/?id=36ad4ec6

dev-qt/qtcore: remove 5.7.1-r3

 dev-qt/qtcore/Manifest                             |   1 -
 .../files/qtcore-4.8.6-QNAM-corruptions-fix.patch  | 431 ---------------------
 .../qtcore/files/qtcore-4.8.6-moc-boost-1.60.patch |  16 -
 dev-qt/qtcore/files/qtcore-5.5.1-musl-iconv.patch  |  12 -
 dev-qt/qtcore/files/qtcore-5.6.2-plugins.patch     |  81 ----
 dev-qt/qtcore/files/qtcore-5.7.1-qipm.patch        | 152 --------
 dev-qt/qtcore/files/qtcore-5.7.1-qsfpm-1.patch     | 252 ------------
 dev-qt/qtcore/files/qtcore-5.7.1-qsfpm-2.patch     | 195 ----------
 dev-qt/qtcore/files/qtcore-5.9.3-avx.patch         |  69 ----
 dev-qt/qtcore/files/qtcore-5.9.3-musl-iconv.patch  |  12 -
 dev-qt/qtcore/files/qtcore-clang-libc++abi.patch   |  12 -
 dev-qt/qtcore/metadata.xml                         |   2 +-
 ...core-4.8.7-r3.ebuild => qtcore-4.8.7-r4.ebuild} |   4 +-
 dev-qt/qtcore/qtcore-5.7.1-r3.ebuild               |  49 ---
 14 files changed, 3 insertions(+), 1285 deletions(-)

diff --git a/dev-qt/qtcore/Manifest b/dev-qt/qtcore/Manifest
index 9eb3023..0dfe1cd 100644
--- a/dev-qt/qtcore/Manifest
+++ b/dev-qt/qtcore/Manifest
@@ -1,2 +1 @@
 DIST qt-everywhere-opensource-src-4.8.7.tar.gz 241075567 SHA256 
e2882295097e47fe089f8ac741a95fef47e0a73a3f3cdf21b56990638f626ea0 SHA512 
f9f81a2e7205e1fd05c8d923dc73244f29aa33f951fa6b7c5c8193449328b37084796b9b71ad0c317e4e6fd00017c10ea5d67b1b2032551cde00548522218125
 WHIRLPOOL 
ad8f01172f5bdb3a3a69fe7b03862c4c411bc8d95211053ad66ed1d60a3c0577d073d1075a1e0a80b25d9b2721addda55a2967e6ccf5e194cec8d08770ac5fc2
-DIST qtbase-opensource-src-5.7.1.tar.xz 44992616 BLAKE2B 
d845ff8316f6f91089e23b74c025ad8e6160eb7ba75017cba34c2ad2f7b475fc4e36d337b945935bc2850bd140d743b9a5e3d23399b6d3151b85109da9f56ba8
 SHA512 
0506a3a856f76e5ba182e3382a515282b6096f3900fbdc14cd5aec425105ab61922e0ada0361234387335ceb80b3c69e39cd34d75476c2946c4371e7b8c0827f

diff --git a/dev-qt/qtcore/files/qtcore-4.8.6-QNAM-corruptions-fix.patch 
b/dev-qt/qtcore/files/qtcore-4.8.6-QNAM-corruptions-fix.patch
deleted file mode 100644
index 1d83caa..0000000
--- a/dev-qt/qtcore/files/qtcore-4.8.6-QNAM-corruptions-fix.patch
+++ /dev/null
@@ -1,431 +0,0 @@
-From fa81aa6d027049e855b76f5408586a288f160575 Mon Sep 17 00:00:00 2001
-From: Markus Goetz <[email protected]>
-Date: Tue, 28 Apr 2015 11:57:36 +0200
-Subject: QNAM: Fix upload corruptions when server closes connection
-
-This patch fixes several upload corruptions if the server closes the connection
-while/before we send data into it. They happen inside multiple places in the 
HTTP
-layer and are explained in the comments.
-Corruptions are:
-* The upload byte device has an in-flight signal with pending upload data, if
-it gets reset (because server closes the connection) then the re-send of the
-request was sometimes taking this stale in-flight pending upload data.
-* Because some signals were DirectConnection and some were QueuedConnection, 
there
-was a chance that a direct signal overtakes a queued signal. The state machine
-then sent data down the socket which was buffered there (and sent later) 
although
-it did not match the current state of the state machine when it was actually 
sent.
-* A socket was seen as being able to have requests sent even though it was not
-encrypted yet. This relates to the previous corruption where data is stored 
inside
-the socket's buffer and then sent later.
-
-The included auto test produces all fixed corruptions, I detected no 
regressions
-via the other tests.
-This code also adds a bit of sanity checking to protect from possible further
-problems.
-
-[ChangeLog][QtNetwork] Fix HTTP(s) upload corruption when server closes 
connection
-
-(cherry picked from commit qtbase/cff39fba10ffc10ee4dcfdc66ff6528eb26462d3)
-Change-Id: I9793297be6cf3edfb75b65ba03b65f7a133ef194
-Reviewed-by: Richard J. Moore <[email protected]>
----
- src/corelib/io/qnoncontiguousbytedevice.cpp        |  19 +++
- src/corelib/io/qnoncontiguousbytedevice_p.h        |   4 +
- .../access/qhttpnetworkconnectionchannel.cpp       |  47 +++++-
- src/network/access/qhttpthreaddelegate_p.h         |  36 ++++-
- src/network/access/qnetworkaccesshttpbackend.cpp   |  24 ++-
- src/network/access/qnetworkaccesshttpbackend_p.h   |   5 +-
- tests/auto/qnetworkreply/tst_qnetworkreply.cpp     | 174 ++++++++++++++++++++-
- 7 files changed, 280 insertions(+), 29 deletions(-)
-
-diff --git a/src/corelib/io/qnoncontiguousbytedevice.cpp 
b/src/corelib/io/qnoncontiguousbytedevice.cpp
-index bf58eee..1a0591e 100644
---- a/src/corelib/io/qnoncontiguousbytedevice.cpp
-+++ b/src/corelib/io/qnoncontiguousbytedevice.cpp
-@@ -245,6 +245,12 @@ qint64 QNonContiguousByteDeviceByteArrayImpl::size()
-     return byteArray->size();
- }
-
-+qint64 QNonContiguousByteDeviceByteArrayImpl::pos()
-+{
-+    return currentPosition;
-+}
-+
-+
- 
QNonContiguousByteDeviceRingBufferImpl::QNonContiguousByteDeviceRingBufferImpl(QSharedPointer<QRingBuffer>
 rb)
-     : QNonContiguousByteDevice(), currentPosition(0)
- {
-@@ -296,6 +302,11 @@ qint64 QNonContiguousByteDeviceRingBufferImpl::size()
-     return ringBuffer->size();
- }
-
-+qint64 QNonContiguousByteDeviceRingBufferImpl::pos()
-+{
-+    return currentPosition;
-+}
-+
- 
QNonContiguousByteDeviceIoDeviceImpl::QNonContiguousByteDeviceIoDeviceImpl(QIODevice
 *d)
-     : QNonContiguousByteDevice(),
-     currentReadBuffer(0), currentReadBufferSize(16*1024),
-@@ -415,6 +426,14 @@ qint64 QNonContiguousByteDeviceIoDeviceImpl::size()
-     return device->size() - initialPosition;
- }
-
-+qint64 QNonContiguousByteDeviceIoDeviceImpl::pos()
-+{
-+    if (device->isSequential())
-+        return -1;
-+
-+    return device->pos();
-+}
-+
- 
QByteDeviceWrappingIoDevice::QByteDeviceWrappingIoDevice(QNonContiguousByteDevice
 *bd) : QIODevice((QObject*)0)
- {
-     byteDevice = bd;
-diff --git a/src/corelib/io/qnoncontiguousbytedevice_p.h 
b/src/corelib/io/qnoncontiguousbytedevice_p.h
-index b6966eb..d1a99a1 100644
---- a/src/corelib/io/qnoncontiguousbytedevice_p.h
-+++ b/src/corelib/io/qnoncontiguousbytedevice_p.h
-@@ -69,6 +69,7 @@ public:
-     virtual const char* readPointer(qint64 maximumLength, qint64 &len) = 0;
-     virtual bool advanceReadPointer(qint64 amount) = 0;
-     virtual bool atEnd() = 0;
-+    virtual qint64 pos() { return -1; }
-     virtual bool reset() = 0;
-     void disableReset();
-     bool isResetDisabled() { return resetDisabled; }
-@@ -108,6 +109,7 @@ public:
-     bool atEnd();
-     bool reset();
-     qint64 size();
-+    qint64 pos();
- protected:
-     QByteArray* byteArray;
-     qint64 currentPosition;
-@@ -123,6 +125,7 @@ public:
-     bool atEnd();
-     bool reset();
-     qint64 size();
-+    qint64 pos();
- protected:
-     QSharedPointer<QRingBuffer> ringBuffer;
-     qint64 currentPosition;
-@@ -140,6 +143,7 @@ public:
-     bool atEnd();
-     bool reset();
-     qint64 size();
-+    qint64 pos();
- protected:
-     QIODevice* device;
-     QByteArray* currentReadBuffer;
-diff --git a/src/network/access/qhttpnetworkconnectionchannel.cpp 
b/src/network/access/qhttpnetworkconnectionchannel.cpp
-index 550e090..db2f712 100644
---- a/src/network/access/qhttpnetworkconnectionchannel.cpp
-+++ b/src/network/access/qhttpnetworkconnectionchannel.cpp
-@@ -107,15 +107,19 @@ void QHttpNetworkConnectionChannel::init()
-     socket->setProxy(QNetworkProxy::NoProxy);
- #endif
-
-+    // We want all signals (except the interactive ones) be connected as 
QueuedConnection
-+    // because else we're falling into cases where we recurse back into the 
socket code
-+    // and mess up the state. Always going to the event loop (and expecting 
that when reading/writing)
-+    // is safer.
-     QObject::connect(socket, SIGNAL(bytesWritten(qint64)),
-                      this, SLOT(_q_bytesWritten(qint64)),
--                     Qt::DirectConnection);
-+                     Qt::QueuedConnection);
-     QObject::connect(socket, SIGNAL(connected()),
-                      this, SLOT(_q_connected()),
--                     Qt::DirectConnection);
-+                     Qt::QueuedConnection);
-     QObject::connect(socket, SIGNAL(readyRead()),
-                      this, SLOT(_q_readyRead()),
--                     Qt::DirectConnection);
-+                     Qt::QueuedConnection);
-
-     // The disconnected() and error() signals may already come
-     // while calling connectToHost().
-@@ -144,13 +148,13 @@ void QHttpNetworkConnectionChannel::init()
-         // won't be a sslSocket if encrypt is false
-         QObject::connect(sslSocket, SIGNAL(encrypted()),
-                          this, SLOT(_q_encrypted()),
--                         Qt::DirectConnection);
-+                         Qt::QueuedConnection);
-         QObject::connect(sslSocket, SIGNAL(sslErrors(QList<QSslError>)),
-                          this, SLOT(_q_sslErrors(QList<QSslError>)),
-                          Qt::DirectConnection);
-         QObject::connect(sslSocket, SIGNAL(encryptedBytesWritten(qint64)),
-                          this, SLOT(_q_encryptedBytesWritten(qint64)),
--                         Qt::DirectConnection);
-+                         Qt::QueuedConnection);
-     }
- #endif
- }
-@@ -163,7 +167,8 @@ void QHttpNetworkConnectionChannel::close()
-     else
-         state = QHttpNetworkConnectionChannel::ClosingState;
-
--    socket->close();
-+    if (socket)
-+        socket->close();
- }
-
-
-@@ -280,6 +285,14 @@ bool QHttpNetworkConnectionChannel::sendRequest()
-                 // nothing to read currently, break the loop
-                 break;
-             } else {
-+                if (written != uploadByteDevice->pos()) {
-+                    // Sanity check. This was useful in tracking down an 
upload corruption.
-+                    qWarning() << "QHttpProtocolHandler: Internal error in 
sendRequest. Expected to write at position" << written << "but read device is 
at" << uploadByteDevice->pos();
-+                    Q_ASSERT(written == uploadByteDevice->pos());
-+                    connection->d_func()->emitReplyError(socket, reply, 
QNetworkReply::ProtocolFailure);
-+                    return false;
-+                }
-+
-                 qint64 currentWriteSize = socket->write(readPointer, 
currentReadSize);
-                 if (currentWriteSize == -1 || currentWriteSize != 
currentReadSize) {
-                     // socket broke down
-@@ -639,6 +652,14 @@ bool QHttpNetworkConnectionChannel::ensureConnection()
-         }
-         return false;
-     }
-+
-+    // This code path for ConnectedState
-+    if (pendingEncrypt) {
-+        // Let's only be really connected when we have received the 
encrypted() signal. Else the state machine seems to mess up
-+        // and corrupt the things sent to the server.
-+        return false;
-+    }
-+
-     return true;
- }
-
-@@ -980,6 +1001,13 @@ void QHttpNetworkConnectionChannel::_q_readyRead()
- void QHttpNetworkConnectionChannel::_q_bytesWritten(qint64 bytes)
- {
-     Q_UNUSED(bytes);
-+
-+    if (ssl) {
-+        // In the SSL case we want to send data from encryptedBytesWritten 
signal since that one
-+        // is the one going down to the actual network, not only into some 
SSL buffer.
-+        return;
-+    }
-+
-     // bytes have been written to the socket. write even more of them :)
-     if (isSocketWriting())
-         sendRequest();
-@@ -1029,7 +1057,7 @@ void QHttpNetworkConnectionChannel::_q_connected()
-
-     // ### FIXME: if the server closes the connection unexpectedly, we 
shouldn't send the same broken request again!
-     //channels[i].reconnectAttempts = 2;
--    if (!pendingEncrypt) {
-+    if (!pendingEncrypt && !ssl) { // FIXME: Didn't work properly with 
pendingEncrypt only, we should refactor this into an EncrypingState
-         state = QHttpNetworkConnectionChannel::IdleState;
-         if (!reply)
-             connection->d_func()->dequeueRequest(socket);
-@@ -1157,7 +1185,10 @@ void 
QHttpNetworkConnectionChannel::_q_proxyAuthenticationRequired(const QNetwor
-
- void QHttpNetworkConnectionChannel::_q_uploadDataReadyRead()
- {
--    sendRequest();
-+    if (reply && state == QHttpNetworkConnectionChannel::WritingState) {
-+        // There might be timing issues, make sure to only send upload data 
if really in that state
-+        sendRequest();
-+    }
- }
-
- #ifndef QT_NO_OPENSSL
-diff --git a/src/network/access/qhttpthreaddelegate_p.h 
b/src/network/access/qhttpthreaddelegate_p.h
-index 7648325..9dd0deb 100644
---- a/src/network/access/qhttpthreaddelegate_p.h
-+++ b/src/network/access/qhttpthreaddelegate_p.h
-@@ -190,6 +190,7 @@ protected:
-     QByteArray m_dataArray;
-     bool m_atEnd;
-     qint64 m_size;
-+    qint64 m_pos; // to match calls of haveDataSlot with the expected position
- public:
-     QNonContiguousByteDeviceThreadForwardImpl(bool aE, qint64 s)
-         : QNonContiguousByteDevice(),
-@@ -197,7 +198,8 @@ public:
-           m_amount(0),
-           m_data(0),
-           m_atEnd(aE),
--          m_size(s)
-+          m_size(s),
-+          m_pos(0)
-     {
-     }
-
-@@ -205,6 +207,11 @@ public:
-     {
-     }
-
-+    qint64 pos()
-+    {
-+        return m_pos;
-+    }
-+
-     const char* readPointer(qint64 maximumLength, qint64 &len)
-     {
-         if (m_amount > 0) {
-@@ -232,11 +239,10 @@ public:
-
-         m_amount -= a;
-         m_data += a;
-+        m_pos += a;
-
--        // To main thread to inform about our state
--        emit processedData(a);
--
--        // FIXME possible optimization, already ask user thread for some data
-+        // To main thread to inform about our state. The m_pos will be sent 
as a sanity check.
-+        emit processedData(m_pos, a);
-
-         return true;
-     }
-@@ -253,10 +259,21 @@ public:
-     {
-         m_amount = 0;
-         m_data = 0;
-+        m_dataArray.clear();
-+
-+        if (wantDataPending) {
-+            // had requested the user thread to send some data (only 1 
in-flight at any moment)
-+            wantDataPending = false;
-+        }
-
-         // Communicate as BlockingQueuedConnection
-         bool b = false;
-         emit resetData(&b);
-+        if (b) {
-+            // the reset succeeded, we're at pos 0 again
-+            m_pos = 0;
-+            // the HTTP code will anyway abort the request if !b.
-+        }
-         return b;
-     }
-
-@@ -267,8 +284,13 @@ public:
-
- public slots:
-     // From user thread:
--    void haveDataSlot(QByteArray dataArray, bool dataAtEnd, qint64 dataSize)
-+    void haveDataSlot(qint64 pos, QByteArray dataArray, bool dataAtEnd, 
qint64 dataSize)
-     {
-+        if (pos != m_pos) {
-+            // Sometimes when re-sending a request in the qhttpnetwork* layer 
there is a pending haveData from the
-+            // user thread on the way to us. We need to ignore it since it is 
the data for the wrong(later) chunk.
-+            return;
-+        }
-         wantDataPending = false;
-
-         m_dataArray = dataArray;
-@@ -288,7 +310,7 @@ signals:
-
-     // to main thread:
-     void wantData(qint64);
--    void processedData(qint64);
-+    void processedData(qint64 pos, qint64 amount);
-     void resetData(bool *b);
- };
-
-diff --git a/src/network/access/qnetworkaccesshttpbackend.cpp 
b/src/network/access/qnetworkaccesshttpbackend.cpp
-index cc67258..fe2f627 100644
---- a/src/network/access/qnetworkaccesshttpbackend.cpp
-+++ b/src/network/access/qnetworkaccesshttpbackend.cpp
-@@ -193,6 +193,7 @@ 
QNetworkAccessHttpBackendFactory::create(QNetworkAccessManager::Operation op,
- QNetworkAccessHttpBackend::QNetworkAccessHttpBackend()
-     : QNetworkAccessBackend()
-     , statusCode(0)
-+    , uploadByteDevicePosition(false)
-     , pendingDownloadDataEmissions(new QAtomicInt())
-     , pendingDownloadProgressEmissions(new QAtomicInt())
-     , loadingFromCache(false)
-@@ -610,9 +611,9 @@ void QNetworkAccessHttpBackend::postRequest()
-             forwardUploadDevice->setParent(delegate); // needed to make sure 
it is moved on moveToThread()
-             delegate->httpRequest.setUploadByteDevice(forwardUploadDevice);
-
--            // From main thread to user thread:
--            QObject::connect(this, SIGNAL(haveUploadData(QByteArray, bool, 
qint64)),
--                             forwardUploadDevice, 
SLOT(haveDataSlot(QByteArray, bool, qint64)), Qt::QueuedConnection);
-+            // From user thread to http thread:
-+            QObject::connect(this, 
SIGNAL(haveUploadData(qint64,QByteArray,bool,qint64)),
-+                forwardUploadDevice, 
SLOT(haveDataSlot(qint64,QByteArray,bool,qint64)), Qt::QueuedConnection);
-             QObject::connect(uploadByteDevice.data(), SIGNAL(readyRead()),
-                              forwardUploadDevice, SIGNAL(readyRead()),
-                              Qt::QueuedConnection);
-@@ -620,8 +621,8 @@ void QNetworkAccessHttpBackend::postRequest()
-             // From http thread to user thread:
-             QObject::connect(forwardUploadDevice, SIGNAL(wantData(qint64)),
-                              this, SLOT(wantUploadDataSlot(qint64)));
--            QObject::connect(forwardUploadDevice, 
SIGNAL(processedData(qint64)),
--                             this, SLOT(sentUploadDataSlot(qint64)));
-+            QObject::connect(forwardUploadDevice,SIGNAL(processedData(qint64, 
qint64)),
-+                             this, SLOT(sentUploadDataSlot(qint64,qint64)));
-             connect(forwardUploadDevice, SIGNAL(resetData(bool*)),
-                     this, SLOT(resetUploadDataSlot(bool*)),
-                     Qt::BlockingQueuedConnection); // this is the only one 
with BlockingQueued!
-@@ -915,12 +916,21 @@ void 
QNetworkAccessHttpBackend::replySslConfigurationChanged(const QSslConfigura
- void QNetworkAccessHttpBackend::resetUploadDataSlot(bool *r)
- {
-     *r = uploadByteDevice->reset();
-+    if (*r) {
-+        // reset our own position which is used for the inter-thread 
communication
-+        uploadByteDevicePosition = 0;
-+    }
- }
-
- // Coming from QNonContiguousByteDeviceThreadForwardImpl in HTTP thread
--void QNetworkAccessHttpBackend::sentUploadDataSlot(qint64 amount)
-+void QNetworkAccessHttpBackend::sentUploadDataSlot(qint64 pos, qint64 amount)
- {
-+    if (uploadByteDevicePosition + amount != pos) {
-+        // Sanity check, should not happen.
-+        error(QNetworkReply::UnknownNetworkError, "");
-+    }
-     uploadByteDevice->advanceReadPointer(amount);
-+    uploadByteDevicePosition += amount;
- }
-
- // Coming from QNonContiguousByteDeviceThreadForwardImpl in HTTP thread
-@@ -933,7 +943,7 @@ void QNetworkAccessHttpBackend::wantUploadDataSlot(qint64 
maxSize)
-     QByteArray dataArray(data, currentUploadDataLength);
-
-     // Communicate back to HTTP thread
--    emit haveUploadData(dataArray, uploadByteDevice->atEnd(), 
uploadByteDevice->size());
-+    emit haveUploadData(uploadByteDevicePosition, dataArray, 
uploadByteDevice->atEnd(), uploadByteDevice->size());
- }
-
- /*
-diff --git a/src/network/access/qnetworkaccesshttpbackend_p.h 
b/src/network/access/qnetworkaccesshttpbackend_p.h
-index 13519c6..b4ed67c 100644
---- a/src/network/access/qnetworkaccesshttpbackend_p.h
-+++ b/src/network/access/qnetworkaccesshttpbackend_p.h
-@@ -112,7 +112,7 @@ signals:
-
-     void startHttpRequestSynchronously();
-
--    void haveUploadData(QByteArray dataArray, bool dataAtEnd, qint64 
dataSize);
-+    void haveUploadData(const qint64 pos, QByteArray dataArray, bool 
dataAtEnd, qint64 dataSize);
- private slots:
-     // From HTTP thread:
-     void replyDownloadData(QByteArray);
-@@ -129,13 +129,14 @@ private slots:
-     // From QNonContiguousByteDeviceThreadForwardImpl in HTTP thread:
-     void resetUploadDataSlot(bool *r);
-     void wantUploadDataSlot(qint64);
--    void sentUploadDataSlot(qint64);
-+    void sentUploadDataSlot(qint64, qint64);
-
-     bool sendCacheContents(const QNetworkCacheMetaData &metaData);
-
- private:
-     QHttpNetworkRequest httpRequest; // There is also a copy in the HTTP 
thread
-     int statusCode;
-+    qint64 uploadByteDevicePosition;
-     QString reasonPhrase;
-     // Will be increased by HTTP thread:
-     QSharedPointer<QAtomicInt> pendingDownloadDataEmissions;
-

diff --git a/dev-qt/qtcore/files/qtcore-4.8.6-moc-boost-1.60.patch 
b/dev-qt/qtcore/files/qtcore-4.8.6-moc-boost-1.60.patch
deleted file mode 100644
index 91a5526..0000000
--- a/dev-qt/qtcore/files/qtcore-4.8.6-moc-boost-1.60.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-diff -up qt-everywhere-opensource-src-4.8.7/src/tools/moc/main.cpp.QTBUG-22829 
qt-everywhere-opensource-src-4.8.7/src/tools/moc/main.cpp
---- qt-everywhere-opensource-src-4.8.7/src/tools/moc/main.cpp.QTBUG-22829      
2015-05-07 09:14:44.000000000 -0500
-+++ qt-everywhere-opensource-src-4.8.7/src/tools/moc/main.cpp  2016-03-16 
13:20:43.145899869 -0500
-@@ -188,8 +188,11 @@ int runMoc(int _argc, char **_argv)
-     pp.macros["Q_MOC_RUN"];
-     pp.macros["__cplusplus"];
- 
--    // Workaround a bug while parsing the boost/type_traits/has_operator.hpp 
header. See QTBUG-22829
-+    // Workaround a bug while parsing some boost headers. See QTBUG-22829
-     pp.macros["BOOST_TT_HAS_OPERATOR_HPP_INCLUDED"];
-+    pp.macros["BOOST_LEXICAL_CAST_INCLUDED"];
-+    pp.macros["BOOST_NEXT_PRIOR_HPP_INCLUDED"];
-+    pp.macros["BOOST_TYPE_TRAITS_HPP"];
- 
-     QByteArray filename;
-     QByteArray output;

diff --git a/dev-qt/qtcore/files/qtcore-5.5.1-musl-iconv.patch 
b/dev-qt/qtcore/files/qtcore-5.5.1-musl-iconv.patch
deleted file mode 100644
index fe11d1d..0000000
--- a/dev-qt/qtcore/files/qtcore-5.5.1-musl-iconv.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -Naurw 
qtbase-opensource-src-5.5.1.orig/src/corelib/codecs/qiconvcodec.cpp 
qtbase-opensource-src-5.5.1/src/corelib/codecs/qiconvcodec.cpp
---- qtbase-opensource-src-5.5.1.orig/src/corelib/codecs/qiconvcodec.cpp        
2016-01-25 14:23:16.960351969 -0800
-+++ qtbase-opensource-src-5.5.1/src/corelib/codecs/qiconvcodec.cpp     
2016-01-25 14:24:52.743350254 -0800
-@@ -56,7 +56,7 @@
- #elif defined(Q_OS_AIX)
- #  define NO_BOM
- #  define UTF16 "UCS-2"
--#elif defined(Q_OS_FREEBSD) || defined(Q_OS_MAC)
-+#elif defined(Q_OS_FREEBSD) || defined(Q_OS_MAC) || (defined(Q_OS_LINUX) && 
!defined(__GLIBC__))
- #  define NO_BOM
- #  if Q_BYTE_ORDER == Q_BIG_ENDIAN
- #    define UTF16 "UTF-16BE"

diff --git a/dev-qt/qtcore/files/qtcore-5.6.2-plugins.patch 
b/dev-qt/qtcore/files/qtcore-5.6.2-plugins.patch
deleted file mode 100644
index d969869..0000000
--- a/dev-qt/qtcore/files/qtcore-5.6.2-plugins.patch
+++ /dev/null
@@ -1,81 +0,0 @@
-From ca4d93d85ee446c5e30ec8e7814651e45cbf1218 Mon Sep 17 00:00:00 2001
-From: Thiago Macieira <[email protected]>
-Date: Thu, 12 Nov 2015 10:14:51 -0800
-Subject: 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
-(cherry picked from commit 494376f980e96339b6f1eff7c41336ca4d853065)
-Discussed-again-on: 
http://lists.qt-project.org/pipermail/development/2016-October/027476.html
-Reviewed-by: Lars Knoll <[email protected]>
----
- 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 dcf1b1a..b6558f5 100644
---- a/src/corelib/plugin/qfactoryloader.cpp
-+++ b/src/corelib/plugin/qfactoryloader.cpp
-@@ -208,10 +208,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 37f2368..0ea8280 100644
---- a/src/corelib/plugin/qpluginloader.cpp
-+++ b/src/corelib/plugin/qpluginloader.cpp
-@@ -148,6 +148,7 @@ QPluginLoader::QPluginLoader(const QString &fileName, 
QObject *parent)
-     : QObject(parent), d(0), did_load(false)
- {
-     setFileName(fileName);
-+    setLoadHints(QLibrary::PreventUnloadHint);
- }
- 
- /*!
-@@ -342,7 +343,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();
-@@ -391,7 +392,7 @@ Q_GLOBAL_STATIC(StaticPluginList, staticPluginList)
-     \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.
--- 
-cgit v1.0-4-g1e03
-

diff --git a/dev-qt/qtcore/files/qtcore-5.7.1-qipm.patch 
b/dev-qt/qtcore/files/qtcore-5.7.1-qipm.patch
deleted file mode 100644
index abea145..0000000
--- a/dev-qt/qtcore/files/qtcore-5.7.1-qipm.patch
+++ /dev/null
@@ -1,152 +0,0 @@
-From baad82d242a4d8c1af6c87faaa7f25584183fd53 Mon Sep 17 00:00:00 2001
-From: Stephen Kelly <[email protected]>
-Date: Tue, 20 Dec 2016 00:44:12 +0000
-Subject: [PATCH] QIPM: Persist model indexes after emitting layoutChange, not
- before
-
-Callers can persist a QModelIndex which was not persisted before in a
-slot connected to the signal, and such a persisted index must be updated
-in the course of the layoutChange.
-
-Store the indexes to persist after emitting the signal.
-
-Task-number: QTBUG-32981
-Change-Id: Ibee4c0d84817d72603a03fe5b22fdeefeac0695e
-Reviewed-by: David Faure <[email protected]>
----
- src/corelib/itemmodels/qidentityproxymodel.cpp     | 18 ++---
- .../tst_qidentityproxymodel.cpp                    | 76 ++++++++++++++++++++++
- 2 files changed, 85 insertions(+), 9 deletions(-)
-
-diff --git a/src/corelib/itemmodels/qidentityproxymodel.cpp 
b/src/corelib/itemmodels/qidentityproxymodel.cpp
-index e537793..7c30679 100644
---- a/src/corelib/itemmodels/qidentityproxymodel.cpp
-+++ b/src/corelib/itemmodels/qidentityproxymodel.cpp
-@@ -496,15 +496,6 @@ void 
QIdentityProxyModelPrivate::_q_sourceLayoutAboutToBeChanged(const QList<QPe
- {
-     Q_Q(QIdentityProxyModel);
- 
--    const auto proxyPersistentIndexes = q->persistentIndexList();
--    for (const QPersistentModelIndex &proxyPersistentIndex : 
proxyPersistentIndexes) {
--        proxyIndexes << proxyPersistentIndex;
--        Q_ASSERT(proxyPersistentIndex.isValid());
--        const QPersistentModelIndex srcPersistentIndex = 
q->mapToSource(proxyPersistentIndex);
--        Q_ASSERT(srcPersistentIndex.isValid());
--        layoutChangePersistentIndexes << srcPersistentIndex;
--    }
--
-     QList<QPersistentModelIndex> parents;
-     parents.reserve(sourceParents.size());
-     for (const QPersistentModelIndex &parent : sourceParents) {
-@@ -518,6 +509,15 @@ void 
QIdentityProxyModelPrivate::_q_sourceLayoutAboutToBeChanged(const QList<QPe
-     }
- 
-     q->layoutAboutToBeChanged(parents, hint);
-+
-+    const auto proxyPersistentIndexes = q->persistentIndexList();
-+    for (const QPersistentModelIndex &proxyPersistentIndex : 
proxyPersistentIndexes) {
-+        proxyIndexes << proxyPersistentIndex;
-+        Q_ASSERT(proxyPersistentIndex.isValid());
-+        const QPersistentModelIndex srcPersistentIndex = 
q->mapToSource(proxyPersistentIndex);
-+        Q_ASSERT(srcPersistentIndex.isValid());
-+        layoutChangePersistentIndexes << srcPersistentIndex;
-+    }
- }
- 
- void QIdentityProxyModelPrivate::_q_sourceLayoutChanged(const 
QList<QPersistentModelIndex> &sourceParents, 
QAbstractItemModel::LayoutChangeHint hint)
-diff --git 
a/tests/auto/corelib/itemmodels/qidentityproxymodel/tst_qidentityproxymodel.cpp 
b/tests/auto/corelib/itemmodels/qidentityproxymodel/tst_qidentityproxymodel.cpp
-index e946f31..564b854 100644
---- 
a/tests/auto/corelib/itemmodels/qidentityproxymodel/tst_qidentityproxymodel.cpp
-+++ 
b/tests/auto/corelib/itemmodels/qidentityproxymodel/tst_qidentityproxymodel.cpp
-@@ -68,6 +68,8 @@ private slots:
- 
-     void itemData();
- 
-+    void persistIndexOnLayoutChange();
-+
- protected:
-     void verifyIdentity(QAbstractItemModel *model, const QModelIndex &parent 
= QModelIndex());
- 
-@@ -377,5 +379,79 @@ void tst_QIdentityProxyModel::itemData()
-     QCOMPARE(proxy.itemData(topIndex).value(Qt::DisplayRole).toString(), 
QStringLiteral("Monday_appended"));
- }
- 
-+void dump(QAbstractItemModel* model, QString const& indent = " - ", 
QModelIndex const& parent = {})
-+{
-+    for (auto row = 0; row < model->rowCount(parent); ++row)
-+    {
-+        auto idx = model->index(row, 0, parent);
-+        qDebug() << (indent + idx.data().toString());
-+        dump(model, indent + "- ", idx);
-+    }
-+}
-+
-+void tst_QIdentityProxyModel::persistIndexOnLayoutChange()
-+{
-+    DynamicTreeModel model;
-+
-+    QList<int> ancestors;
-+    for (auto i = 0; i < 3; ++i)
-+    {
-+        Q_UNUSED(i);
-+        ModelInsertCommand insertCommand(&model);
-+        insertCommand.setAncestorRowNumbers(ancestors);
-+        insertCommand.setStartRow(0);
-+        insertCommand.setEndRow(0);
-+        insertCommand.doCommand();
-+        ancestors.push_back(0);
-+    }
-+    ModelInsertCommand insertCommand(&model);
-+    insertCommand.setAncestorRowNumbers(ancestors);
-+    insertCommand.setStartRow(0);
-+    insertCommand.setEndRow(1);
-+    insertCommand.doCommand();
-+
-+    // dump(&model);
-+    // " - 1"
-+    // " - - 2"
-+    // " - - - 3"
-+    // " - - - - 4"
-+    // " - - - - 5"
-+
-+    QIdentityProxyModel proxy;
-+    proxy.setSourceModel(&model);
-+
-+    QPersistentModelIndex persistentIndex;
-+
-+    QPersistentModelIndex sourcePersistentIndex = model.match(model.index(0, 
0), Qt::DisplayRole, "5", 1, Qt::MatchRecursive).first();
-+
-+    QCOMPARE(sourcePersistentIndex.data().toString(), QStringLiteral("5"));
-+
-+    bool gotLayoutAboutToBeChanged = false;
-+    bool gotLayoutChanged = false;
-+
-+    QObject::connect(&proxy, &QAbstractItemModel::layoutAboutToBeChanged, 
&proxy, [&proxy, &persistentIndex, &gotLayoutAboutToBeChanged]
-+    {
-+        gotLayoutAboutToBeChanged = true;
-+        persistentIndex = proxy.match(proxy.index(0, 0), Qt::DisplayRole, 
"5", 1, Qt::MatchRecursive).first();
-+    });
-+
-+    QObject::connect(&proxy, &QAbstractItemModel::layoutChanged, &proxy, 
[&proxy, &persistentIndex, &sourcePersistentIndex, &gotLayoutChanged]
-+    {
-+        gotLayoutChanged = true;
-+        QCOMPARE(QModelIndex(persistentIndex), 
proxy.mapFromSource(sourcePersistentIndex));
-+    });
-+
-+    ModelChangeChildrenLayoutsCommand layoutChangeCommand(&model, 0);
-+
-+    layoutChangeCommand.setAncestorRowNumbers(QList<int>{0, 0, 0});
-+    layoutChangeCommand.setSecondAncestorRowNumbers(QList<int>{0, 0});
-+
-+    layoutChangeCommand.doCommand();
-+
-+    QVERIFY(gotLayoutAboutToBeChanged);
-+    QVERIFY(gotLayoutChanged);
-+    QVERIFY(persistentIndex.isValid());
-+}
-+
- QTEST_MAIN(tst_QIdentityProxyModel)
- #include "tst_qidentityproxymodel.moc"
--- 
-2.7.4
-

diff --git a/dev-qt/qtcore/files/qtcore-5.7.1-qsfpm-1.patch 
b/dev-qt/qtcore/files/qtcore-5.7.1-qsfpm-1.patch
deleted file mode 100644
index 9edbe18..0000000
--- a/dev-qt/qtcore/files/qtcore-5.7.1-qsfpm-1.patch
+++ /dev/null
@@ -1,252 +0,0 @@
-From 3bd0fd8f97e7a33a874929a383a42e6c710bfff3 Mon Sep 17 00:00:00 2001
-From: Stephen Kelly <[email protected]>
-Date: Sat, 17 Dec 2016 06:20:06 +0000
-Subject: [PATCH] QSFPM: Fix handling of source model layout change
-
-In sourceLayoutAboutToBeChanged the source model update is ignored if
-the affected parents are filtered out anyway.  The same logic is
-attempted in the sourceLayoutChanged slot, but there the early-return
-logic is applied too late - the mapping is cleared before performing the
-early-return.  Because pointers into the mapping are used in the
-internalPointer of QModelIndexes in this class, persistent indexes used
-later will segfault when attempting to dereference it.
-
-Additionally, if a parent becomes invalid as a result of the
-layoutChange, it would be filtered out by the condition in the loop,
-resulting in a different result in the comparison of emptiness of the
-parents container.
-
-Fix that by persisting the parent's container, and performing the test
-for early-return before clearing the mapping.
-
-Task-number: QTBUG-47711
-Task-number: QTBUG-32981
-Change-Id: If45e8a1c97d39454160f52041bc9ae7e337dce97
-Reviewed-by: David Faure <[email protected]>
----
- src/corelib/itemmodels/qsortfilterproxymodel.cpp   |  31 ++---
- .../tst_qsortfilterproxymodel.cpp                  | 126 +++++++++++++++++++++
- 2 files changed, 137 insertions(+), 20 deletions(-)
-
-diff --git a/src/corelib/itemmodels/qsortfilterproxymodel.cpp 
b/src/corelib/itemmodels/qsortfilterproxymodel.cpp
-index b0ddfa8..3331521 100644
---- a/src/corelib/itemmodels/qsortfilterproxymodel.cpp
-+++ b/src/corelib/itemmodels/qsortfilterproxymodel.cpp
-@@ -171,6 +171,7 @@ public:
-     QRowsRemoval itemsBeingRemoved;
- 
-     QModelIndexPairList saved_persistent_indexes;
-+    QList<QPersistentModelIndex> saved_layoutChange_parents;
- 
-     QHash<QModelIndex, Mapping *>::const_iterator create_mapping(
-         const QModelIndex &source_parent) const;
-@@ -1331,23 +1332,23 @@ void 
QSortFilterProxyModelPrivate::_q_sourceLayoutAboutToBeChanged(const QList<Q
-     Q_UNUSED(hint); // We can't forward Hint because we might filter 
additional rows or columns
-     saved_persistent_indexes.clear();
- 
--    QList<QPersistentModelIndex> parents;
-+    saved_layoutChange_parents.clear();
-     for (const QPersistentModelIndex &parent : sourceParents) {
-         if (!parent.isValid()) {
--            parents << QPersistentModelIndex();
-+            saved_layoutChange_parents << QPersistentModelIndex();
-             continue;
-         }
-         const QModelIndex mappedParent = q->mapFromSource(parent);
-         // Might be filtered out.
-         if (mappedParent.isValid())
--            parents << mappedParent;
-+            saved_layoutChange_parents << mappedParent;
-     }
- 
-     // All parents filtered out.
--    if (!sourceParents.isEmpty() && parents.isEmpty())
-+    if (!sourceParents.isEmpty() && saved_layoutChange_parents.isEmpty())
-         return;
- 
--    emit q->layoutAboutToBeChanged(parents);
-+    emit q->layoutAboutToBeChanged(saved_layoutChange_parents);
-     if (persistent.indexes.isEmpty())
-         return;
- 
-@@ -1359,6 +1360,9 @@ void 
QSortFilterProxyModelPrivate::_q_sourceLayoutChanged(const QList<QPersisten
-     Q_Q(QSortFilterProxyModel);
-     Q_UNUSED(hint); // We can't forward Hint because we might filter 
additional rows or columns
- 
-+    if (!sourceParents.isEmpty() && saved_layoutChange_parents.isEmpty())
-+        return;
-+
-     // Optimize: We only actually have to clear the mapping related to the 
contents of
-     // sourceParents, not everything.
-     qDeleteAll(source_index_mapping);
-@@ -1373,21 +1377,8 @@ void 
QSortFilterProxyModelPrivate::_q_sourceLayoutChanged(const QList<QPersisten
-         source_index_mapping.clear();
-     }
- 
--    QList<QPersistentModelIndex> parents;
--    for (const QPersistentModelIndex &parent : sourceParents) {
--        if (!parent.isValid()) {
--            parents << QPersistentModelIndex();
--            continue;
--        }
--        const QModelIndex mappedParent = q->mapFromSource(parent);
--        if (mappedParent.isValid())
--            parents << mappedParent;
--    }
--
--    if (!sourceParents.isEmpty() && parents.isEmpty())
--        return;
--
--    emit q->layoutChanged(parents);
-+    emit q->layoutChanged(saved_layoutChange_parents);
-+    saved_layoutChange_parents.clear();
- }
- 
- void QSortFilterProxyModelPrivate::_q_sourceRowsAboutToBeInserted(
-diff --git 
a/tests/auto/corelib/itemmodels/qsortfilterproxymodel/tst_qsortfilterproxymodel.cpp
 
b/tests/auto/corelib/itemmodels/qsortfilterproxymodel/tst_qsortfilterproxymodel.cpp
-index 38e3c68..6b98d9f 100644
---- 
a/tests/auto/corelib/itemmodels/qsortfilterproxymodel/tst_qsortfilterproxymodel.cpp
-+++ 
b/tests/auto/corelib/itemmodels/qsortfilterproxymodel/tst_qsortfilterproxymodel.cpp
-@@ -145,6 +145,8 @@ private slots:
-     void canDropMimeData();
-     void filterHint();
- 
-+    void sourceLayoutChangeLeavesValidPersistentIndexes();
-+
- protected:
-     void buildHierarchy(const QStringList &data, QAbstractItemModel *model);
-     void checkHierarchy(const QStringList &data, const QAbstractItemModel 
*model);
-@@ -4181,5 +4183,129 @@ void tst_QSortFilterProxyModel::filterHint()
-              QAbstractItemModel::NoLayoutChangeHint);
- }
- 
-+/**
-+
-+  Creates a model where each item has one child, to a set depth,
-+  and the last item has no children.  For a model created with
-+  setDepth(4):
-+
-+    - 1
-+    - - 2
-+    - - - 3
-+    - - - - 4
-+*/
-+class StepTreeModel : public QAbstractItemModel
-+{
-+    Q_OBJECT
-+public:
-+    StepTreeModel(QObject * parent = 0)
-+        : QAbstractItemModel(parent), m_depth(0) {}
-+
-+    int columnCount(const QModelIndex& = QModelIndex()) const override { 
return 1; }
-+
-+    int rowCount(const QModelIndex& parent = QModelIndex()) const override
-+    {
-+        quintptr parentId = (parent.isValid()) ? parent.internalId() : 0;
-+        return (parentId < m_depth) ? 1 : 0;
-+    }
-+
-+    QVariant data(const QModelIndex & index, int role = Qt::DisplayRole) 
const override
-+    {
-+        if (role != Qt::DisplayRole)
-+            return QVariant();
-+
-+        return QString::number(index.internalId());
-+    }
-+
-+    QModelIndex index(int, int, const QModelIndex& parent = QModelIndex()) 
const override
-+    {
-+        quintptr parentId = (parent.isValid()) ? parent.internalId() : 0;
-+        if (parentId >= m_depth)
-+            return QModelIndex();
-+
-+        return createIndex(0, 0, parentId + 1);
-+    }
-+
-+    QModelIndex parent(const QModelIndex& index) const override
-+    {
-+        if (index.internalId() == 0)
-+            return QModelIndex();
-+
-+        return createIndex(0, 0, index.internalId() - 1);
-+    }
-+
-+    void setDepth(quintptr depth)
-+    {
-+        int parentIdWithLayoutChange = (m_depth < depth) ? m_depth : depth;
-+
-+        QList<QPersistentModelIndex> parentsOfLayoutChange;
-+        parentsOfLayoutChange.push_back(createIndex(0, 0, 
parentIdWithLayoutChange));
-+
-+        layoutAboutToBeChanged(parentsOfLayoutChange);
-+
-+        auto existing = persistentIndexList();
-+
-+        QList<QModelIndex> updated;
-+
-+        for (auto idx : existing) {
-+            if (indexDepth(idx) <= depth)
-+                updated.push_back(idx);
-+            else
-+                updated.push_back({});
-+        }
-+
-+        m_depth = depth;
-+
-+        changePersistentIndexList(existing, updated);
-+
-+        layoutChanged(parentsOfLayoutChange);
-+    }
-+
-+private:
-+    static quintptr indexDepth(QModelIndex const& index)
-+    {
-+        return (index.isValid()) ? 1 + indexDepth(index.parent()) : 0;
-+    }
-+
-+private:
-+    quintptr m_depth;
-+};
-+
-+void 
tst_QSortFilterProxyModel::sourceLayoutChangeLeavesValidPersistentIndexes()
-+{
-+    StepTreeModel model;
-+    Q_SET_OBJECT_NAME(model);
-+    model.setDepth(4);
-+
-+    QSortFilterProxyModel proxy1;
-+    proxy1.setSourceModel(&model);
-+    Q_SET_OBJECT_NAME(proxy1);
-+
-+    proxy1.setFilterRegExp("1|2");
-+
-+    // The current state of things:
-+    //  model         proxy
-+    //   - 1           - 1
-+    //   - - 2         - - 2
-+    //   - - - 3
-+    //   - - - - 4
-+
-+    // The setDepth call below removes '4' with a layoutChanged call.
-+    // Because the proxy filters that out anyway, the proxy doesn't need
-+    // to emit any signals or update persistent indexes.
-+
-+    QPersistentModelIndex persistentIndex = proxy1.index(0, 0, 
proxy1.index(0, 0));
-+
-+    model.setDepth(3);
-+
-+    // Calling parent() causes the internalPointer to be used.
-+    // Before fixing QTBUG-47711, that could be a dangling pointer.
-+    // The use of qDebug here makes sufficient use of the heap to
-+    // cause corruption at runtime with normal use on linux (before
-+    // the fix). valgrind confirms the fix.
-+    qDebug() << persistentIndex.parent();
-+    QVERIFY(persistentIndex.parent().isValid());
-+}
-+
- QTEST_MAIN(tst_QSortFilterProxyModel)
- #include "tst_qsortfilterproxymodel.moc"
--- 
-2.7.4
-
-

diff --git a/dev-qt/qtcore/files/qtcore-5.7.1-qsfpm-2.patch 
b/dev-qt/qtcore/files/qtcore-5.7.1-qsfpm-2.patch
deleted file mode 100644
index 9736496..0000000
--- a/dev-qt/qtcore/files/qtcore-5.7.1-qsfpm-2.patch
+++ /dev/null
@@ -1,195 +0,0 @@
-From 0874861bcc70313c343aba5e5566ed30b69eed1c Mon Sep 17 00:00:00 2001
-From: Stephen Kelly <[email protected]>
-Date: Mon, 19 Dec 2016 21:13:57 +0000
-Subject: [PATCH] QSFPM: Remove data manipulation from move handlers
-
-Similar to the fix in the parent commit, incorrect updating of the
-internal data structures during layout changes can lead to dangling
-pointers being dereferenced later.  Moves are treated as layoutChanges
-by this proxy by forwarding to the appropriate method.  However, data is
-incorrectly cleared prior to that forwarding.  Remove that, and let the
-layoutChange handling take appropriate action.
-
-Change-Id: Iee951e37152328a4e6a5fb8e5385c32a2fe4c0bd
-Reviewed-by: David Faure <[email protected]>
----
- src/corelib/itemmodels/qsortfilterproxymodel.cpp   | 67 ++++------------------
- .../tst_qsortfilterproxymodel.cpp                  | 46 +++++++++++++++
- 2 files changed, 58 insertions(+), 55 deletions(-)
-
-diff --git a/src/corelib/itemmodels/qsortfilterproxymodel.cpp 
b/src/corelib/itemmodels/qsortfilterproxymodel.cpp
-index 3331521..226a240 100644
---- a/src/corelib/itemmodels/qsortfilterproxymodel.cpp
-+++ b/src/corelib/itemmodels/qsortfilterproxymodel.cpp
-@@ -1418,49 +1418,27 @@ void 
QSortFilterProxyModelPrivate::_q_sourceRowsRemoved(
- void QSortFilterProxyModelPrivate::_q_sourceRowsAboutToBeMoved(
-     const QModelIndex &sourceParent, int /* sourceStart */, int /* sourceEnd 
*/, const QModelIndex &destParent, int /* dest */)
- {
--    Q_Q(QSortFilterProxyModel);
-     // Because rows which are contiguous in the source model might not be 
contiguous
-     // in the proxy due to sorting, the best thing we can do here is be 
specific about what
-     // parents are having their children changed.
-     // Optimize: Emit move signals if the proxy is not sorted. Will need to 
account for rows
-     // being filtered out though.
- 
--    saved_persistent_indexes.clear();
--
-     QList<QPersistentModelIndex> parents;
--    parents << q->mapFromSource(sourceParent);
-+    parents << sourceParent;
-     if (sourceParent != destParent)
--      parents << q->mapFromSource(destParent);
--    emit q->layoutAboutToBeChanged(parents);
--    if (persistent.indexes.isEmpty())
--        return;
--    saved_persistent_indexes = store_persistent_indexes();
-+        parents << destParent;
-+    _q_sourceLayoutAboutToBeChanged(parents, 
QAbstractItemModel::NoLayoutChangeHint);
- }
- 
- void QSortFilterProxyModelPrivate::_q_sourceRowsMoved(
-     const QModelIndex &sourceParent, int /* sourceStart */, int /* sourceEnd 
*/, const QModelIndex &destParent, int /* dest */)
- {
--    Q_Q(QSortFilterProxyModel);
--
--    // Optimize: We only need to clear and update the persistent indexes 
which are children of
--    // sourceParent or destParent
--    qDeleteAll(source_index_mapping);
--    source_index_mapping.clear();
--
--    update_persistent_indexes(saved_persistent_indexes);
--    saved_persistent_indexes.clear();
--
--    if (dynamic_sortfilter && update_source_sort_column()) {
--        //update_source_sort_column might have created wrong mapping so we 
have to clear it again
--        qDeleteAll(source_index_mapping);
--        source_index_mapping.clear();
--    }
--
-     QList<QPersistentModelIndex> parents;
--    parents << q->mapFromSource(sourceParent);
-+    parents << sourceParent;
-     if (sourceParent != destParent)
--      parents << q->mapFromSource(destParent);
--    emit q->layoutChanged(parents);
-+        parents << destParent;
-+    _q_sourceLayoutChanged(parents, QAbstractItemModel::NoLayoutChangeHint);
- }
- 
- void QSortFilterProxyModelPrivate::_q_sourceColumnsAboutToBeInserted(
-@@ -1522,42 +1500,21 @@ void 
QSortFilterProxyModelPrivate::_q_sourceColumnsRemoved(
- void QSortFilterProxyModelPrivate::_q_sourceColumnsAboutToBeMoved(
-     const QModelIndex &sourceParent, int /* sourceStart */, int /* sourceEnd 
*/, const QModelIndex &destParent, int /* dest */)
- {
--    Q_Q(QSortFilterProxyModel);
--
--    saved_persistent_indexes.clear();
--
-     QList<QPersistentModelIndex> parents;
--    parents << q->mapFromSource(sourceParent);
-+    parents << sourceParent;
-     if (sourceParent != destParent)
--      parents << q->mapFromSource(destParent);
--    emit q->layoutAboutToBeChanged(parents);
--
--    if (persistent.indexes.isEmpty())
--        return;
--    saved_persistent_indexes = store_persistent_indexes();
-+        parents << destParent;
-+    _q_sourceLayoutAboutToBeChanged(parents, 
QAbstractItemModel::NoLayoutChangeHint);
- }
- 
- void QSortFilterProxyModelPrivate::_q_sourceColumnsMoved(
-     const QModelIndex &sourceParent, int /* sourceStart */, int /* sourceEnd 
*/, const QModelIndex &destParent, int /* dest */)
- {
--    Q_Q(QSortFilterProxyModel);
--
--    qDeleteAll(source_index_mapping);
--    source_index_mapping.clear();
--
--    update_persistent_indexes(saved_persistent_indexes);
--    saved_persistent_indexes.clear();
--
--    if (dynamic_sortfilter && update_source_sort_column()) {
--        qDeleteAll(source_index_mapping);
--        source_index_mapping.clear();
--    }
--
-     QList<QPersistentModelIndex> parents;
--    parents << q->mapFromSource(sourceParent);
-+    parents << sourceParent;
-     if (sourceParent != destParent)
--      parents << q->mapFromSource(destParent);
--    emit q->layoutChanged(parents);
-+        parents << destParent;
-+    _q_sourceLayoutChanged(parents, QAbstractItemModel::NoLayoutChangeHint);
- }
- 
- /*!
-diff --git 
a/tests/auto/corelib/itemmodels/qsortfilterproxymodel/tst_qsortfilterproxymodel.cpp
 
b/tests/auto/corelib/itemmodels/qsortfilterproxymodel/tst_qsortfilterproxymodel.cpp
-index 6b98d9f..7b6c470 100644
---- 
a/tests/auto/corelib/itemmodels/qsortfilterproxymodel/tst_qsortfilterproxymodel.cpp
-+++ 
b/tests/auto/corelib/itemmodels/qsortfilterproxymodel/tst_qsortfilterproxymodel.cpp
-@@ -146,6 +146,7 @@ private slots:
-     void filterHint();
- 
-     void sourceLayoutChangeLeavesValidPersistentIndexes();
-+    void rowMoveLeavesValidPersistentIndexes();
- 
- protected:
-     void buildHierarchy(const QStringList &data, QAbstractItemModel *model);
-@@ -4307,5 +4308,50 @@ void 
tst_QSortFilterProxyModel::sourceLayoutChangeLeavesValidPersistentIndexes()
-     QVERIFY(persistentIndex.parent().isValid());
- }
- 
-+void tst_QSortFilterProxyModel::rowMoveLeavesValidPersistentIndexes()
-+{
-+    DynamicTreeModel model;
-+    Q_SET_OBJECT_NAME(model);
-+
-+    QList<int> ancestors;
-+    for (auto i = 0; i < 5; ++i)
-+    {
-+        Q_UNUSED(i);
-+        ModelInsertCommand insertCommand(&model);
-+        insertCommand.setAncestorRowNumbers(ancestors);
-+        insertCommand.setStartRow(0);
-+        insertCommand.setEndRow(0);
-+        insertCommand.doCommand();
-+        ancestors.push_back(0);
-+    }
-+
-+    QSortFilterProxyModel proxy1;
-+    proxy1.setSourceModel(&model);
-+    Q_SET_OBJECT_NAME(proxy1);
-+
-+    proxy1.setFilterRegExp("1|2");
-+
-+    auto item5 = model.match(model.index(0, 0), Qt::DisplayRole, "5", 1, 
Qt::MatchRecursive).first();
-+    auto item3 = model.match(model.index(0, 0), Qt::DisplayRole, "3", 1, 
Qt::MatchRecursive).first();
-+
-+    Q_ASSERT(item5.isValid());
-+    Q_ASSERT(item3.isValid());
-+
-+    QPersistentModelIndex persistentIndex = proxy1.match(proxy1.index(0, 0), 
Qt::DisplayRole, "2", 1, Qt::MatchRecursive).first();
-+
-+    ModelMoveCommand moveCommand(&model, 0);
-+    moveCommand.setAncestorRowNumbers(QList<int>{0, 0, 0, 0});
-+    moveCommand.setStartRow(0);
-+    moveCommand.setEndRow(0);
-+    moveCommand.setDestRow(0);
-+    moveCommand.setDestAncestors(QList<int>{0, 0, 0});
-+    moveCommand.doCommand();
-+
-+    // Calling parent() causes the internalPointer to be used.
-+    // Before fixing QTBUG-47711 (moveRows case), that could be
-+    // a dangling pointer.
-+    QVERIFY(persistentIndex.parent().isValid());
-+}
-+
- QTEST_MAIN(tst_QSortFilterProxyModel)
- #include "tst_qsortfilterproxymodel.moc"
--- 
-2.7.4
-
-

diff --git a/dev-qt/qtcore/files/qtcore-5.9.3-avx.patch 
b/dev-qt/qtcore/files/qtcore-5.9.3-avx.patch
deleted file mode 100644
index be18433..0000000
--- a/dev-qt/qtcore/files/qtcore-5.9.3-avx.patch
+++ /dev/null
@@ -1,69 +0,0 @@
-From d813c66bfcfac1837814ec4d174d0389172f0d4c Mon Sep 17 00:00:00 2001
-From: Thiago Macieira <[email protected]>
-Date: Tue, 25 Apr 2017 12:02:09 -0300
-Subject: Fix the build when AVX2 is enabled but __F16C__ isn't defined
-
-If -mavx2 is used, __AVX2__ is defined, which enables the F16C code
-after commit 280e321e52fd4e86545f3f0d4bd4e047786a897e, but that was
-wrong since we aren't allowed to use the F16C intrinsics with either
-Clang or GCC (we can only do that with GCC 4.9 and Clang 4.8, and only
-with an __attribute__ decoration).
-
-With ICC and MSVC, we are allowed to use the intrinsics, but the
-#include was missing.
-
-[ChangeLog][QtCore] Fixed a compilation issue with qfloat16 if AVX2
-support is enabled in the compiler. Since all processors that support
-AVX2 also support F16C, for GCC and Clang it is recommended to either
-add -mf16c to your build or to use the corresponding -march= switch.
-
-Task-number: QTBUG-64529
-Change-Id: I84e363d735b443cb9beefffd14b8ac1fd4baa978
-Reviewed-by: Allan Sandfeld Jensen <[email protected]>
----
- src/corelib/global/qfloat16.h | 15 ++++++++++++---
- 1 file changed, 12 insertions(+), 3 deletions(-)
-
-diff --git a/src/corelib/global/qfloat16.h b/src/corelib/global/qfloat16.h
-index 89a62a93db..a0aa9496b4 100644
---- a/src/corelib/global/qfloat16.h
-+++ b/src/corelib/global/qfloat16.h
-@@ -44,7 +44,16 @@
- #include <QtCore/qmetatype.h>
- #include <string.h>
- 
--#if defined __F16C__
-+#if defined(QT_COMPILER_SUPPORTS_F16C) && defined(__AVX2__) && 
!defined(__F16C__)
-+// All processors that support AVX2 do support F16C too. That doesn't mean
-+// we're allowed to use the intrinsics directly, so we'll do it only for
-+// the Intel and Microsoft's compilers.
-+#  if defined(Q_CC_INTEL) || defined(Q_CC_MSVC)
-+#    define __F16C__        1
-+# endif
-+#endif
-+
-+#if defined(QT_COMPILER_SUPPORTS_F16C) && defined(__F16C__)
- #include <immintrin.h>
- #endif
- 
-@@ -116,7 +125,7 @@ QT_WARNING_DISABLE_CLANG("-Wc99-extensions")
- QT_WARNING_DISABLE_GCC("-Wold-style-cast")
- inline qfloat16::qfloat16(float f) Q_DECL_NOTHROW
- {
--#if defined(QT_COMPILER_SUPPORTS_F16C) && (defined(__F16C__) || 
defined(__AVX2__))
-+#if defined(QT_COMPILER_SUPPORTS_F16C) && defined(__F16C__)
-     __m128 packsingle = _mm_set_ss(f);
-     __m128i packhalf = _mm_cvtps_ph(packsingle, 0);
-     b16 = _mm_extract_epi16(packhalf, 0);
-@@ -134,7 +143,7 @@ QT_WARNING_POP
- 
- inline qfloat16::operator float() const Q_DECL_NOTHROW
- {
--#if defined(QT_COMPILER_SUPPORTS_F16C) && (defined(__F16C__) || 
defined(__AVX2__))
-+#if defined(QT_COMPILER_SUPPORTS_F16C) && defined(__F16C__)
-     __m128i packhalf = _mm_cvtsi32_si128(b16);
-     __m128 packsingle = _mm_cvtph_ps(packhalf);
-     return _mm_cvtss_f32(packsingle);
--- 
-cgit v1.1-6-g87c4
-

diff --git a/dev-qt/qtcore/files/qtcore-5.9.3-musl-iconv.patch 
b/dev-qt/qtcore/files/qtcore-5.9.3-musl-iconv.patch
deleted file mode 100644
index b738f73..0000000
--- a/dev-qt/qtcore/files/qtcore-5.9.3-musl-iconv.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -Naur qtbase-opensource-src-5.9.3.orig/src/corelib/codecs/qiconvcodec.cpp 
qtbase-opensource-src-5.9.3/src/corelib/codecs/qiconvcodec.cpp
---- qtbase-opensource-src-5.9.3.orig/src/corelib/codecs/qiconvcodec.cpp        
2017-11-15 21:15:28.000000000 -0800
-+++ qtbase-opensource-src-5.9.3/src/corelib/codecs/qiconvcodec.cpp     
2017-11-28 22:24:13.734884247 -0800
-@@ -63,7 +63,7 @@
- #elif defined(Q_OS_AIX)
- #  define NO_BOM
- #  define UTF16 "UCS-2"
--#elif defined(Q_OS_FREEBSD)
-+#elif defined(Q_OS_FREEBSD) || (defined(Q_OS_LINUX) && !defined(__GLIBC__))
- #  define NO_BOM
- #  if Q_BYTE_ORDER == Q_BIG_ENDIAN
- #    define UTF16 "UTF-16BE"

diff --git a/dev-qt/qtcore/files/qtcore-clang-libc++abi.patch 
b/dev-qt/qtcore/files/qtcore-clang-libc++abi.patch
deleted file mode 100644
index 832f08b..0000000
--- a/dev-qt/qtcore/files/qtcore-clang-libc++abi.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/mkspecs/linux-clang-libc++/qmake.conf.orig 
b/mkspecs/linux-clang-libc++/qmake.conf
-index c5b0b57..97256f0 100644
---- a/mkspecs/linux-clang-libc++/qmake.conf.orig
-+++ b/mkspecs/linux-clang-libc++/qmake.conf
-@@ -5,6 +5,6 @@
- include(../linux-clang/qmake.conf)
- 
- QMAKE_CXXFLAGS    += -stdlib=libc++
--QMAKE_LFLAGS      += -stdlib=libc++
-+QMAKE_LFLAGS      += -stdlib=libc++ -lc++abi
- 
- load(qt_config)

diff --git a/dev-qt/qtcore/metadata.xml b/dev-qt/qtcore/metadata.xml
index 34c0121..668f6ab 100644
--- a/dev-qt/qtcore/metadata.xml
+++ b/dev-qt/qtcore/metadata.xml
@@ -15,7 +15,7 @@
        </use>
        <upstream>
                <bugs-to>https://bugreports.qt.io/</bugs-to>
-               <doc>http://doc.qt.io/</doc>
+               <doc>https://doc.qt.io/</doc>
        </upstream>
        <slots>
                <subslots>

diff --git a/dev-qt/qtcore/qtcore-4.8.7-r3.ebuild 
b/dev-qt/qtcore/qtcore-4.8.7-r4.ebuild
similarity index 96%
rename from dev-qt/qtcore/qtcore-4.8.7-r3.ebuild
rename to dev-qt/qtcore/qtcore-4.8.7-r4.ebuild
index c590fe9..b537661 100644
--- a/dev-qt/qtcore/qtcore-4.8.7-r3.ebuild
+++ b/dev-qt/qtcore/qtcore-4.8.7-r4.ebuild
@@ -7,7 +7,7 @@ inherit qt4-build-multilib
 DESCRIPTION="Cross-platform application development framework"
 
 if [[ ${QT4_BUILD_TYPE} == release ]]; then
-       KEYWORDS="amd64 ~arm ia64 ~mips ppc sparc x86"
+       KEYWORDS="amd64 arm ia64 ~mips ppc sparc x86"
 fi
 
 IUSE="+glib iconv icu libressl qt3support ssl"
@@ -16,7 +16,7 @@ DEPEND="
        >=sys-libs/zlib-1.2.8-r1[${MULTILIB_USEDEP}]
        glib? ( dev-libs/glib:2[${MULTILIB_USEDEP}] )
        iconv? ( >=virtual/libiconv-0-r2[${MULTILIB_USEDEP}] )
-       icu? ( dev-libs/icu:=[${MULTILIB_USEDEP}] )
+       icu? ( <dev-libs/icu-59:=[${MULTILIB_USEDEP}] )
        ssl? (
                !libressl? ( >=dev-libs/openssl-1.0.1h-r2:0[${MULTILIB_USEDEP}] 
)
                libressl? ( dev-libs/libressl:=[${MULTILIB_USEDEP}] )

diff --git a/dev-qt/qtcore/qtcore-5.7.1-r3.ebuild 
b/dev-qt/qtcore/qtcore-5.7.1-r3.ebuild
deleted file mode 100644
index b8f760e..0000000
--- a/dev-qt/qtcore/qtcore-5.7.1-r3.ebuild
+++ /dev/null
@@ -1,49 +0,0 @@
-# Copyright 1999-2017 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-QT5_MODULE="qtbase"
-inherit qt5-build
-
-DESCRIPTION="Cross-platform application development framework"
-
-if [[ ${QT5_BUILD_TYPE} == release ]]; then
-       KEYWORDS="amd64 arm ppc x86"
-fi
-
-IUSE="icu systemd"
-
-DEPEND="
-       dev-libs/double-conversion:=
-       dev-libs/glib:2
-       >=dev-libs/libpcre-8.38[pcre16,unicode]
-       >=sys-libs/zlib-1.2.5
-       virtual/libiconv
-       icu? ( dev-libs/icu:= )
-       systemd? ( sys-apps/systemd:= )
-"
-RDEPEND="${DEPEND}"
-
-PATCHES=(
-       "${FILESDIR}"/${PN}-5.6.2-plugins.patch
-       "${FILESDIR}"/${P}-qipm.patch
-       "${FILESDIR}"/${P}-qsfpm-{1,2}.patch
-       "${FILESDIR}/${PN}-5.5.1-musl-iconv.patch"
-)
-
-QT5_TARGET_SUBDIRS=(
-       src/tools/bootstrap
-       src/tools/moc
-       src/tools/rcc
-       src/corelib
-       src/tools/qlalr
-       doc
-)
-
-src_configure() {
-       local myconf=(
-               $(qt_use icu)
-               $(qt_use systemd journald)
-       )
-       qt5-build_src_configure
-}

Reply via email to