commit: 4748ed3ebd1451e4a04ca236e1acd4ba34e0be13 Author: Julien Roy <julien <AT> jroy <DOT> ca> AuthorDate: Sun Jan 22 03:00:58 2023 +0000 Commit: Julien Roy <julien <AT> jroy <DOT> ca> CommitDate: Sun Jan 22 03:00:58 2023 +0000 URL: https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=4748ed3e
net-im/heisenbridge: new package, add 1.14.1 Signed-off-by: Julien Roy <julien <AT> jroy.ca> net-im/heisenbridge/Manifest | 1 + .../files/heisenbridge-1.14.1-qanotice.patch | 13 +++++ net-im/heisenbridge/files/heisenbridge.confd | 21 ++++++++ net-im/heisenbridge/files/heisenbridge.initd | 24 +++++++++ net-im/heisenbridge/files/heisenbridge.service | 12 +++++ net-im/heisenbridge/heisenbridge-1.14.1.ebuild | 60 ++++++++++++++++++++++ net-im/heisenbridge/metadata.xml | 18 +++++++ 7 files changed, 149 insertions(+) diff --git a/net-im/heisenbridge/Manifest b/net-im/heisenbridge/Manifest new file mode 100644 index 000000000..16459fcc0 --- /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 000000000..41e90360c --- /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.sp...@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 000000000..cb4d34e0f --- /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 000000000..b5af35091 --- /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 000000000..b140c3d3a --- /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 000000000..cc4a9a2a0 --- /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 000000000..ca25c6042 --- /dev/null +++ b/net-im/heisenbridge/metadata.xml @@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>jul...@jroy.ca</email> + <description>Julien Roy</description> + </maintainer> + <upstream> + <maintainer> + <name>Toni Spets</name> + <email>toni.sp...@iki.fi</email> + </maintainer> + <changelog>https://github.com/hifi/heisenbridge/releases</changelog> + <bugs-to>https://github.com/hifi/heisenbridge/issues</bugs-to> + <remote-id type="github">hifi/heisenbridge</remote-id> + <remote-id type="pypi">heisenbridge</remote-id> + </upstream> +</pkgmetadata>