The `python-breathe` RPM does not currently work when building against Rawhide. Whilst running `sphinx-build`, a C++ error is thrown which kills the build: sphinx.errors.SphinxWarning: /builddir/breathe/documentation/source/specific.rst:195:Invalid C++ declaration: Expected identifier in nested name. [error at 0] The C++ file it's referencing is https://github.com/breathe-doc/breathe/blob/main/examples/specific/cpp_anon.h Logs from a scratch build: https://koji.fedoraproject.org/koji/taskinfo?taskID=102469036 Reproducible: Always Steps to Reproduce: 1. fedpkg clone python-breathe 2. fedpkg --release f39 mockbuild Actual Results: The build is aborted with this error: sphinx.errors.SphinxWarning: /builddir/breathe/documentation/source/specific.rst:195:Invalid C++ declaration: Expected identifier in nested name. [error at 0] Expected Results: The RPM should build successfully. There haven't been any commits to dist-git since the last release to Rawhide (https://bodhi.fedoraproject.org/updates/FEDORA-2023-74beae3e8f), but building that commit no longer works. Building the previous commit (the one currently on FC38) on FC39 throws the same error, but builds correctly against FC38.
This blocks the Python 3.12 rebuild of several other packages.
struct ClassWithAnonEntities { struct { int structMember; }; union { int unionMember; }; enum { Enumerator }; }; from cpp_anon.h, is valid. it builds with gcc,g++ the problem is likely with sphinx
reading sources... [100%] variable > /usr/lib/python3.11/site-packages/sphinx/util/logging.py(427)filter() -> raise exc (Pdb) make[1]: Leaving directory '/builddir/build/BUILD/breathe-4.35.0/documentation' fatal: not a git repository (or any of the parent directories): .git Exception occurred while building, starting debugger: Traceback (most recent call last): File "/usr/lib/python3.11/site-packages/sphinx/cmd/build.py", line 284, in build_main app.build(args.force_all, args.filenames) File "/usr/lib/python3.11/site-packages/sphinx/application.py", line 347, in build self.builder.build_update() File "/usr/lib/python3.11/site-packages/sphinx/builders/__init__.py", line 311, in build_update self.build(to_build, File "/usr/lib/python3.11/site-packages/sphinx/builders/__init__.py", line 326, in build with logging.pending_warnings(): File "/usr/lib64/python3.11/contextlib.py", line 144, in __exit__ next(self.gen) File "/usr/lib/python3.11/site-packages/sphinx/util/logging.py", line 222, in pending_warnings memhandler.flushTo(logger) File "/usr/lib/python3.11/site-packages/sphinx/util/logging.py", line 187, in flushTo logger.handle(record) File "/usr/lib64/python3.11/logging/__init__.py", line 1644, in handle self.callHandlers(record) File "/usr/lib64/python3.11/logging/__init__.py", line 1706, in callHandlers hdlr.handle(record) File "/usr/lib64/python3.11/logging/__init__.py", line 974, in handle rv = self.filter(record) ^^^^^^^^^^^^^^^^^^^ File "/usr/lib64/python3.11/logging/__init__.py", line 830, in filter result = f.filter(record) ^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/sphinx/util/logging.py", line 427, in filter raise exc sphinx.errors.SphinxWarning: /builddir/build/BUILD/breathe-4.35.0/documentation/source/specific.rst:195:Invalid C++ declaration: Expected identifier in nested name. [error at 0] ^ make[1]: *** [Makefile:56: html] Error 2 make: *** [Makefile:7: html] Error 2 error: Bad exit status from /var/tmp/rpm-tmp.oRkb7n (%build) Bad exit status from /var/tmp/rpm-tmp.oRkb7n (%build) Koschei does not indicate this was caused by a change in Sphinx, but by an update of doxygen: https://koschei.fedoraproject.org/build/15522602 Previous such problems were attributed to breathe: https://github.com/sphinx-doc/sphinx/issues/9433
I used an older doxygen build (doxygen-1.9.6-7.fc39) to unblock the Python 3.12 rebuild.
I reraised the issue upstream adding the findings from my debug attempt: https://github.com/breathe-doc/breathe/issues/935
Why is this not a doxygen bug ?
It might be.
This bug appears to have been reported against 'rawhide' during the Fedora Linux 39 development cycle. Changing version to 39.