diff --git a/.gitignore b/.gitignore
index 3469b7e..a007b45 100644
--- a/.gitignore
+++ b/.gitignore
@@ -46,3 +46,26 @@ doxygen-1.7.1.src.tar.gz
/doxygen-1.8.11.src.tar.gz
/doxygen-1.8.12.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.13-#775493.patch b/doxygen-1.8.13-#775493.patch
deleted file mode 100644
index 0a20583..0000000
--- a/doxygen-1.8.13-#775493.patch
+++ /dev/null
@@ -1,93 +0,0 @@
-diff --git a/src/commentscan.l b/src/commentscan.l
-index fad09d9..f26cabd 100644
---- a/src/commentscan.l
-+++ b/src/commentscan.l
-@@ -125,6 +125,8 @@ static bool handleCopyBrief(const QCString &);
- static bool handleCopyDetails(const QCString &);
- static bool handleParBlock(const QCString &);
- static bool handleEndParBlock(const QCString &);
-+static bool handleParam(const QCString &);
-+static bool handleRetval(const QCString &);
-
- typedef bool (*DocCmdFunc)(const QCString &name);
-
-@@ -247,7 +249,7 @@ static DocCmdMap docCmdMap[] =
- { "line", 0, TRUE },
- { "note", 0, TRUE },
- { "par", 0, TRUE },
-- { "param", 0, TRUE },
-+ { "param", &handleParam, TRUE },
- { "tparam", 0, TRUE },
- { "post", 0, TRUE },
- { "pre", 0, TRUE },
-@@ -257,7 +259,7 @@ static DocCmdMap docCmdMap[] =
- { "return", 0, TRUE },
- { "returns", 0, TRUE },
- { "exception", 0, TRUE },
-- { "retval", 0, TRUE },
-+ { "retval", &handleRetval, TRUE },
- { "sa", 0, TRUE },
- { "see", 0, TRUE },
- { "since", 0, TRUE },
-@@ -971,6 +973,7 @@ RCSTAG "$"{ID}":"[^\n$]+"$"
- %x XRefItemParam2
- %x XRefItemParam3
- %x FileDocArg1
-+%x ParamArg1
- %x EnumDocArg1
- %x NameSpaceDocArg1
- %x PackageDocArg1
-@@ -1564,6 +1567,30 @@ RCSTAG "$"{ID}":"[^\n$]+"$"
- BEGIN( Comment );
- }
-
-+ /* --------- handle arguments of the param command ------------ */
-+{ID}/{B}*"," {
-+ if (yytext[0]=='_' && Config_getBool(MARKDOWN_SUPPORT))
-+ {
-+ addOutput('\\');
-+ }
-+ addOutput(yytext);
-+ }
-+"," {
-+ addOutput(" , ");
-+ }
-+{ID} {
-+ if (yytext[0]=='_' && Config_getBool(MARKDOWN_SUPPORT))
-+ {
-+ addOutput('\\');
-+ }
-+ addOutput(yytext);
-+ BEGIN( Comment );
-+ }
-+. {
-+ unput(yytext[0]);
-+ BEGIN( Comment );
-+ }
-+
- /* --------- handle arguments of the file/dir/example command ------------ */
-
- {DOCNL} { // no file name specfied
-@@ -2400,6 +2427,22 @@ static bool handleFile(const QCString &)
- return stop;
- }
-
-+static bool handleParam(const QCString &)
-+{
-+ // we need process param and retval arguments to escape leading underscores in case of
-+ // markdown processing, see bug775493
-+ addOutput("@param ");
-+ BEGIN( ParamArg1 );
-+ return FALSE;
-+}
-+
-+static bool handleRetval(const QCString &)
-+{
-+ addOutput("@retval ");
-+ BEGIN( ParamArg1 );
-+ return FALSE;
-+}
-+
- static bool handleDir(const QCString &)
- {
- bool stop=makeStructuralIndicator(Entry::DIRDOC_SEC);
diff --git a/doxygen-1.8.13-#776988.patch b/doxygen-1.8.13-#776988.patch
deleted file mode 100644
index f02cc8f..0000000
--- a/doxygen-1.8.13-#776988.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-diff --git a/src/doctokenizer.l b/src/doctokenizer.l
-index a89570e..7545cba 100644
---- a/src/doctokenizer.l
-+++ b/src/doctokenizer.l
-@@ -395,10 +395,14 @@ HTMLTAG "<"(("/")?){ID}({WS}+{ATTRIB})*{WS}*(("/")?)">"
- HTMLKEYL "strong"|"center"|"table"|"caption"|"small"|"code"|"dfn"|"var"|"img"|"pre"|"sub"|"sup"|"tr"|"td"|"th"|"ol"|"ul"|"li"|"tt"|"kbd"|"em"|"hr"|"dl"|"dt"|"dd"|"br"|"i"|"a"|"b"|"p"
- HTMLKEYU "STRONG"|"CENTER"|"TABLE"|"CAPTION"|"SMALL"|"CODE"|"DFN"|"VAR"|"IMG"|"PRE"|"SUB"|"SUP"|"TR"|"TD"|"TH"|"OL"|"UL"|"LI"|"TT"|"KBD"|"EM"|"HR"|"DL"|"DT"|"DD"|"BR"|"I"|"A"|"B"|"P"
- HTMLKEYW {HTMLKEYL}|{HTMLKEYU}
--REFWORD2 ("#"|"::")?((({ID}{TEMPLPART}?)|{ANONNS})("."|"#"|"::"|"-"|"/"))*({ID}{TEMPLPART}?(":")?){FUNCARG2}?
--REFWORD3 ({ID}":")*{ID}":"?
--REFWORD4 (({SCOPEPRE}*"operator"{OPMASKOP2})|(("::"|"#"){SCOPEPRE}*"operator"{OPMASKOP2})){CVSPEC}?
--REFWORD {LABELID}|{REFWORD2}|{REFWORD3}|{REFWORD4}
-+REFWORD2_PRE ("#"|"::")?((({ID}{TEMPLPART}?)|{ANONNS})("."|"#"|"::"|"-"|"/"))*({ID}{TEMPLPART}?(":")?)
-+REFWORD2 {REFWORD2_PRE}{FUNCARG2}?
-+REFWORD2_NOCV {REFWORD2_PRE}("("{FUNCPART}")")?
-+REFWORD3 ({ID}":")*{ID}":"?
-+REFWORD4_NOCV (({SCOPEPRE}*"operator"{OPMASKOP2})|(("::"|"#"){SCOPEPRE}*"operator"{OPMASKOP2}))
-+REFWORD4 {REFWORD4_NOCV}{CVSPEC}?
-+REFWORD {LABELID}|{REFWORD2}|{REFWORD3}|{REFWORD4}
-+REFWORD_NOCV {LABELID}|{REFWORD2_NOCV}|{REFWORD3}|{REFWORD4_NOCV}
-
- %option noyywrap
- %option yylineno
-@@ -1011,6 +1015,14 @@ REFWORD {LABELID}|{REFWORD2}|{REFWORD3}|{REFWORD4}
- unput(*yytext);
- return 0;
- }
-+{REFWORD_NOCV}/{BLANK}("const")[a-z_A-Z0-9] { // see bug776988
-+ g_token->name=yytext;
-+ return TK_WORD;
-+ }
-+{REFWORD_NOCV}/{BLANK}("volatile")[a-z_A-Z0-9] { // see bug776988
-+ g_token->name=yytext;
-+ return TK_WORD;
-+ }
- {REFWORD} { // label to refer to
- g_token->name=yytext;
- return TK_WORD;
diff --git a/doxygen-1.8.13-C#-property-initializer-parsing.patch b/doxygen-1.8.13-C#-property-initializer-parsing.patch
deleted file mode 100644
index ea7e736..0000000
--- a/doxygen-1.8.13-C#-property-initializer-parsing.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-commit 14a0bcc74a121525917aefc8c9034e283e94884b
-Author: Piotr Szydełko
-Date: Sat May 20 08:14:27 2017 +0200
-
- Fix C# property initializer parsing
-
- int Property {get; set;} = 23;
- The parser was ending the property at the closing bracket,
- which resulted in the initializer being assigned to the following property.
-
-diff --git a/src/scanner.l b/src/scanner.l
-index 9ff082d4..632c8a51 100644
---- a/src/scanner.l
-+++ b/src/scanner.l
-@@ -6198,6 +6198,14 @@ OPERATOR "operator"{B}*({ARITHOP}|{ASSIGNOP}|{LOGICOP}|{BITOP})
- }
- }
- "{" { curlyCount++; }
-+"}"{B}*"=" {
-+ // fall back to next rule if it's not the right bracket
-+ if (curlyCount != 0) REJECT;
-+ current->initializer = "=";
-+ current->endBodyLine=yyLineNr;
-+ lastInitializerContext = FindMembers;
-+ BEGIN(ReadInitializer);
-+ }
- "}" {
- if (curlyCount)
- {
-@@ -6207,6 +6215,8 @@ OPERATOR "operator"{B}*({ARITHOP}|{ASSIGNOP}|{LOGICOP}|{BITOP})
- {
- mtype = Method;
- virt = Normal;
-+ // not really important, but while we are at it
-+ current->endBodyLine=yyLineNr;
- unput(';');
- BEGIN(FindMembers);
- }
diff --git a/doxygen-1.8.13-non-reachable-links.patch b/doxygen-1.8.13-non-reachable-links.patch
deleted file mode 100644
index ba34252..0000000
--- a/doxygen-1.8.13-non-reachable-links.patch
+++ /dev/null
@@ -1,568 +0,0 @@
-commit 31cf78d223e52fe078ad9b0651672aeb73926065
-Author: albert-github
-Date: Sun Jun 4 12:52:50 2017 +0200
-
- Correction of non reachable links and redirected links in documentation.
-
- The W3C link checker reported a number of problems regarding non reachable links and permanent redirects.
- Most of these problems have been fixed with this patch
-
-diff --git a/doc/commands.doc b/doc/commands.doc
-index 70b89c60..4357fba1 100644
---- a/doc/commands.doc
-+++ b/doc/commands.doc
-@@ -433,7 +433,7 @@ Structural indicators
- \par Example:
- \include enum.h
- \htmlonly
-- Click here
-+ Click here
- for the corresponding HTML documentation that is generated by doxygen.
- \endhtmlonly
- \latexonly
-@@ -565,7 +565,7 @@ Structural indicators
- \par Example:
- \include func.h
- \htmlonly
-- Click here
-+ Click here
- for the corresponding HTML documentation that is generated by doxygen.
- \endhtmlonly
- \latexonly
-@@ -823,7 +823,7 @@ Structural indicators
- \par Example:
- \include overload.cpp
- \htmlonly
-- Click here
-+ Click here
- for the corresponding HTML documentation that is generated by doxygen.
- \endhtmlonly
- \latexonly
-@@ -1121,7 +1121,7 @@ Structural indicators
-
-
- \section cmdweakgroup \\weakgroup [(title)]
-- \addindex \\addtogroup
-+ \addindex \\weakgroup
- Can be used exactly like \ref cmdaddtogroup "\\addtogroup", but has
- a lower priority when it comes to resolving conflicting grouping
- definitions.
-@@ -1513,7 +1513,7 @@ ALIASES = "english=\if english" \
- \par Example:
- \include par.cpp
- \htmlonly
-- Click here
-+ Click here
- for the corresponding HTML documentation that is generated by doxygen.
- \endhtmlonly
- \latexonly
-@@ -2704,7 +2704,7 @@ class Receiver
-
- \addindex \\startuml
- Starts a text fragment which should contain a valid description of a
-- PlantUML diagram. See http://plantuml.sourceforge.net/ for examples.
-+ PlantUML diagram. See http://plantuml.com/ for examples.
- The text fragment ends with \ref cmdenduml "\\enduml".
- \note You need to install Java and the PlantUML's jar file,
- if you want to use this command. The location of the jar file should be specified
-diff --git a/doc/customize.doc b/doc/customize.doc
-index f98ce0b4..9ef38919 100644
---- a/doc/customize.doc
-+++ b/doc/customize.doc
-@@ -90,7 +90,7 @@ that are disabled by default:
-
- To tweak things like fonts or colors, margins, or other look \& feel
- aspects of the HTML output in detail, you can create a different
--cascading style sheet.
-+cascading style sheet.
- You can also let doxygen use a custom header and footer for each HTML
- page it generates, for instance to make the output conform to the style
- used on the rest of your web site.
-@@ -390,7 +390,7 @@ files as one big DOM tree would not fit into memory.
-
- See the Breathe project for
- an example that uses doxygen XML output from Python to bridge it with the
--Sphinx document generator.
-+Sphinx document generator.
-
-
- \htmlonly
-diff --git a/doc/docblocks.doc b/doc/docblocks.doc
-index f0499c6f..81cfdd08 100644
---- a/doc/docblocks.doc
-+++ b/doc/docblocks.doc
-@@ -260,7 +260,7 @@ Here is an example of the use of these comment blocks:
- \include afterdoc.h
- \htmlonly
-
-- Click here
-+ Click here
- for the corresponding HTML documentation that is generated by doxygen.
- \endhtmlonly
- \latexonly
-@@ -281,7 +281,7 @@ Here is an example of a documented piece of C++ code using the Qt style:
- \include qtstyle.cpp
- \htmlonly
-
-- Click here
-+ Click here
- for the corresponding HTML documentation that is generated by doxygen.
- \endhtmlonly
- \latexonly
-@@ -316,7 +316,7 @@ JavaDoc style and \ref cfg_javadoc_autobrief "JAVADOC_AUTOBRIEF" set to YES:
- \include jdstyle.cpp
- \htmlonly
-
-- Click here
-+ Click here
- for the corresponding HTML documentation that is generated by doxygen.
- \endhtmlonly
- \latexonly
-@@ -634,7 +634,7 @@ need for some more structure, like a block of verbatim text, a list, or a
- simple table. For this doxygen supports the
- Markdown
- syntax, including parts of the
--Markdown Extra
-+Markdown Extra
- extension.
-
- Markdown is designed to be very easy to read and write.
-@@ -646,13 +646,13 @@ directly. For more details see chapter \ref markdown.
- For programming language specific formatting doxygen has two
- forms of additional markup on top of Markdown formatting.
-
--1. Javadoc like markup.
-+1. Javadoc like markup.
- See \ref commands for a complete overview of all commands supported by doxygen.
--2. XML markup
-+2. XML markup
- as specified in the C# standard. See \ref xmlcmds for the XML commands supported by doxygen.
-
- If this is still not enough doxygen also supports a \ref htmlcmds "subset" of
--the HTML markup language.
-+the HTML markup language.
-
- \htmlonly
- Go to the next section or return to the
-diff --git a/doc/extsearch.doc b/doc/extsearch.doc
-index cead851c..99a72195 100644
---- a/doc/extsearch.doc
-+++ b/doc/extsearch.doc
-@@ -52,7 +52,7 @@ The data flow is shown in the following diagram:
-
- The first step is to make the search engine available via a web server.
- If you use `doxysearch.cgi` this means making the
--CGI binary
-+CGI binary
- available from the web server (i.e. be able to run it from a
- browser via an URL starting with http:)
-
-@@ -187,7 +187,7 @@ The next subsections describe these interfaces in more detail.
- \subsection extsearch_api_index Indexer input format
-
- The search data produced by doxygen follows the
--Solr XML index message
-+Solr XML index message
- format.
-
- The input for the indexer is an XML file, which consists of one `` tag containing
-@@ -224,12 +224,12 @@ Each field has a name. The following field names are supported:
- - *text*: the documentation associated with the item. Note that only words are present, no markup.
-
- @note Due to the potentially large size of the XML file, it is recommended to use a
--SAX based parser to process it.
-+SAX based parser to process it.
-
- \subsection extsearch_api_search_in Search URL format
-
- When the search engine is invoked from a doxygen generated HTML page, a number of parameters are
--passed to via the query string.
-+passed to via the query string.
-
- The following fields are passed:
- - *q*: the query text as entered by the user
-@@ -247,14 +247,14 @@ It represents a query for the word 'list' (`q=list`) requesting 20 search result
- starting with the result number 20 (`p=1`) and using callback 'dummy' (`cb=dummy`):
-
-
--@note The values are URL encoded so they
-+@note The values are URL encoded so they
- have to be decoded before they can be used.
-
- \subsection extsearch_api_search_out Search results format
-
- When invoking the search engine as shown in the previous subsection, it should reply with
- the results. The format of the reply is
--JSON with padding, which is basically
-+JSON with padding, which is basically
- a javascript struct wrapped in a function call. The name of function should be the name of
- the callback (as passed with the *cb* field in the query).
-
-diff --git a/doc/faq.doc b/doc/faq.doc
-index 5af3db83..bbad8c0f 100644
---- a/doc/faq.doc
-+++ b/doc/faq.doc
-@@ -285,7 +285,7 @@ At the time I was looking into \c lex and \c yacc, where a lot of things start w
- \section faq_why What was the reason to develop doxygen?
-
- I once wrote a GUI widget based on the Qt library (it is still available at
--http://sourceforge.net/projects/qdbttabular/ but hasn't been updated since 2002).
-+https://sourceforge.net/projects/qdbttabular/ but hasn't been updated since 2002).
- Qt had nicely generated documentation (using an internal tool which
- they didn't want to release)
- and I wrote similar docs by hand.
-diff --git a/doc/formulas.doc b/doc/formulas.doc
-index 650751e8..1649c197 100644
---- a/doc/formulas.doc
-+++ b/doc/formulas.doc
-@@ -30,7 +30,7 @@ have the following tools installed
- to bitmaps. I have used Aladdin GhostScript 8.0 for testing.
-
- For the HTML output there is also an alternative solution using
--MathJax which does not
-+MathJax which does not
- require the above tools. If you enable \ref cfg_use_mathjax "USE_MATHJAX" in
- the config then the latex formulas will be copied to the HTML "as is" and a
- client side javascript will parse them and turn them into (interactive) images.
-diff --git a/doc/grouping.doc b/doc/grouping.doc
-index bbb577cf..2c4ebe19 100644
---- a/doc/grouping.doc
-+++ b/doc/grouping.doc
-@@ -197,7 +197,7 @@ documentation of the class.
-
- \htmlonly
-
--Click here
-+Click here
- for the corresponding HTML documentation that is generated by doxygen.
- \endhtmlonly
- \latexonly
-diff --git a/doc/index.doc b/doc/index.doc
-index c8950c4c..14f03961 100644
---- a/doc/index.doc
-+++ b/doc/index.doc
-@@ -180,7 +180,7 @@ Thanks go to:
- Talin for adding support for C# style comments with XML markup.
- Petr Prikryl for coordinating the internationalization support.
- All language maintainers for providing translations into many languages.
--The band Porcupine Tree for
-+The band Porcupine Tree for
- providing hours of great music to listen to while coding.
- many, many others for suggestions, patches and bug reports.
-
-diff --git a/doc/install.doc b/doc/install.doc
-index fd4f28d1..22d6e7cc 100644
---- a/doc/install.doc
-+++ b/doc/install.doc
-@@ -37,7 +37,7 @@ following to build the executable:
- \addindex strip
- \addindex python
- In order to generate a \c Makefile for your platform, you need
-- cmake version 2.8.12 or later.
-+ cmake version 2.8.12 or later.
- \addindex cmake
-
-
-@@ -63,7 +63,7 @@ tools should be installed.
- For formulas in the HTML output (when MathJax is not used)
- or in case you do not wish to use `pdflatex,
- the ghostscript interpreter is needed. You can find it at
-- www.ghostscript.com.
-+ www.ghostscript.com.
-
-
- Compilation is now done by performing the following steps:
-@@ -150,20 +150,20 @@ standard installation procedure that is required for these packages.
- \section install_src_windows Compiling from source on Windows
-
- From version 1.8.10 onwards, build files need to be generated by cmake.
--cmake can be downloaded from http://www.cmake.org/download/
-+cmake can be downloaded from https://cmake.org/download/
-
- At the moment only the express version of Visual Studio 2013 is tested,
- but other version might also work.
-
- Alternatively, you can compile doxygen
- \ref install_src_unix "the UNIX way" using
--Cygwin
-+Cygwin
- or MinGW.
-
- The next step is to install modern versions of \c bison and \c flex
--(see http://sourceforge.net/projects/winflexbison. After installation and adding them to
-+(see https://sourceforge.net/projects/winflexbison/. After installation and adding them to
- your `path` rename `win_flex.exe` to `flex.exe` and `win_bison.exe` to `bison.exe`)
--Furthermore you have to install \c python (version 2.6 or higher, see http://www.python.org).
-+Furthermore you have to install \c python (version 2.6 or higher, see https://www.python.org).
- These packages are needed during the compilation process.
-
- Download doxygen's source tarball and put it somewhere (e.g. use c:\\tools)
-@@ -214,19 +214,19 @@ you need qhelpgenerator which is part of Qt.
- You can download Qt from Qt Software Downloads.
-
- In order to generate PDF output or use scientific formulas you will also need to
--install LaTeX and
--Ghostscript.
-+install LaTeX and
-+Ghostscript.
-
- For \LaTeX a number of distributions exists. Popular ones that should work with
--doxygen are MikTex
-+doxygen are MikTex
- and proTeXt.
-
--Ghostscript can be downloaded
-+Ghostscript can be downloaded
- from Sourceforge.
-
- After installing \LaTeX and Ghostscript you'll need to make sure the tools
- latex.exe, pdflatex.exe, and gswin32c.exe are present in the search path of a
--command box. Follow these
-+command box. Follow these
- instructions if you are unsure and run the commands from a command box to verify it works.
-
- \htmlonly
-diff --git a/doc/markdown.doc b/doc/markdown.doc
-index 300d7fc7..737df71a 100644
---- a/doc/markdown.doc
-+++ b/doc/markdown.doc
-@@ -41,9 +41,9 @@ the extensions that doxygen supports.
- Finally section \ref markdown_dox discusses some specifics for doxygen's
- implementation of the Markdown standard.
-
--[markdown]: http://daringfireball.net/projects/markdown
--[mdextra]: http://michelf.com/projects/php-markdown/extra/
--[github]: http://github.github.com/github-flavored-markdown/
-+[markdown]: http://daringfireball.net/projects/markdown/
-+[mdextra]: https://michelf.ca/projects/php-markdown/extra/
-+[github]: https://github.github.com/github-flavored-markdown/
-
- \section markdown_std Standard Markdown
-
-@@ -303,7 +303,7 @@ Note that using `[TOC]` is the same as using a
- \subsection md_tables Tables
-
- Of the features defined by "Markdown Extra" is support for
--simple tables:
-+simple tables:
-
- A table consists of a header line, a separator line, and at least one
- row line. Table columns are separated by the pipe (|) character.
-@@ -376,7 +376,7 @@ For more complex tables in doxygen please have a look at: \ref tables
- \subsection md_fenced Fenced Code Blocks
-
- Another feature defined by "Markdown Extra" is support for
--
-+
- fenced code blocks:
-
- A fenced code block does not require indentation, and is
-diff --git a/doc/searching.doc b/doc/searching.doc
-index dcf858fa..00c61414 100644
---- a/doc/searching.doc
-+++ b/doc/searching.doc
-@@ -72,7 +72,7 @@ has its own advantages and disadvantages:
- searching, meaning that you could use your own indexer and search engine
- of choice. To make life easier doxygen ships with an example indexer
- (doxyindexer) and search engine (doxysearch.cgi) based on
-- the Xapian open source search engine
-+ the Xapian open source search engine
- library.
-
- To enable this search method set
-@@ -147,7 +147,7 @@ has its own advantages and disadvantages:
- \ref cfg_qhp_namespace "QHP_NAMESPACE",
- \ref cfg_qhg_location "QHG_LOCATION",
- \ref cfg_qhp_virtual_folder "QHP_VIRTUAL_FOLDER".
-- See this article
-+ See this article
- for more info.
-
- Feature wise the Qt compressed help feature is comparable with the CHM
-diff --git a/doc/starting.doc b/doc/starting.doc
-index bfb8e8f7..c869867b 100644
---- a/doc/starting.doc
-+++ b/doc/starting.doc
-@@ -263,7 +263,7 @@ capabilities of the man page format, so some information
- \subsection docbook_out DocBook output
- \addindex docbook
- Doxygen can also generate output in the
--DocBook format. How to process the
-+DocBook format. How to process the
- DocBook output is beyond the scope of this manual.
-
- \section step3 Step 3: Documenting the sources
-diff --git a/src/config.xml b/src/config.xml
-index 0fdf3efc..8bb6addb 100644
---- a/src/config.xml
-+++ b/src/config.xml
-@@ -215,7 +215,7 @@ Go to the next section or return to the
- This tag specifies the encoding used for all characters in the config file that
- follow. The default is UTF-8 which is also the encoding used for all text before
- the first occurrence of this tag. Doxygen uses \c libiconv (or the iconv built into
-- \c libc) for the transcoding. See http://www.gnu.org/software/libiconv for the list of
-+ \c libc) for the transcoding. See https://www.gnu.org/software/libiconv/ for the list of
- possible encodings.
- ]]>
-
-@@ -661,7 +661,7 @@ Go to the next section or return to the
-
- sip sources only.
-+ of sip sources only.
- Doxygen will parse them like normal C++ but will assume all classes use public
- instead of private inheritance when no explicit protection keyword is present.
- ]]>
-@@ -1172,7 +1172,7 @@ FILE_VERSION_INFO = "cleartool desc -fmt \%Vn"
- The \c CITE_BIB_FILES tag can be used to specify one or more \c bib files
- containing the reference definitions. This must be a list of .bib files. The
- .bib extension is automatically appended if omitted. This requires the
-- \c bibtex tool to be installed. See also http://en.wikipedia.org/wiki/BibTeX for
-+ \c bibtex tool to be installed. See also https://en.wikipedia.org/wiki/BibTeX for
- more info. For \f$\mbox{\LaTeX}\f$ the style of the bibliography can be controlled
- using \ref cfg_latex_bib_style "LATEX_BIB_STYLE".
- To use this feature you need \c bibtex and \c perl available in the search path.
-@@ -1285,7 +1285,7 @@ FILE_VERSION_INFO = "cleartool desc -fmt \%Vn"
- This tag can be used to specify the character encoding of the source files that
- doxygen parses. Internally doxygen uses the UTF-8 encoding.
- Doxygen uses `libiconv` (or the `iconv` built into `libc`) for the transcoding.
-- See the libiconv documentation for
-+ See the libiconv documentation for
- the list of possible encodings.
- ]]>
-
-@@ -1585,7 +1585,7 @@ to disable this feature.
- If the \c USE_HTAGS tag is set to \c YES then the references to source code
- will point to the HTML generated by the \c htags(1) tool instead of doxygen
- built-in source browser. The \c htags tool is part of GNU's global source
-- tagging system (see http://www.gnu.org/software/global/global.html). You
-+ tagging system (see https://www.gnu.org/software/global/global.html). You
- will need version 4.8.6 or higher.
-
- To use it do the following:
-@@ -1904,7 +1904,7 @@ hr.footer {
- The \c HTML_COLORSTYLE_HUE tag controls the color of the HTML output.
- Doxygen will adjust the colors in the style sheet and background images
- according to this color. Hue is specified as an angle on a colorwheel,
-- see http://en.wikipedia.org/wiki/Hue for more information.
-+ see https://en.wikipedia.org/wiki/Hue for more information.
- For instance the value 0 represents red, 60 is yellow, 120 is green,
- 180 is cyan, 240 is blue, 300 purple, and 360 is red again.
- ]]>
-@@ -1981,14 +1981,14 @@ hr.footer {
- Apple's Xcode 3
-+ Apple's Xcode 3
- integrated development environment, introduced with OSX 10.5 (Leopard).
- To create a documentation set, doxygen will generate a Makefile in the
- HTML output directory. Running \c make will produce the docset in that
- directory and running make install will install the docset in
- ~/Library/Developer/Shared/Documentation/DocSets
- so that Xcode will find it at startup. See
-- http://developer.apple.com/tools/creatingdocsetswithdoxygen.html for
-+ https://developer.apple.com/tools/creatingdocsetswithdoxygen.html for
- more information.
- ]]>
-
-@@ -2133,7 +2133,7 @@ The \c DOCSET_PUBLISHER_NAME tag identifies the documentation publisher.
- Qt Help Project / Namespace.
-+ Qt Help Project / Namespace.
- ]]>
-
-
-@@ -2142,7 +2142,7 @@ The \c DOCSET_PUBLISHER_NAME tag identifies the documentation publisher.
- Qt Help Project / Virtual Folders.
-+ Qt Help Project / Virtual Folders.
- ]]>
-
-
-@@ -2150,7 +2150,7 @@ The \c DOCSET_PUBLISHER_NAME tag identifies the documentation publisher.
-
- Qt Help Project / Custom Filters.
-+ Qt Help Project / Custom Filters.
- ]]>
-
-
-@@ -2159,7 +2159,7 @@ The \c DOCSET_PUBLISHER_NAME tag identifies the documentation publisher.
- Qt Help Project / Custom Filters.
-+ Qt Help Project / Custom Filters.
- ]]>
-
-
-@@ -2167,7 +2167,7 @@ The \c DOCSET_PUBLISHER_NAME tag identifies the documentation publisher.
-
- Qt Help Project / Filter Attributes.
-+ Qt Help Project / Filter Attributes.
- ]]>
-
-
-@@ -2295,7 +2295,7 @@ The \c DOCSET_PUBLISHER_NAME tag identifies the documentation publisher.
-
- ../mathjax. The default value points to
- the MathJax Content Delivery Network so you can quickly see the result without
- installing MathJax. However, it is strongly recommended to install a local
-- copy of MathJax from http://www.mathjax.org before deployment.
-+ copy of MathJax from https://www.mathjax.org before deployment.
- ]]>
-
-
-@@ -2427,7 +2427,7 @@ See the section \ref extsearch for details.
- the search results.
-
Doxygen ships with an example indexer (\c doxyindexer) and
- search engine (doxysearch.cgi) which are based on the open source search
-- engine library Xapian.
-+ engine library Xapian.
-
See the section \ref extsearch for details.
- ]]>
-
-@@ -2440,7 +2440,7 @@ See the section \ref extsearch for details.
- is enabled.
-
Doxygen ships with an example indexer (\c doxyindexer) and
- search engine (doxysearch.cgi) which are based on the open source search
-- engine library Xapian.
-+ engine library Xapian.
- See the section \ref extsearch for details.
- ]]>
-
-@@ -2681,7 +2681,7 @@ or
-
-
-@@ -2886,7 +2886,7 @@ front of it.
-
- &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-xmlgen-regression.patch b/doxygen-xmlgen-regression.patch
deleted file mode 100644
index 8d72e8f..0000000
--- a/doxygen-xmlgen-regression.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From 0f02761a158a5e9ddbd5801682482af8986dbc35 Mon Sep 17 00:00:00 2001
-From: albert-github
-Date: Wed, 4 Jan 2017 12:24:55 +0100
-Subject: [PATCH] Bug 776791 - [1.8.13 Regression] Segfault building the
- breathe docs
-
-Protected against NULL pointer of variable al
----
- src/xmlgen.cpp | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/xmlgen.cpp b/src/xmlgen.cpp
-index fe95c7a..70e198a 100644
---- a/src/xmlgen.cpp
-+++ b/src/xmlgen.cpp
-@@ -620,7 +620,7 @@ static void generateXMLForMember(MemberDef *md,FTextStream &ti,FTextStream &t,De
- if (md->isInline()) t << "yes"; else t << "no";
- t << "\"";
-
-- if (al->refQualifier!=RefQualifierNone)
-+ if (al!=0 && al->refQualifier!=RefQualifierNone)
- {
- t << " refqual=\"";
- if (al->refQualifier==RefQualifierLValue) t << "lvalue"; else t << "rvalue";
diff --git a/doxygen.spec b/doxygen.spec
index 6987a1d..7818615 100644
--- a/doxygen.spec
+++ b/doxygen.spec
@@ -1,51 +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.13
-Release: 9%{?dist}
-
+Epoch: 2
+Version: 1.15.0
+Release: 1%{?dist}
# No version is specified.
-License: GPL+
-Url: http://www.stack.nl/~dimitri/doxygen/index.html
-Source0: ftp://ftp.stack.nl/pub/users/dimitri/%{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
-Patch100: https://github.com/doxygen/doxygen/pull/555.patch#/doxygen-xmlgen-regression.patch
-Patch101: doxygen-1.8.13-#775493.patch
-Patch102: doxygen-1.8.13-#776988.patch
-Patch103: doxygen-1.8.13-verticl_bar_latex.patch
-Patch104: doxygen-1.8.13-C#-property-initializer-parsing.patch
-Patch105: doxygen-1.8.13-non-reachable-links.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: perl
%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(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(tabu.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
+BuildRequires: git
+%if "x%{?xapian_core_support}" == "xON"
BuildRequires: xapian-core-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
+Requires: perl-interpreter
+Requires: graphviz
%description
Doxygen can generate an online class browser (in HTML) and/or a
@@ -54,117 +145,194 @@ 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: qt4-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: texlive-epstopdf-bin
+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)
+# 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
%{summary}.
%endif
%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 \
- -Dbuild_doc=ON \
- -Dbuild_wizard=ON \
- -Dbuild_xmlparser=ON \
- -Dbuild_search=ON \
- -DMAN_INSTALL_DIR=%{_mandir}/man1 \
- -DCMAKE_INSTALL_PREFIX:PATH=%{_prefix} \
- -DBUILD_SHARED_LIBS=OFF \
- ..
-%else
-%cmake \
- -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}
-%if ! 0%{?_module_build}
-make docs %{?_smp_mflags} -C %{_target_platform}
-%else
-mkdir -p *-redhat-linux-gnu/latex
-touch *-redhat-linux-gnu/latex/doxygen_manual.pdf
-%endif
-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 "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
+%ctest
%files
-%doc LANGUAGE.HOWTO README.md
+%doc LANGUAGE.HOWTO README.md README.rpm-packaging
+%license LICENSE
%if ! 0%{?_module_build}
-%doc %{_target_platform}/latex/doxygen_manual.pdf
-%doc %{_target_platform}/html
+%if "x%{?xapian_core_support}" == "xON"
%{_bindir}/doxyindexer
%{_bindir}/doxysearch*
%endif
+%endif
%{_bindir}/doxygen
%{_mandir}/man1/doxygen.1*
+%if "x%{?xapian_core_support}" == "xON"
%{_mandir}/man1/doxyindexer.1*
%{_mandir}/man1/doxysearch.1*
-
-%if ! 0%{?_module_build}
+%endif
+%{_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
@@ -172,6 +340,305 @@ desktop-file-install --dir=%{buildroot}%{_datadir}/applications %{SOURCE2}
%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
+
+* Tue Feb 12 2019 Than Ngo - 1:1.8.15-5
+- fixed bz#1675288, doxygen 1.8.15 segfault
+
+* Fri Feb 08 2019 Than Ngo - 1:1.8.15-4
+- fixed bz#673228 - operator whitespace changes cause wxpython FTBFS
+- fixed bz#1673230 - BR on tex(newunicodechar.sty) in doxygen-latex
+
+* Tue Feb 05 2019 Than Ngo - 1:1.8.15-3
+- fixed bz#1671999, backported from upstream
+- added test for XML output with an empty TOC
+
+* Thu Jan 31 2019 Fedora Release Engineering - 1:1.8.15-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
+
+* Mon Jan 28 2019 Than Ngo - 1:1.8.15-1
+- update to 1.8.15
+
+* Thu Dec 06 2018 Than Ngo - 1:1.8.14-8
+- enable testing
+
+* Mon Jul 23 2018 Than Ngo - 1:1.8.14-7
+- add BR: gcc-c++ gcc
+
+* Thu Jul 12 2018 Fedora Release Engineering - 1:1.8.14-6
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
+
+* Wed Jun 27 2018 Than Ngo - 1:1.8.14-5
+- support Qt5
+
+* Wed Jun 20 2018 Than Ngo - 1.8.14-4
+- enble search addon on fedora
+
+* Mon Apr 30 2018 Than Ngo - 1.8.14-3
+- added missing BR on adjustbox.sty for refman
+
+* Wed Feb 07 2018 Fedora Release Engineering - 1:1.8.14-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
+
+* Fri Dec 29 2017 Than Ngo - 1:1.8.14-1
+- update to 1.8.14
+
+* Wed Aug 02 2017 Fedora Release Engineering - 1:1.8.13-12
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
+
+* Wed Jul 26 2017 Fedora Release Engineering - 1:1.8.13-11
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
+
+* Thu Jul 13 2017 Petr Pisar - 1:1.8.13-10
+- perl dependency renamed to perl-interpreter
+
+
* Tue Jul 04 2017 Than Ngo - 1:1.8.13-9
- backport to fix C# property initializer parsing
- backport to fix non reachable links and redirected links in documentation
diff --git a/sources b/sources
index 68d1ef2..7883325 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
-SHA512 (doxygen-1.8.13.src.tar.gz) = 85da5bd28ad9f33a8e50fa92796817d31e59c024127cb647cb967e4321dd51378feaacdf099d578b7e6020fd646a3c63e99c77420e49e3894fc18ca89ba3e0a2
-SHA512 (doxywizard.png) = 42a7e5903bf27463d3b072cf043aef071b519b53054bbe647c522d5e499e02f554867ab5e9971b06493769cc17b9d1588462aeade284de1f9d579cf9f99e8851
+SHA512 (doxywizard-icons.tar.xz) = 865a86d7535e64ad92e36ba1f901d51cd6b603e762e5c68761a45bc1f965a36e6a6c8d29468ecb2ec799f0add2347537723832aff6660c76af453f80a0a370ad
+SHA512 (doxygen-1.15.0.src.tar.gz) = e53cc8da6cf1fe3ca3b3637647ed6afa28365351eac81d010f6691d939df5e449b3d898a6f695dd850d12659dfd7018fc864071b30fbca5dd196dc094ec4371e