summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlfred Wingate <parona@protonmail.com>2024-08-20 07:32:20 +0300
committerMatthias Maier <tamiko@gentoo.org>2024-08-25 18:19:40 -0500
commit30d25ae5f8ae00e545c4680235a718a59b2caf86 (patch)
tree475d1f5e99df14778817a01800ad65e03a5db3fb /app-text/doxygen
parentnet-libs/nghttp3: add 1.5.0 (diff)
downloadgentoo-30d25ae5f8ae00e545c4680235a718a59b2caf86.tar.gz
gentoo-30d25ae5f8ae00e545c4680235a718a59b2caf86.tar.bz2
gentoo-30d25ae5f8ae00e545c4680235a718a59b2caf86.zip
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 <parona@protonmail.com> Signed-off-by: Matthias Maier <tamiko@gentoo.org>
Diffstat (limited to 'app-text/doxygen')
-rw-r--r--app-text/doxygen/Manifest1
-rw-r--r--app-text/doxygen/doxygen-1.12.0.ebuild165
-rw-r--r--app-text/doxygen/files/doxygen-1.12.0-clang-19.patch43
-rw-r--r--app-text/doxygen/files/doxygen-1.12.0-libfmt-11.patch112
4 files changed, 321 insertions, 0 deletions
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?= <bero@lindev.ch>
+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<DeflateTrackBothSize> tracker;
+ return tracker(Gunzip<code & Flag_NoTrackFlagMask>
+- (tracker.template ForwardInput(i), tracker.template ForwardOutput(o), tracker.template ForwardWindow(c), std::forward<B>(b)));
++ (tracker.template ForwardInput<I>(i), tracker.template ForwardOutput<O>(o), tracker.template ForwardWindow<C>(c), std::forward<B>(b)));
+ }
+ else if constexpr(code & Flag_TrackIn)
+ {
+ //fprintf(stderr, "in track flag\n");
+ SizeTracker<DeflateTrackInSize> tracker;
+ return tracker(Gunzip<code & Flag_NoTrackFlagMask>
+- (tracker.template ForwardInput(i),std::forward<O>(o),std::forward<C>(c),std::forward<B>(b)));
++ (tracker.template ForwardInput<I>(i),std::forward<O>(o),std::forward<C>(c),std::forward<B>(b)));
+ }
+ else if constexpr(code & Flag_TrackOut)
+ {
+ //fprintf(stderr, "out track flag\n");
+ SizeTracker<DeflateTrackOutSize> tracker;
+ return tracker(Gunzip<code & Flag_NoTrackFlagMask>
+- (std::forward<I>(i), tracker.template ForwardOutput(o), tracker.template ForwardWindow(c), std::forward<B>(b)));
++ (std::forward<I>(i), tracker.template ForwardOutput<O>(o), tracker.template ForwardWindow<C>(c), std::forward<B>(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 <parona@protonmail.com>
+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 <parona@protonmail.com>
+--- a/src/trace.h
++++ b/src/trace.h
+@@ -156,7 +156,7 @@ namespace fmt { template<typename T> struct formatter {}; }
+ //! adds support for formatting QCString
+ template<> struct fmt::formatter<QCString> : formatter<std::string>
+ {
+- auto format(const QCString &c, format_context& ctx) {
++ auto format(const QCString &c, format_context& ctx) const {
+ return formatter<std::string>::format(c.str(), ctx);
+ }
+ };
+@@ -164,7 +164,7 @@ template<> struct fmt::formatter<QCString> : formatter<std::string>
+ //! adds support for formatting Protected
+ template<> struct fmt::formatter<Protection> : formatter<std::string>
+ {
+- 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<Protection> : formatter<std::string>
+ //! adds support for formatting Specifier
+ template<> struct fmt::formatter<Specifier> : formatter<std::string>
+ {
+- 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<Specifier> : formatter<std::string>
+ //! adds support for formatting MethodTypes
+ template<> struct fmt::formatter<MethodTypes> : formatter<std::string>
+ {
+- 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<MethodTypes> : formatter<std::string>
+ //! adds support for formatting RelatesType
+ template<> struct fmt::formatter<RelatesType> : formatter<std::string>
+ {
+- 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<RelatesType> : formatter<std::string>
+ //! adds support for formatting RelationShip
+ template<> struct fmt::formatter<Relationship> : formatter<std::string>
+ {
+- 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<Relationship> : formatter<std::string>
+ //! adds support for formatting SrcLangExt
+ template<> struct fmt::formatter<SrcLangExt> : formatter<std::string>
+ {
+- 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<SrcLangExt> : formatter<std::string>
+ //! adds support for formatting MemberType
+ template<> struct fmt::formatter<MemberType> : formatter<std::string>
+ {
+- 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<MemberType> : formatter<std::string>
+ //! adds support for formatting TypeSpecifier
+ template<> struct fmt::formatter<TypeSpecifier> : formatter<std::string>
+ {
+- auto format(TypeSpecifier type, format_context& ctx) {
++ auto format(TypeSpecifier type, format_context& ctx) const {
+ return formatter<std::string>::format(type.to_string(),ctx);
+ }
+ };
+@@ -309,7 +309,7 @@ template<> struct fmt::formatter<TypeSpecifier> : formatter<std::string>
+ //! adds support for formatting EntryType
+ template<> struct fmt::formatter<EntryType> : formatter<std::string>
+ {
+- auto format(EntryType type, format_context& ctx) {
++ auto format(EntryType type, format_context& ctx) const {
+ return formatter<std::string>::format(type.to_string(),ctx);
+ }
+ };
+@@ -317,7 +317,7 @@ template<> struct fmt::formatter<EntryType> : formatter<std::string>
+ //! adds support for formatting MemberListType
+ template<> struct fmt::formatter<MemberListType> : formatter<std::string>
+ {
+- auto format(MemberListType type, format_context& ctx) {
++ auto format(MemberListType type, format_context& ctx) const {
+ return formatter<std::string>::format(type.to_string(),ctx);
+ }
+ };