diff options
author | Petr Vaněk <arkamar@atlas.cz> | 2022-08-01 16:10:01 +0200 |
---|---|---|
committer | Joonas Niilola <juippis@gentoo.org> | 2022-08-18 10:06:18 +0300 |
commit | 90a3d5fff1c032b3b2de6133c6eb9c7711daccb9 (patch) | |
tree | 6fa7ddff682f6c1beba255505e4eac8ccb9893cf /net-im/bitlbee | |
parent | dev-libs/json-parser: new package, add 1.1.0_p20211208 (diff) | |
download | gentoo-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/bitlbee')
-rw-r--r-- | net-im/bitlbee/bitlbee-3.6-r3.ebuild | 157 | ||||
-rw-r--r-- | net-im/bitlbee/files/bitlbee-3.6-system-json-parser.patch | 82 |
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 + |