From c71ab7f0a293de04e8ed29685d28a009629e7f2a Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 20 Jan 2022 18:48:56 +0000 Subject: [PATCH 1/7] - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- matrix-synapse.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/matrix-synapse.spec b/matrix-synapse.spec index f306861..e96e2ef 100644 --- a/matrix-synapse.spec +++ b/matrix-synapse.spec @@ -7,7 +7,7 @@ Name: matrix-%{srcname} Version: 1.50.0 -Release: 0.1%{?dist} +Release: 0.2%{?dist} Summary: A Matrix reference homeserver written in Python using Twisted License: ASL 2.0 URL: https://github.com/matrix-org/%{srcname} @@ -141,6 +141,9 @@ exit 0 %changelog +* Thu Jan 20 2022 Fedora Release Engineering - 1.50.0-0.2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + * Mon Jan 10 2022 Kai A. Hiller - 1.50.0-0.1 - Update to v1.50.0 From a53ed73b6c66fd56ac1f81d4db88be0d105f5031 Mon Sep 17 00:00:00 2001 From: "Kai A. Hiller" Date: Fri, 21 Jan 2022 23:02:12 +0100 Subject: [PATCH 2/7] Revert "Update to v1.50.0rc1" This reverts commit 2111b63c63a9d4a6281397d31f57a419c86cd4e9. --- ...cryptography-dependency-version-requirement.patch | 2 +- matrix-synapse.spec | 12 ++++-------- 2 files changed, 5 insertions(+), 9 deletions(-) diff --git a/0001-relax-cryptography-dependency-version-requirement.patch b/0001-relax-cryptography-dependency-version-requirement.patch index 38bcb73..c5552b6 100644 --- a/0001-relax-cryptography-dependency-version-requirement.patch +++ b/0001-relax-cryptography-dependency-version-requirement.patch @@ -24,7 +24,7 @@ index 271c17c22..e8a71d477 100644 - "cryptography>=3.4.7", + "cryptography>=3.4", "ijson>=3.1", - "matrix-common==1.0.0", + ] -- 2.31.1 diff --git a/matrix-synapse.spec b/matrix-synapse.spec index e96e2ef..5f85a9a 100644 --- a/matrix-synapse.spec +++ b/matrix-synapse.spec @@ -1,13 +1,13 @@ %global srcname synapse # Version suffix in URL when building release candidates -%global rcx rc1 +%global rcx %{nil} %{?python_enable_dependency_generator} Name: matrix-%{srcname} -Version: 1.50.0 -Release: 0.2%{?dist} +Version: 1.49.2 +Release: 2%{?dist} Summary: A Matrix reference homeserver written in Python using Twisted License: ASL 2.0 URL: https://github.com/matrix-org/%{srcname} @@ -43,7 +43,6 @@ BuildRequires: python3-jinja2 >= 2.9 BuildRequires: python3-jsonschema BuildRequires: python3-jwt BuildRequires: python3-lxml >= 3.5.0 -BuildRequires: python3-matrix-common BuildRequires: python3-matrix-synapse-ldap3 >= 0.1 BuildRequires: python3-msgpack >= 0.5.2 BuildRequires: python3-netaddr >= 0.7.18 @@ -141,12 +140,9 @@ exit 0 %changelog -* Thu Jan 20 2022 Fedora Release Engineering - 1.50.0-0.2 +* Thu Jan 20 2022 Fedora Release Engineering - 1.49.2-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild -* Mon Jan 10 2022 Kai A. Hiller - 1.50.0-0.1 -- Update to v1.50.0 - * Tue Dec 21 2021 Kai A. Hiller - 1.49.2-1 - Update to v1.49.2 From 61329022152d490b643f56bbd905e787e95e2232 Mon Sep 17 00:00:00 2001 From: "Kai A. Hiller" Date: Thu, 27 Jan 2022 03:53:20 +0100 Subject: [PATCH 3/7] Update to v1.51.0 --- ...raphy-dependency-version-requirement.patch | 10 ++--- ...move-dependency-on-non-standard-mock.patch | 42 ------------------- matrix-synapse.spec | 9 ++-- sources | 2 +- 4 files changed, 12 insertions(+), 51 deletions(-) delete mode 100644 0002-Remove-dependency-on-non-standard-mock.patch diff --git a/0001-relax-cryptography-dependency-version-requirement.patch b/0001-relax-cryptography-dependency-version-requirement.patch index c5552b6..08ebce2 100644 --- a/0001-relax-cryptography-dependency-version-requirement.patch +++ b/0001-relax-cryptography-dependency-version-requirement.patch @@ -1,4 +1,4 @@ -From 4bdcf996757a5d13df63f7891a1dd4c7186c20dc Mon Sep 17 00:00:00 2001 +From 3a65f800f75e11bd9c3a7db167644f9ebec444c1 Mon Sep 17 00:00:00 2001 From: Dan Callaghan Date: Sun, 18 Jul 2021 13:18:10 +1000 Subject: [PATCH] relax cryptography dependency version requirement @@ -12,10 +12,10 @@ https://bugzilla.redhat.com/show_bug.cgi?id=1978949 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/synapse/python_dependencies.py b/synapse/python_dependencies.py -index 271c17c22..e8a71d477 100644 +index d844fbb3b3..277bd043a9 100644 --- a/synapse/python_dependencies.py +++ b/synapse/python_dependencies.py -@@ -82,9 +82,7 @@ +@@ -84,9 +84,7 @@ REQUIREMENTS = [ "Jinja2>=2.9", "bleach>=1.4.3", "typing-extensions>=3.7.4", @@ -24,8 +24,8 @@ index 271c17c22..e8a71d477 100644 - "cryptography>=3.4.7", + "cryptography>=3.4", "ijson>=3.1", + "matrix-common==1.0.0", ] - -- -2.31.1 +2.34.1 diff --git a/0002-Remove-dependency-on-non-standard-mock.patch b/0002-Remove-dependency-on-non-standard-mock.patch deleted file mode 100644 index e138743..0000000 --- a/0002-Remove-dependency-on-non-standard-mock.patch +++ /dev/null @@ -1,42 +0,0 @@ -From 1b7558ed4060acd4ca34a88c7b14ce7da2baab13 Mon Sep 17 00:00:00 2001 -From: "Kai A. Hiller" -Date: Tue, 14 Dec 2021 18:16:37 +0100 -Subject: [PATCH] Remove dependency on non-standard mock - ---- - setup.py | 4 +--- - tests/storage/test_background_update.py | 3 +-- - 2 files changed, 2 insertions(+), 5 deletions(-) - -diff --git a/setup.py b/setup.py -index 2c6fb9aac..bfca16727 100755 ---- a/setup.py -+++ b/setup.py -@@ -119,9 +119,7 @@ CONDITIONAL_REQUIREMENTS["mypy"] = [ - # Tests assume that all optional dependencies are installed. - # - # parameterized_class decorator was introduced in parameterized 0.7.0 --# --# We use `mock` library as that backports `AsyncMock` to Python 3.6 --CONDITIONAL_REQUIREMENTS["test"] = ["parameterized>=0.7.0", "mock>=4.0.0"] -+CONDITIONAL_REQUIREMENTS["test"] = ["parameterized>=0.7.0"] - - CONDITIONAL_REQUIREMENTS["dev"] = ( - CONDITIONAL_REQUIREMENTS["lint"] -diff --git a/tests/storage/test_background_update.py b/tests/storage/test_background_update.py -index d77c00150..542b70a1e 100644 ---- a/tests/storage/test_background_update.py -+++ b/tests/storage/test_background_update.py -@@ -12,8 +12,7 @@ - # See the License for the specific language governing permissions and - # limitations under the License. - --# Use backported mock for AsyncMock support on Python 3.6. --from mock import Mock -+from unittest.mock import Mock - - from twisted.internet.defer import Deferred, ensureDeferred - --- -2.33.1 - diff --git a/matrix-synapse.spec b/matrix-synapse.spec index 5f85a9a..4fee036 100644 --- a/matrix-synapse.spec +++ b/matrix-synapse.spec @@ -6,8 +6,8 @@ %{?python_enable_dependency_generator} Name: matrix-%{srcname} -Version: 1.49.2 -Release: 2%{?dist} +Version: 1.51.0 +Release: 1%{?dist} Summary: A Matrix reference homeserver written in Python using Twisted License: ASL 2.0 URL: https://github.com/matrix-org/%{srcname} @@ -16,7 +16,6 @@ Source1: synapse.sysconfig Source2: synapse.service # non-upstreamable patch to accept any version of python-cryptography, see RHBZ#1978949 Patch1: 0001-relax-cryptography-dependency-version-requirement.patch -Patch2: 0002-Remove-dependency-on-non-standard-mock.patch BuildArch: noarch BuildRequires: python3-devel @@ -43,6 +42,7 @@ BuildRequires: python3-jinja2 >= 2.9 BuildRequires: python3-jsonschema BuildRequires: python3-jwt BuildRequires: python3-lxml >= 3.5.0 +BuildRequires: python3-matrix-common BuildRequires: python3-matrix-synapse-ldap3 >= 0.1 BuildRequires: python3-msgpack >= 0.5.2 BuildRequires: python3-netaddr >= 0.7.18 @@ -140,6 +140,9 @@ exit 0 %changelog +* Thu Jan 27 2022 Kai A. Hiller - 1.51.0-1 +- Update to v1.51.0 + * Thu Jan 20 2022 Fedora Release Engineering - 1.49.2-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild diff --git a/sources b/sources index c8a3ffb..8496f63 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (synapse-1.49.2.tar.gz) = dbeb0178628d9e7f4077d89674727582b08f039b1b4b5a2f9ce12ebf36535bbdd78bf5e51c80b0219ce5fb72c4811a4a3f8ce3eda4e4a4a1e0ee8bd26fcf2af9 +SHA512 (synapse-1.51.0.tar.gz) = 52b96c4ee74894934fdaf683c8a3f0e9f4d6eb227ad916d94aaefd878c70cdc4fc0edbf44082dcbd5de5930fe279501207614a2bd6c28e2b2c64425ce74f137a From 49740b547f4bcae13b80271aa9b067fc279d3cd9 Mon Sep 17 00:00:00 2001 From: "Kai A. Hiller" Date: Fri, 21 Jan 2022 19:55:06 +0100 Subject: [PATCH 4/7] Create synapse user and group declaratively --- matrix-synapse.spec | 9 ++++----- matrix-synapse.sysusers | 2 ++ 2 files changed, 6 insertions(+), 5 deletions(-) create mode 100644 matrix-synapse.sysusers diff --git a/matrix-synapse.spec b/matrix-synapse.spec index 4fee036..f50ddaa 100644 --- a/matrix-synapse.spec +++ b/matrix-synapse.spec @@ -14,6 +14,7 @@ URL: https://github.com/matrix-org/%{srcname} Source0: %{url}/archive/v%{version}%{rcx}/%{srcname}-%{version}%{rcx}.tar.gz Source1: synapse.sysconfig Source2: synapse.service +Source3: matrix-synapse.sysusers # non-upstreamable patch to accept any version of python-cryptography, see RHBZ#1978949 Patch1: 0001-relax-cryptography-dependency-version-requirement.patch BuildArch: noarch @@ -103,6 +104,7 @@ install -p -D -T -m 0644 contrib/systemd/log_config.yaml %{buildroot}%{_sysconfd install -p -D -T -m 0644 %{SOURCE1} %{buildroot}%{_sysconfdir}/sysconfig/synapse install -p -D -T -m 0644 %{SOURCE2} %{buildroot}%{_unitdir}/synapse.service install -p -d -m 755 %{buildroot}/%{_sharedstatedir}/synapse +install -p -D -m 0644 %{SOURCE3} %{buildroot}%{_sysusersdir}/%{name}.conf %check @@ -110,11 +112,7 @@ PYTHONPATH=. trial-3 tests %pre -getent group synapse >/dev/null || groupadd -r synapse -getent passwd synapse >/dev/null || \ - useradd -r -g synapse -d %{_sharedstatedir}/synapse -s /sbin/nologin \ - -c "The user for the Synapse Matrix server" synapse -exit 0 +%sysusers_create_compat %{SOURCE3} %post %systemd_post synapse.service @@ -137,6 +135,7 @@ exit 0 %attr(755,synapse,synapse) %dir %{_sharedstatedir}/synapse %attr(755,synapse,synapse) %dir %{_sysconfdir}/synapse %attr(644,synapse,synapse) %config(noreplace) %{_sysconfdir}/synapse/* +%{_sysusersdir}/%{name}.conf %changelog diff --git a/matrix-synapse.sysusers b/matrix-synapse.sysusers new file mode 100644 index 0000000..97adeeb --- /dev/null +++ b/matrix-synapse.sysusers @@ -0,0 +1,2 @@ +#Type Name ID GECOS Home directory Shell +u synapse - "Runs the Synapse Matrix homeserver" /run/synapse /sbin/nologin From 653ced802e5feba1fec84e9c0a5faf478e6a5609 Mon Sep 17 00:00:00 2001 From: "Kai A. Hiller" Date: Tue, 8 Feb 2022 15:24:49 +0100 Subject: [PATCH 5/7] Update to v1.52.0 --- ...introduced-by-new-annotations-in-the.patch | 74 +++++++++++++++++++ matrix-synapse.spec | 11 ++- 2 files changed, 82 insertions(+), 3 deletions(-) create mode 100644 0002-Fix-type-errors-introduced-by-new-annotations-in-the.patch diff --git a/0002-Fix-type-errors-introduced-by-new-annotations-in-the.patch b/0002-Fix-type-errors-introduced-by-new-annotations-in-the.patch new file mode 100644 index 0000000..ccb9e5d --- /dev/null +++ b/0002-Fix-type-errors-introduced-by-new-annotations-in-the.patch @@ -0,0 +1,74 @@ +From b5a1489e0c00701aee43ca207cdde093726890e4 Mon Sep 17 00:00:00 2001 +From: reivilibre +Date: Wed, 2 Feb 2022 16:51:00 +0000 +Subject: [PATCH 2/2] Fix type errors introduced by new annotations in the + Prometheus Client library. (#11832) + +Co-authored-by: David Robertson +--- + changelog.d/11832.misc | 1 + + synapse/metrics/__init__.py | 10 +++++++++- + synapse/python_dependencies.py | 3 +-- + 3 files changed, 11 insertions(+), 3 deletions(-) + create mode 100644 changelog.d/11832.misc + +diff --git a/changelog.d/11832.misc b/changelog.d/11832.misc +new file mode 100644 +index 0000000000..5ff117d933 +--- /dev/null ++++ b/changelog.d/11832.misc +@@ -0,0 +1 @@ ++Fix type errors introduced by new annotations in the Prometheus Client library. +\ No newline at end of file +diff --git a/synapse/metrics/__init__.py b/synapse/metrics/__init__.py +index 9e6c1b2f3b..cca084c18c 100644 +--- a/synapse/metrics/__init__.py ++++ b/synapse/metrics/__init__.py +@@ -30,6 +30,7 @@ from typing import ( + Type, + TypeVar, + Union, ++ cast, + ) + + import attr +@@ -60,7 +61,7 @@ all_gauges: "Dict[str, Union[LaterGauge, InFlightGauge]]" = {} + HAVE_PROC_SELF_STAT = os.path.exists("/proc/self/stat") + + +-class RegistryProxy: ++class _RegistryProxy: + @staticmethod + def collect() -> Iterable[Metric]: + for metric in REGISTRY.collect(): +@@ -68,6 +69,13 @@ class RegistryProxy: + yield metric + + ++# A little bit nasty, but collect() above is static so a Protocol doesn't work. ++# _RegistryProxy matches the signature of a CollectorRegistry instance enough ++# for it to be usable in the contexts in which we use it. ++# TODO Do something nicer about this. ++RegistryProxy = cast(CollectorRegistry, _RegistryProxy) ++ ++ + @attr.s(slots=True, hash=True, auto_attribs=True) + class LaterGauge: + +diff --git a/synapse/python_dependencies.py b/synapse/python_dependencies.py +index d25f6e18e3..c7cfa9ae87 100644 +--- a/synapse/python_dependencies.py ++++ b/synapse/python_dependencies.py +@@ -76,8 +76,7 @@ REQUIREMENTS = [ + "msgpack>=0.5.2", + "phonenumbers>=8.2.0", + # we use GaugeHistogramMetric, which was added in prom-client 0.4.0. +- # 0.13.0 has an incorrect type annotation, see #11832. +- "prometheus_client>=0.4.0,<0.13.0", ++ "prometheus_client>=0.4.0", + # we use `order`, which arrived in attrs 19.2.0. + # Note: 21.1.0 broke `/sync`, see #9936 + "attrs>=19.2.0,!=21.1.0", +-- +2.34.1 + diff --git a/matrix-synapse.spec b/matrix-synapse.spec index f50ddaa..c8bbc59 100644 --- a/matrix-synapse.spec +++ b/matrix-synapse.spec @@ -6,7 +6,7 @@ %{?python_enable_dependency_generator} Name: matrix-%{srcname} -Version: 1.51.0 +Version: 1.52.0 Release: 1%{?dist} Summary: A Matrix reference homeserver written in Python using Twisted License: ASL 2.0 @@ -17,6 +17,7 @@ Source2: synapse.service Source3: matrix-synapse.sysusers # non-upstreamable patch to accept any version of python-cryptography, see RHBZ#1978949 Patch1: 0001-relax-cryptography-dependency-version-requirement.patch +Patch2: 0002-Fix-type-errors-introduced-by-new-annotations-in-the.patch BuildArch: noarch BuildRequires: python3-devel @@ -42,13 +43,13 @@ BuildRequires: python3-ijson BuildRequires: python3-jinja2 >= 2.9 BuildRequires: python3-jsonschema BuildRequires: python3-jwt -BuildRequires: python3-lxml >= 3.5.0 +BuildRequires: python3-lxml BuildRequires: python3-matrix-common BuildRequires: python3-matrix-synapse-ldap3 >= 0.1 BuildRequires: python3-msgpack >= 0.5.2 BuildRequires: python3-netaddr >= 0.7.18 BuildRequires: python3-phonenumbers >= 8.2.0 -BuildRequires: python3-pillow >= 4.3.0 +BuildRequires: python3-pillow BuildRequires: python3-prometheus_client BuildRequires: python3-pyOpenSSL >= 16.0.0 BuildRequires: python3-pyasn1 >= 0.1.9 @@ -139,6 +140,10 @@ PYTHONPATH=. trial-3 tests %changelog +* Tue Feb 08 2022 Kai A. Hiller - 1.52.0-1 +- Update to v1.52.0 +- Create synapse user and group declaratively + * Thu Jan 27 2022 Kai A. Hiller - 1.51.0-1 - Update to v1.51.0 From 04f7b9ad80ad4eadd50e154c597c55bb893c6f9b Mon Sep 17 00:00:00 2001 From: "Kai A. Hiller" Date: Tue, 8 Feb 2022 15:56:30 +0100 Subject: [PATCH 6/7] Update sources --- sources | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources b/sources index 8496f63..ace4b1c 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (synapse-1.51.0.tar.gz) = 52b96c4ee74894934fdaf683c8a3f0e9f4d6eb227ad916d94aaefd878c70cdc4fc0edbf44082dcbd5de5930fe279501207614a2bd6c28e2b2c64425ce74f137a +SHA512 (synapse-1.52.0.tar.gz) = 2573417b76d9c65fd7b264cd3e24bca36dbe1d20233b55c570c67583fe6d384850c05d903dd97fb72e82e0c07171f4108c8f9d8c6427f10882f63154fdd9e88b From 2c55219c1c5b0a00bbe97eb0ca6b0bc4cb2f8329 Mon Sep 17 00:00:00 2001 From: "Kai A. Hiller" Date: Wed, 9 Feb 2022 16:53:08 +0100 Subject: [PATCH 7/7] Fix losing incoming EDUs if debug logging enabled --- ...ing-EDUs-if-debug-logging-enabled-11.patch | 48 +++++++++++++++++++ matrix-synapse.spec | 6 ++- 2 files changed, 53 insertions(+), 1 deletion(-) create mode 100644 0003-Fix-losing-incoming-EDUs-if-debug-logging-enabled-11.patch diff --git a/0003-Fix-losing-incoming-EDUs-if-debug-logging-enabled-11.patch b/0003-Fix-losing-incoming-EDUs-if-debug-logging-enabled-11.patch new file mode 100644 index 0000000..650be19 --- /dev/null +++ b/0003-Fix-losing-incoming-EDUs-if-debug-logging-enabled-11.patch @@ -0,0 +1,48 @@ +From a160ac1d4e42e2a753172f939bead7d6c21ce0cd Mon Sep 17 00:00:00 2001 +From: David Robertson +Date: Wed, 2 Feb 2022 16:25:17 +0000 +Subject: [PATCH 3/3] Fix losing incoming EDUs if debug logging enabled + (#11890) + +* Fix losing incoming EDUs if debug logging enabled + +Fixes #11889. Homeservers should only be affected if the +`synapse.8631_debug` logger was enabled for DEBUG mode. + +I am not sure if this merits a bugfix release: I think the logging can +be disabled in config if anyone is affected? But it is still pretty bad. +--- + changelog.d/11890.bugfix | 1 + + synapse/federation/transport/server/federation.py | 4 ++-- + 2 files changed, 3 insertions(+), 2 deletions(-) + create mode 100644 changelog.d/11890.bugfix + +diff --git a/changelog.d/11890.bugfix b/changelog.d/11890.bugfix +new file mode 100644 +index 0000000000..6b696692e3 +--- /dev/null ++++ b/changelog.d/11890.bugfix +@@ -0,0 +1 @@ ++Fix a bug introduced in Synapse 1.51.0rc1 where incoming federation transactions containing at least one EDU would be dropped if debug logging was enabled for `synapse.8631_debug`. +\ No newline at end of file +diff --git a/synapse/federation/transport/server/federation.py b/synapse/federation/transport/server/federation.py +index 9c1ad5851f..d86dfede4e 100644 +--- a/synapse/federation/transport/server/federation.py ++++ b/synapse/federation/transport/server/federation.py +@@ -109,11 +109,11 @@ class FederationSendServlet(BaseFederationServerServlet): + ) + + if issue_8631_logger.isEnabledFor(logging.DEBUG): +- DEVICE_UPDATE_EDUS = {"m.device_list_update", "m.signing_key_update"} ++ DEVICE_UPDATE_EDUS = ["m.device_list_update", "m.signing_key_update"] + device_list_updates = [ + edu.content + for edu in transaction_data.get("edus", []) +- if edu.edu_type in DEVICE_UPDATE_EDUS ++ if edu.get("edu_type") in DEVICE_UPDATE_EDUS + ] + if device_list_updates: + issue_8631_logger.debug( +-- +2.34.1 + diff --git a/matrix-synapse.spec b/matrix-synapse.spec index c8bbc59..d2c117a 100644 --- a/matrix-synapse.spec +++ b/matrix-synapse.spec @@ -7,7 +7,7 @@ Name: matrix-%{srcname} Version: 1.52.0 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A Matrix reference homeserver written in Python using Twisted License: ASL 2.0 URL: https://github.com/matrix-org/%{srcname} @@ -18,6 +18,7 @@ Source3: matrix-synapse.sysusers # non-upstreamable patch to accept any version of python-cryptography, see RHBZ#1978949 Patch1: 0001-relax-cryptography-dependency-version-requirement.patch Patch2: 0002-Fix-type-errors-introduced-by-new-annotations-in-the.patch +Patch3: 0003-Fix-losing-incoming-EDUs-if-debug-logging-enabled-11.patch BuildArch: noarch BuildRequires: python3-devel @@ -140,6 +141,9 @@ PYTHONPATH=. trial-3 tests %changelog +* Wed Feb 09 2022 Kai A. Hiller - 1.52.0-2 +- Backport: Fix losing incoming EDUs if debug logging enabled + * Tue Feb 08 2022 Kai A. Hiller - 1.52.0-1 - Update to v1.52.0 - Create synapse user and group declaratively