public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] repo/gentoo:master commit in: net-im/biboumi/files/, net-im/biboumi/
@ 2022-02-26 20:47 Florian Schmaus
  0 siblings, 0 replies; only message in thread
From: Florian Schmaus @ 2022-02-26 20:47 UTC (permalink / raw
  To: gentoo-commits

commit:     fa0328d9ed0a32193aaf0df9ae19ea33d4317856
Author:     Florian Schmaus <flow <AT> gentoo <DOT> org>
AuthorDate: Sat Feb 26 20:46:43 2022 +0000
Commit:     Florian Schmaus <flow <AT> gentoo <DOT> org>
CommitDate: Sat Feb 26 20:46:43 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=fa0328d9

net-im/biboumi: add 9.0-r3 with fix for newer libexpat

Signed-off-by: Florian Schmaus <flow <AT> gentoo.org>

 net-im/biboumi/biboumi-9.0-r3.ebuild               | 114 +++++++++++++++++++++
 .../biboumi-9.0-fix-namespace-separator.patch      |  57 +++++++++++
 2 files changed, 171 insertions(+)

diff --git a/net-im/biboumi/biboumi-9.0-r3.ebuild b/net-im/biboumi/biboumi-9.0-r3.ebuild
new file mode 100644
index 000000000000..90caef48feda
--- /dev/null
+++ b/net-im/biboumi/biboumi-9.0-r3.ebuild
@@ -0,0 +1,114 @@
+# Copyright 2020-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake
+
+MY_PV="${PV/_/-}"
+
+DESCRIPTION="XMPP gateway to IRC"
+HOMEPAGE="https://biboumi.louiz.org/"
+SRC_URI="https://git.louiz.org/biboumi/snapshot/biboumi-${MY_PV}.tar.xz"
+
+LICENSE="ZLIB"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="+idn postgres +sqlite +ssl systemd udns"
+
+DEPEND="
+	dev-libs/expat
+	virtual/libiconv
+	sys-apps/util-linux
+	sqlite? ( dev-db/sqlite:3 )
+	postgres? ( dev-db/postgresql:* )
+	idn? ( net-dns/libidn:= )
+	udns? ( net-libs/udns )
+	ssl? ( dev-libs/botan:2= )
+	!ssl? ( dev-libs/libgcrypt )
+	systemd? ( sys-apps/systemd:= )
+"
+BDEPEND="dev-python/sphinx"
+RDEPEND="
+	${DEPEND}
+	acct-user/biboumi
+"
+
+S="${WORKDIR}/${PN}-${MY_PV}"
+
+DOCS=( README.rst CHANGELOG.rst doc/user.rst )
+
+PATCHES=(
+	"${FILESDIR}/${PN}-9.0-fix-namespace-separator.patch"
+)
+
+src_configure() {
+	local mycmakeargs=(
+		-DSERVICE_USER="${PN}"
+		-DSERVICE_GROUP="${PN}"
+	)
+
+	# Account for biboumi's atypical configuration system.
+	if use systemd; then
+		mycmakeargs+=(-DWITH_SYSTEMD=yes)
+	else
+		mycmakeargs+=(-DWITHOUT_SYSTEMD=yes)
+	fi
+
+	if use idn; then
+		mycmakeargs+=(-DWITH_LIBIDN=yes)
+	else
+		mycmakeargs+=(-DWITHOUT_LIBIDN=yes)
+	fi
+
+	if use ssl; then
+		mycmakeargs+=(-DWITH_BOTAN=yes)
+	else
+		mycmakeargs+=(-DWITHOUT_BOTAN=yes)
+	fi
+
+	if use udns; then
+		mycmakeargs+=(-DWITH_UDNS=yes)
+	else
+		mycmakeargs+=(-DWITHOUT_UDNS=yes)
+	fi
+
+	if use sqlite; then
+		mycmakeargs+=(-DWITH_SQLITE3=yes)
+	else
+		mycmakeargs+=(-DWITHOUT_SQLITE3=yes)
+	fi
+
+	if use postgres; then
+		mycmakeargs+=(-DWITH_POSTGRESQL=yes)
+	else
+		mycmakeargs+=(-DWITHOUT_POSTGRESQL=yes)
+	fi
+
+	cmake_src_configure
+}
+
+src_compile() {
+	cmake_src_compile
+
+	cmake_build man
+}
+
+src_install() {
+	cmake_src_install
+
+	newinitd "${FILESDIR}/${PN}.initd" "${PN}"
+
+	insinto /etc/logrotate.d
+	newins "${FILESDIR}/${PN}.logrotate" "${PN}"
+
+	diropts --owner=biboumi --group=biboumi --mode=750
+	if use sqlite; then
+		keepdir /var/lib/biboumi
+	fi
+	keepdir /var/log/biboumi
+
+	insinto /etc/biboumi
+	insopts --group=biboumi --mode=640
+	newins conf/biboumi.cfg biboumi.cfg.example
+}

diff --git a/net-im/biboumi/files/biboumi-9.0-fix-namespace-separator.patch b/net-im/biboumi/files/biboumi-9.0-fix-namespace-separator.patch
new file mode 100644
index 000000000000..507382f66f67
--- /dev/null
+++ b/net-im/biboumi/files/biboumi-9.0-fix-namespace-separator.patch
@@ -0,0 +1,57 @@
+From 380abf66e930f5c4ead591014f31624d80a3151c Mon Sep 17 00:00:00 2001
+From: Florian Schmaus <flo@geekplace.eu>
+Date: Sat, 26 Feb 2022 21:41:34 +0100
+Subject: [PATCH] Fix bad namespace separator
+
+Fixes: https://lab.louiz.org/louiz/biboumi/-/issues/3465
+---
+ src/xmpp/xmpp_parser.cpp | 2 +-
+ src/xmpp/xmpp_parser.hpp | 4 ++--
+ src/xmpp/xmpp_stanza.cpp | 2 +-
+ 3 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/src/xmpp/xmpp_parser.cpp b/src/xmpp/xmpp_parser.cpp
+index 781fe4cd94b0..1f25fa6f982b 100644
+--- a/src/xmpp/xmpp_parser.cpp
++++ b/src/xmpp/xmpp_parser.cpp
+@@ -38,7 +38,7 @@ XmppParser::XmppParser():
+ void XmppParser::init_xml_parser()
+ {
+   // Create the expat parser
+-  this->parser = XML_ParserCreateNS("UTF-8", ':');
++  this->parser = XML_ParserCreateNS("UTF-8", '\1');
+   XML_SetUserData(this->parser, static_cast<void*>(this));
+ 
+   // Install Expat handlers
+diff --git a/src/xmpp/xmpp_parser.hpp b/src/xmpp/xmpp_parser.hpp
+index ec42f9a326e1..1e5e4e55a875 100644
+--- a/src/xmpp/xmpp_parser.hpp
++++ b/src/xmpp/xmpp_parser.hpp
+@@ -18,9 +18,9 @@
+  * stanza is reasonnably short.
+  *
+  * The element names generated by expat contain the namespace of the
+- * element, a colon (':') and then the actual name of the element.  To get
++ * element, a \1 separator and then the actual name of the element.  To get
+  * an element "x" with a namespace of "http://jabber.org/protocol/muc", you
+- * just look for an XmlNode named "http://jabber.org/protocol/muc:x"
++ * just look for an XmlNode named "http://jabber.org/protocol/muc\1x"
+  *
+  * TODO: enforce the size-limit for the stanza (limit the number of childs
+  * it can contain). For example forbid the parser going further than level
+diff --git a/src/xmpp/xmpp_stanza.cpp b/src/xmpp/xmpp_stanza.cpp
+index 435f33313b09..bd668cf2f28d 100644
+--- a/src/xmpp/xmpp_stanza.cpp
++++ b/src/xmpp/xmpp_stanza.cpp
+@@ -52,7 +52,7 @@ XmlNode::XmlNode(const std::string& name, XmlNode* parent):
+   parent(parent)
+ {
+   // split the namespace and the name
+-  auto n = name.rfind(':');
++  auto n = name.rfind('\1');
+   if (n == std::string::npos)
+     this->name = name;
+   else
+-- 
+2.34.1
+


^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2022-02-26 20:47 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-02-26 20:47 [gentoo-commits] repo/gentoo:master commit in: net-im/biboumi/files/, net-im/biboumi/ Florian Schmaus

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox