diff --git a/.gitignore b/.gitignore index a007b45..3da1189 100644 --- a/.gitignore +++ b/.gitignore @@ -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 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-obsolete-egrep.patch b/doxygen-obsolete-egrep.patch new file mode 100644 index 0000000..9a859b5 --- /dev/null +++ b/doxygen-obsolete-egrep.patch @@ -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" 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..6009311 100644 --- a/doxygen.spec +++ b/doxygen.spec @@ -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 - 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 - -* Tue May 30 2023 Than Ngo - 2:1.9.7-2 -- disable build_wizard for eln -- fixed broken unicode test - -* Fri May 19 2023 Than Ngo - 2:1.9.7-1 -- fix #2208417, rebase to 1.9.7 - * Fri Mar 10 2023 Than Ngo - 2:1.9.6-7 - replace obsolescent egrep with grep -E diff --git a/sources b/sources index 7883325..b45c18d 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.6.src.tar.gz) = f8b0d19d33fa8a5bb92b38f1c775bd3cde7f024566cf93ed61ab0cafe86643971c04b7f2492364767b3e6ce5b518bad5e0321c82f0a72875ccf936ea7d3595b2