diff options
Diffstat (limited to 'net-p2p/qbittorrent/qbittorrent-4.6.0.ebuild')
-rw-r--r-- | net-p2p/qbittorrent/qbittorrent-4.6.0.ebuild | 132 |
1 files changed, 132 insertions, 0 deletions
diff --git a/net-p2p/qbittorrent/qbittorrent-4.6.0.ebuild b/net-p2p/qbittorrent/qbittorrent-4.6.0.ebuild new file mode 100644 index 000000000000..750b323a6148 --- /dev/null +++ b/net-p2p/qbittorrent/qbittorrent-4.6.0.ebuild @@ -0,0 +1,132 @@ +# Copyright 2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit cmake edo multibuild systemd xdg + +DESCRIPTION="BitTorrent client in C++ and Qt" +HOMEPAGE="https://www.qbittorrent.org" + +if [[ ${PV} == *9999 ]]; then + EGIT_REPO_URI="https://github.com/qbittorrent/qBittorrent.git" + inherit git-r3 +else + SRC_URI="https://github.com/qbittorrent/qBittorrent/archive/release-${PV}.tar.gz -> ${P}.tar.gz" + KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86" + S="${WORKDIR}"/qBittorrent-release-${PV} +fi + +LICENSE="GPL-2" +SLOT="0" +IUSE="+dbus +gui qt6 systemd test webui" +RESTRICT="!test? ( test )" +REQUIRED_USE="|| ( gui webui )" + +RDEPEND=" + >=dev-libs/openssl-1.1.1:= + >=net-libs/libtorrent-rasterbar-1.2.18:= + >=sys-libs/zlib-1.2.11 + virtual/libiconv + acct-group/qbittorrent + acct-user/qbittorrent + gui? ( + dev-libs/geoip + !qt6? ( + dev-qt/qtgui:5 + dev-qt/qtsvg:5 + dev-qt/qtwidgets:5 + dev-qt/qtcore:5 + dev-qt/qtnetwork:5[ssl] + dev-qt/qtsql:5[sqlite] + dev-qt/qtxml:5 + dbus? ( dev-qt/qtdbus:5 ) + ) + qt6? ( + dev-qt/qtbase:6[dbus?,gui,widgets] + dev-qt/qtsvg:6 + dev-qt/qtbase:6[network,ssl,sql,sqlite,xml(+)] + ) + )" +DEPEND=" + ${RDEPEND} + dev-libs/boost + test? ( + !qt6? ( dev-qt/qttest:5 ) + qt6? ( dev-qt/qtbase:6[test] ) + )" +BDEPEND=" + !qt6? ( dev-qt/linguist-tools:5 ) + qt6? ( dev-qt/qttools:6[linguist] ) + virtual/pkgconfig" + +DOCS=( AUTHORS Changelog CONTRIBUTING.md README.md ) + +src_prepare() { + MULTIBUILD_VARIANTS=() + use gui && MULTIBUILD_VARIANTS+=( gui ) + use webui && MULTIBUILD_VARIANTS+=( nogui ) + + cmake_src_prepare +} + +src_configure() { + my_src_configure() { + local mycmakeargs=( + # musl lacks execinfo.h + -DSTACKTRACE=$(usex !elibc_musl) + # More verbose build logs are preferable for bug reports + -DVERBOSE_CONFIGURE=ON + -DQT6=$(usex qt6) + -DWEBUI=$(usex webui) + -DTESTING=$(usex test) + ) + + if [[ ${MULTIBUILD_VARIANT} == "gui" ]]; then + # We do this in multibuild, see bug #839531 for why. + # Fedora has to do the same thing. + mycmakeargs+=( + -DGUI=ON + -DDBUS=$(usex dbus) + -DSYSTEMD=OFF + ) + else + mycmakeargs+=( + -DGUI=OFF + -DDBUS=OFF + ) + + use systemd && mycmakeargs+=( + # The systemd service calls qbittorrent-nox, which is only + # installed when GUI=OFF. + -DSYSTEMD=ON + -DSYSTEMD_SERVICES_INSTALL_DIR="$(systemd_get_systemunitdir)" + ) + fi + + cmake_src_configure + } + + multibuild_foreach_variant my_src_configure +} + +src_compile() { + multibuild_foreach_variant cmake_src_compile +} + +src_test() { + my_src_test() { + cd "${BUILD_DIR}"/test || die + edo ctest . + } + + multibuild_foreach_variant my_src_test +} + +src_install() { + multibuild_foreach_variant cmake_src_install + einstalldocs + + newconfd "${FILESDIR}/${PN}.confd" "${PN}" + newinitd "${FILESDIR}/${PN}.initd" "${PN}" +} |