summaryrefslogtreecommitdiff
path: root/net-im
diff options
context:
space:
mode:
authorPetr Vaněk <arkamar@atlas.cz>2022-08-01 16:10:01 +0200
committerJoonas Niilola <juippis@gentoo.org>2022-08-18 10:06:18 +0300
commit90a3d5fff1c032b3b2de6133c6eb9c7711daccb9 (patch)
tree6fa7ddff682f6c1beba255505e4eac8ccb9893cf /net-im
parentdev-libs/json-parser: new package, add 1.1.0_p20211208 (diff)
downloadgentoo-90a3d5fff1c032b3b2de6133c6eb9c7711daccb9.tar.gz
gentoo-90a3d5fff1c032b3b2de6133c6eb9c7711daccb9.tar.bz2
gentoo-90a3d5fff1c032b3b2de6133c6eb9c7711daccb9.zip
net-im/bitlbee: Use system json-parser
- Applied patch allows us to use system json-parser, it is based on upstream PR, see the link below - Dropped arm64, ppc, ppc64 and x86 keywords because newly introduced dev-libs/json-parser dependency has currently only ~amd64 keyword - EAPI 7 -> 8 Upstream-PR: https://github.com/bitlbee/bitlbee/pull/151 Bug: https://bugs.gentoo.org/861371 Signed-off-by: Petr Vaněk <arkamar@atlas.cz> Signed-off-by: Joonas Niilola <juippis@gentoo.org>
Diffstat (limited to 'net-im')
-rw-r--r--net-im/bitlbee/bitlbee-3.6-r3.ebuild157
-rw-r--r--net-im/bitlbee/files/bitlbee-3.6-system-json-parser.patch82
2 files changed, 239 insertions, 0 deletions
diff --git a/net-im/bitlbee/bitlbee-3.6-r3.ebuild b/net-im/bitlbee/bitlbee-3.6-r3.ebuild
new file mode 100644
index 000000000000..72d2a7207ba2
--- /dev/null
+++ b/net-im/bitlbee/bitlbee-3.6-r3.ebuild
@@ -0,0 +1,157 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{8..11} )
+
+inherit python-any-r1 systemd toolchain-funcs
+
+if [[ ${PV} == "9999" ]]; then
+ EGIT_REPO_URI="https://github.com/bitlbee/bitlbee.git"
+ inherit git-r3
+else
+ SRC_URI="https://get.bitlbee.org/src/${P}.tar.gz"
+ KEYWORDS="~amd64"
+fi
+
+DESCRIPTION="irc to IM gateway that support multiple IM protocols"
+HOMEPAGE="https://www.bitlbee.org/"
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE_PROTOCOLS="msn oscar purple twitter +xmpp"
+IUSE="debug +gnutls ipv6 libevent nss otr +plugins selinux test xinetd
+ ${IUSE_PROTOCOLS}"
+RESTRICT="!test? ( test )"
+
+REQUIRED_USE="
+ || ( purple xmpp msn oscar )
+ purple? ( plugins )
+ test? ( plugins )
+ xmpp? ( !nss )
+"
+
+COMMON_DEPEND="
+ acct-group/bitlbee
+ acct-user/bitlbee
+ dev-libs/glib:2
+ dev-libs/json-parser:=
+ purple? ( net-im/pidgin )
+ libevent? ( dev-libs/libevent:= )
+ otr? ( >=net-libs/libotr-4 )
+ gnutls? ( net-libs/gnutls:= )
+ !gnutls? (
+ nss? ( dev-libs/nss )
+ !nss? (
+ dev-libs/openssl:0=
+ )
+ )
+"
+DEPEND="${COMMON_DEPEND}
+ selinux? ( sec-policy/selinux-bitlbee )
+ test? ( dev-libs/check )
+"
+
+RDEPEND="${COMMON_DEPEND}
+ xinetd? ( sys-apps/xinetd )
+"
+
+BDEPEND="${PYTHON_DEPS}
+ virtual/pkgconfig
+"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-3.5-systemd-user.patch"
+ "${FILESDIR}/${PN}-3.5-libcheck.patch"
+ "${FILESDIR}/${PN}-3.5-libevent.patch"
+ "${FILESDIR}/${P}-disabled-plugins-use.patch"
+ "${FILESDIR}/${P}-system-json-parser.patch"
+)
+
+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 \
+ --libdir=/usr/$(get_libdir) \
+ --pcdir=/usr/$(get_libdir)/pkgconfig \
+ --plugindir=/usr/$(get_libdir)/bitlbee \
+ --externaljsonparser=1 \
+ --systemdsystemunitdir=$(systemd_get_systemunitdir) \
+ --doc=1 \
+ --strip=0 \
+ --verbose=1 \
+ "${myconf[@]}" || die
+
+ sed -i \
+ -e "/^EFLAGS/s:=:&${LDFLAGS} :" \
+ Makefile.settings || die
+}
+
+src_compile() {
+ emake CC="$(tc-getCC)" LD="$(tc-getLD)"
+}
+
+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-r2 bitlbee
+ newconfd "${FILESDIR}"/bitlbee.confd-r2 bitlbee
+
+ exeinto /usr/share/bitlbee
+ doexe utils/{convert_purple.py,bitlbee-ctl.pl}
+}
diff --git a/net-im/bitlbee/files/bitlbee-3.6-system-json-parser.patch b/net-im/bitlbee/files/bitlbee-3.6-system-json-parser.patch
new file mode 100644
index 000000000000..02d57e02d6d2
--- /dev/null
+++ b/net-im/bitlbee/files/bitlbee-3.6-system-json-parser.patch
@@ -0,0 +1,82 @@
+This is adapted patch from upstream PR 151. Original PR defines
+--external-json-parser which breaks configuration, see [1]. It was changed to
+--externaljsonparser and $external_json_parser to $externaljsonparser.
+
+[1] https://github.com/bitlbee/bitlbee/pull/151#issuecomment-1201181905
+
+Upstream-PR: https://github.com/bitlbee/bitlbee/pull/151
+
+diff --git a/configure b/configure
+index 4640c806..77b1213b 100755
+--- a/configure
++++ b/configure
+@@ -47,6 +47,7 @@ plugins=1
+ otr=0
+
+ events=glib
++externaljsonparser=auto
+ ssl=auto
+
+ pam=0
+@@ -148,6 +149,7 @@ Option Description Default
+ --events=... Event handler (glib, libevent) $events
+ --ssl=... SSL library to use (gnutls, nss, openssl, auto)
+ $ssl
++--externaljsonparser=0/1/auto Use External JSON parser $externaljsonparser
+
+
+ --target=... Cross compilation target same as host
+@@ -398,6 +400,20 @@ else
+ fi
+ echo 'EVENT_HANDLER=events_'$events'.o' >> Makefile.settings
+
++if [ "$externaljsonparser" = "auto" ]; then
++ if pkg-config --exists json-parser; then
++ externaljsonparser=1
++ else
++ externaljsonparser=0
++ fi
++fi
++echo "EXTERNAL_JSON_PARSER=$externaljsonparser" >> Makefile.settings
++if [ "$externaljsonparser" = "1" ]; then
++ echo "CFLAGS+=$(pkg-config --cflags json-parser)" >> Makefile.settings
++ echo "LDFLAGS_BITLBEE+=$(pkg-config --libs json-parser)" >> Makefile.settings
++fi
++
++
+ detect_gnutls()
+ {
+ if $PKG_CONFIG --exists gnutls; then
+@@ -979,6 +995,12 @@ else
+ echo ' systemd disabled.'
+ fi
+
++if [ "$externaljsonparser" = "1" ]; then
++ echo ' Using system JSON parser.'
++else
++ echo ' Using bundled JSON parser.'
++fi
++
+ echo ' Using event handler: '$events
+ echo ' Using SSL library: '$ssl
+ #echo ' Building with these storage backends: '$STORAGES
+diff --git a/lib/Makefile b/lib/Makefile
+index fc46aedc..ad95d9cb 100644
+--- a/lib/Makefile
++++ b/lib/Makefile
+@@ -12,7 +12,11 @@ _SRCDIR_ := $(_SRCDIR_)lib/
+ endif
+
+ # [SH] Program variables
+-objects = arc.o base64.o canohost.o $(EVENT_HANDLER) ftutil.o http_client.o ini.o json.o json_util.o md5.o misc.o oauth.o oauth2.o proxy.o sha1.o $(SSL_CLIENT) url.o xmltree.o ns_parse.o
++objects = arc.o base64.o canohost.o $(EVENT_HANDLER) ftutil.o http_client.o ini.o json_util.o md5.o misc.o oauth.o oauth2.o proxy.o sha1.o $(SSL_CLIENT) url.o xmltree.o ns_parse.o
++
++ifneq ($(EXTERNAL_JSON_PARSER),1)
++objects += json.o
++endif
+
+ LFLAGS += -r
+
+--
+2.35.1
+