From 913ee1bd969b18d28a0d5f921f4aebe778b6382a Mon Sep 17 00:00:00 2001 From: Joel Beckmeyer Date: Thu, 2 Dec 2021 12:13:58 -0500 Subject: [PATCH] synapse: update to 1.49.0. Remove outdated INSTALL and include default configs in package instead Remove unneeded `finish` script from `synapse` service Use `synapse_homeserver` entrypoint instead of calling python directly Redirect stderr to stdout so that errors with config can be seen by user Support ${makejobs} in do_check() --- srcpkgs/synapse/INSTALL | 27 ------ srcpkgs/synapse/files/synapse/finish | 2 - srcpkgs/synapse/files/synapse/run | 5 +- srcpkgs/synapse/patches/sample_config.patch | 88 +++++++++++++++++++ .../synapse/patches/sample_log_config.patch | 13 +++ srcpkgs/synapse/template | 14 +-- 6 files changed, 112 insertions(+), 37 deletions(-) delete mode 100644 srcpkgs/synapse/INSTALL delete mode 100644 srcpkgs/synapse/files/synapse/finish create mode 100644 srcpkgs/synapse/patches/sample_config.patch create mode 100644 srcpkgs/synapse/patches/sample_log_config.patch diff --git a/srcpkgs/synapse/INSTALL b/srcpkgs/synapse/INSTALL deleted file mode 100644 index fd925ee45e..0000000000 --- a/srcpkgs/synapse/INSTALL +++ /dev/null @@ -1,27 +0,0 @@ -# -# Tell user to generate configuration when they first install it -# Taken from Arch Linux -# -case "${ACTION}" in -post) - if [ ! -e /etc/synapse/homeserver.yaml ]; then - cat <<-EOF - ==> A synapse configuration file needs to be generated before you can - start synapse, and you should make sure that it's readable by the - synapse user. - - cd /var/lib/synapse - sudo -u synapse python3 -m synapse.app.homeserver \\ - --server-name my.domain.name \\ - --config-path /etc/synapse/homeserver.yaml \\ - --generate-config \\ - --report-stats=yes - - N.B.: The default synapse config enables the webclient feature. - You need to either disable it, install the syweb python package - from matrix-angular-sdk, or set 'web_client_location' to a path - to make synapse not try to serve it using syweb. - EOF - fi - ;; -esac diff --git a/srcpkgs/synapse/files/synapse/finish b/srcpkgs/synapse/files/synapse/finish deleted file mode 100644 index a5324d1084..0000000000 --- a/srcpkgs/synapse/files/synapse/finish +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh -exec synctl stop /etc/synapse/homeserver.yaml diff --git a/srcpkgs/synapse/files/synapse/run b/srcpkgs/synapse/files/synapse/run index b44a418676..1ab3a5a8d5 100644 --- a/srcpkgs/synapse/files/synapse/run +++ b/srcpkgs/synapse/files/synapse/run @@ -1,5 +1,4 @@ #!/bin/sh cd /var/lib/synapse -exec chpst -u synapse:synapse python3 \ - -m synapse.app.homeserver \ - --config-path=/etc/synapse/homeserver.yaml +exec 2>&1 +exec chpst -u synapse:synapse synapse_homeserver -c /etc/synapse/homeserver.yaml diff --git a/srcpkgs/synapse/patches/sample_config.patch b/srcpkgs/synapse/patches/sample_config.patch new file mode 100644 index 0000000000..15954e0cd7 --- /dev/null +++ b/srcpkgs/synapse/patches/sample_config.patch @@ -0,0 +1,88 @@ +diff --git a/docs/sample_config.yaml b/docs/sample_config.yaml +index 6696ed5d1..f17661fff 100644 +--- a/docs/sample_config.yaml ++++ b/docs/sample_config.yaml +@@ -68,11 +68,11 @@ modules: + # lowercase and may contain an explicit port. + # Examples: matrix.org, localhost:8080 + # +-server_name: "SERVERNAME" ++#server_name: "SERVERNAME" + + # When running as a daemon, the file to store the pid in + # +-pid_file: DATADIR/homeserver.pid ++#pid_file: /var/lib/synapse/homeserver.pid + + # The absolute URL to the web client which /_matrix/client will redirect + # to if 'webclient' is configured under the 'listeners' configuration. +@@ -370,8 +370,8 @@ manhole_settings: + # If these are left unset, then hardcoded and non-secret keys are used, + # which could allow traffic to be intercepted if sent over a public network. + # +- #ssh_priv_key_path: CONFDIR/id_rsa +- #ssh_pub_key_path: CONFDIR/id_rsa.pub ++ #ssh_priv_key_path: /etc/synapse/id_rsa ++ #ssh_pub_key_path: /etc/synapse/id_rsa.pub + + # Forward extremities can build up in a room due to networking delays between + # homeservers. Once this happens in a large room, calculation of the state of +@@ -614,11 +614,11 @@ retention: + # any intermediate certificates (for instance, if using certbot, use + # `fullchain.pem` as your certificate, not `cert.pem`). + # +-#tls_certificate_path: "CONFDIR/SERVERNAME.tls.crt" ++#tls_certificate_path: "/etc/synapse/SERVERNAME.tls.crt" + + # PEM-encoded private key for TLS + # +-#tls_private_key_path: "CONFDIR/SERVERNAME.tls.key" ++#tls_private_key_path: "/etc/synapse/SERVERNAME.tls.key" + + # Whether to verify TLS server certificates for outbound federation requests. + # +@@ -808,7 +808,7 @@ caches: + database: + name: sqlite3 + args: +- database: DATADIR/homeserver.db ++ database: /var/lib/synapse/homeserver.db + + + ## Logging ## +@@ -816,7 +816,7 @@ database: + # A yaml python logging config file as described by + # https://docs.python.org/3.7/library/logging.config.html#configuration-dictionary-schema + # +-log_config: "CONFDIR/SERVERNAME.log.config" ++log_config: "/etc/synapse/log.yaml" + + + ## Ratelimiting ## +@@ -942,7 +942,7 @@ log_config: "CONFDIR/SERVERNAME.log.config" + + # Directory where uploaded images and attachments are stored. + # +-media_store_path: "DATADIR/media_store" ++media_store_path: "/var/lib/synapse/media_store" + + # Media storage providers allow media to be stored in different + # locations. +@@ -1531,7 +1531,7 @@ room_prejoin_state: + + # Path to the signing key to sign messages with + # +-signing_key_path: "CONFDIR/SERVERNAME.signing.key" ++signing_key_path: "/etc/synapse/SERVERNAME.signing.key" + + # The keys that the server used to sign messages with but won't use + # to sign new messages. +@@ -1710,7 +1710,7 @@ saml2_config: + # Instead of putting the config inline as above, you can specify a + # separate pysaml2 configuration file: + # +- #config_path: "CONFDIR/sp_conf.py" ++ #config_path: "/etc/synapse/sp_conf.py" + + # The lifetime of a SAML session. This defines how long a user has to + # complete the authentication process, if allow_unsolicited is unset. diff --git a/srcpkgs/synapse/patches/sample_log_config.patch b/srcpkgs/synapse/patches/sample_log_config.patch new file mode 100644 index 0000000000..e4196a4464 --- /dev/null +++ b/srcpkgs/synapse/patches/sample_log_config.patch @@ -0,0 +1,13 @@ +diff --git a/docs/sample_log_config.yaml b/docs/sample_log_config.yaml +index 2485ad25e..71465726b 100644 +--- a/docs/sample_log_config.yaml ++++ b/docs/sample_log_config.yaml +@@ -19,7 +19,7 @@ handlers: + file: + class: logging.handlers.TimedRotatingFileHandler + formatter: precise +- filename: /var/log/matrix-synapse/homeserver.log ++ filename: /var/log/synapse/homeserver.log + when: midnight + backupCount: 3 # Does not include the current log file. + encoding: utf8 diff --git a/srcpkgs/synapse/template b/srcpkgs/synapse/template index bd5f529503..076294326e 100644 --- a/srcpkgs/synapse/template +++ b/srcpkgs/synapse/template @@ -1,6 +1,6 @@ # Template file for 'synapse' pkgname=synapse -version=1.48.0 +version=1.49.0 revision=1 build_style=python3-module hostmakedepends="python3-setuptools" @@ -12,26 +12,30 @@ depends="python3-jsonschema python3-frozendict python3-canonicaljson python3-setuptools python3-bleach python3-Jinja2 python3-psycopg2 python3-lxml python3-saml2 python3-treq python3-macaroons python3-sortedcontainers python3-typing_extensions python3-ijson" -checkdepends="$depends python3-parameterized" +checkdepends="$depends python3-parameterized python3-mock" short_desc="Matrix reference homeserver" maintainer="Joel Beckmeyer " license="Apache-2.0" homepage="https://github.com/matrix-org/synapse" changelog="https://raw.githubusercontent.com/matrix-org/synapse/develop/CHANGES.md" distfiles="https://github.com/matrix-org/synapse/archive/v${version}.tar.gz" -checksum=182facc856f8d0c0d2d0dd4105fae4f851297167c0ee95c202a3aad9ed86c486 +checksum=3c1b73eb36ec3af00868707b929f9b9d1faae9ccc4022c2c46bdb025ef0ead8e +conf_files="/etc/synapse/homeserver.yaml /etc/synapse/log.yaml" system_accounts="synapse" synapse_homedir="/var/lib/synapse" make_dirs=" /var/lib/synapse 0700 synapse synapse - /etc/synapse 0755 synapse synapse" + /var/log/synapse 0755 synapse synapse" do_check() { - PYTHONPATH="." trial3 tests + PYTHONPATH="." trial3 ${makejobs} tests } post_install() { vsv synapse + + vinstall docs/sample_config.yaml 644 etc/synapse homeserver.yaml + vinstall docs/sample_log_config.yaml 644 etc/synapse log.yaml }