From 30d25ae5f8ae00e545c4680235a718a59b2caf86 Mon Sep 17 00:00:00 2001 From: Alfred Wingate Date: Tue, 20 Aug 2024 07:32:20 +0300 Subject: app-text/doxygen: add 1.12.0 * It doesn't appear that doxygen uses libpng. They instead use vendored lodepng. * Doxygen doesn't directly use freetype, but it does recommend freetype to be used in graphviz to avoid misrendering. It's already built unconditionally so use (+). Closes: https://bugs.gentoo.org/937599 Signed-off-by: Alfred Wingate Signed-off-by: Matthias Maier --- app-text/doxygen/Manifest | 1 + app-text/doxygen/doxygen-1.12.0.ebuild | 165 +++++++++++++++++++++ .../doxygen/files/doxygen-1.12.0-clang-19.patch | 43 ++++++ .../doxygen/files/doxygen-1.12.0-libfmt-11.patch | 112 ++++++++++++++ 4 files changed, 321 insertions(+) create mode 100644 app-text/doxygen/doxygen-1.12.0.ebuild create mode 100644 app-text/doxygen/files/doxygen-1.12.0-clang-19.patch create mode 100644 app-text/doxygen/files/doxygen-1.12.0-libfmt-11.patch (limited to 'app-text/doxygen') diff --git a/app-text/doxygen/Manifest b/app-text/doxygen/Manifest index edf9fae0ee13..1d4029dfe185 100644 --- a/app-text/doxygen/Manifest +++ b/app-text/doxygen/Manifest @@ -1,3 +1,4 @@ DIST doxygen-1.10.0.src.tar.gz 8400410 BLAKE2B dc7882dfb8b023e9250592375105cc79d4744362d96f4518b931ac264259257d27e0f2c5456580f3676bb54cc29fbc2ab3b2ffc37da6441297091c60a38dc13b SHA512 885de36fa0b4364cdd1eddd5e02517e08da7a52274c6fda2c22cbe85f0840e2ddf7358f613c018dc39b4a6dfce2ddd627e9318e73b903f954bbad1a39d03a416 DIST doxygen-1.11.0.src.tar.gz 8447729 BLAKE2B e4825494099850b648df570a1ae53b858d196f7c6ada4565eae1e04ac119f4f9b1ed9d6e07dc26a5e50d41b74299720d7cde4ff43a7350b083d74eabce7624e3 SHA512 54f4a15e459d1d9cc3b4f021b5264191146bd8e0e780b57c4c31f4f9dcbfc7fe7a9db58e8cda4c6df1b4b354dd432dac0b3089fd547afe7cbe313771b2c6aaa4 +DIST doxygen-1.12.0.src.tar.gz 8472577 BLAKE2B de823aa8dee0e22ec49bbb97cf5b53272cdaea249250556b07602d501d45774be19dbd40ecc4324942840d3fe90b0224aa5c61ec7d42098f1797d75f3795268d SHA512 e407e29c5e232e1f8dca291dd2d00b1dd400be709400225339408fad2cd758563b69f290cbd7c0efeb76b1335c4672fb1d6d580b9e6ed570708cf9b7d78951b1 DIST doxygen-1.9.8.src.tar.gz 8087770 BLAKE2B 9b93bd394e9fdafef1c274596f790db0956028332a945e0359b7b24440aefa5362b2126649c529e71341bba172cd1fa514455567ffffd37243a740a1ffbc1944 SHA512 edcd382538ecf0afd9d1c891afe302092cd541a30840dda6b00dc0f1d6c5b39a696ab98042c5bb4012c1c051609bfdbfa7d29e3098a72f6cb504d90097767ebb diff --git a/app-text/doxygen/doxygen-1.12.0.ebuild b/app-text/doxygen/doxygen-1.12.0.ebuild new file mode 100644 index 000000000000..7e15463915fc --- /dev/null +++ b/app-text/doxygen/doxygen-1.12.0.ebuild @@ -0,0 +1,165 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +LLVM_COMPAT=( 18 ) +PYTHON_COMPAT=( python3_{10..13} ) +PYTHON_REQ_USE="xml(+)" + +inherit cmake flag-o-matic llvm-r1 python-any-r1 + +DESCRIPTION="Documentation system for most programming languages" +HOMEPAGE="https://www.doxygen.nl/" + +if [[ ${PV} == *9999* ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/doxygen/doxygen.git" +else + SRC_URI="https://doxygen.nl/files/${P}.src.tar.gz" + SRC_URI+=" https://downloads.sourceforge.net/doxygen/rel-${PV}/${P}.src.tar.gz" + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris" +fi + +# GPL-2 also for bundled libmscgen +LICENSE="GPL-2" +SLOT="0" +IUSE="clang debug doc dot doxysearch gui test" +# - We need TeX for tests, bug #765472 +# - We keep the odd construct of noop USE=test because of +# the special relationship b/t RESTRICT & USE for tests. +# Also, it's a hint which avoids tests being silently skipped during arch testing. +REQUIRED_USE="test? ( doc )" +RESTRICT="!test? ( test )" + +BDEPEND=" + app-alternatives/yacc + app-alternatives/lex + ${PYTHON_DEPS} +" +RDEPEND=" + app-text/ghostscript-gpl + dev-db/sqlite:3 + dev-lang/perl + dev-libs/libfmt:= + dev-libs/spdlog:= + virtual/libiconv + clang? ( + $(llvm_gen_dep ' + sys-devel/clang:${LLVM_SLOT}= + sys-devel/llvm:${LLVM_SLOT}= + ') + ) + dot? ( + media-gfx/graphviz[freetype(+)] + ) + doc? ( + dev-texlive/texlive-bibtexextra + dev-texlive/texlive-fontsextra + dev-texlive/texlive-fontutils + dev-texlive/texlive-latex + dev-texlive/texlive-latexextra + dev-texlive/texlive-plaingeneric + ) + doxysearch? ( dev-libs/xapian:= ) + gui? ( + dev-qt/qtcore:5 + dev-qt/qtgui:5 + dev-qt/qtwidgets:5 + dev-qt/qtxml:5 + ) +" +DEPEND="${RDEPEND}" + +PATCHES=( + "${FILESDIR}/${PN}-1.9.4-link_with_pthread.patch" + "${FILESDIR}/${PN}-1.9.8-suppress-unused-option-libcxx.patch" + "${FILESDIR}/${PN}-1.12.0-libfmt-11.patch" + + # Backports + "${FILESDIR}/${PN}-1.12.0-clang-19.patch" +) + +DOCS=( LANGUAGE.HOWTO README.md ) + +pkg_setup() { + use clang && llvm-r1_pkg_setup + python-any-r1_pkg_setup +} + +src_prepare() { + cmake_src_prepare + + # Call dot with -Teps instead of -Tps for EPS generation - bug #282150 + sed -i -e '/addJob("ps"/ s/"ps"/"eps"/g' src/dot.cpp || die + + # fix pdf doc + sed -i.orig -e "s:g_kowal:g kowal:" \ + doc/maintainers.txt || die + + if is-flagq "-O3" ; then + # TODO: Investigate this and report a bug accordingly... + ewarn "Compiling with -O3 is known to produce incorrectly" + ewarn "optimized code which breaks doxygen. Using -O2 instead." + replace-flags "-O3" "-O2" + fi +} + +src_configure() { + # Very slow to compile, bug #920092 + filter-flags -fipa-pta + # -Wodr warnings, see bug #854357 and https://github.com/doxygen/doxygen/issues/9287 + filter-lto + + local mycmakeargs=( + -Duse_libclang=$(usex clang) + # Let the user choose instead, see also bug #822615 + -Duse_libc++=OFF + -Dbuild_doc=$(usex doc) + -Dbuild_search=$(usex doxysearch) + -Dbuild_wizard=$(usex gui) + -Duse_sys_spdlog=ON + -Duse_sys_sqlite3=ON + -DBUILD_SHARED_LIBS=OFF + -DGIT_EXECUTABLE="false" + + # Noisy and irrelevant downstream + -Wno-dev + ) + + use doc && mycmakeargs+=( + -DDOC_INSTALL_DIR="share/doc/${P}" + ) + + cmake_src_configure +} + +src_compile() { + cmake_src_compile + + if use doc; then + export VARTEXFONTS="${T}/fonts" # bug #564944 + + if ! use dot; then + sed -i -e "s/HAVE_DOT = YES/HAVE_DOT = NO/" \ + {testing/Doxyfile,doc/Doxyfile} \ + || die "disabling dot failed" + fi + + # -j1 for bug #770070 + cmake_src_compile docs -j1 + fi +} + +src_install() { + cmake_src_install + + # manpages are only automatically installed when docs are + # https://github.com/doxygen/doxygen/pull/10647 + doman doc/doxygen.1 + use gui && doman doc/doxywizard.1 + use doxysearch && { + doman doc/doxyindexer.1 + doman doc/doxysearch.1 + } +} diff --git a/app-text/doxygen/files/doxygen-1.12.0-clang-19.patch b/app-text/doxygen/files/doxygen-1.12.0-clang-19.patch new file mode 100644 index 000000000000..acca39a18d51 --- /dev/null +++ b/app-text/doxygen/files/doxygen-1.12.0-clang-19.patch @@ -0,0 +1,43 @@ +https://github.com/doxygen/doxygen/commit/cff64a87dea7596fd506a85521d4df4616dc845f +https://github.com/doxygen/doxygen/pull/11064 +https://github.com/bisqwit/TinyDeflate/commit/68ced8bd5c819264e628d4f063500753b77f613d +https://github.com/bisqwit/TinyDeflate/pull/9 + +From cff64a87dea7596fd506a85521d4df4616dc845f Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Bernhard=20Rosenkr=C3=A4nzer?= +Date: Fri, 9 Aug 2024 14:13:34 +0200 +Subject: [PATCH] Fix build with clang >= 19.0 + +Clang >= 19.0 requires a template argument list after the template +keyword for CWG96 compliance, see +https://github.com/llvm/llvm-project/pull/80801 + +This patch has also been submitted to upstream TinyDeflate as +https://github.com/bisqwit/TinyDeflate/pull/9 +--- a/deps/TinyDeflate/gunzip.hh ++++ b/deps/TinyDeflate/gunzip.hh +@@ -1141,21 +1141,21 @@ namespace gunzip_ns + //fprintf(stderr, "both track flag\n"); + SizeTracker tracker; + return tracker(Gunzip +- (tracker.template ForwardInput(i), tracker.template ForwardOutput(o), tracker.template ForwardWindow(c), std::forward(b))); ++ (tracker.template ForwardInput(i), tracker.template ForwardOutput(o), tracker.template ForwardWindow(c), std::forward(b))); + } + else if constexpr(code & Flag_TrackIn) + { + //fprintf(stderr, "in track flag\n"); + SizeTracker tracker; + return tracker(Gunzip +- (tracker.template ForwardInput(i),std::forward(o),std::forward(c),std::forward(b))); ++ (tracker.template ForwardInput(i),std::forward(o),std::forward(c),std::forward(b))); + } + else if constexpr(code & Flag_TrackOut) + { + //fprintf(stderr, "out track flag\n"); + SizeTracker tracker; + return tracker(Gunzip +- (std::forward(i), tracker.template ForwardOutput(o), tracker.template ForwardWindow(c), std::forward(b))); ++ (std::forward(i), tracker.template ForwardOutput(o), tracker.template ForwardWindow(c), std::forward(b))); + } + else + { diff --git a/app-text/doxygen/files/doxygen-1.12.0-libfmt-11.patch b/app-text/doxygen/files/doxygen-1.12.0-libfmt-11.patch new file mode 100644 index 000000000000..a73f6ad58514 --- /dev/null +++ b/app-text/doxygen/files/doxygen-1.12.0-libfmt-11.patch @@ -0,0 +1,112 @@ +https://bugs.gentoo.org/937599 +https://github.com/doxygen/doxygen/pull/11083 + +From 567aca983f70b01103271e431bc71a13ac79213c Mon Sep 17 00:00:00 2001 +From: Alfred Wingate +Date: Fri, 9 Aug 2024 03:00:05 +0300 +Subject: [PATCH] Adjust to libfmt-11 changes + +Bug: https://bugs.gentoo.org/937599 +See-Also: https://github.com/fmtlib/fmt/commit/d70729215fba1d54862e407b626abf86ddf409bf +Signed-off-by: Alfred Wingate +--- a/src/trace.h ++++ b/src/trace.h +@@ -156,7 +156,7 @@ namespace fmt { template struct formatter {}; } + //! adds support for formatting QCString + template<> struct fmt::formatter : formatter + { +- auto format(const QCString &c, format_context& ctx) { ++ auto format(const QCString &c, format_context& ctx) const { + return formatter::format(c.str(), ctx); + } + }; +@@ -164,7 +164,7 @@ template<> struct fmt::formatter : formatter + //! adds support for formatting Protected + template<> struct fmt::formatter : formatter + { +- auto format(Protection prot, format_context& ctx) { ++ auto format(Protection prot, format_context& ctx) const { + std::string result="Unknown"; + switch (prot) + { +@@ -180,7 +180,7 @@ template<> struct fmt::formatter : formatter + //! adds support for formatting Specifier + template<> struct fmt::formatter : formatter + { +- auto format(Specifier spec, format_context& ctx) { ++ auto format(Specifier spec, format_context& ctx) const { + std::string result="Unknown"; + switch (spec) + { +@@ -195,7 +195,7 @@ template<> struct fmt::formatter : formatter + //! adds support for formatting MethodTypes + template<> struct fmt::formatter : formatter + { +- auto format(MethodTypes mtype, format_context& ctx) { ++ auto format(MethodTypes mtype, format_context& ctx) const { + std::string result="Unknown"; + switch (mtype) + { +@@ -213,7 +213,7 @@ template<> struct fmt::formatter : formatter + //! adds support for formatting RelatesType + template<> struct fmt::formatter : formatter + { +- auto format(RelatesType type, format_context& ctx) { ++ auto format(RelatesType type, format_context& ctx) const { + std::string result="Unknown"; + switch (type) + { +@@ -228,7 +228,7 @@ template<> struct fmt::formatter : formatter + //! adds support for formatting RelationShip + template<> struct fmt::formatter : formatter + { +- auto format(Relationship relation, format_context& ctx) { ++ auto format(Relationship relation, format_context& ctx) const { + std::string result="Unknown"; + switch (relation) + { +@@ -243,7 +243,7 @@ template<> struct fmt::formatter : formatter + //! adds support for formatting SrcLangExt + template<> struct fmt::formatter : formatter + { +- auto format(SrcLangExt lang, format_context& ctx) { ++ auto format(SrcLangExt lang, format_context& ctx) const { + std::string result="Unknown"; + switch (lang) + { +@@ -273,7 +273,7 @@ template<> struct fmt::formatter : formatter + //! adds support for formatting MemberType + template<> struct fmt::formatter : formatter + { +- auto format(MemberType mtype, format_context& ctx) { ++ auto format(MemberType mtype, format_context& ctx) const { + std::string result="Unknown"; + switch (mtype) + { +@@ -301,7 +301,7 @@ template<> struct fmt::formatter : formatter + //! adds support for formatting TypeSpecifier + template<> struct fmt::formatter : formatter + { +- auto format(TypeSpecifier type, format_context& ctx) { ++ auto format(TypeSpecifier type, format_context& ctx) const { + return formatter::format(type.to_string(),ctx); + } + }; +@@ -309,7 +309,7 @@ template<> struct fmt::formatter : formatter + //! adds support for formatting EntryType + template<> struct fmt::formatter : formatter + { +- auto format(EntryType type, format_context& ctx) { ++ auto format(EntryType type, format_context& ctx) const { + return formatter::format(type.to_string(),ctx); + } + }; +@@ -317,7 +317,7 @@ template<> struct fmt::formatter : formatter + //! adds support for formatting MemberListType + template<> struct fmt::formatter : formatter + { +- auto format(MemberListType type, format_context& ctx) { ++ auto format(MemberListType type, format_context& ctx) const { + return formatter::format(type.to_string(),ctx); + } + }; -- cgit v1.2.3-65-gdbad