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-02-03 21:27:09
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/qt6-networkauth (Old)
 and      /work/SRC/openSUSE:Factory/.qt6-networkauth.new.1995 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "qt6-networkauth"

Tue Feb  3 21:27:09 2026 rev:40 rq:1330588 version:6.10.2

Changes:
--------
--- /work/SRC/openSUSE:Factory/qt6-networkauth/qt6-networkauth.changes  
2025-11-25 15:48:58.300669958 +0100
+++ 
/work/SRC/openSUSE:Factory/.qt6-networkauth.new.1995/qt6-networkauth.changes    
    2026-02-03 21:27:39.538960177 +0100
@@ -1,0 +2,6 @@
+Sat Jan 31 08:10:38 UTC 2026 - Christophe Marin <[email protected]>
+
+- Update to 6.10.2:
+  * https://www.qt.io/blog/qt-6.10.2-released
+
+-------------------------------------------------------------------

Old:
----
  qtnetworkauth-everywhere-src-6.10.1.tar.xz

New:
----
  qtnetworkauth-everywhere-src-6.10.2.tar.xz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ qt6-networkauth.spec ++++++
--- /var/tmp/diff_new_pack.elDeyw/_old  2026-02-03 21:27:40.286991573 +0100
+++ /var/tmp/diff_new_pack.elDeyw/_new  2026-02-03 21:27:40.290991741 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package qt6-networkauth
 #
-# Copyright (c) 2025 SUSE LLC and contributors
+# Copyright (c) 2026 SUSE LLC and contributors
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -16,7 +16,7 @@
 #
 
 
-%define real_version 6.10.1
+%define real_version 6.10.2
 %define short_version 6.10
 %define short_name qtnetworkauth
 %define tar_name qtnetworkauth-everywhere-src
@@ -28,7 +28,7 @@
 %endif
 #
 Name:           qt6-networkauth%{?pkg_suffix}
-Version:        6.10.1
+Version:        6.10.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.10.1.tar.xz -> 
qtnetworkauth-everywhere-src-6.10.2.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qtnetworkauth-everywhere-src-6.10.1/.cmake.conf 
new/qtnetworkauth-everywhere-src-6.10.2/.cmake.conf
--- old/qtnetworkauth-everywhere-src-6.10.1/.cmake.conf 2025-11-13 
17:35:26.000000000 +0100
+++ new/qtnetworkauth-everywhere-src-6.10.2/.cmake.conf 2026-01-20 
05:15:31.000000000 +0100
@@ -1,5 +1,7 @@
-set(QT_REPO_MODULE_VERSION "6.10.1")
+set(QT_REPO_MODULE_VERSION "6.10.2")
 set(QT_REPO_MODULE_PRERELEASE_VERSION_SEGMENT "alpha1")
-set(QT_EXTRA_INTERNAL_TARGET_DEFINES "QT_NO_AS_CONST=1")
-list(APPEND QT_EXTRA_INTERNAL_TARGET_DEFINES "QT_NO_FOREACH=1")
-list(APPEND QT_EXTRA_INTERNAL_TARGET_DEFINES "QT_NO_CONTEXTLESS_CONNECT=1")
+set(QT_EXTRA_INTERNAL_TARGET_DEFINES
+    "QT_NO_CONTEXTLESS_CONNECT=1"
+    "QT_NO_FOREACH=1"
+    "QT_NO_QASCONST=1"
+)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qtnetworkauth-everywhere-src-6.10.1/.tag 
new/qtnetworkauth-everywhere-src-6.10.2/.tag
--- old/qtnetworkauth-everywhere-src-6.10.1/.tag        2025-11-13 
17:35:26.000000000 +0100
+++ new/qtnetworkauth-everywhere-src-6.10.2/.tag        2026-01-20 
05:15:31.000000000 +0100
@@ -1 +1 @@
-4287152362078f54171d69e43d40ed523e80b869
+b3999f9967d65320369bb96b0ae91d810fd3fc38
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtnetworkauth-everywhere-src-6.10.1/dependencies.yaml 
new/qtnetworkauth-everywhere-src-6.10.2/dependencies.yaml
--- old/qtnetworkauth-everywhere-src-6.10.1/dependencies.yaml   2025-11-13 
17:35:26.000000000 +0100
+++ new/qtnetworkauth-everywhere-src-6.10.2/dependencies.yaml   2026-01-20 
05:15:31.000000000 +0100
@@ -1,4 +1,4 @@
 dependencies:
   ../qtbase:
-    ref: 90b845d15ffb97693dba527385db83510ebd121a
+    ref: 000d6c62f7880bb8d3054724e8da0b8ae244130e
     required: true
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtnetworkauth-everywhere-src-6.10.1/src/oauth/doc/qtnetworkauth.qdocconf 
new/qtnetworkauth-everywhere-src-6.10.2/src/oauth/doc/qtnetworkauth.qdocconf
--- 
old/qtnetworkauth-everywhere-src-6.10.1/src/oauth/doc/qtnetworkauth.qdocconf    
    2025-11-13 17:35:26.000000000 +0100
+++ 
new/qtnetworkauth-everywhere-src-6.10.2/src/oauth/doc/qtnetworkauth.qdocconf    
    2026-01-20 05:15:31.000000000 +0100
@@ -14,15 +14,20 @@
 qhp.QtNetworkAuth.indexTitle          = Qt Network Authorization
 qhp.QtNetworkAuth.indexRoot           =
 
-qhp.QtNetworkAuth.subprojects         = overview classes
-qhp.QtNetworkAuth.subprojects.overview.title = Overview
-qhp.QtNetworkAuth.subprojects.overview.indexTitle = OAuth 2.0 Overview
-qhp.QtNetworkAuth.subprojects.overview.selectors = group:none
-
-qhp.QtNetworkAuth.subprojects.classes.title = C++ Classes
-qhp.QtNetworkAuth.subprojects.classes.indexTitle = Qt Network Authorization 
C++ Classes
-qhp.QtNetworkAuth.subprojects.classes.selectors = class doc:headerfile
-qhp.QtNetworkAuth.subprojects.classes.sortPages = true
+qhp.QtNetworkAuth.subprojects         = manual examples classes
+qhp.QtNetworkAuth.subprojects.manual.title          = Qt Network Authorization
+qhp.QtNetworkAuth.subprojects.manual.indexTitle     = Qt Network Authorization 
module topics
+qhp.QtNetworkAuth.subprojects.manual.type           = manual
+
+qhp.QtNetworkAuth.subprojects.examples.title        = Examples
+qhp.QtNetworkAuth.subprojects.examples.indexTitle   = Qt Network Authorization 
Examples
+qhp.QtNetworkAuth.subprojects.examples.selectors    = example
+qhp.QtNetworkAuth.subprojects.examples.sortPages    = true
+
+qhp.QtNetworkAuth.subprojects.classes.title         = C++ Classes
+qhp.QtNetworkAuth.subprojects.classes.indexTitle    = Qt Network Authorization 
C++ Classes
+qhp.QtNetworkAuth.subprojects.classes.selectors     = class doc:headerfile
+qhp.QtNetworkAuth.subprojects.classes.sortPages     = true
 
 tagfile                 = qtnetworkauth.tags
 
@@ -40,5 +45,9 @@
 navigation.landingpage = "Qt Network Authorization"
 navigation.cppclassespage = "Qt Network Authorization C++ Classes"
 
+# Autogenerate navigation linking based on "Qt Network Authorization module 
topics":
+navigation.toctitles = "Qt Network Authorization module topics"
+navigation.toctitles.inclusive = false
+
 # Enforce zero documentation warnings
 warninglimit = 0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtnetworkauth-everywhere-src-6.10.1/src/oauth/doc/src/qtnetworkauth-security.qdoc
 
new/qtnetworkauth-everywhere-src-6.10.2/src/oauth/doc/src/qtnetworkauth-security.qdoc
--- 
old/qtnetworkauth-everywhere-src-6.10.1/src/oauth/doc/src/qtnetworkauth-security.qdoc
       1970-01-01 01:00:00.000000000 +0100
+++ 
new/qtnetworkauth-everywhere-src-6.10.2/src/oauth/doc/src/qtnetworkauth-security.qdoc
       2026-01-20 05:15:31.000000000 +0100
@@ -0,0 +1,138 @@
+// Copyright (C) 2025 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR 
GFDL-1.3-no-invariants-only
+
+/*!
+    \page qtnetworkauth-security
+    \title Qt Network Authorization Security Considerations
+    \ingroup security-considerations
+    \brief Access control, authorization, and authentication issues.
+
+    This page covers security considerations for applications using
+    \l{Qt Network Authorization}. Much of the content here focuses on
+    OAuth 2.0 Authorization Framework and OpenID.
+
+    Refer to \l{RFC 6749} for the OAuth 2.0 protocol flow and \l{RFC 8252} for
+    security issues regarding native applications.
+
+    \section1 Access control
+
+    Access control involves provisioning resources to users using a system for
+    checking identities and permissions. Access control then includes
+    authorization, authentication, and logging services. Qt Network
+    Authorization's API implements access control with focus on
+    OAuth 2.0 Authorization Framework. Qt Network Authorization supports the
+    Authorization Code flow (with PKCE) and the Device Authorization flow.
+
+    For systems, a deliberate separation according to privileges and
+    permissions is the first step of access control. User categories can
+    dictate the groups that may access certain resources and services.
+    Likewise, permissions on resources or services can dictate the available
+    actions on them. Request only the OAuth scopes your application needs.
+    Limiting scope reduces the potential impact if tokens are compromised.
+
+    Systems also must implement access management for flexibility and for
+    supervision. Provisioning access and services must be part of the system
+    design so that it is easy to add or remove users and resources without
+    compromising security. Activity logs aid audits and security
+    analysis.
+
+    A well known design is the \e {role-based access control} (RBAC).
+
+    \section1 Authentication and single sign-on
+
+    \e Authentication is checking for the identity of a user. Weak
+    authentication methods lead to granting access to the wrong users and can
+    result in private data exposure and execution of malicious actions.
+
+    Connected applications need to verify the identities of users that use
+    restricted resources. Typically, applications verify users by checking user
+    credentials such as username and password in an existing database. This
+    method is vulnerable to false authentications and data breaches. Many
+    mitigation techniques are about user behavior and applications can
+    enforce security policies such as requiring \e strong passwords.
+    Applications can use Qt's validators and widgets to guide users with
+    messages and by restricting the creation of weak passwords.
+
+    Using a centralized authentication system such as a single sign-on (SSO)
+    can minimize the mismanagement of passwords and identities.
+
+    \l{Qt Network Authorization} can retrieve JSON Web Tokens (JWT)
+    through OpenID Connect, an identity layer on top of OAuth 2.0.
+    Often, authentication and authorization are part of the same system.
+    Treat access tokens, refresh tokens, and ID tokens as sensitive data.
+    Store them securely using platform secure storage or encryption.
+    Do not store tokens in plain text.
+
+    \section1 Authorization and resource provision
+
+    \e Authorization is checking if a user has access to a resource based on
+    the user privileges and permissions on that resource. Without proper
+    authorization, users can access a resource and perform actions even though
+    they do not have the permission. Attackers can modify and reduce the
+    integrity of data or abuse resources, causing a denial of service.
+
+    As basic precaution, perform authorization checks before executing actions
+    that can lead to misuse of resources. This check can happen whenever users
+    access server-side resources. The users' privileges and the permissions on
+    the resources determine if the user may execute an action on the resource.
+    Additional authorization checks may be necessary according to the resource.
+    Revoke access and refresh tokens when users log out or when your
+    application no longer needs them.
+
+    \section1 Use an external user-agent
+
+    According to \l{RFC 8252}, applications can use either an
+    \e external or an \e embedded user-agent for the authorization
+    endpoint, as defined in \l{RFC 6749}{OAuth 2.0}. Embedded
+    user-agents are typically the webviews provided and controlled
+    within the application. External user-agents are the
+    system browsers or other applications not controlled by the
+    requesting application.
+
+    \l{RFC 8252} recommends using external user-agents rather than
+    embedded web views for authorization.
+    The application controls the embedded user-agent and fails to separate the
+    privileged access between the application and authorization node. This
+    setup is unsafe as the application can record keystrokes and can trick
+    users with a false sense of security. However, properly configured
+    embedded browsers like Qt WebEngine can also be used when external
+    user-agents are not practical.
+
+    Also, with the system browser as the external user-agent, browser
+    tabs and stored credentials can simplify the user experience. For
+    example, users can use their saved usernames and passwords in the
+    browser. Similarly, using password managers as the external
+    user-agent increases simplicity and trust.
+
+    \section1 PKCE and state parameter
+
+    \l{RFC 7636}{Proof Key for Code Exchange (PKCE)} protects against
+    authorization code interception attacks in the Authorization Code flow. Qt
+    Network Authorization enables PKCE by default.
+
+    Qt Network Authorization generates random state values by default to
+    prevent cross-site request forgery (CSRF) attacks. If you override
+    the state parameter, avoid using hard-coded strings.
+
+    \section1 Platform considerations
+
+    Redirect URI handling varies by platform. On \l{Mobile Platforms}
+    {mobile platforms}, HTTPS redirect URIs can be handled securely
+    through app-claimed URLs. On \l{desktop platforms}, HTTP redirect
+    URIs to localhost remain a valid option for native
+    applications.
+
+    \section1 Security resources for connected applications
+
+    Here are resources for cybersecurity guidance:
+
+    \list
+    \li \l{https://cwe.mitre.org/index.html}{Common Weakness Enumeration}
+    - A catalog of known issues and possible mitigation techniques.
+    \li \l{https://cheatsheetseries.owasp.org}{OWASP Cheat Sheet Series}
+    - A listing of various topics for securing applications.
+    \li \l{RFC 6749} - OAuth 2.0 Authorization Framework
+    \li \l{RFC 8252} - OAuth 2.0 for Native Apps
+    \li \l{RFC 7636} - Proof Key for Code Exchange (PKCE)
+    \endlist
+*/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtnetworkauth-everywhere-src-6.10.1/src/oauth/doc/src/qtnetworkauth-toc.qdoc
 
new/qtnetworkauth-everywhere-src-6.10.2/src/oauth/doc/src/qtnetworkauth-toc.qdoc
--- 
old/qtnetworkauth-everywhere-src-6.10.1/src/oauth/doc/src/qtnetworkauth-toc.qdoc
    1970-01-01 01:00:00.000000000 +0100
+++ 
new/qtnetworkauth-everywhere-src-6.10.2/src/oauth/doc/src/qtnetworkauth-toc.qdoc
    2026-01-20 05:15:31.000000000 +0100
@@ -0,0 +1,15 @@
+
+// Copyright (C) 2025 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR 
GFDL-1.3-no-invariants-only
+/*!
+    \page qtnetworkauth-toc.html
+    \title Qt Network Authorization module topics
+    The following list has links to all the individual topics (HTML files)
+    in the Qt Network Authorization module.
+
+    \list
+    \li \l {OAuth 2.0 Overview}{Overview}
+    \li \l {Qt OAuth2 Browser Support}{Browser Support}
+    \li \l {Qt Network Authorization Security Considerations}{Security 
Considerations}
+\endlist
+*/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtnetworkauth-everywhere-src-6.10.1/src/oauth/doc/src/qtnetworkauth.qdoc 
new/qtnetworkauth-everywhere-src-6.10.2/src/oauth/doc/src/qtnetworkauth.qdoc
--- 
old/qtnetworkauth-everywhere-src-6.10.1/src/oauth/doc/src/qtnetworkauth.qdoc    
    2025-11-13 17:35:26.000000000 +0100
+++ 
new/qtnetworkauth-everywhere-src-6.10.2/src/oauth/doc/src/qtnetworkauth.qdoc    
    2026-01-20 05:15:31.000000000 +0100
@@ -67,6 +67,8 @@
     \list
         \li \l {OAuth 2.0 Overview}
         \li \l {Qt OAuth2 Browser Support}
+        \li \l {Qt Network Authorization Security Considerations}
+               {Security Considerations}
     \endlist
 
     \section1 Licenses
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtnetworkauth-everywhere-src-6.10.1/src/oauth/qabstractoauth.h 
new/qtnetworkauth-everywhere-src-6.10.2/src/oauth/qabstractoauth.h
--- old/qtnetworkauth-everywhere-src-6.10.1/src/oauth/qabstractoauth.h  
2025-11-13 17:35:26.000000000 +0100
+++ new/qtnetworkauth-everywhere-src-6.10.2/src/oauth/qabstractoauth.h  
2026-01-20 05:15:31.000000000 +0100
@@ -30,9 +30,6 @@
 {
     Q_OBJECT
 
-    Q_ENUMS(Status)
-    Q_ENUMS(Stage)
-    Q_ENUMS(Error)
     Q_PROPERTY(QString clientIdentifier
                READ clientIdentifier
                WRITE setClientIdentifier
@@ -56,6 +53,7 @@
         Granted,
         RefreshingToken
     };
+    Q_ENUM(Status)
 
     enum class Stage {
         RequestingTemporaryCredentials,
@@ -63,6 +61,7 @@
         RequestingAccessToken,
         RefreshingAccessToken
     };
+    Q_ENUM(Stage)
 
     enum class Error {
         NoError,
@@ -76,6 +75,7 @@
         ClientError,
         ExpiredError,
     };
+    Q_ENUM(Error)
 
     enum class ContentType {
         WwwFormUrlEncoded,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtnetworkauth-everywhere-src-6.10.1/src/oauth/qabstractoauth2.cpp 
new/qtnetworkauth-everywhere-src-6.10.2/src/oauth/qabstractoauth2.cpp
--- old/qtnetworkauth-everywhere-src-6.10.1/src/oauth/qabstractoauth2.cpp       
2025-11-13 17:35:26.000000000 +0100
+++ new/qtnetworkauth-everywhere-src-6.10.2/src/oauth/qabstractoauth2.cpp       
2026-01-20 05:15:31.000000000 +0100
@@ -768,8 +768,8 @@
         // RFC 6749, Section 5.2 Error Response
         const QString uri = 
data.value(QtOAuth2RfcKeywords::errorUri).toString();
         const QString description = 
data.value(QtOAuth2RfcKeywords::errorDescription).toString();
-        qCWarning(loggingCategory, "Authorization stage: AuthenticationError: 
%s(%s): %s",
-                  qPrintable(error), qPrintable(uri), qPrintable(description));
+        qCWarning(loggingCategory, "Authorization stage: AuthenticationError: 
%ls(%ls): %ls",
+                  qUtf16Printable(error), qUtf16Printable(uri), 
qUtf16Printable(description));
 
 #if QT_DEPRECATED_SINCE(6, 13)
         QT_IGNORE_DEPRECATIONS(Q_EMIT q->error(error, description, uri);)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtnetworkauth-everywhere-src-6.10.1/src/oauth/qoauth2deviceauthorizationflow.cpp
 
new/qtnetworkauth-everywhere-src-6.10.2/src/oauth/qoauth2deviceauthorizationflow.cpp
--- 
old/qtnetworkauth-everywhere-src-6.10.1/src/oauth/qoauth2deviceauthorizationflow.cpp
        2025-11-13 17:35:26.000000000 +0100
+++ 
new/qtnetworkauth-everywhere-src-6.10.2/src/oauth/qoauth2deviceauthorizationflow.cpp
        2026-01-20 05:15:31.000000000 +0100
@@ -205,10 +205,10 @@
     const auto receivedExpiresIn = 
data.value(QtOAuth2RfcKeywords::expiresIn).toInt();
     QUrl receivedVerificationUrl;
     // The RFC keyword is 'verification_uri', but some auth servers provide 
'verification_url'
-    if (data.contains(QtOAuth2RfcKeywords::verificationUri))
-        receivedVerificationUrl = 
data.value(QtOAuth2RfcKeywords::verificationUri).toString();
-    else if (data.contains(QtOAuth2RfcKeywords::verificationUrl))
-        receivedVerificationUrl = 
data.value(QtOAuth2RfcKeywords::verificationUrl).toString();
+    if (auto it = data.find(QtOAuth2RfcKeywords::verificationUri); it != 
data.end())
+        receivedVerificationUrl.setUrl(it->toString());
+    else if (auto it = data.find(QtOAuth2RfcKeywords::verificationUrl); it != 
data.end())
+        receivedVerificationUrl.setUrl(it->toString());
 
     if (receivedDeviceCode.isEmpty() || receivedUserCode.isEmpty()
         || receivedVerificationUrl.isEmpty() || receivedExpiresIn <= 0) {
@@ -244,13 +244,10 @@
     QUrl receivedVerificationUrlComplete;
     // The RFC keyword is 'verification_uri_complete', but some auth servers
     // use 'verification_url_complete'
-    if (data.contains(QtOAuth2RfcKeywords::completeVerificationUri)) {
-        receivedVerificationUrlComplete =
-            
data.value(QtOAuth2RfcKeywords::completeVerificationUri).toString();
-    } else if (data.contains(QtOAuth2RfcKeywords::completeVerificationUrl)) {
-        receivedVerificationUrlComplete =
-            
data.value(QtOAuth2RfcKeywords::completeVerificationUrl).toString();
-    }
+    if (auto it = data.find(QtOAuth2RfcKeywords::completeVerificationUri); it 
!= data.end())
+        receivedVerificationUrlComplete.setUrl(it->toString());
+    else if (auto it = 
data.find(QtOAuth2RfcKeywords::completeVerificationUrl); it != data.end())
+        receivedVerificationUrlComplete.setUrl(it->toString());
 
     deviceCode = std::move(receivedDeviceCode);
     setUserCode(receivedUserCode);

Reply via email to