Compare commits

..

No commits in common. "rawhide" and "f41" have entirely different histories.

6 changed files with 65 additions and 228 deletions

5
.gitignore vendored
View file

@ -64,8 +64,3 @@ doxygen-1.7.1.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

View file

@ -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.

View file

@ -0,0 +1,30 @@
commit d408967139935bbaeae8d9eac7f0f34877d53d1c
Author: albert-github <albert.tests@gmail.com>
Date: Fri Sep 13 16:02:25 2024 +0200
issue #11135 The anchors don't work
Regression on 300f73d9ecd6b010a160e5f8cef14ecbabab950b:
```
commit 300f73d9ecd6b010a160e5f8cef14ecbabab950b
Date: Thu Jul 4 20:41:56 2024 +0200
issue #10970 Improvement of end of paragraph detection
```
attribute name is not `idname` but there are 2 attributes possible `id` and `name`
diff --git a/src/commentscan.l b/src/commentscan.l
index 8520fcb58..767aa440d 100644
--- a/src/commentscan.l
+++ b/src/commentscan.l
@@ -591,7 +591,7 @@ DETAILEDHTMLOPTEND {ENDCODE}
SUMMARY ("summary"|"SUMMARY")
REMARKS ("remarks"|"REMARKS")
AHTML [aA]{BN}*
-ANCHTML ("idname"|"IDNAME")"="("\""{LABELID}"\""|"'"{LABELID}"'"|{LABELID})
+ANCHTML ("id"|"name"|"ID"|"NAME")"="("\""{LABELID}"\""|"'"{LABELID}"'"|{LABELID})
BN [ \t\n\r]
BL [ \t\r]*"\n"
B [ \t]

View file

@ -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

View file

@ -1,23 +1,18 @@
%if 0%{?fedora}
%global xapian_core_support ON
%global clang_support OFF
%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.12.0
Release: 2%{?dist}
# No version is specified.
License: GPL-2.0-or-later
Url: https://github.com/doxygen
@ -26,17 +21,13 @@ Source0: https://www.doxygen.nl/files/%{name}-%{version}.src.tar.gz
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
# Markdown links to internal anchors broken
Patch0: doxygen-1.12.0-regression-anchors.patch
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,56 +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 <than@redhat.com> - 2:1.15.0-1
- Update to 1.15.0
* Wed Jul 23 2025 Fedora Release Engineering <releng@fedoraproject.org> - 2:1.14.0-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild
* Wed Jun 25 2025 Than Ngo <than@redhat.com> - 2:1.14.0-3
- Upstream fix for input buffer overflow
* Wed May 28 2025 Yaakov Selkowitz <yselkowi@redhat.com> - 2:1.14.0-2
- Use bundled spdlog on RHEL, redux
* Sun May 25 2025 Than Ngo <than@redhat.com> - 2:1.14.0-1
- Fix rhbz#2368381, update to 1.14.0
* Tue Feb 11 2025 Yaakov Selkowitz <yselkowi@redhat.com> - 2:1.13.2-5
- Use bundled spdlog on RHEL
* Mon Feb 10 2025 Than Ngo <than@redhat.com> - 2:1.13.2-4
- built with system sqlite3 and spdlog
* Sat Feb 08 2025 Than Ngo <than@redhat.com> - 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 <releng@fedoraproject.org> - 2:1.13.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
* Mon Jan 13 2025 Than Ngo <than@redhat.com> - 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 <than@redhat.com> - 2:1.13.1-1
- Fix rhbz#2335266, Update to 1.13.1
* Thu Jan 02 2025 Than Ngo <than@redhat.com> - 2:1.13.0-1
- Fix rhbz#2334703, Update to 1.13.0
* Mon Oct 28 2024 Than Ngo <than@redhat.com> - 2:1.12.0-3
- Fix rhbz#2295788, Non-reproducible file names in doxygen output
* Mon Oct 28 2024 Than Ngo <than@redhat.com> - 2:1.12.0-2
- Fix rhbz#x2322116, broken markdown links to anchors

View file

@ -1,2 +1,2 @@
SHA512 (doxywizard-icons.tar.xz) = 865a86d7535e64ad92e36ba1f901d51cd6b603e762e5c68761a45bc1f965a36e6a6c8d29468ecb2ec799f0add2347537723832aff6660c76af453f80a0a370ad
SHA512 (doxygen-1.15.0.src.tar.gz) = e53cc8da6cf1fe3ca3b3637647ed6afa28365351eac81d010f6691d939df5e449b3d898a6f695dd850d12659dfd7018fc864071b30fbca5dd196dc094ec4371e
SHA512 (doxygen-1.12.0.src.tar.gz) = e407e29c5e232e1f8dca291dd2d00b1dd400be709400225339408fad2cd758563b69f290cbd7c0efeb76b1335c4672fb1d6d580b9e6ed570708cf9b7d78951b1