Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package CastXML for openSUSE:Factory checked in at 2026-09-24 22:59:46 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/CastXML (Old) and /work/SRC/openSUSE:Factory/.CastXML.new.383539 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "CastXML" Thu Sep 24 22:59:46 2026 rev:26 rq:1380154 version:0.8.0 Changes: -------- --- /work/SRC/openSUSE:Factory/CastXML/CastXML.changes 2026-09-16 17:50:59.522691811 +0200 +++ /work/SRC/openSUSE:Factory/.CastXML.new.383539/CastXML.changes 2026-09-24 23:02:00.655647534 +0200 @@ -1,0 +2,9 @@ +Thu Sep 24 10:21:25 UTC 2026 - Atri Bhattacharya <[email protected]> + +- Update to version 0.8.0: + * Output: Add usings attribute for class-scope using + declarations. + * Update for LLVM 23.1 compatibility. +- Drop CastXML-llvm-23-compat.patch: incorporated upstream. + +------------------------------------------------------------------- Old: ---- CastXML-0.7.0.tar.gz CastXML-llvm-23-compat.patch New: ---- CastXML-0.8.0.tar.gz ----------(Old B)---------- Old: * Update for LLVM 23.1 compatibility. - Drop CastXML-llvm-23-compat.patch: incorporated upstream. ----------(Old E)---------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ CastXML.spec ++++++ --- /var/tmp/diff_new_pack.1k0ncN/_old 2026-09-24 23:02:02.196711972 +0200 +++ /var/tmp/diff_new_pack.1k0ncN/_new 2026-09-24 23:02:02.199712097 +0200 @@ -17,15 +17,13 @@ Name: CastXML -Version: 0.7.0 +Version: 0.8.0 Release: 0 Summary: C-family Abstract Syntax Tree XML Output License: Apache-2.0 URL: https://github.com/CastXML/CastXML Source0: %{url}/archive/v%{version}.tar.gz#/%{name}-%{version}.tar.gz Source1: %{name}-rpmlintrc -# PATCH-FIX-UPSTREAM CastXML-llvm-23-compat.patch gh#CastXML/CastXML#298 [email protected] -- Port to LLVM/Clang Git 23 -Patch0: CastXML-llvm-23-compat.patch BuildRequires: clang-devel BuildRequires: cmake BuildRequires: fdupes ++++++ CastXML-0.7.0.tar.gz -> CastXML-0.8.0.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CastXML-0.7.0/CMakeLists.txt new/CastXML-0.8.0/CMakeLists.txt --- old/CastXML-0.7.0/CMakeLists.txt 2026-02-25 21:13:26.000000000 +0100 +++ new/CastXML-0.8.0/CMakeLists.txt 2026-09-23 16:58:15.000000000 +0200 @@ -142,7 +142,8 @@ string(APPEND CMAKE_EXE_LINKER_FLAGS " -STACK:10000000") endif() -add_definitions(${LLVM_DEFINITIONS}) +separate_arguments(LLVM_DEFINITIONS_LIST NATIVE_COMMAND ${LLVM_DEFINITIONS}) +add_definitions(${LLVM_DEFINITIONS_LIST}) include_directories(${CLANG_INCLUDE_DIRS}) include_directories(${LLVM_INCLUDE_DIRS}) link_directories(${LLVM_LIBRARY_DIRS}) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CastXML-0.7.0/README.rst new/CastXML-0.8.0/README.rst --- old/CastXML-0.7.0/README.rst 2026-02-25 21:13:26.000000000 +0100 +++ new/CastXML-0.8.0/README.rst 2026-09-23 16:58:15.000000000 +0200 @@ -47,7 +47,8 @@ * `LLVM/Clang`_ compiler SDK install tree built using the C++ compiler. This version of CastXML has been tested with LLVM/Clang - - Git ``master`` as of 2026-02-10 (``22c6b7047b``) + - Git ``main`` as of 2026-09-23 (``3bd7ee0215``) + - Release ``23.1`` - Release ``22.1`` - Release ``21.1`` - Release ``20.1`` diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CastXML-0.7.0/doc/manual/castxml.1.rst new/CastXML-0.8.0/doc/manual/castxml.1.rst --- old/CastXML-0.7.0/doc/manual/castxml.1.rst 2026-02-25 21:13:26.000000000 +0100 +++ new/CastXML-0.8.0/doc/manual/castxml.1.rst 2026-09-23 16:58:15.000000000 +0200 @@ -105,7 +105,7 @@ .. code-block:: xml - <CastXML format="1.4.0"> + <CastXML format="1.4.1"> * The first component is the ``epic`` format version number given to the ``--castxml-output=<v>`` flag, and currently must always be ``1``. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CastXML-0.7.0/doc/manual/castxml.xsd new/CastXML-0.8.0/doc/manual/castxml.xsd --- old/CastXML-0.7.0/doc/manual/castxml.xsd 2026-02-25 21:13:26.000000000 +0100 +++ new/CastXML-0.8.0/doc/manual/castxml.xsd 2026-09-23 16:58:15.000000000 +0200 @@ -49,6 +49,18 @@ </xs:restriction> </xs:simpleType> + <!-- A list of IDREFs, each prefixed by its access specifier + unless that is public. --> + <xs:simpleType name="access-prefixed-ids"> + <xs:list> + <xs:simpleType> + <xs:restriction base="xs:token"> + <xs:pattern value="(private:|protected:)?_[0-9]+" /> + </xs:restriction> + </xs:simpleType> + </xs:list> + </xs:simpleType> + <xs:simpleType name="elaboration-keyword"> <xs:restriction base="xs:token"> <xs:enumeration value="enum" /> @@ -171,17 +183,8 @@ <!-- All of the following attributes are for complete declarations only. --> <xs:attribute name="abstract" type="xs:int" use="optional" fixed="1" /> <xs:attribute name="members" type="xs:IDREFS" use="optional" /> - <xs:attribute name="bases" use="optional"> - <xs:simpleType> - <xs:list> - <xs:simpleType> - <xs:restriction base="xs:token"> - <xs:pattern value="(private:|protected:)?_[0-9]+" /> - </xs:restriction> - </xs:simpleType> - </xs:list> - </xs:simpleType> - </xs:attribute> + <xs:attribute name="bases" type="access-prefixed-ids" use="optional" /> + <xs:attribute name="usings" type="access-prefixed-ids" use="optional" /> <xs:attribute name="befriending" type="xs:IDREFS" use="optional" /> <xs:attributeGroup ref="optionalAbi" /> <xs:attribute name="attributes" type="attributes" use="optional" /> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CastXML-0.7.0/src/Output.cxx new/CastXML-0.8.0/src/Output.cxx --- old/CastXML-0.7.0/src/Output.cxx 2026-02-25 21:13:26.000000000 +0100 +++ new/CastXML-0.8.0/src/Output.cxx 2026-09-23 16:58:15.000000000 +0200 @@ -48,6 +48,7 @@ #include <queue> #include <set> #include <string> +#include <utility> #include <vector> #if LLVM_VERSION_MAJOR >= 21 @@ -119,6 +120,10 @@ # define isPureVirtual isPure #endif +#if LLVM_VERSION_MAJOR < 23 +# define getRawCommentNoCache getRawCommentForDeclNoCache +#endif + class ASTVisitorBase { protected: @@ -553,6 +558,13 @@ for later output. */ void PrintBasesAttribute(clang::CXXRecordDecl const* dx); + /** Print a usings="..." attribute listing the XML IDREFs named by + the class-scope using declarations of the given class type, each + prefixed by the access specifier the using declaration gives it + unless that is public. Also queues the referenced declarations + for later output. */ + void PrintUsingsAttribute(clang::CXXRecordDecl const* dx); + /** Print an attributes="..." attribute listing the given attributes. */ void PrintAttributesAttribute(std::vector<std::string> const& attrs); @@ -1833,6 +1845,42 @@ this->OS << "\""; } +void ASTVisitor::PrintUsingsAttribute(clang::CXXRecordDecl const* dx) +{ + std::vector<std::pair<clang::AccessSpecifier, DumpId>> usings; + for (clang::Decl const* d : dx->decls()) { + // This also covers ConstructorUsingShadowDecl for inherited + // constructors. + if (clang::UsingShadowDecl const* shadow = + clang::dyn_cast<clang::UsingShadowDecl>(d)) { + if (DumpId id = this->AddDeclDumpNode(shadow, true)) { + usings.push_back(std::make_pair(shadow->getAccess(), id)); + } + } + } + if (usings.empty()) { + return; + } + this->OS << " usings=\""; + char const* sep = ""; + for (std::pair<clang::AccessSpecifier, DumpId> const& u : usings) { + this->OS << sep; + sep = " "; + switch (u.first) { + case clang::AS_private: + this->OS << "private:"; + break; + case clang::AS_protected: + this->OS << "protected:"; + break; + default: + break; + } + this->OS << "_" << u.second; + } + this->OS << "\""; +} + void ASTVisitor::PrintAttributesAttribute( std::vector<std::string> const& attrs) { @@ -1973,7 +2021,7 @@ if (!this->Opts.CastXml) { return; } - if (clang::RawComment const* rc = this->CTX.getRawCommentForDeclNoCache(d)) { + if (clang::RawComment const* rc = this->CTX.getRawCommentNoCache(d)) { unsigned int index = ++this->CommentCount; CommentEntry e = { index, rc, dn }; this->CommentQueue.push(e); @@ -2301,6 +2349,10 @@ if (doBases) { this->PrintBasesAttribute(dx); } + // The gccxml format reproduces gccxml 0.9 and has no such attribute. + if (dx && this->Opts.CastXml) { + this->PrintUsingsAttribute(dx); + } this->PrintBefriendingAttribute(dx); } } else { @@ -2797,7 +2849,7 @@ // Start dump with castxml-compatible format. /* clang-format off */ this->OS << - "<CastXML format=\"" << Opts.CastXmlEpicFormatVersion << ".4.0\">\n" + "<CastXML format=\"" << Opts.CastXmlEpicFormatVersion << ".4.1\">\n" ; /* clang-format on */ } else if (this->Opts.GccXml) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CastXML-0.7.0/src/Version.cmake new/CastXML-0.8.0/src/Version.cmake --- old/CastXML-0.7.0/src/Version.cmake 2026-02-25 21:13:26.000000000 +0100 +++ new/CastXML-0.8.0/src/Version.cmake 2026-09-23 16:58:15.000000000 +0200 @@ -1,6 +1,6 @@ # CastXML version number components. set(CastXML_VERSION_MAJOR 0) -set(CastXML_VERSION_MINOR 7) +set(CastXML_VERSION_MINOR 8) set(CastXML_VERSION_PATCH 0) #set(CastXML_VERSION_RC 0) set(CastXML_VERSION_IS_DIRTY 0) @@ -13,7 +13,7 @@ endif() # If this source was exported by 'git archive', use its commit info. -set(git_info "2d52b47c CastXML 0.7.0") +set(git_info "6ebb3df6 CastXML 0.8.0") # Otherwise, try to identify the current development source version. if(NOT git_info MATCHES "^([0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]?[0-9a-f]?)[0-9a-f]* " diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CastXML-0.7.0/test/expect/castxml1.any.using-declaration-class.xml.txt new/CastXML-0.8.0/test/expect/castxml1.any.using-declaration-class.xml.txt --- old/CastXML-0.7.0/test/expect/castxml1.any.using-declaration-class.xml.txt 2026-02-25 21:13:26.000000000 +0100 +++ new/CastXML-0.8.0/test/expect/castxml1.any.using-declaration-class.xml.txt 2026-09-23 16:58:15.000000000 +0200 @@ -1,6 +1,6 @@ ^<\?xml version="1.0"\?> <CastXML[^>]*> - <Class id="_1" name="start" context="_2" location="f1:6" file="f1" line="6" members="_3 _4 _5 _6 _7 _8 _9 _10" bases="_11" size="[0-9]+" align="[0-9]+"> + <Class id="_1" name="start" context="_2" location="f1:6" file="f1" line="6" members="_3 _4 _5 _6 _7 _8 _9 _10" bases="_11" usings="private:_3" size="[0-9]+" align="[0-9]+"> <Base type="_11" access="public" virtual="0" offset="0"/> </Class> <Method id="_3" name="f" returns="_12" context="_11" access="protected" location="f1:4" file="f1" line="4" mangled="[^"]+"> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CastXML-0.7.0/test/expect/castxml1.c++98.using-declaration-class.xml.txt new/CastXML-0.8.0/test/expect/castxml1.c++98.using-declaration-class.xml.txt --- old/CastXML-0.7.0/test/expect/castxml1.c++98.using-declaration-class.xml.txt 2026-02-25 21:13:26.000000000 +0100 +++ new/CastXML-0.8.0/test/expect/castxml1.c++98.using-declaration-class.xml.txt 2026-09-23 16:58:15.000000000 +0200 @@ -1,6 +1,6 @@ ^<\?xml version="1.0"\?> <CastXML[^>]*> - <Class id="_1" name="start" context="_2" location="f1:6" file="f1" line="6" members="_3 _4 _5 _6 _7 _8" bases="_9" size="[0-9]+" align="[0-9]+"> + <Class id="_1" name="start" context="_2" location="f1:6" file="f1" line="6" members="_3 _4 _5 _6 _7 _8" bases="_9" usings="private:_3" size="[0-9]+" align="[0-9]+"> <Base type="_9" access="public" virtual="0" offset="0"/> </Class> <Method id="_3" name="f" returns="_10" context="_9" access="protected" location="f1:4" file="f1" line="4" mangled="[^"]+"> ++++++ _scmsync.obsinfo ++++++ --- /var/tmp/diff_new_pack.1k0ncN/_old 2026-09-24 23:02:02.987745048 +0200 +++ /var/tmp/diff_new_pack.1k0ncN/_new 2026-09-24 23:02:03.004745759 +0200 @@ -1,5 +1,5 @@ -mtime: 1789568471 -commit: 8c9d03c4457b802d62e6c0ecc8f9a4ac5344ff06cc1af5946f1f709b8522c954 +mtime: 1790245991 +commit: 11aad35b1a99986f63d87b25e5ecd2a08dd963ec40fcb7d22e65b769cd753249 url: https://src.opensuse.org/badshah400/CastXML revision: factory ++++++ build.specials.obscpio ++++++ ++++++ build.specials.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/.gitignore new/.gitignore --- old/.gitignore 1970-01-01 01:00:00.000000000 +0100 +++ new/.gitignore 2026-09-24 12:33:11.000000000 +0200 @@ -0,0 +1 @@ +.osc
