commit:     90a3d5fff1c032b3b2de6133c6eb9c7711daccb9
Author:     Petr Vaněk <arkamar <AT> atlas <DOT> cz>
AuthorDate: Mon Aug  1 14:10:01 2022 +0000
Commit:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
CommitDate: Thu Aug 18 07:06:18 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=90a3d5ff

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 <AT> atlas.cz>
Signed-off-by: Joonas Niilola <juippis <AT> gentoo.org>

 net-im/bitlbee/bitlbee-3.6-r3.ebuild               | 157 +++++++++++++++++++++
 .../files/bitlbee-3.6-system-json-parser.patch     |  82 +++++++++++
 2 files changed, 239 insertions(+)

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
+

Reply via email to