From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <gentoo-commits+bounces-1428651-garchives=archives.gentoo.org@lists.gentoo.org>
Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (2048 bits))
	(No client certificate requested)
	by finch.gentoo.org (Postfix) with ESMTPS id 1A874158094
	for <garchives@archives.gentoo.org>; Thu, 18 Aug 2022 07:06:33 +0000 (UTC)
Received: from pigeon.gentoo.org (localhost [127.0.0.1])
	by pigeon.gentoo.org (Postfix) with SMTP id 4D7DFE08A8;
	Thu, 18 Aug 2022 07:06:31 +0000 (UTC)
Received: from smtp.gentoo.org (smtp.gentoo.org [IPv6:2001:470:ea4a:1:5054:ff:fec7:86e4])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits))
	(No client certificate requested)
	by pigeon.gentoo.org (Postfix) with ESMTPS id 3137BE08A2
	for <gentoo-commits@lists.gentoo.org>; Thu, 18 Aug 2022 07:06:31 +0000 (UTC)
Received: from oystercatcher.gentoo.org (unknown [IPv6:2a01:4f8:202:4333:225:90ff:fed9:fc84])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits))
	(No client certificate requested)
	by smtp.gentoo.org (Postfix) with ESMTPS id B4C8B3416D0
	for <gentoo-commits@lists.gentoo.org>; Thu, 18 Aug 2022 07:06:29 +0000 (UTC)
Received: from localhost.localdomain (localhost [IPv6:::1])
	by oystercatcher.gentoo.org (Postfix) with ESMTP id 5A1AA58D
	for <gentoo-commits@lists.gentoo.org>; Thu, 18 Aug 2022 07:06:27 +0000 (UTC)
From: "Joonas Niilola" <juippis@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Content-Transfer-Encoding: 8bit
Content-type: text/plain; charset=UTF-8
Reply-To: gentoo-dev@lists.gentoo.org, "Joonas Niilola" <juippis@gentoo.org>
Message-ID: <1660806378.90a3d5fff1c032b3b2de6133c6eb9c7711daccb9.juippis@gentoo>
Subject: [gentoo-commits] repo/gentoo:master commit in: net-im/bitlbee/files/, net-im/bitlbee/
X-VCS-Repository: repo/gentoo
X-VCS-Files: net-im/bitlbee/bitlbee-3.6-r3.ebuild net-im/bitlbee/files/bitlbee-3.6-system-json-parser.patch
X-VCS-Directories: net-im/bitlbee/files/ net-im/bitlbee/
X-VCS-Committer: juippis
X-VCS-Committer-Name: Joonas Niilola
X-VCS-Revision: 90a3d5fff1c032b3b2de6133c6eb9c7711daccb9
X-VCS-Branch: master
Date: Thu, 18 Aug 2022 07:06:27 +0000 (UTC)
Precedence: bulk
List-Post: <mailto:gentoo-commits@lists.gentoo.org>
List-Help: <mailto:gentoo-commits+help@lists.gentoo.org>
List-Unsubscribe: <mailto:gentoo-commits+unsubscribe@lists.gentoo.org>
List-Subscribe: <mailto:gentoo-commits+subscribe@lists.gentoo.org>
List-Id: Gentoo Linux mail <gentoo-commits.gentoo.org>
X-BeenThere: gentoo-commits@lists.gentoo.org
X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply
X-Archives-Salt: 089d30d0-fc94-4876-ae46-9baa405c03d7
X-Archives-Hash: 71e5d43073805ad08c58e10dc2b3ab48

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
+