package/qt6: bump version to 6.7.3
For details see: https://code.qt.io/cgit/qt/qtreleasenotes.git/about/qt/6.7.3/release-note.md I have removed a couple of patches here, since they are included in this version: - CVE-2024-39936 (qtbase) - QTBUG-125066 Configure fails in qttools if PrintSupport is disabled (qttools) Signed-off-by: Roy Kollen Svendsen <roykollensvendsen@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
This commit is contained in:
committed by
Thomas Petazzoni
parent
e4005d9971
commit
e634be8906
@@ -5,7 +5,7 @@
|
||||
################################################################################
|
||||
|
||||
QT6_VERSION_MAJOR = 6.7
|
||||
QT6_VERSION = $(QT6_VERSION_MAJOR).2
|
||||
QT6_VERSION = $(QT6_VERSION_MAJOR).3
|
||||
QT6_SOURCE_TARBALL_PREFIX = everywhere-src
|
||||
QT6_SITE = https://download.qt.io/archive/qt/$(QT6_VERSION_MAJOR)/$(QT6_VERSION)/submodules
|
||||
|
||||
|
||||
@@ -1,247 +0,0 @@
|
||||
From fc1b8814f38c7d925d4590e9bdb16a02ca824025 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?M=C3=A5rten=20Nordheim?= <marten.nordheim@qt.io>
|
||||
Date: Tue, 25 Jun 2024 17:09:35 +0200
|
||||
Subject: [PATCH] HTTP2: Delay any communication until encrypted() can be
|
||||
responded to
|
||||
|
||||
We have the encrypted() signal that lets users do extra checks on the
|
||||
established connection. It is emitted as BlockingQueued, so the HTTP
|
||||
thread stalls until it is done emitting. Users can potentially call
|
||||
abort() on the QNetworkReply at that point, which is passed as a Queued
|
||||
call back to the HTTP thread. That means that any currently queued
|
||||
signal emission will be processed before the abort() call is processed.
|
||||
|
||||
In the case of HTTP2 it is a little special since it is multiplexed and
|
||||
the code is built to start requests as they are available. This means
|
||||
that, while the code worked fine for HTTP1, since one connection only
|
||||
has one request, it is not working for HTTP2, since we try to send more
|
||||
requests in-between the encrypted() signal and the abort() call.
|
||||
|
||||
This patch changes the code to delay any communication until the
|
||||
encrypted() signal has been emitted and processed, for HTTP2 only.
|
||||
It's done by adding a few booleans, both to know that we have to return
|
||||
early and so we can keep track of what events arose and what we need to
|
||||
resume once enough time has passed that any abort() call must have been
|
||||
processed.
|
||||
|
||||
Fixes: QTBUG-126610
|
||||
Pick-to: 6.5 6.2 5.15 5.12
|
||||
Change-Id: Ic25a600c278203256e35f541026f34a8783235ae
|
||||
Reviewed-by: Marc Mutz <marc.mutz@qt.io>
|
||||
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
|
||||
(cherry picked from commit b1e75376cc3adfc7da5502a277dfe9711f3e0536)
|
||||
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
||||
(cherry picked from commit 0fb43e4395da34d561814242a0186999e4956e28)
|
||||
|
||||
Upstream: https://github.com/qt/qtbase/commit/2b1e36e183ce75c224305c7a94457b92f7a5cf58
|
||||
Signed-off-by: Roy Kollen Svendsen <roykollensvendsen@gmail.com>
|
||||
---
|
||||
src/network/access/qhttp2protocolhandler.cpp | 6 +--
|
||||
.../access/qhttpnetworkconnectionchannel.cpp | 48 ++++++++++++++++++-
|
||||
.../access/qhttpnetworkconnectionchannel_p.h | 6 +++
|
||||
tests/auto/network/access/http2/tst_http2.cpp | 44 +++++++++++++++++
|
||||
4 files changed, 99 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/src/network/access/qhttp2protocolhandler.cpp b/src/network/access/qhttp2protocolhandler.cpp
|
||||
index 0abd99b9bc..3631b13dc8 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 6766989690..1e4161d1fd 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 c42290feca..061f20fd42 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;
|
||||
diff --git a/tests/auto/network/access/http2/tst_http2.cpp b/tests/auto/network/access/http2/tst_http2.cpp
|
||||
index 00efbc9832..c02e7b7b5b 100644
|
||||
--- a/tests/auto/network/access/http2/tst_http2.cpp
|
||||
+++ b/tests/auto/network/access/http2/tst_http2.cpp
|
||||
@@ -106,6 +106,8 @@ private slots:
|
||||
|
||||
void duplicateRequestsWithAborts();
|
||||
|
||||
+ void abortOnEncrypted();
|
||||
+
|
||||
protected slots:
|
||||
// Slots to listen to our in-process server:
|
||||
void serverStarted(quint16 port);
|
||||
@@ -1479,6 +1481,48 @@ void tst_Http2::duplicateRequestsWithAborts()
|
||||
QCOMPARE(finishedCount, ExpectedSuccessfulRequests);
|
||||
}
|
||||
|
||||
+void tst_Http2::abortOnEncrypted()
|
||||
+{
|
||||
+#if !QT_CONFIG(ssl)
|
||||
+ QSKIP("TLS support is needed for this test");
|
||||
+#else
|
||||
+ clearHTTP2State();
|
||||
+ serverPort = 0;
|
||||
+
|
||||
+ ServerPtr targetServer(newServer(defaultServerSettings, H2Type::h2Direct));
|
||||
+
|
||||
+ QMetaObject::invokeMethod(targetServer.data(), "startServer", Qt::QueuedConnection);
|
||||
+ runEventLoop();
|
||||
+
|
||||
+ nRequests = 1;
|
||||
+ nSentRequests = 0;
|
||||
+
|
||||
+ const auto url = requestUrl(H2Type::h2Direct);
|
||||
+ QNetworkRequest request(url);
|
||||
+ request.setAttribute(QNetworkRequest::Http2DirectAttribute, true);
|
||||
+
|
||||
+ std::unique_ptr<QNetworkReply> reply{manager->get(request)};
|
||||
+ reply->ignoreSslErrors();
|
||||
+ connect(reply.get(), &QNetworkReply::encrypted, reply.get(), [reply = reply.get()](){
|
||||
+ reply->abort();
|
||||
+ });
|
||||
+ connect(reply.get(), &QNetworkReply::errorOccurred, this, &tst_Http2::replyFinishedWithError);
|
||||
+
|
||||
+ runEventLoop();
|
||||
+ STOP_ON_FAILURE
|
||||
+
|
||||
+ QCOMPARE(nRequests, 0);
|
||||
+ QCOMPARE(reply->error(), QNetworkReply::OperationCanceledError);
|
||||
+
|
||||
+ const bool res = QTest::qWaitFor(
|
||||
+ [this, server = targetServer.get()]() {
|
||||
+ return serverGotSettingsACK || prefaceOK || nSentRequests > 0;
|
||||
+ },
|
||||
+ 500);
|
||||
+ QVERIFY(!res);
|
||||
+#endif // QT_CONFIG(ssl)
|
||||
+}
|
||||
+
|
||||
void tst_Http2::serverStarted(quint16 port)
|
||||
{
|
||||
serverPort = port;
|
||||
--
|
||||
2.46.0
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# Hash from: https://download.qt.io/official_releases/qt/6.7/6.7.2/submodules/qtbase-everywhere-src-6.7.2.tar.xz.sha256
|
||||
sha256 c5f22a5e10fb162895ded7de0963328e7307611c688487b5d152c9ee64767599 qtbase-everywhere-src-6.7.2.tar.xz
|
||||
# Hash from: https://download.qt.io/official_releases/qt/6.7/6.7.3/submodules/qtbase-everywhere-src-6.7.3.tar.xz.sha256
|
||||
sha256 8ccbb9ab055205ac76632c9eeddd1ed6fc66936fc56afc2ed0fd5d9e23da3097 qtbase-everywhere-src-6.7.3.tar.xz
|
||||
|
||||
# Hashes for license files
|
||||
sha256 e3ba223bb1423f0aad8c3dfce0fe3148db48926d41e6fbc3afbbf5ff9e1c89cb LICENSES/Apache-2.0.txt
|
||||
|
||||
@@ -10,9 +10,6 @@ QT6BASE_SOURCE = qtbase-$(QT6_SOURCE_TARBALL_PREFIX)-$(QT6BASE_VERSION).tar.xz
|
||||
QT6BASE_CPE_ID_VENDOR = qt
|
||||
QT6BASE_CPE_ID_PRODUCT = qt
|
||||
|
||||
# 0001-fix-CVE-2024-39936.patch
|
||||
QT6BASE_IGNORE_CVES += CVE-2024-39936
|
||||
|
||||
QT6BASE_CMAKE_BACKEND = ninja
|
||||
|
||||
QT6BASE_LICENSE = \
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# Hash from: https://download.qt.io/official_releases/qt/6.7/6.7.2/submodules/qt5compat-everywhere-src-6.7.2.tar.xz.sha256
|
||||
sha256 8826b5189efc4d9bdb64fdb1aa89d0fdf4e53c60948ed7995621ed046e38c003 qt5compat-everywhere-src-6.7.2.tar.xz
|
||||
# Hash from: https://download.qt.io/official_releases/qt/6.7/6.7.3/submodules/qt5compat-everywhere-src-6.7.3.tar.xz.sha256
|
||||
sha256 8b6a68a3dfaa7e9d10a0dafccee594c72e8de061bc573ae86b1c081b423a53f0 qt5compat-everywhere-src-6.7.3.tar.xz
|
||||
|
||||
# Hashes for license files:
|
||||
sha256 9f0490f18656c6f2435bd14f603ef0c96434d1825615363dce43abb42ed1dcce LICENSES/BSD-3-Clause.txt
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# Hash from: https://download.qt.io/official_releases/qt/6.7/6.7.2/submodules/qtdeclarative-everywhere-src-6.7.2.tar.xz.sha256
|
||||
sha256 4c29cba1af8c42d425d8eb6e01bad24cb80f4b983d71eef566a0542dfdb9b999 qtdeclarative-everywhere-src-6.7.2.tar.xz
|
||||
# Hash from: https://download.qt.io/official_releases/qt/6.7/6.7.3/submodules/qtdeclarative-everywhere-src-6.7.3.tar.xz.sha256
|
||||
sha256 937b70e441abf5bc4e50d44d26610e2714a28514acf3885cd36116cd610b9875 qtdeclarative-everywhere-src-6.7.3.tar.xz
|
||||
|
||||
# Hashes for license files:
|
||||
sha256 9f0490f18656c6f2435bd14f603ef0c96434d1825615363dce43abb42ed1dcce LICENSES/BSD-3-Clause.txt
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# Hash from: https://download.qt.io/official_releases/qt/6.7/6.7.2/submodules/qtlanguageserver-everywhere-src-6.7.2.tar.xz.sha256
|
||||
sha256 b659fe655144ffa061e3ae509eadb42ae373230517295a96935434340e101a92 qtlanguageserver-everywhere-src-6.7.2.tar.xz
|
||||
# Hash from: https://download.qt.io/official_releases/qt/6.7/6.7.3/submodules/qtlanguageserver-everywhere-src-6.7.3.tar.xz.sha256
|
||||
sha256 c56d3872428503d9e49bfc6fa1023332f035ffd711d39e904e50cd6bb1f9df8f qtlanguageserver-everywhere-src-6.7.3.tar.xz
|
||||
|
||||
# Hashes for license files:
|
||||
sha256 9f0490f18656c6f2435bd14f603ef0c96434d1825615363dce43abb42ed1dcce LICENSES/BSD-3-Clause.txt
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
sha256 be2d3f12378a8e2a103c328201b1e308f8c6c09bd752322592b3164cebba5bde qt6mqtt-6.7.2-git4.tar.gz
|
||||
# Locally computed
|
||||
sha256 0a80d52cf349b61e0c012f1aa692639ac958de46d8a76cdb99af7b6067cf5c46 qt6mqtt-6.7.3-git4.tar.gz
|
||||
|
||||
# Hashes for license files:
|
||||
# Hashes for license files
|
||||
sha256 9f0490f18656c6f2435bd14f603ef0c96434d1825615363dce43abb42ed1dcce LICENSES/BSD-3-Clause.txt
|
||||
sha256 110535522396708cea37c72a802c5e7e81391139f5f7985631c93ef242b206a4 LICENSES/GFDL-1.3-no-invariants-only.txt
|
||||
sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 LICENSES/GPL-3.0-only.txt
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
sha256 653597e2926ddb512f078bab1e5d2a059202ba1bc1f68ff0b4a0e053ab1272b2 qt6opcua-6.7.2-git4.tar.gz
|
||||
# Locally computed
|
||||
sha256 09b5e525ad1a61b537b826f049b8725ab3b783bcaf3010a58361f73ff4df1cdb qt6opcua-6.7.3-git4.tar.gz
|
||||
|
||||
# Hashes for license files:
|
||||
# Hashes for license files
|
||||
sha256 9f0490f18656c6f2435bd14f603ef0c96434d1825615363dce43abb42ed1dcce LICENSES/BSD-3-Clause.txt
|
||||
sha256 110535522396708cea37c72a802c5e7e81391139f5f7985631c93ef242b206a4 LICENSES/GFDL-1.3-no-invariants-only.txt
|
||||
sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 LICENSES/GPL-2.0-only.txt
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# Hash from: https://download.qt.io/official_releases/qt/6.7/6.7.2/submodules/qtscxml-everywhere-src-6.7.2.tar.xz.sha256
|
||||
sha256 20ecf93506d48f27b492ad3dd9d88830e08d642faec3071ce53396a8ae05c86f qtscxml-everywhere-src-6.7.2.tar.xz
|
||||
# Hash from: https://download.qt.io/official_releases/qt/6.7/6.7.3/submodules/qtscxml-everywhere-src-6.7.3.tar.xz.sha256
|
||||
sha256 608febeb0dafb6fbf559e064dee779ab799441ed804267b534705ea5077eeda3 qtscxml-everywhere-src-6.7.3.tar.xz
|
||||
|
||||
# Hashes for license files:
|
||||
sha256 9f0490f18656c6f2435bd14f603ef0c96434d1825615363dce43abb42ed1dcce LICENSES/BSD-3-Clause.txt
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# Hash from: https://download.qt.io/official_releases/qt/6.7/6.7.2/submodules/qtserialbus-everywhere-src-6.7.2.tar.xz.sha256
|
||||
sha256 67641ca99b455746d7d956c516dfaa5f2c48696834c71d5720d63e736d374b2b qtserialbus-everywhere-src-6.7.2.tar.xz
|
||||
# Hash from: https://download.qt.io/official_releases/qt/6.7/6.7.3/submodules/qtserialbus-everywhere-src-6.7.3.tar.xz.sha256
|
||||
sha256 55d82e9c7a827808b7383f0a57ad12c2a6fcf5b6c936b27e633155163c0a6276 qtserialbus-everywhere-src-6.7.3.tar.xz
|
||||
|
||||
# Hashes for license files:
|
||||
sha256 9f0490f18656c6f2435bd14f603ef0c96434d1825615363dce43abb42ed1dcce LICENSES/BSD-3-Clause.txt
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# Hash from: https://download.qt.io/official_releases/qt/6.7/6.7.2/submodules/qtserialport-everywhere-src-6.7.2.tar.xz.sha256
|
||||
sha256 21c34cd1161cb5197bcec662d26a17647b59b6fdff5c364576883c42dbd3b4fc qtserialport-everywhere-src-6.7.2.tar.xz
|
||||
# Hash from: https://download.qt.io/official_releases/qt/6.7/6.7.3/submodules/qtserialport-everywhere-src-6.7.3.tar.xz.sha256
|
||||
sha256 d4fa58ee809b39c9eda8d20ee4677971e918edb9a076540466693bc46db146f0 qtserialport-everywhere-src-6.7.3.tar.xz
|
||||
|
||||
# Hashes for license files:
|
||||
sha256 9f0490f18656c6f2435bd14f603ef0c96434d1825615363dce43abb42ed1dcce LICENSES/BSD-3-Clause.txt
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# Hash from: https://download.qt.io/official_releases/qt/6.7/6.7.2/submodules/qtshadertools-everywhere-src-6.7.2.tar.xz.sha256
|
||||
sha256 edfa34c0ac8c00fcaa949df1d8e7a77d89dadd6386e683ce6c3e3b117e2f7cc1 qtshadertools-everywhere-src-6.7.2.tar.xz
|
||||
# Hash from: https://download.qt.io/official_releases/qt/6.7/6.7.3/submodules/qtshadertools-everywhere-src-6.7.3.tar.xz.sha256
|
||||
sha256 74e512798c7ddbda354a2d8d975211454bbabb47afb7e598892067a5828c0995 qtshadertools-everywhere-src-6.7.3.tar.xz
|
||||
|
||||
# Hashes for license files:
|
||||
sha256 9f0490f18656c6f2435bd14f603ef0c96434d1825615363dce43abb42ed1dcce LICENSES/BSD-3-Clause.txt
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# Hash from: https://download.qt.io/official_releases/qt/6.7/6.7.2/submodules/qtsvg-everywhere-src-6.7.2.tar.xz.sha256
|
||||
sha256 fb0d1286a35be3583fee34aeb5843c94719e07193bdf1d4d8b0dc14009caef01 qtsvg-everywhere-src-6.7.2.tar.xz
|
||||
# Hash from: https://download.qt.io/official_releases/qt/6.7/6.7.3/submodules/qtsvg-everywhere-src-6.7.3.tar.xz.sha256
|
||||
sha256 40142cb71fb1e07ad612bc361b67f5d54cd9367f9979ae6b86124a064deda06b qtsvg-everywhere-src-6.7.3.tar.xz
|
||||
|
||||
# Hashes for license files:
|
||||
sha256 9f0490f18656c6f2435bd14f603ef0c96434d1825615363dce43abb42ed1dcce LICENSES/BSD-3-Clause.txt
|
||||
|
||||
@@ -1,56 +0,0 @@
|
||||
From 4be1823e4d459c89717e791ef27fd463ad04cb2b Mon Sep 17 00:00:00 2001
|
||||
From: Joerg Bornemann <joerg.bornemann@qt.io>
|
||||
Date: Tue, 11 Jun 2024 10:47:18 +0200
|
||||
Subject: [PATCH] CMake: Re-enable lupdate/lconvert/lrelease in no-gui builds
|
||||
|
||||
This reverts 8dba0e48a0f7d3487b318a74f80f2d8e59c320f9 which disabled the
|
||||
'linguist' feature if the 'printsupport' feature wasn't available.
|
||||
However, the 'linguist' feature controls not only the Qt Linguist
|
||||
application but also the command line tools lupdate, lconvert, and
|
||||
lrelease. In no-gui builds, which also disable printsupport, the command
|
||||
line tools were unexpectedly missing.
|
||||
|
||||
Fix the issue by extending the feature condition in
|
||||
src/linguist/CMakeLists.txt. As drive-by, fix the FEATURE_png condition
|
||||
that was still in QMake form from the initial conversion.
|
||||
|
||||
Fixes: QTBUG-126189
|
||||
Task-number: QTBUG-125066
|
||||
Pick-to: 6.7 6.8
|
||||
Change-Id: I59ebb82fd5823165b307ffbc967d7fd89a071ede
|
||||
Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
|
||||
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
||||
|
||||
Upstream: https://github.com/qt/qttools/commit/4be1823e4d459c89717e791ef27fd463ad04cb2b
|
||||
Signed-off-by: Christian Hitz <christian.hitz@bbv.ch>
|
||||
---
|
||||
configure.cmake | 1 -
|
||||
src/linguist/CMakeLists.txt | 3 ++-
|
||||
2 files changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/configure.cmake b/configure.cmake
|
||||
index 51a5196da6..e0facf0b90 100644
|
||||
--- a/configure.cmake
|
||||
+++ b/configure.cmake
|
||||
@@ -74,7 +74,6 @@ qt_feature("kmap2qmap" PRIVATE
|
||||
qt_feature("linguist" PRIVATE
|
||||
LABEL "Qt Linguist"
|
||||
PURPOSE "Qt Linguist can be used by translator to translate text in Qt applications."
|
||||
- CONDITION TARGET Qt::PrintSupport
|
||||
)
|
||||
qt_feature("pixeltool" PRIVATE
|
||||
LABEL "pixeltool"
|
||||
diff --git a/src/linguist/CMakeLists.txt b/src/linguist/CMakeLists.txt
|
||||
index ef28c0ff3a..ee11963039 100644
|
||||
--- a/src/linguist/CMakeLists.txt
|
||||
+++ b/src/linguist/CMakeLists.txt
|
||||
@@ -14,7 +14,8 @@ add_subdirectory(lrelease)
|
||||
add_subdirectory(lrelease-pro)
|
||||
add_subdirectory(lupdate)
|
||||
add_subdirectory(lupdate-pro)
|
||||
-if(QT_FEATURE_process AND QT_FEATURE_pushbutton AND QT_FEATURE_toolbutton AND TARGET Qt::Widgets AND NOT no-png)
|
||||
+if(QT_FEATURE_process AND QT_FEATURE_pushbutton AND QT_FEATURE_toolbutton
|
||||
+ AND QT_FEATURE_png AND QT_FEATURE_printsupport AND TARGET Qt::Widgets)
|
||||
add_subdirectory(linguist)
|
||||
endif()
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# Hash from: https://download.qt.io/official_releases/qt/6.7/6.7.2/submodules/qttools-everywhere-src-6.7.2.tar.xz.sha256
|
||||
sha256 58e855ad1b2533094726c8a425766b63a04a0eede2ed85086860e54593aa4b2a qttools-everywhere-src-6.7.2.tar.xz
|
||||
# Hash from: https://download.qt.io/official_releases/qt/6.7/6.7.3/submodules/qttools-everywhere-src-6.7.3.tar.xz.sha256
|
||||
sha256 f03bb7df619cd9ac9dba110e30b7bcab5dd88eb8bdc9cc752563b4367233203f qttools-everywhere-src-6.7.3.tar.xz
|
||||
|
||||
# Hashes for license files:
|
||||
sha256 9f0490f18656c6f2435bd14f603ef0c96434d1825615363dce43abb42ed1dcce LICENSES/BSD-3-Clause.txt
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# Hash from: https://download.qt.io/official_releases/qt/6.7/6.7.2/submodules/qtvirtualkeyboard-everywhere-src-6.7.2.tar.xz.sha256
|
||||
sha256 320664b55a0960ff79c1b822dcf6e8cebe3e08b791147d41b570996d81ce180f qtvirtualkeyboard-everywhere-src-6.7.2.tar.xz
|
||||
# Hash from: https://download.qt.io/official_releases/qt/6.7/6.7.3/submodules/qtvirtualkeyboard-everywhere-src-6.7.3.tar.xz.sha256
|
||||
sha256 1a872104e212c048ada47d28ea8bb2e0ab0637663a3b085989349e249f1423d9 qtvirtualkeyboard-everywhere-src-6.7.3.tar.xz
|
||||
|
||||
# Hashes for license files:
|
||||
sha256 9f0490f18656c6f2435bd14f603ef0c96434d1825615363dce43abb42ed1dcce LICENSES/BSD-3-Clause.txt
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# Hash from: https://download.qt.io/official_releases/qt/6.7/6.7.2/submodules/qtwayland-everywhere-src-6.7.2.tar.xz.sha256
|
||||
sha256 a2a057e1dd644bd44abb9990fecc194b2e25c2e0f39e81aa9fee4c1e5e2a8a5b qtwayland-everywhere-src-6.7.2.tar.xz
|
||||
# Hash from: https://download.qt.io/official_releases/qt/6.7/6.7.3/submodules/qtwayland-everywhere-src-6.7.3.tar.xz.sha256
|
||||
sha256 e326c7ceb628f503bfc20577d5d2df9690ee10db08eb940cb80c759a6972b2b5 qtwayland-everywhere-src-6.7.3.tar.xz
|
||||
|
||||
# Hashes for license files:
|
||||
sha256 9f0490f18656c6f2435bd14f603ef0c96434d1825615363dce43abb42ed1dcce LICENSES/BSD-3-Clause.txt
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# Hash from: https://download.qt.io/official_releases/qt/6.7/6.7.2/submodules/qtwebsockets-everywhere-src-6.7.2.tar.xz.sha256
|
||||
sha256 5bde4af6ec9ce8c8632b782ab77b82d910721be2c714e6d38902521bcd1d215f qtwebsockets-everywhere-src-6.7.2.tar.xz
|
||||
# Hash from: https://download.qt.io/official_releases/qt/6.7/6.7.3/submodules/qtwebsockets-everywhere-src-6.7.3.tar.xz.sha256
|
||||
sha256 ba03007db7ee68a5bc3e3bd1d71e11f3e1f84e470bcb8c54cd7c01bbe1c5990e qtwebsockets-everywhere-src-6.7.3.tar.xz
|
||||
|
||||
# Hashes for license files:
|
||||
sha256 9f0490f18656c6f2435bd14f603ef0c96434d1825615363dce43abb42ed1dcce LICENSES/BSD-3-Clause.txt
|
||||
|
||||
Reference in New Issue
Block a user