diff --git a/srcpkgs/synapse/patches/attrs-min-version.patch b/srcpkgs/synapse/patches/attrs-min-version.patch
new file mode 100644
index 00000000000000..fe5ad0b280ff31
--- /dev/null
+++ b/srcpkgs/synapse/patches/attrs-min-version.patch
@@ -0,0 +1,283 @@
+From be03be7b50ca914d73757a00d2819807187aa3a8 Mon Sep 17 00:00:00 2001
+From: Oleg Girko
+Date: Wed, 20 May 2026 11:47:43 +0100
+Subject: [PATCH] Partially revert "Bump attrs from 25.4.0 to 26.1.0 (#19684)"
+ (#19789)
+
+Accidental bump broke build for Fedora and RHEL.
+
+This reverts commit 2e9d6f7f35df53f510b689c09d3a9ace82a0d840.
+
+As discussed in the [Synapse Package
+Maintainers](https://matrix.to/#/!rh9Uxk45AsPongyP3ypgpsCmuIufiggD6mDXFWh4_FM/$0mdulZEyJFdI6bwS8GFwYnFt-zmpyCyx2DwcA8JyuY8?via=jki.re&via=matrix.org&via=element.io)
+room (private)
+---
+ changelog.d/19789.bugfix | 1 +
+ poetry.lock | 53 ++++++++++++++++++++--------------------
+ pyproject.toml | 2 +-
+ 3 files changed, 29 insertions(+), 27 deletions(-)
+ create mode 100644 changelog.d/19789.bugfix
+
+diff --git a/changelog.d/19789.bugfix b/changelog.d/19789.bugfix
+new file mode 100644
+index 00000000000..f6c325ec824
+--- /dev/null
++++ b/changelog.d/19789.bugfix
+@@ -0,0 +1 @@
++Fix packaging for Fedora and EPEL caused by unnecessary bumping `attrs` minimum version requirement in `pyproject.toml` file. Contributed by Oleg Girko.
+diff --git a/poetry.lock b/poetry.lock
+index ab790015bb6..92c25d93085 100644
+--- a/poetry.lock
++++ b/poetry.lock
+@@ -31,7 +31,7 @@ description = "The ultimate Python library in building OAuth and OpenID Connect
+ optional = true
+ python-versions = ">=3.9"
+ groups = ["main"]
+-markers = "extra == \"all\" or extra == \"jwt\" or extra == \"oidc\""
++markers = "extra == \"oidc\" or extra == \"jwt\" or extra == \"all\""
+ files = [
+ {file = "authlib-1.6.12-py2.py3-none-any.whl", hash = "sha256:e9229ad7fde610b139dd12f5edbe97eab9ee78bfb85691247e767727850b99ab"},
+ {file = "authlib-1.6.12.tar.gz", hash = "sha256:0656d8482f28fc8221929d5f35b2bde5d13e10555ebc06b4561b0d622e83b1bd"},
+@@ -62,7 +62,7 @@ description = "Backport of CPython tarfile module"
+ optional = false
+ python-versions = ">=3.8"
+ groups = ["dev"]
+-markers = "platform_machine != \"ppc64le\" and platform_machine != \"s390x\" and python_version < \"3.12\""
++markers = "python_version < \"3.12\" and platform_machine != \"ppc64le\" and platform_machine != \"s390x\""
+ files = [
+ {file = "backports.tarfile-1.2.0-py3-none-any.whl", hash = "sha256:77e284d754527b01fb1e6fa8a1afe577858ebe4e9dad8919e34c862cb399bc34"},
+ {file = "backports_tarfile-1.2.0.tar.gz", hash = "sha256:d75e02c268746e1b8144c278978b6e98e85de6ad16f8e4b0844a154557eca991"},
+@@ -531,7 +531,7 @@ description = "XML bomb protection for Python stdlib modules"
+ optional = true
+ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
+ groups = ["main"]
+-markers = "extra == \"all\" or extra == \"saml2\""
++markers = "extra == \"saml2\" or extra == \"all\""
+ files = [
+ {file = "defusedxml-0.7.1-py2.py3-none-any.whl", hash = "sha256:a352e7e428770286cc899e2542b6cdaedb2b4953ff269a210103ec58f6198a61"},
+ {file = "defusedxml-0.7.1.tar.gz", hash = "sha256:1bb3032db185915b62d7c6209c5a8792be6a32ab2fedacc84e01b52c51aa3e69"},
+@@ -556,7 +556,7 @@ description = "XPath 1.0/2.0/3.0/3.1 parsers and selectors for ElementTree and l
+ optional = true
+ python-versions = ">=3.8"
+ groups = ["main"]
+-markers = "extra == \"all\" or extra == \"saml2\""
++markers = "extra == \"saml2\" or extra == \"all\""
+ files = [
+ {file = "elementpath-4.8.0-py3-none-any.whl", hash = "sha256:5393191f84969bcf8033b05ec4593ef940e58622ea13cefe60ecefbbf09d58d9"},
+ {file = "elementpath-4.8.0.tar.gz", hash = "sha256:5822a2560d99e2633d95f78694c7ff9646adaa187db520da200a8e9479dc46ae"},
+@@ -606,7 +606,7 @@ description = "Python wrapper for hiredis"
+ optional = true
+ python-versions = ">=3.8"
+ groups = ["main"]
+-markers = "extra == \"all\" or extra == \"redis\""
++markers = "extra == \"redis\" or extra == \"all\""
+ files = [
+ {file = "hiredis-3.3.1-cp310-cp310-macosx_10_15_universal2.whl", hash = "sha256:f525734382a47f9828c9d6a1501522c78d5935466d8e2be1a41ba40ca5bb922b"},
+ {file = "hiredis-3.3.1-cp310-cp310-macosx_10_15_x86_64.whl", hash = "sha256:6e2e1024f0a021777740cb7c633a0efb2c4a4bc570f508223a8dcbcf79f99ef9"},
+@@ -889,7 +889,7 @@ description = "Read metadata from Python packages"
+ optional = false
+ python-versions = ">=3.9"
+ groups = ["dev"]
+-markers = "platform_machine != \"ppc64le\" and platform_machine != \"s390x\" and python_version < \"3.12\""
++markers = "python_version < \"3.12\" and platform_machine != \"ppc64le\" and platform_machine != \"s390x\""
+ files = [
+ {file = "importlib_metadata-8.7.1-py3-none-any.whl", hash = "sha256:5a1f80bf1daa489495071efbb095d75a634cf28a8bc299581244063b53176151"},
+ {file = "importlib_metadata-8.7.1.tar.gz", hash = "sha256:49fef1ae6440c182052f407c8d34a68f72efc36db9ca90dc0113398f2fdde8bb"},
+@@ -930,7 +930,7 @@ description = "Jaeger Python OpenTracing Tracer implementation"
+ optional = true
+ python-versions = ">=3.7"
+ groups = ["main"]
+-markers = "extra == \"all\" or extra == \"opentracing\""
++markers = "extra == \"opentracing\" or extra == \"all\""
+ files = [
+ {file = "jaeger-client-4.8.0.tar.gz", hash = "sha256:3157836edab8e2c209bd2d6ae61113db36f7ee399e66b1dcbb715d87ab49bfe0"},
+ ]
+@@ -1122,7 +1122,7 @@ description = "A strictly RFC 4510 conforming LDAP V3 pure Python client library
+ optional = true
+ python-versions = "*"
+ groups = ["main"]
+-markers = "extra == \"all\" or extra == \"matrix-synapse-ldap3\""
++markers = "extra == \"matrix-synapse-ldap3\" or extra == \"all\""
+ files = [
+ {file = "ldap3-2.9.1-py2.py3-none-any.whl", hash = "sha256:5869596fc4948797020d3f03b7939da938778a0f9e2009f7a072ccf92b8e8d70"},
+ {file = "ldap3-2.9.1.tar.gz", hash = "sha256:f3e7fc4718e3f09dda568b57100095e0ce58633bcabbed8667ce3f8fbaa4229f"},
+@@ -1239,7 +1239,7 @@ description = "Powerful and Pythonic XML processing library combining libxml2/li
+ optional = true
+ python-versions = ">=3.8"
+ groups = ["main"]
+-markers = "extra == \"all\" or extra == \"url-preview\""
++markers = "extra == \"url-preview\" or extra == \"all\""
+ files = [
+ {file = "lxml-6.0.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:e77dd455b9a16bbd2a5036a63ddbd479c19572af81b624e79ef422f929eef388"},
+ {file = "lxml-6.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:5d444858b9f07cefff6455b983aea9a67f7462ba1f6cbe4a21e8bf6791bf2153"},
+@@ -1553,7 +1553,7 @@ description = "An LDAP3 auth provider for Synapse"
+ optional = true
+ python-versions = ">=3.10"
+ groups = ["main"]
+-markers = "extra == \"all\" or extra == \"matrix-synapse-ldap3\""
++markers = "extra == \"matrix-synapse-ldap3\" or extra == \"all\""
+ files = [
+ {file = "matrix_synapse_ldap3-0.4.0-py3-none-any.whl", hash = "sha256:bf080037230d2af5fd3639cb87266de65c1cad7a68ea206278c5b4bf9c1a17f3"},
+ {file = "matrix_synapse_ldap3-0.4.0.tar.gz", hash = "sha256:cff52ba780170de5e6e8af42863d2648ee23f3bf0a9fea6db52372f9fc00be2b"},
+@@ -1834,7 +1834,7 @@ description = "OpenTracing API for Python. See documentation at http://opentraci
+ optional = true
+ python-versions = "*"
+ groups = ["main"]
+-markers = "extra == \"all\" or extra == \"opentracing\""
++markers = "extra == \"opentracing\" or extra == \"all\""
+ files = [
+ {file = "opentracing-2.4.0.tar.gz", hash = "sha256:a173117e6ef580d55874734d1fa7ecb6f3655160b8b8974a2a1e98e5ec9c840d"},
+ ]
+@@ -2032,7 +2032,7 @@ description = "psycopg2 - Python-PostgreSQL Database Adapter"
+ optional = true
+ python-versions = ">=3.9"
+ groups = ["main"]
+-markers = "extra == \"all\" or extra == \"postgres\""
++markers = "extra == \"postgres\" or extra == \"all\""
+ files = [
+ {file = "psycopg2-2.9.11-cp310-cp310-win_amd64.whl", hash = "sha256:103e857f46bb76908768ead4e2d0ba1d1a130e7b8ed77d3ae91e8b33481813e8"},
+ {file = "psycopg2-2.9.11-cp311-cp311-win_amd64.whl", hash = "sha256:210daed32e18f35e3140a1ebe059ac29209dd96468f2f7559aa59f75ee82a5cb"},
+@@ -2050,7 +2050,7 @@ description = ".. image:: https://travis-ci.org/chtd/psycopg2cffi.svg?branch=mas
+ optional = true
+ python-versions = "*"
+ groups = ["main"]
+-markers = "platform_python_implementation == \"PyPy\" and (extra == \"all\" or extra == \"postgres\")"
++markers = "platform_python_implementation == \"PyPy\" and (extra == \"postgres\" or extra == \"all\")"
+ files = [
+ {file = "psycopg2cffi-2.9.0.tar.gz", hash = "sha256:7e272edcd837de3a1d12b62185eb85c45a19feda9e62fa1b120c54f9e8d35c52"},
+ ]
+@@ -2066,7 +2066,7 @@ description = "A Simple library to enable psycopg2 compatability"
+ optional = true
+ python-versions = "*"
+ groups = ["main"]
+-markers = "platform_python_implementation == \"PyPy\" and (extra == \"all\" or extra == \"postgres\")"
++markers = "platform_python_implementation == \"PyPy\" and (extra == \"postgres\" or extra == \"all\")"
+ files = [
+ {file = "psycopg2cffi-compat-1.1.tar.gz", hash = "sha256:d25e921748475522b33d13420aad5c2831c743227dc1f1f2585e0fdb5c914e05"},
+ ]
+@@ -2348,7 +2348,7 @@ description = "A development tool to measure, monitor and analyze the memory beh
+ optional = true
+ python-versions = ">=3.6"
+ groups = ["main"]
+-markers = "extra == \"all\" or extra == \"cache-memory\""
++markers = "extra == \"cache-memory\" or extra == \"all\""
+ files = [
+ {file = "Pympler-1.0.1-py3-none-any.whl", hash = "sha256:d260dda9ae781e1eab6ea15bacb84015849833ba5555f141d2d9b7b7473b307d"},
+ {file = "Pympler-1.0.1.tar.gz", hash = "sha256:993f1a3599ca3f4fcd7160c7545ad06310c9e12f70174ae7ae8d4e25f6c5d3fa"},
+@@ -2480,7 +2480,7 @@ description = "Python implementation of SAML Version 2 Standard"
+ optional = true
+ python-versions = ">=3.9,<4.0"
+ groups = ["main"]
+-markers = "extra == \"all\" or extra == \"saml2\""
++markers = "extra == \"saml2\" or extra == \"all\""
+ files = [
+ {file = "pysaml2-7.5.0-py3-none-any.whl", hash = "sha256:bc6627cc344476a83c757f440a73fda1369f13b6fda1b4e16bca63ffbabb5318"},
+ {file = "pysaml2-7.5.0.tar.gz", hash = "sha256:f36871d4e5ee857c6b85532e942550d2cf90ea4ee943d75eb681044bbc4f54f7"},
+@@ -2505,7 +2505,7 @@ description = "Extensions to the standard Python datetime module"
+ optional = true
+ python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7"
+ groups = ["main"]
+-markers = "extra == \"all\" or extra == \"saml2\""
++markers = "extra == \"saml2\" or extra == \"all\""
+ files = [
+ {file = "python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3"},
+ {file = "python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427"},
+@@ -2533,7 +2533,7 @@ description = "World timezone definitions, modern and historical"
+ optional = true
+ python-versions = "*"
+ groups = ["main"]
+-markers = "extra == \"all\" or extra == \"saml2\""
++markers = "extra == \"saml2\" or extra == \"all\""
+ files = [
+ {file = "pytz-2026.1.post1-py2.py3-none-any.whl", hash = "sha256:f2fd16142fda348286a75e1a524be810bb05d444e5a081f37f7affc635035f7a"},
+ {file = "pytz-2026.1.post1.tar.gz", hash = "sha256:3378dde6a0c3d26719182142c56e60c7f9af7e968076f31aae569d72a0358ee1"},
+@@ -2938,7 +2938,7 @@ description = "Python client for Sentry (https://sentry.io)"
+ optional = true
+ python-versions = ">=3.6"
+ groups = ["main"]
+-markers = "extra == \"all\" or extra == \"sentry\""
++markers = "extra == \"sentry\" or extra == \"all\""
+ files = [
+ {file = "sentry_sdk-2.57.0-py2.py3-none-any.whl", hash = "sha256:812c8bf5ff3d2f0e89c82f5ce80ab3a6423e102729c4706af7413fd1eb480585"},
+ {file = "sentry_sdk-2.57.0.tar.gz", hash = "sha256:4be8d1e71c32fb27f79c577a337ac8912137bba4bcbc64a4ec1da4d6d8dc5199"},
+@@ -3138,7 +3138,7 @@ description = "Tornado IOLoop Backed Concurrent Futures"
+ optional = true
+ python-versions = "*"
+ groups = ["main"]
+-markers = "extra == \"all\" or extra == \"opentracing\""
++markers = "extra == \"opentracing\" or extra == \"all\""
+ files = [
+ {file = "threadloop-1.0.2-py2-none-any.whl", hash = "sha256:5c90dbefab6ffbdba26afb4829d2a9df8275d13ac7dc58dccb0e279992679599"},
+ {file = "threadloop-1.0.2.tar.gz", hash = "sha256:8b180aac31013de13c2ad5c834819771992d350267bddb854613ae77ef571944"},
+@@ -3154,7 +3154,7 @@ description = "Python bindings for the Apache Thrift RPC system"
+ optional = true
+ python-versions = "*"
+ groups = ["main"]
+-markers = "extra == \"all\" or extra == \"opentracing\""
++markers = "extra == \"opentracing\" or extra == \"all\""
+ files = [
+ {file = "thrift-0.22.0.tar.gz", hash = "sha256:42e8276afbd5f54fe1d364858b6877bc5e5a4a5ed69f6a005b94ca4918fe1466"},
+ ]
+@@ -3220,6 +3220,7 @@ files = [
+ {file = "tomli-2.4.0-py3-none-any.whl", hash = "sha256:1f776e7d669ebceb01dee46484485f43a4048746235e683bcdffacdf1fb4785a"},
+ {file = "tomli-2.4.0.tar.gz", hash = "sha256:aa89c3f6c277dd275d8e243ad24f3b5e701491a860d5121f2cdd399fbb31fc9c"},
+ ]
++markers = {main = "python_version < \"3.14\""}
+
+ [[package]]
+ name = "tornado"
+@@ -3228,7 +3229,7 @@ description = "Tornado is a Python web framework and asynchronous networking lib
+ optional = true
+ python-versions = ">=3.9"
+ groups = ["main"]
+-markers = "extra == \"all\" or extra == \"opentracing\""
++markers = "extra == \"opentracing\" or extra == \"all\""
+ files = [
+ {file = "tornado-6.5.5-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:487dc9cc380e29f58c7ab88f9e27cdeef04b2140862e5076a66fb6bb68bb1bfa"},
+ {file = "tornado-6.5.5-cp39-abi3-macosx_10_9_x86_64.whl", hash = "sha256:65a7f1d46d4bb41df1ac99f5fcb685fb25c7e61613742d5108b010975a9a6521"},
+@@ -3360,7 +3361,7 @@ description = "non-blocking redis client for python"
+ optional = true
+ python-versions = "*"
+ groups = ["main"]
+-markers = "extra == \"all\" or extra == \"redis\""
++markers = "extra == \"redis\" or extra == \"all\""
+ files = [
+ {file = "txredisapi-1.4.11-py3-none-any.whl", hash = "sha256:ac64d7a9342b58edca13ef267d4fa7637c1aa63f8595e066801c1e8b56b22d0b"},
+ {file = "txredisapi-1.4.11.tar.gz", hash = "sha256:3eb1af99aefdefb59eb877b1dd08861efad60915e30ad5bf3d5bf6c5cedcdbc6"},
+@@ -3621,7 +3622,7 @@ description = "An XML Schema validator and decoder"
+ optional = true
+ python-versions = ">=3.7"
+ groups = ["main"]
+-markers = "extra == \"all\" or extra == \"saml2\""
++markers = "extra == \"saml2\" or extra == \"all\""
+ files = [
+ {file = "xmlschema-2.5.1-py3-none-any.whl", hash = "sha256:ec2b2a15c8896c1fcd14dcee34ca30032b99456c3c43ce793fdb9dca2fb4b869"},
+ {file = "xmlschema-2.5.1.tar.gz", hash = "sha256:4f7497de6c8b6dc2c28ad7b9ed6e21d186f4afe248a5bea4f54eedab4da44083"},
+@@ -3642,7 +3643,7 @@ description = "Backport of pathlib-compatible object wrapper for zip files"
+ optional = false
+ python-versions = ">=3.9"
+ groups = ["dev"]
+-markers = "platform_machine != \"ppc64le\" and platform_machine != \"s390x\" and python_version < \"3.12\""
++markers = "python_version < \"3.12\" and platform_machine != \"ppc64le\" and platform_machine != \"s390x\""
+ files = [
+ {file = "zipp-3.23.0-py3-none-any.whl", hash = "sha256:071652d6115ed432f5ce1d34c336c0adfd6a884660d1e9712a256d3d3bd4b14e"},
+ {file = "zipp-3.23.0.tar.gz", hash = "sha256:a07157588a12518c9d4034df3fbbee09c814741a33ff63c05fa29d26a2404166"},
+@@ -3755,4 +3756,4 @@ url-preview = ["lxml"]
+ [metadata]
+ lock-version = "2.1"
+ python-versions = ">=3.10.0,<4.0.0"
+-content-hash = "d97bee07fec0f4048d964aa7127a50813920bce77b00e5191aa1815f83922c85"
++content-hash = "ef0540b89c417a69668f551688bd0974256ea7a580044f3954a76bdf0d8fe7c9"
+diff --git a/pyproject.toml b/pyproject.toml
+index 66cd3e83b5e..e92e7b5c21f 100644
+--- a/pyproject.toml
++++ b/pyproject.toml
+@@ -66,7 +66,7 @@ dependencies = [
+ "prometheus-client>=0.6.0",
+ # we use `order`, which arrived in attrs 19.2.0.
+ # Note: 21.1.0 broke `/sync`, see https://github.com/matrix-org/synapse/issues/9936
+- "attrs>=26.1.0,!=21.1.0",
++ "attrs>=19.2.0,!=21.1.0",
+ "netaddr>=0.7.18",
+ # Jinja 2.x is incompatible with MarkupSafe>=2.1. To ensure that admins do not
+ # end up with a broken installation, with recent MarkupSafe but old Jinja, we
diff --git a/srcpkgs/synapse/template b/srcpkgs/synapse/template
index 7952230a27eae2..bd615f7e063b4b 100644
--- a/srcpkgs/synapse/template
+++ b/srcpkgs/synapse/template
@@ -1,6 +1,6 @@
# Template file for 'synapse'
pkgname=synapse
-version=1.152.1
+version=1.153.0
revision=1
build_style=python3-pep517
build_helper=rust
@@ -25,7 +25,7 @@ license="AGPL-3.0-or-later"
homepage="https://element-hq.github.io/synapse"
changelog="https://raw.githubusercontent.com/element-hq/synapse/develop/CHANGES.md"
distfiles="https://github.com/element-hq/synapse/archive/refs/tags/v${version}.tar.gz"
-checksum=2c4d687bdb59b1539882c4a0a53d2ada5703a6bbfe543db3c45dfc75a7faffbf
+checksum=6860b05efb31df3fb4a9402b3b71e8ea2705362c10cab953000acfb4ea291110
system_accounts="synapse"
synapse_homedir="/var/lib/synapse"