net-im/bitlbee: revision bump for various updates
authorTim Harder <radhermit@gentoo.org>
Mon, 5 Sep 2016 03:15:05 +0000 (23:15 -0400)
committerTim Harder <radhermit@gentoo.org>
Mon, 5 Sep 2016 03:21:29 +0000 (23:21 -0400)
* update to EAPI 6
* fix systemd unit to use bitlbee user (bug #472406)
* update SSL handling, make it non-optional (bug #582658 by Alex Xu)
* drop skype support, use libpurple and x11-plugins/pidgin-skypeweb
  instead (https://wiki.bitlbee.org/HowtoSkypeWeb)

net-im/bitlbee/bitlbee-3.4.2-r1.ebuild [new file with mode: 0644]
net-im/bitlbee/bitlbee-9999.ebuild
net-im/bitlbee/files/bitlbee-3.4.2-systemd-user.patch [new file with mode: 0644]

diff --git a/net-im/bitlbee/bitlbee-3.4.2-r1.ebuild b/net-im/bitlbee/bitlbee-3.4.2-r1.ebuild
new file mode 100644 (file)
index 0000000..8e5f4f7
--- /dev/null
@@ -0,0 +1,158 @@
+# 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
+}
index 8a75327d32b0151bec7fbfc947e812cdcb16591a..ae09048b8d8f350f6578a43a64dd8a88b62d8c3d 100644 (file)
@@ -2,10 +2,9 @@
 # Distributed under the terms of the GNU General Public License v2
 # $Id$
 
-EAPI=5
-PYTHON_COMPAT=( python2_7 )
+EAPI=6
 
-inherit eutils multilib user python-single-r1 systemd
+inherit user systemd
 
 if [[ ${PV} == "9999" ]]; then
        EGIT_REPO_URI="https://github.com/bitlbee/bitlbee.git"
@@ -20,8 +19,14 @@ 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 libressl"
+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
@@ -31,122 +36,91 @@ COMMON_DEPEND="
        gnutls? ( net-libs/gnutls:= )
        !gnutls? (
                nss? ( dev-libs/nss )
-               !nss? ( ssl? ( !libressl? ( dev-libs/openssl:0= ) libressl? ( dev-libs/libressl:= ) ) )
+               !nss? (
+                       libressl? ( dev-libs/libressl:= )
+                       !libressl? ( 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
+       [[ ${PV} != "9999" ]] && eapply "${FILESDIR}"/${P}-systemd-user.patch
+       eapply_user
 }
 
 src_configure() {
+       local myconf
+
        # 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
+       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="${myconf} --otr=plugin"
+               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"
+               myconf+=( --otr=0 )
        fi
 
        # setup ssl use flags
        if use gnutls ; then
-               myconf="${myconf} --ssl=gnutls"
+               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."
+               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="${myconf} --events=libevent"
+               myconf+=( --events=libevent )
        else
-               myconf="${myconf} --events=glib"
+               myconf+=( --events=glib )
        fi
 
-       # NOTE: bitlbee's configure script is not an autotool creation,
-       # so that is why we don't use econf.
+       # not autotools-based
        ./configure \
-               --prefix="${EPREFIX}/usr" \
-               --datadir="${EPREFIX}/usr/share/bitlbee" \
-               --etcdir="${EPREFIX}/etc/bitlbee" \
-               --plugindir="${EPREFIX}/usr/$(get_libdir)/bitlbee" \
-               --systemdsystemunitdir=$(systemd_get_unitdir) \
-               --doc=1 --strip=0 ${myconf} || die "econf failed"
+               --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 "sed failed"
+               Makefile.settings || die
 }
 
 src_install() {
-       emake install install-etc install-doc install-dev install-systemd DESTDIR="${D}"
+       emake DESTDIR="${D}" install install-etc install-doc install-dev install-systemd
 
        keepdir /var/lib/bitlbee
        fperms 700 /var/lib/bitlbee
@@ -154,11 +128,6 @@ src_install() {
 
        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
diff --git a/net-im/bitlbee/files/bitlbee-3.4.2-systemd-user.patch b/net-im/bitlbee/files/bitlbee-3.4.2-systemd-user.patch
new file mode 100644 (file)
index 0000000..07d58f4
--- /dev/null
@@ -0,0 +1,10 @@
+--- a/init/bitlbee.service.in
++++ b/init/bitlbee.service.in
+@@ -4,6 +4,7 @@
+ [Service]
+ ExecStart=@sbindir@bitlbee -F -n
++User=bitlbee
+ [Install]
+ WantedBy=multi-user.target