diff --git a/.gitignore b/.gitignore index a007b45..e3cca27 100644 --- a/.gitignore +++ b/.gitignore @@ -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 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.12.0-regression-anchors.patch b/doxygen-1.12.0-regression-anchors.patch new file mode 100644 index 0000000..272df09 --- /dev/null +++ b/doxygen-1.12.0-regression-anchors.patch @@ -0,0 +1,30 @@ +commit d408967139935bbaeae8d9eac7f0f34877d53d1c +Author: albert-github +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] 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..5e41254 100644 --- a/doxygen.spec +++ b/doxygen.spec @@ -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 - 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 diff --git a/sources b/sources index 7883325..b656c32 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.12.0.src.tar.gz) = e407e29c5e232e1f8dca291dd2d00b1dd400be709400225339408fad2cd758563b69f290cbd7c0efeb76b1335c4672fb1d6d580b9e6ed570708cf9b7d78951b1