diff options
Diffstat (limited to 'kde-frameworks/extra-cmake-modules')
3 files changed, 155 insertions, 0 deletions
diff --git a/kde-frameworks/extra-cmake-modules/Manifest b/kde-frameworks/extra-cmake-modules/Manifest index 4be26439c4ef..419c68133160 100644 --- a/kde-frameworks/extra-cmake-modules/Manifest +++ b/kde-frameworks/extra-cmake-modules/Manifest @@ -1 +1,2 @@ DIST extra-cmake-modules-5.90.0.tar.xz 323352 BLAKE2B 00df6be76989e0730b8b0be66ea68d979c22ee66f115720218b80eb6a06f2d471b24c08e4db2b5a4febdc3e44481adce522c4e62cf86bbe0c10d07cd40ae0cab SHA512 1f1257a8b9d0a7ba088d5da3bb96070c6cd18d19a17224249e886d7a4aa9bda8192be54607908b1cbcbea57366649cebde173e5bce64ea16ed3b60d1a5ba04a5 +DIST extra-cmake-modules-5.91.0.tar.xz 329328 BLAKE2B 74aa6d445bdde98e27683aa04068a2d82938dff8993889f6d089d2d1864b687bd20f4619ae4396df85c0a63b2cd7279ea487586371a6f0ac0bf2dd66b183ed9e SHA512 5134ce41171db708dc31ead1cc05c6c9e21187a49e4ab0930790440c2183de4c07d7e7170ac1e32d98344167313a39a132a431801c7927e986821705f807c457 diff --git a/kde-frameworks/extra-cmake-modules/extra-cmake-modules-5.91.0.ebuild b/kde-frameworks/extra-cmake-modules/extra-cmake-modules-5.91.0.ebuild new file mode 100644 index 000000000000..6d30f42e236f --- /dev/null +++ b/kde-frameworks/extra-cmake-modules/extra-cmake-modules-5.91.0.ebuild @@ -0,0 +1,78 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{8..10} ) +QTMIN=5.15.2 +inherit cmake kde.org python-any-r1 + +DESCRIPTION="Extra modules and scripts for CMake" +HOMEPAGE="https://invent.kde.org/frameworks/extra-cmake-modules" + +LICENSE="BSD" +KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~x86" +IUSE="doc test" + +RESTRICT="!test? ( test )" + +BDEPEND=" + doc? ( + ${PYTHON_DEPS} + $(python_gen_any_dep 'dev-python/sphinx[${PYTHON_USEDEP}]') + >=dev-qt/qthelp-${QTMIN}:5 + ) + test? ( + >=dev-qt/linguist-tools-${QTMIN}:5 + >=dev-qt/qtcore-${QTMIN}:5 + ) +" +RDEPEND=" + app-arch/libarchive[bzip2] +" + +PATCHES=( + "${FILESDIR}/${PN}-5.49.0-no-fatal-warnings.patch" + "${FILESDIR}/${PN}-5.72.0-skip-ecm_add_test-early.patch" + "${FILESDIR}/${PN}-5.91.0-disable-qmlplugindump.patch" +) + +python_check_deps() { + has_version "dev-python/sphinx[${PYTHON_USEDEP}]" +} + +pkg_setup() { + use doc && python-any-r1_pkg_setup +} + +src_prepare() { + cmake_src_prepare + # Requires PyQt5, bug #680256 + sed -i -e "/^if(NOT SIP_Qt5Core_Mod_FILE)/s/NOT SIP_Qt5Core_Mod_FILE/TRUE/" \ + tests/CMakeLists.txt || die "failed to disable GenerateSipBindings tests" +} + +src_configure() { + local mycmakeargs=( + -DDOC_INSTALL_DIR=/usr/share/doc/"${PF}" + -DBUILD_QTHELP_DOCS=$(usex doc) + -DBUILD_HTML_DOCS=$(usex doc) + -DBUILD_MAN_DOCS=$(usex doc) + -DBUILD_TESTING=$(usex test) + ) + + cmake_src_configure +} + +src_test() { + # ECMToolchainAndroidTest passes but then breaks src_install + # ECMPoQmToolsTest is broken, bug #627806 + # KDEFetchTranslations can not possibly succeed in releases, bug #764953 + # possible race condition with multiple jobs, bug #701854 + local myctestargs=( + -j1 + -E "(ECMToolchainAndroidTest|ECMPoQmToolsTest|KDEFetchTranslations)" + ) + + cmake_src_test +} diff --git a/kde-frameworks/extra-cmake-modules/files/extra-cmake-modules-5.91.0-disable-qmlplugindump.patch b/kde-frameworks/extra-cmake-modules/files/extra-cmake-modules-5.91.0-disable-qmlplugindump.patch new file mode 100644 index 000000000000..fbec9a441e37 --- /dev/null +++ b/kde-frameworks/extra-cmake-modules/files/extra-cmake-modules-5.91.0-disable-qmlplugindump.patch @@ -0,0 +1,76 @@ +From 76ee984d5094990c2bd79c71b84ba9f82b3bf3da Mon Sep 17 00:00:00 2001 +From: Andreas Sturmlechner <asturm@gentoo.org> +Date: Sun, 8 Dec 2019 15:01:33 +0100 +Subject: [PATCH] ECMFindQMLModule.cmake.in: Add ECM_DISABLE_QMLPLUGINDUMP to + avoid sandbox violations + +See also: https://phabricator.kde.org/D25812 + +Backstory: https://bugzilla.gnome.org/show_bug.cgi?id=744135 +BUG: 387753 +--- + modules/ECMFindQmlModule.cmake.in | 45 ++++++++++++++++++------------- + 1 file changed, 27 insertions(+), 18 deletions(-) + +diff --git a/modules/ECMFindQmlModule.cmake.in b/modules/ECMFindQmlModule.cmake.in +index 6c054bf0..1c17c981 100644 +--- a/modules/ECMFindQmlModule.cmake.in ++++ b/modules/ECMFindQmlModule.cmake.in +@@ -7,27 +7,36 @@ + include(FindPackageHandleStandardArgs) + include("${ECM_MODULE_DIR}/QtVersionOption.cmake") + +-if (QT_MAJOR_VERSION EQUAL "5") +- include("${ECM_MODULE_DIR}/ECMQueryQmake.cmake") +- query_qmake(qt_binaries_dir QT_HOST_BINS) +- find_program(QMLPLUGINDUMP_PROGRAM NAMES qmlplugindump HINTS ${qt_binaries_dir}) +-elseif (QT_MAJOR_VERSION EQUAL "6") +- find_package(Qt6 COMPONENTS QmlTools REQUIRED) +- get_target_property(QMLPLUGINDUMP_PROGRAM Qt6::qmlplugindump LOCATION) +-endif() +- +-if(NOT QMLPLUGINDUMP_PROGRAM) +- message(WARNING "Could not find qmlplugindump. It is necessary to look up qml module dependencies.") +-endif() ++option (ECM_DISABLE_QMLPLUGINDUMP "Do not use qmlplugindump which may segfault in some sandboxed environments" OFF) + +-execute_process(COMMAND "${QMLPLUGINDUMP_PROGRAM}" "@MODULE_NAME@" "@VERSION@" ERROR_VARIABLE ERRORS_OUTPUT OUTPUT_VARIABLE DISREGARD_VARIABLE RESULT_VARIABLE ExitCode TIMEOUT 30) +- +-if(ExitCode EQUAL 0) ++if(ECM_DISABLE_QMLPLUGINDUMP) ++ message(NOTICE "@GENMODULE@: qmlplugindump disabled - assuming dependency is available as >= @VERSION@.") + set(@GENMODULE@_FOUND TRUE) +- set(@GENMODULE@_VERSION "${PACKAGE_FIND_VERSION}") ++ set(@GENMODULE@_VERSION @VERSION@) + else() +- message(STATUS "qmlplugindump failed for @MODULE_NAME@.") +- set(@GENMODULE@_FOUND FALSE) ++ ++ if (QT_MAJOR_VERSION EQUAL "5") ++ include("${ECM_MODULE_DIR}/ECMQueryQmake.cmake") ++ query_qmake(qt_binaries_dir QT_HOST_BINS) ++ find_program(QMLPLUGINDUMP_PROGRAM NAMES qmlplugindump HINTS ${qt_binaries_dir}) ++ elseif (QT_MAJOR_VERSION EQUAL "6") ++ find_package(Qt6 COMPONENTS QmlTools REQUIRED) ++ get_target_property(QMLPLUGINDUMP_PROGRAM Qt6::qmlplugindump LOCATION) ++ endif() ++ ++ if(NOT QMLPLUGINDUMP_PROGRAM) ++ message(WARNING "Could not find qmlplugindump. It is necessary to look up qml module dependencies.") ++ endif() ++ ++ execute_process(COMMAND "${QMLPLUGINDUMP_PROGRAM}" "@MODULE_NAME@" "@VERSION@" ERROR_VARIABLE ERRORS_OUTPUT OUTPUT_VARIABLE DISREGARD_VARIABLE RESULT_VARIABLE ExitCode TIMEOUT 30) ++ ++ if(ExitCode EQUAL 0) ++ set(@GENMODULE@_FOUND TRUE) ++ set(@GENMODULE@_VERSION "${PACKAGE_FIND_VERSION}") ++ else() ++ message(STATUS "qmlplugindump failed for @MODULE_NAME@.") ++ set(@GENMODULE@_FOUND FALSE) ++ endif() + endif() + + find_package_handle_standard_args(@GENMODULE@ +-- +2.34.1 + |