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)