1 # Maintainer: Johannes Löthberg <johannes@kyriasis.com>
2 # Maintainer: Alexander Epaneshnikov <alex19ep@archlinux.org>
3 # Contributor: Ivan Shapovalov <intelfx@intelfx.name>
6 _tag=63f0f5adc2db81d22309f82d4910d8a6daa3e201
9 pkgdesc="Matrix reference homeserver"
10 url="https://github.com/matrix-org/synapse"
13 depends=('libwebp' 'python-ijson' 'python-jsonschema' 'python-twisted'
14 'python-pyopenssl' 'python-yaml' 'python-pyasn1' 'python-pynacl'
15 'python-bcrypt' 'python-immutabledict'
16 'python-pillow' 'python-pysaml2'
17 'python-systemd' 'python-unpaddedbase64' 'python-canonicaljson'
18 'python-signedjson' 'python-pymacaroons'
19 'python-service-identity' 'python-msgpack'
20 'python-phonenumbers' 'python-prometheus_client'
21 'python-attrs' 'python-netaddr' 'python-sortedcontainers'
22 'python-treq' 'python-idna' 'python-jinja' 'python-matrix-common'
23 'python-bleach' 'python-typing_extensions' 'systemd')
24 makedepends=(git python-build python-installer python-wheel python-poetry-core python-setuptools-rust)
25 checkdepends=('python-pip' 'python-authlib' 'python-pyjwt' 'python-lxml' 'python-parameterized'
26 'python-txredisapi' 'python-hiredis' 'postgresql' 'python-pyicu')
27 optdepends=('perl: sync_room_to_group.pl'
28 'python-psycopg2: PostgreSQL support'
29 'python-lxml: URL previewing'
30 'python-psutil: metrics'
32 'python-txredisapi: redis'
34 'python-pyicu: Improve user search for international display names')
35 source=("$pkgname::git+https://github.com/matrix-org/synapse.git#tag=$_tag?signed"
36 'generic_worker.yaml.example'
39 'synapse-worker@.service'
40 'sysusers-synapse.conf'
41 'tmpfiles-synapse.conf'
42 'override-hardened.conf')
44 'f67334856609997eac26939d77cfc520e78e98d3755543ab730d83a0f362a35e'
45 '74af0bc2f57e5ced1a44f2438922d420cbb7defedae784cac02ef125f276a2ed'
46 '408527271e1250beb20531f140b91201ed464e42f7eb3f47f02967a2ac23a661'
47 'c9657c201ad89985c8c915bfa0ea7517a412071736b4d9545d8f6474fddc44e2'
48 'aadfdd78fe73e6eb325ee4299b8db8b97bfa2f4e7df953aa8477f442598a7ec5'
49 '65588c8c64dfb84cab831cd8d028a295d753cf7322dd63053e8488466047b45f'
50 'd8e6b2a43a8a7d8f09c643f32e789a7ffeeb2d20bb07ee88ddc6923e1ab3b0e6')
51 backup=('etc/synapse/log_config.yaml')
52 install=synapse.install
53 validpgpkeys=('02450A9EDDFEE3E0C730B786A7E4A57880C3A4A9'
54 '053191DFF4670330465227F7A542E4ED1B0FAC09'
55 '283F86EA415D64E7D98E085BD5804497C6468FC1'
56 '58C4E75BC67C92169A7FDD11FBCE0ACE0732186F'
57 '9323BC4F687435CA8D0F03CB922F57ACB93AABF9'
58 '93B2970FB2FD8855AD6E0229CB2B33F7C23D44C6'
59 'D79D3CA0B61429A8A760525A903ECE108A39DEDD'
60 'F124520CEEE062448FE1C8442D2EFA2F32FBE047')
64 # allow any poetry-core to be used
65 sed 's/poetry-core>=1.0.0,<=1.5.0/poetry-core>=1.0.0/' -i pyproject.toml
70 python -m build --wheel --no-isolation
75 local python_version=$(python -c 'import sys; print("".join(map(str, sys.version_info[:2])))')
76 python -m venv --system-site-packages test-env
77 test-env/bin/python -m installer dist/*.whl
78 pushd build/lib.linux-$CARCH-cpython-${python_version}
80 PYTHONPATH="$PWD" PATH="../../test-env/bin:$PATH" ../../test-env/bin/python -m twisted.trial -j$(nproc) tests
81 rm -r tests _trial_temp
87 python -m installer --destdir="$pkgdir" dist/*.whl
89 install -vdm755 -o 198 -g 198 "$pkgdir"/etc/synapse
90 install -vDm644 contrib/systemd/log_config.yaml "$pkgdir"/etc/synapse/log_config.yaml
91 install -vDm644 "$srcdir"/generic_worker.yaml.example "$pkgdir"/etc/synapse/workers/generic_worker.yaml.example
93 install -vDm644 "$srcdir/override-hardened.conf" -t "$pkgdir/usr/lib/systemd/system/synapse.service.d"
94 install -vDm644 "$srcdir/override-hardened.conf" -t "$pkgdir/usr/lib/systemd/system/synapse-worker@.service.d"
95 install -vDm644 -t "$pkgdir"/usr/lib/systemd/system/ "$srcdir"/synapse{,-worker@}.service "$srcdir"/synapse.target
96 install -vDm644 "$srcdir"/sysusers-synapse.conf "$pkgdir"/usr/lib/sysusers.d/synapse.conf
97 install -vDm644 "$srcdir"/tmpfiles-synapse.conf "$pkgdir"/usr/lib/tmpfiles.d/synapse.conf