archrelease: copy trunk to community-any
[ArchLinux/community.git] / matrix-synapse / repos / community-x86_64 / PKGBUILD
blob2a8bd8216277eff0793428e15b7fdeccadeac0eb
1 # Maintainer: Johannes Löthberg <johannes@kyriasis.com>
2 # Maintainer: Alexander Epaneshnikov <alex19ep@archlinux.org>
3 # Contributor: Ivan Shapovalov <intelfx@intelfx.name>
5 pkgname=matrix-synapse
6 _tag=63f0f5adc2db81d22309f82d4910d8a6daa3e201
7 pkgver=1.83.0
8 pkgrel=1
9 pkgdesc="Matrix reference homeserver"
10 url="https://github.com/matrix-org/synapse"
11 arch=('x86_64')
12 license=('Apache')
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'
31             'python-pyjwt: jwt'
32             'python-txredisapi: redis'
33             'python-hiredis'
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'
37         'synapse.service'
38         'synapse.target'
39         'synapse-worker@.service'
40         'sysusers-synapse.conf'
41         'tmpfiles-synapse.conf'
42         'override-hardened.conf')
43 sha256sums=('SKIP'
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')
62 prepare() {
63         cd $pkgname
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
68 build() {
69         cd $pkgname
70         python -m build --wheel --no-isolation
73 check() {
74         cd $pkgname
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}
79         ln -sv ../../tests .
80         PYTHONPATH="$PWD" PATH="../../test-env/bin:$PATH" ../../test-env/bin/python -m twisted.trial -j$(nproc) tests
81         rm -r tests _trial_temp
82         popd
85 package() {
86         cd $pkgname
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