net-im/heisenbridge: update OpenRC service

* Use supervise-daemon instead of s-s-d

* Log to syslog

* Allow to pass additional command-line options

Signed-off-by: Anna (cybertailor) Vyalkova <cyber+gentoo@sysrq.in>
This commit is contained in:
Anna (cybertailor) Vyalkova
2025-04-20 13:41:42 +05:00
parent 08b411e749
commit 0cce4c0135
3 changed files with 120 additions and 0 deletions

View File

@@ -0,0 +1,24 @@
# Homeserver
# Must be set
HOMESERVER="https://example.com"
# Path to the registration file
# Default: /var/lib/heisenbridge/registration.yaml
#REGISTRATION="/var/lib/heisenbridge/registration.yaml"
# Listen address
# Default: 127.0.0.1
#LISTEN_ADDRESS="127.0.0.1"
# Listen port
# Default: 9898
#LISTEN_PORT=9898
# Owner
# Generally should be the admin of the home server
# For example: @user:home.server
# Default: not set
#OWNER="@user:example.com"
# Additional command-line options for Heisenbridge
#HEISENBRIDGE_OPTS=""

View File

@@ -0,0 +1,30 @@
#!/sbin/openrc-run
# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
#
# shellcheck shell=sh
description="Bouncer-style Matrix IRC bridge"
supervisor="supervise-daemon"
command="/usr/bin/python"
command_args="-m heisenbridge \
-c ${REGISTRATION:-/var/lib/heisenbridge/registration.yaml} \
${LISTEN_ADDRESS+-l ${LISTEN_ADDRESS}} \
${LISTEN_PORT+-p ${LISTEN_PORT}} \
${OWNER+-o ${OWNER}} \
-u heisenbridge -g heisenbridge \
${HEISENBRIDGE_OPTS} ${HOMESERVER}"
pidfile="/run/${RC_SVCNAME}.pid"
output_logger="logger -p daemon.info -t heisenbridge --"
error_logger="logger -p daemon.err -t heisenbridge --"
depend() {
use dns logger
need net
}
start_pre() {
checkpath -d -m 0755 -o heisenbridge:heisenbridge /var/lib/heisenbridge
}

View File

@@ -0,0 +1,66 @@
# Copyright 2022-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DISTUTILS_USE_PEP517=setuptools
PYTHON_COMPAT=( python3_{11..13} )
inherit distutils-r1 systemd
DESCRIPTION="Bouncer-style Matrix IRC bridge"
HOMEPAGE="https://github.com/hifi/heisenbridge"
SRC_URI="https://github.com/hifi/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.gh.tar.gz"
LICENSE="MIT"
SLOT="0"
KEYWORDS="~amd64"
RDEPEND="
acct-user/heisenbridge
<dev-python/aiohttp-4[${PYTHON_USEDEP}]
dev-python/async-timeout[${PYTHON_USEDEP}]
dev-python/irc[${PYTHON_USEDEP}]
>=dev-python/mautrix-0.20.5[${PYTHON_USEDEP}]
dev-python/python-socks[${PYTHON_USEDEP}]
dev-python/ruamel-yaml[${PYTHON_USEDEP}]
"
PATCHES=(
"${FILESDIR}/heisenbridge-1.14.1-qanotice.patch"
)
distutils_enable_tests pytest
src_prepare() {
distutils-r1_src_prepare
echo ${PV} > ${PN}/version.txt || die
}
src_install() {
distutils-r1_src_install
newinitd "${FILESDIR}"/heisenbridge.initd-r1 ${PN}
newconfd "${FILESDIR}"/heisenbridge.confd-r1 ${PN}
systemd_dounit "${FILESDIR}"/${PN}.service
}
pkg_postinst() {
[[ -f "${EPREFIX}"/var/lib/${PN}/registration.yaml ]] && return 0
einfo
elog "Before you can use ${PN}, you have to configure it correctly."
elog "The configuration file is located at /etc/conf.d/${PN}"
elog
elog "Then, you must generate the registration file using the following command:"
elog "* If you are using Synapse:"
elog "\t${PN} -c /var/lib/${PN}/registration.yaml --generate https://example.com"
elog "* If you are using Dendrite, Conduit or others:"
elog "\t${PN} -c /var/lib/${PN}/registration.yaml --generate-compat https://example.com"
elog
elog "Notice the URL at the end, replace it with your homeserver's URL."
elog "Then, you must register the bridge with your homeserver."
elog "Refer to your homeserver's documentation for instructions."
elog "The registration file is located at /var/lib/${PN}/registration.yaml"
elog "Finally, you may start the ${PN} daemon."
einfo
}