Properly switch to element-hq-synapse and introduce variables for customizing that
This commit is contained in:
parent
c0afcaa2e3
commit
aa0a85b094
41
CHANGELOG.md
41
CHANGELOG.md
@ -1,3 +1,44 @@
|
||||
# 2024-01-17
|
||||
|
||||
## Switching to Element's AGPLv3-licensed Synapse release
|
||||
|
||||
A few months ago, the [Element](https://element.io/) company has [announced](https://element.io/blog/element-to-adopt-agplv3/) that their work on the Synapse homeserver would no longer be available under the permissive [Apache-2.0 license](https://www.apache.org/licenses/LICENSE-2.0), but only under:
|
||||
|
||||
- the [AGPLv3](https://www.gnu.org/licenses/agpl-3.0.en.html) free-software license - the same license that this Ansible playbook has always used
|
||||
- a proprietary license, for those wishing for Element to [sell them an exception](https://gnu.org/philosophy/selling-exceptions.html) to the AGPLv3 license
|
||||
|
||||
You can also learn more in [this post](https://matrix.org/blog/2023/11/06/future-of-synapse-dendrite/) by the Matrix Foundation.
|
||||
|
||||
The change has [already happened](https://element.io/blog/synapse-now-lives-at-github-com-element-hq-synapse/) and the first Synapse release under the new license is here: [v1.99.0](https://github.com/element-hq/synapse/releases/tag/v1.99.0).
|
||||
|
||||
There is no up-to-date alternative Synapse fork right now and this free-software (AGPLv3-licensed) playbook is definitely not against free-software licenses, so we are now switching to the Element-maintained Synapse release.
|
||||
|
||||
**What does this mean to you?**
|
||||
|
||||
For most home users, it doesn't mean anything. Your installation will continue working as it should and you don't need to do anything.
|
||||
|
||||
For people building commercial products on top of Synapse, they may have to either buy a license exception from Element (from what we hear, the fee depends on the number of monthly-active users on your instance) or they may need to release all related code as free-software (which is what we've been doing at [etke.cc](https://etke.cc/) ([here](https://gitlab.com/etke.cc)) all along).
|
||||
|
||||
We're no lawyers and this changelog entry does not aim to give you the best legal advice, so please research on your own!
|
||||
|
||||
If you'd like to continue using the old Apache-2.0-licensed Synapse (for a while longer anyway), the playbook makes it possible by intruducing a new Ansible variable. You can do it like this:
|
||||
|
||||
```yaml
|
||||
# Switch the organization that Synapse container images (or source code for self-building) are pulled from.
|
||||
# Note: the new default value is `element-hq/synapse`.
|
||||
matrix_synapse_github_org_and_repo: matrix-org/synapse
|
||||
|
||||
# Pin the Synapse version to the last one (v1.98.0) released by the Matrix Foundation
|
||||
# under the old permissive Apache-2.0 license.
|
||||
matrix_synapse_version: v1.98.0
|
||||
```
|
||||
|
||||
Notes:
|
||||
|
||||
- if you had already upgraded Synapse to `v1.99.0` by running this playbook, you will still be able to downgrade to `v1.98.0`, because both releases use the same database schema version (`SCHEMA_COMPAT_VERSION = 83` - see [here for v1.98.0](https://github.com/element-hq/synapse/blob/v1.98.0/synapse/storage/schema/__init__.py#L131-L134) and [here for v1.99.0](https://github.com/element-hq/synapse/blob/v1.99.0/synapse/storage/schema/__init__.py#L137-L140)). More details on Synapse's database schema are available [here](https://element-hq.github.io/synapse/develop/development/database_schema.html). It appears that there are no new database migrations introduced in `v1.99.0`, so going back to the older release is possible. This is not guaranteed to hold true for future Synapse releases, so if you're seeing this early-enough, consider pinning the version and organization before re-running the playbook and getting upgraded to the latest version
|
||||
|
||||
- running an outdated homeserver exposes you to security issues and incompatibilities. Only consider doing this as a short-term solution.
|
||||
|
||||
# 2024-01-16
|
||||
|
||||
## `Draupnir` has been relicensed to AFL-3.0
|
||||
|
@ -12,7 +12,7 @@ matrix_prometheus_services_connect_synapse_rules_enabled: "{{ matrix_prometheus_
|
||||
# Controls whether the synapse rules shall be downloaded
|
||||
matrix_prometheus_services_connect_synapse_rules_download_enabled: "{{ matrix_prometheus_services_connect_synapse_rules_enabled }}"
|
||||
matrix_prometheus_services_connect_synapse_rules_download_synapse_tag: master
|
||||
matrix_prometheus_services_connect_synapse_rules_download_src_url: "https://raw.githubusercontent.com/matrix-org/synapse/{{ matrix_prometheus_services_connect_synapse_rules_download_synapse_tag }}/contrib/prometheus/synapse-v2.rules"
|
||||
matrix_prometheus_services_connect_synapse_rules_download_src_url: "https://raw.githubusercontent.com/{{ matrix_synapse_github_org_and_repo }}/{{ matrix_prometheus_services_connect_synapse_rules_download_synapse_tag }}/contrib/prometheus/synapse-v2.rules"
|
||||
matrix_prometheus_services_connect_synapse_rules_download_dir_path: ''
|
||||
matrix_prometheus_services_connect_synapse_rules_download_owner: ''
|
||||
matrix_prometheus_services_connect_synapse_rules_download_group: ''
|
||||
|
@ -4,6 +4,17 @@
|
||||
|
||||
matrix_synapse_enabled: true
|
||||
|
||||
# Specifies which Github organization and repository name Synapse lives at.
|
||||
#
|
||||
# This influences:
|
||||
# - the Github Container Image registry that container images are pulled from (see `matrix_synapse_docker_image_name`)
|
||||
# - the git repository to code is pulled from when self-building is used (see `matrix_synapse_container_image_self_build_repo`)
|
||||
# - potentially other roles which need to reference the Synapse git repository
|
||||
#
|
||||
# A popular alternative value may be: `matrix-org/synapse`.
|
||||
# However, do note that the last Synapse version available there is v1.98.0.
|
||||
matrix_synapse_github_org_and_repo: element-hq/synapse
|
||||
|
||||
# renovate: datasource=docker depName=ghcr.io/element-hq/synapse
|
||||
matrix_synapse_version: v1.98.0
|
||||
|
||||
@ -12,7 +23,7 @@ matrix_synapse_uid: ''
|
||||
matrix_synapse_gid: ''
|
||||
|
||||
matrix_synapse_container_image_self_build: false
|
||||
matrix_synapse_container_image_self_build_repo: "https://github.com/element-hq/synapse.git"
|
||||
matrix_synapse_container_image_self_build_repo: "https://github.com/{{ matrix_synapse_github_org_and_repo }}.git"
|
||||
|
||||
# matrix_synapse_container_image_customizations_enabled controls whether a customized Synapse image will be built.
|
||||
#
|
||||
@ -72,7 +83,7 @@ matrix_synapse_container_image_customizations_dockerfile_body_custom: ''
|
||||
|
||||
matrix_synapse_docker_image: "{{ matrix_synapse_docker_image_name_prefix }}{{ matrix_synapse_docker_image_name }}:{{ matrix_synapse_docker_image_tag }}"
|
||||
matrix_synapse_docker_image_name_prefix: "{{ 'localhost/' if matrix_synapse_container_image_self_build else matrix_synapse_docker_image_registry_prefix }}"
|
||||
matrix_synapse_docker_image_name: element-hq/synapse
|
||||
matrix_synapse_docker_image_name: "{{ matrix_synapse_github_org_and_repo }}"
|
||||
matrix_synapse_docker_image_tag: "{{ matrix_synapse_version }}"
|
||||
matrix_synapse_docker_image_force_pull: "{{ matrix_synapse_docker_image.endswith(':latest') }}"
|
||||
matrix_synapse_docker_image_registry_prefix: ghcr.io/
|
||||
|
Loading…
Reference in New Issue
Block a user