Log In
Log In
Places
All Projects
Status Monitor
Collapse sidebar
matrix-synapse:testing
matrix-synapse
matrix-synapse.spec
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File matrix-synapse.spec of Package matrix-synapse
%global unmangled_version 1.115.0 Summary: Reference Synapse Home Server Name: matrix-synapse Version: %{unmangled_version}%{?unmangled_release:.%{unmangled_release}} Release: 1%{?dist} Source0: https://github.com/element-hq/synapse/archive/v%{unmangled_version}%{?unmangled_release?-r%{unmangled_release}}/synapse-%{unmangled_version}%{?unmangled_release:-r%{unmangled_release}}.tar.gz Source1: synapse-tmpfile.conf Source2: synapse.sysconfig Source3: synapse.service Source4: synapse-postgresql.conf Patch0: matrix-synapse-proper-paths.patch Patch2: matrix-synapse-test-paths.patch Patch3: matrix-synapse-cryptography-version.patch Patch5: matrix-synapse-older-pillow.patch License: AGPL-3.0 Group: Development/Libraries Prefix: %{_prefix} BuildRequires: systemd-units BuildRequires: python3-devel BuildRequires: pyproject-rpm-macros BuildRequires: rust-packaging BuildRequires: xmlsec1 BuildRequires: xmlsec1-openssl %systemd_requires Requires: python3-matrix-synapse = %{version} Recommends: %{name}-postgresql Provides: %{name}+systemd %description Matrix is an ambitious new ecosystem for open federated Instant Messaging and VoIP. The basics you need to know to get up and running are: - Everything in Matrix happens in a room. Rooms are distributed and do not exist on any single server. Rooms can be located using convenience aliases like ``#matrix:matrix.org`` or ``#test:localhost:8448``. - Matrix user IDs look like ``@matthew:matrix.org`` (although in the future you will normally refer to yourself and others using a 3PID: email address, phone number, etc rather than manipulating Matrix user IDs) The overall architecture is:: client <----> homeserver <=====================> homeserver <----> client https://somewhere.org/_matrix https://elsewhere.net/_matrix ``#matrix:matrix.org`` is the official support room for Matrix, and can be accessed by the web client at http://matrix.org/beta or via an IRC bridge at irc://irc.freenode.net/matrix. Synapse is currently in rapid development, but as of version 0.5 we believe it is sufficiently stable to be run as an internet-facing service for real usage! %package -n python3-matrix-synapse Summary: Python 3 Libraries For Reference Synapse Home Server %{?python_provide:%python_provide python3-matrix-synapse} Requires: %{name} Requires: xmlsec1 %description -n python3-matrix-synapse Matrix is an ambitious new ecosystem for open federated Instant Messaging and VoIP. This package provides Python 3 libraries implementing Synapse homeserver. %package postgresql Summary: PostgreSQL Support For Reference Synapse Home Server Provides: %{name}+postgres Requires: %{name} Requires: python3dist(matrix-synapse[postgres]) %description postgresql Matrix is an ambitious new ecosystem for open federated Instant Messaging and VoIP. This package provides PostgreSQL database dupport for Synapse homeserver. You must use Synapse with PostgreSQL database if your homeserver federates with other homeservers. %pyproject_extras_subpkg -n python3-matrix-synapse matrix-synapse-ldap3 postgres saml2 oidc systemd url-preview jwt cache-memory %prep %autosetup -n synapse-%{unmangled_version}%{?unmangled_release?:-r%{unmangled_release}} -p1 %cargo_prep %generate_buildrequires # Missing: sentry,opentracing,redis,cache-memory %pyproject_buildrequires -x test,matrix-synapse-ldap3,postgres,saml2,oidc,systemd,url-preview,jwt # Real Cargo.toml file is located in rust subdirectory pushd rust >/dev/null 2>&1 %cargo_generate_buildrequires popd >/dev/null 2>&1 %build %pyproject_wheel %install %pyproject_install chmod a-x %{buildroot}%{python3_sitearch}/synapse/_scripts/*.py mkdir -p %{buildroot}%{_libexecdir} mv %{buildroot}%{_bindir} %{buildroot}%{_libexecdir}/%{name} %pyproject_save_files synapse # For some strange reason, shared object files are not included in .whl file ls -1 build/lib/synapse/*.so | sed 's|^build/lib/||' | while read file; do if [ ! -f "%{buildroot}%{python3_sitearch}/$file" ]; then install -m755 "build/lib/$file" "%{buildroot}%{python3_sitearch}/$file" echo "%{python3_sitearch}/$file" >> %{pyproject_files} fi done %{__cat} > %{buildroot}%{_libexecdir}/%{name}/synapse <<EOF #!/bin/sh exec %{__python3} -m synapse.app.homeserver --config-path=%{_sysconfdir}/synapse/homeserver.yaml EOF %{__chmod} a+x %{buildroot}%{_libexecdir}/%{name}/synapse %{__rm} -rf %{buildroot}%{python3_sitelib}/synmark %{__mkdir_p} "${RPM_BUILD_ROOT}%{_sbindir}" %{__ln_s} "%{_libexecdir}/%{name}/synctl" \ "%{_libexecdir}/%{name}/register_new_matrix_user" \ "%{_libexecdir}/%{name}/synapse" \ "${RPM_BUILD_ROOT}%{_sbindir}" %{__mkdir_p} "${RPM_BUILD_ROOT}%{_sysconfdir}/synapse" %{__install} -m 0644 contrib/systemd/log_config.yaml \ "${RPM_BUILD_ROOT}%{_sysconfdir}/synapse" %{__mkdir_p} "${RPM_BUILD_ROOT}%{_unitdir}" %{__install} -m 0644 %{SOURCE3} "${RPM_BUILD_ROOT}%{_unitdir}" %{__mkdir_p} "${RPM_BUILD_ROOT}%{_unitdir}/synapse.service.d" %{__install} -m 0644 %{SOURCE4} \ "${RPM_BUILD_ROOT}%{_unitdir}/synapse.service.d/postgresql.conf" %{__install} -m 0644 contrib/systemd/override-hardened.conf \ "${RPM_BUILD_ROOT}%{_unitdir}/synapse.service.d/hardened.conf" %{__sed} -i -e 's/matrix-synapse/synapse/g' \ "${RPM_BUILD_ROOT}%{_unitdir}/synapse.service.d/hardened.conf" %{__mkdir_p} "${RPM_BUILD_ROOT}%{_prefix}/lib/tmpfiles.d" %{__install} -m0644 %{SOURCE1} \ "${RPM_BUILD_ROOT}%{_prefix}/lib/tmpfiles.d/synapse.conf" %{__mkdir_p} "${RPM_BUILD_ROOT}%{_sysconfdir}/sysconfig" %{__install} -m0644 %{SOURCE2} \ "${RPM_BUILD_ROOT}%{_sysconfdir}/sysconfig/synapse" %{__mkdir_p} "${RPM_BUILD_ROOT}%{_localstatedir}/run/synapse" %{__mkdir_p} "${RPM_BUILD_ROOT}%{_localstatedir}/lib/synapse" %{__mkdir_p} "${RPM_BUILD_ROOT}%{_localstatedir}/log/synapse" %check PYTHONPATH=%{buildroot}%{python3_sitearch}:. %{_bindir}/trial-3 tests %pre getent group synapse &>/dev/null || groupadd -r synapse getent passwd synapse &>/dev/null || \ /usr/sbin/useradd -r -g synapse -s /sbin/nologin -c 'Matrix Synapse' \ -d %{_localstatedir}/lib/synapse synapse %post %systemd_post synapse.service %preun %systemd_preun synapse.service %postun %systemd_postun_with_restart synapse.service %files %defattr(-,root,root) %doc *.rst %license LICENSE %attr(0710,root,synapse) %dir %{_sysconfdir}/synapse %config %{_sysconfdir}/synapse/* %config %{_sysconfdir}/sysconfig/synapse %{_sbindir}/* %{_libexecdir}/matrix-synapse %{_unitdir}/synapse.service %dir %{_unitdir}/synapse.service.d %{_unitdir}/synapse.service.d/hardened.conf %{_prefix}/lib/tmpfiles.d/synapse.conf %attr(0710,synapse,synapse) %{_localstatedir}/run/synapse %attr(0710,synapse,synapse) %{_localstatedir}/lib/synapse %attr(0750,synapse,synapse) %{_localstatedir}/log/synapse %files -n python3-matrix-synapse -f %{pyproject_files} %defattr(-,root,root) %doc *.rst %license LICENSE %files postgresql %defattr(-,root,root) %dir %{_unitdir}/synapse.service.d %{_unitdir}/synapse.service.d/postgresql.conf
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Contact
Support
@OBShq
The Open Build Service is an
openSUSE project
.
Log In
Places
Places
All Projects
Status Monitor