diff --git a/.gitignore b/.gitignore index a007b45..a966a88 100644 --- a/.gitignore +++ b/.gitignore @@ -58,14 +58,3 @@ doxygen-1.7.1.src.tar.gz /doxygen-e18f715eb55121a4219d00bc4d824cebf1fb504b.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-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..50edd22 100644 --- a/doxygen.spec +++ b/doxygen.spec @@ -1,43 +1,51 @@ %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.5 +%if 0%{?stable} +Release: 2%{?dist} +%else +%global commit e18f715eb55121a4219d00bc4d824cebf1fb504b +%global shortcommit %(c=%{commit}; echo ${c:0:7}) +%global date 20220217 +Release: 0.%{date}git%{shortcommit} +%endif # No version is specified. -License: GPL-2.0-or-later +License: GPL+ 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 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) - +BuildRequires: gcc-c++ gcc +BuildRequires: perl-interpreter %if ! 0%{?_module_build} BuildRequires: tex(dvips) BuildRequires: tex(latex) @@ -101,40 +109,21 @@ BuildRequires: ghostscript BuildRequires: gettext BuildRequires: desktop-file-utils BuildRequires: graphviz -%endif +%else BuildRequires: zlib-devel +%endif BuildRequires: flex BuildRequires: bison BuildRequires: cmake BuildRequires: git %if "x%{?xapian_core_support}" == "xON" BuildRequires: xapian-core-devel +BuildRequires: zlib-devel %endif %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,32 +134,21 @@ 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} Requires: tex(latex) Requires: tex(dvips) -Requires: texlive-wasy %if 0%{?fedora} > 17 || 0%{?rhel} > 6 # From doc/manual.sty Requires: tex(helvet.sty) @@ -241,37 +219,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 +268,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 +283,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 +305,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,111 +319,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 - -* Fri Feb 17 2023 Than Ngo - 2:1.9.6-6 -- migrated to SPDX license - -* Wed Jan 25 2023 Than Ngo - 2:1.9.6-5 -- rebuilt against new ghostscript-10 - -* Fri Jan 20 2023 Than Ngo - 2:1.9.6-4 -- fixed bz#2162170, add Require on texlive-wasy - -* Thu Jan 19 2023 Fedora Release Engineering - 2:1.9.6-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild - -* Wed Jan 18 2023 Than Ngo - 2:1.9.6-2 -- fixed bz#2161515 - doxygen FTBFS if _module_build is 1 - -* Tue Jan 03 2023 Than Ngo - 2:1.9.6-1 -- fixed bz#2156564, update to 1.9.6 - * Sun Sep 18 2022 Pete Walter - 2:1.9.5-2 - Rebuild for llvm 15 diff --git a/sources b/sources index 7883325..b94770f 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.5.src.tar.gz) = 4ad4c1ecd4a12220442f354b90aa56f80e78fcaf288d5e36da421437d59811ed3d429ee13717692886a55b9628ae565d40ce13c51792ccc8bba15b1e018cb651