public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] repo/gentoo:master commit in: app-text/doxygen/, app-text/doxygen/files/
@ 2024-08-25 23:31 Matthias Maier
  0 siblings, 0 replies; only message in thread
From: Matthias Maier @ 2024-08-25 23:31 UTC (permalink / raw
  To: gentoo-commits

commit:     30d25ae5f8ae00e545c4680235a718a59b2caf86
Author:     Alfred Wingate <parona <AT> protonmail <DOT> com>
AuthorDate: Tue Aug 20 04:32:20 2024 +0000
Commit:     Matthias Maier <tamiko <AT> gentoo <DOT> org>
CommitDate: Sun Aug 25 23:19:40 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=30d25ae5

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 <AT> protonmail.com>
Signed-off-by: Matthias Maier <tamiko <AT> gentoo.org>

 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(+)

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);
+   }
+ };


^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2024-08-25 23:31 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-08-25 23:31 [gentoo-commits] repo/gentoo:master commit in: app-text/doxygen/, app-text/doxygen/files/ Matthias Maier

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox