|
| 1 | +From be03be7b50ca914d73757a00d2819807187aa3a8 Mon Sep 17 00:00:00 2001 |
| 2 | +From: Oleg Girko <ol@infoserver.lv> |
| 3 | +Date: Wed, 20 May 2026 11:47:43 +0100 |
| 4 | +Subject: [PATCH] Partially revert "Bump attrs from 25.4.0 to 26.1.0 (#19684)" |
| 5 | + (#19789) |
| 6 | + |
| 7 | +Accidental bump broke build for Fedora and RHEL. |
| 8 | + |
| 9 | +This reverts commit 2e9d6f7f35df53f510b689c09d3a9ace82a0d840. |
| 10 | + |
| 11 | +As discussed in the [Synapse Package |
| 12 | +Maintainers](https://matrix.to/#/!rh9Uxk45AsPongyP3ypgpsCmuIufiggD6mDXFWh4_FM/$0mdulZEyJFdI6bwS8GFwYnFt-zmpyCyx2DwcA8JyuY8?via=jki.re&via=matrix.org&via=element.io) |
| 13 | +room (private) |
| 14 | +--- |
| 15 | + changelog.d/19789.bugfix | 1 + |
| 16 | + poetry.lock | 53 ++++++++++++++++++++-------------------- |
| 17 | + pyproject.toml | 2 +- |
| 18 | + 3 files changed, 29 insertions(+), 27 deletions(-) |
| 19 | + create mode 100644 changelog.d/19789.bugfix |
| 20 | + |
| 21 | +diff --git a/changelog.d/19789.bugfix b/changelog.d/19789.bugfix |
| 22 | +new file mode 100644 |
| 23 | +index 00000000000..f6c325ec824 |
| 24 | +--- /dev/null |
| 25 | ++++ b/changelog.d/19789.bugfix |
| 26 | +@@ -0,0 +1 @@ |
| 27 | ++Fix packaging for Fedora and EPEL caused by unnecessary bumping `attrs` minimum version requirement in `pyproject.toml` file. Contributed by Oleg Girko. |
| 28 | +diff --git a/poetry.lock b/poetry.lock |
| 29 | +index ab790015bb6..92c25d93085 100644 |
| 30 | +--- a/poetry.lock |
| 31 | ++++ b/poetry.lock |
| 32 | +@@ -31,7 +31,7 @@ description = "The ultimate Python library in building OAuth and OpenID Connect |
| 33 | + optional = true |
| 34 | + python-versions = ">=3.9" |
| 35 | + groups = ["main"] |
| 36 | +-markers = "extra == \"all\" or extra == \"jwt\" or extra == \"oidc\"" |
| 37 | ++markers = "extra == \"oidc\" or extra == \"jwt\" or extra == \"all\"" |
| 38 | + files = [ |
| 39 | + {file = "authlib-1.6.12-py2.py3-none-any.whl", hash = "sha256:e9229ad7fde610b139dd12f5edbe97eab9ee78bfb85691247e767727850b99ab"}, |
| 40 | + {file = "authlib-1.6.12.tar.gz", hash = "sha256:0656d8482f28fc8221929d5f35b2bde5d13e10555ebc06b4561b0d622e83b1bd"}, |
| 41 | +@@ -62,7 +62,7 @@ description = "Backport of CPython tarfile module" |
| 42 | + optional = false |
| 43 | + python-versions = ">=3.8" |
| 44 | + groups = ["dev"] |
| 45 | +-markers = "platform_machine != \"ppc64le\" and platform_machine != \"s390x\" and python_version < \"3.12\"" |
| 46 | ++markers = "python_version < \"3.12\" and platform_machine != \"ppc64le\" and platform_machine != \"s390x\"" |
| 47 | + files = [ |
| 48 | + {file = "backports.tarfile-1.2.0-py3-none-any.whl", hash = "sha256:77e284d754527b01fb1e6fa8a1afe577858ebe4e9dad8919e34c862cb399bc34"}, |
| 49 | + {file = "backports_tarfile-1.2.0.tar.gz", hash = "sha256:d75e02c268746e1b8144c278978b6e98e85de6ad16f8e4b0844a154557eca991"}, |
| 50 | +@@ -531,7 +531,7 @@ description = "XML bomb protection for Python stdlib modules" |
| 51 | + optional = true |
| 52 | + python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" |
| 53 | + groups = ["main"] |
| 54 | +-markers = "extra == \"all\" or extra == \"saml2\"" |
| 55 | ++markers = "extra == \"saml2\" or extra == \"all\"" |
| 56 | + files = [ |
| 57 | + {file = "defusedxml-0.7.1-py2.py3-none-any.whl", hash = "sha256:a352e7e428770286cc899e2542b6cdaedb2b4953ff269a210103ec58f6198a61"}, |
| 58 | + {file = "defusedxml-0.7.1.tar.gz", hash = "sha256:1bb3032db185915b62d7c6209c5a8792be6a32ab2fedacc84e01b52c51aa3e69"}, |
| 59 | +@@ -556,7 +556,7 @@ description = "XPath 1.0/2.0/3.0/3.1 parsers and selectors for ElementTree and l |
| 60 | + optional = true |
| 61 | + python-versions = ">=3.8" |
| 62 | + groups = ["main"] |
| 63 | +-markers = "extra == \"all\" or extra == \"saml2\"" |
| 64 | ++markers = "extra == \"saml2\" or extra == \"all\"" |
| 65 | + files = [ |
| 66 | + {file = "elementpath-4.8.0-py3-none-any.whl", hash = "sha256:5393191f84969bcf8033b05ec4593ef940e58622ea13cefe60ecefbbf09d58d9"}, |
| 67 | + {file = "elementpath-4.8.0.tar.gz", hash = "sha256:5822a2560d99e2633d95f78694c7ff9646adaa187db520da200a8e9479dc46ae"}, |
| 68 | +@@ -606,7 +606,7 @@ description = "Python wrapper for hiredis" |
| 69 | + optional = true |
| 70 | + python-versions = ">=3.8" |
| 71 | + groups = ["main"] |
| 72 | +-markers = "extra == \"all\" or extra == \"redis\"" |
| 73 | ++markers = "extra == \"redis\" or extra == \"all\"" |
| 74 | + files = [ |
| 75 | + {file = "hiredis-3.3.1-cp310-cp310-macosx_10_15_universal2.whl", hash = "sha256:f525734382a47f9828c9d6a1501522c78d5935466d8e2be1a41ba40ca5bb922b"}, |
| 76 | + {file = "hiredis-3.3.1-cp310-cp310-macosx_10_15_x86_64.whl", hash = "sha256:6e2e1024f0a021777740cb7c633a0efb2c4a4bc570f508223a8dcbcf79f99ef9"}, |
| 77 | +@@ -889,7 +889,7 @@ description = "Read metadata from Python packages" |
| 78 | + optional = false |
| 79 | + python-versions = ">=3.9" |
| 80 | + groups = ["dev"] |
| 81 | +-markers = "platform_machine != \"ppc64le\" and platform_machine != \"s390x\" and python_version < \"3.12\"" |
| 82 | ++markers = "python_version < \"3.12\" and platform_machine != \"ppc64le\" and platform_machine != \"s390x\"" |
| 83 | + files = [ |
| 84 | + {file = "importlib_metadata-8.7.1-py3-none-any.whl", hash = "sha256:5a1f80bf1daa489495071efbb095d75a634cf28a8bc299581244063b53176151"}, |
| 85 | + {file = "importlib_metadata-8.7.1.tar.gz", hash = "sha256:49fef1ae6440c182052f407c8d34a68f72efc36db9ca90dc0113398f2fdde8bb"}, |
| 86 | +@@ -930,7 +930,7 @@ description = "Jaeger Python OpenTracing Tracer implementation" |
| 87 | + optional = true |
| 88 | + python-versions = ">=3.7" |
| 89 | + groups = ["main"] |
| 90 | +-markers = "extra == \"all\" or extra == \"opentracing\"" |
| 91 | ++markers = "extra == \"opentracing\" or extra == \"all\"" |
| 92 | + files = [ |
| 93 | + {file = "jaeger-client-4.8.0.tar.gz", hash = "sha256:3157836edab8e2c209bd2d6ae61113db36f7ee399e66b1dcbb715d87ab49bfe0"}, |
| 94 | + ] |
| 95 | +@@ -1122,7 +1122,7 @@ description = "A strictly RFC 4510 conforming LDAP V3 pure Python client library |
| 96 | + optional = true |
| 97 | + python-versions = "*" |
| 98 | + groups = ["main"] |
| 99 | +-markers = "extra == \"all\" or extra == \"matrix-synapse-ldap3\"" |
| 100 | ++markers = "extra == \"matrix-synapse-ldap3\" or extra == \"all\"" |
| 101 | + files = [ |
| 102 | + {file = "ldap3-2.9.1-py2.py3-none-any.whl", hash = "sha256:5869596fc4948797020d3f03b7939da938778a0f9e2009f7a072ccf92b8e8d70"}, |
| 103 | + {file = "ldap3-2.9.1.tar.gz", hash = "sha256:f3e7fc4718e3f09dda568b57100095e0ce58633bcabbed8667ce3f8fbaa4229f"}, |
| 104 | +@@ -1239,7 +1239,7 @@ description = "Powerful and Pythonic XML processing library combining libxml2/li |
| 105 | + optional = true |
| 106 | + python-versions = ">=3.8" |
| 107 | + groups = ["main"] |
| 108 | +-markers = "extra == \"all\" or extra == \"url-preview\"" |
| 109 | ++markers = "extra == \"url-preview\" or extra == \"all\"" |
| 110 | + files = [ |
| 111 | + {file = "lxml-6.0.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:e77dd455b9a16bbd2a5036a63ddbd479c19572af81b624e79ef422f929eef388"}, |
| 112 | + {file = "lxml-6.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:5d444858b9f07cefff6455b983aea9a67f7462ba1f6cbe4a21e8bf6791bf2153"}, |
| 113 | +@@ -1553,7 +1553,7 @@ description = "An LDAP3 auth provider for Synapse" |
| 114 | + optional = true |
| 115 | + python-versions = ">=3.10" |
| 116 | + groups = ["main"] |
| 117 | +-markers = "extra == \"all\" or extra == \"matrix-synapse-ldap3\"" |
| 118 | ++markers = "extra == \"matrix-synapse-ldap3\" or extra == \"all\"" |
| 119 | + files = [ |
| 120 | + {file = "matrix_synapse_ldap3-0.4.0-py3-none-any.whl", hash = "sha256:bf080037230d2af5fd3639cb87266de65c1cad7a68ea206278c5b4bf9c1a17f3"}, |
| 121 | + {file = "matrix_synapse_ldap3-0.4.0.tar.gz", hash = "sha256:cff52ba780170de5e6e8af42863d2648ee23f3bf0a9fea6db52372f9fc00be2b"}, |
| 122 | +@@ -1834,7 +1834,7 @@ description = "OpenTracing API for Python. See documentation at http://opentraci |
| 123 | + optional = true |
| 124 | + python-versions = "*" |
| 125 | + groups = ["main"] |
| 126 | +-markers = "extra == \"all\" or extra == \"opentracing\"" |
| 127 | ++markers = "extra == \"opentracing\" or extra == \"all\"" |
| 128 | + files = [ |
| 129 | + {file = "opentracing-2.4.0.tar.gz", hash = "sha256:a173117e6ef580d55874734d1fa7ecb6f3655160b8b8974a2a1e98e5ec9c840d"}, |
| 130 | + ] |
| 131 | +@@ -2032,7 +2032,7 @@ description = "psycopg2 - Python-PostgreSQL Database Adapter" |
| 132 | + optional = true |
| 133 | + python-versions = ">=3.9" |
| 134 | + groups = ["main"] |
| 135 | +-markers = "extra == \"all\" or extra == \"postgres\"" |
| 136 | ++markers = "extra == \"postgres\" or extra == \"all\"" |
| 137 | + files = [ |
| 138 | + {file = "psycopg2-2.9.11-cp310-cp310-win_amd64.whl", hash = "sha256:103e857f46bb76908768ead4e2d0ba1d1a130e7b8ed77d3ae91e8b33481813e8"}, |
| 139 | + {file = "psycopg2-2.9.11-cp311-cp311-win_amd64.whl", hash = "sha256:210daed32e18f35e3140a1ebe059ac29209dd96468f2f7559aa59f75ee82a5cb"}, |
| 140 | +@@ -2050,7 +2050,7 @@ description = ".. image:: https://travis-ci.org/chtd/psycopg2cffi.svg?branch=mas |
| 141 | + optional = true |
| 142 | + python-versions = "*" |
| 143 | + groups = ["main"] |
| 144 | +-markers = "platform_python_implementation == \"PyPy\" and (extra == \"all\" or extra == \"postgres\")" |
| 145 | ++markers = "platform_python_implementation == \"PyPy\" and (extra == \"postgres\" or extra == \"all\")" |
| 146 | + files = [ |
| 147 | + {file = "psycopg2cffi-2.9.0.tar.gz", hash = "sha256:7e272edcd837de3a1d12b62185eb85c45a19feda9e62fa1b120c54f9e8d35c52"}, |
| 148 | + ] |
| 149 | +@@ -2066,7 +2066,7 @@ description = "A Simple library to enable psycopg2 compatability" |
| 150 | + optional = true |
| 151 | + python-versions = "*" |
| 152 | + groups = ["main"] |
| 153 | +-markers = "platform_python_implementation == \"PyPy\" and (extra == \"all\" or extra == \"postgres\")" |
| 154 | ++markers = "platform_python_implementation == \"PyPy\" and (extra == \"postgres\" or extra == \"all\")" |
| 155 | + files = [ |
| 156 | + {file = "psycopg2cffi-compat-1.1.tar.gz", hash = "sha256:d25e921748475522b33d13420aad5c2831c743227dc1f1f2585e0fdb5c914e05"}, |
| 157 | + ] |
| 158 | +@@ -2348,7 +2348,7 @@ description = "A development tool to measure, monitor and analyze the memory beh |
| 159 | + optional = true |
| 160 | + python-versions = ">=3.6" |
| 161 | + groups = ["main"] |
| 162 | +-markers = "extra == \"all\" or extra == \"cache-memory\"" |
| 163 | ++markers = "extra == \"cache-memory\" or extra == \"all\"" |
| 164 | + files = [ |
| 165 | + {file = "Pympler-1.0.1-py3-none-any.whl", hash = "sha256:d260dda9ae781e1eab6ea15bacb84015849833ba5555f141d2d9b7b7473b307d"}, |
| 166 | + {file = "Pympler-1.0.1.tar.gz", hash = "sha256:993f1a3599ca3f4fcd7160c7545ad06310c9e12f70174ae7ae8d4e25f6c5d3fa"}, |
| 167 | +@@ -2480,7 +2480,7 @@ description = "Python implementation of SAML Version 2 Standard" |
| 168 | + optional = true |
| 169 | + python-versions = ">=3.9,<4.0" |
| 170 | + groups = ["main"] |
| 171 | +-markers = "extra == \"all\" or extra == \"saml2\"" |
| 172 | ++markers = "extra == \"saml2\" or extra == \"all\"" |
| 173 | + files = [ |
| 174 | + {file = "pysaml2-7.5.0-py3-none-any.whl", hash = "sha256:bc6627cc344476a83c757f440a73fda1369f13b6fda1b4e16bca63ffbabb5318"}, |
| 175 | + {file = "pysaml2-7.5.0.tar.gz", hash = "sha256:f36871d4e5ee857c6b85532e942550d2cf90ea4ee943d75eb681044bbc4f54f7"}, |
| 176 | +@@ -2505,7 +2505,7 @@ description = "Extensions to the standard Python datetime module" |
| 177 | + optional = true |
| 178 | + python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" |
| 179 | + groups = ["main"] |
| 180 | +-markers = "extra == \"all\" or extra == \"saml2\"" |
| 181 | ++markers = "extra == \"saml2\" or extra == \"all\"" |
| 182 | + files = [ |
| 183 | + {file = "python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3"}, |
| 184 | + {file = "python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427"}, |
| 185 | +@@ -2533,7 +2533,7 @@ description = "World timezone definitions, modern and historical" |
| 186 | + optional = true |
| 187 | + python-versions = "*" |
| 188 | + groups = ["main"] |
| 189 | +-markers = "extra == \"all\" or extra == \"saml2\"" |
| 190 | ++markers = "extra == \"saml2\" or extra == \"all\"" |
| 191 | + files = [ |
| 192 | + {file = "pytz-2026.1.post1-py2.py3-none-any.whl", hash = "sha256:f2fd16142fda348286a75e1a524be810bb05d444e5a081f37f7affc635035f7a"}, |
| 193 | + {file = "pytz-2026.1.post1.tar.gz", hash = "sha256:3378dde6a0c3d26719182142c56e60c7f9af7e968076f31aae569d72a0358ee1"}, |
| 194 | +@@ -2938,7 +2938,7 @@ description = "Python client for Sentry (https://sentry.io)" |
| 195 | + optional = true |
| 196 | + python-versions = ">=3.6" |
| 197 | + groups = ["main"] |
| 198 | +-markers = "extra == \"all\" or extra == \"sentry\"" |
| 199 | ++markers = "extra == \"sentry\" or extra == \"all\"" |
| 200 | + files = [ |
| 201 | + {file = "sentry_sdk-2.57.0-py2.py3-none-any.whl", hash = "sha256:812c8bf5ff3d2f0e89c82f5ce80ab3a6423e102729c4706af7413fd1eb480585"}, |
| 202 | + {file = "sentry_sdk-2.57.0.tar.gz", hash = "sha256:4be8d1e71c32fb27f79c577a337ac8912137bba4bcbc64a4ec1da4d6d8dc5199"}, |
| 203 | +@@ -3138,7 +3138,7 @@ description = "Tornado IOLoop Backed Concurrent Futures" |
| 204 | + optional = true |
| 205 | + python-versions = "*" |
| 206 | + groups = ["main"] |
| 207 | +-markers = "extra == \"all\" or extra == \"opentracing\"" |
| 208 | ++markers = "extra == \"opentracing\" or extra == \"all\"" |
| 209 | + files = [ |
| 210 | + {file = "threadloop-1.0.2-py2-none-any.whl", hash = "sha256:5c90dbefab6ffbdba26afb4829d2a9df8275d13ac7dc58dccb0e279992679599"}, |
| 211 | + {file = "threadloop-1.0.2.tar.gz", hash = "sha256:8b180aac31013de13c2ad5c834819771992d350267bddb854613ae77ef571944"}, |
| 212 | +@@ -3154,7 +3154,7 @@ description = "Python bindings for the Apache Thrift RPC system" |
| 213 | + optional = true |
| 214 | + python-versions = "*" |
| 215 | + groups = ["main"] |
| 216 | +-markers = "extra == \"all\" or extra == \"opentracing\"" |
| 217 | ++markers = "extra == \"opentracing\" or extra == \"all\"" |
| 218 | + files = [ |
| 219 | + {file = "thrift-0.22.0.tar.gz", hash = "sha256:42e8276afbd5f54fe1d364858b6877bc5e5a4a5ed69f6a005b94ca4918fe1466"}, |
| 220 | + ] |
| 221 | +@@ -3220,6 +3220,7 @@ files = [ |
| 222 | + {file = "tomli-2.4.0-py3-none-any.whl", hash = "sha256:1f776e7d669ebceb01dee46484485f43a4048746235e683bcdffacdf1fb4785a"}, |
| 223 | + {file = "tomli-2.4.0.tar.gz", hash = "sha256:aa89c3f6c277dd275d8e243ad24f3b5e701491a860d5121f2cdd399fbb31fc9c"}, |
| 224 | + ] |
| 225 | ++markers = {main = "python_version < \"3.14\""} |
| 226 | + |
| 227 | + [[package]] |
| 228 | + name = "tornado" |
| 229 | +@@ -3228,7 +3229,7 @@ description = "Tornado is a Python web framework and asynchronous networking lib |
| 230 | + optional = true |
| 231 | + python-versions = ">=3.9" |
| 232 | + groups = ["main"] |
| 233 | +-markers = "extra == \"all\" or extra == \"opentracing\"" |
| 234 | ++markers = "extra == \"opentracing\" or extra == \"all\"" |
| 235 | + files = [ |
| 236 | + {file = "tornado-6.5.5-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:487dc9cc380e29f58c7ab88f9e27cdeef04b2140862e5076a66fb6bb68bb1bfa"}, |
| 237 | + {file = "tornado-6.5.5-cp39-abi3-macosx_10_9_x86_64.whl", hash = "sha256:65a7f1d46d4bb41df1ac99f5fcb685fb25c7e61613742d5108b010975a9a6521"}, |
| 238 | +@@ -3360,7 +3361,7 @@ description = "non-blocking redis client for python" |
| 239 | + optional = true |
| 240 | + python-versions = "*" |
| 241 | + groups = ["main"] |
| 242 | +-markers = "extra == \"all\" or extra == \"redis\"" |
| 243 | ++markers = "extra == \"redis\" or extra == \"all\"" |
| 244 | + files = [ |
| 245 | + {file = "txredisapi-1.4.11-py3-none-any.whl", hash = "sha256:ac64d7a9342b58edca13ef267d4fa7637c1aa63f8595e066801c1e8b56b22d0b"}, |
| 246 | + {file = "txredisapi-1.4.11.tar.gz", hash = "sha256:3eb1af99aefdefb59eb877b1dd08861efad60915e30ad5bf3d5bf6c5cedcdbc6"}, |
| 247 | +@@ -3621,7 +3622,7 @@ description = "An XML Schema validator and decoder" |
| 248 | + optional = true |
| 249 | + python-versions = ">=3.7" |
| 250 | + groups = ["main"] |
| 251 | +-markers = "extra == \"all\" or extra == \"saml2\"" |
| 252 | ++markers = "extra == \"saml2\" or extra == \"all\"" |
| 253 | + files = [ |
| 254 | + {file = "xmlschema-2.5.1-py3-none-any.whl", hash = "sha256:ec2b2a15c8896c1fcd14dcee34ca30032b99456c3c43ce793fdb9dca2fb4b869"}, |
| 255 | + {file = "xmlschema-2.5.1.tar.gz", hash = "sha256:4f7497de6c8b6dc2c28ad7b9ed6e21d186f4afe248a5bea4f54eedab4da44083"}, |
| 256 | +@@ -3642,7 +3643,7 @@ description = "Backport of pathlib-compatible object wrapper for zip files" |
| 257 | + optional = false |
| 258 | + python-versions = ">=3.9" |
| 259 | + groups = ["dev"] |
| 260 | +-markers = "platform_machine != \"ppc64le\" and platform_machine != \"s390x\" and python_version < \"3.12\"" |
| 261 | ++markers = "python_version < \"3.12\" and platform_machine != \"ppc64le\" and platform_machine != \"s390x\"" |
| 262 | + files = [ |
| 263 | + {file = "zipp-3.23.0-py3-none-any.whl", hash = "sha256:071652d6115ed432f5ce1d34c336c0adfd6a884660d1e9712a256d3d3bd4b14e"}, |
| 264 | + {file = "zipp-3.23.0.tar.gz", hash = "sha256:a07157588a12518c9d4034df3fbbee09c814741a33ff63c05fa29d26a2404166"}, |
| 265 | +@@ -3755,4 +3756,4 @@ url-preview = ["lxml"] |
| 266 | + [metadata] |
| 267 | + lock-version = "2.1" |
| 268 | + python-versions = ">=3.10.0,<4.0.0" |
| 269 | +-content-hash = "d97bee07fec0f4048d964aa7127a50813920bce77b00e5191aa1815f83922c85" |
| 270 | ++content-hash = "ef0540b89c417a69668f551688bd0974256ea7a580044f3954a76bdf0d8fe7c9" |
| 271 | +diff --git a/pyproject.toml b/pyproject.toml |
| 272 | +index 66cd3e83b5e..e92e7b5c21f 100644 |
| 273 | +--- a/pyproject.toml |
| 274 | ++++ b/pyproject.toml |
| 275 | +@@ -66,7 +66,7 @@ dependencies = [ |
| 276 | + "prometheus-client>=0.6.0", |
| 277 | + # we use `order`, which arrived in attrs 19.2.0. |
| 278 | + # Note: 21.1.0 broke `/sync`, see https://github.com/matrix-org/synapse/issues/9936 |
| 279 | +- "attrs>=26.1.0,!=21.1.0", |
| 280 | ++ "attrs>=19.2.0,!=21.1.0", |
| 281 | + "netaddr>=0.7.18", |
| 282 | + # Jinja 2.x is incompatible with MarkupSafe>=2.1. To ensure that admins do not |
| 283 | + # end up with a broken installation, with recent MarkupSafe but old Jinja, we |
0 commit comments