Compare commits

..

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

6 changed files with 117 additions and 295 deletions

10
.gitignore vendored
View file

@ -59,13 +59,3 @@ doxygen-1.7.1.src.tar.gz
/doxygen-1.9.4.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

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,40 @@
--- doxygen-1.9.6.orig/templates/latex/latexmakefile.tpl 2023-03-09 10:29:08.772377871 +0100
+++ doxygen-1.9.6/templates/latex/latexmakefile.tpl 2023-03-09 10:29:23.754555476 +0100
@@ -9,7 +9,7 @@
{# TODO: generateBib #}
pdflatex refman
latex_count=8 ; \
- while egrep -s 'Rerun (LaTeX|to get cross-references right)' refman.log && [ $$latex_count -gt 0 ] ;\
+ while grep -E -s 'Rerun (LaTeX|to get cross-references right)' refman.log && [ $$latex_count -gt 0 ] ;\
do \
echo "Rerunning latex...." ;\
pdflatex refman ;\
@@ -43,7 +43,7 @@
echo "Rerunning latex...."
{{ config.LATEX_CMD_NAME }} refman.tex
latex_count=8 ; \
- while egrep -s 'Rerun (LaTeX|to get cross-references right)' refman.log && [ $$latex_count -gt 0 ] ;\
+ while grep -E -s 'Rerun (LaTeX|to get cross-references right)' refman.log && [ $$latex_count -gt 0 ] ;\
do \
echo "Rerunning latex...." ;\
{{ config.LATEX_CMD_NAME }} refman.tex ;\
--- doxygen-1.9.6.orig/src/latexgen.cpp 2023-03-09 11:10:52.092688592 +0100
+++ doxygen-1.9.6/src/latexgen.cpp 2023-03-09 11:11:07.666867516 +0100
@@ -346,7 +346,7 @@
t << "\techo \"Rerunning latex....\"\n"
<< "\t$(LATEX_CMD) $(MANUAL_FILE).tex\n"
<< "\tlatex_count=$(LATEX_COUNT) ; \\\n"
- << "\twhile egrep -s 'Rerun (LaTeX|to get cross-references right|to get bibliographical references right)' $(MANUAL_FILE).log && [ $$latex_count -gt 0 ] ;\\\n"
+ << "\twhile grep -E -s 'Rerun (LaTeX|to get cross-references right|to get bibliographical references right)' $(MANUAL_FILE).log && [ $$latex_count -gt 0 ] ;\\\n"
<< "\t do \\\n"
<< "\t echo \"Rerunning latex....\" ;\\\n"
<< "\t $(LATEX_CMD) $(MANUAL_FILE).tex ; \\\n"
@@ -374,7 +374,7 @@
}
t << "\t$(LATEX_CMD) $(MANUAL_FILE)\n"
<< "\tlatex_count=$(LATEX_COUNT) ; \\\n"
- << "\twhile egrep -s 'Rerun (LaTeX|to get cross-references right|to get bibliographical references right)' $(MANUAL_FILE).log && [ $$latex_count -gt 0 ] ;\\\n"
+ << "\twhile grep -E -s 'Rerun (LaTeX|to get cross-references right|to get bibliographical references right)' $(MANUAL_FILE).log && [ $$latex_count -gt 0 ] ;\\\n"
<< "\t do \\\n"
<< "\t echo \"Rerunning latex....\" ;\\\n"
<< "\t $(LATEX_CMD) $(MANUAL_FILE) ;\\\n"

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,42 +1,53 @@
%if 0%{?fedora}
%global xapian_core_support ON
%global build_wizard ON
%global system_spdlog ON
%global system_fmt ON
%global clang_support ON
%else
%global xapian_core_support OFF
%global build_wizard OFF
%global system_spdlog OFF
%global system_fmt OFF
%global clang_support OFF
%endif
%global stable 1
%if 0%{?stable}
%global irelease 2
%else
%global commit e18f715eb55121a4219d00bc4d824cebf1fb504b
%global shortcommit %(c=%{commit}; echo ${c:0:7})
%global date 20220217
%global irelease 0.%{date}git%{shortcommit}
%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.6
%if 0%{?stable}
Release: 7%{?dist}
%else
%global commit e18f715eb55121a4219d00bc4d824cebf1fb504b
%global shortcommit %(c=%{commit}; echo ${c:0:7})
%global date 20220217
Release: 0.%{date}git%{shortcommit}.1
%endif
# 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
%if 0%{?stable}
Source0: https://sourceforge.net/projects/doxygen/files/rel-%{version}/%{name}-%{version}.src.tar.gz
%else
Source0: https://github.com/%{name}/%{name}/archive/%{commit}/%{name}-%{commit}.tar.gz
%endif
# 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-obsolete-egrep.patch
BuildRequires: %{_bindir}/python3
BuildRequires: gcc-c++ gcc
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)
@ -113,28 +124,7 @@ BuildRequires: xapian-core-devel
%if "x%{?clang_support}" == "xON"
BuildRequires: llvm-devel
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,26 +135,16 @@ 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"
%if ! 0%{?_module_build}
%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
are used by doxygen.
%endif
%if ! 0%{?_module_build}
%package latex
Summary: Support for producing latex/pdf output from doxygen
Requires: %{name} = %{epoch}:%{version}-%{release}
@ -241,37 +221,48 @@ Requires: texlive-epstopdf
%prep
%if 0%{?stable}
%autosetup -p1 -a2
%else
%autosetup -n %{name}-%{commit} -a2
%endif
# 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
cp %{SOURCE3} .
%build
%if ! 0%{?_module_build}
%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}
%install
%cmake_install
# install man pages
mkdir -p %{buildroot}/%{_mandir}/man1
cp doc/*.1 %{buildroot}/%{_mandir}/man1/
%if "x%{build_wizard}" == "xOFF"
rm -f %{buildroot}/%{_mandir}/man1/doxywizard.1*
%else
# install icons
icondir=%{buildroot}%{_datadir}/icons/hicolor
mkdir -m755 -p $icondir/{16x16,32x32,48x48,128x128}/apps
@ -279,7 +270,12 @@ install -m644 -p -D doxywizard-6.png $icondir/16x16/apps/doxywizard.png
install -m644 -p -D doxywizard-5.png $icondir/32x32/apps/doxywizard.png
install -m644 -p -D doxywizard-4.png $icondir/48x48/apps/doxywizard.png
install -m644 -p -D doxywizard-3.png $icondir/128x128/apps/doxywizard.png
desktop-file-install --dir=%{buildroot}%{_datadir}/applications %{SOURCE1}
# install man pages
mkdir -p %{buildroot}/%{_mandir}/man1
cp doc/*.1 %{buildroot}/%{_mandir}/man1/
%if 0%{?_module_build}
rm -f %{buildroot}/%{_mandir}/man1/doxywizard.1*
%endif
%if "x%{?xapian_core_support}" == "xOFF"
@ -289,25 +285,15 @@ 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}
%if ! 0%{?_module_build}
desktop-file-install --dir=%{buildroot}%{_datadir}/applications %{SOURCE1}
%endif
%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,18 +307,13 @@ 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"
%if ! 0%{?_module_build}
%files doxywizard
%{_bindir}/doxywizard
%{_mandir}/man1/doxywizard*
%{_datadir}/applications/doxywizard.desktop
%{_datadir}/icons/hicolor/*/apps/doxywizard.png
%endif
%files -n js-doxygen
%{_jsdir}/doxygen/*
%{_datadir}/icons/hicolor/*/apps/doxywizard.png
%if ! 0%{?_module_build}
%files latex
@ -340,90 +321,6 @@ install -m755 -D --target-directory=%{buildroot}%{_rpmconfigdir}/redhat %{SOURCE
%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
* Wed Aug 07 2024 Than Ngo <than@redhat.com> - 2:1.12.0-1
- update to 1.12.0
* Wed Jul 17 2024 Fedora Release Engineering <releng@fedoraproject.org> - 2:1.11.0-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
* Fri Jun 14 2024 Than Ngo <than@redhat.com> - 2:1.11.0-4
- fixed rhbz#2292250, update license
* Fri May 31 2024 Than Ngo <than@redhat.com> - 2:1.11.0-3
- removed workaround for debuginfo
* Wed May 29 2024 Than Ngo <than@redhat.com> - 2:1.11.0-2
- fixed rhbz#2283362, fix buffer overflow
* Tue May 21 2024 Than Ngo <than@redhat.com> - 2:1.11.0-1
- update to 1.11.0
* Wed Jan 24 2024 Fedora Release Engineering <releng@fedoraproject.org> - 2:1.10.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Fri Jan 19 2024 Than Ngo <than@redhat.com> - 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 <than@redhat.com> - 1.10.0-1
- bz#2255826, update to 1.10
* Mon Sep 11 2023 Than Ngo <than@redhat.com> - 1.9.8-1
- fix bz#2235035, update to 1.9.8
* Wed Jul 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 2:1.9.7-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Tue May 30 2023 Than Ngo <than@redhat.com> - 2:1.9.7-2
- disable build_wizard for eln
- fixed broken unicode test
* Fri May 19 2023 Than Ngo <than@redhat.com> - 2:1.9.7-1
- fix #2208417, rebase to 1.9.7
* Fri Mar 10 2023 Than Ngo <than@redhat.com> - 2:1.9.6-7
- replace obsolescent egrep with grep -E

View file

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