Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package qt6-networkauth for openSUSE:Factory
checked in at 2026-08-21 16:50:55
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/qt6-networkauth (Old)
and /work/SRC/openSUSE:Factory/.qt6-networkauth.new.1258 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "qt6-networkauth"
Fri Aug 21 16:50:55 2026 rev:43 rq:1372249 version:6.11.2
Changes:
--------
--- /work/SRC/openSUSE:Factory/qt6-networkauth/qt6-networkauth.changes
2026-05-28 17:25:41.336613916 +0200
+++
/work/SRC/openSUSE:Factory/.qt6-networkauth.new.1258/qt6-networkauth.changes
2026-08-21 16:51:51.837861652 +0200
@@ -1,0 +2,6 @@
+Tue Aug 18 11:48:54 UTC 2026 - Christophe Marin <[email protected]>
+
+- Update to 6.11.2
+ https://www.qt.io/blog/qt-6.11.2-released
+
+-------------------------------------------------------------------
Old:
----
qtnetworkauth-everywhere-src-6.11.1.tar.xz
New:
----
qtnetworkauth-everywhere-src-6.11.2.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ qt6-networkauth.spec ++++++
--- /var/tmp/diff_new_pack.SJ1Ecl/_old 2026-08-21 16:51:52.656890776 +0200
+++ /var/tmp/diff_new_pack.SJ1Ecl/_new 2026-08-21 16:51:52.657890811 +0200
@@ -16,7 +16,7 @@
#
-%define real_version 6.11.1
+%define real_version 6.11.2
%define short_version 6.11
%define short_name qtnetworkauth
%define tar_name qtnetworkauth-everywhere-src
@@ -28,7 +28,7 @@
%endif
#
Name: qt6-networkauth%{?pkg_suffix}
-Version: 6.11.1
+Version: 6.11.2
Release: 0
Summary: Set of APIs to obtain limited access to online accounts and
HTTP services
License: GPL-3.0-only WITH Qt-GPL-exception-1.0
++++++ qtnetworkauth-everywhere-src-6.11.1.tar.xz ->
qtnetworkauth-everywhere-src-6.11.2.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/qtnetworkauth-everywhere-src-6.11.1/.cmake.conf
new/qtnetworkauth-everywhere-src-6.11.2/.cmake.conf
--- old/qtnetworkauth-everywhere-src-6.11.1/.cmake.conf 2026-05-07
21:59:28.000000000 +0200
+++ new/qtnetworkauth-everywhere-src-6.11.2/.cmake.conf 2026-08-11
19:38:11.000000000 +0200
@@ -1,4 +1,4 @@
-set(QT_REPO_MODULE_VERSION "6.11.1")
+set(QT_REPO_MODULE_VERSION "6.11.2")
set(QT_REPO_MODULE_PRERELEASE_VERSION_SEGMENT "alpha1")
set(QT_EXTRA_INTERNAL_TARGET_DEFINES
"QT_ENABLE_STRICT_MODE_UP_TO=QT_VERSION_CHECK(6,11,0)"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/qtnetworkauth-everywhere-src-6.11.1/.tag
new/qtnetworkauth-everywhere-src-6.11.2/.tag
--- old/qtnetworkauth-everywhere-src-6.11.1/.tag 2026-05-07
21:59:28.000000000 +0200
+++ new/qtnetworkauth-everywhere-src-6.11.2/.tag 2026-08-11
19:38:11.000000000 +0200
@@ -1 +1 @@
-a804d2581006e827c8966b7514f98e0bfc599b02
+3dc4ab6bd5087fc2f799be67470f5789eb06633c
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/qtnetworkauth-everywhere-src-6.11.1/dependencies.yaml
new/qtnetworkauth-everywhere-src-6.11.2/dependencies.yaml
--- old/qtnetworkauth-everywhere-src-6.11.1/dependencies.yaml 2026-05-07
21:59:28.000000000 +0200
+++ new/qtnetworkauth-everywhere-src-6.11.2/dependencies.yaml 2026-08-11
19:38:11.000000000 +0200
@@ -1,4 +1,4 @@
dependencies:
../qtbase:
- ref: 59c81a3c2247b821b9b84b4eb8d939b77e07e276
+ ref: ef55f427f2c8b410d34f8a7681020a3000cf6866
required: true
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/qtnetworkauth-everywhere-src-6.11.1/src/oauth/qabstractoauth2.cpp
new/qtnetworkauth-everywhere-src-6.11.2/src/oauth/qabstractoauth2.cpp
--- old/qtnetworkauth-everywhere-src-6.11.1/src/oauth/qabstractoauth2.cpp
2026-05-07 21:59:28.000000000 +0200
+++ new/qtnetworkauth-everywhere-src-6.11.2/src/oauth/qabstractoauth2.cpp
2026-08-11 19:38:11.000000000 +0200
@@ -189,6 +189,7 @@
relevant to OIDC authentication flows.
\value Enabled Nonce is sent during authorization stage.
\value Disabled Nonce is not sent during authorization stage.
+ This disables OpenID Connect \c {id_token} replay protection.
\sa nonce, {OAuth 2.0 Overview}
*/
@@ -290,6 +291,15 @@
authentication. The state is used to identify and validate the
request when the callback is received.
+ If no state has been set when the authorization flow starts, a
+ random 32-character state is generated automatically. This is the
+ default and the recommended way.
+
+ This state is the primary protection against
+ \l {https://datatracker.ietf.org/doc/html/rfc6819#section-3.6}{cross-site
request forgery},
+ and should therefore contain a sufficient amount of
+ randomness. If you set it manually consider using at least 32 random
characters.
+
Certain characters are illegal in the state element (see
\l {https://datatracker.ietf.org/doc/html/rfc6749#appendix-A.5}{RFC 6749}).
The use of illegal characters could lead to an unintended state mismatch
@@ -551,7 +561,12 @@
QString QAbstractOAuth2Private::generateRandomState()
{
- return
QString::fromLatin1(QAbstractOAuthPrivate::generateRandomBase64String(8));
+ // There is no strict minimum or maximum size for state, but
+ // generating a 32-character base64 URL string provides
+ // ~192 bits of entropy (32 characters * 6 bits per character), which is
+ // a common minimum size and meets OAuth 2 recommendation for secrets:
+ // https://datatracker.ietf.org/doc/html/rfc6819#section-5.1.4.2.2
+ return
QString::fromLatin1(QAbstractOAuthPrivate::generateRandomBase64String(32));
}
QString QAbstractOAuth2Private::generateNonce()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/qtnetworkauth-everywhere-src-6.11.1/src/oauth/qoauth2authorizationcodeflow.cpp
new/qtnetworkauth-everywhere-src-6.11.2/src/oauth/qoauth2authorizationcodeflow.cpp
---
old/qtnetworkauth-everywhere-src-6.11.1/src/oauth/qoauth2authorizationcodeflow.cpp
2026-05-07 21:59:28.000000000 +0200
+++
new/qtnetworkauth-everywhere-src-6.11.2/src/oauth/qoauth2authorizationcodeflow.cpp
2026-08-11 19:38:11.000000000 +0200
@@ -299,12 +299,15 @@
originates from the same entity that issued the authorization
request.
- \value None PKCE is not used.
+ \value None PKCE is not used. This leaves the flow unprotected against
+ authorization code interception. Use this only if the authorization
+ server does not tolerate PKCE.
\value Plain The Plain PKCE method is used. Use this only if it is not
possible to use S256. With Plain method the
\l {https://datatracker.ietf.org/doc/html/rfc7636#section-4.2}{code
challenge}
equals to the
- \l {https://datatracker.ietf.org/doc/html/rfc7636#section-4.1}{code
verifier}.
+ \l {https://datatracker.ietf.org/doc/html/rfc7636#section-4.1}{code
verifier},
+ exposing the verifier to anyone able to intercept the authorization
request.
\value S256 The S256 PKCE method is used. This is the default and the
recommended method for native applications. With the S256 method
the \e {code challenge} is a base64url-encoded value of the
@@ -322,6 +325,10 @@
of the \c code_verifier. The value must be between 43 and 128 bytes.
The 'code verifier' itself is random-generated by the library.
+ Setting \a method to \l {PkceMethod}{PkceMethod::None} or
+ \l {PkceMethod}{PkceMethod::Plain} weakens the protection against
+ authorization code interception.
+
\sa pkceMethod(), QOAuth2AuthorizationCodeFlow::PkceMethod
*/
void QOAuth2AuthorizationCodeFlow::setPkceMethod(PkceMethod method, qsizetype
length)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/qtnetworkauth-everywhere-src-6.11.1/src/oauth/qoauthhttpserverreplyhandler.cpp
new/qtnetworkauth-everywhere-src-6.11.2/src/oauth/qoauthhttpserverreplyhandler.cpp
---
old/qtnetworkauth-everywhere-src-6.11.1/src/oauth/qoauthhttpserverreplyhandler.cpp
2026-05-07 21:59:28.000000000 +0200
+++
new/qtnetworkauth-everywhere-src-6.11.2/src/oauth/qoauthhttpserverreplyhandler.cpp
2026-08-11 19:38:11.000000000 +0200
@@ -230,7 +230,7 @@
{
Q_Q(QOAuthHttpServerReplyHandler);
if (url.path() != path) {
- qCWarning(lcReplyHandler, "Invalid request: %s",
qPrintable(url.toString()));
+ qCWarning(lcReplyHandler, "Invalid request: URL path doesn't match");
} else {
Q_EMIT
q->callbackDataReceived(QUrl(callback()).resolved(url).toEncoded());
@@ -340,7 +340,7 @@
if (!fragment.startsWith(u'/') || !url.isValid() ||
!url.scheme().isNull()
|| !url.host().isNull()) {
- qCWarning(lcReplyHandler, "Invalid request: %s",
fragment.constData());
+ qCWarning(lcReplyHandler, "Invalid request: invalid
request-target");
return false;
}
fragment.clear();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/qtnetworkauth-everywhere-src-6.11.1/tests/auto/oauth2codeflow/tst_oauth2codeflow.cpp
new/qtnetworkauth-everywhere-src-6.11.2/tests/auto/oauth2codeflow/tst_oauth2codeflow.cpp
---
old/qtnetworkauth-everywhere-src-6.11.1/tests/auto/oauth2codeflow/tst_oauth2codeflow.cpp
2026-05-07 21:59:28.000000000 +0200
+++
new/qtnetworkauth-everywhere-src-6.11.2/tests/auto/oauth2codeflow/tst_oauth2codeflow.cpp
2026-08-11 19:38:11.000000000 +0200
@@ -135,6 +135,7 @@
oauth2.grant();
QVERIFY(!stateParameter.isEmpty()); // internally generated initial state
used
QCOMPARE(stateParameter, oauth2.state());
+ QCOMPARE(stateParameter.size(), 32);
// Test setting the 'state' property
const QString simpleState = u"a_state"_s;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/qtnetworkauth-everywhere-src-6.11.1/tests/auto/oauthhttpserverreplyhandler/tst_oauthhttpserverreplyhandler.cpp
new/qtnetworkauth-everywhere-src-6.11.2/tests/auto/oauthhttpserverreplyhandler/tst_oauthhttpserverreplyhandler.cpp
---
old/qtnetworkauth-everywhere-src-6.11.1/tests/auto/oauthhttpserverreplyhandler/tst_oauthhttpserverreplyhandler.cpp
2026-05-07 21:59:28.000000000 +0200
+++
new/qtnetworkauth-everywhere-src-6.11.2/tests/auto/oauthhttpserverreplyhandler/tst_oauthhttpserverreplyhandler.cpp
2026-08-11 19:38:11.000000000 +0200
@@ -281,10 +281,8 @@
&QTestEventLoop::exitLoop);
if (!success) {
- QByteArray httpUri = callback.toEncoded(QUrl::RemoveScheme |
QUrl::RemoveAuthority | QUrl::RemoveFragment);
- const QByteArray msg = "Invalid request: " + httpUri;
for (int i = 0; i < 2; ++i) // emitted more than once
- QTest::ignoreMessage(QtWarningMsg, msg.data());
+ QTest::ignoreMessage(QtWarningMsg, "Invalid request: URL path
doesn't match");
}
QTestEventLoop::instance().enterLoop(Timeout);
QCOMPARE(count > 0, success);
@@ -386,8 +384,7 @@
connect(&socket, &QTcpSocket::disconnected, &QTestEventLoop::instance(),
&QTestEventLoop::exitLoop);
- QTest::ignoreMessage(QtWarningMsg,
- QByteArray{"Invalid request: " +
uri.toLocal8Bit()}.constData());
+ QTest::ignoreMessage(QtWarningMsg, "Invalid request: invalid
request-target");
QTest::ignoreMessage(QtWarningMsg, "Invalid URL");
QTestEventLoop::instance().enterLoop(Timeout);