mirror of
https://github.com/void-linux/void-packages.git
synced 2025-06-05 06:33:50 +02:00
qt6-base: update to 6.8.0.
This commit is contained in:
parent
5f168b6c1a
commit
ca530055d6
2 changed files with 3 additions and 141 deletions
|
@ -1,138 +0,0 @@
|
||||||
diff --git a/src/network/access/qhttp2protocolhandler.cpp b/src/network/access/qhttp2protocolhandler.cpp
|
|
||||||
index 0abd99b9bc2..3631b13dc85 100644
|
|
||||||
--- a/src/network/access/qhttp2protocolhandler.cpp
|
|
||||||
+++ b/src/network/access/qhttp2protocolhandler.cpp
|
|
||||||
@@ -303,12 +303,12 @@ bool QHttp2ProtocolHandler::sendRequest()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
- if (!prefaceSent && !sendClientPreface())
|
|
||||||
- return false;
|
|
||||||
-
|
|
||||||
if (!requests.size())
|
|
||||||
return true;
|
|
||||||
|
|
||||||
+ if (!prefaceSent && !sendClientPreface())
|
|
||||||
+ return false;
|
|
||||||
+
|
|
||||||
m_channel->state = QHttpNetworkConnectionChannel::WritingState;
|
|
||||||
// Check what was promised/pushed, maybe we do not have to send a request
|
|
||||||
// and have a response already?
|
|
||||||
diff --git a/src/network/access/qhttpnetworkconnectionchannel.cpp b/src/network/access/qhttpnetworkconnectionchannel.cpp
|
|
||||||
index 6766989690c..1e4161d1fdf 100644
|
|
||||||
--- a/src/network/access/qhttpnetworkconnectionchannel.cpp
|
|
||||||
+++ b/src/network/access/qhttpnetworkconnectionchannel.cpp
|
|
||||||
@@ -209,6 +209,10 @@ void QHttpNetworkConnectionChannel::abort()
|
|
||||||
bool QHttpNetworkConnectionChannel::sendRequest()
|
|
||||||
{
|
|
||||||
Q_ASSERT(protocolHandler);
|
|
||||||
+ if (waitingForPotentialAbort) {
|
|
||||||
+ needInvokeSendRequest = true;
|
|
||||||
+ return false; // this return value is unused
|
|
||||||
+ }
|
|
||||||
return protocolHandler->sendRequest();
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -221,21 +225,28 @@ bool QHttpNetworkConnectionChannel::sendRequest()
|
|
||||||
void QHttpNetworkConnectionChannel::sendRequestDelayed()
|
|
||||||
{
|
|
||||||
QMetaObject::invokeMethod(this, [this] {
|
|
||||||
- Q_ASSERT(protocolHandler);
|
|
||||||
if (reply)
|
|
||||||
- protocolHandler->sendRequest();
|
|
||||||
+ sendRequest();
|
|
||||||
}, Qt::ConnectionType::QueuedConnection);
|
|
||||||
}
|
|
||||||
|
|
||||||
void QHttpNetworkConnectionChannel::_q_receiveReply()
|
|
||||||
{
|
|
||||||
Q_ASSERT(protocolHandler);
|
|
||||||
+ if (waitingForPotentialAbort) {
|
|
||||||
+ needInvokeReceiveReply = true;
|
|
||||||
+ return;
|
|
||||||
+ }
|
|
||||||
protocolHandler->_q_receiveReply();
|
|
||||||
}
|
|
||||||
|
|
||||||
void QHttpNetworkConnectionChannel::_q_readyRead()
|
|
||||||
{
|
|
||||||
Q_ASSERT(protocolHandler);
|
|
||||||
+ if (waitingForPotentialAbort) {
|
|
||||||
+ needInvokeReadyRead = true;
|
|
||||||
+ return;
|
|
||||||
+ }
|
|
||||||
protocolHandler->_q_readyRead();
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -1239,7 +1250,18 @@ void QHttpNetworkConnectionChannel::_q_encrypted()
|
|
||||||
if (!h2RequestsToSend.isEmpty()) {
|
|
||||||
// Similar to HTTP/1.1 counterpart below:
|
|
||||||
const auto &pair = std::as_const(h2RequestsToSend).first();
|
|
||||||
+ waitingForPotentialAbort = true;
|
|
||||||
emit pair.second->encrypted();
|
|
||||||
+
|
|
||||||
+ // We don't send or handle any received data until any effects from
|
|
||||||
+ // emitting encrypted() have been processed. This is necessary
|
|
||||||
+ // because the user may have called abort(). We may also abort the
|
|
||||||
+ // whole connection if the request has been aborted and there is
|
|
||||||
+ // no more requests to send.
|
|
||||||
+ QMetaObject::invokeMethod(this,
|
|
||||||
+ &QHttpNetworkConnectionChannel::checkAndResumeCommunication,
|
|
||||||
+ Qt::QueuedConnection);
|
|
||||||
+
|
|
||||||
// In case our peer has sent us its settings (window size, max concurrent streams etc.)
|
|
||||||
// let's give _q_receiveReply a chance to read them first ('invokeMethod', QueuedConnection).
|
|
||||||
}
|
|
||||||
@@ -1257,6 +1279,28 @@ void QHttpNetworkConnectionChannel::_q_encrypted()
|
|
||||||
QMetaObject::invokeMethod(connection, "_q_startNextRequest", Qt::QueuedConnection);
|
|
||||||
}
|
|
||||||
|
|
||||||
+
|
|
||||||
+void QHttpNetworkConnectionChannel::checkAndResumeCommunication()
|
|
||||||
+{
|
|
||||||
+ Q_ASSERT(connection->connectionType() == QHttpNetworkConnection::ConnectionTypeHTTP2
|
|
||||||
+ || connection->connectionType() == QHttpNetworkConnection::ConnectionTypeHTTP2Direct);
|
|
||||||
+
|
|
||||||
+ // Because HTTP/2 requires that we send a SETTINGS frame as the first thing we do, and respond
|
|
||||||
+ // to a SETTINGS frame with an ACK, we need to delay any handling until we can ensure that any
|
|
||||||
+ // effects from emitting encrypted() have been processed.
|
|
||||||
+ // This function is called after encrypted() was emitted, so check for changes.
|
|
||||||
+
|
|
||||||
+ if (!reply && h2RequestsToSend.isEmpty())
|
|
||||||
+ abort();
|
|
||||||
+ waitingForPotentialAbort = false;
|
|
||||||
+ if (needInvokeReadyRead)
|
|
||||||
+ _q_readyRead();
|
|
||||||
+ if (needInvokeReceiveReply)
|
|
||||||
+ _q_receiveReply();
|
|
||||||
+ if (needInvokeSendRequest)
|
|
||||||
+ sendRequest();
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
void QHttpNetworkConnectionChannel::requeueHttp2Requests()
|
|
||||||
{
|
|
||||||
const auto h2RequestsToSendCopy = std::exchange(h2RequestsToSend, {});
|
|
||||||
diff --git a/src/network/access/qhttpnetworkconnectionchannel_p.h b/src/network/access/qhttpnetworkconnectionchannel_p.h
|
|
||||||
index c42290feca4..061f20fd426 100644
|
|
||||||
--- a/src/network/access/qhttpnetworkconnectionchannel_p.h
|
|
||||||
+++ b/src/network/access/qhttpnetworkconnectionchannel_p.h
|
|
||||||
@@ -74,6 +74,10 @@ public:
|
|
||||||
QAbstractSocket *socket;
|
|
||||||
bool ssl;
|
|
||||||
bool isInitialized;
|
|
||||||
+ bool waitingForPotentialAbort = false;
|
|
||||||
+ bool needInvokeReceiveReply = false;
|
|
||||||
+ bool needInvokeReadyRead = false;
|
|
||||||
+ bool needInvokeSendRequest = false;
|
|
||||||
ChannelState state;
|
|
||||||
QHttpNetworkRequest request; // current request, only used for HTTP
|
|
||||||
QHttpNetworkReply *reply; // current reply for this request, only used for HTTP
|
|
||||||
@@ -146,6 +150,8 @@ public:
|
|
||||||
void closeAndResendCurrentRequest();
|
|
||||||
void resendCurrentRequest();
|
|
||||||
|
|
||||||
+ void checkAndResumeCommunication();
|
|
||||||
+
|
|
||||||
bool isSocketBusy() const;
|
|
||||||
bool isSocketWriting() const;
|
|
||||||
bool isSocketWaiting() const;
|
|
|
@ -2,8 +2,8 @@
|
||||||
#
|
#
|
||||||
# On update rebuild all pkg with qt6-base-private-devel
|
# On update rebuild all pkg with qt6-base-private-devel
|
||||||
pkgname=qt6-base
|
pkgname=qt6-base
|
||||||
version=6.7.2
|
version=6.8.1
|
||||||
revision=2
|
revision=1
|
||||||
build_style=cmake
|
build_style=cmake
|
||||||
configure_args="-DINSTALL_DATADIR=share/qt6
|
configure_args="-DINSTALL_DATADIR=share/qt6
|
||||||
-DINSTALL_ARCHDATADIR=lib${XBPS_TARGET_WORDSIZE}/qt6
|
-DINSTALL_ARCHDATADIR=lib${XBPS_TARGET_WORDSIZE}/qt6
|
||||||
|
@ -35,7 +35,7 @@ maintainer="John <me@johnnynator.dev>"
|
||||||
license="GPL-3.0-only WITH Qt-GPL-exception-1.0, LGPL-3.0-only, GPL-2.0-or-later"
|
license="GPL-3.0-only WITH Qt-GPL-exception-1.0, LGPL-3.0-only, GPL-2.0-or-later"
|
||||||
homepage="https://www.qt.io"
|
homepage="https://www.qt.io"
|
||||||
distfiles="https://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qtbase-everywhere-src-${version}.tar.xz"
|
distfiles="https://download.qt.io/official_releases/qt/${version%.*}/${version}/submodules/qtbase-everywhere-src-${version}.tar.xz"
|
||||||
checksum=c5f22a5e10fb162895ded7de0963328e7307611c688487b5d152c9ee64767599
|
checksum=40b14562ef3bd779bc0e0418ea2ae08fa28235f8ea6e8c0cb3bce1d6ad58dcaf
|
||||||
python_version=3
|
python_version=3
|
||||||
|
|
||||||
if [ "$CROSS_BUILD" ]; then
|
if [ "$CROSS_BUILD" ]; then
|
||||||
|
|
Loading…
Add table
Reference in a new issue