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-05-28 17:24:53
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/qt6-networkauth (Old)
and /work/SRC/openSUSE:Factory/.qt6-networkauth.new.1937 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "qt6-networkauth"
Thu May 28 17:24:53 2026 rev:42 rq:1355427 version:6.11.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/qt6-networkauth/qt6-networkauth.changes
2026-03-28 20:13:03.884713871 +0100
+++
/work/SRC/openSUSE:Factory/.qt6-networkauth.new.1937/qt6-networkauth.changes
2026-05-28 17:25:41.336613916 +0200
@@ -1,0 +2,6 @@
+Thu May 14 14:55:14 UTC 2026 - Christophe Marin <[email protected]>
+
+- Update to 6.11.1
+ https://www.qt.io/blog/qt-6.11.1-released
+
+-------------------------------------------------------------------
Old:
----
qtnetworkauth-everywhere-src-6.11.0.tar.xz
New:
----
qtnetworkauth-everywhere-src-6.11.1.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ qt6-networkauth.spec ++++++
--- /var/tmp/diff_new_pack.YYM1wG/_old 2026-05-28 17:25:42.116646204 +0200
+++ /var/tmp/diff_new_pack.YYM1wG/_new 2026-05-28 17:25:42.120646369 +0200
@@ -16,7 +16,7 @@
#
-%define real_version 6.11.0
+%define real_version 6.11.1
%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.0
+Version: 6.11.1
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.0.tar.xz ->
qtnetworkauth-everywhere-src-6.11.1.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/qtnetworkauth-everywhere-src-6.11.0/.cmake.conf
new/qtnetworkauth-everywhere-src-6.11.1/.cmake.conf
--- old/qtnetworkauth-everywhere-src-6.11.0/.cmake.conf 2026-03-09
10:39:33.000000000 +0100
+++ new/qtnetworkauth-everywhere-src-6.11.1/.cmake.conf 2026-05-07
21:59:28.000000000 +0200
@@ -1,8 +1,9 @@
-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_QASCONST=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_SINGLE_ARGUMENT_QHASH_OVERLOAD=1"
+ "QT_NO_QPAIR=1"
)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/qtnetworkauth-everywhere-src-6.11.0/.tag
new/qtnetworkauth-everywhere-src-6.11.1/.tag
--- old/qtnetworkauth-everywhere-src-6.11.0/.tag 2026-03-09
10:39:33.000000000 +0100
+++ new/qtnetworkauth-everywhere-src-6.11.1/.tag 2026-05-07
21:59:28.000000000 +0200
@@ -1 +1 @@
-4af2f29b09c0e6e80bb99fb2360a8c9395ee3a1d
+a804d2581006e827c8966b7514f98e0bfc599b02
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/qtnetworkauth-everywhere-src-6.11.0/dependencies.yaml
new/qtnetworkauth-everywhere-src-6.11.1/dependencies.yaml
--- old/qtnetworkauth-everywhere-src-6.11.0/dependencies.yaml 2026-03-09
10:39:33.000000000 +0100
+++ new/qtnetworkauth-everywhere-src-6.11.1/dependencies.yaml 2026-05-07
21:59:28.000000000 +0200
@@ -1,4 +1,4 @@
dependencies:
../qtbase:
- ref: 8ba7ea4b77a4b8f1948760221e264917ddc9e1c8
+ ref: 59c81a3c2247b821b9b84b4eb8d939b77e07e276
required: true
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/qtnetworkauth-everywhere-src-6.11.0/qt_cmdline.cmake
new/qtnetworkauth-everywhere-src-6.11.1/qt_cmdline.cmake
--- old/qtnetworkauth-everywhere-src-6.11.0/qt_cmdline.cmake 1970-01-01
01:00:00.000000000 +0100
+++ new/qtnetworkauth-everywhere-src-6.11.1/qt_cmdline.cmake 2026-05-07
21:59:28.000000000 +0200
@@ -0,0 +1,4 @@
+# Copyright (C) 2026 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
+qt_commandline_subconfig(src/oauth)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/qtnetworkauth-everywhere-src-6.11.0/src/oauth/qabstractoauth2.cpp
new/qtnetworkauth-everywhere-src-6.11.1/src/oauth/qabstractoauth2.cpp
--- old/qtnetworkauth-everywhere-src-6.11.0/src/oauth/qabstractoauth2.cpp
2026-03-09 10:39:33.000000000 +0100
+++ new/qtnetworkauth-everywhere-src-6.11.1/src/oauth/qabstractoauth2.cpp
2026-05-07 21:59:28.000000000 +0200
@@ -728,17 +728,25 @@
#endif
}
- // An id_token must be included if this was an OIDC request
+ // An id_token must be included if this was an OIDC request and the server
granted it.
// https://openid.net/specs/openid-connect-core-1_0-final.html#AuthRequest
(cf. 'scope')
//
https://openid.net/specs/openid-connect-core-1_0-final.html#TokenResponse
+ //
+ // However token refresh responses 'might not' contain an id_token
+ //
https://openid.net/specs/openid-connect-core-1_0-final.html#RefreshTokenResponse
const QString receivedIdToken =
values.value(QtOAuth2RfcKeywords::idToken).toString();
- if (grantedScopeTokens.contains("openid") && receivedIdToken.isEmpty()) {
+ if (requestedScopeTokens.contains("openid") &&
grantedScopeTokens.contains("openid")
+ && receivedIdToken.isEmpty() && status !=
QAbstractOAuth::Status::RefreshingToken) {
setIdToken({});
_q_tokenRequestFailed(QAbstractOAuth::Error::OAuthTokenNotFoundError,
- "ID token not received"_L1);
+ "'openid' scope requested and granted but ID
token not received"_L1);
return;
}
- setIdToken(receivedIdToken);
+
+ // Update the id_token. However if we were refreshing tokens and didn't
receive a new
+ // id_token, keep the original
+ if (status != QAbstractOAuth::Status::RefreshingToken ||
!receivedIdToken.isEmpty())
+ setIdToken(receivedIdToken);
if (tokenLifetime > 0)
setExpiresAt(QDateTime::currentDateTimeUtc().addSecs(tokenLifetime));
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/qtnetworkauth-everywhere-src-6.11.0/src/oauth/qabstractoauth2_p.h
new/qtnetworkauth-everywhere-src-6.11.1/src/oauth/qabstractoauth2_p.h
--- old/qtnetworkauth-everywhere-src-6.11.0/src/oauth/qabstractoauth2_p.h
2026-03-09 10:39:33.000000000 +0100
+++ new/qtnetworkauth-everywhere-src-6.11.1/src/oauth/qabstractoauth2_p.h
2026-05-07 21:59:28.000000000 +0200
@@ -23,12 +23,18 @@
#include <QtNetworkAuth/qoauthglobal.h>
#include <QtNetworkAuth/qabstractoauth2.h>
+#include <QtCore/qbytearray.h>
#include <QtCore/qchronotimer.h>
+#include <QtCore/qdatetime.h>
#include <QtCore/qurl.h>
+#include <QtCore/qset.h>
#include <QtCore/qstring.h>
#include <QtCore/qpointer.h>
#include <QtNetwork/qnetworkreply.h>
+#ifndef QT_NO_SSL
+#include <QtNetwork/qsslconfiguration.h>
+#endif
#include <utility>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/qtnetworkauth-everywhere-src-6.11.0/src/oauth/qoauth1.cpp
new/qtnetworkauth-everywhere-src-6.11.1/src/oauth/qoauth1.cpp
--- old/qtnetworkauth-everywhere-src-6.11.0/src/oauth/qoauth1.cpp
2026-03-09 10:39:33.000000000 +0100
+++ new/qtnetworkauth-everywhere-src-6.11.1/src/oauth/qoauth1.cpp
2026-05-07 21:59:28.000000000 +0200
@@ -862,8 +862,9 @@
return;
}
- QMetaObject::Connection connection;
- connection = connect(this, &QAbstractOAuth::statusChanged, this,
[&](Status status) {
+ auto connection = std::make_shared<QMetaObject::Connection>();
+ *connection = connect(this, &QAbstractOAuth::statusChanged, this,
+ [this, connection](Status status) {
Q_D(QOAuth1);
if (status == Status::TemporaryCredentialsReceived) {
@@ -885,7 +886,7 @@
} else if (status == Status::NotAuthenticated) {
// Inherit class called
QAbstractOAuth::setStatus(Status::NotAuthenticated);
setTokenCredentials(QString(), QString());
- disconnect(connection);
+ disconnect(*connection);
}
});
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/qtnetworkauth-everywhere-src-6.11.0/src/oauth/qoauth1signature.h
new/qtnetworkauth-everywhere-src-6.11.1/src/oauth/qoauth1signature.h
--- old/qtnetworkauth-everywhere-src-6.11.0/src/oauth/qoauth1signature.h
2026-03-09 10:39:33.000000000 +0100
+++ new/qtnetworkauth-everywhere-src-6.11.1/src/oauth/qoauth1signature.h
2026-05-07 21:59:28.000000000 +0200
@@ -8,6 +8,7 @@
#ifndef QT_NO_HTTP
+#include <QtCore/qmap.h>
#include <QtCore/qurl.h>
#include <QtCore/qvariant.h>
#include <QtCore/qshareddata.h>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/qtnetworkauth-everywhere-src-6.11.0/src/oauth/qoauthhttpserverreplyhandler_p.h
new/qtnetworkauth-everywhere-src-6.11.1/src/oauth/qoauthhttpserverreplyhandler_p.h
---
old/qtnetworkauth-everywhere-src-6.11.0/src/oauth/qoauthhttpserverreplyhandler_p.h
2026-03-09 10:39:33.000000000 +0100
+++
new/qtnetworkauth-everywhere-src-6.11.1/src/oauth/qoauthhttpserverreplyhandler_p.h
2026-05-07 21:59:28.000000000 +0200
@@ -23,6 +23,11 @@
#include <QtNetwork/qhostaddress.h>
#include <QtNetwork/qtcpserver.h>
+#include <QtCore/qbytearray.h>
+#include <QtCore/qhash.h>
+#include <QtCore/qmap.h>
+#include <QtCore/qurl.h>
+
#include <utility>
QT_BEGIN_NAMESPACE
@@ -83,7 +88,7 @@
QMap<QByteArray, QByteArray> headers;
};
- QMap<QTcpSocket *, QHttpRequest> clients;
+ QHash<QTcpSocket *, QHttpRequest> clients;
QOAuthHttpServerReplyHandler *q_ptr;
};
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/qtnetworkauth-everywhere-src-6.11.0/src/oauth/qoauthurischemereplyhandler.cpp
new/qtnetworkauth-everywhere-src-6.11.1/src/oauth/qoauthurischemereplyhandler.cpp
---
old/qtnetworkauth-everywhere-src-6.11.0/src/oauth/qoauthurischemereplyhandler.cpp
2026-03-09 10:39:33.000000000 +0100
+++
new/qtnetworkauth-everywhere-src-6.11.1/src/oauth/qoauthurischemereplyhandler.cpp
2026-05-07 21:59:28.000000000 +0200
@@ -143,7 +143,7 @@
(\c apple-app-site-association)
\endlist
- \section2 \l {Qt for Windows}{Windows}, \l {Qt for Linux/X11}{Linux}
+ \section2 \l {Qt for Windows}{Windows}, \l {Qt for Linux}{Linux}
Currently not supported. However platforms and use cases supporting
\l {Qt WebEngine Platform Notes}{Qt WebEngine} can still use this reply
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/qtnetworkauth-everywhere-src-6.11.0/tests/auto/oauth2codeflow/tst_oauth2codeflow.cpp
new/qtnetworkauth-everywhere-src-6.11.1/tests/auto/oauth2codeflow/tst_oauth2codeflow.cpp
---
old/qtnetworkauth-everywhere-src-6.11.0/tests/auto/oauth2codeflow/tst_oauth2codeflow.cpp
2026-03-09 10:39:33.000000000 +0100
+++
new/qtnetworkauth-everywhere-src-6.11.1/tests/auto/oauth2codeflow/tst_oauth2codeflow.cpp
2026-05-07 21:59:28.000000000 +0200
@@ -821,6 +821,30 @@
QVERIFY(idTokenSpy.isEmpty());
QVERIFY(oauth2.idToken().isEmpty());
+ // Test granted openid scope when none was requested (QTBUG-145561), first
test:
+ // - 'openid' scope not requested by client but
+ // - 'openid' scope is granted by server and
+ // - 'id_token' not provided by server
+ oauth2.setRequestedScopeTokens({"read"});
+ oauth2.grant();
+ replyHandler.emitCallbackReceived({{"code"_L1, "acode"_L1}, {"state"_L1,
"a_state"_L1}});
+ replyHandler.emitTokensReceived({{"access_token"_L1, "at"_L1},
{"scope"_L1, "read openid"_L1}});
+ QTRY_COMPARE(oauth2.status(), QAbstractOAuth::Status::Granted);
+ QVERIFY(idTokenSpy.isEmpty());
+ QVERIFY(oauth2.idToken().isEmpty());
+ // - 'openid' scope not requested by client but
+ // - 'openid' scope is granted by server and
+ // - 'id_token' is provided by server
+ oauth2.setRequestedScopeTokens({"read"});
+ oauth2.grant();
+ replyHandler.emitCallbackReceived({{"code"_L1, "acode"_L1}, {"state"_L1,
"a_state"_L1}});
+ replyHandler.emitTokensReceived({{"access_token"_L1, "at"_L1},
{"scope"_L1, "read openid"_L1},
+ {"id_token"_L1,
"unsolicited_id_token"_L1}});
+ QTRY_COMPARE(oauth2.status(), QAbstractOAuth::Status::Granted);
+ QVERIFY(!idTokenSpy.isEmpty());
+ QCOMPARE(oauth2.idToken(), "unsolicited_id_token"_L1);
+ idTokenSpy.clear();
+
// Test with openid
// Note: using a proper JWT or setting the matching 'nonce' is not
required for this tests
// purpose as we don't currently validate the received token, but no harm
in being thorough
@@ -833,10 +857,28 @@
QCOMPARE(oauth2.idToken(), idToken);
QCOMPARE(idTokenSpy.size(), 1);
QCOMPARE(idTokenSpy.at(0).at(0).toByteArray(), idToken);
+ idTokenSpy.clear();
+
+ // Providing an id_token is not mandatory when refreshing tokens. Test
first with the id_token
+ oauth2.setRefreshToken("refresh_token"_L1);
+ oauth2.refreshTokens();
+ QTRY_COMPARE(oauth2.status(), QAbstractOAuth::Status::RefreshingToken);
+ replyHandler.emitTokensReceived({{"access_token"_L1, "at"_L1},
{"id_token"_L1, "fresh_id"}});
+ QCOMPARE(oauth2.status(), QAbstractOAuth::Status::Granted);
+ QCOMPARE(idTokenSpy.size(), 1);
+ QCOMPARE(oauth2.idToken(), "fresh_id"_L1);
+ // Test without providing id_token (also must not clear the pre-existing
id_token)
+ oauth2.refreshTokens();
+ QTRY_COMPARE(oauth2.status(), QAbstractOAuth::Status::RefreshingToken);
+ replyHandler.emitTokensReceived({{"access_token"_L1, "at"_L1}});
+ QCOMPARE(oauth2.status(), QAbstractOAuth::Status::Granted);
+ QCOMPARE(idTokenSpy.size(), 1);
+ QCOMPARE(oauth2.idToken(), "fresh_id"_L1);
// Test missing id_token error
QVERIFY(requestFailedSpy.isEmpty());
- const QRegularExpression tokenWarning{"Token request failed: \"ID token
not received\""};
+ const QRegularExpression tokenWarning{
+ "Token request failed: \"'openid' scope requested and granted but ID
token not received\""};
QTest::ignoreMessage(QtWarningMsg, tokenWarning);
oauth2.grant();
replyHandler.emitCallbackReceived({{"code"_L1, "acode"_L1}, {"state"_L1,
"a_state"_L1}});
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/qtnetworkauth-everywhere-src-6.11.0/tests/auto/oauthhttpserverreplyhandler/tst_oauthhttpserverreplyhandler.cpp
new/qtnetworkauth-everywhere-src-6.11.1/tests/auto/oauthhttpserverreplyhandler/tst_oauthhttpserverreplyhandler.cpp
---
old/qtnetworkauth-everywhere-src-6.11.0/tests/auto/oauthhttpserverreplyhandler/tst_oauthhttpserverreplyhandler.cpp
2026-03-09 10:39:33.000000000 +0100
+++
new/qtnetworkauth-everywhere-src-6.11.1/tests/auto/oauthhttpserverreplyhandler/tst_oauthhttpserverreplyhandler.cpp
2026-05-07 21:59:28.000000000 +0200
@@ -282,8 +282,9 @@
if (!success) {
QByteArray httpUri = callback.toEncoded(QUrl::RemoveScheme |
QUrl::RemoveAuthority | QUrl::RemoveFragment);
- QTest::ignoreMessage(QtWarningMsg, "Invalid request: " + httpUri);
- QTest::ignoreMessage(QtWarningMsg, "Invalid request: " + httpUri);
+ const QByteArray msg = "Invalid request: " + httpUri;
+ for (int i = 0; i < 2; ++i) // emitted more than once
+ QTest::ignoreMessage(QtWarningMsg, msg.data());
}
QTestEventLoop::instance().enterLoop(Timeout);
QCOMPARE(count > 0, success);
@@ -385,7 +386,8 @@
connect(&socket, &QTcpSocket::disconnected, &QTestEventLoop::instance(),
&QTestEventLoop::exitLoop);
- QTest::ignoreMessage(QtWarningMsg, "Invalid request: " +
uri.toLocal8Bit());
+ QTest::ignoreMessage(QtWarningMsg,
+ QByteArray{"Invalid request: " +
uri.toLocal8Bit()}.constData());
QTest::ignoreMessage(QtWarningMsg, "Invalid URL");
QTestEventLoop::instance().enterLoop(Timeout);