Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package qt6-tools for openSUSE:Factory 
checked in at 2025-09-14 18:49:47
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/qt6-tools (Old)
 and      /work/SRC/openSUSE:Factory/.qt6-tools.new.1977 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "qt6-tools"

Sun Sep 14 18:49:47 2025 rev:52 rq:1304326 version:6.9.2

Changes:
--------
--- /work/SRC/openSUSE:Factory/qt6-tools/qt6-tools.changes      2025-08-29 
18:35:58.200021658 +0200
+++ /work/SRC/openSUSE:Factory/.qt6-tools.new.1977/qt6-tools.changes    
2025-09-14 18:50:36.127169252 +0200
@@ -1,0 +2,9 @@
+Fri Sep 12 07:15:59 UTC 2025 - Christophe Marin <christo...@krop.fr>
+
+- Add upstream changes for clang 21 compat
+  * 0001-configure-Move-QDoc-clang-versions-into-module.patch
+  * 0001-QDoc-Adapt-clang-AST-QualTypeNames.h-to-breaking-cha.patch
+  * 0001-QDoc-Bump-minimum-Clang-version-to-17.0.6.patch
+  * 0001-lupdate-remove-clang-parser.patch
+
+-------------------------------------------------------------------

New:
----
  0001-QDoc-Adapt-clang-AST-QualTypeNames.h-to-breaking-cha.patch
  0001-QDoc-Bump-minimum-Clang-version-to-17.0.6.patch
  0001-configure-Move-QDoc-clang-versions-into-module.patch
  0001-lupdate-remove-clang-parser.patch

----------(New B)----------
  New:  * 0001-configure-Move-QDoc-clang-versions-into-module.patch
  * 0001-QDoc-Adapt-clang-AST-QualTypeNames.h-to-breaking-cha.patch
  * 0001-QDoc-Bump-minimum-Clang-version-to-17.0.6.patch
  New:  * 0001-QDoc-Adapt-clang-AST-QualTypeNames.h-to-breaking-cha.patch
  * 0001-QDoc-Bump-minimum-Clang-version-to-17.0.6.patch
  * 0001-lupdate-remove-clang-parser.patch
  New:- Add upstream changes for clang 21 compat
  * 0001-configure-Move-QDoc-clang-versions-into-module.patch
  * 0001-QDoc-Adapt-clang-AST-QualTypeNames.h-to-breaking-cha.patch
  New:  * 0001-QDoc-Bump-minimum-Clang-version-to-17.0.6.patch
  * 0001-lupdate-remove-clang-parser.patch
----------(New E)----------

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

Other differences:
------------------
++++++ qt6-tools.spec ++++++
--- /var/tmp/diff_new_pack.UxexDZ/_old  2025-09-14 18:50:36.775196407 +0200
+++ /var/tmp/diff_new_pack.UxexDZ/_new  2025-09-14 18:50:36.775196407 +0200
@@ -45,6 +45,11 @@
 # The 48x48 icon was removed from qttools
 Source14:       linguist6.png
 Source99:       qt6-tools-rpmlintrc
+# PATCH-FIX-OPENSUSE -- LLVM 21 compat
+Patch0:         0001-configure-Move-QDoc-clang-versions-into-module.patch
+Patch1:         0001-QDoc-Adapt-clang-AST-QualTypeNames.h-to-breaking-cha.patch
+Patch2:         0001-QDoc-Bump-minimum-Clang-version-to-17.0.6.patch
+Patch3:         0001-lupdate-remove-clang-parser.patch
 # clang-devel in Leap 15 points to clang7...
 %if 0%{?suse_version} == 1500
 # Leap 15.6 has llvm 19 since 2025-02-12, we need to use it to avoid doc build 
issues

++++++ 0001-QDoc-Adapt-clang-AST-QualTypeNames.h-to-breaking-cha.patch ++++++
>From d796c8138e53d567858e4197a7842efef553573b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Bernhard=20Rosenkr=C3=A4nzer?= <b...@lindev.ch>
Date: Fri, 22 Aug 2025 20:05:08 +0200
Subject: [PATCH] QDoc: Adapt clang/AST/QualTypeNames.h to breaking change
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

For compatibility reasons, QDoc carries a custom implementation of
`llvm-project.git/clang/lib/AST/QualTypeNames.cpp`. When QDoc is built
against Clang libraries from LLVM 21, QDoc fails to compile with five
separate errors:

  - no matching member function for call to
    'getTemplateSpecializationType'
    note: candidate function not viable: requires at most 3 arguments,
    but 4 were provided
  - enumeration value 'TypeSpecWithTemplate' not handled in switch
  - no matching function for call to 'Create'
    note: candidate function not viable: no known conversion from 'const
    Type *' to 'const IdentifierInfo *'/'const NamespaceDecl *'/
    'const NamespaceAliasDecl *' for 3rd argument
  - no member named 'getQualifier' in 'clang::MemberPointerType

The issues relate to several changes upstream, notably commit
14f7bd63b95d0f61a6f47119ac66398ca230559a (see [0]).

This change addresses the issues by adapting QDoc's custom
implementation. The required changes are wrapped in preprocessor
conditionals to ensure correct behavior with LLVM versions prior to 21
as well as 21 and above. Consequentially, the change also adds 21.1 as a
supported Clang version for QDoc.

There is one case of output regression; the index file entry for
`QMediaMetaData::asKeyValueRange<const QHash<Key, QVariant>>` from
qtmultimedia.git and its signature in a list generated in qtdoc.git now
partly desugars `Key` by adding template argument qualification.
However, as this specific function is documented with an fn-command that
overrides the declared return type using `auto`, this is considered
acceptable and a matter to be addressed elsewhere.

[0] - https://github.com/llvm/llvm-project/pull/132401

Fixes: QTBUG-139407
Pick-to: 6.8
Change-Id: I2b1f88be27998eed6c03c9ebb068e21c6e9e3a17
Reviewed-by: Topi Reiniö <topi.rei...@qt.io>
Reviewed-by: Paul Wicking <paul.wick...@qt.io>
(cherry picked from commit 4abaf0687ea2008a65e2d9d9c81792b2858dbc5e)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_...@qt-project.org>
(cherry picked from commit c0cce3f50482df944a2e9434442b3d1237026e85)
---
 src/qdoc/cmake/QDocConfiguration.cmake        |  2 +-
 .../qdoc/src/qdoc/clang/AST/QualTypeNames.h   | 27 +++++++++++++++++--
 2 files changed, 26 insertions(+), 3 deletions(-)

diff --git a/src/qdoc/cmake/QDocConfiguration.cmake 
b/src/qdoc/cmake/QDocConfiguration.cmake
index b4ea6d5a0..8f627b199 100644
--- a/src/qdoc/cmake/QDocConfiguration.cmake
+++ b/src/qdoc/cmake/QDocConfiguration.cmake
@@ -8,6 +8,6 @@ set(QDOC_MINIMUM_CLANG_VERSION "17")
 
 # List of explicitly supported Clang versions for QDoc
 set(QDOC_SUPPORTED_CLANG_VERSIONS
-    "20.1" "19.1" "18.1" "17.0"
+    "21.1" "20.1" "19.1" "18.1" "17.0"
 )
 
diff --git a/src/qdoc/qdoc/src/qdoc/clang/AST/QualTypeNames.h 
b/src/qdoc/qdoc/src/qdoc/clang/AST/QualTypeNames.h
index 29a9250de..977859911 100644
--- a/src/qdoc/qdoc/src/qdoc/clang/AST/QualTypeNames.h
+++ b/src/qdoc/qdoc/src/qdoc/clang/AST/QualTypeNames.h
@@ -25,6 +25,7 @@ QT_WARNING_DISABLE_MSVC(4267)
 #include "clang/AST/DeclarationName.h"
 #include "clang/AST/GlobalDecl.h"
 #include "clang/AST/Mangle.h"
+#include "clang/Basic/Version.h"
 
 QT_WARNING_POP
 
@@ -160,9 +161,15 @@ static inline const Type 
*getFullyQualifiedTemplateType(const ASTContext &Ctx,
     // If a fully qualified arg is different from the unqualified arg,
     // allocate new type in the AST.
     if (MightHaveChanged) {
+#if CLANG_VERSION_MAJOR >= 21
+      QualType QT = Ctx.getTemplateSpecializationType(
+          TST->getTemplateName(), FQArgs, /*CanonicalArgs=*/{},
+          TST->getCanonicalTypeInternal());
+#else
       QualType QT = Ctx.getTemplateSpecializationType(
           TST->getTemplateName(), FQArgs,
           TST->getCanonicalTypeInternal());
+#endif
       // getTemplateSpecializationType returns a fully qualified
       // version of the specialization itself, so no need to qualify
       // it.
@@ -192,9 +199,15 @@ static inline const Type 
*getFullyQualifiedTemplateType(const ASTContext &Ctx,
       // allocate new type in the AST.
       if (MightHaveChanged) {
         TemplateName TN(TSTDecl->getSpecializedTemplate());
+#if CLANG_VERSION_MAJOR >= 21
+        QualType QT = Ctx.getTemplateSpecializationType(
+            TN, FQArgs, /*CanonicalArgs=*/{},
+            TSTRecord->getCanonicalTypeInternal());
+#else
         QualType QT = Ctx.getTemplateSpecializationType(
             TN, FQArgs,
             TSTRecord->getCanonicalTypeInternal());
+#endif
         // getTemplateSpecializationType returns a fully qualified
         // version of the specialization itself, so no need to qualify
         // it.
@@ -257,7 +270,10 @@ static inline NestedNameSpecifier 
*getFullyQualifiedNestedNameSpecifier(
           Ctx, Scope->getPrefix(), WithGlobalNsPrefix);
     case NestedNameSpecifier::Super:
     case NestedNameSpecifier::TypeSpec:
-    case NestedNameSpecifier::TypeSpecWithTemplate: {
+#if CLANG_VERSION_MAJOR < 21
+    case NestedNameSpecifier::TypeSpecWithTemplate:
+#endif
+    {
       const Type *Type = Scope->getAsType();
       // Find decl context.
       const TagDecl *TD = nullptr;
@@ -369,7 +385,10 @@ inline NestedNameSpecifier 
*createNestedNameSpecifier(const ASTContext &Ctx,
 
   return NestedNameSpecifier::Create(
       Ctx, createOuterNNS(Ctx, TD, FullyQualify, WithGlobalNsPrefix),
-      false /*No TemplateKeyword*/, TypePtr);
+#if CLANG_VERSION_MAJOR < 21
+      false /*No TemplateKeyword*/,
+#endif
+      TypePtr);
 }
 
 /// Return the fully qualified type, including fully-qualified
@@ -393,9 +412,13 @@ inline QualType getFullyQualifiedType(QualType QT, const 
ASTContext &Ctx,
     Qualifiers Quals = QT.getQualifiers();
     // Fully qualify the pointee and class types.
     QT = getFullyQualifiedType(QT->getPointeeType(), Ctx, WithGlobalNsPrefix);
+#if CLANG_VERSION_MAJOR >= 21
+    QT = Ctx.getMemberPointerType(QT, MPT->getQualifier(), 
MPT->getMostRecentCXXRecordDecl());
+#else
     QualType Class = getFullyQualifiedType(QualType(MPT->getClass(), 0), Ctx,
                                            WithGlobalNsPrefix);
     QT = Ctx.getMemberPointerType(QT, Class.getTypePtr());
+#endif
     // Add back the qualifiers.
     QT = Ctx.getQualifiedType(QT, Quals);
     return QT;
-- 
2.51.0


++++++ 0001-QDoc-Bump-minimum-Clang-version-to-17.0.6.patch ++++++
>From 02f94ce224260143fc11aa03f465f81b768d952f Mon Sep 17 00:00:00 2001
From: Paul Wicking <paul.wick...@qt.io>
Date: Tue, 19 Aug 2025 16:02:40 +0200
Subject: [PATCH] QDoc: Bump minimum Clang version to 17.0.6

17.0.6 is the version we build with and test against.

Task-number: QTBUG-139199
Pick-to: 6.10
Change-Id: I43bd6f91e30d77b12e9fbb25c6270147e54bf41b
Reviewed-by: David Boddie <david.bod...@qt.io>
---
 src/qdoc/cmake/QDocConfiguration.cmake | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/qdoc/cmake/QDocConfiguration.cmake 
b/src/qdoc/cmake/QDocConfiguration.cmake
index 8f627b1..aceeb92 100644
--- a/src/qdoc/cmake/QDocConfiguration.cmake
+++ b/src/qdoc/cmake/QDocConfiguration.cmake
@@ -8,6 +8,6 @@ set(QDOC_MINIMUM_CLANG_VERSION "17")
 
 # List of explicitly supported Clang versions for QDoc
 set(QDOC_SUPPORTED_CLANG_VERSIONS
-    "21.1" "20.1" "19.1" "18.1" "17.0"
+    "21.1" "20.1" "19.1" "18.1" "17.0.6"
 )
 
-- 
2.51.0


++++++ 0001-configure-Move-QDoc-clang-versions-into-module.patch ++++++
>From e2f79a321ec44a57451e2d1cfff8b5313e09a5cf Mon Sep 17 00:00:00 2001
From: Paul Wicking <paul.wick...@qt.io>
Date: Thu, 31 Jul 2025 21:54:41 +0200
Subject: [PATCH] configure: Move QDoc clang versions into module
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Previously, QDoc’s minimum and explicitly supported Clang versions were
defined in `.cmake.conf`, mixing tool-specific policy with repo-global
settings. These values also lived far from the QDoc configure logic and
messages that consume them.

This made updates easy to miss during QDoc changes and forced edits to
the top-level file for QDoc-only adjustments, adding noise to reviews.

This change introduces `src/qdoc/cmake/QDocConfiguration.cmake` and
moves QDOC_MINIMUM_CLANG_VERSION and QDOC_SUPPORTED_CLANG_VERSIONS
there. `configure.cmake` now includes this module alongside
`QDocConfigureMessages.cmake`, and the top-level definitions are
removed.

Behavior is unchanged. The configuration is now localized with the rest
of QDoc’s CMake logic, improving discoverability and making future edits
safer.

Task-number: QTBUG-137569
Pick-to: 6.8
Change-Id: I3ff0f8f1a9f19064b039c860adf6cae2e94aed47
Reviewed-by: Joerg Bornemann <joerg.bornem...@qt.io>
(cherry picked from commit 2bf422652f9e305d360d691c86e38bb14e4ed0ef)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_...@qt-project.org>
(cherry picked from commit 91c40ac86f5d3bf4c827370c0ee9abea11e95318)
---
 .cmake.conf                            |  4 ----
 configure.cmake                        |  3 +++
 src/qdoc/cmake/QDocConfiguration.cmake | 13 +++++++++++++
 3 files changed, 16 insertions(+), 4 deletions(-)
 create mode 100644 src/qdoc/cmake/QDocConfiguration.cmake

diff --git a/.cmake.conf b/.cmake.conf
index ce79f79..9288c11 100644
--- a/.cmake.conf
+++ b/.cmake.conf
@@ -1,9 +1,5 @@
 set(QT_REPO_MODULE_VERSION "6.9.2")
 set(QT_REPO_MODULE_PRERELEASE_VERSION_SEGMENT "alpha1")
 set(QT_EXTRA_INTERNAL_TARGET_DEFINES "QT_NO_AS_CONST=1")
-set(QDOC_MINIMUM_CLANG_VERSION "17")
-set(QDOC_SUPPORTED_CLANG_VERSIONS
-    "20.1" "19.1" "18.1" "17.0"
-)
 list(APPEND QT_EXTRA_INTERNAL_TARGET_DEFINES "QT_NO_FOREACH=1")
 list(APPEND QT_EXTRA_INTERNAL_TARGET_DEFINES "QT_NO_CONTEXTLESS_CONNECT=1")
diff --git a/configure.cmake b/configure.cmake
index 798078a..c90348c 100644
--- a/configure.cmake
+++ b/configure.cmake
@@ -1,6 +1,9 @@
 # Copyright (C) 2022 The Qt Company Ltd.
 # SPDX-License-Identifier: BSD-3-Clause
 
+# Include QDoc-specific configuration early (needed for feature definitions)
+include(${CMAKE_CURRENT_LIST_DIR}/src/qdoc/cmake/QDocConfiguration.cmake)
+
 #### Tests
 
 qt_find_package(WrapLibClang 8 PROVIDED_TARGETS WrapLibClang::WrapLibClang)
diff --git a/src/qdoc/cmake/QDocConfiguration.cmake 
b/src/qdoc/cmake/QDocConfiguration.cmake
new file mode 100644
index 0000000..b4ea6d5
--- /dev/null
+++ b/src/qdoc/cmake/QDocConfiguration.cmake
@@ -0,0 +1,13 @@
+# Copyright (C) 2025 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
+# QDoc-specific configuration variables
+
+# Minimum supported Clang version for QDoc
+set(QDOC_MINIMUM_CLANG_VERSION "17")
+
+# List of explicitly supported Clang versions for QDoc
+set(QDOC_SUPPORTED_CLANG_VERSIONS
+    "20.1" "19.1" "18.1" "17.0"
+)
+
-- 
2.51.0


++++++ 0001-lupdate-remove-clang-parser.patch ++++++
++++ 7973 lines (skipped)

Reply via email to