diff --git a/net-im/heisenbridge/Manifest b/net-im/heisenbridge/Manifest new file mode 100644 index 0000000000..16459fcc0f --- /dev/null +++ b/net-im/heisenbridge/Manifest @@ -0,0 +1 @@ +DIST heisenbridge-1.14.1.gh.tar.gz 66220 BLAKE2B 79e63dcdc7e29a581b3a19b3c72775ced659092888e73f2a4322470bd1f2dd59ea2991ad054dd2c1a8b2e261a7988793e16d29744fb34a9fc2664bfe93f0f42a SHA512 f952261000ad6fd1b5793d1c18b952d13faea5afa2ac7798a22768e5ef31b620d9cc4cb73617c3e124dc1087a98785ba274747e9f85718533d5ba20dd7af5de2 diff --git a/net-im/heisenbridge/files/heisenbridge-1.14.1-qanotice.patch b/net-im/heisenbridge/files/heisenbridge-1.14.1-qanotice.patch new file mode 100644 index 0000000000..41e90360cc --- /dev/null +++ b/net-im/heisenbridge/files/heisenbridge-1.14.1-qanotice.patch @@ -0,0 +1,13 @@ +diff --git a/setup.cfg b/setup.cfg +index cf5b701..7911ec6 100644 +--- a/setup.cfg ++++ b/setup.cfg +@@ -7,7 +7,7 @@ url = https://github.com/hifi/heisenbridge + author = Toni Spets (hifi) + author_email = toni.spets@iki.fi + license = MIT license +-license_file = LICENSE ++license_files = LICENSE + + [options] + packages = diff --git a/net-im/heisenbridge/files/heisenbridge.confd b/net-im/heisenbridge/files/heisenbridge.confd new file mode 100644 index 0000000000..cb4d34e0f5 --- /dev/null +++ b/net-im/heisenbridge/files/heisenbridge.confd @@ -0,0 +1,21 @@ +# 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 + +# Homeserver +# Must be set +HOMESERVER=https://example.com \ No newline at end of file diff --git a/net-im/heisenbridge/files/heisenbridge.initd b/net-im/heisenbridge/files/heisenbridge.initd new file mode 100644 index 0000000000..b5af350910 --- /dev/null +++ b/net-im/heisenbridge/files/heisenbridge.initd @@ -0,0 +1,24 @@ +#!/sbin/openrc-run +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +name="heisenbridge daemon" +description="a bouncer-style Matrix IRC bridge" + +pidfile="/run/${RC_SVCNAME}.pid" +command="/usr/bin/python" +command_args="-m heisenbridge -c ${REGISTRATION} -l ${LISTEN_ADDRESS} -p ${LISTEN_PORT} ${HOMESERVER}" +command_background=true +command_user="heisenbridge:heisenbridge" + +output_log="/var/log/heisenbridge.log" +error_log="/var/log/heisenbridge.log" + +depend() { + need net +} + +start_pre() { + checkpath -d -m 0755 -o "$command_user" /var/lib/heisenbridge + checkpath -f -m 0644 -o "$command_user" "$output_log" +} diff --git a/net-im/heisenbridge/files/heisenbridge.service b/net-im/heisenbridge/files/heisenbridge.service new file mode 100644 index 0000000000..b140c3d3ad --- /dev/null +++ b/net-im/heisenbridge/files/heisenbridge.service @@ -0,0 +1,12 @@ +[Unit] +Description=a bouncer-style Matrix IRC bridge +After=network.target + +[Service] +User=heisenbridge +Group=heisenbridge +Restart=always +ExecStart=/usr/bin/python -m heisenbridge -c ${REGISTRATION} -r -l ${LISTEN_ADDRESS} -p ${LISTEN_PORT} ${HOMESERVER} + +[Install] +WantedBy=multi-user.target \ No newline at end of file diff --git a/net-im/heisenbridge/heisenbridge-1.14.1.ebuild b/net-im/heisenbridge/heisenbridge-1.14.1.ebuild new file mode 100644 index 0000000000..cc4a9a2a08 --- /dev/null +++ b/net-im/heisenbridge/heisenbridge-1.14.1.ebuild @@ -0,0 +1,60 @@ +# Copyright 2022-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{9..10} ) + +inherit distutils-r1 systemd + +DESCRIPTION="A bouncer-style Matrix IRC bridge" +HOMEPAGE="https://github.com/hifi/heisenbridge/" +SRC_URI="https://github.com/hifi/heisenbridge/archive/v${PV}.tar.gz -> ${P}.gh.tar.gz" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~amd64" +IUSE="test" +RESTRICT="!test? ( test )" + +RDEPEND=" + acct-user/${PN} + dev-python/irc[${PYTHON_USEDEP}] + dev-python/mautrix[${PYTHON_USEDEP}] + dev-python/python-socks[${PYTHON_USEDEP}] + dev-python/ruamel-yaml[${PYTHON_USEDEP}] +" +DEPEND="${RDEPEND}" + +PATCHES=( + "${FILESDIR}/heisenbridge-1.14.1-qanotice.patch" +) + +distutils_enable_tests pytest + +src_install() { + distutils-r1_src_install + + newinitd "${FILESDIR}/heisenbridge.initd" "${PN}" + newconfd "${FILESDIR}/heisenbridge.confd" "${PN}" + systemd_dounit "${FILESDIR}/${PN}.service" +} + +pkg_postinst() { + einfo + elog "Before you can use ${PN}, you must configure it correctly" + elog "The configuration file is located at /etc/conf.d/${PN}" + elog "Then, you must generate the registration file using the following command" + elog "If you are using synapse:" + elog "/usr/bin/python -m ${PN} -c /var/lib/${PN}/registration.yaml --generate https://example.com" + elog "If you are using Dendrite, Conduit or others:" + elog "/usr/bin/python -m ${PN} -c /var/lib/${PN}/registration.yaml --generate-compat https://example.com" + 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 + +} diff --git a/net-im/heisenbridge/metadata.xml b/net-im/heisenbridge/metadata.xml new file mode 100644 index 0000000000..ca25c60428 --- /dev/null +++ b/net-im/heisenbridge/metadata.xml @@ -0,0 +1,18 @@ + + + + + julien@jroy.ca + Julien Roy + + + + Toni Spets + toni.spets@iki.fi + + https://github.com/hifi/heisenbridge/releases + https://github.com/hifi/heisenbridge/issues + hifi/heisenbridge + heisenbridge + +