Note: This is a public test instance of Red Hat Bugzilla. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback at bugzilla.redhat.com.
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: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: python-breathe
Version: 39
Hardware: All
OS: Linux
unspecified
unspecified
Target Milestone: ---
Assignee: Tom Rix
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks: F39FTBFS F40FTBFS
TreeView+ depends on / blocked
 
Reported: 2023-06-23 01:10 UTC by Daniel Milnes
Modified: 2024-01-20 03:22 UTC (History)
11 users (show)

Fixed In Version: python-breathe-4.35.0-8.fc39
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2024-01-20 03:22:45 UTC
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.

Comment 9 Fedora Release Engineering 2023-12-24 04:22:34 UTC
Dear Maintainer,

your package has an open Fails To Build From Source bug for Fedora 39.
Action is required from you.

If you can fix your package to build, perform a build in koji, and either create
an update in bodhi, or close this bug without creating an update, if updating is
not appropriate [1]. If you are working on a fix, set the status to ASSIGNED to
acknowledge this. If you have already fixed this issue, please close this Bugzilla report.

Following the policy for such packages [2], your package will be orphaned if
this bug remains in NEW state more than 8 weeks (not sooner than 2023-08-18).

A week before the mass branching of Fedora 40 according to the schedule [3],
any packages not successfully rebuilt at least on Fedora 38 will be
retired regardless of the status of this bug.

[1] https://docs.fedoraproject.org/en-US/fesco/Updates_Policy/
[2] https://docs.fedoraproject.org/en-US/fesco/Fails_to_build_from_source_Fails_to_install/
[3] https://fedorapeople.org/groups/schedule/f-40/f-40-key-tasks.html

Comment 10 Tom Rix 2023-12-24 13:27:53 UTC
Upstream has not changed in a while.

This change works around the doc problem and fixes a testing problem
https://src.fedoraproject.org/rpms/python-breathe/pull-request/18

Here is the scratch-build
https://koji.fedoraproject.org/koji/taskinfo?taskID=110781654

Comment 11 Fedora Update System 2024-01-11 23:40:18 UTC
FEDORA-2024-4d1528a1a4 has been submitted as an update to Fedora 39. https://bodhi.fedoraproject.org/updates/FEDORA-2024-4d1528a1a4

Comment 12 Fedora Update System 2024-01-12 02:04:57 UTC
FEDORA-2024-4d1528a1a4 has been pushed to the Fedora 39 testing repository.
Soon you'll be able to install the update with the following command:
`sudo dnf upgrade --enablerepo=updates-testing --refresh --advisory=FEDORA-2024-4d1528a1a4`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2024-4d1528a1a4

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 13 Fedora Update System 2024-01-20 03:22:45 UTC
FEDORA-2024-4d1528a1a4 has been pushed to the Fedora 39 stable repository.
If problem still persists, please make note of it in this bug report.


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