| # 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 |
| } |