From 1d55e8225da0da0107d2b4ef26d680dd6214bd45 Mon Sep 17 00:00:00 2001 From: Jake Coble Date: Sat, 25 Oct 2025 17:30:23 -0400 Subject: [PATCH] gnu: synapse: Update to 1.140.0. * gnu/packages/matrix.scm (synapse): Update to 1.140.0. [uri]: Use new repository location. [arguments] : Add cargo-build-system. : Use custom. : Add 'prepare-cargo-build-system, 'install-rust-library, 'start-postgresql. [inputs]: Add Rust dependencies for the Python library. [propagated-inputs]: Remove python-daemonize, python-frozendict, python-jinja2, python-pyjwt, python-pynacl, python-simplejson, python-six, and python-txacme; add python-authlib, python-cryptography, python-hiredis, python-ijson, python-immutabledict, python-matrix-common, python-multipart, python-parameterized, python-psycopg2cffi, python-pydantic, python-pympler, and python-txredisapi. [native-inputs]: Remove python-mock, python-parameterized, and python-setuptools; add libc-utf8-locales-for-target, openssl, postgresql, python-poetry-core, python-pyperf, python-setuptools-rust, rust, rust:cargo tzdata-for-tests, and xmlsec. [home-page]: Use new repository location. * gnu/packages/rust-crates.scm: (rust-cc-1.2.30, rust-headers-0.4.1, rust-icu-locale-2.0.0, rust-icu-locale-data-2.0.0, rust-icu-segmenter-2.0.0, rust-icu-segmenter-data-2.0.0, rust-pyo3-0.25.1, rust-pyo3-build-config-0.25.1, rust-pyo3-ffi-0.25.1, rust-pyo3-log-0.12.4, rust-pyo3-macros-0.25.1, rust-pyo3-macros-backend-0.25.1, rust-pythonize-0.25.0, rust-ulid-1.2.1): New variables. (lookup-cargo-inputs): Add synapse. Change-Id: I4ea7a992352bc7c86075c5a09444cd9d170e3378 Modified-by: Sharlatan Hellseher Signed-off-by: Sharlatan Hellseher --- gnu/packages/matrix.scm | 149 ++++++++++++++------ gnu/packages/rust-crates.scm | 259 +++++++++++++++++++++++++++++++++++ 2 files changed, 367 insertions(+), 41 deletions(-) diff --git a/gnu/packages/matrix.scm b/gnu/packages/matrix.scm index b0b4870fd96f29e6c2e5e8dc1208be4b2df5f605..76e217e9cef54a1e2b558ea7b1861e317a011bce 100644 --- a/gnu/packages/matrix.scm +++ b/gnu/packages/matrix.scm @@ -28,6 +28,7 @@ (define-module (gnu packages matrix) #:use-module ((guix licenses) #:prefix license:) + #:use-module (gnu packages base) #:use-module (gnu packages check) #:use-module (gnu packages crypto) #:use-module (gnu packages databases) @@ -43,7 +44,10 @@ #:use-module (gnu packages python-crypto) #:use-module (gnu packages python-web) #:use-module (gnu packages python-xyz) + #:use-module (gnu packages rust) + #:use-module (gnu packages tls) #:use-module (gnu packages xml) + #:use-module (guix build-system cargo) #:use-module (guix build-system go) #:use-module (guix build-system pyproject) #:use-module (guix download) @@ -208,63 +212,126 @@ an LDAP server.") (define-public synapse (package (name "synapse") - (version "1.29.0") + (version "1.140.0") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/matrix-org/synapse") - (commit (string-append "v" version)))) + (url "https://github.com/element-hq/synapse") + (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1m05fn5s0xfsnbvvv6089xkf7r8xmzvk9rp15hk9y3zk4fsqi5fw")))) + (base32 "0iidr727jw178596ijls670k8i7v7kjbn8w0jhkihf2hy8wnfkcy")))) (build-system pyproject-build-system) - ;; TODO Run tests with ‘PYTHONPATH=. trial3 tests’. + (arguments + (list + #:modules + '(((guix build cargo-build-system) #:prefix cargo:) + (guix build pyproject-build-system) + (guix build utils)) + #:imported-modules + `(,@%cargo-build-system-modules + ,@%pyproject-build-system-modules) + #:test-backend #~'custom + ;; XXX: The complete test suite takes about 2h+ to finish and require + ;; running database, run just unittests. + ;; See: <.github/workflows/tests.yml>. + ;; + ;; tests: skips=169, successes=4245 + #:test-flags + #~(list "-m" "twisted.trial" + "--temp-directory=/tmp/_trial_temp" + (string-append "--jobs=" + (number->string (min 4 (parallel-job-count)))) + "tests") + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'prepare-cargo-build-system + (lambda args + (for-each + (lambda (phase) + (format #t "Running cargo phase: ~a~%" phase) + (apply (assoc-ref cargo:%standard-phases phase) + #:cargo-target #$(cargo-triplet) + args)) + '(unpack-rust-crates + configure + check-for-pregenerated-files + patch-cargo-checksums)))) + (add-after 'unpack 'disable-failing-tests + (lambda _ + (substitute* "tests/handlers/test_user_directory.py" + (("def test_search_punctuation") + "def __off_test_search_punctuation")) + (substitute* "tests/storage/test_room_search.py" + ;; twisted.trial.unittest.FailTest: 0 != 1 : expected 'quick + ;; brown' to match 'the quick brown fox jumps over the lazy + ;; dog' + (("def test_sqlite_search") + "def __off_test_sqlite_search") + ;; twisted.trial.unittest.FailTest: 0 != 1 + (("def test_null_byte") + "def __off_test_null_byte")))) + (add-after 'build 'install-rust-library + (lambda _ + (copy-file "target/release/libsynapse.so" + "synapse/synapse_rust.so")))))) + (inputs (cargo-inputs 'synapse)) (propagated-inputs - (list python-simplejson ;not attested but required - ;; requirements (synapse/python_dependencies.py) - python-jsonschema - python-frozendict - python-unpaddedbase64 - python-canonicaljson - python-signedjson - python-pynacl - python-idna - python-service-identity - python-twisted - python-treq - python-pyopenssl - python-pyyaml - python-pyasn1 - python-pyasn1-modules - python-daemonize + (list python-attrs python-bcrypt - python-pillow - python-sortedcontainers - python-pymacaroons + python-bleach + python-canonicaljson + python-cryptography + python-ijson + python-immutabledict + python-jinja2 + python-jsonschema + python-matrix-common python-msgpack + python-multipart + python-netaddr + python-packaging python-phonenumbers - python-six + python-pillow python-prometheus-client - python-attrs - python-netaddr - python-jinja2 - python-bleach + python-pyasn1 + python-pyasn1-modules + python-pydantic + python-pymacaroons + python-pyopenssl + python-pyyaml + python-service-identity + python-signedjson + python-sortedcontainers + python-treq + python-twisted python-typing-extensions - ;; conditional requirements (synapse/python_dependencies.py) - ;; ("python-hiredis" ,python-hiredis) + python-unpaddedbase64 + ;; [all] + python-authlib + python-hiredis + python-idna + python-lxml python-matrix-synapse-ldap3 + python-parameterized python-psycopg2 - python-jinja2 - python-txacme + python-psycopg2cffi + python-pympler python-pysaml2 - python-lxml - python-packaging - ;; sentry-sdk, jaeger-client, and opentracing could be included, but - ;; all are monitoring aids and not essential. - python-pyjwt)) - (native-inputs (list python-mock python-parameterized python-setuptools)) - (home-page "https://github.com/matrix-org/synapse") + python-txredisapi)) + (native-inputs + (list (libc-utf8-locales-for-target) ;for tests + openssl + postgresql + python-poetry-core + python-pyperf + python-setuptools-rust + rust + (list rust "cargo") + tzdata-for-tests + xmlsec)) + (home-page "https://github.com/element-hq/synapse") (synopsis "Matrix reference homeserver") (description "Synapse is a reference \"homeserver\" implementation of Matrix from the diff --git a/gnu/packages/rust-crates.scm b/gnu/packages/rust-crates.scm index b28329ff191a9981af039f5bd0fbe53f621cfa0a..70a8f6f5f2e4e72d2938dfe41540c4130fb9432f 100644 --- a/gnu/packages/rust-crates.scm +++ b/gnu/packages/rust-crates.scm @@ -2352,6 +2352,10 @@ (crate-source "cc" "1.2.29" "0qlkaspjmywvjyfqhpv2x4kwrqs6b69zg33wfi2l8fg2im9rj5aw")) +(define rust-cc-1.2.30 + (crate-source "cc" "1.2.30" + "1rqs46vb04ffqlpi6kjwfmvvvf64y6jkdn1faql30sfa0yb11v6y")) + (define rust-cc-1.2.34 (crate-source "cc" "1.2.34" "1p5ycww65h7xca03lwdp264qalw8v357rg5h17s7naq3h3m4mg22")) @@ -7939,6 +7943,10 @@ (crate-source "headers" "0.4.0" "1abari69kjl2yv2dg06g2x17qgd1a20xp7aqmmg2vfhcppk0c89j")) +(define rust-headers-0.4.1 + (crate-source "headers" "0.4.1" + "1sr4zygaq1b2f0k7b5l8vx5vp05wvd82w7vpavgvr52xvdd4scdk")) + (define rust-headers-core-0.2.0 (crate-source "headers-core" "0.2.0" "0ab469xfpd411mc3dhmjhmzrhqikzyj8a17jn5bkj9zfpy0n9xp7")) @@ -8383,10 +8391,18 @@ (crate-source "icu_decimal_data" "1.5.1" "1qhah965n48j2izqx8bcm1pn8dkxxjb584cwga1nvkswgzcmvjb7")) +(define rust-icu-locale-2.0.0 + (crate-source "icu_locale" "2.0.0" + "1zdy5ym97gj0aqggk8zs2fngazf33szmssbc3gd92pik50ar5rba")) + (define rust-icu-locale-core-2.0.0 (crate-source "icu_locale_core" "2.0.0" "02phv7vwhyx6vmaqgwkh2p4kc2kciykv2px6g4h8glxfrh02gphc")) +(define rust-icu-locale-data-2.0.0 + (crate-source "icu_locale_data" "2.0.0" + "0r974pj4waqfb5k935xccgmm8rc1a21r77n68fkhd7bl4k0z1pjg")) + (define rust-icu-locid-1.5.0 (crate-source "icu_locid" "1.5.0" "0dznvd1c5b02iilqm044q4hvar0sqibq1z46prqwjzwif61vpb0k")) @@ -8485,10 +8501,18 @@ (crate-source "icu_segmenter" "1.5.0" "1pmharib9s1hn5650d4lyd48145n1n14pja2gcnzqvrl29b745x7")) +(define rust-icu-segmenter-2.0.0 + (crate-source "icu_segmenter" "2.0.0" + "1lykyzm1md2pb1a2l6c83gryvx9m7f32pc8dyj616720nq9zr1g1")) + (define rust-icu-segmenter-data-1.5.1 (crate-source "icu_segmenter_data" "1.5.1" "1sx1rac5xxamqxr8x3cj91lkvlc4jblrrr4lqly3chcr2xsjgrd1")) +(define rust-icu-segmenter-data-2.0.0 + (crate-source "icu_segmenter_data" "2.0.0" + "080jy1crxy2wk5qc04vzvbvj7m1nvgg5chwlid7pqqbzx7xs4q2k")) + (define rust-icu-timezone-1.5.0 (crate-source "icu_timezone" "1.5.0" "15nyqq5k231w51g3bmpbrsdnv1gfiam5s8w7qwha0farb1mbm4da")) @@ -13859,6 +13883,10 @@ (crate-source "pyo3" "0.25.0" "19277ka0xfam1sljmm5129iars41nbqpflpqzqxfgkiv6rbdcfgj")) +(define rust-pyo3-0.25.1 + (crate-source "pyo3" "0.25.1" + "0ak85gkxs2ylrpbgyq1ksk24asvbsxgzqxh38gis6a06zs5afw49")) + (define rust-pyo3-build-config-0.15.2 (crate-source "pyo3-build-config" "0.15.2" "0414biclhrxv6y0bjm6s9fq9z6yah393ffkd8748pqdq83y3k4kp")) @@ -13895,6 +13923,10 @@ (crate-source "pyo3-build-config" "0.25.0" "0v8viwyp3whd39wywfh0lv53kjhrykvalisj2vx48h63l5qscpkm")) +(define rust-pyo3-build-config-0.25.1 + (crate-source "pyo3-build-config" "0.25.1" + "163m3jhd5mrql9qpq3b6adg63b7kiwjg4f5svrx03kkybv2v13j5")) + (define rust-pyo3-ffi-0.16.6 (crate-source "pyo3-ffi" "0.16.6" "0pzpcmndak7y72p4rw494cki1bxh86diiqdzsw14gxammc1jg26a")) @@ -13927,6 +13959,14 @@ (crate-source "pyo3-ffi" "0.25.0" "0vlm6m6q3060g2gzvfpijkrr6lmy8kvhyc7asj8lgr4if3ka55gw")) +(define rust-pyo3-ffi-0.25.1 + (crate-source "pyo3-ffi" "0.25.1" + "0p2n08qhqr5jqnjl8dh810k82nr90vr5al3wnxm2f6y6axagw53i")) + +(define rust-pyo3-log-0.12.4 + (crate-source "pyo3-log" "0.12.4" + "0r12ymfv42sxacczqfvgqm01q8qcf5xnr017grc0a9ad99g2w6a5")) + (define rust-pyo3-macros-0.15.2 (crate-source "pyo3-macros" "0.15.2" "0fmrzl185i00c6kdvy7icmhhc99c51pyha46incqggk4qvl4gch0")) @@ -13963,6 +14003,10 @@ (crate-source "pyo3-macros" "0.25.0" "0502a6860s62sw7vlw92vg4bd4fp1ryfh59glqlhi4lk3cfn8yd1")) +(define rust-pyo3-macros-0.25.1 + (crate-source "pyo3-macros" "0.25.1" + "0l3yxxmsmxcl7jf16djkg3vlhr3qhc4imlain1n4sdrbc855qwm8")) + (define rust-pyo3-macros-backend-0.15.2 (crate-source "pyo3-macros-backend" "0.15.2" "15bhc1xib9yz4l1sd2lk3nc7scbqsjfvgvlr3mj0xq0jqh92i32s")) @@ -13999,6 +14043,10 @@ (crate-source "pyo3-macros-backend" "0.25.0" "17p8l74mxkrzwd3zcx2yky5fmv33d45f8yiz1qdl935brbmqbzwx")) +(define rust-pyo3-macros-backend-0.25.1 + (crate-source "pyo3-macros-backend" "0.25.1" + "1k1cawx33hzm6g2lydxlywy5qh6w9p2xpc057hs8a4294969h2a1")) + (define rust-pyproject-toml-0.11.0 (crate-source "pyproject-toml" "0.11.0" "0sm3ncm57hgcyladl55w59ycl39vq4crigjb9bya0n6b7c162w7g")) @@ -14012,6 +14060,10 @@ (crate-source "python3-dll-a" "0.2.13" "1vfl9qpx1mj4fdzijkx1yb8z91gilc725l1ajj9r9kw8l8kl5zj9")) +(define rust-pythonize-0.25.0 + (crate-source "pythonize" "0.25.0" + "09sy8zy6a39sbz3h18zbcgl6mwwxafkklyaq65bj52s8k89hfyar")) + (define rust-qcheck-1.0.0 (crate-source "qcheck" "1.0.0" "1w7knnk2zhhczmymh6hdddsld4vlvmm6lpn930nxclfs891bsfdl")) @@ -18910,6 +18962,10 @@ (crate-source "uds_windows" "1.1.0" "1fb4y65pw0rsp0gyfyinjazlzxz1f6zv7j4zmb20l5pxwv1ypnl9")) +(define rust-ulid-1.2.1 + (crate-source "ulid" "1.2.1" + "1ghzggz7194hw345idz8afd8g1lw8qmknlhl7ka3j6ysj5jvy3a7")) + (define rust-uluru-3.1.0 (crate-source "uluru" "3.1.0" "1njp6vvy1mm8idnsp6ljyxx5znfsk3xkmk9cr2am0vkfwmlj92kw")) @@ -51445,6 +51501,209 @@ rust-zune-core-0.4.12 rust-zune-inflate-0.2.54 rust-zune-jpeg-0.4.17)) + (synapse => + (list rust-addr2line-0.24.2 + rust-adler2-2.0.1 + rust-aho-corasick-1.1.3 + rust-anyhow-1.0.100 + rust-arc-swap-1.7.1 + rust-atomic-waker-1.1.2 + rust-autocfg-1.5.0 + rust-backtrace-0.3.75 + rust-base64-0.22.1 + rust-bitflags-2.9.1 + rust-blake2-0.10.6 + rust-block-buffer-0.10.4 + rust-bumpalo-3.19.0 + rust-bytes-1.10.1 + rust-cc-1.2.30 + rust-cfg-if-1.0.1 + rust-cfg-aliases-0.2.1 + rust-core-foundation-0.10.1 + rust-core-foundation-sys-0.8.7 + rust-core-maths-0.1.1 + rust-cpufeatures-0.2.17 + rust-crypto-common-0.1.6 + rust-digest-0.10.7 + rust-displaydoc-0.2.5 + rust-equivalent-1.0.2 + rust-fnv-1.0.7 + rust-form-urlencoded-1.2.1 + rust-futures-0.3.31 + rust-futures-channel-0.3.31 + rust-futures-core-0.3.31 + rust-futures-executor-0.3.31 + rust-futures-io-0.3.31 + rust-futures-macro-0.3.31 + rust-futures-sink-0.3.31 + rust-futures-task-0.3.31 + rust-futures-util-0.3.31 + rust-generic-array-0.14.7 + rust-getrandom-0.2.16 + rust-getrandom-0.3.3 + rust-gimli-0.31.1 + rust-h2-0.4.11 + rust-hashbrown-0.15.4 + rust-headers-0.4.1 + rust-headers-core-0.3.0 + rust-heck-0.5.0 + rust-hex-0.4.3 + rust-http-1.3.1 + rust-http-body-1.0.1 + rust-http-body-util-0.1.3 + rust-httparse-1.10.1 + rust-httpdate-1.0.3 + rust-hyper-1.6.0 + rust-hyper-rustls-0.27.7 + rust-hyper-util-0.1.16 + rust-icu-collections-2.0.0 + rust-icu-locale-2.0.0 + rust-icu-locale-core-2.0.0 + rust-icu-locale-data-2.0.0 + rust-icu-normalizer-2.0.0 + rust-icu-normalizer-data-2.0.0 + rust-icu-properties-2.0.1 + rust-icu-properties-data-2.0.1 + rust-icu-provider-2.0.0 + rust-icu-segmenter-2.0.0 + rust-icu-segmenter-data-2.0.0 + rust-idna-1.0.3 + rust-idna-adapter-1.2.1 + rust-indexmap-2.10.0 + rust-indoc-2.0.6 + rust-io-uring-0.7.9 + rust-ipnet-2.11.0 + rust-iri-string-0.7.8 + rust-itoa-1.0.15 + rust-js-sys-0.3.77 + rust-lazy-static-1.5.0 + rust-libc-0.2.174 + rust-libm-0.2.15 + rust-litemap-0.8.0 + rust-log-0.4.28 + rust-lru-slab-0.1.2 + rust-memchr-2.7.5 + rust-memoffset-0.9.1 + rust-mime-0.3.17 + rust-miniz-oxide-0.8.9 + rust-mio-1.0.4 + rust-object-0.36.7 + rust-once-cell-1.21.3 + rust-openssl-probe-0.1.6 + rust-percent-encoding-2.3.1 + rust-pin-project-lite-0.2.16 + rust-pin-utils-0.1.0 + rust-portable-atomic-1.11.1 + rust-potential-utf-0.1.2 + rust-ppv-lite86-0.2.21 + rust-proc-macro2-1.0.95 + rust-pyo3-0.25.1 + rust-pyo3-build-config-0.25.1 + rust-pyo3-ffi-0.25.1 + rust-pyo3-log-0.12.4 + rust-pyo3-macros-0.25.1 + rust-pyo3-macros-backend-0.25.1 + rust-pythonize-0.25.0 + rust-quinn-0.11.8 + rust-quinn-proto-0.11.12 + rust-quinn-udp-0.5.13 + rust-quote-1.0.40 + rust-r-efi-5.3.0 + rust-rand-0.9.2 + rust-rand-chacha-0.9.0 + rust-rand-core-0.9.3 + rust-regex-1.11.3 + rust-regex-automata-0.4.11 + rust-regex-syntax-0.8.5 + rust-reqwest-0.12.23 + rust-ring-0.17.14 + rust-rustc-demangle-0.1.26 + rust-rustc-hash-2.1.1 + rust-rustls-0.23.31 + rust-rustls-native-certs-0.8.1 + rust-rustls-pki-types-1.12.0 + rust-rustls-webpki-0.103.4 + rust-rustversion-1.0.21 + rust-ryu-1.0.20 + rust-schannel-0.1.27 + rust-security-framework-3.2.0 + rust-security-framework-sys-2.14.0 + rust-serde-1.0.228 + rust-serde-core-1.0.228 + rust-serde-derive-1.0.228 + rust-serde-json-1.0.145 + rust-serde-urlencoded-0.7.1 + rust-sha1-0.10.6 + rust-sha2-0.10.9 + rust-shlex-1.3.0 + rust-slab-0.4.11 + rust-smallvec-1.15.1 + rust-socket2-0.5.10 + rust-socket2-0.6.0 + rust-stable-deref-trait-1.2.0 + rust-subtle-2.6.1 + rust-syn-2.0.104 + rust-sync-wrapper-1.0.2 + rust-synstructure-0.13.2 + rust-target-lexicon-0.13.2 + rust-thiserror-2.0.12 + rust-thiserror-impl-2.0.12 + rust-tinystr-0.8.1 + rust-tinyvec-1.9.0 + rust-tinyvec-macros-0.1.1 + rust-tokio-1.47.1 + rust-tokio-rustls-0.26.2 + rust-tokio-util-0.7.15 + rust-tower-0.5.2 + rust-tower-http-0.6.6 + rust-tower-layer-0.3.3 + rust-tower-service-0.3.3 + rust-tracing-0.1.41 + rust-tracing-core-0.1.34 + rust-try-lock-0.2.5 + rust-typenum-1.18.0 + rust-ulid-1.2.1 + rust-unicode-ident-1.0.18 + rust-unindent-0.2.4 + rust-untrusted-0.9.0 + rust-url-2.5.4 + rust-utf8-iter-1.0.4 + rust-version-check-0.9.5 + rust-want-0.3.1 + rust-wasi-0.11.1+wasi-snapshot-preview1 + rust-wasi-0.14.2+wasi-0.2.4 + rust-wasm-bindgen-0.2.100 + rust-wasm-bindgen-backend-0.2.100 + rust-wasm-bindgen-futures-0.4.50 + rust-wasm-bindgen-macro-0.2.100 + rust-wasm-bindgen-macro-support-0.2.100 + rust-wasm-bindgen-shared-0.2.100 + rust-wasm-streams-0.4.2 + rust-web-sys-0.3.77 + rust-web-time-1.1.0 + rust-windows-sys-0.52.0 + rust-windows-sys-0.59.0 + rust-windows-targets-0.52.6 + rust-windows-aarch64-gnullvm-0.52.6 + rust-windows-aarch64-msvc-0.52.6 + rust-windows-i686-gnu-0.52.6 + rust-windows-i686-gnullvm-0.52.6 + rust-windows-i686-msvc-0.52.6 + rust-windows-x86-64-gnu-0.52.6 + rust-windows-x86-64-gnullvm-0.52.6 + rust-windows-x86-64-msvc-0.52.6 + rust-wit-bindgen-rt-0.39.0 + rust-writeable-0.6.1 + rust-yoke-0.8.0 + rust-yoke-derive-0.8.0 + rust-zerocopy-0.8.26 + rust-zerocopy-derive-0.8.26 + rust-zerofrom-0.1.6 + rust-zerofrom-derive-0.1.6 + rust-zeroize-1.8.1 + rust-zerotrie-0.2.2 + rust-zerovec-0.11.2 + rust-zerovec-derive-0.11.1)) (systemd-lsp => (list rust-addr2line-0.24.2 rust-adler2-2.0.1