Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package qt6-httpserver for openSUSE:Factory checked in at 2026-05-28 17:24:42 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/qt6-httpserver (Old) and /work/SRC/openSUSE:Factory/.qt6-httpserver.new.1937 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "qt6-httpserver" Thu May 28 17:24:42 2026 rev:28 rq:1355420 version:6.11.1 Changes: -------- --- /work/SRC/openSUSE:Factory/qt6-httpserver/qt6-httpserver.changes 2026-03-28 20:12:55.012347693 +0100 +++ /work/SRC/openSUSE:Factory/.qt6-httpserver.new.1937/qt6-httpserver.changes 2026-05-28 17:25:27.924058725 +0200 @@ -1,0 +2,6 @@ +Thu May 14 14:54:53 UTC 2026 - Christophe Marin <[email protected]> + +- Update to 6.11.1 + https://www.qt.io/blog/qt-6.11.1-released + +------------------------------------------------------------------- Old: ---- qthttpserver-everywhere-src-6.11.0.tar.xz New: ---- qthttpserver-everywhere-src-6.11.1.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ qt6-httpserver.spec ++++++ --- /var/tmp/diff_new_pack.8kwNSH/_old 2026-05-28 17:25:28.952101279 +0200 +++ /var/tmp/diff_new_pack.8kwNSH/_new 2026-05-28 17:25:28.952101279 +0200 @@ -16,7 +16,7 @@ # -%define real_version 6.11.0 +%define real_version 6.11.1 %define short_version 6.11 %define tar_name qthttpserver-everywhere-src %define tar_suffix %{nil} @@ -27,7 +27,7 @@ %endif # Name: qt6-httpserver%{?pkg_suffix} -Version: 6.11.0 +Version: 6.11.1 Release: 0 Summary: Qt HTTP Server License: GPL-3.0-only ++++++ qthttpserver-everywhere-src-6.11.0.tar.xz -> qthttpserver-everywhere-src-6.11.1.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qthttpserver-everywhere-src-6.11.0/.cmake.conf new/qthttpserver-everywhere-src-6.11.1/.cmake.conf --- old/qthttpserver-everywhere-src-6.11.0/.cmake.conf 2026-03-10 06:38:57.000000000 +0100 +++ new/qthttpserver-everywhere-src-6.11.1/.cmake.conf 2026-05-08 04:06:39.000000000 +0200 @@ -1,7 +1,8 @@ -set(QT_REPO_MODULE_VERSION "6.11.0") +set(QT_REPO_MODULE_VERSION "6.11.1") set(QT_REPO_MODULE_PRERELEASE_VERSION_SEGMENT "alpha1") set(QT_EXTRA_INTERNAL_TARGET_DEFINES - "QT_NO_CONTEXTLESS_CONNECT=1" - "QT_NO_FOREACH=1" - "QT_NO_URL_CAST_FROM_STRING=1" + "QT_ENABLE_STRICT_MODE_UP_TO=QT_VERSION_CHECK(6,11,0)" + # not yet in strict mode: + "QT_LEAN_HEADERS=2" + "QT_NO_QPAIR=1" ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qthttpserver-everywhere-src-6.11.0/.tag new/qthttpserver-everywhere-src-6.11.1/.tag --- old/qthttpserver-everywhere-src-6.11.0/.tag 2026-03-10 06:38:57.000000000 +0100 +++ new/qthttpserver-everywhere-src-6.11.1/.tag 2026-05-08 04:06:39.000000000 +0200 @@ -1 +1 @@ -89db72a6f6e8173a977865d1c7e089ede96ac243 +c80d6aa0d09e937ffd1380148f73918d4f9a92b6 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qthttpserver-everywhere-src-6.11.0/dependencies.yaml new/qthttpserver-everywhere-src-6.11.1/dependencies.yaml --- old/qthttpserver-everywhere-src-6.11.0/dependencies.yaml 2026-03-10 06:38:57.000000000 +0100 +++ new/qthttpserver-everywhere-src-6.11.1/dependencies.yaml 2026-05-08 04:06:39.000000000 +0200 @@ -1,7 +1,7 @@ dependencies: ../qtbase: - ref: 8ba7ea4b77a4b8f1948760221e264917ddc9e1c8 + ref: 59c81a3c2247b821b9b84b4eb8d939b77e07e276 required: true ../qtwebsockets: - ref: 882f182c8bb5d249ecd97601557ab0e671bdf520 + ref: 451920600d7f0b8a4b458bba56a2dd303e587026 required: false diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qthttpserver-everywhere-src-6.11.0/doc/external-resources.qdoc new/qthttpserver-everywhere-src-6.11.1/doc/external-resources.qdoc --- old/qthttpserver-everywhere-src-6.11.0/doc/external-resources.qdoc 2026-03-10 06:38:57.000000000 +0100 +++ new/qthttpserver-everywhere-src-6.11.1/doc/external-resources.qdoc 2026-05-08 04:06:39.000000000 +0200 @@ -2,8 +2,8 @@ // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only /*! - \externalpage https://datatracker.ietf.org/doc/html/rfc2616 - \title RFC 2616 + \externalpage https://datatracker.ietf.org/doc/html/rfc1945 + \title RFC 1945 */ /*! @@ -12,6 +12,16 @@ */ /*! + \externalpage https://datatracker.ietf.org/doc/html/rfc9110 + \title RFC 9110 +*/ + +/*! + \externalpage https://datatracker.ietf.org/doc/html/rfc9112 + \title RFC 9112 +*/ + +/*! \externalpage https://datatracker.ietf.org/doc/html/rfc9113 \title RFC 9113 */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qthttpserver-everywhere-src-6.11.0/doc/index.qdoc new/qthttpserver-everywhere-src-6.11.1/doc/index.qdoc --- old/qthttpserver-everywhere-src-6.11.0/doc/index.qdoc 2026-03-10 06:38:57.000000000 +0100 +++ new/qthttpserver-everywhere-src-6.11.1/doc/index.qdoc 2026-05-08 04:06:39.000000000 +0200 @@ -14,9 +14,11 @@ \section1 Overview - Qt HTTP Server provides building blocks for embedding a lightweight HTTP server - based on \l{RFC 2616} and \l{RFC 9113} in an application. There are classes for - the messages sent and received, and for the various parts of an HTTP server. + Qt HTTP Server provides building blocks for embedding a lightweight + \l{RFC 9110}{HTTP} server supporting \l{RFC 9113}{HTTP/2}, + \l{RFC 9112}{HTTP/1.1}, and \l{RFC 1945}{HTTP/1.0} in an application. + There are classes for the messages sent and received, and for the various + parts of an HTTP server. The QHttpServer class has a \l{QHttpServer::}{route()} function to bind callables to different incoming URLs. These callables can take as arguments diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qthttpserver-everywhere-src-6.11.0/src/httpserver/qhttpserverconfiguration.cpp new/qthttpserver-everywhere-src-6.11.1/src/httpserver/qhttpserverconfiguration.cpp --- old/qthttpserver-everywhere-src-6.11.0/src/httpserver/qhttpserverconfiguration.cpp 2026-03-10 06:38:57.000000000 +0100 +++ new/qthttpserver-everywhere-src-6.11.1/src/httpserver/qhttpserverconfiguration.cpp 2026-05-08 04:06:39.000000000 +0200 @@ -30,8 +30,8 @@ quint32 rateLimit = 0; std::chrono::seconds keepAliveTimeout = std::chrono::seconds(15); - QList<QPair<QHostAddress, int>> whitelist; - QList<QPair<QHostAddress, int>> blacklist; + QList<std::pair<QHostAddress, int>> whitelist; + QList<std::pair<QHostAddress, int>> blacklist; qint64 maxUrlSize = 64 * 1024; qint64 maxTotalHeaderSize = 64 * 1024; qint64 maxHeaderFieldSize = 48 * 1024; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qthttpserver-everywhere-src-6.11.0/src/httpserver/qhttpserverhttp1protocolhandler.cpp new/qthttpserver-everywhere-src-6.11.1/src/httpserver/qhttpserverhttp1protocolhandler.cpp --- old/qthttpserver-everywhere-src-6.11.0/src/httpserver/qhttpserverhttp1protocolhandler.cpp 2026-03-10 06:38:57.000000000 +0100 +++ new/qthttpserver-everywhere-src-6.11.1/src/httpserver/qhttpserverhttp1protocolhandler.cpp 2026-05-08 04:06:39.000000000 +0200 @@ -109,9 +109,9 @@ qint64 endIndex = -1; QPointer<QIODevice> source; const QPointer<QIODevice> sink; - const QMetaObject::Connection bytesWrittenConnection; - const QMetaObject::Connection readyReadConnection; - const QMetaObject::Connection readChannelFinished; + QMetaObject::Connection bytesWrittenConnection; + QMetaObject::Connection readyReadConnection; + QMetaObject::Connection readChannelFinished; QPointer<QHttpServerHttp1ProtocolHandler> handler; bool inRead = false; bool gotReadChannelFinished = false; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qthttpserver-everywhere-src-6.11.0/src/httpserver/qhttpserverhttp2protocolhandler.cpp new/qthttpserver-everywhere-src-6.11.1/src/httpserver/qhttpserverhttp2protocolhandler.cpp --- old/qthttpserver-everywhere-src-6.11.0/src/httpserver/qhttpserverhttp2protocolhandler.cpp 2026-03-10 06:38:57.000000000 +0100 +++ new/qthttpserver-everywhere-src-6.11.1/src/httpserver/qhttpserverhttp2protocolhandler.cpp 2026-05-08 04:06:39.000000000 +0200 @@ -254,27 +254,28 @@ } }; - auto &connections = m_streamConnections[id]; - connections << connect(stream, + m_streamConnections[id] = { + connect(stream, &QHttp2Stream::stateChanged, this, onStateChanged, - Qt::QueuedConnection); + Qt::QueuedConnection), - connections << connect(stream, &QHttp2Stream::uploadFinished, this, - [this, id]() { sendToStream(id); }); + connect(stream, &QHttp2Stream::uploadFinished, this, + [this, id]() { sendToStream(id); }), - connections << connect(stream, &QHttp2Stream::headersReceived, this, + connect(stream, &QHttp2Stream::headersReceived, this, [this, id](const HPack::HttpHeader &headers, bool endStream) { Q_UNUSED(endStream); onHeadersReceived(id, headers); - }); + }), - connections << connect(stream, &QHttp2Stream::dataReceived, this, + connect(stream, &QHttp2Stream::dataReceived, this, [this, id](const QByteArray &data, bool endStream) { Q_UNUSED(endStream); onDataReceived(id, data.size()); - }); + }), + }; lastActiveTimer.restart(); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qthttpserver-everywhere-src-6.11.0/src/httpserver/qhttpserverhttp2protocolhandler_p.h new/qthttpserver-everywhere-src-6.11.1/src/httpserver/qhttpserverhttp2protocolhandler_p.h --- old/qthttpserver-everywhere-src-6.11.0/src/httpserver/qhttpserverhttp2protocolhandler_p.h 2026-03-10 06:38:57.000000000 +0100 +++ new/qthttpserver-everywhere-src-6.11.1/src/httpserver/qhttpserverhttp2protocolhandler_p.h 2026-05-08 04:06:39.000000000 +0200 @@ -11,11 +11,14 @@ #include <QtHttpServer/private/qhttpserverrequestfilter_p.h> #include <QtHttpServer/private/qhttpserverresponder_p.h> #include <QtNetwork/private/hpack_p.h> + #include <QtCore/qbytearray.h> +#include <QtCore/qhash.h> #include <QtCore/qqueue.h> - #include <QtCore/qelapsedtimer.h> +#include <array> + // // W A R N I N G // ------------- @@ -104,7 +107,7 @@ QTcpSocket *m_tcpSocket; QHttpServerRequestFilter *m_filter; QHttp2Connection *m_connection; - QHash<quint32, QList<QMetaObject::Connection>> m_streamConnections; + QHash<quint32, std::array<QMetaObject::Connection, 4>> m_streamConnections; QHash<quint32, QHttpServerHttp2Queue> m_streamQueue; QHash<quint32, QHttpServerHttp2Data> m_streamData; QHash<quint32, QHttpServerResponderPrivate *> m_responders; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qthttpserver-everywhere-src-6.11.0/src/httpserver/qhttpserverrouterrule.cpp new/qthttpserver-everywhere-src-6.11.1/src/httpserver/qhttpserverrouterrule.cpp --- old/qthttpserver-everywhere-src-6.11.0/src/httpserver/qhttpserverrouterrule.cpp 2026-03-10 06:38:57.000000000 +0100 +++ new/qthttpserver-everywhere-src-6.11.1/src/httpserver/qhttpserverrouterrule.cpp 2026-05-08 04:06:39.000000000 +0200 @@ -8,6 +8,7 @@ #include <private/qhttpserverrouterrule_p.h> #include <private/qhttpserverrequest_p.h> +#include <QtCore/qhash.h> #include <QtCore/qmetaobject.h> #include <QtCore/qloggingcategory.h> #include <QtCore/qregularexpression.h> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qthttpserver-everywhere-src-6.11.0/tests/auto/qhttpserver/tst_qhttpserver.cpp new/qthttpserver-everywhere-src-6.11.1/tests/auto/qhttpserver/tst_qhttpserver.cpp --- old/qthttpserver-everywhere-src-6.11.0/tests/auto/qhttpserver/tst_qhttpserver.cpp 2026-03-10 06:38:57.000000000 +0100 +++ new/qthttpserver-everywhere-src-6.11.1/tests/auto/qhttpserver/tst_qhttpserver.cpp 2026-05-08 04:06:39.000000000 +0200 @@ -22,6 +22,7 @@ #include <QtCore/qjsonvalue.h> #include <QtCore/qjsonarray.h> #include <QtCore/qsemaphore.h> +#include <QtCore/qset.h> #include <QtCore/qtimer.h> #include <QtNetwork/qnetworkaccessmanager.h> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qthttpserver-everywhere-src-6.11.0/tests/auto/qhttpservermultithreaded/tst_qhttpservermultithreaded.cpp new/qthttpserver-everywhere-src-6.11.1/tests/auto/qhttpservermultithreaded/tst_qhttpservermultithreaded.cpp --- old/qthttpserver-everywhere-src-6.11.0/tests/auto/qhttpservermultithreaded/tst_qhttpservermultithreaded.cpp 2026-03-10 06:38:57.000000000 +0100 +++ new/qthttpserver-everywhere-src-6.11.1/tests/auto/qhttpservermultithreaded/tst_qhttpservermultithreaded.cpp 2026-05-08 04:06:39.000000000 +0200 @@ -121,6 +121,8 @@ -----END CERTIFICATE-----)"; #endif // QT_CONFIG(ssl) +#include <atomic> + QT_BEGIN_NAMESPACE using namespace Qt::StringLiterals; @@ -262,7 +264,7 @@ return u""_s; // No content read = 0; - QByteArray buffer(contentLength, 0); + QByteArray buffer(contentLength, Qt::Uninitialized); forever { qint64 result = socket->read(&buffer[read], qMin(contentLength - read, chunkSize)); QVERIFY2(result >= 0, "IO error reading content"); @@ -274,7 +276,7 @@ socket->waitForReadyRead(10); }; - return QString::fromUtf8(buffer, contentLength); + return QString::fromUtf8(buffer); } QString LocalHttpClient::postSlow(const QString &url, const QHttpHeaders &headers, qsizetype mSleep) @@ -647,9 +649,10 @@ httpserver.route( "/sequential/<arg>/<arg>", [this](QString message, int times, QHttpServerResponder &&responder) { + auto r = std::make_shared<QHttpServerResponder>(std::move(responder)); return QtConcurrent::run( &threadPool, - [=, r = std::make_shared<QHttpServerResponder>(std::move(responder))]() { + [this, message = std::move(message), times, r = std::move(r)]() { ++callCounter; auto device = new SequentialIODevice(message.toUtf8(), times, 50ms); r->write(device, QHttpHeaders()); @@ -904,14 +907,17 @@ QThreadPool clientThreadPool; clientThreadPool.setMaxThreadCount(NumberProcessed); QList<QFuture<QString>> futures(NumberProcessed); + std::atomic<qsizetype> startedThreads = 0; for (qsizetype i = 0; i < NumberProcessed; ++i) { futures[i] = QtConcurrent::run(&clientThreadPool, [&, i]() { LocalHttpClient client(serverType); + ++startedThreads; return client.get(u"/semroute/%1"_s.arg(i)); }); } QTest::qWait(2000); + QTRY_COMPARE(startedThreads, NumberOfThreads); readySem.acquire(NumberProcessed); routeSem.release(NumberProcessed);
