From ebbd60c00d066ab99420f0eb02399087cb0ddbcdf2cd10a4cea1f2cf9328d8f5 Mon Sep 17 00:00:00 2001 From: Marcus Rueckert Date: Wed, 30 Oct 2024 19:36:42 +0000 Subject: [PATCH] - Allow Twisted 24.10.0 again with backport of proposed upstream fix https://patch-diff.githubusercontent.com/raw/element-hq/synapse/pull/17886.patch OBS-URL: https://build.opensuse.org/package/show/network:messaging:matrix/matrix-synapse?expand=0&rev=345 --- 17886.patch | 161 +++++++++++++++++++++++++++++++++++++++++ matrix-synapse.changes | 7 ++ matrix-synapse.spec | 8 +- 3 files changed, 172 insertions(+), 4 deletions(-) create mode 100644 17886.patch diff --git a/17886.patch b/17886.patch new file mode 100644 index 0000000..5f5831d --- /dev/null +++ b/17886.patch @@ -0,0 +1,161 @@ +From 0f73c759ea142adfe5e200fb19685e1ef4a2f9c4 Mon Sep 17 00:00:00 2001 +From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> +Date: Mon, 28 Oct 2024 10:26:52 +0000 +Subject: [PATCH 1/3] Bump twisted from 24.7.0 to 24.10.0 + +Bumps [twisted](https://github.com/twisted/twisted) from 24.7.0 to 24.10.0. +- [Release notes](https://github.com/twisted/twisted/releases) +- [Changelog](https://github.com/twisted/twisted/blob/trunk/NEWS.rst) +- [Commits](https://github.com/twisted/twisted/compare/twisted-24.7.0...twisted-24.10.0) + +--- +updated-dependencies: +- dependency-name: twisted + dependency-type: direct:production + update-type: version-update:semver-minor +... + +Signed-off-by: dependabot[bot] +--- + poetry.lock | 39 +++++++++++++++++++-------------------- + 1 file changed, 19 insertions(+), 20 deletions(-) + +diff --git a/poetry.lock b/poetry.lock +index 9ca72814a4..60dcb97486 100644 +--- a/poetry.lock ++++ b/poetry.lock +@@ -49,18 +49,17 @@ cryptography = "*" + + [[package]] + name = "automat" +-version = "22.10.0" ++version = "24.8.1" + description = "Self-service finite-state machines for the programmer on the go." + optional = false +-python-versions = "*" ++python-versions = ">=3.8" + files = [ +- {file = "Automat-22.10.0-py2.py3-none-any.whl", hash = "sha256:c3164f8742b9dc440f3682482d32aaff7bb53f71740dd018533f9de286b64180"}, +- {file = "Automat-22.10.0.tar.gz", hash = "sha256:e56beb84edad19dcc11d30e8d9b895f75deeb5ef5e96b84a467066b3b84bb04e"}, ++ {file = "Automat-24.8.1-py3-none-any.whl", hash = "sha256:bf029a7bc3da1e2c24da2343e7598affaa9f10bf0ab63ff808566ce90551e02a"}, ++ {file = "automat-24.8.1.tar.gz", hash = "sha256:b34227cf63f6325b8ad2399ede780675083e439b20c323d376373d8ee6306d88"}, + ] + + [package.dependencies] +-attrs = ">=19.2.0" +-six = "*" ++typing-extensions = {version = "*", markers = "python_version < \"3.10\""} + + [package.extras] + visualize = ["Twisted (>=16.1.1)", "graphviz (>0.5.1)"] +@@ -2633,18 +2632,18 @@ urllib3 = ">=1.26.0" + + [[package]] + name = "twisted" +-version = "24.7.0" ++version = "24.10.0" + description = "An asynchronous networking framework written in Python" + optional = false + python-versions = ">=3.8.0" + files = [ +- {file = "twisted-24.7.0-py3-none-any.whl", hash = "sha256:734832ef98108136e222b5230075b1079dad8a3fc5637319615619a7725b0c81"}, +- {file = "twisted-24.7.0.tar.gz", hash = "sha256:5a60147f044187a127ec7da96d170d49bcce50c6fd36f594e60f4587eff4d394"}, ++ {file = "twisted-24.10.0-py3-none-any.whl", hash = "sha256:67aa7c8aa94387385302acf44ade12967c747858c8bcce0f11d38077a11c5326"}, ++ {file = "twisted-24.10.0.tar.gz", hash = "sha256:02951299672595fea0f70fa2d5f7b5e3d56836157eda68859a6ad6492d36756e"}, + ] + + [package.dependencies] +-attrs = ">=21.3.0" +-automat = ">=0.8.0" ++attrs = ">=22.2.0" ++automat = ">=24.8.0" + constantly = ">=15.1" + hyperlink = ">=17.1.1" + idna = {version = ">=2.4", optional = true, markers = "extra == \"tls\""} +@@ -2655,19 +2654,19 @@ typing-extensions = ">=4.2.0" + zope-interface = ">=5" + + [package.extras] +-all-non-platform = ["appdirs (>=1.4.0)", "appdirs (>=1.4.0)", "bcrypt (>=3.1.3)", "bcrypt (>=3.1.3)", "cryptography (>=3.3)", "cryptography (>=3.3)", "cython-test-exception-raiser (>=1.0.2,<2)", "cython-test-exception-raiser (>=1.0.2,<2)", "h2 (>=3.0,<5.0)", "h2 (>=3.0,<5.0)", "hypothesis (>=6.56)", "hypothesis (>=6.56)", "idna (>=2.4)", "idna (>=2.4)", "priority (>=1.1.0,<2.0)", "priority (>=1.1.0,<2.0)", "pyhamcrest (>=2)", "pyhamcrest (>=2)", "pyopenssl (>=21.0.0)", "pyopenssl (>=21.0.0)", "pyserial (>=3.0)", "pyserial (>=3.0)", "pywin32 (!=226)", "pywin32 (!=226)", "service-identity (>=18.1.0)", "service-identity (>=18.1.0)"] ++all-non-platform = ["appdirs (>=1.4.0)", "appdirs (>=1.4.0)", "bcrypt (>=3.1.3)", "bcrypt (>=3.1.3)", "cryptography (>=3.3)", "cryptography (>=3.3)", "cython-test-exception-raiser (>=1.0.2,<2)", "cython-test-exception-raiser (>=1.0.2,<2)", "h2 (>=3.2,<5.0)", "h2 (>=3.2,<5.0)", "httpx[http2] (>=0.27)", "httpx[http2] (>=0.27)", "hypothesis (>=6.56)", "hypothesis (>=6.56)", "idna (>=2.4)", "idna (>=2.4)", "priority (>=1.1.0,<2.0)", "priority (>=1.1.0,<2.0)", "pyhamcrest (>=2)", "pyhamcrest (>=2)", "pyopenssl (>=21.0.0)", "pyopenssl (>=21.0.0)", "pyserial (>=3.0)", "pyserial (>=3.0)", "pywin32 (!=226)", "pywin32 (!=226)", "service-identity (>=18.1.0)", "service-identity (>=18.1.0)"] + conch = ["appdirs (>=1.4.0)", "bcrypt (>=3.1.3)", "cryptography (>=3.3)"] +-dev = ["coverage (>=7.5,<8.0)", "cython-test-exception-raiser (>=1.0.2,<2)", "hypothesis (>=6.56)", "pydoctor (>=23.9.0,<23.10.0)", "pyflakes (>=2.2,<3.0)", "pyhamcrest (>=2)", "python-subunit (>=1.4,<2.0)", "sphinx (>=6,<7)", "sphinx-rtd-theme (>=1.3,<2.0)", "towncrier (>=23.6,<24.0)", "twistedchecker (>=0.7,<1.0)"] ++dev = ["coverage (>=7.5,<8.0)", "cython-test-exception-raiser (>=1.0.2,<2)", "httpx[http2] (>=0.27)", "hypothesis (>=6.56)", "pydoctor (>=23.9.0,<23.10.0)", "pyflakes (>=2.2,<3.0)", "pyhamcrest (>=2)", "python-subunit (>=1.4,<2.0)", "sphinx (>=6,<7)", "sphinx-rtd-theme (>=1.3,<2.0)", "towncrier (>=23.6,<24.0)", "twistedchecker (>=0.7,<1.0)"] + dev-release = ["pydoctor (>=23.9.0,<23.10.0)", "pydoctor (>=23.9.0,<23.10.0)", "sphinx (>=6,<7)", "sphinx (>=6,<7)", "sphinx-rtd-theme (>=1.3,<2.0)", "sphinx-rtd-theme (>=1.3,<2.0)", "towncrier (>=23.6,<24.0)", "towncrier (>=23.6,<24.0)"] +-gtk-platform = ["appdirs (>=1.4.0)", "appdirs (>=1.4.0)", "bcrypt (>=3.1.3)", "bcrypt (>=3.1.3)", "cryptography (>=3.3)", "cryptography (>=3.3)", "cython-test-exception-raiser (>=1.0.2,<2)", "cython-test-exception-raiser (>=1.0.2,<2)", "h2 (>=3.0,<5.0)", "h2 (>=3.0,<5.0)", "hypothesis (>=6.56)", "hypothesis (>=6.56)", "idna (>=2.4)", "idna (>=2.4)", "priority (>=1.1.0,<2.0)", "priority (>=1.1.0,<2.0)", "pygobject", "pygobject", "pyhamcrest (>=2)", "pyhamcrest (>=2)", "pyopenssl (>=21.0.0)", "pyopenssl (>=21.0.0)", "pyserial (>=3.0)", "pyserial (>=3.0)", "pywin32 (!=226)", "pywin32 (!=226)", "service-identity (>=18.1.0)", "service-identity (>=18.1.0)"] +-http2 = ["h2 (>=3.0,<5.0)", "priority (>=1.1.0,<2.0)"] +-macos-platform = ["appdirs (>=1.4.0)", "appdirs (>=1.4.0)", "bcrypt (>=3.1.3)", "bcrypt (>=3.1.3)", "cryptography (>=3.3)", "cryptography (>=3.3)", "cython-test-exception-raiser (>=1.0.2,<2)", "cython-test-exception-raiser (>=1.0.2,<2)", "h2 (>=3.0,<5.0)", "h2 (>=3.0,<5.0)", "hypothesis (>=6.56)", "hypothesis (>=6.56)", "idna (>=2.4)", "idna (>=2.4)", "priority (>=1.1.0,<2.0)", "priority (>=1.1.0,<2.0)", "pyhamcrest (>=2)", "pyhamcrest (>=2)", "pyobjc-core", "pyobjc-core", "pyobjc-framework-cfnetwork", "pyobjc-framework-cfnetwork", "pyobjc-framework-cocoa", "pyobjc-framework-cocoa", "pyopenssl (>=21.0.0)", "pyopenssl (>=21.0.0)", "pyserial (>=3.0)", "pyserial (>=3.0)", "pywin32 (!=226)", "pywin32 (!=226)", "service-identity (>=18.1.0)", "service-identity (>=18.1.0)"] +-mypy = ["appdirs (>=1.4.0)", "bcrypt (>=3.1.3)", "coverage (>=7.5,<8.0)", "cryptography (>=3.3)", "cython-test-exception-raiser (>=1.0.2,<2)", "h2 (>=3.0,<5.0)", "hypothesis (>=6.56)", "idna (>=2.4)", "mypy (>=1.8,<2.0)", "mypy-zope (>=1.0.3,<1.1.0)", "priority (>=1.1.0,<2.0)", "pydoctor (>=23.9.0,<23.10.0)", "pyflakes (>=2.2,<3.0)", "pyhamcrest (>=2)", "pyopenssl (>=21.0.0)", "pyserial (>=3.0)", "python-subunit (>=1.4,<2.0)", "pywin32 (!=226)", "service-identity (>=18.1.0)", "sphinx (>=6,<7)", "sphinx-rtd-theme (>=1.3,<2.0)", "towncrier (>=23.6,<24.0)", "twistedchecker (>=0.7,<1.0)", "types-pyopenssl", "types-setuptools"] +-osx-platform = ["appdirs (>=1.4.0)", "appdirs (>=1.4.0)", "bcrypt (>=3.1.3)", "bcrypt (>=3.1.3)", "cryptography (>=3.3)", "cryptography (>=3.3)", "cython-test-exception-raiser (>=1.0.2,<2)", "cython-test-exception-raiser (>=1.0.2,<2)", "h2 (>=3.0,<5.0)", "h2 (>=3.0,<5.0)", "hypothesis (>=6.56)", "hypothesis (>=6.56)", "idna (>=2.4)", "idna (>=2.4)", "priority (>=1.1.0,<2.0)", "priority (>=1.1.0,<2.0)", "pyhamcrest (>=2)", "pyhamcrest (>=2)", "pyobjc-core", "pyobjc-core", "pyobjc-framework-cfnetwork", "pyobjc-framework-cfnetwork", "pyobjc-framework-cocoa", "pyobjc-framework-cocoa", "pyopenssl (>=21.0.0)", "pyopenssl (>=21.0.0)", "pyserial (>=3.0)", "pyserial (>=3.0)", "pywin32 (!=226)", "pywin32 (!=226)", "service-identity (>=18.1.0)", "service-identity (>=18.1.0)"] ++gtk-platform = ["appdirs (>=1.4.0)", "appdirs (>=1.4.0)", "bcrypt (>=3.1.3)", "bcrypt (>=3.1.3)", "cryptography (>=3.3)", "cryptography (>=3.3)", "cython-test-exception-raiser (>=1.0.2,<2)", "cython-test-exception-raiser (>=1.0.2,<2)", "h2 (>=3.2,<5.0)", "h2 (>=3.2,<5.0)", "httpx[http2] (>=0.27)", "httpx[http2] (>=0.27)", "hypothesis (>=6.56)", "hypothesis (>=6.56)", "idna (>=2.4)", "idna (>=2.4)", "priority (>=1.1.0,<2.0)", "priority (>=1.1.0,<2.0)", "pygobject", "pygobject", "pyhamcrest (>=2)", "pyhamcrest (>=2)", "pyopenssl (>=21.0.0)", "pyopenssl (>=21.0.0)", "pyserial (>=3.0)", "pyserial (>=3.0)", "pywin32 (!=226)", "pywin32 (!=226)", "service-identity (>=18.1.0)", "service-identity (>=18.1.0)"] ++http2 = ["h2 (>=3.2,<5.0)", "priority (>=1.1.0,<2.0)"] ++macos-platform = ["appdirs (>=1.4.0)", "appdirs (>=1.4.0)", "bcrypt (>=3.1.3)", "bcrypt (>=3.1.3)", "cryptography (>=3.3)", "cryptography (>=3.3)", "cython-test-exception-raiser (>=1.0.2,<2)", "cython-test-exception-raiser (>=1.0.2,<2)", "h2 (>=3.2,<5.0)", "h2 (>=3.2,<5.0)", "httpx[http2] (>=0.27)", "httpx[http2] (>=0.27)", "hypothesis (>=6.56)", "hypothesis (>=6.56)", "idna (>=2.4)", "idna (>=2.4)", "priority (>=1.1.0,<2.0)", "priority (>=1.1.0,<2.0)", "pyhamcrest (>=2)", "pyhamcrest (>=2)", "pyobjc-core", "pyobjc-core", "pyobjc-framework-cfnetwork", "pyobjc-framework-cfnetwork", "pyobjc-framework-cocoa", "pyobjc-framework-cocoa", "pyopenssl (>=21.0.0)", "pyopenssl (>=21.0.0)", "pyserial (>=3.0)", "pyserial (>=3.0)", "pywin32 (!=226)", "pywin32 (!=226)", "service-identity (>=18.1.0)", "service-identity (>=18.1.0)"] ++mypy = ["appdirs (>=1.4.0)", "bcrypt (>=3.1.3)", "coverage (>=7.5,<8.0)", "cryptography (>=3.3)", "cython-test-exception-raiser (>=1.0.2,<2)", "h2 (>=3.2,<5.0)", "httpx[http2] (>=0.27)", "hypothesis (>=6.56)", "idna (>=2.4)", "mypy (==1.10.1)", "mypy-zope (==1.0.6)", "priority (>=1.1.0,<2.0)", "pydoctor (>=23.9.0,<23.10.0)", "pyflakes (>=2.2,<3.0)", "pyhamcrest (>=2)", "pyopenssl (>=21.0.0)", "pyserial (>=3.0)", "python-subunit (>=1.4,<2.0)", "pywin32 (!=226)", "service-identity (>=18.1.0)", "sphinx (>=6,<7)", "sphinx-rtd-theme (>=1.3,<2.0)", "towncrier (>=23.6,<24.0)", "twistedchecker (>=0.7,<1.0)", "types-pyopenssl", "types-setuptools"] ++osx-platform = ["appdirs (>=1.4.0)", "appdirs (>=1.4.0)", "bcrypt (>=3.1.3)", "bcrypt (>=3.1.3)", "cryptography (>=3.3)", "cryptography (>=3.3)", "cython-test-exception-raiser (>=1.0.2,<2)", "cython-test-exception-raiser (>=1.0.2,<2)", "h2 (>=3.2,<5.0)", "h2 (>=3.2,<5.0)", "httpx[http2] (>=0.27)", "httpx[http2] (>=0.27)", "hypothesis (>=6.56)", "hypothesis (>=6.56)", "idna (>=2.4)", "idna (>=2.4)", "priority (>=1.1.0,<2.0)", "priority (>=1.1.0,<2.0)", "pyhamcrest (>=2)", "pyhamcrest (>=2)", "pyobjc-core", "pyobjc-core", "pyobjc-framework-cfnetwork", "pyobjc-framework-cfnetwork", "pyobjc-framework-cocoa", "pyobjc-framework-cocoa", "pyopenssl (>=21.0.0)", "pyopenssl (>=21.0.0)", "pyserial (>=3.0)", "pyserial (>=3.0)", "pywin32 (!=226)", "pywin32 (!=226)", "service-identity (>=18.1.0)", "service-identity (>=18.1.0)"] + serial = ["pyserial (>=3.0)", "pywin32 (!=226)"] +-test = ["cython-test-exception-raiser (>=1.0.2,<2)", "hypothesis (>=6.56)", "pyhamcrest (>=2)"] ++test = ["cython-test-exception-raiser (>=1.0.2,<2)", "httpx[http2] (>=0.27)", "hypothesis (>=6.56)", "pyhamcrest (>=2)"] + tls = ["idna (>=2.4)", "pyopenssl (>=21.0.0)", "service-identity (>=18.1.0)"] +-windows-platform = ["appdirs (>=1.4.0)", "appdirs (>=1.4.0)", "bcrypt (>=3.1.3)", "bcrypt (>=3.1.3)", "cryptography (>=3.3)", "cryptography (>=3.3)", "cython-test-exception-raiser (>=1.0.2,<2)", "cython-test-exception-raiser (>=1.0.2,<2)", "h2 (>=3.0,<5.0)", "h2 (>=3.0,<5.0)", "hypothesis (>=6.56)", "hypothesis (>=6.56)", "idna (>=2.4)", "idna (>=2.4)", "priority (>=1.1.0,<2.0)", "priority (>=1.1.0,<2.0)", "pyhamcrest (>=2)", "pyhamcrest (>=2)", "pyopenssl (>=21.0.0)", "pyopenssl (>=21.0.0)", "pyserial (>=3.0)", "pyserial (>=3.0)", "pywin32 (!=226)", "pywin32 (!=226)", "pywin32 (!=226)", "pywin32 (!=226)", "service-identity (>=18.1.0)", "service-identity (>=18.1.0)", "twisted-iocpsupport (>=1.0.2)", "twisted-iocpsupport (>=1.0.2)"] ++windows-platform = ["appdirs (>=1.4.0)", "appdirs (>=1.4.0)", "bcrypt (>=3.1.3)", "bcrypt (>=3.1.3)", "cryptography (>=3.3)", "cryptography (>=3.3)", "cython-test-exception-raiser (>=1.0.2,<2)", "cython-test-exception-raiser (>=1.0.2,<2)", "h2 (>=3.2,<5.0)", "h2 (>=3.2,<5.0)", "httpx[http2] (>=0.27)", "httpx[http2] (>=0.27)", "hypothesis (>=6.56)", "hypothesis (>=6.56)", "idna (>=2.4)", "idna (>=2.4)", "priority (>=1.1.0,<2.0)", "priority (>=1.1.0,<2.0)", "pyhamcrest (>=2)", "pyhamcrest (>=2)", "pyopenssl (>=21.0.0)", "pyopenssl (>=21.0.0)", "pyserial (>=3.0)", "pyserial (>=3.0)", "pywin32 (!=226)", "pywin32 (!=226)", "pywin32 (!=226)", "pywin32 (!=226)", "service-identity (>=18.1.0)", "service-identity (>=18.1.0)", "twisted-iocpsupport (>=1.0.2)", "twisted-iocpsupport (>=1.0.2)"] + + [[package]] + name = "txredisapi" + +From 4a9891444e4fe6e9f283e1942a818d21db3b85d2 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?=E4=BA=88=E7=BA=BE?= +Date: Wed, 30 Oct 2024 10:36:32 +0800 +Subject: [PATCH 2/3] feat: adapt to Twisted 24.10.0rc1 + +--- + synapse/http/proxy.py | 9 ++++++--- + 1 file changed, 6 insertions(+), 3 deletions(-) + +diff --git a/synapse/http/proxy.py b/synapse/http/proxy.py +index 97aa429e7d..5115ffd1a7 100644 +--- a/synapse/http/proxy.py ++++ b/synapse/http/proxy.py +@@ -30,7 +30,7 @@ + from twisted.python import failure + from twisted.python.failure import Failure + from twisted.web.client import ResponseDone +-from twisted.web.http_headers import Headers ++from twisted.web.http_headers import Headers, _nameEncoder + from twisted.web.iweb import IResponse + from twisted.web.resource import IResource + from twisted.web.server import Request, Site +@@ -65,11 +65,14 @@ + if hasattr(Headers, "_canonicalNameCaps"): + # Twisted < 24.7.0rc1 + _canonicalHeaderName = Headers()._canonicalNameCaps # type: ignore[attr-defined] +-else: +- # Twisted >= 24.7.0rc1 ++elif hasattr(Headers, "_encodeName"): ++ # 24.7.0rc1 <= Twisted < 24.10.0rc1 + # But note that `_encodeName` still exists on prior versions, + # it just encodes differently + _canonicalHeaderName = Headers()._encodeName ++else: ++ # Twisted >= 24.10.0rc1 ++ _canonicalHeaderName = _nameEncoder.encode + + + def parse_connection_header_value( + +From 643e7908ad941fdc7aa942b644bf218024848a6a Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?=E4=BA=88=E7=BA=BE?= +Date: Wed, 30 Oct 2024 10:46:14 +0800 +Subject: [PATCH 3/3] chore: create 17886.misc + +--- + changelog.d/17886.misc | 1 + + 1 file changed, 1 insertion(+) + create mode 100644 changelog.d/17886.misc + +diff --git a/changelog.d/17886.misc b/changelog.d/17886.misc +new file mode 100644 +index 0000000000..d8c77e2f4e +--- /dev/null ++++ b/changelog.d/17886.misc +@@ -0,0 +1 @@ ++Adapt to Twisted 24.10.0rc1. diff --git a/matrix-synapse.changes b/matrix-synapse.changes index e1ca03f..1fec96a 100644 --- a/matrix-synapse.changes +++ b/matrix-synapse.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Wed Oct 30 19:12:19 UTC 2024 - Marcus Rueckert + +- Allow Twisted 24.10.0 again with backport of proposed upstream + fix + https://patch-diff.githubusercontent.com/raw/element-hq/synapse/pull/17886.patch + ------------------------------------------------------------------- Wed Oct 30 18:19:09 UTC 2024 - Marcus Rueckert diff --git a/matrix-synapse.spec b/matrix-synapse.spec index 58de2cf..617a430 100644 --- a/matrix-synapse.spec +++ b/matrix-synapse.spec @@ -20,9 +20,7 @@ # NOTE: Keep this is in the same order as pyproject.toml. %if %{with use_poetry_for_dependencies} -# TODO: 24.7.0 -%global Twisted_version 24.3.0 -%global Twisted_min_bad_version 24.10.0 +%global Twisted_version 24.7.0 %global Jinja2_version 3.1.4 %global Pillow_version 10.4.0 # TODO: 6.0.2 @@ -178,6 +176,8 @@ Source51: matrix-synapse-generate-config.sh Source99: series Patch0: matrix-synapse-1.4.1-paths.patch Patch1: bump-dependencies.patch +# from https://patch-diff.githubusercontent.com/raw/element-hq/synapse/pull/17886.patch +Patch2: 17886.patch # https://github.com/matrix-org/synapse/pull/10719 # disable by marking as source until we get a decision upstream Source100: 10719-Fix-instert-of-duplicate-key-into-event_json.patch @@ -205,7 +205,7 @@ BuildRequires: %{use_python}-Pillow >= %{Pillow_version} %requires_peq %{use_python}-Pillow BuildRequires: %{use_python}-PyYAML >= %{PyYAML_version} %requires_peq %{use_python}-PyYAML -BuildRequires: (%{use_python}-Twisted >= %{Twisted_version} with %{use_python}-Twisted < %{Twisted_min_bad_version}) +BuildRequires: %{use_python}-Twisted >= %{Twisted_version} %requires_peq %{use_python}-Twisted BuildRequires: %{use_python}-attrs >= %{attrs_version} %requires_peq %{use_python}-attrs