blob: 8e5f4f76bcc471a5ec979a710f7d694d9ad1f1ec [file] [log] [blame]
# Copyright 1999-2016 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
EAPI=6
inherit user 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_PROTOCOLS="msn oscar purple twitter +xmpp yahoo"
IUSE="debug +gnutls ipv6 libevent libressl nss otr +plugins selinux test xinetd
${IUSE_PROTOCOLS}"
REQUIRED_USE="
|| ( purple xmpp msn oscar yahoo )
xmpp? ( !nss )
"
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? (
libressl? ( dev-libs/libressl:= )
!libressl? ( dev-libs/openssl:0= )
)
)
"
DEPEND="${COMMON_DEPEND}
virtual/pkgconfig
selinux? ( sec-policy/selinux-bitlbee )
test? ( dev-libs/check )"
RDEPEND="${COMMON_DEPEND}
virtual/logger
xinetd? ( sys-apps/xinetd )"
pkg_setup() {
enewgroup bitlbee
enewuser bitlbee -1 -1 /var/lib/bitlbee bitlbee
}
src_prepare() {
[[ ${PV} != "9999" ]] && eapply "${FILESDIR}"/${P}-systemd-user.patch
eapply_user
}
src_configure() {
local myconf
# setup plugins, protocol, ipv6 and debug
myconf+=( --jabber=$(usex xmpp 1 0) )
for flag in debug ipv6 plugins ${IUSE_PROTOCOLS/+xmpp/} ; do
myconf+=( --${flag}=$(usex ${flag} 1 0) )
done
# set otr
if use otr && use plugins ; then
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+=( --otr=0 )
fi
# setup ssl use flags
if use gnutls ; then
myconf+=( --ssl=gnutls )
einfo "Using gnutls for SSL support"
else
ewarn "Only gnutls is officially supported by upstream."
if use nss ; then
myconf+=( --ssl=nss )
einfo "Using nss for SSL support"
else
myconf+=( --ssl=openssl )
einfo "Using openssl for SSL support"
fi
fi
# set event handler
if use libevent ; then
myconf+=( --events=libevent )
else
myconf+=( --events=glib )
fi
# not autotools-based
./configure \
--prefix=/usr \
--datadir=/usr/share/bitlbee \
--etcdir=/etc/bitlbee \
--plugindir=/usr/$(get_libdir)/bitlbee \
--systemdsystemunitdir=$(systemd_get_systemunitdir) \
--doc=1 \
--strip=0 \
"${myconf[@]}" || die
sed -i \
-e "/^EFLAGS/s:=:&${LDFLAGS} :" \
Makefile.settings || die
}
src_install() {
emake DESTDIR="${D}" install install-etc install-doc install-dev install-systemd
keepdir /var/lib/bitlbee
fperms 700 /var/lib/bitlbee
fowners bitlbee:bitlbee /var/lib/bitlbee
dodoc doc/{AUTHORS,CHANGES,CREDITS,FAQ,README}
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
if [[ -z ${REPLACING_VERSIONS} ]]; then
einfo
elog "The bitlbee init script will now attempt to stop all processes owned by the"
elog "bitlbee user, including per-client forks."
elog
elog "Tell the init script not to touch anything besides the main bitlbee process"
elog "by changing the BITLBEE_STOP_ALL variable in"
elog " /etc/conf.d/bitlbee"
einfo
fi
}