diff --git a/.gitignore b/.gitignore index 62f8f34..a007b45 100644 --- a/.gitignore +++ b/.gitignore @@ -48,3 +48,24 @@ doxygen-1.7.1.src.tar.gz /doxygen-1.8.13.src.tar.gz /doxygen-1.8.14.src.tar.gz /doxygen-1.8.15.src.tar.gz +/doxygen-1.8.16.src.tar.gz +/doxygen-1.8.17.src.tar.gz +/doxygen-1.8.18.src.tar.gz +/doxywizard-icons.tar.xz +/doxygen-1.9.1.src.tar.gz +/doxygen-1.9.2.src.tar.gz +/doxygen-1.9.2-d882240f-git.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 new file mode 100644 index 0000000..9f09233 --- /dev/null +++ b/README.rpm-packaging @@ -0,0 +1,36 @@ +# 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.8.15-crash.patch b/doxygen-1.8.15-crash.patch deleted file mode 100644 index 24c3467..0000000 --- a/doxygen-1.8.15-crash.patch +++ /dev/null @@ -1,52 +0,0 @@ -commit c26c5fc4fb852098c7188e7762778c87a50771cb -Author: albert-github -Date: Mon Jan 7 18:48:13 2019 +0100 - - issue #6749 doxygen 1.8.15 segfault - - An empty string was defined in a `` resulting in a null pointer access. - -diff --git a/src/util.cpp b/src/util.cpp -index f9c2492f..9a0e513b 100644 ---- a/src/util.cpp -+++ b/src/util.cpp -@@ -5444,6 +5444,7 @@ QCString escapeCharsInString(const char *name,bool allowDots,bool allowUnderscor - static bool allowUnicodeNames = Config_getBool(ALLOW_UNICODE_NAMES); - static GrowBuf growBuf; - growBuf.clear(); -+ if (name==0) return ""; - char c; - const char *p=name; - while ((c=*p++)!=0) -@@ -6962,6 +6963,7 @@ void filterLatexString(FTextStream &t,const char *str, - - QCString latexEscapeLabelName(const char *s) - { -+ if (s==0) return ""; - QGString result; - QCString tmp(qstrlen(s)+1); - FTextStream t(&result); -@@ -6999,6 +7001,7 @@ QCString latexEscapeLabelName(const char *s) - - QCString latexEscapeIndexChars(const char *s) - { -+ if (s==0) return ""; - QGString result; - QCString tmp(qstrlen(s)+1); - FTextStream t(&result); -@@ -7037,6 +7040,7 @@ QCString latexEscapeIndexChars(const char *s) - - QCString latexEscapePDFString(const char *s) - { -+ if (s==0) return ""; - QGString result; - FTextStream t(&result); - const char *p=s; -@@ -7061,6 +7065,7 @@ QCString latexEscapePDFString(const char *s) - - QCString latexFilterURL(const char *s) - { -+ if (s==0) return ""; - QGString result; - FTextStream t(&result); - const char *p=s; diff --git a/doxygen-1.8.15-handle_empty_TOC_in_XML_output.patch b/doxygen-1.8.15-handle_empty_TOC_in_XML_output.patch deleted file mode 100644 index dd90cdd..0000000 --- a/doxygen-1.8.15-handle_empty_TOC_in_XML_output.patch +++ /dev/null @@ -1,27 +0,0 @@ -commit cfe381e3ee55b8291faeea55fe3b67bb9e545d60 -Author: Vladimír Vondruš -Date: Sat Dec 29 21:52:39 2018 +0100 - - Properly handle empty TOC in XML output. - - Caused the test (079) to fail with a SIGSEGV, but larger projects exit - with a success return code and the generated XML is either truncated or - empty. Weird. - -diff --git a/src/xmlgen.cpp b/src/xmlgen.cpp -index bacf4d41..033e611f 100644 ---- a/src/xmlgen.cpp -+++ b/src/xmlgen.cpp -@@ -1818,10 +1818,10 @@ static void generateXMLForPage(PageDef *pd,FTextStream &ti,bool isExample) - } - } - writeInnerPages(pd->getSubPages(),t); -- if (pd->localToc().isXmlEnabled()) -+ SectionDict *sectionDict = pd->getSectionDict(); -+ if (pd->localToc().isXmlEnabled() && sectionDict) - { - t << " " << endl; -- SectionDict *sectionDict = pd->getSectionDict(); - SDict::Iterator li(*sectionDict); - SectionInfo *si; - int level=1,l; diff --git a/doxygen-1.8.15-inconsistent_whitespace_removal_for_operators.patch b/doxygen-1.8.15-inconsistent_whitespace_removal_for_operators.patch deleted file mode 100644 index 01c3df7..0000000 --- a/doxygen-1.8.15-inconsistent_whitespace_removal_for_operators.patch +++ /dev/null @@ -1,48 +0,0 @@ -commit e54ccc0e6eb12a0720860d863a89cb3f1a83f2a2 -Author: Dimitri van Heesch -Date: Sun Feb 3 14:33:35 2019 +0100 - - Issue 6814: Inconsistent whitespace removal for operators in 1.8.15 - -diff --git a/src/util.cpp b/src/util.cpp -index 9a0e513b..3a3bfd38 100644 ---- a/src/util.cpp -+++ b/src/util.cpp -@@ -1895,7 +1895,7 @@ QCString removeRedundantWhiteSpace(const QCString &s) - if (g_charAroundSpace.charMap[(uchar)pc].before && - g_charAroundSpace.charMap[(uchar)nc].after && - !(pc==',' && nc=='.') && -- (osp<8 || (osp>=8 && pc!='"' && isId(nc)) || (osp>=8 && pc!='"' && nc!='"')) -+ (osp<8 || (osp>=8 && isId(pc) && isId(nc))) - // e.g. 'operator >>' -> 'operator>>', - // 'operator "" _x' -> 'operator""_x', - // but not 'operator int' -> 'operatorint' -commit 2802e2b4ee8158dba3f3584037e99907c6db7ec4 -Author: Dimitri van Heesch -Date: Mon Feb 4 22:19:56 2019 +0100 - - Issue 6814: Further finetuning for inconsistent whitespace removal for operators in 1.8.15 - -diff --git a/src/util.cpp b/src/util.cpp -index 3a3bfd38..53b176d4 100644 ---- a/src/util.cpp -+++ b/src/util.cpp -@@ -1847,7 +1847,8 @@ QCString removeRedundantWhiteSpace(const QCString &s) - case '*': - if (i>0 && pc!=' ' && pc!='\t' && pc!=':' && - pc!='*' && pc!='&' && pc!='(' && pc!='/' && -- pc!='.' && (osp<9 || !(pc=='>' && osp==11))) -+ pc!='.' && osp<9 -+ ) - // avoid splitting &&, **, .*, operator*, operator->* - { - *dst++=' '; -@@ -1855,7 +1856,7 @@ QCString removeRedundantWhiteSpace(const QCString &s) - *dst++=c; - break; - case '&': -- if (i>0 && isId(pc)) -+ if (i>0 && isId(pc) && osp<9) - { - if (nc != '=') - // avoid splitting operator&= diff --git a/doxygen-1.8.15-multilib.patch b/doxygen-1.8.15-multilib.patch deleted file mode 100644 index 329ce72..0000000 --- a/doxygen-1.8.15-multilib.patch +++ /dev/null @@ -1,20 +0,0 @@ -diff -up doxygen-1.8.15/src/dirdef.cpp.me doxygen-1.8.15/src/dirdef.cpp ---- doxygen-1.8.15/src/dirdef.cpp.me 2019-02-14 22:57:29.709491363 +0100 -+++ doxygen-1.8.15/src/dirdef.cpp 2019-02-14 22:59:10.922169840 +0100 -@@ -936,14 +936,14 @@ void buildDirectories() - for (;(fd=fni.current());++fni) - { - //printf("buildDirectories %s\n",fd->name().data()); -- if (fd->getReference().isEmpty()) -+ if (fd->getReference().isEmpty() && !fd->isDocumentationFile()) - { - DirDef *dir; - if ((dir=Doxygen::directories->find(fd->getPath()))==0) // new directory - { - dir = DirDef::mergeDirectoryInTree(fd->getPath()); - } -- if (dir && !fd->isDocumentationFile()) dir->addFile(fd); -+ if (dir) dir->addFile(fd); - } - else - { diff --git a/doxygen-1.8.15-test_for_XML_output_with_an_empty_TOC.patch b/doxygen-1.8.15-test_for_XML_output_with_an_empty_TOC.patch deleted file mode 100644 index afa039d..0000000 --- a/doxygen-1.8.15-test_for_XML_output_with_an_empty_TOC.patch +++ /dev/null @@ -1,42 +0,0 @@ -commit e26a5b8eed8a012e6a400f1ed6baf27980668b53 -Author: Vladimír Vondruš -Date: Sat Dec 29 21:30:51 2018 +0100 - - testing: add a test for XML output with an empty TOC. - - Fails, in particular causes Doxygen to produce an empty (or truncated) - XML file but returning with a success error code. - -diff --git a/testing/079/empty.xml b/testing/079/empty.xml -new file mode 100644 -index 00000000..3e1d6915 ---- /dev/null -+++ b/testing/079/empty.xml -@@ -0,0 +1,12 @@ -+ -+ -+ -+ empty -+ An empty page -+ -+ -+ -+With an empty TOC. -+ -+ -+ -diff --git a/testing/079_tableofcontents.dox b/testing/079_tableofcontents.dox -new file mode 100644 -index 00000000..499771d7 ---- /dev/null -+++ b/testing/079_tableofcontents.dox -@@ -0,0 +1,9 @@ -+// objective: test TOC generation for an empty page -+// check: empty.xml -+/** -+@page empty An empty page -+ -+@tableofcontents -+ -+With an empty TOC. -+*/ diff --git a/doxygen-unbundler b/doxygen-unbundler new file mode 100644 index 0000000..aaf8bed --- /dev/null +++ b/doxygen-unbundler @@ -0,0 +1,69 @@ +#!/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 6ec03ef..7818615 100644 --- a/doxygen.spec +++ b/doxygen.spec @@ -1,62 +1,142 @@ %if 0%{?fedora} %global xapian_core_support ON +%global build_wizard ON +%global system_spdlog ON +%global system_fmt ON %else %global xapian_core_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: 1 -Version: 1.8.15 -Release: 6%{?dist} - +Epoch: 2 +Version: 1.15.0 +Release: 1%{?dist} # No version is specified. -License: GPL+ -Url: http://www.doxygen.nl -Source0: http://doxygen.nl/files/%{name}-%{version}.src.tar.gz +License: GPL-2.0-or-later +Url: https://github.com/doxygen +Source0: https://www.doxygen.nl/files/%{name}-%{version}.src.tar.gz # this icon is part of kdesdk -Source1: doxywizard.png -Source2: doxywizard.desktop +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 patches -Patch0: doxygen-1.8.15-handle_empty_TOC_in_XML_output.patch -Patch1: doxygen-1.8.15-test_for_XML_output_with_an_empty_TOC.patch -Patch2: doxygen-1.8.15-inconsistent_whitespace_removal_for_operators.patch -Patch3: doxygen-1.8.15-crash.patch -Patch4: doxygen-1.8.15-multilib.patch +# upstream fixes 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) -BuildRequires: tex(multirow.sty) +# From doc/manual.sty +BuildRequires: tex(helvet.sty) BuildRequires: tex(sectsty.sty) BuildRequires: tex(tocloft.sty) -BuildRequires: tex(xtab.sty) -BuildRequires: tex(import.sty) -BuildRequires: tex(tabu.sty) -BuildRequires: tex(appendix.sty) +BuildRequires: tex(fontenc.sty) +BuildRequires: tex(fancyhdr.sty) +# From templates/latex/doxygen.sty +BuildRequires: tex(alltt.sty) +BuildRequires: tex(calc.sty) +BuildRequires: tex(float.sty) +BuildRequires: tex(verbatim.sty) +BuildRequires: tex(xcolor.sty) +BuildRequires: tex(fancyvrb.sty) +BuildRequires: tex(tabularx.sty) +BuildRequires: tex(multirow.sty) +BuildRequires: tex(hanging.sty) +BuildRequires: tex(ifpdf.sty) BuildRequires: tex(adjustbox.sty) +BuildRequires: tex(amssymb.sty) +BuildRequires: tex(stackengine.sty) +BuildRequires: tex(ulem.sty) +# From doc/doxygen_manual.tex +BuildRequires: tex(ifthen.sty) +BuildRequires: tex(array.sty) +BuildRequires: tex(geometry.sty) +BuildRequires: tex(makeidx.sty) +BuildRequires: tex(natbib.sty) +BuildRequires: tex(graphicx.sty) +BuildRequires: tex(multicol.sty) +BuildRequires: tex(float.sty) +BuildRequires: tex(geometry.sty) +BuildRequires: tex(listings.sty) +BuildRequires: tex(color.sty) +BuildRequires: tex(xcolor.sty) +BuildRequires: tex(textcomp.sty) +BuildRequires: tex(wasysym.sty) +BuildRequires: tex(import.sty) +BuildRequires: tex(appendix.sty) +BuildRequires: tex(hyperref.sty) +BuildRequires: tex(pspicture.sty) +BuildRequires: tex(inputenc.sty) +BuildRequires: tex(mathptmx.sty) +BuildRequires: tex(courier.sty) +# From src/latexgen.cpp +BuildRequires: tex(fixltx2e.sty) +BuildRequires: tex(ifxetex.sty) +BuildRequires: tex(caption.sty) +BuildRequires: tex(etoc.sty) +# From src/util.cpp +BuildRequires: tex(newunicodechar.sty) +# From templates/latex/tabu_doxygen.sty +BuildRequires: tex(varwidth.sty) +BuildRequires: tex(xtab.sty) +BuildRequires: tex(tabu.sty) BuildRequires: /usr/bin/epstopdf BuildRequires: texlive-epstopdf BuildRequires: ghostscript BuildRequires: gettext BuildRequires: desktop-file-utils BuildRequires: graphviz -%else -BuildRequires: zlib-devel %endif +BuildRequires: zlib-devel BuildRequires: flex BuildRequires: bison BuildRequires: cmake -%if %{xapian_core_support} == "ON" +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 %description Doxygen can generate an online class browser (in HTML) and/or a @@ -65,30 +145,94 @@ documentation is extracted directly from the sources. Doxygen can also be configured to extract the code structure from undocumented source files. -%if ! 0%{?_module_build} +%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: qt5-qtbase-devel +BuildRequires: qt6-qtbase-devel +BuildRequires: qt6-qtsvg-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 -Requires: tex(multirow.sty) +# From doc/manual.sty +Requires: tex(helvet.sty) Requires: tex(sectsty.sty) Requires: tex(tocloft.sty) -Requires: tex(xtab.sty) +Requires: tex(fontenc.sty) +Requires: tex(fancyhdr.sty) +# From templates/latex/doxygen.sty +Requires: tex(alltt.sty) +Requires: tex(calc.sty) +Requires: tex(float.sty) +Requires: tex(verbatim.sty) +Requires: tex(xcolor.sty) +Requires: tex(fancyvrb.sty) +Requires: tex(tabularx.sty) +Requires: tex(multirow.sty) +Requires: tex(hanging.sty) +Requires: tex(ifpdf.sty) +Requires: tex(adjustbox.sty) +Requires: tex(amssymb.sty) +Requires: tex(stackengine.sty) +Requires: tex(ulem.sty) +# From doc/doxygen_manual.tex +Requires: tex(ifthen.sty) +Requires: tex(array.sty) +Requires: tex(geometry.sty) +Requires: tex(makeidx.sty) +Requires: tex(natbib.sty) +Requires: tex(graphicx.sty) +Requires: tex(multicol.sty) +Requires: tex(float.sty) +Requires: tex(geometry.sty) +Requires: tex(listings.sty) +Requires: tex(color.sty) +Requires: tex(xcolor.sty) +Requires: tex(textcomp.sty) +Requires: tex(wasysym.sty) Requires: tex(import.sty) -Requires: tex(tabu.sty) Requires: tex(appendix.sty) +Requires: tex(hyperref.sty) +Requires: tex(pspicture.sty) +Requires: tex(inputenc.sty) +Requires: tex(mathptmx.sty) +Requires: tex(courier.sty) +# From src/latexgen.cpp +Requires: tex(fixltx2e.sty) +Requires: tex(ifxetex.sty) +Requires: tex(caption.sty) +Requires: tex(etoc.sty) +# From src/util.cpp Requires: tex(newunicodechar.sty) -Requires: texlive-epstopdf-bin +# From templates/latex/tabu_doxygen.sty +Requires: tex(varwidth.sty) +# I'm 99% sure this isn't needed anymore since +# doxygen has a local fork of tabu... but it doesn't seem to be hurting anything. +Requires: tex(tabu.sty) +# There also does not seem to be any references to xtab in the code... but eh. +Requires: tex(xtab.sty) +# Explicitly called binaries +Requires: texlive-bibtex +Requires: texlive-makeindex +Requires: texlive-epstopdf %endif %description latex @@ -97,92 +241,98 @@ Requires: texlive-epstopdf-bin %prep -%autosetup -p1 - -# 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 +%autosetup -p1 -a2 +cp %{SOURCE3} . %build - -mkdir -p %{_target_platform} -pushd %{_target_platform} -%if ! 0%{?_module_build} %cmake \ - -DPYTHON_EXECUTABLE=%{_bindir}/python3 \ - -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 \ - -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 -popd + -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} -make %{?_smp_mflags} -C %{_target_platform} +%cmake_build %{?_smp_mflags} %install -make install DESTDIR=%{buildroot} -C %{_target_platform} - -install -m644 -p -D %{SOURCE1} %{buildroot}%{_datadir}/pixmaps/doxywizard.png +%cmake_install # install man pages mkdir -p %{buildroot}/%{_mandir}/man1 cp doc/*.1 %{buildroot}/%{_mandir}/man1/ -%if 0%{?_module_build} + +%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 +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} %endif -%if %{xapian_core_support} == "OFF" +%if "x%{?xapian_core_support}" == "xOFF" rm -f %{buildroot}/%{_mandir}/man1/doxyindexer.1* %{buildroot}/%{_mandir}/man1/doxysearch.1* %endif # remove duplicate rm -rf %{buildroot}/%{_docdir}/packages -%if ! 0%{?_module_build} -desktop-file-install --dir=%{buildroot}%{_datadir}/applications %{SOURCE2} -%endif +# 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 -make tests -C %{_target_platform} +%ctest %files -%doc LANGUAGE.HOWTO README.md +%doc LANGUAGE.HOWTO README.md README.rpm-packaging +%license LICENSE %if ! 0%{?_module_build} -%if %{xapian_core_support} == "ON" +%if "x%{?xapian_core_support}" == "xON" %{_bindir}/doxyindexer %{_bindir}/doxysearch* %endif %endif %{_bindir}/doxygen %{_mandir}/man1/doxygen.1* -%if %{xapian_core_support} == "ON" +%if "x%{?xapian_core_support}" == "xON" %{_mandir}/man1/doxyindexer.1* %{_mandir}/man1/doxysearch.1* %endif -%if ! 0%{?_module_build} +%{_rpmconfigdir}/macros.d/macros.doxygen +%{_rpmconfigdir}/redhat/doxygen-unbundler +%if "x%{build_wizard}" == "xON" %files doxywizard %{_bindir}/doxywizard %{_mandir}/man1/doxywizard* %{_datadir}/applications/doxywizard.desktop +%{_datadir}/icons/hicolor/*/apps/doxywizard.png %endif -%{_datadir}/pixmaps/doxywizard.png + +%files -n js-doxygen +%{_jsdir}/doxygen/* %if ! 0%{?_module_build} %files latex @@ -190,6 +340,251 @@ make tests -C %{_target_platform} %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 + +* Fri Sep 09 2022 Than Ngo - 2:1.9.5-1 +- 1.9.5 + +* Thu Aug 04 2022 Than Ngo - 2:1.9.4-2 +- Fixed #2113876, Failed to build LaTex output + +* Thu Jul 21 2022 Fedora Release Engineering - 2:1.9.4-1.1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Fri May 06 2022 Than Ngo - 2:1.9.4-1 +- 1.9.4 + +* Thu Feb 17 2022 Than Ngo - 2:1.9.4-0.20220217gite18f715e +- update to 1.9.4 snapshot + +* Thu Jan 20 2022 Fedora Release Engineering - 2:1.9.1-13 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Wed Oct 27 2021 Than Ngo - 2:1.9.1-12 +- revert 1.9.1, noarch package built differently on different architectures + +* Wed Oct 27 2021 Than Ngo - 1:1.9.2-4 +- update + +* Thu Oct 07 2021 Tom Stellard - 1:1.9.2-3 +- Rebuild for llvm-13.0.0 + +* Sun Sep 12 2021 Mattias Ellert - 1:1.9.2-2 +- Use predictable and reproducible filenames (rhbz#2000138) + +* Thu Aug 19 2021 Than Ngo - 1:1.9.2-1 +- rebase to 1.9.2 + +* Tue Aug 17 2021 Björn Esser - 1:1.9.1-11 +- Rebuild for clang-13.0.0 + +* Wed Jul 21 2021 Fedora Release Engineering - 1:1.9.1-10 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Tue Mar 30 2021 Jonathan Wakely - 1:1.9.1-9 +- Rebuilt for removed libstdc++ symbol (#1937698) + +* Sun Mar 21 2021 Than Ngo - 1:1.9.1-8 +- update source + +* Mon Feb 22 2021 Than Ngo - 1:1.9.1-7 +- drop test-suite + +* Wed Feb 10 2021 Than Ngo - 1:1.9.1-6 +- fixed Coverity issues +- fixed crash in docparser + +* Tue Jan 26 2021 Fedora Release Engineering - 1:1.9.1-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Fri Jan 22 2021 Tom Stellard - 1:1.9.1-4 +- Rebuild for clang-11.1.0 + +* Tue Jan 19 2021 Than Ngo - 1.9.1-3 +- fixed doxygen crashes when parsing config file part2 + + +* Tue Jan 19 2021 Than Ngo - 1.9.1-2 +- fixed bz#1916161, crashes when parsing config file + +* Mon Jan 11 2021 Than Ngo - 1.9.1-1 +- update to 1.9.1 + +* Mon Jan 11 2021 Than Ngo - 1.8.20-6 +- drop BR on ImageMagick in RHEL + +* Tue Sep 29 2020 Than Ngo - 1.8.20-5 +- backport upstream patches + +* Thu Sep 17 2020 Than Ngo - 1.8.20-4 +- Fix doxygen crash + +* Tue Sep 15 2020 Mattias Ellert - 1:1.8.20-3 +- Fix doxygen producing different results on 32 and 64 bit architectures + +* Fri Aug 28 2020 Scott Talbert - 1:1.8.20-2 +- Fix issue with enums being defined in multiple files + +* Tue Aug 25 2020 Than Ngo - 1.8.20-1 +- update to 1.8.20 + +* Sat Aug 01 2020 Fedora Release Engineering - 1:1.8.18-6 +- Second attempt - Rebuilt for + https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Mon Jul 27 2020 Fedora Release Engineering - 1:1.8.18-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Wed Jul 08 2020 Than Ngo - 1.8.18-4 +- fixed link issue against new clang + +* Thu Jun 18 2020 Than Ngo - 1.8.18-3 +- fixed bz#1834591, enable clang support in fedora + +* Wed May 27 2020 Tom Callaway - 1.8.18-2 +- update tex dependencies + +* Mon May 25 2020 Than Ngo - 1.8.18-1 +- update to 1.8.18 +- backport fixes: buffer-overflow, memory leeks and md5 hash does not match for + 2 diffferent runs + +* Thu Apr 02 2020 Björn Esser - 1:1.8.17-3 +- Fix string quoting for rpm >= 4.16 + +* Tue Jan 28 2020 Fedora Release Engineering - 1:1.8.17-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Tue Jan 14 2020 Than Ngo - 1:1.8.17-1 +- resolves #1786799, update to 1.8.17 + +* Tue Dec 10 2019 Than Ngo - 1:1.8.16-3 +- fixed covscan issues + +* Mon Sep 16 2019 Than Ngo - 1:1.8.16-2 +- backpored upstream patch to fix #7248 + +* Wed Sep 11 2019 Than Ngo - 1:1.8.16-1 +- resolves #1742614, update to 1.8.16 + +* Wed Jul 24 2019 Fedora Release Engineering - 1:1.8.15-10 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Tue Mar 19 2019 Christoph Junghans - 1:1.8.15-9 +- Incl. xml fix for c++11 + +* Sat Mar 16 2019 Than Ngo - 1:1.8.15-8 +- added license file + +* Wed Mar 13 2019 Than Ngo - 1:1.8.15-7 +- added Requirement on dot + * Thu Feb 14 2019 Than Ngo - 1:1.8.15-6 - fixed bz#1677000, fixed multilib issue diff --git a/sources b/sources index 0c7f9ec..7883325 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (doxywizard.png) = 42a7e5903bf27463d3b072cf043aef071b519b53054bbe647c522d5e499e02f554867ab5e9971b06493769cc17b9d1588462aeade284de1f9d579cf9f99e8851 -SHA512 (doxygen-1.8.15.src.tar.gz) = a5512e78be66c1591d8ec7e284d5d25c92a97218c79e6fed3c538c723a8dfef4ff7085970bf271a6b639e907157cd4df9fb55d3c975f8d3302fb1012a4d92079 +SHA512 (doxywizard-icons.tar.xz) = 865a86d7535e64ad92e36ba1f901d51cd6b603e762e5c68761a45bc1f965a36e6a6c8d29468ecb2ec799f0add2347537723832aff6660c76af453f80a0a370ad +SHA512 (doxygen-1.15.0.src.tar.gz) = e53cc8da6cf1fe3ca3b3637647ed6afa28365351eac81d010f6691d939df5e449b3d898a6f695dd850d12659dfd7018fc864071b30fbca5dd196dc094ec4371e