From 6e62cd07e12fdeaea9a9cf1f608cc8c613a5ff2e Mon Sep 17 00:00:00 2001 From: Bjoern Franke Date: Wed, 9 Feb 2022 15:01:54 +0100 Subject: initial commit --- .SRCINFO | 27 +++++++++++++++++++++++++++ PKGBUILD | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ heisenbridge.install | 7 +++++++ heisenbridge.service | 12 ++++++++++++ heisenbridge.sysusers | 1 + heisenbridge.tmpfiles | 2 ++ 6 files changed, 99 insertions(+) create mode 100644 .SRCINFO create mode 100644 PKGBUILD create mode 100644 heisenbridge.install create mode 100644 heisenbridge.service create mode 100644 heisenbridge.sysusers create mode 100644 heisenbridge.tmpfiles diff --git a/.SRCINFO b/.SRCINFO new file mode 100644 index 0000000..9096de5 --- /dev/null +++ b/.SRCINFO @@ -0,0 +1,27 @@ +pkgbase = heisenbridge + pkgdesc = a bouncer-style Matrix IRC bridge + pkgver = 1.10.1 + pkgrel = 1 + url = https://github.com/hifi/heisenbridge + install = heisenbridge.install + arch = any + license = MIT + makedepends = python-setuptools + makedepends = python-pytest-runner + depends = python + depends = python-irc + depends = python-ruamel-yaml + depends = python-aiohttp-socks + depends = python-mautrix>=0.14.0 + depends = python-mautrix<0.15 + backup = etc/heisenbridge/registration.yaml + source = heisenbridge-1.10.1.tar.gz::https://github.com/hifi/heisenbridge/archive/v1.10.1.tar.gz + source = heisenbridge.service + source = heisenbridge.sysusers + source = heisenbridge.tmpfiles + sha256sums = 94e262001ec71626c0bc0e3d711be4bc7ef024dc9fe4451012296ab1033e3b1c + sha256sums = 67487b221bff329952f5c95186c4ea794c7e7a3e25e6d213075fd306c68cfa95 + sha256sums = b3bc4328ead7afd186d5a191fabc347543c0fad17dc01047a4cf0532d999f255 + sha256sums = 24bd23e4427aaf635a91b170c07abe8a6b1c62cbad47e50a161c12807641d351 + +pkgname = heisenbridge diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 0000000..ff789e5 --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,50 @@ +# Maintainer: Bjoern Franke +pkgname=heisenbridge +pkgver=1.10.1 +pkgrel=1 +pkgdesc="a bouncer-style Matrix IRC bridge" +url="https://github.com/hifi/heisenbridge" +depends=('python' 'python-irc' 'python-ruamel-yaml' 'python-aiohttp-socks' + 'python-mautrix>=0.14.0' 'python-mautrix<0.15') +makedepends=('python-setuptools' 'python-pytest-runner') +license=('MIT') +arch=('any') +source=("${pkgname}-${pkgver}.tar.gz::${url}/archive/v${pkgver}.tar.gz" "${pkgname}.service" "${pkgname}.sysusers" "${pkgname}.tmpfiles") +sha256sums=('94e262001ec71626c0bc0e3d711be4bc7ef024dc9fe4451012296ab1033e3b1c' + '67487b221bff329952f5c95186c4ea794c7e7a3e25e6d213075fd306c68cfa95' + 'b3bc4328ead7afd186d5a191fabc347543c0fad17dc01047a4cf0532d999f255' + '24bd23e4427aaf635a91b170c07abe8a6b1c62cbad47e50a161c12807641d351') +backup=("etc/${pkgname}/registration.yaml") +install="${pkgname}.install" +_dirname="${pkgname}-${pkgver}" + + +prepare() { + cd "${srcdir}/${_dirname}" + # create an empty registration file so that permissions get written properly from the get go + # this way secret keys are never world readable +# touch registration.yaml +} + +build() { + cd "${srcdir}/${_dirname}" + python setup.py build +} + +package() { + cd "${srcdir}/${_dirname}" + + _shared_dir="/usr/share/${pkgname}" + + python setup.py install --optimize=1 --skip-build --root="${pkgdir}/" --prefix="/usr" --install-data="${_shared_dir}" + + # it's a semi-common failure for python packages to install tests in the main dir + # which would make them conflict eachother + rm -rf "${pkgdir}$(python -c 'import site; print(site.getsitepackages()[0])')/tests" + + install -Dvm 644 "${srcdir}/${pkgname}.service" "${pkgdir}/usr/lib/systemd/system/${pkgname}.service" + install -Dvm 644 "${srcdir}/${pkgname}.sysusers" "${pkgdir}/usr/lib/sysusers.d/${pkgname}.conf" + install -Dvm 644 "${srcdir}/${pkgname}.tmpfiles" "${pkgdir}/usr/lib/tmpfiles.d/${pkgname}.conf" + + install -Dvm 640 registration.yaml "${pkgdir}/etc/${pkgname}/registration.yaml" +} diff --git a/heisenbridge.install b/heisenbridge.install new file mode 100644 index 0000000..10184df --- /dev/null +++ b/heisenbridge.install @@ -0,0 +1,7 @@ +post_install() { + cat <<- 'EOF' + You may adjust the homeserver via + # systemctl edit heisenbridge.service + if you don't use localhost:8008 as your homeserver URL + EOF +} diff --git a/heisenbridge.service b/heisenbridge.service new file mode 100644 index 0000000..e40dcf9 --- /dev/null +++ b/heisenbridge.service @@ -0,0 +1,12 @@ +[Unit] +Description=a bouncer-style Matrix IRC bridge + +[Service] +ExecStart=python -m heisenbridge -c /etc/heisenbridge/registration.yaml +Restart=on-failure +User=heisenbridge +WorkingDirectory=~ + + +[Install] +WantedBy=multi-user.target diff --git a/heisenbridge.sysusers b/heisenbridge.sysusers new file mode 100644 index 0000000..47fc57c --- /dev/null +++ b/heisenbridge.sysusers @@ -0,0 +1 @@ +u heisenbridge - "Matrix IRC bridge" /var/lib/heisenbridge diff --git a/heisenbridge.tmpfiles b/heisenbridge.tmpfiles new file mode 100644 index 0000000..94db647 --- /dev/null +++ b/heisenbridge.tmpfiles @@ -0,0 +1,2 @@ +z /etc/heisenbridge/* 640 heisenbridge heisenbridge +d /var/lib/heisenbridge/ 700 heisenbridge heisenbridge -- cgit v1.2.3-70-g09d2