git: 1f307e30bcf0 - main - devel/doxygen: update to 1.18.0 release (+)

From: Dima Panov <fluffy_at_FreeBSD.org>
Date: Fri, 04 Sep 2026 13:56:04 UTC
The branch main has been updated by fluffy:

URL: https://cgit.FreeBSD.org/ports/commit/?id=1f307e30bcf01ae2210b2c2b3dc89a0b8987f9a3

commit 1f307e30bcf01ae2210b2c2b3dc89a0b8987f9a3
Author:     Dima Panov <fluffy@FreeBSD.org>
AuthorDate: 2026-09-04 13:21:35 +0000
Commit:     Dima Panov <fluffy@FreeBSD.org>
CommitDate: 2026-09-04 13:55:56 +0000

    devel/doxygen: update to 1.18.0 release (+)
    
    PR:     279330
---
 devel/doxygen/Makefile                             | 97 ++++++++++++----------
 devel/doxygen/distinfo                             | 14 +---
 devel/doxygen/files/patch-CMakeLists.txt           | 29 +++++--
 devel/doxygen/files/patch-TinyDeflate_gunzip.hh    | 37 ---------
 .../files/patch-addon_doxywizard_CMakeLists.txt    | 18 ----
 .../doxygen/files/patch-doc__internal_Doxyfile.in  | 12 ---
 devel/doxygen/files/patch-doc_doxygen__manual.tex  | 11 ---
 devel/doxygen/files/patch-doc_translator.py        | 23 -----
 devel/doxygen/files/patch-examples_CMakeLists.txt  | 47 -----------
 devel/doxygen/files/patch-src_CMakeLists.txt       | 28 -------
 devel/doxygen/files/patch-src_constexp.y           | 11 ---
 devel/doxygen/files/patch-src_definition.cpp       | 26 ------
 devel/doxygen/files/patch-src_dirdef.cpp           | 23 -----
 devel/doxygen/files/patch-src_dotgraph.cpp         | 26 ------
 devel/doxygen/files/patch-src_memberdef.cpp        | 23 -----
 devel/doxygen/files/patch-src_membergroup.cpp      | 11 ---
 devel/doxygen/files/patch-src_util.cpp             | 54 ------------
 .../doxygen/files/patch-vhdlparser_CMakeLists.txt  | 13 ---
 18 files changed, 78 insertions(+), 425 deletions(-)

diff --git a/devel/doxygen/Makefile b/devel/doxygen/Makefile
index 388919c85eda..075a4b5a7142 100644
--- a/devel/doxygen/Makefile
+++ b/devel/doxygen/Makefile
@@ -1,41 +1,54 @@
 PORTNAME=	doxygen
-PORTVERSION=	1.9.6
-PORTREVISION=	4
+DISTVERSIONPREFIX=	Release_
+DISTVERSION=	1.18.0
 PORTEPOCH=	2
 CATEGORIES=	devel
-MASTER_SITES=	SF/${PORTNAME}/rel-${PORTVERSION} \
-		http://doxygen.nl/files/
-EXTRACT_SUFX=	.src.tar.gz
-
-PATCH_SITES=	https://github.com/doxygen/doxygen/commit/
-PATCHFILES=	966d69c603b5a6ae22e3132b6ecc6a39b86e52ab.patch:-p1 \
-		7b2a6027775b0158304635a98de0f9b5672f163a.patch:-p1 \
-		f3514d578633cad3e39d6787f81085e46bafbaf4.patch:-p1 \
-		8129939c312e4b5060042fdb93bd071b7b133381.patch:-p1
+MASTER_SITES=	https://github.com/${PORTNAME}/${PORTNAME}/releases/download/Release_${DISTVERSION:C/\./_/g}/ \
+		https://doxygen.nl/files/
+DISTNAME=	${PORTNAME}-${DISTVERSION}.src
 
 MAINTAINER=	fluffy@FreeBSD.org
 COMMENT=	Documentation system for C, C++, and other languages
-WWW=		https://www.doxygen.org/
+WWW=		https://www.doxygen.nl/
 
 LICENSE=	GPLv2
 LICENSE_FILE=	${WRKSRC}/LICENSE
 
-USES=		bison cmake compiler:c++17-lang cpe dos2unix \
-		iconv python shebangfix
+LIB_DEPENDS=	libfmt.so:devel/libfmt \
+		libspdlog.so:devel/spdlog
+TEST_DEPENDS=	${LOCALBASE}/bin/xmllint:textproc/libxml2
+
+USES=		bison cmake compiler:c++20-lang cpe iconv \
+		localbase:ldflags python:build sqlite
+
+EXTRACT_CMD=	${SETENV} LC_ALL=C.UTF-8 ${TAR}
+EXTRACT_AFTER_ARGS=	--exclude ${PORTNAME}-${DISTVERSION}/deps/fmt \
+			--exclude ${PORTNAME}-${DISTVERSION}/deps/spdlog \
+			--exclude ${PORTNAME}-${DISTVERSION}/deps/sqlite3 \
+			--no-same-owner --no-same-permissions
+
+WRKSRC=		${WRKDIR}/${PORTNAME}-${DISTVERSION}
 
-ALL_TARGET=	all
-CMAKE_ARGS+=	-DDOC_INSTALL_DIR:PATH=${DOCSDIR_REL}
-CMAKE_ARGS+=	-DCMAKE_POLICY_DEFAULT_CMP0116=OLD  # temporary workaround for old Doxygen
-CMAKE_ARGS+=	-DCMAKE_POLICY_DEFAULT_CMP0148=OLD  # temporary workaround for old Doxygen
+LDFLAGS+=	-Wl,--as-needed
 
-EXTRACT_AFTER_ARGS=	--exclude '*/libmd5'
+PORTDOCS=	*
+PLIST_FILES=	bin/doxygen \
+		share/man/man1/doxygen.1.gz
 
-DOS2UNIX_FILES=	doc/translator.py
-PLIST_FILES=	bin/doxygen
+TEST_TARGET=	test
 
-OPTIONS_DEFINE=	DOCS GRAPHVIZ LATEX SEARCH QT5
-OPTIONS_DEFAULT=	GRAPHVIZ
-QT5_DESC=	Install Doxywizard GUI with Qt5
+CMAKE_ON=	CMAKE_DISABLE_FIND_PACKAGE_generateDS \
+		use_sys_fmt \
+		use_sys_spdlog \
+		use_sys_sqlite3
+CMAKE_ARGS=	-DDOC_INSTALL_DIR:PATH=${DOCSDIR_REL} \
+		-DGIT_EXECUTABLE:STRING=false \
+		-DCMAKE_CTEST_ARGUMENTS="-E;012_cite"
+
+OPTIONS_DEFINE=	DOCS GRAPHVIZ LATEX QT6 SEARCH
+OPTIONS_DEFAULT=GRAPHVIZ
+
+QT6_DESC=	Install Doxywizard GUI with QT6
 SEARCH_DESC=	Build external search tools (doxysearch and doxyindexer)
 
 DOCS_USES=		ghostscript:build tex
@@ -43,32 +56,30 @@ DOCS_USE=		TEX=base:build,dvipsk:build,pdftex:build
 DOCS_ALL_TARGET=	docs
 DOCS_BUILD_DEPENDS=	dot:graphics/graphviz
 DOCS_CMAKE_BOOL=	build_doc
-DOCS_PLIST_FILES=	share/man/man1/doxygen.1.gz \
-			share/man/man1/doxyindexer.1.gz \
-			share/man/man1/doxysearch.1.gz \
-			share/man/man1/doxywizard.1.gz
-
-PORTDOCS=		*
 
 GRAPHVIZ_RUN_DEPENDS=	dot:graphics/graphviz
 
-LATEX_USES=	tex
-LATEX_USE=	TEX=base,dvipsk,pdftex
+LATEX_USES=		tex
+LATEX_USE=		TEX=base,dvipsk,pdftex
 
-QT5_USES=	qt:5
-QT5_USE=	QT=core,widgets,gui,xml,qmake:build,buildtools:build
-QT5_CMAKE_BOOL=	build_wizard
-QT5_PLIST_FILES=	bin/doxywizard
+QT6_USES=		qt:6
+QT6_USE=		QT=base,svg
+QT6_CMAKE_BOOL=		build_wizard
+QT6_CMAKE_ON=		-Dforce_qt=Qt6
+QT6_PLIST_FILES=	bin/doxywizard \
+			share/man/man1/doxywizard.1.gz
 
-SEARCH_CMAKE_BOOL=	build_search
 SEARCH_LIB_DEPENDS=	libxapian.so:databases/xapian-core
+SEARCH_CMAKE_BOOL=	build_search
 SEARCH_PLIST_FILES=	bin/doxyindexer \
-			bin/doxysearch.cgi
-
-post-extract:	# clean up garbage in tarball
-		${RM} ${WRKSRC}/templates/html/._resize.js
-		${RM} ${WRKSRC}/src/._htmlgen.h
-		${RM} ${WRKSRC}/src/._formula.h
+			bin/doxysearch.cgi \
+			share/man/man1/doxyindexer.1.gz \
+			share/man/man1/doxysearch.1.gz
 
+post-patch:
+	@${REINPLACE_CMD} -e 's|%%DISTVERSION%%|${DISTVERSION:C/\./_/g}|g' \
+	     ${PATCH_WRKSRC}/cmake/git_watcher.cmake
+	@${REINPLACE_CMD} -e 's|%%DISTVERSION%%|${DISTVERSION:C/\./_/g}|g' \
+	    ${PATCH_WRKSRC}/libversion/gitversion.cpp.in
 
 .include <bsd.port.mk>
diff --git a/devel/doxygen/distinfo b/devel/doxygen/distinfo
index 134e7a394eb2..cac9d23303b7 100644
--- a/devel/doxygen/distinfo
+++ b/devel/doxygen/distinfo
@@ -1,11 +1,3 @@
-TIMESTAMP = 1735765140
-SHA256 (doxygen-1.9.6.src.tar.gz) = 297f8ba484265ed3ebd3ff3fe7734eb349a77e4f95c8be52ed9977f51dea49df
-SIZE (doxygen-1.9.6.src.tar.gz) = 5293513
-SHA256 (966d69c603b5a6ae22e3132b6ecc6a39b86e52ab.patch) = 76206ebe34b934c8a1fdab853079ea05d05c2c632af744c890f893be32d09aac
-SIZE (966d69c603b5a6ae22e3132b6ecc6a39b86e52ab.patch) = 86972
-SHA256 (7b2a6027775b0158304635a98de0f9b5672f163a.patch) = 6912468ebeb3e5028d929ee359bf9772cdd1f7f4d59bb2e70e1bdfb7825d5311
-SIZE (7b2a6027775b0158304635a98de0f9b5672f163a.patch) = 8545
-SHA256 (f3514d578633cad3e39d6787f81085e46bafbaf4.patch) = 3d72d7b311fc748448136c0c512a1f8a3b96f9374f2b02f0d5b050ba2ffccb56
-SIZE (f3514d578633cad3e39d6787f81085e46bafbaf4.patch) = 3012
-SHA256 (8129939c312e4b5060042fdb93bd071b7b133381.patch) = 68e8b209045d1ff97b88211454800e1ab43a088cbafdf2caea71052466abf875
-SIZE (8129939c312e4b5060042fdb93bd071b7b133381.patch) = 2493
+TIMESTAMP = 1787062987
+SHA256 (doxygen-1.18.0.src.tar.gz) = a1deed70a6785bbec95a2b2a9e419dc7f7b223a9d74a8644ae611c8e2dcdd354
+SIZE (doxygen-1.18.0.src.tar.gz) = 9905783
diff --git a/devel/doxygen/files/patch-CMakeLists.txt b/devel/doxygen/files/patch-CMakeLists.txt
index b48abae3c227..ecd93bc51873 100644
--- a/devel/doxygen/files/patch-CMakeLists.txt
+++ b/devel/doxygen/files/patch-CMakeLists.txt
@@ -1,10 +1,23 @@
---- CMakeLists.txt.orig	2022-12-20 18:30:03 UTC
+--- CMakeLists.txt.orig	2026-01-06 12:11:01 UTC
 +++ CMakeLists.txt
-@@ -197,7 +197,6 @@ include(cmake/Coverage.cmake)
- include(cmake/CompilerWarnings.cmake)
- include(cmake/Coverage.cmake)
+@@ -37,13 +37,13 @@ option(enable_lex_debug "Enable debugging info for lex
+ option(enable_tracing  "Enable tracing option in release builds [development]" OFF)
+ option(enable_lex_debug "Enable debugging info for lexical scanners in release builds [development]" OFF)
+ 
+-if(CMAKE_BUILD_TYPE STREQUAL "Release")
+-  if (CYGWIN OR MINGW OR NOT "${CMAKE_TOOLCHAIN_FILE}" STREQUAL "")
+-    set(CMAKE_INTERPROCEDURAL_OPTIMIZATION FALSE)
+-  else()
+-    set(CMAKE_INTERPROCEDURAL_OPTIMIZATION TRUE)
+-  endif()
+-endif()
++#if(CMAKE_BUILD_TYPE STREQUAL "Release")
++#  if (CYGWIN OR MINGW OR NOT "${CMAKE_TOOLCHAIN_FILE}" STREQUAL "")
++#    set(CMAKE_INTERPROCEDURAL_OPTIMIZATION FALSE)
++#  else()
++#    set(CMAKE_INTERPROCEDURAL_OPTIMIZATION TRUE)
++#  endif()
++#endif()
+ 
+ include(CheckCXXCompilerFlag)
  
--add_subdirectory(libmd5)
- add_subdirectory(liblodepng)
- add_subdirectory(libmscgen)
- add_subdirectory(libversion)
diff --git a/devel/doxygen/files/patch-TinyDeflate_gunzip.hh b/devel/doxygen/files/patch-TinyDeflate_gunzip.hh
deleted file mode 100644
index f85364163df9..000000000000
--- a/devel/doxygen/files/patch-TinyDeflate_gunzip.hh
+++ /dev/null
@@ -1,37 +0,0 @@
-https://github.com/bisqwit/TinyDeflate/commit/68ced8bd5c819264e628d4f063500753b77f613d.patch
-
-From 68ced8bd5c819264e628d4f063500753b77f613d Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Bernhard=20Rosenkr=C3=A4nzer?= <bero@lindev.ch>
-Date: Fri, 9 Aug 2024 14:09:01 +0200
-Subject: [PATCH] Fix build with clang >= 19.0
-
-Clang >= 19.0 requires a template argument list after the template
-keyword for CWG96 compliance, see
-https://github.com/llvm/llvm-project/pull/80801
---- TinyDeflate/gunzip.hh.orig	2025-01-08 14:32:52 UTC
-+++ TinyDeflate/gunzip.hh
-@@ -1141,21 +1141,21 @@ namespace gunzip_ns
-             //fprintf(stderr, "both track flag\n");
-             SizeTracker<DeflateTrackBothSize> tracker;
-             return tracker(Gunzip<code & Flag_NoTrackFlagMask>
--                (tracker.template ForwardInput(i), tracker.template ForwardOutput(o), tracker.template ForwardWindow(c), std::forward<B>(b)));
-+                (tracker.template ForwardInput<I>(i), tracker.template ForwardOutput<O>(o), tracker.template ForwardWindow<C>(c), std::forward<B>(b)));
-         }
-         else if constexpr(code & Flag_TrackIn)
-         {
-             //fprintf(stderr, "in track flag\n");
-             SizeTracker<DeflateTrackInSize> tracker;
-             return tracker(Gunzip<code & Flag_NoTrackFlagMask>
--                (tracker.template ForwardInput(i),std::forward<O>(o),std::forward<C>(c),std::forward<B>(b)));
-+                (tracker.template ForwardInput<I>(i),std::forward<O>(o),std::forward<C>(c),std::forward<B>(b)));
-         }
-         else if constexpr(code & Flag_TrackOut)
-         {
-             //fprintf(stderr, "out track flag\n");
-             SizeTracker<DeflateTrackOutSize> tracker;
-             return tracker(Gunzip<code & Flag_NoTrackFlagMask>
--                (std::forward<I>(i), tracker.template ForwardOutput(o), tracker.template ForwardWindow(c), std::forward<B>(b)));
-+                (std::forward<I>(i), tracker.template ForwardOutput<O>(o), tracker.template ForwardWindow<C>(c), std::forward<B>(b)));
-         }
-         else
-         {
diff --git a/devel/doxygen/files/patch-addon_doxywizard_CMakeLists.txt b/devel/doxygen/files/patch-addon_doxywizard_CMakeLists.txt
deleted file mode 100644
index c7e792819b58..000000000000
--- a/devel/doxygen/files/patch-addon_doxywizard_CMakeLists.txt
+++ /dev/null
@@ -1,18 +0,0 @@
---- addon/doxywizard/CMakeLists.txt.orig	2022-08-24 15:18:42 UTC
-+++ addon/doxywizard/CMakeLists.txt
-@@ -182,12 +182,12 @@ if(Qt5Core_FOUND)
- endif()
- 
- if(Qt5Core_FOUND)
--  target_link_libraries(doxywizard Qt5::Core Qt5::Gui Qt5::Widgets Qt5::Xml doxygen_version)
-+  target_link_libraries(doxywizard Qt5::Core Qt5::Gui Qt5::Widgets Qt5::Xml doxygen_version pthread)
- else()
- if(Qt6Core_FOUND)
--  target_link_libraries(doxywizard Qt6::Core Qt6::Gui Qt6::Widgets Qt6::Xml doxygen_version)
-+  target_link_libraries(doxywizard Qt6::Core Qt6::Gui Qt6::Widgets Qt6::Xml doxygen_version pthread)
- else()
--  target_link_libraries(doxywizard ${QT_LIBRARIES} ${QT_QTMAIN_LIBRARY} doxygen_version)
-+  target_link_libraries(doxywizard ${QT_LIBRARIES} ${QT_QTMAIN_LIBRARY} doxygen_version pthread)
- endif()
- endif()
- 
diff --git a/devel/doxygen/files/patch-doc__internal_Doxyfile.in b/devel/doxygen/files/patch-doc__internal_Doxyfile.in
deleted file mode 100644
index df9d626eacb7..000000000000
--- a/devel/doxygen/files/patch-doc__internal_Doxyfile.in
+++ /dev/null
@@ -1,12 +0,0 @@
---- doc_internal/Doxyfile.in.orig	2022-12-18 10:39:03 UTC
-+++ doc_internal/Doxyfile.in
-@@ -298,8 +298,7 @@ SEARCH_INCLUDES        = YES
- MACRO_EXPANSION        = YES
- EXPAND_ONLY_PREDEF     = YES
- SEARCH_INCLUDES        = YES
--INCLUDE_PATH           = @CMAKE_SOURCE_DIR@/libmd5 \
--                         @CMAKE_SOURCE_DIR@/liblodepng \
-+INCLUDE_PATH           = @CMAKE_SOURCE_DIR@/liblodepng \
-                          @CMAKE_SOURCE_DIR@/libmscgen
- INCLUDE_FILE_PATTERNS  =
- PREDEFINED             =
diff --git a/devel/doxygen/files/patch-doc_doxygen__manual.tex b/devel/doxygen/files/patch-doc_doxygen__manual.tex
deleted file mode 100644
index 0665af5b15f2..000000000000
--- a/devel/doxygen/files/patch-doc_doxygen__manual.tex
+++ /dev/null
@@ -1,11 +0,0 @@
---- doc/doxygen_manual.tex.orig	2019-08-04 11:51:41 UTC
-+++ doc/doxygen_manual.tex
-@@ -22,7 +22,7 @@
- \usepackage{array}[=2016-10-06]
- \fi
- %%
--\usepackage[a4paper,left=2.5cm,right=2.5cm,top=2.5cm,bottom=2.5cm]{geometry}
-+\usepackage[left=2.5cm,right=2.5cm,top=2.5cm,bottom=2.5cm]{geometry}
- \usepackage{makeidx}
- \usepackage{natbib}
- \usepackage{graphicx}
diff --git a/devel/doxygen/files/patch-doc_translator.py b/devel/doxygen/files/patch-doc_translator.py
deleted file mode 100644
index 51771706035d..000000000000
--- a/devel/doxygen/files/patch-doc_translator.py
+++ /dev/null
@@ -1,23 +0,0 @@
-Hack to avoid "UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb0 in position 45: invalid start byte"
-in src/._xmlgen.cpp which is binary. This doesn't seem like it should be present at the time the docs
-are generated, but this is simpler for now.
---- doc/translator.py.orig	2023-01-07 08:48:38 UTC
-+++ doc/translator.py
-@@ -1459,10 +1459,13 @@ class TrManager:
- 
-         # Read content of the file as one string.
-         assert os.path.isfile(fname)
--        f = xopen(fname)
--        cont = f.read()
--        cont = ''.join(cont.split('\n')) # otherwise the 'match' function won't work.
--        f.close()
-+        try:
-+            with xopen(fname) as f:
-+                cont = f.read()
-+                cont = ''.join(cont.split('\n')) # otherwise the 'match' function won't work.
-+        except UnicodeDecodeError:
-+            print("Skipping {0} because of decoding errors".format(fname))
-+            return
- 
-         # Remove the items for identifiers that were found in the file.
-         while lst_in:
diff --git a/devel/doxygen/files/patch-examples_CMakeLists.txt b/devel/doxygen/files/patch-examples_CMakeLists.txt
deleted file mode 100644
index 5eb24420b6f0..000000000000
--- a/devel/doxygen/files/patch-examples_CMakeLists.txt
+++ /dev/null
@@ -1,47 +0,0 @@
---- examples/CMakeLists.txt.orig	2022-11-18 19:47:51 UTC
-+++ examples/CMakeLists.txt
-@@ -37,8 +37,8 @@ set(EXAMPLE_overload   overload       cpp)
- set(EXAMPLE_author     author         cpp)
- set(EXAMPLE_par        par            cpp)
- set(EXAMPLE_overload   overload       cpp)
--set(EXAMPLE_example    example        cpp)
--set(EXAMPLE_include    include        cpp)
-+set(EXAMPLE_example    example        cpp        example_test)
-+set(EXAMPLE_include    include        cpp        include_test)
- set(EXAMPLE_qtstyle    qtstyle        cpp)
- set(EXAMPLE_jdstyle    jdstyle        cpp)
- set(EXAMPLE_autolink   autolink       cpp)
-@@ -69,14 +69,18 @@ foreach (f_inp  ${BASIC_EXAMPLES})
- 	set(f_dep "")
- 	if (${f_len} GREATER 2)
- 	  list(GET  ${f_inp} 2 f_dep)
--	  set(f_dep "${PROJECT_BINARY_DIR}/html/examples/${f_dep}/html/index.html")
-+	  if (${f_dep} MATCHES _test$)
-+	    set(f_dep "${CMAKE_CURRENT_BINARY_DIR}/${f_dep}.${f_ext}")
-+	  else()
-+	    set(f_dep "${PROJECT_BINARY_DIR}/html/examples/${f_dep}/html/index.html")
-+	  endif()
- 	endif()
-     add_custom_command(
-         COMMAND ${CMAKE_COMMAND} -E make_directory ${PROJECT_BINARY_DIR}/html/examples/${f}
-         COMMAND ${CMAKE_COMMAND} -E make_directory ${PROJECT_BINARY_DIR}/latex/examples/${f}
--        COMMAND ${CMAKE_COMMAND} -E env PROJECT_BINARY_DIR=${PROJECT_BINARY_DIR} ${EXECUTABLE_OUTPUT_PATH}/doxygen ${f}.cfg
-+        COMMAND ${CMAKE_COMMAND} -E env PROJECT_BINARY_DIR=${PROJECT_BINARY_DIR} ${EXECUTABLE_OUTPUT_PATH}/doxygen ${CMAKE_CURRENT_BINARY_DIR}/${f}.cfg
-         COMMAND ${PYTHON_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/latex/examples/${f}/latex/refman.tex > ${PROJECT_BINARY_DIR}/latex/examples/${f}/latex/refman_doc.tex
--	DEPENDS doxygen ${f}.${f_ext} ${f}.cfg ${TOP}/examples/strip_example.py ${f_dep}
-+	DEPENDS doxygen ${CMAKE_CURRENT_BINARY_DIR}/${f}.${f_ext} ${CMAKE_CURRENT_BINARY_DIR}/${f}.cfg ${TOP}/examples/strip_example.py ${f_dep} ${CMAKE_CURRENT_BINARY_DIR}/baseexample.cfg
- 	OUTPUT ${PROJECT_BINARY_DIR}/html/examples/${f}/html/index.html ${PROJECT_BINARY_DIR}/latex/examples/${f}/latex/refman_doc.tex
-     )
-     set(EXAMPLES_RES ${EXAMPLES_RES} "" ${PROJECT_BINARY_DIR}/html/examples/${f}/html/index.html)
-@@ -93,9 +97,9 @@ if (DOT)
-   add_custom_command(
-         COMMAND ${CMAKE_COMMAND} -E make_directory ${PROJECT_BINARY_DIR}/html/examples/diagrams
-         COMMAND ${CMAKE_COMMAND} -E make_directory ${PROJECT_BINARY_DIR}/latex/examples/diagrams
--        COMMAND ${CMAKE_COMMAND} -E env PROJECT_BINARY_DIR=${PROJECT_BINARY_DIR} ${EXECUTABLE_OUTPUT_PATH}/doxygen diagrams.cfg
-+        COMMAND ${CMAKE_COMMAND} -E env PROJECT_BINARY_DIR=${PROJECT_BINARY_DIR} ${EXECUTABLE_OUTPUT_PATH}/doxygen ${CMAKE_CURRENT_BINARY_DIR}/diagrams.cfg
-         COMMAND ${PYTHON_EXECUTABLE}  ${TOP}/examples/strip_example.py  < ${PROJECT_BINARY_DIR}/latex/examples/diagrams/latex/refman.tex > ${PROJECT_BINARY_DIR}/latex/examples/diagrams/latex/refman_doc.tex
--	DEPENDS doxygen diagrams_a.h diagrams_b.h diagrams_c.h diagrams_d.h diagrams_e.h diagrams.cfg ${TOP}/examples/strip_example.py
-+	DEPENDS doxygen ${CMAKE_CURRENT_BINARY_DIR}/diagrams_a.h ${CMAKE_CURRENT_BINARY_DIR}/diagrams_b.h ${CMAKE_CURRENT_BINARY_DIR}/diagrams_c.h ${CMAKE_CURRENT_BINARY_DIR}/diagrams_d.h ${CMAKE_CURRENT_BINARY_DIR}/diagrams_e.h ${CMAKE_CURRENT_BINARY_DIR}/diagrams.cfg ${TOP}/examples/strip_example.py ${CMAKE_CURRENT_BINARY_DIR}/baseexample.cfg
- 	OUTPUT ${PROJECT_BINARY_DIR}/html/examples/diagrams/html/index.html ${PROJECT_BINARY_DIR}/latex/examples/diagrams/latex/refman_doc.tex
-   )
- endif(DOT)
diff --git a/devel/doxygen/files/patch-src_CMakeLists.txt b/devel/doxygen/files/patch-src_CMakeLists.txt
deleted file mode 100644
index ccf752af1430..000000000000
--- a/devel/doxygen/files/patch-src_CMakeLists.txt
+++ /dev/null
@@ -1,28 +0,0 @@
---- src/CMakeLists.txt.orig	2022-12-20 18:30:03 UTC
-+++ src/CMakeLists.txt
-@@ -2,7 +2,6 @@ include_directories(
- 
- include_directories(
-     ${PROJECT_SOURCE_DIR}/filesystem
--    ${PROJECT_SOURCE_DIR}/libmd5
-     ${PROJECT_SOURCE_DIR}/liblodepng
-     ${PROJECT_SOURCE_DIR}/libmscgen
-     ${PROJECT_SOURCE_DIR}/libversion
-@@ -69,7 +68,7 @@ add_custom_command(
- 
- # ce_parse.h
- add_custom_command(
--    COMMAND ${BISON_EXECUTABLE} -l -d -p ce_parsexpYY ${CMAKE_CURRENT_LIST_DIR}/constexp.y -o ce_parse.c
-+    COMMAND ${BISON_EXECUTABLE} -l -d ${CMAKE_CURRENT_LIST_DIR}/constexp.y -o ce_parse.c
-     DEPENDS ${CMAKE_CURRENT_LIST_DIR}/constexp.y
-     OUTPUT ${GENERATED_SRC}/ce_parse.h
-     WORKING_DIRECTORY ${GENERATED_SRC}
-@@ -387,7 +386,7 @@ target_link_libraries(doxygen PRIVATE
- target_link_libraries(doxygen PRIVATE
-     doxymain
-     doxycfg
--    md5
-+    md
-     lodepng
-     mscgen
-     xml
diff --git a/devel/doxygen/files/patch-src_constexp.y b/devel/doxygen/files/patch-src_constexp.y
deleted file mode 100644
index b80f7c177c86..000000000000
--- a/devel/doxygen/files/patch-src_constexp.y
+++ /dev/null
@@ -1,11 +0,0 @@
---- src/constexp.y.orig	2021-05-12 18:53:13 UTC
-+++ src/constexp.y
-@@ -32,7 +32,7 @@ int constexpYYerror(yyscan_t yyscanner, const char *s)
- 
- %}
- 
--%name-prefix "constexpYY"
-+%define api.prefix {constexpYY}
- %define api.pure full
- %lex-param {yyscan_t yyscanner}
- %parse-param {yyscan_t yyscanner}
diff --git a/devel/doxygen/files/patch-src_definition.cpp b/devel/doxygen/files/patch-src_definition.cpp
deleted file mode 100644
index c3d31b035aab..000000000000
--- a/devel/doxygen/files/patch-src_definition.cpp
+++ /dev/null
@@ -1,26 +0,0 @@
---- src/definition.cpp.orig	2022-12-25 19:21:45 UTC
-+++ src/definition.cpp
-@@ -7,6 +7,7 @@
- #include <stdio.h>
- #include <stdlib.h>
- #include <assert.h>
-+#include <sys/types.h>
- 
- #include "md5.h"
- #include "regex.h"
-@@ -417,13 +418,11 @@ bool DefinitionImpl::_docsAlreadyAdded(const QCString 
- 
- bool DefinitionImpl::_docsAlreadyAdded(const QCString &doc,QCString &sigList)
- {
--  uchar md5_sig[16];
--  char sigStr[33];
-+  QCString sigStr(33);
-   // to avoid mismatches due to differences in indenting, we first remove
-   // double whitespaces...
-   QCString docStr = doc.simplifyWhiteSpace();
--  MD5Buffer(docStr.data(),docStr.length(),md5_sig);
--  MD5SigToString(md5_sig,sigStr);
-+  MD5Data((const unsigned char *)docStr.data(),docStr.length(),sigStr.rawData());
-   //printf("%s:_docsAlreadyAdded doc='%s' sig='%s' docSigs='%s'\n",
-   //    qPrint(name()),qPrint(doc),qPrint(sigStr),qPrint(sigList));
-   if (sigList.find(sigStr)==-1) // new docs, add signature to prevent re-adding it
diff --git a/devel/doxygen/files/patch-src_dirdef.cpp b/devel/doxygen/files/patch-src_dirdef.cpp
deleted file mode 100644
index 9c394304f23b..000000000000
--- a/devel/doxygen/files/patch-src_dirdef.cpp
+++ /dev/null
@@ -1,23 +0,0 @@
---- src/dirdef.cpp.orig	2022-12-18 12:21:42 UTC
-+++ src/dirdef.cpp
-@@ -14,6 +14,7 @@
-  */
- 
- #include <algorithm>
-+#include <sys/types.h>
- 
- #include "dirdef.h"
- #include "md5.h"
-@@ -181,10 +182,8 @@ static QCString encodeDirName(const QCString &anchor)
- static QCString encodeDirName(const QCString &anchor)
- {
-   // convert to md5 hash
--  uchar md5_sig[16];
--  char sigStr[33];
--  MD5Buffer(anchor.data(),anchor.length(),md5_sig);
--  MD5SigToString(md5_sig,sigStr);
-+  QCString sigStr(33);
-+  MD5Data((const unsigned char *)anchor.data(),anchor.length(),sigStr.rawData());
-   return sigStr;
- 
-   // old algorithm
diff --git a/devel/doxygen/files/patch-src_dotgraph.cpp b/devel/doxygen/files/patch-src_dotgraph.cpp
deleted file mode 100644
index 35609d01ef85..000000000000
--- a/devel/doxygen/files/patch-src_dotgraph.cpp
+++ /dev/null
@@ -1,26 +0,0 @@
---- src/dotgraph.cpp.orig	2022-12-25 19:00:20 UTC
-+++ src/dotgraph.cpp
-@@ -15,6 +15,7 @@
- 
- #include <mutex>
- #include <regex>
-+#include <sys/types.h>
- 
- #include "config.h"
- #include "doxygen.h"
-@@ -155,12 +156,9 @@ bool DotGraph::prepareDotFile()
-     term("Output dir %s does not exist!\n", m_dir.path().c_str());
-   }
- 
--  char sigStr[33];
--  uchar md5_sig[16];
--  // calculate md5
--  MD5Buffer(m_theGraph.data(), m_theGraph.length(), md5_sig);
--  // convert result to a string
--  MD5SigToString(md5_sig, sigStr);
-+  QCString sigStr(33);
-+  // calculate md5 and convert result to a string
-+  MD5Data((const unsigned char*)m_theGraph.data(), m_theGraph.length(), sigStr.rawData());
- 
-   // already queued files are processed again in case the output format has changed
- 
diff --git a/devel/doxygen/files/patch-src_memberdef.cpp b/devel/doxygen/files/patch-src_memberdef.cpp
deleted file mode 100644
index 1a58613b7f74..000000000000
--- a/devel/doxygen/files/patch-src_memberdef.cpp
+++ /dev/null
@@ -1,23 +0,0 @@
---- src/memberdef.cpp.orig	2022-12-26 12:52:22 UTC
-+++ src/memberdef.cpp
-@@ -17,6 +17,7 @@
- #include <stdio.h>
- #include <assert.h>
- #include <mutex>
-+#include <sys/types.h>
- 
- #include "md5.h"
- #include "memberdef.h"
-@@ -4149,10 +4150,8 @@ void MemberDefImpl::setAnchor()
-   }
- 
-   // convert to md5 hash
--  uchar md5_sig[16];
--  char sigStr[33];
--  MD5Buffer(memAnchor.data(),memAnchor.length(),md5_sig);
--  MD5SigToString(md5_sig,sigStr);
-+  QCString sigStr(33);
-+  MD5Data((const unsigned char *)memAnchor.data(),memAnchor.length(),sigStr.rawData());
-   m_impl->anc = QCString("a")+sigStr;
- }
- 
diff --git a/devel/doxygen/files/patch-src_membergroup.cpp b/devel/doxygen/files/patch-src_membergroup.cpp
deleted file mode 100644
index e4cc9a785bd8..000000000000
--- a/devel/doxygen/files/patch-src_membergroup.cpp
+++ /dev/null
@@ -1,11 +0,0 @@
---- src/membergroup.cpp.orig	2022-09-18 12:47:12 UTC
-+++ src/membergroup.cpp
-@@ -15,6 +15,8 @@
-  *
-  */
- 
-+#include <sys/types.h>
-+
- #include "membergroup.h"
- #include "memberlist.h"
- #include "outputlist.h"
diff --git a/devel/doxygen/files/patch-src_util.cpp b/devel/doxygen/files/patch-src_util.cpp
deleted file mode 100644
index fbe3480bcd02..000000000000
--- a/devel/doxygen/files/patch-src_util.cpp
+++ /dev/null
@@ -1,54 +0,0 @@
---- src/util.cpp.orig	2022-12-25 18:59:09 UTC
-+++ src/util.cpp
-@@ -30,6 +30,7 @@
- #include <cinttypes>
- #include <sstream>
- 
-+#include <sys/types.h>
- #include "md5.h"
- 
- #include "regex.h"
-@@ -3754,26 +3755,18 @@ QCString convertNameToFile(const QCString &name,bool a
-     if (resultLen>=128) // prevent names that cannot be created!
-     {
-       // third algorithm based on MD5 hash
--      uchar md5_sig[16];
--      char sigStr[33];
--      MD5Buffer(result.data(),resultLen,md5_sig);
--      MD5SigToString(md5_sig,sigStr);
-+      QCString sigStr(33);
-+      MD5Data((const unsigned char *)result.data(),resultLen,sigStr.rawData());
-       result=result.left(128-32)+sigStr;
-     }
-   }
-   if (createSubdirs)
-   {
--    int l1Dir=0,l2Dir=0;
--    int createSubdirsLevel = Config_getInt(CREATE_SUBDIRS_LEVEL);
--    int createSubdirsBitmaskL2 = (1<<createSubdirsLevel)-1;
--
-     // compute md5 hash to determine sub directory to use
--    uchar md5_sig[16];
--    MD5Buffer(result.data(),result.length(),md5_sig);
--    l1Dir = md5_sig[14] & 0xf;
--    l2Dir = md5_sig[15] & createSubdirsBitmaskL2;
-+    char md5[33];
-+    MD5Data((const unsigned char *)result.data(),result.length(),md5);
- 
--    result.prepend(QCString().sprintf("d%x/d%02x/",l1Dir,l2Dir));
-+    result.prepend(QCString().sprintf("d%c/d%c%c/",md5[29],md5[30],md5[31]));
-   }
-   //printf("*** convertNameToFile(%s)->%s\n",qPrint(name),qPrint(result));
-   return result;
-@@ -7429,6 +7422,11 @@ QCString removeEmptyLines(const QCString &s)
- QCString removeEmptyLines(const QCString &s)
- {
-   BufStr out(s.length()+1);
-+  if (s.length()==0)
-+  {
-+    out.addChar('\0');
-+    return out.data();
-+  }
-   const char *p=s.data();
-   if (p)
-   {
diff --git a/devel/doxygen/files/patch-vhdlparser_CMakeLists.txt b/devel/doxygen/files/patch-vhdlparser_CMakeLists.txt
deleted file mode 100644
index 3b1baca4f49c..000000000000
--- a/devel/doxygen/files/patch-vhdlparser_CMakeLists.txt
+++ /dev/null
@@ -1,13 +0,0 @@
---- vhdlparser/CMakeLists.txt.orig	2022-12-19 11:34:59 UTC
-+++ vhdlparser/CMakeLists.txt
-@@ -35,8 +35,8 @@ include_directories(
- set_source_files_properties(${GENERATED_SRC}/VhdlParser_adj.cc PROPERTIES GENERATED 1)
- 
- include_directories(
--	${PROJECT_SOURCE_DIR}/src
--	${PROJECT_SOURCE_DIR}/vhdlparser
-+	BEFORE ${CMAKE_SOURCE_DIR}/src
-+	${CMAKE_SOURCE_DIR}/vhdlparser
- 	${GENERATED_SRC})
- add_library(vhdlparser STATIC
- CharStream.cc