commit:     5875147e5e761119d6774b1bf2582745b7be99e6
Author:     Petr Vaněk <arkamar <AT> gentoo <DOT> org>
AuthorDate: Fri Jan 31 10:17:36 2025 +0000
Commit:     Petr Vaněk <arkamar <AT> gentoo <DOT> org>
CommitDate: Fri Jan 31 14:13:08 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5875147e

net-im/synapse: add 1.123.0

This version bump contains a patch, which skips recovery test for
Twisted >= 24.10.0. That change allows us to lift restriction and use
more recent twisted dependency than 24.7.0. It seems to be safe to just
skip the test.

Signed-off-by: Petr Vaněk <arkamar <AT> gentoo.org>

 net-im/synapse/Manifest                            |   8 +
 .../files/synapse-1.123.0-skip-recovery-test.patch |  50 +++++
 net-im/synapse/synapse-1.123.0.ebuild              | 229 +++++++++++++++++++++
 3 files changed, 287 insertions(+)

diff --git a/net-im/synapse/Manifest b/net-im/synapse/Manifest
index e3458e71ccd9..5f28356f03f6 100644
--- a/net-im/synapse/Manifest
+++ b/net-im/synapse/Manifest
@@ -37,15 +37,20 @@ DIST ppv-lite86-0.2.17.crate 22242 BLAKE2B 
48c4a31a3b555fa37072c4de083580bb76974
 DIST proc-macro2-1.0.89.crate 49446 BLAKE2B 
844c021394e7a2551bc179592a6769d672360150abf92debcb9ac60a94a2e426c48c408f06aeb2128686f5f04d66dc12973714670c21a5063ee6b9f3bae4e671
 SHA512 
488ab38a04df1d0330309382a7e4f667238cbc9b4d513da6a8f5718f8a762f76cc122af67fefe8f4b021a286b3d23e3ec83d781fe6ac823042a6daf14d147e2f
 DIST pyo3-0.23.2.crate 1073639 BLAKE2B 
01ddd26a4e347f3b6d7fee215a1894e779167730710373d59712f2119332fcf287d9c0e75d3d28baff8cf5000afb9d0e577947a26bdd8828428d33aa0f8be537
 SHA512 
b2b40809e1f26978c140b7ca4ecebb661a47fc01cd03fcd5c486076576c9b229de04f15ed55661db4e26545cb29110f1034a185abb623e4bf7fbb69188db335c
 DIST pyo3-0.23.3.crate 1073838 BLAKE2B 
5e1ce6a5c5232ebf0399b1b969e737cca12f978f445efec9408ea80b8bc6ac1047125dbefa36149c8a904882d6a64dd24a9bd50f1e8de7afe3a3271e1a0f2d6f
 SHA512 
c80377e8673de8b8e51e2423d102dbcc46605a783c13127215916d69fc600efd67ba5f9cca420cb6859124165ec97fde40eb0a0566d8b4b60708e20b8e6e9b6d
+DIST pyo3-0.23.4.crate 1087676 BLAKE2B 
2c7d3530460ff687e8f60dcff0fb01465b2a4642043ebdfc927fc3824b9fbce9c4b304250808a85405d21df12d17a1d1ada7bdf8f3563710692f22223e2732f1
 SHA512 
0015aa75163ad0ec026d185e15c26f59aaad0eb3cc3044b146e5d703bb375fcd838df2044febbd52e6e129dfba81c8249329fc3e4805695274dac7a69eee0651
 DIST pyo3-build-config-0.23.2.crate 32197 BLAKE2B 
393c76b1dcb625145673736272d4cb9d96a02df87ddcc385316652f0ff1b5595a34ebe5d789f61888c2fd82de05476c85f781d21018bd99cb630fa634afee203
 SHA512 
29678272073e896cb0b65efb0eaba40c82977b18efd389597aef8902e32daff51f2609c6be93ecfe0336260446c3186951f770ff449823cdde5a0518a1585c81
 DIST pyo3-build-config-0.23.3.crate 32509 BLAKE2B 
9e77701712589dec4ad74b3d0e66ae82c7a01b6f29ed36231d999aaf909f80def59d17916e1900bfff10b1d36a0a48ed4bf9757c817eb6c6269549f3d04bd6d4
 SHA512 
db8b0aa86e96eeb30a8ab36a8a1ba917b7b9e6918c2193d7466841ef38e689908f7719a5390d35fb9a156aa6bd84348fa99ea8d5a784faf5c5cc4635d9a3fac9
+DIST pyo3-build-config-0.23.4.crate 33885 BLAKE2B 
7f95a8a9e08d413899ff1fa64af5a52783bad4a7b4db92835464f12bd8565f152497aaeb45d25cc91eed73950abeea30ca4c7495e3b15423ae588b97038beb18
 SHA512 
b11442609f43d9baab79daf083caf0366987f6ae182239814ad6df6fe4ad31b95132d74f1162fa9428d229bd8c18ef9b696a4c3329b3960fd705d1705fc5e973
 DIST pyo3-ffi-0.23.2.crate 74052 BLAKE2B 
085c66bae61e6059331813be77a1e4f850c4b8b12ac60b03188f2a009c9f58e062dc3ea2b9e470a480956bb8cbef645f95e53fae2638d59ebf5039aa5d41d504
 SHA512 
e228e473da98ce0fe4f15cf840ba1f51f66bb6fd103a7c0bb76b3218980c93b45ecf691f712333f4a27a9efc76517a85f6e13d5e9650b774eadebf59a647e493
 DIST pyo3-ffi-0.23.3.crate 74064 BLAKE2B 
ec3cc59e047f780041a05e2bf9fac9d65a6f8ccfb5a3e1c35d7c7918da6ded7e65676888a743d3b4d0fe7b0996e441b722c159eed67360c1e3c5b598160a46cc
 SHA512 
fe4678d4cfe81f065554f0d454345f5f8fde927af1afec9212bb49a67be5080dcc9be84e088612208b7732d2283c2c9168a31b0b6fbd32496520d500e372e161
+DIST pyo3-ffi-0.23.4.crate 74806 BLAKE2B 
650784d46347c00f09c010c39e9762f778efc510ad0b99b5ddf30cab18edaba552207339ad44ed4ae6d87ddfcc56fa540a17e3a4cb331905a0988d5ba2dc682a
 SHA512 
c12097292b4620f4fd98d61fde4a0f0c7d423a94d518fa5b1cf759089b066fede6d83e20171acc2aa7bf268de5700c9b59da32131216734626b0fa5cd5651801
 DIST pyo3-log-0.12.0.crate 14630 BLAKE2B 
0c22aff53a88b99bc3dca14c20ed7ee8f90bb0f955ff70e2c709dbd5947160a364a8c6f1e6cdd417f81cf58f8285b85d632c5b07c9497388f41f372f356ca934
 SHA512 
12a39a0ea2f85b5d8db8d325f913428364ec6e2a02cae83aaacbe013d3a70cac137ab8e916e1892badb7784c72b5d0aaa2634c7c8ac6f34f5fe778cd2e169c45
 DIST pyo3-macros-0.23.2.crate 8056 BLAKE2B 
a87c4b8aab972eaf5e9b941db34e18be411bed8b5753d3e2d3f65e4a18723a72e70858bb34e8db949f0c6b748e122fed41e9c78f6c20150077fcc3c4eb0026ba
 SHA512 
dba0b5bd212b6a5f38d6fc93183c8ab80bb53bfa5f03d471897014f2d3d1959804e5fdbc817845c1cef797f314b924d58eff95cfcb848eb98b283e104d24637c
 DIST pyo3-macros-0.23.3.crate 8085 BLAKE2B 
bf9ea45a8afe7c663da4f3f5c09c23039bbcf9a9ae350eac2b6581a227864d259b1e5c5ea36f9d6f302c26cd957bb4564562b98785eac49233515d7d54453fdf
 SHA512 
23bfcff285db1276f2dcca9895f7672ec6e5aec118039e2cef3cabca0a85eb97f138391cea4da26eb887dff09c65947b165ca83392edcc8640cb283df2929901
+DIST pyo3-macros-0.23.4.crate 8852 BLAKE2B 
ba5722fd52e47aa4dc2e89bacd69326bd98943a1670ebeab08a2e9e8070a0975ebbe928a0bce8b53a700b65294fee2b00d2a1e6623a0c48ac15902cdbfcb7a97
 SHA512 
c36c9005db5a4b48b5fda881130f4e7da8eef46e2c363c395ccca3fe476e0204d98c2a832cd03c787fb37a2664fadd42bf8f47de71eb44d055754ab5766af934
 DIST pyo3-macros-backend-0.23.2.crate 70067 BLAKE2B 
905c0e6e5ca0c0a91af8386a632cc81f4a9b08a51a22a260188078abf9ee70d60f77e2fc0df09483d8dc6b37cd455a23b7f70f41ee74a2ad9dd0dbef39cc22c2
 SHA512 
dc3f8780c09c63c0e0d4f26c29a9a4e29e4fc9f14254ac8a942235e480a3f4bfa3bf073d3011e043b6c22e1999d1f68bf7b0fdf212e9edb4bfb2396a97ab0ee1
 DIST pyo3-macros-backend-0.23.3.crate 70098 BLAKE2B 
f8ee9c39f743960fc8093bfd53c043fca03b973192e1ab24b48066634e57ea7e74b3ba825ae72380e10569855eec9cb4f0d54f5f8c88dc60e67793257bef8d43
 SHA512 
9b22e975480f9afc2037587ba85889868a1b543069c2280c65f4cf98e5537708d098bb4885e881c1c9427740c8259988d82176b974900551a4e51097cefb8708
+DIST pyo3-macros-backend-0.23.4.crate 70912 BLAKE2B 
a428c732f0b17d9a8f620d0e8d58469f2cba339c8a8307393ce252a7860808e5d50e6bbf711cafd0635c844f4b1d48e57db4dd99ef7b5e3d97d6f760164278e9
 SHA512 
2fe670fbf35724f489cc82f38d3f7c1e6aa15b087a2674b7a68b562572f9bb00cbb7746cccfcb62d0861a18f6d24c5739273c8302d1662a161142f4a6b532b6f
 DIST pythonize-0.23.0.crate 16177 BLAKE2B 
96c27ee7819b5aa27a493c11fbfde4174baf8c081634543f211a1270874a239973bf16788641837efafe0b09f85df6edf82da36818bfb37005fdbac5fbb1edc8
 SHA512 
25d395bbbfaad4c2d57599144e92c289eb96cd1e2c5306b8ec17048a406df3147b93b56785a03bec6aba6ea31789a21ec0cc519ed40177fb263a98757349fa63
 DIST quote-1.0.36.crate 28507 BLAKE2B 
b93495163ed205e33543ed45f084870240d479071d643704b6e348fb9ada6e1d8401893c13348b9964f4b6b17ddb96cb5458eec540f0d761655fcb96a4cd9129
 SHA512 
f1f002a912692f7ffd4912ca980ec57ff4aca3a7d9e2e42e9e3409e2105c9f59d86c05719f6af309bccaef2f8843b0848a6e3afda3356e045d8e7cc5956ae685
 DIST rand-0.8.5.crate 87113 BLAKE2B 
516f26bb2a969d0d79e957818133f35d2c0b4d9f1b401098ea23c5b80d27599e842b9298c0c5e46e2a6cb6953857bf8a9fb71ec9366c5ce6708cf17df14f179c
 SHA512 
8b33a8988906ba5e2057a9a84bdd11f867a5536c22f5056eec59ed4ec4e3a6da2fd773da4c0510d343762e5a4ea0f007db4c4a7cef87a47f90e36c1a84d86fb2
@@ -61,15 +66,18 @@ DIST serde_derive-1.0.215.crate 57092 BLAKE2B 
f28bb66017599afdcd8d45c514b8e07854
 DIST serde_derive-1.0.217.crate 57749 BLAKE2B 
63b4930122d80d64492ba2718630513012202e42bbaa74510729ee66a0e72b8a1ad123784b479697ba562db43868f4bddfdf5e94bb3d744cd68a547471ba40aa
 SHA512 
31020f4533d04b31ae125580a3c5093fad36438d324e2d9b063923aa8c125c654102ae7fbc3b3df892bb41db6b321962a23e0a37950e080055d715d15b18af76
 DIST serde_json-1.0.133.crate 150739 BLAKE2B 
7891eb5b8edcc7fd09ab1e15d3881ffdcb629aa39f2bd758c0505700a5f2dfabd85b1b66c3b094268bc1627b346e204c792f4ca61efa76c54ab9cd5744fb0ee2
 SHA512 
20e65ec87bff319897a141960d13deb5cadcf821209c1ee8799f1dc7f458ce432bc62c16df5bdada1c8d3cc01ff23b8125e8fa0a03545d4614f32efd687dc69f
 DIST serde_json-1.0.134.crate 154351 BLAKE2B 
546f8ffe9373444e8c9e81910476da281dcef10498dceabc8bec9f9063c55f4a9033b83586a09b0f410369515882c37712a2bd75ff1fff05815d904f37386124
 SHA512 
ab6323799bf19da8ec6e6c428370d37cd230192b45ef54d2c65c7d83907b2dde71d51650e44f1fcca1084e75e0e195e97b28437f53a331bf48effed3d59b58a5
+DIST serde_json-1.0.135.crate 154499 BLAKE2B 
deeb22932145715d6a443b36b9b984b6ace1e254199db9586c48dcfdd270a3208ef127584431e19a826947df705de78f07e58d9126ee1c5ccd2bc73d1e779bd8
 SHA512 
e19c583aa4a55f1c3b9a4e49b8b5c6b66e91c893db06e52f33e87608be1ff0aa27996065157f45dd4d2c59b752259ae747b2d353fe7cd1d466f56cd8a97fe71d
 DIST sha1-0.10.6.crate 13517 BLAKE2B 
85ad8dcd237125945f6f9c2d7a48bc9802dfe8398a2bac86ddb96763486092fa18e80a2e69f89cfd6e95599d34d60ced33b26a68cbbe39bf158238a79433584b
 SHA512 
fd37be7e3f1d4b6addd313a36b55215fb70abd21be7831b71de28bd3eb03b7352817d8a7b1a166df002c3a23eadc8224e49edd4a37556c0e5357565305d4128f
 DIST sha2-0.10.8.crate 26357 BLAKE2B 
1d01b381223a931dc631ad3a1191f5378b1d2f3f9f20474c5f020e366624c73b08330ce8dc4bdd3e63b15f647276f533de655b545b77f70fbedc1a1846f44f0a
 SHA512 
3be73133a6b7690e14acaead47914dc92395dca4191fb657a2ea186fefd0ccd94d12a1121d63a26027d9a9c62b775c53202473edc461587b9dcd75472af77785
 DIST subtle-2.5.0.crate 13909 BLAKE2B 
660c3a472ca54c9843ce3feea74b802e27fd7f62dd37a30e2a4ba82e4b3a71df63562e8865d5fc675d31d0900998a8730503f91a61450884446a3bdd6af0041b
 SHA512 
f150b1e2037554f8cd3213a54ddbc258f8f670cc4f39e7084cdea4b47538dbc58b834bc93b443d58a4b9087224efc003234042aaf366687dbd32b1e7174082a0
 DIST syn-2.0.85.crate 275231 BLAKE2B 
e7679e81bcef87920bc0ed707c997563844ffa1e9d470675ae6ec11d1e045e04ee2ad5744d423b8bc16def1c197ebecd874f468c1e12244838d1b4f34f9c1a30
 SHA512 
14b1402d2cd91456eb32dcffd494592eb3bd848ae22571f7ef0686493f91b82d23ba41428f9d31686fd24ea6ebca4b239b6c5099302a32014dffbc4ff9afeec1
 DIST synapse-1.121.1.gh.tar.gz 8830079 BLAKE2B 
1e249bdc3cc098417dbb1f707cc5ae2ca795ac9745fb664a4a51ed4b3788b808766808be913b08b7a7535fa7dd1535ece9cc67af4e1460be63cbd4750cf273ea
 SHA512 
b3b0a5f7dbfa492a66ffb4b90a48ac0bc507e28be1a55889b966332acb59049dc58bab8798183216932f753b2736d285bf711b7179c4c412881ea4ac0df1fa9a
 DIST synapse-1.122.0.gh.tar.gz 8838124 BLAKE2B 
f954472c45efb6649318378b39779e491469d8294ee40b6de53423673e48f919e882555209c8c47a2794c58a0226b44426f0330578992324a48e21ae5eb815f7
 SHA512 
cab6f2f3dd43299b82ec582444cd29a430f4a0c87f15240a93a9d72ef690f91c4ed20ec68fe3e822f404ba43208dafa67d883a1911f7808616bdfa378a0276e7
+DIST synapse-1.123.0.gh.tar.gz 8846158 BLAKE2B 
e7bfefe98f615617eba7a04f66555ed496368f2a4b9d28ce50b5a5f2ab13e8c08f16a0d3a025d9c29e075995fac7734ebb74d398f86f1db55bf0d3ca354c7558
 SHA512 
c22e3ddc4fc3157b0c9fb8d510523a9195907a8def4f69e7825f83eb6c809eb9402ae736a2785fe34d34160ac27bf1972f823ce3c8162f80c036133fc2886d43
 DIST target-lexicon-0.12.14.crate 25508 BLAKE2B 
5ebb6b49e5c3b0057959557651287d4bf5ffe5b499340019ff64d5fc3b64e780e344982e358c94b1b25a20bf0f526a584aeecc704695b50a55cc268dd65edb97
 SHA512 
3410ecc0faf854f49c41c99f83972960e67065b1e0e78557a7c4996d996109bfd167d2121a019f5256f996c896cd45af032038ab7918fdcc6ee6311693ce951a
 DIST typenum-1.17.0.crate 42849 BLAKE2B 
a6d1162050679e2c4ab2467f3a77d301f6861882eb7c9749f31d047f383dd5bd2ed5846ad63eed99ccc04d6ac36cc697a305861e1d65880b4d2ef04ee0a79b94
 SHA512 
99773d5d9f850c0602db4bb67dd062b0ade6f086e155216f1bb2fb6569461ba7e1b7c2f2af81ea8833bc3bfcf3fe5033edecb7c438adae63f59d3e30cf63a508
 DIST ulid-1.1.3.crate 11596 BLAKE2B 
a079fc34f5af9de89469d1edd5a53c1bc1a0f9bff8ce731c185345fe4067432a121efc6a04ac6cf377fd03c89558067e7d5d52c4b9dfd23e7055ce5af89e84b3
 SHA512 
a8f6ab3601417e7a46a763bb28722c3770fb0c2dea340c02a8e96d2e3597a304589745c65278c90bbc64f5153501a2a85321386669fda71ad7252ec67dd749df
+DIST ulid-1.1.4.crate 11367 BLAKE2B 
f8dabe988f5a65cd2ffa66196bc3540601cc47e45f56d41542d4edd02232bda632eb5a0fff833ebadacba8e537d496f04806a9297bee9161bbf1abf25a6a3e23
 SHA512 
6221a1f8616678e63ea7875830cef8d7759f56f40b97c83706aae74a678abc771dc5a382dcfb05e0a40637178814e3352d724ba72e4eb18d7da8244ade7a5280
 DIST unicode-ident-1.0.12.crate 42168 BLAKE2B 
4cede03c08758ccd6bf53a0d0057d7542dfdd0c93d342e89f3b90460be85518a9fd24958d8b1da2b5a09b5ddbee8a4263982194158e171c2bba3e394d88d6dac
 SHA512 
bc1824e1e4452a40732fc69874d7e1a66f7803717a314790dcf48867eba34bc9441331ef031e386912e52c385645c25b6ed39d4f149973b5b97371b1b96b1920
 DIST unindent-0.2.3.crate 7306 BLAKE2B 
a57407b117e99c230750c7d4a2a0899586c8271e4ba88ecb409c976905c014f42885372c234a75fbfbedf71dbed779f95f735975d150adacdcb61152a49db4c2
 SHA512 
2f1eb420ea3653b00d3e5fa0c2c105da8fd8a37cb3e699373c168604b799fccd5f0faf0cddce4212d119c2afb0c86b41efc3a50752b83ff7beda2bd84d360505
 DIST version_check-0.9.4.crate 14895 BLAKE2B 
fa1fa4008af165bfc1fdbe560488afd9d232cfafee94104fbcc4cbc52f234849bff9ddfa88109a1ac682f6d9c1d86b0459893d223f64e65adc08966aaf93dc89
 SHA512 
b172dc9a3759a4a683ffc39b9a40b03b9974b626a088217de87090466cef695226557c226cf3e469b2b25ee7297b7eb0d7719878cab42457f80146a81943c0c8

diff --git a/net-im/synapse/files/synapse-1.123.0-skip-recovery-test.patch 
b/net-im/synapse/files/synapse-1.123.0-skip-recovery-test.patch
new file mode 100644
index 000000000000..5fa9a47d3e03
--- /dev/null
+++ b/net-im/synapse/files/synapse-1.123.0-skip-recovery-test.patch
@@ -0,0 +1,50 @@
+From 095c8d95f9df7380de9bc0b8aef6f06bfe86ff63 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Petr=20Van=C4=9Bk?= <[email protected]>
+Date: Wed, 15 Jan 2025 09:29:39 +0100
+Subject: [PATCH] Skip test_recovery test for Twisted >= 24.10.0
+
+The test fails starting with Twisted 24.10.0 due to internal changes of
+Failures handling introduced in PR [1]. The issue is triggered since
+commit [2], as it was bisected in [3].
+
+The changes simplify how Failure objects are managed but no longer clear
+Failure instances in the same way, causing this test to fail. It seems
+to be safe to just skip this test, which will allow us to lift twisted
+dependency restriction.
+
+[1] https://github.com/twisted/twisted/pull/12292
+[2] 
https://github.com/twisted/twisted/commit/ece4381ecd4f9ed06264af03d21d26ed933bf341
+[3] https://github.com/element-hq/synapse/pull/17878#issuecomment-2503116192
+---
+ tests/storage/databases/main/test_events_worker.py | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/tests/storage/databases/main/test_events_worker.py 
b/tests/storage/databases/main/test_events_worker.py
+index 104d141a7..975bdefe4 100644
+--- a/tests/storage/databases/main/test_events_worker.py
++++ b/tests/storage/databases/main/test_events_worker.py
+@@ -20,9 +20,11 @@
+ #
+ import json
+ from contextlib import contextmanager
++from incremental import Version
+ from typing import Generator, List, Set, Tuple
+ from unittest import mock
+ 
++import twisted
+ from twisted.enterprise.adbapi import ConnectionPool
+ from twisted.internet.defer import CancelledError, Deferred, ensureDeferred
+ from twisted.test.proto_helpers import MemoryReactor
+@@ -447,6 +449,9 @@ class DatabaseOutageTestCase(unittest.HomeserverTestCase):
+             )
+             self.assertEqual(str(failure.value), "Could not connect to the 
database.")
+ 
++    @unittest.skip_unless(twisted.version < Version("Twisted", 24, 10, 0),
++        """fails since twisted-24.10 due to internal failure workflow changes,
++        see 
https://github.com/element-hq/synapse/pull/17878#issuecomment-2503116192""";)
+     def test_recovery(self) -> None:
+         """Test that event fetchers recover after a database outage."""
+         with self._outage():
+-- 
+2.45.2
+

diff --git a/net-im/synapse/synapse-1.123.0.ebuild 
b/net-im/synapse/synapse-1.123.0.ebuild
new file mode 100644
index 000000000000..cb829fb751ca
--- /dev/null
+++ b/net-im/synapse/synapse-1.123.0.ebuild
@@ -0,0 +1,229 @@
+# Copyright 2022-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=poetry
+PYTHON_COMPAT=( python3_{10..13} )
+
+CRATES="
+       [email protected]
+       [email protected]
+       [email protected]
+       [email protected]
+       [email protected]
+       [email protected]
+       [email protected]
+       [email protected]
+       [email protected]
+       [email protected]
+       [email protected]
+       [email protected]
+       [email protected]
+       [email protected]
+       [email protected]
+       [email protected]
+       [email protected]
+       [email protected]
+       [email protected]
+       [email protected]
+       [email protected]
+       [email protected]
+       [email protected]
+       [email protected]
+       [email protected]
+       [email protected]
+       [email protected]
+       [email protected]
+       [email protected]
+       [email protected]
+       [email protected]
+       [email protected]
+       [email protected]
+       [email protected]
+       [email protected]
+       [email protected]
+       [email protected]
+       [email protected]
+       [email protected]
+       [email protected]
+       [email protected]
+       [email protected]
+       [email protected]
+       [email protected]
+       [email protected]
+       [email protected]
+       [email protected]
+       [email protected]
+       [email protected]
+       [email protected]
+       [email protected]
+       [email protected]
+       [email protected]
+       [email protected]
+       [email protected]
+       [email protected]
+       [email protected]
+       [email protected]
+       [email protected]
+       [email protected]
+       [email protected]
+       [email protected]
+       [email protected]
+       [email protected]+wasi-snapshot-preview1
+       [email protected]
+       [email protected]
+       [email protected]
+       [email protected]
+       [email protected]
+       [email protected]
+"
+
+inherit cargo distutils-r1 multiprocessing optfeature systemd
+
+DESCRIPTION="Reference implementation of Matrix homeserver"
+HOMEPAGE="
+       https://matrix.org/
+       https://github.com/element-hq/synapse
+"
+SRC_URI="
+       https://github.com/element-hq/${PN}/archive/v${PV}.tar.gz
+               -> ${P}.gh.tar.gz
+       ${CARGO_CRATE_URIS}
+"
+
+LICENSE="AGPL-3+"
+# Dependent crate licenses
+LICENSE+="
+       Apache-2.0-with-LLVM-exceptions BSD MIT Unicode-DFS-2016
+       || ( Apache-2.0 Boost-1.0 )
+"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~ppc64"
+IUSE="postgres systemd test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+       acct-user/synapse
+       acct-group/synapse
+       dev-python/attrs[${PYTHON_USEDEP}]
+       dev-python/bcrypt[${PYTHON_USEDEP}]
+       dev-python/bleach[${PYTHON_USEDEP}]
+       >=dev-python/canonicaljson-2[${PYTHON_USEDEP}]
+       dev-python/cryptography[${PYTHON_USEDEP}]
+       dev-python/ijson[${PYTHON_USEDEP}]
+       dev-python/immutabledict[${PYTHON_USEDEP}]
+       >=dev-python/jinja2-3.0[${PYTHON_USEDEP}]
+       dev-python/jsonschema[${PYTHON_USEDEP}]
+       >=dev-python/matrix-common-1.3.0[${PYTHON_USEDEP}]
+       dev-python/msgpack[${PYTHON_USEDEP}]
+       dev-python/netaddr[${PYTHON_USEDEP}]
+       dev-python/packaging[${PYTHON_USEDEP}]
+       dev-python/phonenumbers[${PYTHON_USEDEP}]
+       >=dev-python/pillow-10.0.1[${PYTHON_USEDEP},webp]
+       dev-python/prometheus-client[${PYTHON_USEDEP}]
+       dev-python/pyasn1-modules[${PYTHON_USEDEP}]
+       dev-python/pyasn1[${PYTHON_USEDEP}]
+       dev-python/pydantic[${PYTHON_USEDEP}]
+       dev-python/pymacaroons[${PYTHON_USEDEP}]
+       dev-python/pyopenssl[${PYTHON_USEDEP}]
+       >=dev-python/python-multipart-0.0.12-r100[${PYTHON_USEDEP}]
+       dev-python/pyyaml[${PYTHON_USEDEP}]
+       dev-python/service-identity[${PYTHON_USEDEP}]
+       dev-python/signedjson[${PYTHON_USEDEP}]
+       dev-python/sortedcontainers[${PYTHON_USEDEP}]
+       dev-python/treq[${PYTHON_USEDEP}]
+       dev-python/twisted[${PYTHON_USEDEP}]
+       dev-python/typing-extensions[${PYTHON_USEDEP}]
+       dev-python/unpaddedbase64[${PYTHON_USEDEP}]
+       postgres? ( dev-python/psycopg:2[${PYTHON_USEDEP}] )
+       systemd? ( dev-python/python-systemd[${PYTHON_USEDEP}] )
+"
+BDEPEND="
+       acct-user/synapse
+       acct-group/synapse
+       dev-python/setuptools-rust[${PYTHON_USEDEP}]
+       test? (
+               ${RDEPEND}
+               dev-python/hiredis[${PYTHON_USEDEP}]
+               dev-python/idna[${PYTHON_USEDEP}]
+               dev-python/parameterized[${PYTHON_USEDEP}]
+               dev-python/pyicu[${PYTHON_USEDEP}]
+               dev-python/txredisapi[${PYTHON_USEDEP}]
+               postgres? ( dev-db/postgresql[server] )
+       )
+"
+
+# Rust extension
+QA_FLAGS_IGNORED="usr/lib/python3.*/site-packages/synapse/synapse_rust.abi3.so"
+
+PATCHES=(
+       "${FILESDIR}/${P}-skip-recovery-test.patch"
+)
+
+src_test() {
+       if use postgres; then
+               einfo "Preparing postgres test instance"
+               initdb --pgdata="${T}/pgsql" || die
+               pg_ctl --wait --pgdata="${T}/pgsql" start \
+                       --options="-h '' -k '${T}'" || die
+               createdb --host="${T}" synapse_test || die
+
+               # See 
https://matrix-org.github.io/synapse/latest/development/contributing_guide.html#running-tests-under-postgresql
+               local -x SYNAPSE_POSTGRES=1
+               local -x SYNAPSE_POSTGRES_HOST="${T}"
+       fi
+
+       # This remove is necessary otherwise python is not able to locate
+       # synapse_rust.abi3.so.
+       rm -rf synapse || die
+
+       nonfatal distutils-r1_src_test
+       local ret=${?}
+
+       if use postgres; then
+               einfo "Stopping postgres test instance"
+               pg_ctl --wait --pgdata="${T}/pgsql" stop || die
+       fi
+
+       [[ ${ret} -ne 0 ]] && die
+}
+
+python_test() {
+       "${EPYTHON}" -m twisted.trial -j "$(makeopts_jobs)" tests
+}
+
+src_install() {
+       distutils-r1_src_install
+       keepdir /var/{lib,log}/synapse /etc/synapse
+       fowners synapse:synapse /var/{lib,log}/synapse /etc/synapse
+       fperms 0750 /var/{lib,log}/synapse /etc/synapse
+       newinitd "${FILESDIR}/${PN}.initd-r1" "${PN}"
+       systemd_dounit "${FILESDIR}/synapse.service"
+}
+
+pkg_postinst() {
+       optfeature "Improve user search for international display names" 
dev-python/pyicu
+       optfeature "Redis support" dev-python/txredisapi
+       optfeature "VoIP relaying on your homeserver with turn" net-im/coturn
+
+       if [[ -z "${REPLACING_VERSIONS}" ]]; then
+               einfo
+               elog "In order to generate initial configuration run:"
+               elog "sudo -u synapse synapse_homeserver \\"
+               elog "    --server-name matrix.domain.tld \\"
+               elog "    --config-path /etc/synapse/homeserver.yaml \\"
+               elog "    --generate-config \\"
+               elog "    --data-directory /var/lib/synapse \\"
+               elog "    --report-stats=no"
+               einfo
+       else
+               einfo
+               elog "Please refer to upgrade notes if any special steps are 
required"
+               elog "to upgrade from the version you currently have installed:"
+               elog
+               elog "  
https://github.com/element-hq/synapse/blob/develop/docs/upgrade.md";
+               einfo
+       fi
+}

Reply via email to