summaryrefslogtreecommitdiffstats
path: root/heisenbridge
diff options
context:
space:
mode:
Diffstat (limited to 'heisenbridge')
-rw-r--r--heisenbridge/.SRCINFO27
-rw-r--r--heisenbridge/PKGBUILD50
-rw-r--r--heisenbridge/heisenbridge.install7
-rw-r--r--heisenbridge/heisenbridge.service12
-rw-r--r--heisenbridge/heisenbridge.sysusers1
-rw-r--r--heisenbridge/heisenbridge.tmpfiles2
6 files changed, 99 insertions, 0 deletions
diff --git a/heisenbridge/.SRCINFO b/heisenbridge/.SRCINFO
new file mode 100644
index 0000000..43b1d63
--- /dev/null
+++ b/heisenbridge/.SRCINFO
@@ -0,0 +1,27 @@
1pkgbase = heisenbridge
2 pkgdesc = a bouncer-style Matrix IRC bridge
3 pkgver = 1.13.1
4 pkgrel = 1
5 url = https://github.com/hifi/heisenbridge
6 install = heisenbridge.install
7 arch = any
8 license = MIT
9 makedepends = python-setuptools
10 makedepends = python-pytest-runner
11 depends = python
12 depends = python-irc
13 depends = python-ruamel-yaml
14 depends = python-aiohttp-socks
15 depends = python-mautrix>=0.14.0
16 depends = python-mautrix<0.17
17 backup = etc/heisenbridge/registration.yaml
18 source = heisenbridge-1.13.1.tar.gz::https://github.com/hifi/heisenbridge/archive/v1.13.1.tar.gz
19 source = heisenbridge.service
20 source = heisenbridge.sysusers
21 source = heisenbridge.tmpfiles
22 sha256sums = 92e561db62eba63a31899d6f697eb292ca2273beaf195c13132dab5c4101873e
23 sha256sums = 67487b221bff329952f5c95186c4ea794c7e7a3e25e6d213075fd306c68cfa95
24 sha256sums = b3bc4328ead7afd186d5a191fabc347543c0fad17dc01047a4cf0532d999f255
25 sha256sums = 24bd23e4427aaf635a91b170c07abe8a6b1c62cbad47e50a161c12807641d351
26
27pkgname = heisenbridge
diff --git a/heisenbridge/PKGBUILD b/heisenbridge/PKGBUILD
new file mode 100644
index 0000000..c1bd9cf
--- /dev/null
+++ b/heisenbridge/PKGBUILD
@@ -0,0 +1,50 @@
1# Maintainer: Bjoern Franke <bjo+aur@schafweide.org>
2pkgname=heisenbridge
3pkgver=1.13.1
4pkgrel=1
5pkgdesc="a bouncer-style Matrix IRC bridge"
6url="https://github.com/hifi/heisenbridge"
7depends=('python' 'python-irc' 'python-ruamel-yaml' 'python-aiohttp-socks'
8 'python-mautrix>=0.14.0' 'python-mautrix<0.17')
9makedepends=('python-setuptools' 'python-pytest-runner')
10license=('MIT')
11arch=('any')
12source=("${pkgname}-${pkgver}.tar.gz::${url}/archive/v${pkgver}.tar.gz" "${pkgname}.service" "${pkgname}.sysusers" "${pkgname}.tmpfiles")
13sha256sums=('92e561db62eba63a31899d6f697eb292ca2273beaf195c13132dab5c4101873e'
14 '67487b221bff329952f5c95186c4ea794c7e7a3e25e6d213075fd306c68cfa95'
15 'b3bc4328ead7afd186d5a191fabc347543c0fad17dc01047a4cf0532d999f255'
16 '24bd23e4427aaf635a91b170c07abe8a6b1c62cbad47e50a161c12807641d351')
17backup=("etc/${pkgname}/registration.yaml")
18install="${pkgname}.install"
19_dirname="${pkgname}-${pkgver}"
20
21
22prepare() {
23 cd "${srcdir}/${_dirname}"
24 # create an empty registration file so that permissions get written properly from the get go
25 # this way secret keys are never world readable
26 touch registration.yaml
27}
28
29build() {
30 cd "${srcdir}/${_dirname}"
31 python setup.py build
32}
33
34package() {
35 cd "${srcdir}/${_dirname}"
36
37 _shared_dir="/usr/share/${pkgname}"
38
39 python setup.py install --optimize=1 --skip-build --root="${pkgdir}/" --prefix="/usr" --install-data="${_shared_dir}"
40
41 # it's a semi-common failure for python packages to install tests in the main dir
42 # which would make them conflict eachother
43 rm -rf "${pkgdir}$(python -c 'import site; print(site.getsitepackages()[0])')/tests"
44
45 install -Dvm 644 "${srcdir}/${pkgname}.service" "${pkgdir}/usr/lib/systemd/system/${pkgname}.service"
46 install -Dvm 644 "${srcdir}/${pkgname}.sysusers" "${pkgdir}/usr/lib/sysusers.d/${pkgname}.conf"
47 install -Dvm 644 "${srcdir}/${pkgname}.tmpfiles" "${pkgdir}/usr/lib/tmpfiles.d/${pkgname}.conf"
48
49 install -Dvm 640 registration.yaml "${pkgdir}/etc/${pkgname}/registration.yaml"
50}
diff --git a/heisenbridge/heisenbridge.install b/heisenbridge/heisenbridge.install
new file mode 100644
index 0000000..10184df
--- /dev/null
+++ b/heisenbridge/heisenbridge.install
@@ -0,0 +1,7 @@
1post_install() {
2 cat <<- 'EOF'
3 You may adjust the homeserver via
4 # systemctl edit heisenbridge.service
5 if you don't use localhost:8008 as your homeserver URL
6 EOF
7}
diff --git a/heisenbridge/heisenbridge.service b/heisenbridge/heisenbridge.service
new file mode 100644
index 0000000..e40dcf9
--- /dev/null
+++ b/heisenbridge/heisenbridge.service
@@ -0,0 +1,12 @@
1[Unit]
2Description=a bouncer-style Matrix IRC bridge
3
4[Service]
5ExecStart=python -m heisenbridge -c /etc/heisenbridge/registration.yaml
6Restart=on-failure
7User=heisenbridge
8WorkingDirectory=~
9
10
11[Install]
12WantedBy=multi-user.target
diff --git a/heisenbridge/heisenbridge.sysusers b/heisenbridge/heisenbridge.sysusers
new file mode 100644
index 0000000..47fc57c
--- /dev/null
+++ b/heisenbridge/heisenbridge.sysusers
@@ -0,0 +1 @@
u heisenbridge - "Matrix IRC bridge" /var/lib/heisenbridge
diff --git a/heisenbridge/heisenbridge.tmpfiles b/heisenbridge/heisenbridge.tmpfiles
new file mode 100644
index 0000000..94db647
--- /dev/null
+++ b/heisenbridge/heisenbridge.tmpfiles
@@ -0,0 +1,2 @@
1z /etc/heisenbridge/* 640 heisenbridge heisenbridge
2d /var/lib/heisenbridge/ 700 heisenbridge heisenbridge