diff options
author | Sam James <sam@gentoo.org> | 2023-09-24 05:37:36 +0100 |
---|---|---|
committer | Sam James <sam@gentoo.org> | 2023-09-24 05:39:24 +0100 |
commit | fd9095b6d964637d60aea7d5c6d4a0d45f3edcd9 (patch) | |
tree | 0d903a85170bfa8c7e32ad38da462c7e36d65907 /app-doc | |
parent | dev-util/astyle: drop 3.4, 3.4.6 (diff) | |
download | gentoo-fd9095b6d964637d60aea7d5c6d4a0d45f3edcd9.tar.gz gentoo-fd9095b6d964637d60aea7d5c6d4a0d45f3edcd9.tar.bz2 gentoo-fd9095b6d964637d60aea7d5c6d4a0d45f3edcd9.zip |
app-doc/doxygen: add 1.9.8
* Drop unnecessary patch for bad encoding (upstream note it shouldn't be required
anymore, see https://github.com/doxygen/doxygen/issues/10258#issuecomment-1693323707)
* Drop/alter libcxx patch. Use the upstream build option, although tweak it
to always be "available" to avoid unused var warnings w/ cmake.eclass
(see patch comments for details)
* Backport fix for spdlog building (although I didn't hit this issue myself)
* Backport sqlite unbundling
* Rename USE=qt5 -> USE=gui per QA policy
Closes: https://bugs.gentoo.org/912986
Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'app-doc')
-rw-r--r-- | app-doc/doxygen/Manifest | 1 | ||||
-rw-r--r-- | app-doc/doxygen/doxygen-1.9.8.ebuild | 155 | ||||
-rw-r--r-- | app-doc/doxygen/doxygen-9999.ebuild | 51 | ||||
-rw-r--r-- | app-doc/doxygen/files/doxygen-1.9.8-spdlog-link.patch | 51 | ||||
-rw-r--r-- | app-doc/doxygen/files/doxygen-1.9.8-suppress-unused-option-libcxx.patch | 16 | ||||
-rw-r--r-- | app-doc/doxygen/files/doxygen-1.9.8-unbundle-sqlite.patch | 119 |
6 files changed, 373 insertions, 20 deletions
diff --git a/app-doc/doxygen/Manifest b/app-doc/doxygen/Manifest index bb94c8f95d3e..fefe2aa5dbf2 100644 --- a/app-doc/doxygen/Manifest +++ b/app-doc/doxygen/Manifest @@ -1,2 +1,3 @@ DIST doxygen-1.9.6.src.tar.gz 5293513 BLAKE2B 35d3286b47922776814bb7941c7a1cb27a5a50be35a9f231b1f072333d966630bbf0b97813f56711f71f040a0ceb87e7e1cbee04ca2aa3f035754ba844561697 SHA512 f8b0d19d33fa8a5bb92b38f1c775bd3cde7f024566cf93ed61ab0cafe86643971c04b7f2492364767b3e6ce5b518bad5e0321c82f0a72875ccf936ea7d3595b2 DIST doxygen-1.9.7.src.tar.gz 5736446 BLAKE2B e0f6e06399a2dda7226fe8fea351a79f19bf71aee51fba0ce113c3423b85aa633ce8d98894e3e49027839c2accc18af87c7f23a1fd37c0de441de42a8a76d307 SHA512 618ff58aa6f0a2eb89f95b570995ea3ebbcda64f502cabcecd9be2967abffb56d0d6747de0c06df422705919757e6af9c6e5a56ca603b1ddf7a09a7ee79b1803 +DIST doxygen-1.9.8.src.tar.gz 8087770 BLAKE2B 9b93bd394e9fdafef1c274596f790db0956028332a945e0359b7b24440aefa5362b2126649c529e71341bba172cd1fa514455567ffffd37243a740a1ffbc1944 SHA512 edcd382538ecf0afd9d1c891afe302092cd541a30840dda6b00dc0f1d6c5b39a696ab98042c5bb4012c1c051609bfdbfa7d29e3098a72f6cb504d90097767ebb diff --git a/app-doc/doxygen/doxygen-1.9.8.ebuild b/app-doc/doxygen/doxygen-1.9.8.ebuild new file mode 100644 index 000000000000..fe844f523b0a --- /dev/null +++ b/app-doc/doxygen/doxygen-1.9.8.ebuild @@ -0,0 +1,155 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +LLVM_MAX_SLOT=17 +PYTHON_COMPAT=( python3_{10..12} ) +PYTHON_REQ_USE="xml(+)" + +inherit cmake flag-o-matic llvm 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+=" mirror://sourceforge/doxygen/rel-${PV}/${P}.src.tar.gz" + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~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 sqlite 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=" + sys-devel/bison + sys-devel/flex + ${PYTHON_DEPS} +" +RDEPEND=" + app-text/ghostscript-gpl + dev-db/sqlite:3 + dev-lang/perl + dev-libs/spdlog:= + media-libs/libpng:= + virtual/libiconv + clang? ( + <sys-devel/clang-$((${LLVM_MAX_SLOT} + 1)):= + ) + dot? ( + media-gfx/graphviz + media-libs/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/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.7-musl-1.2.4.patch" + "${FILESDIR}/${PN}-1.9.8-suppress-unused-option-libcxx.patch" + + # Backports + "${FILESDIR}/${P}-spdlog-link.patch" + "${FILESDIR}/${P}-unbundle-sqlite.patch" +) + +DOCS=( LANGUAGE.HOWTO README.md ) + +pkg_setup() { + use clang && llvm_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 + ewarn + ewarn "Compiling with -O3 is known to produce incorrectly" + ewarn "optimized code which breaks doxygen." + ewarn + elog + elog "Continuing with -O2 instead ..." + elog + replace-flags "-O3" "-O2" + fi +} + +src_configure() { + # -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" + ) + + 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 + + doman doc/*.1 +} diff --git a/app-doc/doxygen/doxygen-9999.ebuild b/app-doc/doxygen/doxygen-9999.ebuild index 7a4ebca3a29b..48fd52190060 100644 --- a/app-doc/doxygen/doxygen-9999.ebuild +++ b/app-doc/doxygen/doxygen-9999.ebuild @@ -3,43 +3,50 @@ EAPI=8 +LLVM_MAX_SLOT=17 PYTHON_COMPAT=( python3_{10..12} ) PYTHON_REQ_USE="xml(+)" inherit cmake flag-o-matic llvm python-any-r1 -if [[ ${PV} = *9999* ]]; then + +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+=" mirror://sourceforge/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" + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris" fi -DESCRIPTION="Documentation system for most programming languages" -HOMEPAGE="https://www.doxygen.nl/" - -# GPL-2 also for bundled libmscgen, MIT for bundled spdlog -LICENSE="GPL-2 MIT" +# GPL-2 also for bundled libmscgen +LICENSE="GPL-2" SLOT="0" -IUSE="clang debug doc dot doxysearch qt5 sqlite 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. +IUSE="clang debug doc dot doxysearch gui sqlite 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="sys-devel/bison +BDEPEND=" + sys-devel/bison sys-devel/flex ${PYTHON_DEPS} " -RDEPEND="app-text/ghostscript-gpl +RDEPEND=" + app-text/ghostscript-gpl + dev-db/sqlite:3 dev-lang/perl dev-libs/spdlog:= - media-libs/libpng:0= + media-libs/libpng:= virtual/libiconv - clang? ( >=sys-devel/clang-10:= ) + clang? ( + <sys-devel/clang-$((${LLVM_MAX_SLOT} + 1)):= + ) dot? ( media-gfx/graphviz media-libs/freetype @@ -53,7 +60,7 @@ RDEPEND="app-text/ghostscript-gpl dev-texlive/texlive-plaingeneric ) doxysearch? ( dev-libs/xapian:= ) - qt5? ( + gui? ( dev-qt/qtgui:5 dev-qt/qtwidgets:5 dev-qt/qtxml:5 @@ -63,9 +70,10 @@ DEPEND="${RDEPEND}" PATCHES=( "${FILESDIR}/${PN}-1.9.4-link_with_pthread.patch" - "${FILESDIR}/${PN}-1.9.1-ignore-bad-encoding.patch" - "${FILESDIR}/${PN}-1.9.1-do_not_force_libcxx.patch" "${FILESDIR}/${PN}-1.9.7-musl-1.2.4.patch" + "${FILESDIR}/${PN}-1.9.8-suppress-unused-option-libcxx.patch" + + # Backports ) DOCS=( LANGUAGE.HOWTO README.md ) @@ -103,10 +111,13 @@ src_configure() { 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 qt5) + -Dbuild_wizard=$(usex gui) -Duse_sys_spdlog=ON + -Duse_sys_sqlite3=ON -DBUILD_SHARED_LIBS=OFF -DGIT_EXECUTABLE="false" ) diff --git a/app-doc/doxygen/files/doxygen-1.9.8-spdlog-link.patch b/app-doc/doxygen/files/doxygen-1.9.8-spdlog-link.patch new file mode 100644 index 000000000000..e73385dec3b2 --- /dev/null +++ b/app-doc/doxygen/files/doxygen-1.9.8-spdlog-link.patch @@ -0,0 +1,51 @@ +https://github.com/doxygen/doxygen/issues/10265 +https://github.com/doxygen/doxygen/pull/10284 + +From 70bb112352ae7f3130647dcc009d8de5d4134e6d Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?=D9=85=D9=87=D8=AF=D9=8A=20=D8=B4=D9=8A=D9=86=D9=88=D9=86?= + =?UTF-8?q?=20=28Mehdi=20Chinoune=29?= <mehdi.chinoune@hotmail.com> +Date: Mon, 4 Sep 2023 18:49:27 +0100 +Subject: [PATCH 1/2] doxyapp: Fix linking to spdlog + +--- + addon/doxyapp/CMakeLists.txt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/addon/doxyapp/CMakeLists.txt b/addon/doxyapp/CMakeLists.txt +index 4f3c31feacd..6097a3cca69 100644 +--- a/addon/doxyapp/CMakeLists.txt ++++ b/addon/doxyapp/CMakeLists.txt +@@ -46,7 +46,7 @@ mscgen + doxygen_version + doxycfg + vhdlparser +-spdlog ++spdlog::spdlog + ${ICONV_LIBRARIES} + ${CMAKE_THREAD_LIBS_INIT} + ${SQLITE3_LIBRARIES} + +From 71f2ed171a6d14a67f1905802714add974c31789 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?=D9=85=D9=87=D8=AF=D9=8A=20=D8=B4=D9=8A=D9=86=D9=88=D9=86?= + =?UTF-8?q?=20=28Mehdi=20Chinoune=29?= <mehdi.chinoune@hotmail.com> +Date: Mon, 4 Sep 2023 18:50:25 +0100 +Subject: [PATCH 2/2] doxyparse: Fix linking to spdlog + +--- + addon/doxyparse/CMakeLists.txt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/addon/doxyparse/CMakeLists.txt b/addon/doxyparse/CMakeLists.txt +index 24881e3ef12..0157afb45e2 100644 +--- a/addon/doxyparse/CMakeLists.txt ++++ b/addon/doxyparse/CMakeLists.txt +@@ -35,7 +35,7 @@ mscgen + doxygen_version + doxycfg + vhdlparser +-spdlog ++spdlog::spdlog + ${ICONV_LIBRARIES} + ${CMAKE_THREAD_LIBS_INIT} + ${SQLITE3_LIBRARIES} + diff --git a/app-doc/doxygen/files/doxygen-1.9.8-suppress-unused-option-libcxx.patch b/app-doc/doxygen/files/doxygen-1.9.8-suppress-unused-option-libcxx.patch new file mode 100644 index 000000000000..1da9a2da6459 --- /dev/null +++ b/app-doc/doxygen/files/doxygen-1.9.8-suppress-unused-option-libcxx.patch @@ -0,0 +1,16 @@ +Always expose the use_libc++ option. It's only useful for Clang but cmake.class +tries to find when we've used CMake options which are unused/unknown and this +triggers it for GCC builds if we set -Duse_libc++=OFF. + +So, always expose the option so we can turn it off without a warning. +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -21,7 +21,7 @@ option(build_xmlparser "Automatically update the XML parser modules when updatin + option(build_search "Build external search tools (doxysearch and doxyindexer)" OFF) + option(build_doc "Build user manual (HTML and PDF)" OFF) + option(build_doc_chm "Build user manual (CHM)" OFF) +-if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang") ++if (TRUE) + option(use_libc++ "Use libc++ as C++ standard library." ON) + endif() + option(use_libclang "Add support for libclang parsing." OFF) diff --git a/app-doc/doxygen/files/doxygen-1.9.8-unbundle-sqlite.patch b/app-doc/doxygen/files/doxygen-1.9.8-unbundle-sqlite.patch new file mode 100644 index 000000000000..04d1d69b7b86 --- /dev/null +++ b/app-doc/doxygen/files/doxygen-1.9.8-unbundle-sqlite.patch @@ -0,0 +1,119 @@ +https://github.com/doxygen/doxygen/issues/10263 +https://github.com/doxygen/doxygen/commit/28609fecd41d885e54fa170e499a0e5b55def2c2 + +From 28609fecd41d885e54fa170e499a0e5b55def2c2 Mon Sep 17 00:00:00 2001 +From: Dimitri van Heesch <doxygen@gmail.com> +Date: Mon, 28 Aug 2023 20:19:16 +0200 +Subject: [PATCH] issue #10263 please add a use_sys_sqlite3 config option + +--- + CMakeLists.txt | 6 +++++- + cmake/FindSQLite3.cmake | 38 ++++++++++++++++++++++++++++++++++++++ + deps/CMakeLists.txt | 4 +++- + src/CMakeLists.txt | 4 +++- + 4 files changed, 49 insertions(+), 3 deletions(-) + create mode 100644 cmake/FindSQLite3.cmake + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 4957c34c24d..31e53cc8440 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -25,7 +25,8 @@ if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang") + option(use_libc++ "Use libc++ as C++ standard library." ON) + endif() + option(use_libclang "Add support for libclang parsing." OFF) +-option(use_sys_spdlog "Use system spdlog instead of bundled." OFF) ++option(use_sys_spdlog "Use system spdlog library instead of the one bundled." OFF) ++option(use_sys_sqlite3 "Use system sqlite3 library instead of the one bundled." OFF) + option(static_libclang "Link to a statically compiled version of LLVM/libclang." OFF) + option(win_static "Link with /MT in stead of /MD on windows" OFF) + option(enable_console "Enable that executables on Windows get the CONSOLE bit set for the doxywizard executable [development]" OFF) +@@ -67,6 +68,9 @@ endif() + if (use_sys_spdlog) + find_package(spdlog CONFIG REQUIRED) + endif() ++if (use_sys_sqlite3) ++ find_package(SQLite3 REQUIRED) ++endif() + if (build_wizard) + if (force_qt STREQUAL "Qt6") + if (CMAKE_SYSTEM MATCHES "Darwin") +diff --git a/cmake/FindSQLite3.cmake b/cmake/FindSQLite3.cmake +new file mode 100644 +index 00000000000..7c21de223a7 +--- /dev/null ++++ b/cmake/FindSQLite3.cmake +@@ -0,0 +1,38 @@ ++# Copyright (C) 2007-2009 LuaDist. ++# Created by Peter Kapec <kapecp@gmail.com> ++# Redistribution and use of this file is allowed according to the terms of the MIT license. ++# For details see the COPYRIGHT file distributed with LuaDist. ++# Note: ++# Searching headers and libraries is very simple and is NOT as powerful as scripts ++# distributed with CMake, because LuaDist defines directories to search for. ++# Everyone is encouraged to contact the author with improvements. Maybe this file ++# becomes part of CMake distribution sometimes. ++ ++# - Find sqlite3 ++# Find the native SQLite3 headers and libraries. ++# ++# SQLite3_INCLUDE_DIRS - where to find sqlite3.h, etc. ++# SQLite3_LIBRARIES - List of libraries when using sqlite. ++# SQLite3_FOUND - True if sqlite found. ++ ++# Look for the header file. ++FIND_PATH(SQLite3_INCLUDE_DIR NAMES sqlite3.h) ++ ++# Look for the library. ++FIND_LIBRARY(SQLite3_LIBRARY NAMES sqlite3) ++ ++# Handle the QUIETLY and REQUIRED arguments and set SQLITE3_FOUND to TRUE if all listed variables are TRUE. ++INCLUDE(FindPackageHandleStandardArgs) ++FIND_PACKAGE_HANDLE_STANDARD_ARGS(SQLite3 DEFAULT_MSG SQLite3_LIBRARY SQLite3_INCLUDE_DIR) ++ ++# Copy the results to the output variables. ++IF(SQLite3_FOUND) ++ SET(SQLite3_LIBRARIES ${SQLite3_LIBRARY}) ++ SET(SQLite3_INCLUDE_DIRS ${SQLite3_INCLUDE_DIR}) ++ELSE(SQLite3_FOUND) ++ SET(SQLite3_LIBRARIES) ++ SET(SQLite3_INCLUDE_DIRS) ++ENDIF(SQLite3_FOUND) ++ ++MARK_AS_ADVANCED(SQLite3_INCLUDE_DIRS SQLite3_LIBRARIES) ++ +diff --git a/deps/CMakeLists.txt b/deps/CMakeLists.txt +index a689b4a7018..eb716417f22 100644 +--- a/deps/CMakeLists.txt ++++ b/deps/CMakeLists.txt +@@ -4,4 +4,6 @@ add_subdirectory(libmscgen) + if (NOT use_sys_spdlog) + add_subdirectory(spdlog) + endif() +-add_subdirectory(sqlite3) ++if (NOT use_sys_sqlite3) ++ add_subdirectory(sqlite3) ++endif() +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index 78a55c3f2bf..02c52240e5b 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -6,7 +6,6 @@ include_directories( + ${PROJECT_SOURCE_DIR}/deps/libmd5 + ${PROJECT_SOURCE_DIR}/deps/liblodepng + ${PROJECT_SOURCE_DIR}/deps/libmscgen +- ${PROJECT_SOURCE_DIR}/deps/sqlite3 + ${PROJECT_SOURCE_DIR}/libversion + ${PROJECT_SOURCE_DIR}/libxml + ${PROJECT_SOURCE_DIR}/vhdlparser +@@ -18,6 +17,9 @@ include_directories( + if (NOT use_sys_spdlog) + include_directories(${PROJECT_SOURCE_DIR}/deps/spdlog/include) + endif() ++if (NOT use_sys_sqlite) ++ include_directories(${PROJECT_SOURCE_DIR}/deps/sqlite3) ++endif() + + + file(MAKE_DIRECTORY ${GENERATED_SRC}) + |