From 44c8077568ff507ad48212f09e39c1fd7249ccc1 Mon Sep 17 00:00:00 2001 From: Yaakov Selkowitz Date: Tue, 11 Feb 2025 12:06:48 -0500 Subject: [PATCH 1/7] Use bundled spdlog on RHEL A standalone spdlog is not included in RHEL. --- doxygen.spec | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/doxygen.spec b/doxygen.spec index 0aee136..240e21f 100644 --- a/doxygen.spec +++ b/doxygen.spec @@ -2,20 +2,21 @@ %global xapian_core_support ON %global clang_support OFF %global build_wizard ON +%global system_spdlog ON %else %global xapian_core_support OFF %global clang_support OFF %global build_wizard OFF +%global system_spdlog OFF %endif %global build_search %{xapian_core_support} -%global system_spdlog ON %global system_sqlite3 ON Summary: A documentation system for C/C++ Name: doxygen Epoch: 2 Version: 1.13.2 -Release: 4%{?dist} +Release: 5%{?dist} # No version is specified. License: GPL-2.0-or-later Url: https://github.com/doxygen @@ -116,9 +117,15 @@ 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 Requires: perl-interpreter Requires: graphviz @@ -327,6 +334,9 @@ install -m755 -D --target-directory=%{buildroot}%{_rpmconfigdir}/redhat %{SOURCE %endif %changelog +* 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 From 0663928765804719b718e667c41e7cecd6eef75c Mon Sep 17 00:00:00 2001 From: Than Ngo Date: Sun, 25 May 2025 13:12:16 +0200 Subject: [PATCH 2/7] - Fix rhbz#2368381, update to 1.14.0 - Enable clang support and system fmt --- .gitignore | 1 + doxygen.spec | 23 +++++++++++++++++------ sources | 2 +- 3 files changed, 19 insertions(+), 7 deletions(-) diff --git a/.gitignore b/.gitignore index e12cfb1..dda132d 100644 --- a/.gitignore +++ b/.gitignore @@ -67,3 +67,4 @@ doxygen-1.7.1.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 diff --git a/doxygen.spec b/doxygen.spec index 240e21f..b7ac5c2 100644 --- a/doxygen.spec +++ b/doxygen.spec @@ -1,22 +1,22 @@ %if 0%{?fedora} %global xapian_core_support ON -%global clang_support OFF +%global clang_support ON %global build_wizard ON -%global system_spdlog ON %else %global xapian_core_support OFF %global clang_support OFF %global build_wizard OFF -%global system_spdlog OFF %endif %global build_search %{xapian_core_support} %global system_sqlite3 ON +%global system_spdlog ON +%global system_fmt ON Summary: A documentation system for C/C++ Name: doxygen Epoch: 2 -Version: 1.13.2 -Release: 5%{?dist} +Version: 1.14.0 +Release: 1%{?dist} # No version is specified. License: GPL-2.0-or-later Url: https://github.com/doxygen @@ -127,6 +127,13 @@ BuildRequires: sqlite-devel # 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 @@ -253,7 +260,8 @@ cp %{SOURCE3} . -DPYTHON_EXECUTABLE=%{_bindir}/python3 \ -Dbuild_xmlparser=ON \ -Duse_sys_sqlite3=%{system_sqlite3} \ - -Duse_sys_spdlog=%{system_spdlog} + -Duse_sys_spdlog=%{system_spdlog} \ + -Duse_sys_fmt=%{system_fmt} %cmake_build %{?_smp_mflags} @@ -334,6 +342,9 @@ install -m755 -D --target-directory=%{buildroot}%{_rpmconfigdir}/redhat %{SOURCE %endif %changelog +* 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 diff --git a/sources b/sources index 495571b..2757144 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ SHA512 (doxywizard-icons.tar.xz) = 865a86d7535e64ad92e36ba1f901d51cd6b603e762e5c68761a45bc1f965a36e6a6c8d29468ecb2ec799f0add2347537723832aff6660c76af453f80a0a370ad -SHA512 (doxygen-1.13.2.src.tar.gz) = 7b6b3285706e10c0b27230503b83cc669aec83ebc3ef9cc1087d5e36118fd726a5368d567dd553ba01acf4d739cdbb41c5e66af4541fc8e51effbbdaa241c812 +SHA512 (doxygen-1.14.0.src.tar.gz) = b042f7f731cd17bea55f7393dd90433f49fa296a61054950c2e1457ff1d57e218706cbc4f5248f42c2242bf1acccd91e88cf545ca394a31a4d2d8b7f5954baa9 From c02d84c3348be641827a9d7b13290df4c1077b8f Mon Sep 17 00:00:00 2001 From: Than Ngo Date: Sun, 25 May 2025 14:06:04 +0200 Subject: [PATCH 3/7] Enable clang support for el --- doxygen.spec | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/doxygen.spec b/doxygen.spec index b7ac5c2..4457c84 100644 --- a/doxygen.spec +++ b/doxygen.spec @@ -1,13 +1,12 @@ %if 0%{?fedora} %global xapian_core_support ON -%global clang_support ON %global build_wizard ON %else %global xapian_core_support OFF -%global clang_support OFF %global build_wizard OFF %endif %global build_search %{xapian_core_support} +%global clang_support ON %global system_sqlite3 ON %global system_spdlog ON %global system_fmt ON From fea4e22773ca09b611afd587ccc678ae6450522d Mon Sep 17 00:00:00 2001 From: Yaakov Selkowitz Date: Wed, 28 May 2025 13:28:39 -0400 Subject: [PATCH 4/7] Use bundled spdlog on RHEL, redux The bundled spdlog is not compatible with the latest system version of fmt, so they need to be either both bundled or both system. --- doxygen.spec | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/doxygen.spec b/doxygen.spec index 4457c84..a59612c 100644 --- a/doxygen.spec +++ b/doxygen.spec @@ -1,21 +1,23 @@ %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 -%global system_spdlog ON -%global system_fmt ON Summary: A documentation system for C/C++ Name: doxygen Epoch: 2 Version: 1.14.0 -Release: 1%{?dist} +Release: 2%{?dist} # No version is specified. License: GPL-2.0-or-later Url: https://github.com/doxygen @@ -341,6 +343,9 @@ install -m755 -D --target-directory=%{buildroot}%{_rpmconfigdir}/redhat %{SOURCE %endif %changelog +* 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 From 9e9db0b11b42be0ba1d90075138751a44ed10b71 Mon Sep 17 00:00:00 2001 From: Than Ngo Date: Wed, 25 Jun 2025 10:14:00 +0200 Subject: [PATCH 5/7] Upstream fix for input buffer overflow --- doxygen-input-buffer-overflow.patch | 88 +++++++++++++++++++++++++++++ doxygen.spec | 7 ++- 2 files changed, 94 insertions(+), 1 deletion(-) create mode 100644 doxygen-input-buffer-overflow.patch diff --git a/doxygen-input-buffer-overflow.patch b/doxygen-input-buffer-overflow.patch new file mode 100644 index 0000000..207f71c --- /dev/null +++ b/doxygen-input-buffer-overflow.patch @@ -0,0 +1,88 @@ +commit f519f8f92d3925f2b58a93e555da3720c09af56c +Author: albert-github +Date: Sun Jun 22 12:35:03 2025 +0200 + + Input buffer overflow + + When having a, very, long string as an argument in e.g. PHP or C++ we get am error like: + ``` + input buffer overflow, can't enlarge buffer because scanner uses REJECT + ``` + which can be overcome by enlarging the lex buffers (CMake option `enlarge_lex_buffers`) but is also possible to limit the search pattern from a `+` pattern to a number of elements `{1,n}` pattern. + + For PHP the string argument should, analogous to C++ not be a copy rule but a skip rule (`scanner.l`) + +diff --git a/src/code.l b/src/code.l +index a2020eb14..4fb0c0fd5 100644 +--- a/src/code.l ++++ b/src/code.l +@@ -1279,10 +1279,10 @@ ENDQopt ("const"|"volatile"|"sealed"|"override")({BN}+("const"|"volatile"|"seale + yyextra->inForEachExpression = FALSE; + BEGIN( SkipStringS ); + } +-[^\"\\\r\n]* { ++[^\"\\\r\n]{1,100} { + yyextra->code->codify(yytext); + } +-[^\'\\\r\n]* { ++[^\'\\\r\n]{1,100} { + yyextra->code->codify(yytext); + } + {CPPC}|{CCS} { +diff --git a/src/pre.l b/src/pre.l +index dc155aa6f..9edf21727 100644 +--- a/src/pre.l ++++ b/src/pre.l +@@ -607,10 +607,10 @@ WSopt [ \t\r]* + outputChar(yyscanner,*yytext); + BEGIN( CopyStringFtn ); + } +-[^\"\\\r\n]+ { ++[^\"\\\r\n]{1,1000} { + outputArray(yyscanner,yytext,yyleng); + } +-[^\"\r\n]+ { ++[^\"\r\n]{1,1000} { + outputArray(yyscanner,yytext,yyleng); + } + \"\" { +@@ -623,7 +623,7 @@ WSopt [ \t\r]* + outputChar(yyscanner,*yytext); + BEGIN( CopyLine ); + } +-[^\"\\\r\n]+ { ++[^\"\\\r\n]{1,1000} { + outputArray(yyscanner,yytext,yyleng); + } + \\. { +@@ -633,7 +633,7 @@ WSopt [ \t\r]* + outputChar(yyscanner,*yytext); + BEGIN( CopyLine ); + } +-[^\'\\\r\n]+ { ++[^\'\\\r\n]{1,1000} { + outputArray(yyscanner,yytext,yyleng); + } + \\. { +@@ -652,7 +652,7 @@ WSopt [ \t\r]* + BEGIN( CopyLine ); + } + } +-[^)]+ { ++[^)]{1,1000} { + outputArray(yyscanner,yytext,yyleng); + } + . { +diff --git a/src/scanner.l b/src/scanner.l +index a6a70d25c..3c8b887d4 100644 +--- a/src/scanner.l ++++ b/src/scanner.l +@@ -5141,7 +5141,7 @@ NONLopt [^\n]* + if (yyextra->insidePHP) + { + yyextra->lastCopyArgStringContext=YY_START; +- BEGIN(CopyArgPHPString); ++ BEGIN(SkipPHPString); + } + } + "<="|">="|"<=>" { diff --git a/doxygen.spec b/doxygen.spec index a59612c..84f9e47 100644 --- a/doxygen.spec +++ b/doxygen.spec @@ -17,7 +17,7 @@ Summary: A documentation system for C/C++ Name: doxygen Epoch: 2 Version: 1.14.0 -Release: 2%{?dist} +Release: 3%{?dist} # No version is specified. License: GPL-2.0-or-later Url: https://github.com/doxygen @@ -30,6 +30,8 @@ Source3: README.rpm-packaging Source4: doxygen-unbundler # upstream fixes +# fix input buffer overflow +Patch1: doxygen-input-buffer-overflow.patch BuildRequires: %{_bindir}/python3 BuildRequires: perl-interpreter, perl-open @@ -343,6 +345,9 @@ install -m755 -D --target-directory=%{buildroot}%{_rpmconfigdir}/redhat %{SOURCE %endif %changelog +* 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 From baabc477de04534240fd50eb20a6261458432d7f Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 23 Jul 2025 19:29:57 +0000 Subject: [PATCH 6/7] Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild --- doxygen.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/doxygen.spec b/doxygen.spec index 84f9e47..dc59bc0 100644 --- a/doxygen.spec +++ b/doxygen.spec @@ -17,7 +17,7 @@ Summary: A documentation system for C/C++ Name: doxygen Epoch: 2 Version: 1.14.0 -Release: 3%{?dist} +Release: 4%{?dist} # No version is specified. License: GPL-2.0-or-later Url: https://github.com/doxygen @@ -345,6 +345,9 @@ install -m755 -D --target-directory=%{buildroot}%{_rpmconfigdir}/redhat %{SOURCE %endif %changelog +* 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 From 3a587564e6443d0825b28124de291e4c196a35ce Mon Sep 17 00:00:00 2001 From: Than Ngo Date: Thu, 13 Nov 2025 17:10:42 +0100 Subject: [PATCH 7/7] Update to 1.15.0 --- .gitignore | 1 + doxygen-input-buffer-overflow.patch | 88 ----------------------------- doxygen.spec | 24 ++++---- sources | 2 +- 4 files changed, 13 insertions(+), 102 deletions(-) delete mode 100644 doxygen-input-buffer-overflow.patch diff --git a/.gitignore b/.gitignore index dda132d..a007b45 100644 --- a/.gitignore +++ b/.gitignore @@ -68,3 +68,4 @@ doxygen-1.7.1.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/doxygen-input-buffer-overflow.patch b/doxygen-input-buffer-overflow.patch deleted file mode 100644 index 207f71c..0000000 --- a/doxygen-input-buffer-overflow.patch +++ /dev/null @@ -1,88 +0,0 @@ -commit f519f8f92d3925f2b58a93e555da3720c09af56c -Author: albert-github -Date: Sun Jun 22 12:35:03 2025 +0200 - - Input buffer overflow - - When having a, very, long string as an argument in e.g. PHP or C++ we get am error like: - ``` - input buffer overflow, can't enlarge buffer because scanner uses REJECT - ``` - which can be overcome by enlarging the lex buffers (CMake option `enlarge_lex_buffers`) but is also possible to limit the search pattern from a `+` pattern to a number of elements `{1,n}` pattern. - - For PHP the string argument should, analogous to C++ not be a copy rule but a skip rule (`scanner.l`) - -diff --git a/src/code.l b/src/code.l -index a2020eb14..4fb0c0fd5 100644 ---- a/src/code.l -+++ b/src/code.l -@@ -1279,10 +1279,10 @@ ENDQopt ("const"|"volatile"|"sealed"|"override")({BN}+("const"|"volatile"|"seale - yyextra->inForEachExpression = FALSE; - BEGIN( SkipStringS ); - } --[^\"\\\r\n]* { -+[^\"\\\r\n]{1,100} { - yyextra->code->codify(yytext); - } --[^\'\\\r\n]* { -+[^\'\\\r\n]{1,100} { - yyextra->code->codify(yytext); - } - {CPPC}|{CCS} { -diff --git a/src/pre.l b/src/pre.l -index dc155aa6f..9edf21727 100644 ---- a/src/pre.l -+++ b/src/pre.l -@@ -607,10 +607,10 @@ WSopt [ \t\r]* - outputChar(yyscanner,*yytext); - BEGIN( CopyStringFtn ); - } --[^\"\\\r\n]+ { -+[^\"\\\r\n]{1,1000} { - outputArray(yyscanner,yytext,yyleng); - } --[^\"\r\n]+ { -+[^\"\r\n]{1,1000} { - outputArray(yyscanner,yytext,yyleng); - } - \"\" { -@@ -623,7 +623,7 @@ WSopt [ \t\r]* - outputChar(yyscanner,*yytext); - BEGIN( CopyLine ); - } --[^\"\\\r\n]+ { -+[^\"\\\r\n]{1,1000} { - outputArray(yyscanner,yytext,yyleng); - } - \\. { -@@ -633,7 +633,7 @@ WSopt [ \t\r]* - outputChar(yyscanner,*yytext); - BEGIN( CopyLine ); - } --[^\'\\\r\n]+ { -+[^\'\\\r\n]{1,1000} { - outputArray(yyscanner,yytext,yyleng); - } - \\. { -@@ -652,7 +652,7 @@ WSopt [ \t\r]* - BEGIN( CopyLine ); - } - } --[^)]+ { -+[^)]{1,1000} { - outputArray(yyscanner,yytext,yyleng); - } - . { -diff --git a/src/scanner.l b/src/scanner.l -index a6a70d25c..3c8b887d4 100644 ---- a/src/scanner.l -+++ b/src/scanner.l -@@ -5141,7 +5141,7 @@ NONLopt [^\n]* - if (yyextra->insidePHP) - { - yyextra->lastCopyArgStringContext=YY_START; -- BEGIN(CopyArgPHPString); -+ BEGIN(SkipPHPString); - } - } - "<="|">="|"<=>" { diff --git a/doxygen.spec b/doxygen.spec index dc59bc0..7818615 100644 --- a/doxygen.spec +++ b/doxygen.spec @@ -16,8 +16,8 @@ Summary: A documentation system for C/C++ Name: doxygen Epoch: 2 -Version: 1.14.0 -Release: 4%{?dist} +Version: 1.15.0 +Release: 1%{?dist} # No version is specified. License: GPL-2.0-or-later Url: https://github.com/doxygen @@ -30,8 +30,6 @@ Source3: README.rpm-packaging Source4: doxygen-unbundler # upstream fixes -# fix input buffer overflow -Patch1: doxygen-input-buffer-overflow.patch BuildRequires: %{_bindir}/python3 BuildRequires: perl-interpreter, perl-open @@ -158,7 +156,8 @@ Javascript files for use by locally installed Doxygen documentation. %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 @@ -244,11 +243,6 @@ Requires: texlive-epstopdf %prep %autosetup -p1 -a2 -# convert into utf-8 -iconv --from=ISO-8859-1 --to=UTF-8 LANGUAGE.HOWTO > LANGUAGE.HOWTO.new -touch -r LANGUAGE.HOWTO LANGUAGE.HOWTO.new -mv LANGUAGE.HOWTO.new LANGUAGE.HOWTO - cp %{SOURCE3} . %build @@ -296,8 +290,8 @@ rm -f %{buildroot}/%{_mandir}/man1/doxyindexer.1* %{buildroot}/%{_mandir}/man1/d rm -rf %{buildroot}/%{_docdir}/packages # Install the asset files. -install -m644 -D --target-directory=%{buildroot}%{_jsdir}/doxygen \ - templates/html/*.js +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' @@ -305,7 +299,8 @@ cat > %{buildroot}%{_rpmconfigdir}/macros.d/macros.doxygen <<'EOF' %%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 the unbundler script. install -m755 -D --target-directory=%{buildroot}%{_rpmconfigdir}/redhat %{SOURCE4} %check @@ -345,6 +340,9 @@ install -m755 -D --target-directory=%{buildroot}%{_rpmconfigdir}/redhat %{SOURCE %endif %changelog +* Thu Nov 13 2025 Than Ngo - 2:1.15.0-1 +- Update to 1.15.0 + * Wed Jul 23 2025 Fedora Release Engineering - 2:1.14.0-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild diff --git a/sources b/sources index 2757144..7883325 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ SHA512 (doxywizard-icons.tar.xz) = 865a86d7535e64ad92e36ba1f901d51cd6b603e762e5c68761a45bc1f965a36e6a6c8d29468ecb2ec799f0add2347537723832aff6660c76af453f80a0a370ad -SHA512 (doxygen-1.14.0.src.tar.gz) = b042f7f731cd17bea55f7393dd90433f49fa296a61054950c2e1457ff1d57e218706cbc4f5248f42c2242bf1acccd91e88cf545ca394a31a4d2d8b7f5954baa9 +SHA512 (doxygen-1.15.0.src.tar.gz) = e53cc8da6cf1fe3ca3b3637647ed6afa28365351eac81d010f6691d939df5e449b3d898a6f695dd850d12659dfd7018fc864071b30fbca5dd196dc094ec4371e