Package matrix-synapse: Specfile

Name: matrix-synapse
Version: 1.104.0
Release: alt1

Summary: Synapse: Matrix reference homeserver
License: Apache-2.0
Group: Communications

Url: http://matrix.org

# Source-url: https://github.com/element-hq/synapse/archive/refs/tags/v%version.tar.gz
Source: %name-%version.tar

# Cargo modules for build rust code in the rust dir
Source1: %name-development-%version.tar

Source10: %name.service



BuildRequires(pre): rpm-build-intro >= 2.2.4
BuildRequires(pre): rpm-build-python3

BuildRequires: python3 >= 3.8

%py3_buildrequires setuptools_rust
%py3_buildrequires poetry

%py3_use matrix-angular-sdk >= 0.6.8

# generated by 'epm restore --dry-run' from matrix-synapse/pyproject.toml
%py3_use jsonschema >= 3.0.0
%py3_use immutabledict >= 2.0
%py3_use unpaddedbase64 >= 2.1.0
%py3_use canonicaljson >= 2.0.0
%py3_use signedjson >= 1.1.0
%py3_use service-identity >= 18.1.0
%py3_use twisted-core >= 18.9.0
%py3_use treq >= 15.1
%py3_use OpenSSL >= 16.0.0
%py3_use yaml >= 3.13
%py3_use pyasn1 >= 0.1.9
%py3_use pyasn1-modules >= 0.0.7
%py3_use bcrypt >= 3.1.7
%py3_use Pillow >= 10.0.1
%py3_use sortedcontainers >= 1.5.2
%py3_use pymacaroons-pynacl >= 0.13.0
%py3_use msgpack >= 0.5.2
%py3_use phonenumbers >= 8.2.0
%py3_use prometheus_client >= 0.4.0
%py3_use attrs >= 19.2.0
%py3_use attrs >= 21.1.0
%py3_use netaddr >= 0.7.18
%py3_use jinja2 >= 3.0
%py3_use bleach >= 1.4.3
%py3_use typing-extensions >= 3.10.0.1
%py3_use cryptography >= 3.4.7
%py3_use ijson >= 3.1.4
%py3_use matrix-common >= 1.3.0
%py3_use packaging >= 20.0
%py3_use pydantic < 3
%py3_use pydantic >= 1.7.4
#py3_use setuptools-rust >= 1.3
#py3_use matrix-synapse-ldap3 >= 0.1
%py3_use psycopg2 >= 2.8
#py3_use psycopg2cffi >= 2.8
#py3_use psycopg2cffi-compat >= 1.1
%py3_use pysaml2 >= 4.5.0
%py3_use authlib >= 0.15.1
%py3_use systemd >= 231
%py3_use lxml >= 4.2.0

# optional
#py3_use sentry-sdk >= 0.7.2
#py3_use opentracing >= 2.2.0
#py3_use jaeger-client >= 4.0.0

%py3_use txredisapi >= 1.4.7
#py3_use hiredis-py  
%py3_use pympler
%py3_use parameterized >= 0.7.4
%py3_use idna >= 2.5

%py3_use icu >= 2.10.2

# "test"
#py3_use mock >= 2.0

BuildRequires: rust-cargo

# for /usr/lib/matrix-synapse/sync_room_to_group.pl
BuildRequires: perl-CPAN
BuildRequires: perl-JSON-XS

Requires: python3-module-twisted-conch >= 17.5.0
Requires: python3-module-twisted-names >= 17.5.0
Requires: python3-module-twisted-web >= 17.5.0
Requires: python3-module-twisted-mail >= 17.5.0

# python-modules-sqlite3
#Requires: python-module-matrix-angular-sdk

# optional
%add_python3_req_skip opentracing
# internal
%add_python3_req_skip synapse.synapse_rust.push synapse.synapse_rust.acl synapse.synapse_rust.events

%description
Matrix is an ambitious new ecosystem for open federated Instant Messaging and VoIP.

Synapse is the reference python/twisted Matrix homeserver implementation.

%prep
%setup -a1
mkdir -p .cargo
cat <<EOF >> .cargo/config
[source.crates-io]
replace-with = "vendored-sources"

[source.vendored-sources]
directory = "vendor"
EOF

%build
%pyproject_build

%install
%pyproject_install
# --install-scripts=%_libexecdir/%name/
mkdir -p %buildroot/etc/synapse
cp contrib/systemd/log_config.yaml %buildroot/etc/synapse/
# TODO
echo >%buildroot/etc/synapse/homeserver.yaml
install -m644 -D %SOURCE10 %buildroot%_unitdir/matrix-synapse.service
mkdir -p %buildroot/var/{run,lib,log}/synapse
mkdir -p %buildroot%_tmpfilesdir/
echo "D /var/run/synapse 0710 _synapse _synapse -" >%buildroot%_tmpfilesdir/%name.conf

# remove benchmark test
rm -rfv %buildroot%python3_sitelibdir_noarch/synmark/

%pre
/usr/sbin/groupadd -r -f _synapse
/usr/sbin/useradd -r -g _synapse -d /var/lib/synapse -s /dev/null -c 'Synapse user' _synapse >/dev/null 2>&1 ||:
if [ $1 -gt 1 ]; then
        /usr/sbin/usermod -d /var/lib/synapse _synapse
fi

%post
%post_service %name

%preun
%preun_service %name

%files
%doc README.rst UPGRADE.rst CHANGES.md AUTHORS.rst docs/
%_bindir/export_signing_key
%_bindir/generate_config
%_bindir/generate_log_config
%_bindir/generate_signing_key
%_bindir/hash_password
%_bindir/register_new_matrix_user
%_bindir/synapse_homeserver
%_bindir/synapse_port_db
%_bindir/synapse_review_recent_signups
%_bindir/synapse_worker
%_bindir/synctl
%_bindir/update_synapse_database
%_unitdir/matrix-synapse.service
%_tmpfilesdir/%name.conf
%python3_sitelibdir/*
%dir /etc/synapse/
%attr(0640,root,_synapse) %config(noreplace) /etc/synapse/homeserver.yaml
%attr(0640,root,_synapse) %config(noreplace) /etc/synapse/log_config.yaml

%attr(0710,_synapse,_synapse) /var/run/synapse/
%attr(0710,_synapse,_synapse) /var/lib/synapse/
%attr(0750,_synapse,_synapse) /var/log/synapse/

%changelog
* Sat Apr 06 2024 Vitaly Lipatov <lav@altlinux.ru> 1.104.0-alt1
- new version 1.104.0 (with rpmrb script)

* Sat Mar 02 2024 Vitaly Lipatov <lav@altlinux.ru> 1.101.0-alt1
- new version 1.101.0 (with rpmrb script)

* Sat Aug 05 2023 Vitaly Lipatov <lav@altlinux.ru> 1.89.0-alt1
- new version 1.89.0 (with rpmrb script)
- switch to pyproject.toml

* Thu Aug 11 2022 Vitaly Lipatov <lav@altlinux.ru> 1.64.0-alt1
- new version 1.64.0 (with rpmrb script)

* Thu Mar 10 2022 Vitaly Lipatov <lav@altlinux.ru> 1.54.0-alt1
- new version 1.54.0 (with rpmrb script)
- update buildreqs

* Sun Feb 13 2022 Vitaly Lipatov <lav@altlinux.ru> 1.52.0-alt1
- new version 1.52.0 (with rpmrb script)
- update buildreqs

* Thu Dec 23 2021 Vitaly Lipatov <lav@altlinux.ru> 1.49.2-alt1
- new version 1.49.2 (with rpmrb script)
- update buildreqs

* Fri Oct 08 2021 Vitaly Lipatov <lav@altlinux.ru> 1.44.0-alt1
- new version 1.44.0 (with rpmrb script)

* Thu Sep 09 2021 Vitaly Lipatov <lav@altlinux.ru> 1.42.0-alt1
- new version 1.42.0 (with rpmrb script)

* Wed Sep 01 2021 Vitaly Lipatov <lav@altlinux.ru> 1.41.1-alt1
- new version 1.41.1 (with rpmrb script)

* Tue Aug 24 2021 Vitaly Lipatov <lav@altlinux.ru> 1.41.0-alt1
- new version 1.41.0 (with rpmrb script)

* Tue Aug 10 2021 Vitaly Lipatov <lav@altlinux.ru> 1.40.0-alt1
- new version 1.40.0 (with rpmrb script)

* Tue Jul 13 2021 Vitaly Lipatov <lav@altlinux.ru> 1.38.0-alt1
- new version 1.38.0 (with rpmrb script)

* Tue Jul 06 2021 Vitaly Lipatov <lav@altlinux.ru> 1.37.1-alt1
- new version 1.37.1 (with rpmrb script)

* Thu Jun 03 2021 Vitaly Lipatov <lav@altlinux.ru> 1.35.1-alt1
- new version 1.35.1 (with rpmrb script)

* Tue Jun 01 2021 Vitaly Lipatov <lav@altlinux.ru> 1.35.0-alt1
- new version 1.35.0 (with rpmrb script)

* Sat Apr 24 2021 Vitaly Lipatov <lav@altlinux.ru> 1.32.2-alt1
- new version 1.32.2 (with rpmrb script)

* Tue Apr 06 2021 Vitaly Lipatov <lav@altlinux.ru> 1.30.1-alt1
- new version 1.30.1 (with rpmrb script)
- update BR

* Mon Mar 08 2021 Vitaly Lipatov <lav@altlinux.ru> 1.29.0-alt1
- new version 1.29.0 (with rpmrb script)

* Thu Feb 25 2021 Vitaly Lipatov <lav@altlinux.ru> 1.28.0-alt1
- new version 1.28.0 (with rpmrb script)

* Tue Feb 23 2021 Vitaly Lipatov <lav@altlinux.ru> 1.27.0-alt1
- new version 1.27.0 (with rpmrb script)

* Wed Dec 09 2020 Vitaly Lipatov <lav@altlinux.ru> 1.24.0-alt1
- new version 1.24.0 (with rpmrb script)
- CVE-2020-26257 - a denial of service attack

* Wed Nov 18 2020 Vitaly Lipatov <lav@altlinux.ru> 1.23.0-alt1
- new version 1.23.0 (with rpmrb script)
- Unknown CVE: there are a trivially exploitable DoS vulnerability
  in versions of Synapse prior to 1.20.0.
  Complete details will be disclosed on Monday, November 23rd.

* Sun Nov 01 2020 Vitaly Lipatov <lav@altlinux.ru> 1.22.1-alt1
- new version 1.22.1 (with rpmrb script)

* Sun Nov 01 2020 Vitaly Lipatov <lav@altlinux.ru> 1.22.0-alt1
- new version 1.22.0 (with rpmrb script)

* Fri Oct 16 2020 Vitaly Lipatov <lav@altlinux.ru> 1.21.2-alt1
- new version 1.21.2 (with rpmrb script)
- CVE-2020-26891 (HTML pages were vulnerable to cross-site scripting (XSS) attacks)

* Tue Oct 13 2020 Vitaly Lipatov <lav@altlinux.ru> 1.21.0-alt1
- new version 1.21.0 (with rpmrb script)

* Thu Sep 24 2020 Vitaly Lipatov <lav@altlinux.ru> 1.20.1-alt1
- new version 1.20.1 (with rpmrb script)

* Tue Sep 22 2020 Vitaly Lipatov <lav@altlinux.ru> 1.20.0-alt1
- new version 1.20.0 (with rpmrb script)

* Fri Sep 18 2020 Vitaly Lipatov <lav@altlinux.ru> 1.19.3-alt1
- new version 1.19.3 (with rpmrb script)
- update requirements (ALT bug 38962)

* Sun Aug 23 2020 Vitaly Lipatov <lav@altlinux.ru> 1.19.0-alt1
- new version 1.19.0 (with rpmrb script)

* Tue Aug 11 2020 Vitaly Lipatov <lav@altlinux.ru> 1.18.0-alt1
- new version 1.18.0 (with rpmrb script)

* Sat Aug 01 2020 Vitaly Lipatov <lav@altlinux.ru> 1.17.0-alt1
- new version 1.17.0 (with rpmrb script)

* Wed Jul 08 2020 Vitaly Lipatov <lav@altlinux.ru> 1.16.0-alt1
- new version 1.16.0 (with rpmrb script)

* Thu Jul 02 2020 Vitaly Lipatov <lav@altlinux.ru> 1.15.2-alt1
- new version 1.15.2 (with rpmrb script)

* Tue Jun 16 2020 Vitaly Lipatov <lav@altlinux.ru> 1.15.1-alt1
- new version 1.15.1 (with rpmrb script)

* Thu Jun 11 2020 Vitaly Lipatov <lav@altlinux.ru> 1.15.0-alt1
- new version 1.15.0 (with rpmrb script)

* Thu May 28 2020 Vitaly Lipatov <lav@altlinux.ru> 1.14.0-alt1
- new version 1.14.0 (with rpmrb script)

* Wed May 20 2020 Vitaly Lipatov <lav@altlinux.ru> 1.13.0-alt1
- new version 1.13.0 (with rpmrb script)

* Sat Mar 21 2020 Vitaly Lipatov <lav@altlinux.ru> 1.11.1-alt1
- new version 1.11.1 (with rpmrb script)

* Sun Mar 01 2020 Vitaly Lipatov <lav@altlinux.ru> 1.11.0-alt1
- new version 1.11.0 (with rpmrb script)

* Wed Feb 19 2020 Vitaly Lipatov <lav@altlinux.ru> 1.10.0-alt1
- new version 1.10.0 (with rpmrb script)

* Sat Feb 08 2020 Vitaly Lipatov <lav@altlinux.ru> 1.9.0-alt1
- new version 1.9.0 (with rpmrb script)

* Sun Jan 26 2020 Vitaly Lipatov <lav@altlinux.ru> 1.8.0-alt1
- new version 1.8.0 (with rpmrb script)

* Tue Oct 15 2019 Vitaly Lipatov <lav@altlinux.ru> 1.4.0-alt1
- new version 1.4.0 (with rpmrb script)

* Mon Jul 29 2019 Vitaly Lipatov <lav@altlinux.ru> 1.2.1-alt1
- new version 1.2.1 (with rpmrb script)

* Mon Jul 29 2019 Vitaly Lipatov <lav@altlinux.ru> 1.1.0-alt1
- new version 1.1.0 (with rpmrb script)

* Tue Jun 11 2019 Vitaly Lipatov <lav@altlinux.ru> 1.0.0-alt1
- new version 1.0.0 (with rpmrb script)
- update requires

* Wed May 08 2019 Vitaly Lipatov <lav@altlinux.ru> 0.99.3.2-alt1
- new version 0.99.3.2 (with rpmrb script)

* Mon Feb 11 2019 Vitaly Lipatov <lav@altlinux.ru> 0.99.0-alt2
- switch to python3

* Wed Feb 06 2019 Vitaly Lipatov <lav@altlinux.ru> 0.99.0-alt1
- new version 0.99.0 (with rpmrb script)
- update requires

* Tue Jan 22 2019 Vitaly Lipatov <lav@altlinux.ru> 0.34.1.1-alt1
- new version 0.34.1.1 (with rpmrb script)
- update build and install python module requires
- rename service to matrix-synapse

* Wed Dec 19 2018 Alexey Shabalin <shaba@altlinux.org> 0.33.9-alt2
- no longer require a specific version of saml2 since v0.27.0-rc1

* Mon Dec 10 2018 Vitaly Lipatov <lav@altlinux.ru> 0.33.9-alt1
- new version 0.33.9 (with rpmrb script)

* Sun Nov 18 2018 Vitaly Lipatov <lav@altlinux.ru> 0.33.8-alt1
- new version 0.33.8 (with rpmrb script)

* Wed Sep 26 2018 Vitaly Lipatov <lav@altlinux.ru> 0.33.5.1-alt1
- new version 0.33.5.1 (with rpmrb script)

* Wed Aug 15 2018 Vitaly Lipatov <lav@altlinux.ru> 0.33.1-alt1
- new version 0.33.1 (with rpmrb script)

* Tue Jul 03 2018 Vitaly Lipatov <lav@altlinux.ru> 0.31.2-alt1
- new version 0.31.2 (with rpmrb script)

* Sat Jun 09 2018 Vitaly Lipatov <lav@altlinux.ru> 0.29.1-alt1
- new version 0.29.1 (with rpmrb script)

* Wed Feb 07 2018 Vitaly Lipatov <lav@altlinux.ru> 0.26.0-alt1
- new version 0.26.0 (with rpmrb script)

* Sat Oct 07 2017 Vitaly Lipatov <lav@altlinux.ru> 0.23.1-alt1
- new version 0.23.1 (with rpmrb script)

* Mon Jul 17 2017 Vitaly Lipatov <lav@altlinux.ru> 0.22.1-alt1
- new version 0.22.1 (with rpmrb script)

* Thu Jun 15 2017 Vitaly Lipatov <lav@altlinux.ru> 0.21.0-alt1
- initial build for ALT Sisyphus