summaryrefslogtreecommitdiff
path: root/x11-misc/copyq/copyq-7.1.0-r1.ebuild
diff options
context:
space:
mode:
Diffstat (limited to 'x11-misc/copyq/copyq-7.1.0-r1.ebuild')
-rw-r--r--x11-misc/copyq/copyq-7.1.0-r1.ebuild138
1 files changed, 138 insertions, 0 deletions
diff --git a/x11-misc/copyq/copyq-7.1.0-r1.ebuild b/x11-misc/copyq/copyq-7.1.0-r1.ebuild
new file mode 100644
index 000000000000..85ed9029ecee
--- /dev/null
+++ b/x11-misc/copyq/copyq-7.1.0-r1.ebuild
@@ -0,0 +1,138 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake optfeature virtualx xdg
+
+DESCRIPTION="Clipboard manager with advanced features"
+HOMEPAGE="
+ https://hluk.github.io/CopyQ/
+ https://github.com/hluk/CopyQ/
+"
+SRC_URI="https://github.com/hluk/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+S="${WORKDIR}/CopyQ-${PV}"
+
+LICENSE="GPL-3+"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86 ~amd64-linux ~x86-linux"
+
+IUSE="notification qt6 test"
+# Native notifications are not supported with Qt 6
+# (Bumpers please check when this requirement is lifted).
+# src/notifications.cmake
+REQUIRED_USE="notification? ( !qt6 )"
+
+RDEPEND="
+ dev-libs/wayland
+ x11-libs/libX11
+ x11-libs/libXtst
+ !qt6? (
+ dev-qt/qtcore:5
+ dev-qt/qtdeclarative:5
+ dev-qt/qtgui:5
+ dev-qt/qtnetwork:5
+ dev-qt/qtsvg:5
+ dev-qt/qtwayland:5
+ dev-qt/qtwidgets:5
+ dev-qt/qtx11extras:5
+ notification? ( kde-frameworks/knotifications:5 )
+ test? ( dev-qt/qttest:5 )
+ )
+ qt6? (
+ dev-qt/qtbase:6=[X,gui,network,widgets,xml(+)]
+ dev-qt/qtdeclarative:6
+ dev-qt/qtsvg:6
+ dev-qt/qtwayland:6
+ )
+"
+DEPEND="${RDEPEND}
+ x11-base/xorg-proto
+"
+BDEPEND="
+ kde-frameworks/extra-cmake-modules:0
+ !qt6? (
+ dev-qt/linguist-tools:5
+ dev-qt/qtwaylandscanner:5
+ )
+ qt6? (
+ dev-qt/qttools:6[linguist]
+ dev-util/wayland-scanner
+ )
+ test? (
+ app-crypt/gnupg
+ x11-wm/openbox
+ )
+"
+
+PATCHES=(
+ "${FILESDIR}/copyq-7.1.0-fix-qt-6.6.0-build.patch"
+ "${FILESDIR}/copyq-7.1.0-fix-test-failure-due-to-invalid-regex.patch"
+ "${FILESDIR}/copyq-7.1.0-fix-gpg-2.1-support.patch"
+ "${FILESDIR}/copyq-7.1.0-support-plugin-dir-envvar-r1.patch"
+)
+
+src_prepare() {
+ cmake_src_prepare
+
+ # FAIL! : Tests::actionDialogAccept() 'NO_ERRORS(m_test->runClient((Args() << "keys" << actionDialogId << "ENTER" << clipboardBrowserId), toByteArray("")))' returned FALSE.
+ # FAIL! : Tests::actionDialogSelection() 'NO_ERRORS(m_test->runClient((Args() << "keys" << actionDialogId << "ENTER" << clipboardBrowserId), toByteArray("")))' returned FALSE.
+ # FAIL! : Tests::actionDialogSelectionInputOutput() 'NO_ERRORS(m_test->runClient((Args() << "keys" << actionDialogId << "ENTER" << clipboardBrowserId), toByteArray("")))' returned FALSE.
+ # FAIL! : Tests::commandShowAt() 'NO_ERRORS(m_test->waitOnOutput((Args() << "visible"), toByteArray("true\n")))' returned FALSE.
+ sed -Ei -e '
+ /Tests::(actionDialog(Accept|Selection(|InputOutput))|commandShow)/,/}/ {
+ /^\s*\{/ a \
+ #if QT_VERSION < QT_VERSION_CHECK(6,0,0)\
+ SKIP("Broken on qt5");\
+ #endif
+ }' src/tests/tests.cpp || die
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DPLUGIN_INSTALL_PREFIX="${EPREFIX}/usr/$(get_libdir)/${PN}/plugins"
+ -DWITH_NATIVE_NOTIFICATIONS=$(usex notification)
+ -DWITH_QT6=$(usex qt6)
+ -DWITH_TESTS=$(usex test)
+ )
+
+ cmake_src_configure
+}
+
+my_src_test() {
+ # Don't rerun tests and more logs
+ local -x COPYQ_TESTS_RERUN_FAILED=0
+ local -x COPYQ_LOG_LEVEL=DEBUG
+
+ # Skip test that require network
+ local -x COPYQ_TESTS_NO_NETWORK=1
+
+ # Less noise from trying the wayland plugin
+ local -x QT_QPA_PLATFORM=xcb
+
+ # Make sure copyq doesn't use system installed plugins which may be incompatible.
+ local -x COPYQ_PLUGIN_DIR="${BUILD_DIR}/plugins"
+
+ # In case the users current system confuses the notification integration
+ unset KDE_FULL_SESSION XDG_CURRENT_DESKTOP
+
+ mkdir "${HOME}"/.gnupg || die
+
+ ebegin "Starting Openbox"
+ openbox & # upstream uses Openbox and it doesn't fail like IceWM
+ sleep 5
+ eend 0
+
+ "${BUILD_DIR}"/copyq tests
+
+ return $?
+}
+
+src_test() {
+ virtx my_src_test
+}
+
+pkg_postinst() {
+ xdg_pkg_postinst
+ optfeature "encryption support" app-crypt/gnupg
+}