# Copyright 1999-2016 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Id$ EAPI=5 PYTHON_COMPAT=( python2_7 ) inherit eutils multilib user python-single-r1 systemd if [[ ${PV} == "9999" ]]; then EGIT_REPO_URI="https://github.com/bitlbee/bitlbee.git" inherit git-r3 else SRC_URI="http://get.bitlbee.org/src/${P}.tar.gz" KEYWORDS="~amd64 ~ppc ~ppc64 ~x86 ~x86-fbsd" fi DESCRIPTION="irc to IM gateway that support multiple IM protocols" HOMEPAGE="http://www.bitlbee.org/" LICENSE="GPL-2" SLOT="0" IUSE="debug gnutls ipv6 +xmpp libevent msn nss +oscar otr +plugins purple selinux skype ssl test twitter +yahoo xinetd" COMMON_DEPEND=" >=dev-libs/glib-2.16 purple? ( net-im/pidgin ) libevent? ( dev-libs/libevent ) otr? ( >=net-libs/libotr-4 ) gnutls? ( net-libs/gnutls ) !gnutls? ( nss? ( dev-libs/nss ) !nss? ( ssl? ( dev-libs/openssl:0 ) ) ) " DEPEND="${COMMON_DEPEND} dev-lang/python virtual/pkgconfig selinux? ( sec-policy/selinux-bitlbee ) test? ( dev-libs/check )" RDEPEND="${COMMON_DEPEND} virtual/logger skype? ( dev-python/skype4py[${PYTHON_USEDEP}] net-im/skype ) xinetd? ( sys-apps/xinetd )" REQUIRED_USE="|| ( purple xmpp msn oscar yahoo ) msn? ( || ( gnutls nss ssl ) ) xmpp? ( !nss )" pkg_setup() { if use xmpp && ! use gnutls && ! use ssl ; then einfo elog "You have enabled support for Jabber but do not have SSL" elog "support enabled. This *will* prevent bitlbee from being" elog "able to connect to SSL enabled Jabber servers. If you need to" elog "connect to Jabber over SSL, enable ONE of the following use" elog "flags: gnutls or ssl" einfo fi use skype && python-single-r1_pkg_setup enewgroup bitlbee enewuser bitlbee -1 -1 /var/lib/bitlbee bitlbee } src_prepare() { sed -i \ -e "s@/usr/local/sbin/bitlbee@/usr/sbin/bitlbee@" \ -e "s/nobody/bitlbee/" \ -e "s/}/ disable = yes\n}/" \ doc/bitlbee.xinetd || die "sed failed in xinetd" sed -i \ -e "s@mozilla-nss@nss@g" \ configure || die "sed failed in configure" use skype && python_fix_shebang protocols/skype/skyped.py [[ ${PV} != "9999" ]] && epatch "${FILESDIR}"/${PN}-3.2.1-configure.patch epatch_user } src_configure() { # setup plugins, protocol, ipv6 and debug use xmpp && myconf="${myconf} --jabber=1" for flag in debug ipv6 msn oscar plugins purple skype twitter yahoo ; do if use ${flag} ; then myconf="${myconf} --${flag}=1" else myconf="${myconf} --${flag}=0" fi done # set otr if use otr && use plugins ; then myconf="${myconf} --otr=plugin" else if use otr ; then ewarn "OTR support has been disabled automatically because it" ewarn "requires the plugins USE flag." fi myconf="${myconf} --otr=0" fi # setup ssl use flags if use gnutls ; then myconf="${myconf} --ssl=gnutls" einfo "Using gnutls for SSL support" elif use ssl ; then myconf="${myconf} --ssl=openssl" einfo "Using openssl for SSL support" elif use nss ; then myconf="${myconf} --ssl=nss" einfo "Using nss for SSL support" else myconf="${myconf} --ssl=bogus" einfo "You will not have any encryption support enabled." fi # set event handler if use libevent ; then myconf="${myconf} --events=libevent" else myconf="${myconf} --events=glib" fi # NOTE: bitlbee's configure script is not an autotool creation, # so that is why we don't use econf. ./configure \ --prefix=/usr --datadir=/usr/share/bitlbee \ --etcdir=/etc/bitlbee --plugindir=/usr/$(get_libdir)/bitlbee \ --systemdsystemunitdir=$(systemd_get_unitdir) \ --doc=1 --strip=0 ${myconf} || die "econf failed" sed -i \ -e "/^EFLAGS/s:=:&${LDFLAGS} :" \ Makefile.settings || die "sed failed" } src_install() { emake install install-etc install-doc install-dev install-systemd DESTDIR="${D}" keepdir /var/lib/bitlbee fperms 700 /var/lib/bitlbee fowners bitlbee:bitlbee /var/lib/bitlbee dodoc doc/{AUTHORS,CHANGES,CREDITS,FAQ,README} if use skype ; then newdoc protocols/skype/NEWS NEWS-skype newdoc protocols/skype/README README-skype fi if use xinetd ; then insinto /etc/xinetd.d newins doc/bitlbee.xinetd bitlbee fi newinitd "${FILESDIR}"/bitlbee.initd-r1 bitlbee newconfd "${FILESDIR}"/bitlbee.confd-r1 bitlbee exeinto /usr/share/bitlbee doexe utils/{convert_purple.py,bitlbee-ctl.pl} } pkg_postinst() { chown -R bitlbee:bitlbee "${ROOT}"/var/lib/bitlbee [[ -d "${ROOT}"/var/run/bitlbee ]] && chown -R bitlbee:bitlbee "${ROOT}"/var/run/bitlbee }