From 130dc998a483dad52f3bb6de991cb900de1c40db Mon Sep 17 00:00:00 2001 From: Tim Harder Date: Sun, 4 Sep 2016 23:15:05 -0400 Subject: net-im/bitlbee: revision bump for various updates * 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 | 158 +++++++++++++++++++++ net-im/bitlbee/bitlbee-9999.ebuild | 121 ++++++---------- .../bitlbee/files/bitlbee-3.4.2-systemd-user.patch | 10 ++ 3 files changed, 213 insertions(+), 76 deletions(-) create mode 100644 net-im/bitlbee/bitlbee-3.4.2-r1.ebuild create mode 100644 net-im/bitlbee/files/bitlbee-3.4.2-systemd-user.patch (limited to 'net-im/bitlbee') 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 index 000000000000..8e5f4f76bcc4 --- /dev/null +++ b/net-im/bitlbee/bitlbee-3.4.2-r1.ebuild @@ -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 +} diff --git a/net-im/bitlbee/bitlbee-9999.ebuild b/net-im/bitlbee/bitlbee-9999.ebuild index 8a75327d32b0..ae09048b8d8f 100644 --- a/net-im/bitlbee/bitlbee-9999.ebuild +++ b/net-im/bitlbee/bitlbee-9999.ebuild @@ -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 index 000000000000..07d58f4f3318 --- /dev/null +++ b/net-im/bitlbee/files/bitlbee-3.4.2-systemd-user.patch @@ -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 -- cgit v1.2.3-65-gdbad