This patch upgrades doxygen to 1.11.0 (Obsoletes bug #276842) https://reviews.freebsd.org/D45371
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)
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
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)
(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
Created attachment 252653 [details] Patch for doxygen v3 Simplify prevention of utilizing git for version hash
Disable test that requires bibtex
Created attachment 256351 [details] Patch for doxygen v4
Chances are we may need to coordinate this upgrade with a py-breathe update so upgrading Doxygen does not break py-breathe.
...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/
Created attachment 256364 [details] Patch for doxygen v5
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.
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
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
Filed Doxygen bug https://github.com/doxygen/doxygen/issues/11323
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.
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.