Bug 279330 - devel/doxygen: upgrade to 1.13.1
Summary: devel/doxygen: upgrade to 1.13.1
Status: Open
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Only Me
Assignee: Dima Panov
URL: https://www.doxygen.nl/manual/changel...
Keywords:
Depends on: 259331
Blocks:
  Show dependency treegraph
 
Reported: 2024-05-26 17:24 UTC by Joerg Wunsch
Modified: 2025-02-12 11:21 UTC (History)
5 users (show)

See Also:
bugzilla: maintainer-feedback? (fluffy)


Attachments
Patch for doxygen (20.57 KB, patch)
2024-05-26 18:34 UTC, Daniel Engberg
no flags Details | Diff
Patch for doxygen v2 (20.71 KB, patch)
2024-05-26 18:59 UTC, Daniel Engberg
no flags Details | Diff
Patch for doxygen v3 (18.45 KB, patch)
2024-08-10 12:11 UTC, Daniel Engberg
no flags Details | Diff
Patch for doxygen v4 (18.45 KB, patch)
2025-01-02 18:12 UTC, Daniel Engberg
no flags Details | Diff
Patch for doxygen v5 (18.45 KB, patch)
2025-01-03 05:52 UTC, Daniel Engberg
no flags Details | Diff
shell script used with "git bisect run" on a checkout of upstream Doxygen (2.33 KB, text/plain)
2025-01-05 22:23 UTC, Matthias Andree
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Joerg Wunsch freebsd_committer freebsd_triage 2024-05-26 17:24:53 UTC
This patch upgrades doxygen to 1.11.0

(Obsoletes bug #276842)

https://reviews.freebsd.org/D45371
Comment 1 Daniel Engberg freebsd_committer freebsd_triage 2024-05-26 18:34:18 UTC
Created attachment 250994 [details]
Patch for doxygen

Alternative version,

* Switch from PORTVERSION to DISTVERSION
* Update MASTER_SITES, use GitHub as primare and doxygen.nl as fallback (also switch to https while at it)
* Don't abuse EXTRACT_SUFX, use DISTNAME
* Backport upstream commits c3a95560df0590cf2cb4ada788027f0e49cbf83b and 28b51a7f199d003b309e9dab52457759d5fd7691
* Update WWW to https://www.doxygen.nl/ (.org redirects to .nl)
* Drop USES= dos2unix and shebangfix
* Use sqlite and (lib)spdlog from tree instead of bundled versions
* Remove ALL_TARGETS, unnecessary
* Define "LDFLAGS+= -Wl,--as-needed" to prevent overlinking
* Do some rearrangement of Makefile for better readability and to follow Porters Handbook more closely
* Drop libmd5 --> (lib)md-patches
* Remove Git hacks to determine version

Compile tested on FreeBSD 14.0-RELEASE (amd64) (make, make check-plist)

Poudriere testport OK 14.0-RELEASE (amd64)
Poudriere testport OK 13.2-RELEASE (amd64) (incl QT5 enabled)
Poudriere testport OK 13.3-RELEASE (amd64)
Comment 2 Daniel Engberg freebsd_committer freebsd_triage 2024-05-26 18:50:33 UTC
Forgot to add references to backports:

https://github.com/doxygen/doxygen/commit/c3a95560df0590cf2cb4ada788027f0e49cbf83b
https://github.com/doxygen/doxygen/commit/28b51a7f199d003b309e9dab52457759d5fd7691
The latter fixes a buffer overflow in Markdown parser

Best regards,
Daniel
Comment 3 Daniel Engberg freebsd_committer freebsd_triage 2024-05-26 18:59:51 UTC
Created attachment 250995 [details]
Patch for doxygen v2

Add back LATEX option, I though it was a build dependency but it's a runtime dep
Add "make test" (passes on 14.0-RELEASE (amd64)
Comment 4 Dima Panov freebsd_committer freebsd_triage 2024-05-31 07:36:07 UTC
(In reply to Daniel Engberg from comment #3)
Daniel, thanks!

I'll run a local exp-run to catch plist changes for all doxy consumers
Comment 5 Daniel Engberg freebsd_committer freebsd_triage 2024-08-10 12:11:28 UTC
Created attachment 252653 [details]
Patch for doxygen v3

Simplify prevention of utilizing git for version hash
Comment 6 Daniel Engberg freebsd_committer freebsd_triage 2024-08-10 12:13:53 UTC
Disable test that requires bibtex
Comment 7 Daniel Engberg freebsd_committer freebsd_triage 2025-01-02 18:12:14 UTC
Created attachment 256351 [details]
Patch for doxygen v4
Comment 8 Matthias Andree freebsd_committer freebsd_triage 2025-01-02 22:53:38 UTC
Chances are we may need to coordinate this upgrade with a py-breathe update so upgrading Doxygen does not break py-breathe.
Comment 9 Matthias Andree freebsd_committer freebsd_triage 2025-01-02 23:35:54 UTC
...and perhaps py-sphinx also needs an upgrade. Our version is really old (5.3.0) with an 8.1.3 on offer upstream.

This happens with Doxygen 1.13.1 installed (released today, diizzy@ is about to prepare a new patch) when building py-breathe:

sphinx.errors.SphinxWarning: /usr/ports/devel/py-breathe/work-py311/breathe-4.35.0/documentation/source/class.rst:82:doxygenclass: Cannot find class "TemplateClass< T * >" in doxygen xml output for project "template_specialisation" from directory: ../../examples/specific/template_specialisation/xml/
Comment 10 Daniel Engberg freebsd_committer freebsd_triage 2025-01-03 05:52:16 UTC
Created attachment 256364 [details]
Patch for doxygen v5
Comment 11 Matthias Andree freebsd_committer freebsd_triage 2025-01-03 14:37:57 UTC
so, updating sphinx to 8.1.3 in addition to updating Doxygen does not fix the py-breathe build issue either. More investigation into py-breathe needed.
Comment 12 Dima Panov freebsd_committer freebsd_triage 2025-01-04 20:00:08 UTC
py-breathe still not support Doxygen 1.9.7+ yet, this is a main reason to delay update. 
Upstream have open pull request since 2023 but no plans to incorporate it declared. 

https://github.com/breathe-doc/breathe/pull/934
Comment 13 Matthias Andree freebsd_committer freebsd_triage 2025-01-05 22:23:40 UTC
Created attachment 256459 [details]
shell script used with "git bisect run" on a checkout of upstream Doxygen

(In reply to Dima Panov from comment #12)
This PR is a bit unwieldy and I don't expect someone to review 24,000+ lines of changes. This must be something that is a screenful, maybe two. At least it's no more than two screenfuls that broke it :-)

In order to find a starting point, after sphinx upgrades were to not much avail, except 

I did something else instead; experimented with sphinx versions to no avail except https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=283871 which files down one rough edge in sphinxcontrib-applehelp from a future textproc/py-sphinx upgrade to a newer version,

and then resorted to bisecting Doxygen with a script good for git bisect run... on 2nd attempt (I figured I needed git purge the build directory including its cache to avoid bogus source-not-found build failures from the cmake cache), this resulted in - relating to https://github.com/doxygen/doxygen.git - as bisect result on Doxygen:

a18e4c76ed6415893800c7d77a2f798614fb638b is the first bad commit
commit a18e4c76ed6415893800c7d77a2f798614fb638b
Author: albert-github <albert.tests@gmail.com>
Date:   Wed Apr 12 15:04:23 2023 +0200

    bug 473140 Broken anonymous union data in XML
    
    Remove artificial anonymous identification (at the known places).

 src/xmlgen.cpp                                | 47 ++++++++++++++++++---------
 testing/071/namespace_a_namespace_1_1_0d0.xml |  4 +--
 testing/073/073__typed__enum_8cpp.xml         |  4 +--
 3 files changed, 36 insertions(+), 19 deletions(-)

This departed from Doxygen Release_1_9_6 as good and current master, hash value d9ac09659a5ec370892b82bb5bc931681ca47510, as bad.  Some comments are in German.

$ git bisect log
git bisect start
# Status: warte auf guten und schlechten Commit
# good: [4586b5cfaa3d46d51f6a51882951d15644c49edf] Update changelog for release 1.9.6
git bisect good 4586b5cfaa3d46d51f6a51882951d15644c49edf
# Status: warte auf schlechten Commit, 1 guter Commit bekannt
# bad: [d9ac09659a5ec370892b82bb5bc931681ca47510] issue #11314 "Copy to clipboard" button broken with XHTML
git bisect bad d9ac09659a5ec370892b82bb5bc931681ca47510
# bad: [627ee6dcb36da420995b3d142577482684008c4e] issue #10449 \include{doc} ignores EXAMPLE_PATH
git bisect bad 627ee6dcb36da420995b3d142577482684008c4e
# bad: [ca65fd0bbb717a3f65e64bfcebe36a5debba66fa] Refactoring: make use of C++17 structured bindings
git bisect bad ca65fd0bbb717a3f65e64bfcebe36a5debba66fa
# good: [5b5f1534ab4d5885c6f9537910831a6489f33af2] Merge branch 'master' of github.com:doxygen/doxygen
git bisect good 5b5f1534ab4d5885c6f9537910831a6489f33af2
# good: [d992c7ae1363cf639c482293db19499922260277] Merge pull request #9980 from albert-github/feature/bug_docu_htmlcmds
git bisect good d992c7ae1363cf639c482293db19499922260277
# bad: [a74d92ae9399a49c7bec76efbd707250d67d0f2a] Merge pull request #10007 from albert-github/feature/bug_cnt_md_atx
git bisect bad a74d92ae9399a49c7bec76efbd707250d67d0f2a
# bad: [5189f59d67cc3095674385aca8063a03045be89d] Merge branch 'mtc-mlx-mtc/latex-group-hierarchy'
git bisect bad 5189f59d67cc3095674385aca8063a03045be89d
# bad: [e82eb213580e9603fe6e54437b2b650ce269d3fa] Merge branch 'feature/bug_dot_legend' of https://github.com/albert-github/doxygen into albert-github-feature/bug_dot_legend
git bisect bad e82eb213580e9603fe6e54437b2b650ce269d3fa
# bad: [6e2b2b9acc43505caae4033720075659fd83692a] Refactoring: embed TokenInfo in doctokenizer as value instead of pointer
git bisect bad 6e2b2b9acc43505caae4033720075659fd83692a
# bad: [367e7b3fed0e376ab7411c71fa2bc77dbcaeea67] Merge branch 'albert-github-feature/bug_473140'
git bisect bad 367e7b3fed0e376ab7411c71fa2bc77dbcaeea67
# good: [99c5ed0395ebff06c61646412ee07ccff97c01e7] Merge pull request #9978 from albert-github/feature/bug_latex_warnings
git bisect good 99c5ed0395ebff06c61646412ee07ccff97c01e7
# bad: [36ca0f47aa0409323632f7d79a77612924ea79fa] Merge branch 'feature/bug_473140' of https://github.com/albert-github/doxygen into albert-github-feature/bug_473140
git bisect bad 36ca0f47aa0409323632f7d79a77612924ea79fa
# bad: [a18e4c76ed6415893800c7d77a2f798614fb638b] bug 473140 Broken anonymous union data in XML
git bisect bad a18e4c76ed6415893800c7d77a2f798614fb638b
# first bad commit: [a18e4c76ed6415893800c7d77a2f798614fb638b] bug 473140 Broken anonymous union data in XML
Comment 14 Matthias Andree freebsd_committer freebsd_triage 2025-01-05 22:39:10 UTC
Filed Doxygen bug https://github.com/doxygen/doxygen/issues/11323
Comment 15 Matthias Andree freebsd_committer freebsd_triage 2025-01-05 22:54:05 UTC
This was already filed and debugged with https://github.com/breathe-doc/breathe/issues/935 which I missed in earlier searches. I have linked this, too. See Dima's comment https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=279330#c12.
Comment 16 Robert Clausecker freebsd_committer freebsd_triage 2025-02-12 11:21:38 UTC
doxygen version 1.10.0 is required for a port I would like to add to the ports collection.

As only 4 ports depend on py-breathe, it may be easiest to temporarily disable py-breathe and remove docs from the ports that use it.  Alternatively, a port devel/doxygen196 could be added and ports using py-breathe be migrated to it, until py-breathe can be fixed.