diff options
Diffstat (limited to 'gnu/packages/matrix.scm')
-rw-r--r-- | gnu/packages/matrix.scm | 141 |
1 files changed, 138 insertions, 3 deletions
diff --git a/gnu/packages/matrix.scm b/gnu/packages/matrix.scm index e6b0b99630..5300185b67 100644 --- a/gnu/packages/matrix.scm +++ b/gnu/packages/matrix.scm @@ -3,7 +3,6 @@ ;;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2020, 2021 Michael Rohleder <mike@rohleder.de> ;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org> -;;; Copyright © 2021 Felix Gruber <felgru@posteo.net> ;;; ;;; This file is part of GNU Guix. ;;; @@ -23,14 +22,18 @@ (define-module (gnu packages matrix) #:use-module ((guix licenses) #:prefix license:) #:use-module (gnu packages check) + #:use-module (gnu packages crypto) #:use-module (gnu packages databases) #:use-module (gnu packages monitoring) + #:use-module (gnu packages python-build) + #:use-module (gnu packages python-check) #:use-module (gnu packages python-crypto) #:use-module (gnu packages python-web) #:use-module (gnu packages python-xyz) #:use-module (gnu packages xml) #:use-module (guix build-system python) #:use-module (guix download) + #:use-module (guix git-download) #:use-module (guix packages)) (define-public python-matrix-client @@ -87,13 +90,13 @@ an LDAP server.") (define-public synapse (package (name "synapse") - (version "1.44.0") + (version "1.29.0") (source (origin (method url-fetch) (uri (pypi-uri "matrix-synapse" version)) (sha256 (base32 - "1lgi1a4ksz4z78yb84bi29x4y080bx1dadib2wznvmwsfif0azx0")))) + "0if2yhpz8psg0661401mvxznldbfhk2j9rhbs25jdaqm9jsv6907")))) (build-system python-build-system) ;; TODO Run tests with ‘PYTHONPATH=. trial3 tests’. (propagated-inputs @@ -150,3 +153,135 @@ Python/Twisted. It is intended to showcase the concept of Matrix and let folks see the spec in the context of a codebase and let you run your own homeserver and generally help bootstrap the ecosystem.") (license license:asl2.0))) + +(define-public python-matrix-nio + (package + (name "python-matrix-nio") + (version "0.18.7") + (source + (origin + (method url-fetch) + (uri (pypi-uri "matrix-nio" version)) + (sha256 + (base32 "0cw4y6dx8n8hynxqlzzkj8p34nfbc2xryvmkr5yhmja31y4rks4k")))) + (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-before 'check 'install-tests + (lambda* (#:key inputs outputs #:allow-other-keys) + (copy-recursively (string-append + (assoc-ref inputs "tests") "/tests") + "tests") + #t)) + (replace 'check + (lambda* (#:key tests? inputs outputs #:allow-other-keys) + (when tests? + (add-installed-pythonpath inputs outputs) + ;; FIXME: two tests fail, for unknown reasons + (invoke "python" "-m" "pytest" "-vv" "tests" "-k" + (string-append + "not test_upload_binary_file_object " + "and not test_connect_wrapper")))))))) + (native-inputs + `(("python-pytest" ,python-pytest-6) + ("python-hyperframe" ,python-hyperframe) + ("python-hypothesis" ,python-hypothesis-6.23) + ("python-hpack" ,python-hpack) + ("python-faker" ,python-faker) + ("python-pytest-aiohttp" ,python-pytest-aiohttp) + ("python-aioresponses" ,python-aioresponses) + ("python-pytest-benchmark" ,python-pytest-benchmark) + ("python-toml" ,python-toml) + ("tests" + ;; The release on pypi comes without tests. We can't build from this + ;; checkout, though, because installation requires an invocation of + ;; poetry. + ,(origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/poljar/matrix-nio.git") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "152prkndk53pfxm4in4xak4hwzyaxlbp6wv2zbk2xpzgyy9bvn3s")))))) + (propagated-inputs + `(("python-aiofiles" ,python-aiofiles) + ("python-aiohttp" ,python-aiohttp) + ("python-aiohttp-socks" ,python-aiohttp-socks) + ("python-atomicwrites" ,python-atomicwrites-1.4) + ("python-cachetools" ,python-cachetools) + ("python-future" ,python-future) + ("python-h11" ,python-h11) + ("python-h2" ,python-h2) + ("python-jsonschema" ,python-jsonschema) + ("python-logbook" ,python-logbook) + ("python-olm" ,python-olm) + ("python-peewee" ,python-peewee) + ("python-pycryptodome" ,python-pycryptodome) + ("python-unpaddedbase64" ,python-unpaddedbase64))) + (home-page "https://github.com/poljar/matrix-nio") + (synopsis + "Python Matrix client library, designed according to sans I/O principles") + (description + "Matrix nio is a multilayered Matrix client library. The underlying base +layer doesn't do any network IO on its own, but on top of that is a full +fledged batteries-included asyncio layer using aiohttp.") + (license license:isc))) + +(define-public pantalaimon + (package + (name "pantalaimon") + (version "0.10.3") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/matrix-org/pantalaimon") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "153d8083lj3qqirbv5q1d3igzd61a5kyzfk7xmv29sd3jbs8ysm9")))) + (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'downgrade-appdirs-requirement + (lambda _ + (substitute* "setup.py" + ;; FIXME: Remove this once appdirs is updated. + ;; Upgrading python-appdirs requires rebuilting 3000+ packages, + ;; when 1.4.4 is a simple maintenance fix from 1.4.3. + (("appdirs >= 1.4.4") "appdirs >= 1.4.3")))) + (replace 'check + (lambda* (#:key tests? inputs outputs #:allow-other-keys) + (when tests? + (add-installed-pythonpath inputs outputs) + (invoke "pytest" "-vv" "tests"))))))) + (native-inputs + `(("python-pytest" ,python-pytest) + ("python-faker" ,python-faker) + ("python-pytest-aiohttp" ,python-pytest-aiohttp) + ("python-aioresponses" ,python-aioresponses))) + (propagated-inputs + `(("python-aiohttp" ,python-aiohttp) + ("python-appdirs" ,python-appdirs) + ("python-attrs" ,python-attrs) + ("python-cachetools" ,python-cachetools) + ("python-click" ,python-click) + ("python-janus" ,python-janus) + ("python-keyring" ,python-keyring) + ("python-logbook" ,python-logbook) + ("python-matrix-nio" ,python-matrix-nio) + ("python-peewee" ,python-peewee) + ("python-prompt-toolkit" ,python-prompt-toolkit))) + (home-page "https://github.com/matrix-org/pantalaimon") + (synopsis "Matrix proxy daemon that adds E2E encryption capabilities") + (description + "Pantalaimon is an end-to-end encryption aware Matrix reverse proxy +daemon. Pantalaimon acts as a good man in the middle that handles the +encryption for you. Messages are transparently encrypted and decrypted for +clients inside of pantalaimon.") + (license license:asl2.0))) |