# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 CRATES=" " RUST_MIN_VER="9999" inherit cargo desktop rust systemd xdg DESCRIPTION="A clipboard history manager with server and multiple clients (Ringboard)" HOMEPAGE="https://github.com/SUPERCILEX/clipboard-history" SRC_URI=" https://github.com/SUPERCILEX/clipboard-history/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz https://github.com/sandikata/ROKO__/releases/download/current/${PN}-${PV}-crates.tar.xz " LICENSE="Apache-2.0" # Dependent crate licenses LICENSE+=" Apache-2.0 BSD-2 BSD Boost-1.0 CC0-1.0 ISC MIT MPL-2.0 UoI-NCSA Unicode-3.0 ZLIB " SLOT="0" KEYWORDS="~amd64 ~x86" IUSE="egui ratatui cli systemd X wayland" # Runtime dependencies needed by the compiled binaries RDEPEND=" systemd? ( >=sys-apps/systemd-232 ) X? ( x11-libs/libxcb ) wayland? ( dev-libs/wayland ) " DEPEND="${RDEPEND}" # Build dependencies for underlying C libraries (like wayland-client/server C libs) BDEPEND=" virtual/pkgconfig " RESTRICT="test mirror" src_configure() { local myfeatures=( $(usev systemd) ) if use egui; then myfeatures+=( $(usev wayland) $(usex X x11 '') ) fi local mycargoconf=( --exclude "clipboard-history-client-sdk" $(usex cli "" "--exclude clipboard-history") $(usex egui "" "--exclude clipboard-history-egui") $(usex ratatui "" "--exclude clipboard-history-tui") $(usex X "" "--exclude clipboard-history-x11") $(usex wayland "" "--exclude clipboard-history-wayland") ) cargo_src_configure --no-default-features --workspace "${mycargoconf[@]}" } src_install() { # TODO Try this # cargo_src_install # TODO to avoid this {{{ # Install all compiled binaries to /usr/bin/ dobin ${WORKDIR}/${PN}-${PV}/target/release/ringboard-server use egui && { dobin ${WORKDIR}/${PN}-${PV}/target/release/ringboard-egui domenu ${FILESDIR}/ringboard-egui.desktop newicon ${WORKDIR}/${PN}-${PV}/logo.jpeg ringboard.jpeg } use ratatui && dobin ${WORKDIR}/${PN}-${PV}/target/release/ringboard-tui use cli && dobin ${WORKDIR}/${PN}-${PV}/target/release/ringboard use X && dobin ${WORKDIR}/${PN}-${PV}/target/release/ringboard-x11 use wayland && dobin ${WORKDIR}/${PN}-${PV}/target/release/ringboard-wayland # }}} # Install systemd user services if use systemd; then # NOTE: You must ensure the .service files are present in the source repo # or copied into the ebuild's FILESDIR. The `systemd` eclass handles # installation to the correct system paths (/usr/lib/systemd/user/). systemd_douserunit ${FILESDIR}/ringboard-server.service use X && systemd_douserunit ${FILESDIR}/ringboard-x11.service use wayland && systemd_douserunit ${FILESDIR}/ringboard-wayland.service fi }