mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-11-07 05:57:07 -08:00
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>
This commit is contained in:
@@ -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}
|
||||
}
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user