Bug 2216878 - Invalid C++ Declaration When Building Breathe on Rawhide(39) since doxygen 1.9.7
Summary: Invalid C++ Declaration When Building Breathe on Rawhide(39) since doxygen 1.9.7
Keywords:
Status: NEW
Alias: None
Product: Fedora
Classification: Fedora
Component: python-breathe
Version: 39
Hardware: All
OS: Linux
unspecified
unspecified
Target Milestone: ---
Assignee: Dan Čermák
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks: F39FTBFS F40FTBFS, RAWHIDEFTBFS
TreeView+ depends on / blocked
 
Reported: 2023-06-23 01:10 UTC by Daniel Milnes
Modified: 2023-08-16 07:14 UTC (History)
11 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed:
Type: ---
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Github breathe-doc breathe issues 933 0 None closed Unable to Build Docs on Python 3.12 2023-07-01 21:32:32 UTC
Github breathe-doc breathe issues 935 0 None open Documentation fails to build with Doxygen 1.9.7 2023-07-03 11:43:44 UTC

Description Daniel Milnes 2023-06-23 01:10:34 UTC
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.

Comment 1 Miro Hrončok 2023-07-01 14:02:14 UTC
This blocks the Python 3.12 rebuild of several other packages.

Comment 2 Tom Rix 2023-07-01 20:40:04 UTC
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

Comment 3 Miro Hrončok 2023-07-01 21:30:18 UTC
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

Comment 4 Miro Hrončok 2023-07-03 11:08:16 UTC
I used an older doxygen build (doxygen-1.9.6-7.fc39) to unblock the Python 3.12 rebuild.

Comment 5 Karolina Surma 2023-07-03 11:43:45 UTC
I reraised the issue upstream adding the findings from my debug attempt: https://github.com/breathe-doc/breathe/issues/935

Comment 6 Tom Rix 2023-07-03 12:17:59 UTC
Why is this not a doxygen bug ?

Comment 7 Miro Hrončok 2023-07-03 12:33:35 UTC
It might be.

Comment 8 Fedora Release Engineering 2023-08-16 07:14:59 UTC
This bug appears to have been reported against 'rawhide' during the Fedora Linux 39 development cycle.
Changing version to 39.


Note You need to log in before you can comment on or make changes to this bug.