# Copyright 1999-2016 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Id$ EAPI=6 inherit autotools fdo-mime flag-o-matic gnome2-utils qmake-utils systemd user DESCRIPTION="A Fast, Easy and Free BitTorrent client" HOMEPAGE="http://www.transmissionbt.com/" SRC_URI="http://download.transmissionbt.com/${PN}/files/${P}.tar.xz" # web/LICENSE is always GPL-2 whereas COPYING allows either GPL-2 or GPL-3 for the rest # transmission in licenses/ is for mentioning OpenSSL linking exception # MIT is in several libtransmission/ headers LICENSE="|| ( GPL-2 GPL-3 Transmission-OpenSSL-exception ) GPL-2 MIT" SLOT=0 IUSE="ayatana gtk libressl lightweight systemd qt4 qt5 xfs" KEYWORDS="~amd64 ~arm ~mips ~ppc ~ppc64 ~x86 ~x86-fbsd ~amd64-linux" RDEPEND=">=dev-libs/libevent-2.0.10:= !libressl? ( dev-libs/openssl:0= ) libressl? ( dev-libs/libressl ) net-libs/libnatpmp:= >=net-libs/miniupnpc-1.7:= >=net-misc/curl-7.16.3:=[ssl] sys-libs/zlib:= gtk? ( >=dev-libs/dbus-glib-0.100:= >=dev-libs/glib-2.32:2= >=x11-libs/gtk+-3.4:3= ayatana? ( >=dev-libs/libappindicator-0.4.90:3= ) ) systemd? ( >=sys-apps/systemd-209:= ) qt4? ( dev-qt/qtcore:4 dev-qt/qtgui:4 dev-qt/qtdbus:4 ) qt5? ( dev-qt/qtcore:5 dev-qt/qtdbus:5 dev-qt/qtgui:5 dev-qt/qtnetwork:5 dev-qt/qtwidgets:5 )" DEPEND="${RDEPEND} >=dev-libs/glib-2.32 dev-util/intltool sys-devel/gettext virtual/os-headers virtual/pkgconfig qt5? ( dev-qt/linguist-tools:5 ) xfs? ( sys-fs/xfsprogs )" REQUIRED_USE="ayatana? ( gtk ) ?? ( qt4 qt5 )" DOCS="AUTHORS NEWS qt/README.txt" PATCHES=( "${FILESDIR}"/libsystemd.patch ) src_prepare() { sed -i -e '/CFLAGS/s:-ggdb3::' configure.ac || die # Trick to avoid automagic dependency use ayatana || { sed -i -e '/^LIBAPPINDICATOR_MINIMUM/s:=.*:=9999:' configure.ac || die; } # http://trac.transmissionbt.com/ticket/4324 sed -i -e 's|noinst\(_PROGRAMS = $(TESTS)\)|check\1|' libtransmission/Makefile.am || die # Prevent m4_copy error when running aclocal # m4_copy: won't overwrite defined macro: glib_DEFUN rm m4/glib-gettext.m4 || die default eautoreconf } src_configure() { export ac_cv_header_xfs_xfs_h=$(usex xfs) # https://bugs.gentoo.org/577528 append-cppflags -D_LARGEFILE64_SOURCE=1 econf \ --enable-external-natpmp \ $(use_enable lightweight) \ $(use_with systemd systemd-daemon) \ $(use_with gtk) if use qt4 || use qt5; then pushd qt >/dev/null || die use qt4 && eqmake4 qtr.pro use qt5 && eqmake5 qtr.pro popd >/dev/null || die fi } src_compile() { emake if use qt4 || use qt5; then local qt_bindir use qt4 && qt_bindir=$(qt4_get_bindir) use qt5 && qt_bindir=$(qt5_get_bindir) emake -C qt "${qt_bindir}"/lrelease qt/translations/*.ts || die fi } src_install() { default rm "${ED}"/usr/share/transmission/web/LICENSE || die newinitd "${FILESDIR}"/transmission-daemon.initd.10 transmission-daemon newconfd "${FILESDIR}"/transmission-daemon.confd.4 transmission-daemon systemd_dounit daemon/transmission-daemon.service systemd_install_serviced "${FILESDIR}"/transmission-daemon.service.conf if use qt4 || use qt5; then pushd qt >/dev/null || die emake INSTALL_ROOT="${ED}"/usr install domenu transmission-qt.desktop local res for res in 16 22 24 32 48 64 72 96 128 192 256; do doicon -s ${res} icons/hicolor/${res}x${res}/transmission-qt.png done doicon -s scalable icons/hicolor/scalable/transmission-qt.svg use qt4 && insinto /usr/share/qt4/translations use qt5 && insinto /usr/share/qt5/translations doins translations/*.qm popd >/dev/null || die fi } pkg_preinst() { gnome2_icon_savelist } pkg_postinst() { fdo-mime_desktop_database_update gnome2_icon_cache_update enewgroup transmission enewuser transmission -1 -1 /var/lib/transmission transmission if [[ ! -e "${ROOT%/}"/var/lib/transmission ]]; then mkdir -p "${ROOT%/}"/var/lib/transmission chown transmission:transmission "${ROOT%/}"/var/lib/transmission fi elog "If you use transmission-daemon, please, set 'rpc-username' and" elog "'rpc-password' (in plain text, transmission-daemon will hash it on" elog "start) in settings.json file located at /var/lib/transmission/config or" elog "any other appropriate config directory." elog elog "Since µTP is enabled by default, transmission needs large kernel buffers for" elog "the UDP socket. You can append following lines into /etc/sysctl.conf:" elog " net.core.rmem_max = 4194304" elog " net.core.wmem_max = 1048576" elog "and run sysctl -p" } pkg_postrm() { fdo-mime_desktop_database_update gnome2_icon_cache_update }