diff --git a/.gitignore b/.gitignore
index a007b45..0d9d63e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -60,12 +60,3 @@ doxygen-1.7.1.src.tar.gz
/doxygen-1.9.5.src.tar.gz
/doxygen-1.9.6.src.tar.gz
/doxygen-1.9.7.src.tar.gz
-/doxygen-1.9.8.src.tar.gz
-/doxygen-1.10.0.src.tar.gz
-/doxygen-1.11.0.src.tar.gz
-/doxygen-1.12.0.src.tar.gz
-/doxygen-1.13.0.src.tar.gz
-/doxygen-1.13.1.src.tar.gz
-/doxygen-1.13.2.src.tar.gz
-/doxygen-1.14.0.src.tar.gz
-/doxygen-1.15.0.src.tar.gz
diff --git a/README.rpm-packaging b/README.rpm-packaging
deleted file mode 100644
index 9f09233..0000000
--- a/README.rpm-packaging
+++ /dev/null
@@ -1,36 +0,0 @@
-# Javascript asset handling for RPM packaging
-
-RPM packages should unbundle Javascript assets during the RPM build
-process. Currently, this process is not fully automated.
-
-If Doxygen HTML documentation is installed, add
-
- %{?doxygen_js_requires}
-
-to the subpackage that contains the HTML documentation.
-
-If HTML documentation is installed during the %install phase, invoke
-
- %{doxygen_unbundle_buildroot}
-
-towards the end of the %install section. It will process Javascript
-files under %{_docdir} (/usr/share/doc). If another directory needs
-to be processed, use an explicit directory argument:
-
- %{doxygen_unbundle_buildroot /usr/share/example/doc}
-
-The path is relative to %{buildroot} or $RPM_BUILD_ROOT.
-
-If HTML documentation is not installed, but propagated into package
-using %doc directives, it is necessary to invoke
-
- %{doxygen_unbundle}
-
-after running Doxygen (typically from the %build section). This
-unbundles assets found under the current directory. A specific
-directory can be processed by passing it as an argument:
-
- %{doxygen_unbundle example/doc}
-
-In this case, the path argument is relative to the current directory,
-not the buildroot.
diff --git a/doxygen-1.9.7-unicode-test.ptch b/doxygen-1.9.7-unicode-test.ptch
new file mode 100644
index 0000000..1d390b8
--- /dev/null
+++ b/doxygen-1.9.7-unicode-test.ptch
@@ -0,0 +1,34 @@
+diff -Nur doxygen-1.9.7-bug/doc_internal/releases.md doxygen-1.9.7/doc_internal/releases.md
+--- doxygen-1.9.7-bug/doc_internal/releases.md 2023-05-18 20:19:49.000000000 +0200
++++ doxygen-1.9.7/doc_internal/releases.md 2023-05-18 21:16:40.000000000 +0200
+@@ -2,7 +2,7 @@
+
+ The following table gives an overview of the doxygen releases with together with the release dates.
+
+-- Release 1.9.7 18-05-2022
++- Release 1.9.7 18-05-2023
+ - Release 1.9.6 27-12-2022
+ - Release 1.9.5 26-08-2022
+ - Release 1.9.4 05-05-2022
+diff -Nur "doxygen-1.9.7-bug/testing/061_U\314\201nicod\342\202\254_file.cpp" "doxygen-1.9.7/testing/061_U\314\201nicod\342\202\254_file.cpp"
+--- "doxygen-1.9.7-bug/testing/061_U\314\201nicod\342\202\254_file.cpp" 2023-01-02 20:08:23.760982526 +0100
++++ "doxygen-1.9.7/testing/061_U\314\201nicod\342\202\254_file.cpp" 1970-01-01 01:00:00.000000000 +0100
+@@ -1,7 +0,0 @@
+-// objective: test a file with unicode characters in the name
+-// check: 061___xC3_x9Anicod_xE2_x82_xAC__file_8cpp.xml
+-
+-class Test
+-{
+-};
+-
+diff -Nur "doxygen-1.9.7-bug/testing/061_\303\232nicod\342\202\254_file.cpp" "doxygen-1.9.7/testing/061_\303\232nicod\342\202\254_file.cpp"
+--- "doxygen-1.9.7-bug/testing/061_\303\232nicod\342\202\254_file.cpp" 1970-01-01 01:00:00.000000000 +0100
++++ "doxygen-1.9.7/testing/061_\303\232nicod\342\202\254_file.cpp" 2023-01-02 20:08:23.000000000 +0100
+@@ -0,0 +1,7 @@
++// objective: test a file with unicode characters in the name
++// check: 061___xC3_x9Anicod_xE2_x82_xAC__file_8cpp.xml
++
++class Test
++{
++};
++
diff --git a/doxygen-unbundler b/doxygen-unbundler
deleted file mode 100644
index aaf8bed..0000000
--- a/doxygen-unbundler
+++ /dev/null
@@ -1,69 +0,0 @@
-#!/usr/bin/bash -e
-# Replace Doxygen-generated Javascript files with symblic links.
-
-set -o pipefail
-
-jsdir="$1"
-buildroot="$2"
-subdir="$3"
-
-if test -z "$jsdir" ; then
- echo "error: Javascript directory argument required" 1>&2
- exit 1
-fi
-
-js_files="$(echo "$jsdir"/doxygen/*.js)"
-
-if test -z "$buildroot" ; then
- # Only absolute links are possible because the final installation
- # destination is unknown.
- if test -z "$subdir"; then
- subdir="."
- fi
- find "$subdir" -type f -name '*.js' \
- | while read js_file; do
- for js_file_ref in $js_files; do
- if cmp -s "$js_file_ref" "$js_file"; then
- ln -sf "$js_file_ref" "$js_file"
- break
- fi
- done
- done
-else
- # Create relative links.
- cd "$buildroot"
- abs_buildroot="$(readlink -f .)"
- cd "./$subdir"
-
- # Compute the number of ../ needed to reach the root directory.
- prefix=""
- while true; do
- p="$(readlink -f "${prefix:-.}")"
- if test "$p" = "$abs_buildroot"; then
- break
- elif test "$p" = "/"; then
- echo "error: Could not find buildroot directory" 1>&2
- exit 1
- elif test -z "$prefix"; then
- prefix=".."
- else
- prefix="../$prefix"
- fi
- done
-
- # Create relative links.
- find . -type f -name '*.js' -printf "%d %p\n" \
- | while read depth js_file; do
- for js_file_ref in $js_files; do
- if cmp -s "$js_file_ref" "$js_file"; then
- target_prefix="$prefix"
- i=1
- while test "$i" -lt "$depth"; do
- target_prefix="../$target_prefix"
- i=$(($i + 1))
- done
- ln -sf "$target_prefix$js_file_ref" "$js_file"
- fi
- done
- done
-fi
diff --git a/doxygen.spec b/doxygen.spec
index 7818615..5082474 100644
--- a/doxygen.spec
+++ b/doxygen.spec
@@ -1,42 +1,33 @@
%if 0%{?fedora}
%global xapian_core_support ON
+%global clang_support ON
%global build_wizard ON
-%global system_spdlog ON
-%global system_fmt ON
%else
%global xapian_core_support OFF
+%global clang_support OFF
%global build_wizard OFF
-%global system_spdlog OFF
-%global system_fmt OFF
%endif
-%global build_search %{xapian_core_support}
-%global clang_support ON
-%global system_sqlite3 ON
Summary: A documentation system for C/C++
Name: doxygen
Epoch: 2
-Version: 1.15.0
-Release: 1%{?dist}
+Version: 1.9.7
+Release: 3%{?dist}
# No version is specified.
-License: GPL-2.0-or-later
+License: GPL-1.0-or-later
Url: https://github.com/doxygen
-Source0: https://www.doxygen.nl/files/%{name}-%{version}.src.tar.gz
+Source0: https://sourceforge.net/projects/doxygen/files/rel-%{version}/%{name}-%{version}.src.tar.gz
# this icon is part of kdesdk
Source1: doxywizard.desktop
# these icons are part of doxygen and converted from doxywizard.ico
Source2: doxywizard-icons.tar.xz
-Source3: README.rpm-packaging
-Source4: doxygen-unbundler
-# upstream fixes
+# upstream patches
+Patch0: doxygen-1.9.7-unicode-test.ptch
BuildRequires: %{_bindir}/python3
BuildRequires: perl-interpreter, perl-open
BuildRequires: texlive-bibtex
-BuildRequires: web-assets-devel
-# Building an RPM package typically needs unbundling of Javascript assets.
-Requires: (js-doxygen if redhat-rpm-config)
%if ! 0%{?_module_build}
BuildRequires: tex(dvips)
@@ -116,25 +107,6 @@ BuildRequires: clang-devel
%else
BuildRequires: gcc-c++ gcc
%endif
-%if "%{system_spdlog}" == "ON"
-BuildRequires: spdlog-devel
-%else
-# SPDLOG_VER* defined in deps/spdlog/include/spdlog/version.h
-Provides: bundled(spdlog) = 1.14.1
-%endif
-%if "%{system_sqlite3}" == "ON"
-BuildRequires: sqlite-devel
-%else
-# SQLITE_VERSION defined in deps/sqlite3/sqlite3.h
-Provides: bundled(sqlite) = 3.42.0
-%endif
-%if "%{system_fmt}" == "ON"
-BuildRequires: fmt-devel
-%else
-# deps/fmt/README.md
-Provides: bundled(fmt) = 10.2.1
-%endif
-
Requires: perl-interpreter
Requires: graphviz
@@ -145,19 +117,11 @@ documentation is extracted directly from the sources. Doxygen can
also be configured to extract the code structure from undocumented
source files.
-%package -n js-doxygen
-Summary: Javascript files used by Doxygen
-Requires: web-assets-filesystem
-BuildArch: noarch
-%description -n js-doxygen
-Javascript files for use by locally installed Doxygen documentation.
-
%if "x%{build_wizard}" == "xON"
%package doxywizard
Summary: A GUI for creating and editing configuration files
Requires: %{name} = %{epoch}:%{version}-%{release}
-BuildRequires: qt6-qtbase-devel
-BuildRequires: qt6-qtsvg-devel
+BuildRequires: qt5-qtbase-devel
%description doxywizard
Doxywizard is a GUI for creating and editing configuration files that
@@ -243,22 +207,35 @@ Requires: texlive-epstopdf
%prep
%autosetup -p1 -a2
-cp %{SOURCE3} .
+# convert into utf-8
+iconv --from=ISO-8859-1 --to=UTF-8 LANGUAGE.HOWTO > LANGUAGE.HOWTO.new
+touch -r LANGUAGE.HOWTO LANGUAGE.HOWTO.new
+mv LANGUAGE.HOWTO.new LANGUAGE.HOWTO
%build
+%if "x%{build_wizard}" == "xON"
%cmake \
- -Dbuild_wizard=%{build_wizard} \
- -DBUILD_SHARED_LIBS=OFF \
- -DCMAKE_INSTALL_PREFIX:PATH=%{_prefix} \
- -Dbuild_search=%{build_search} \
- -Duse_libclang=%{clang_support} \
- -DMAN_INSTALL_DIR=%{_mandir}/man1 \
- -Dbuild_doc=OFF \
- -DPYTHON_EXECUTABLE=%{_bindir}/python3 \
- -Dbuild_xmlparser=ON \
- -Duse_sys_sqlite3=%{system_sqlite3} \
- -Duse_sys_spdlog=%{system_spdlog} \
- -Duse_sys_fmt=%{system_fmt}
+ -DPYTHON_EXECUTABLE=%{_bindir}/python3 \
+ -Duse_libclang=%{clang_support} \
+ -Dbuild_doc=OFF \
+ -Dbuild_wizard=ON \
+ -Dbuild_xmlparser=ON \
+ -Dbuild_search=%{xapian_core_support} \
+ -DMAN_INSTALL_DIR=%{_mandir}/man1 \
+ -DCMAKE_INSTALL_PREFIX:PATH=%{_prefix} \
+ -DBUILD_SHARED_LIBS=OFF \
+%else
+%cmake \
+ -DPYTHON_EXECUTABLE=%{_bindir}/python3 \
+ -Duse_libclang=%{clang_support} \
+ -Dbuild_doc=OFF \
+ -Dbuild_wizard=OFF \
+ -Dbuild_xmlparser=ON \
+ -Dbuild_search=OFF \
+ -DMAN_INSTALL_DIR=%{_mandir}/man1 \
+ -DCMAKE_INSTALL_PREFIX:PATH=%{_prefix} \
+ -DBUILD_SHARED_LIBS=OFF \
+%endif
%cmake_build %{?_smp_mflags}
@@ -289,25 +266,11 @@ rm -f %{buildroot}/%{_mandir}/man1/doxyindexer.1* %{buildroot}/%{_mandir}/man1/d
# remove duplicate
rm -rf %{buildroot}/%{_docdir}/packages
-# Install the asset files.
-install -m644 -D --target-directory=%{buildroot}%{_jsdir}/doxygen templates/html/*.js
-
-# Generate the macros file. Expand version/release/%%_jsdir.
-mkdir -p %{buildroot}%{_rpmconfigdir}/macros.d
-cat > %{buildroot}%{_rpmconfigdir}/macros.d/macros.doxygen <<'EOF'
-%%doxygen_js_requires() Requires: js-doxygen >= %{version}-%{release}
-%%doxygen_unbundle_buildroot() %%{_rpmconfigdir}/redhat/doxygen-unbundler "%{_jsdir}" "%%{buildroot}" %%[ %%# == 0 ? "%%{_docdir}" : "%%1"]
-%%doxygen_unbundle() %{_rpmconfigdir}/redhat/doxygen-unbundler "%{_jsdir}" "" %%*
-EOF
-
- # Install the unbundler script.
-install -m755 -D --target-directory=%{buildroot}%{_rpmconfigdir}/redhat %{SOURCE4}
-
%check
%ctest
%files
-%doc LANGUAGE.HOWTO README.md README.rpm-packaging
+%doc LANGUAGE.HOWTO README.md
%license LICENSE
%if ! 0%{?_module_build}
%if "x%{?xapian_core_support}" == "xON"
@@ -321,8 +284,6 @@ install -m755 -D --target-directory=%{buildroot}%{_rpmconfigdir}/redhat %{SOURCE
%{_mandir}/man1/doxyindexer.1*
%{_mandir}/man1/doxysearch.1*
%endif
-%{_rpmconfigdir}/macros.d/macros.doxygen
-%{_rpmconfigdir}/redhat/doxygen-unbundler
%if "x%{build_wizard}" == "xON"
%files doxywizard
%{_bindir}/doxywizard
@@ -331,89 +292,12 @@ install -m755 -D --target-directory=%{buildroot}%{_rpmconfigdir}/redhat %{SOURCE
%{_datadir}/icons/hicolor/*/apps/doxywizard.png
%endif
-%files -n js-doxygen
-%{_jsdir}/doxygen/*
-
%if ! 0%{?_module_build}
%files latex
# intentionally left blank
%endif
%changelog
-* Thu Nov 13 2025 Than Ngo - 2:1.15.0-1
-- Update to 1.15.0
-
-* Wed Jul 23 2025 Fedora Release Engineering - 2:1.14.0-4
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild
-
-* Wed Jun 25 2025 Than Ngo - 2:1.14.0-3
-- Upstream fix for input buffer overflow
-
-* Wed May 28 2025 Yaakov Selkowitz - 2:1.14.0-2
-- Use bundled spdlog on RHEL, redux
-
-* Sun May 25 2025 Than Ngo - 2:1.14.0-1
-- Fix rhbz#2368381, update to 1.14.0
-
-* Tue Feb 11 2025 Yaakov Selkowitz - 2:1.13.2-5
-- Use bundled spdlog on RHEL
-
-* Mon Feb 10 2025 Than Ngo - 2:1.13.2-4
-- built with system sqlite3 and spdlog
-
-* Sat Feb 08 2025 Than Ngo - 2:1.13.2-3
-- Introduce js-doxygen subpackage and unbundle Javascript during RPM builds
-- Use system spdlog and sqlite3
-
-* Thu Jan 16 2025 Fedora Release Engineering - 2:1.13.2-2
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
-
-* Mon Jan 13 2025 Than Ngo - 2:1.13.2-1
-- Fix rhbz#2336720, Update to 1.13.2
-- Fix rhbz#2336536, FTBFS in ignition-transport
-
-* Fri Jan 03 2025 Than Ngo - 2:1.13.1-1
-- Fix rhbz#2335266, Update to 1.13.1
-
-* Thu Jan 02 2025 Than Ngo - 2:1.13.0-1
-- Fix rhbz#2334703, Update to 1.13.0
-
-* Mon Oct 28 2024 Than Ngo - 2:1.12.0-3
-- Fix rhbz#2295788, Non-reproducible file names in doxygen output
-
-* Mon Oct 28 2024 Than Ngo - 2:1.12.0-2
-- Fix rhbz#x2322116, broken markdown links to anchors
-
-* Wed Aug 07 2024 Than Ngo - 2:1.12.0-1
-- update to 1.12.0
-
-* Wed Jul 17 2024 Fedora Release Engineering - 2:1.11.0-5
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
-
-* Fri Jun 14 2024 Than Ngo - 2:1.11.0-4
-- fixed rhbz#2292250, update license
-
-* Fri May 31 2024 Than Ngo - 2:1.11.0-3
-- removed workaround for debuginfo
-
-* Wed May 29 2024 Than Ngo - 2:1.11.0-2
-- fixed rhbz#2283362, fix buffer overflow
-
-* Tue May 21 2024 Than Ngo - 2:1.11.0-1
-- update to 1.11.0
-
-* Wed Jan 24 2024 Fedora Release Engineering - 2:1.10.0-3
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
-
-* Fri Jan 19 2024 Than Ngo - 2:1.10.0-2
-- don't use clang to build doxygen as workaround for a bug in gcc-14
-
-* Tue Dec 26 2023 Than Ngo - 1.10.0-1
-- bz#2255826, update to 1.10
-
-* Mon Sep 11 2023 Than Ngo - 1.9.8-1
-- fix bz#2235035, update to 1.9.8
-
* Wed Jul 19 2023 Fedora Release Engineering - 2:1.9.7-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
diff --git a/sources b/sources
index 7883325..590824a 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (doxywizard-icons.tar.xz) = 865a86d7535e64ad92e36ba1f901d51cd6b603e762e5c68761a45bc1f965a36e6a6c8d29468ecb2ec799f0add2347537723832aff6660c76af453f80a0a370ad
-SHA512 (doxygen-1.15.0.src.tar.gz) = e53cc8da6cf1fe3ca3b3637647ed6afa28365351eac81d010f6691d939df5e449b3d898a6f695dd850d12659dfd7018fc864071b30fbca5dd196dc094ec4371e
+SHA512 (doxygen-1.9.7.src.tar.gz) = 618ff58aa6f0a2eb89f95b570995ea3ebbcda64f502cabcecd9be2967abffb56d0d6747de0c06df422705919757e6af9c6e5a56ca603b1ddf7a09a7ee79b1803