From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:470:142:3::10]:55243) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jIkI2-000452-8h for guix-patches@gnu.org; Sun, 29 Mar 2020 22:36:42 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jIkHw-0003lm-CM for guix-patches@gnu.org; Sun, 29 Mar 2020 22:36:38 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:48655) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1jIkHv-0003kv-Lh for guix-patches@gnu.org; Sun, 29 Mar 2020 22:36:32 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1jIkHv-0004jc-Hg for guix-patches@gnu.org; Sun, 29 Mar 2020 22:36:31 -0400 Subject: [bug#39841] [WIP PATCH] synapse Resent-Message-ID: From: Alex ter Weele References: <87tv39nuv4.fsf@librem.i-did-not-set--mail-host-address--so-tickle-me> <87o8thtdg3.fsf@librem.i-did-not-set--mail-host-address--so-tickle-me> <87k145tddg.fsf@librem.i-did-not-set--mail-host-address--so-tickle-me> Date: Sat, 28 Mar 2020 17:22:02 -0500 In-Reply-To: <87k145tddg.fsf@librem.i-did-not-set--mail-host-address--so-tickle-me> (Alex ter Weele's message of "Sat, 29 Feb 2020 13:14:19 -0600") Message-ID: <87a740yvat.fsf@librem.i-did-not-set--mail-host-address--so-tickle-me> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+kyle=kyleam.com@gnu.org Sender: "Guix-patches" To: Alex ter Weele Cc: 39841@debbugs.gnu.org --=-=-= Content-Type: text/plain This new patch series should apply against master. There are a few more packages and I have guix linted. I'd appreciate help from people famaliar with Python testing to get tests working. They should be marked with TODOs. --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0001-gnu-python-typing-extensions-Update-to-3.7.4.1.patch >>From 333a46d0f0317a29ed1ff33b673f511537bc0233 Mon Sep 17 00:00:00 2001 From: Alex ter Weele Date: Sat, 29 Feb 2020 11:03:02 -0600 Subject: [PATCH 01/17] gnu: python-typing-extensions: Update to 3.7.4.1. * gnu/packages/python-xyz (python-typing-extensions): Update to 3.7.4.1. --- gnu/packages/python-xyz.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index d63b71c14e..5e10d0a6ea 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -15637,14 +15637,14 @@ and other tools.") (define-public python-typing-extensions (package (name "python-typing-extensions") - (version "3.7.2") + (version "3.7.4.1") (source (origin (method url-fetch) (uri (pypi-uri "typing_extensions" version)) (sha256 (base32 - "0wfsv71pvkyf2na938l579jh0v3kzl6g744ijgnahcwd4d9x0b7v")))) + "1wj1vcgbnm20aiinmphyxfrbv3qi9xdhvw89ab3qm42y9n4wq7h9")))) (build-system python-build-system) (home-page "https://github.com/python/typing/blob/master/typing_extensions/README.rst") -- 2.25.2 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0002-gnu-Add-python-frozendict.patch >>From 32800f04102e53acadf9fdd06b7e263c75c35534 Mon Sep 17 00:00:00 2001 From: Alex ter Weele Date: Sat, 29 Feb 2020 11:06:27 -0600 Subject: [PATCH 02/17] gnu: Add python-frozendict. * gnu/packages/python-xyz.scm (python-frozendict): New variable. --- gnu/packages/python-xyz.scm | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index 5e10d0a6ea..cd51e8cbc4 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -18732,3 +18732,22 @@ HTML-containing files.") usable as a configuration language. This Python package implements parsing and dumping of JSON5 data structures.") (license license:asl2.0))) + +(define-public python-frozendict + (package + (name "python-frozendict") + (version "1.2") + (source + (origin + (method url-fetch) + (uri (pypi-uri "frozendict" version)) + (sha256 + (base32 "0ibf1wipidz57giy53dh7mh68f2hz38x8f4wdq88mvxj5pr7jhbp")))) + (build-system python-build-system) + (home-page "https://github.com/slezica/python-frozendict") + (synopsis "Simple immutable mapping for Python") + (description + "@dfn{frozendict} is an immutable wrapper around dictionaries that +implements the complete mapping interface. It can be used as a drop-in +replacement for dictionaries where immutability is desired.") + (license license:expat))) -- 2.25.2 --=-=-= Content-Type: text/x-patch; charset=utf-8 Content-Disposition: attachment; filename=0003-gnu-Add-python-unpaddedbase64.patch Content-Transfer-Encoding: quoted-printable >>From 1372123f8ba023cfbe3c34610c0bb8efa70f6467 Mon Sep 17 00:00:00 2001 From: Alex ter Weele Date: Sat, 29 Feb 2020 11:07:34 -0600 Subject: [PATCH 03/17] gnu: Add python-unpaddedbase64. * gnu/packages/python-xyz.scm (python-unpaddedbase64): New variable. --- gnu/packages/python-xyz.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index cd51e8cbc4..38f1c286b2 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -18751,3 +18751,26 @@ dumping of JSON5 data structures.") implements the complete mapping interface. It can be used as a drop-in replacement for dictionaries where immutability is desired.") (license license:expat))) + +(define-public python-unpaddedbase64 + (package + (name "python-unpaddedbase64") + (version "1.1.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/matrix-org/python-unpaddedbase64.git= ") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0if3fjfxga0bwdq47v77fs9hrcqpmwdxry2i2a7pdqsp95258nxd")))) + (build-system python-build-system) + (home-page "https://pypi.org/project/unpaddedbase64/") + (synopsis "Encode and decode Base64 without =E2=80=9C=3D=E2=80=9D padd= ing") + (description + "RFC 4648 specifies that Base64 should be padded to a multiple of 4 b= ytes +using =E2=80=9C=3D=E2=80=9D characters. However this conveys no benefit s= o many protocols +choose to use Base64 without the =E2=80=9C=3D=E2=80=9D padding.") + (license license:asl2.0))) --=20 2.25.2 --=-=-= Content-Type: text/x-patch; charset=utf-8 Content-Disposition: attachment; filename=0004-gnu-Add-python-canonicaljson.patch Content-Transfer-Encoding: quoted-printable >>From 45f8e99a585463c92bc02bcf81683c3184f663f5 Mon Sep 17 00:00:00 2001 From: Alex ter Weele Date: Sat, 29 Feb 2020 11:08:29 -0600 Subject: [PATCH 04/17] gnu: Add python-canonicaljson. * gnu/packages/python-xyz.scm (python-canonicaljson): New variable. --- gnu/packages/python-xyz.scm | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index 38f1c286b2..77d991c8aa 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -18774,3 +18774,35 @@ replacement for dictionaries where immutability is= desired.") using =E2=80=9C=3D=E2=80=9D characters. However this conveys no benefit s= o many protocols choose to use Base64 without the =E2=80=9C=3D=E2=80=9D padding.") (license license:asl2.0))) + +(define-public python-canonicaljson + (package + (name "python-canonicaljson") + (version "1.1.4") + (source + (origin + (method url-fetch) + (uri (pypi-uri "canonicaljson" version)) + (sha256 + (base32 "09cpacc8yvcc74i63pdmlfaahh77dnvbyw9zf29wml2zzwqfbg25")))) + (build-system python-build-system) + (propagated-inputs + `(("python-six" ,python-six) + ("python-frozendict" ,python-frozendict) + ("python-simplejson" ,python-simplejson))) + (home-page "https://github.com/matrix-org/python-canonicaljson") + (synopsis "Canonical JSON") + (description + "Deterministically encode JSON. + +@itemize +@item Encodes objects and arrays as RFC 7159 JSON. +@item Sorts object keys so that you get the same result each time. +@item Has no insignificant whitespace to make the output as small as possi= ble. +@item Escapes only the characters that must be escaped, U+0000 to + U+0019 / U+0022 / U+0056, to keep the output as small as possible. +@item Uses the shortest escape sequence for each escaped character. +@item Encodes the JSON as UTF-8. +@item Can encode frozendict immutable dictionaries. +@end itemize") + (license license:asl2.0))) --=20 2.25.2 --=-=-= Content-Type: text/x-patch; charset=utf-8 Content-Disposition: attachment; filename=0005-gnu-Add-python-signedjson.patch Content-Transfer-Encoding: quoted-printable >>From 4945c826db27840dc0157cc14d5aba583ec45164 Mon Sep 17 00:00:00 2001 From: Alex ter Weele Date: Sat, 29 Feb 2020 11:09:58 -0600 Subject: [PATCH 05/17] gnu: Add python-signedjson. * gnu/packages/python-xyz.scm (python-signedjson): New variable. --- gnu/packages/python-xyz.scm | 39 +++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index 77d991c8aa..eca84e170b 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -18806,3 +18806,42 @@ choose to use Base64 without the =E2=80=9C=3D=E2= =80=9D padding.") @item Can encode frozendict immutable dictionaries. @end itemize") (license license:asl2.0))) + +(define-public python-signedjson + (package + (name "python-signedjson") + (version "1.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "signedjson" version)) + (sha256 + (base32 "13wfi50wzz38j6xsz7hmx26vf0zvk0fj7516wavzpsyfk9xy3g5v")))) + (build-system python-build-system) + (arguments + ;; TODO "AttributeError: type object 'Callable' has no attribute + ;; '_abc_registry'" + `(#:tests? #f)) + (propagated-inputs + `(("python-canonicaljson" ,python-canonicaljson) + ("python-unpaddedbase64" ,python-unpaddedbase64) + ("python-pynacl" ,python-pynacl) + ("python-typing-extensions" ,python-typing-extensions) + ("python-typing" ,python-typing))) + (native-inputs + `(("python-simplejson" ,python-simplejson) + ("python-frozendict" ,python-frozendict))) + (home-page "https://github.com/matrix-org/python-signedjson") + (synopsis "Sign JSON objects with ED25519 signatures") + (description + "Sign JSON objects with ED25519 signatures. + +@itemize +@item More than one entity can sign the same object. +@item Each entity can sign the object with more than one key making it eas= ier to +rotate keys +@item ED25519 can be replaced with a different algorithm. +@item Unprotected data can be added to the object under the @dfn{\"unsigne= d\"} +key. +@end itemize") + (license license:asl2.0))) --=20 2.25.2 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0006-gnu-Add-python-daemonize.patch >>From c7e1b8d06f308787239ea9857738caec05c5b369 Mon Sep 17 00:00:00 2001 From: Alex ter Weele Date: Sat, 29 Feb 2020 11:10:35 -0600 Subject: [PATCH 06/17] gnu: Add python-daemonize. * gnu/packages/python-xyz.scm (python-daemonize): New variable. --- gnu/packages/python-xyz.scm | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index eca84e170b..1e1b062fd9 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -18845,3 +18845,19 @@ rotate keys key. @end itemize") (license license:asl2.0))) + +(define-public python-daemonize + (package + (name "python-daemonize") + (version "2.5.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "daemonize" version)) + (sha256 + (base32 "1hwbl3gf9fdds9sc14zgjyjisjvxidrvqc11xlbb0b6jz17nw0nx")))) + (build-system python-build-system) + (home-page "https://github.com/thesharp/daemonize") + (synopsis "Library for writing system daemons in Python") + (description "Daemonize is a library for writing system daemons in Python.") + (license license:expat))) -- 2.25.2 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0007-gnu-Add-python-pymacaroons.patch >>From 6065dcd69856aee9de073b6ad4b6d545b7f3e16c Mon Sep 17 00:00:00 2001 From: Alex ter Weele Date: Sat, 29 Feb 2020 11:11:11 -0600 Subject: [PATCH 07/17] gnu: Add python-pymacaroons. * gnu/packages/python-xyz.scm (python-pymacaroons): New variable. --- gnu/packages/python-xyz.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index 1e1b062fd9..7b75d24c92 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -18861,3 +18861,30 @@ key. (synopsis "Library for writing system daemons in Python") (description "Daemonize is a library for writing system daemons in Python.") (license license:expat))) + +(define-public python-pymacaroons + (package + (name "python-pymacaroons") + (version "0.13.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "pymacaroons" version)) + (sha256 + (base32 "1f0357a6g1h96sk6wy030xmc1p4rd80a999qvxd28v7nlm1blsqy")))) + (build-system python-build-system) + (propagated-inputs + `(("python-six" ,python-six) + ("python-pynacl" ,python-pynacl))) + (home-page "https://github.com/ecordell/pymacaroons") + (synopsis "Python Macaroon Library") + (description + "Macaroons, like cookies, are a form of bearer credential. Unlike opaque +tokens, macaroons embed caveats that define specific authorization +requirements for the target service, the service that issued the root macaroon +and which is capable of verifying the integrity of macaroons it receives. + +Macaroons allow for delegation and attenuation of authorization. They are +simple and fast to verify, and decouple authorization policy from the +enforcement of that policy.") + (license license:expat))) -- 2.25.2 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0008-gnu-Add-python-prometheus-client.patch >>From 2722ce29a52b99d42205be476fa133cac75385ce Mon Sep 17 00:00:00 2001 From: Alex ter Weele Date: Sat, 29 Feb 2020 11:11:35 -0600 Subject: [PATCH 08/17] gnu: Add python-prometheus-client. * gnu/packages/python-xyz.scm (python-prometheus-client): New variable. --- gnu/packages/python-xyz.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index 7b75d24c92..76ff670022 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -18888,3 +18888,26 @@ Macaroons allow for delegation and attenuation of authorization. They are simple and fast to verify, and decouple authorization policy from the enforcement of that policy.") (license license:expat))) + +(define-public python-prometheus-client + (package + (name "python-prometheus-client") + (version "0.7.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "prometheus_client" version)) + (sha256 + (base32 "1ni2yv4ixwz32nz39ckia76lvggi7m19y5f702w5qczbnfi29kbi")))) + (build-system python-build-system) + (arguments + ;; TODO "ModuleNotFoundError: No module named 'tests'" + `(#:tests? #f)) + (propagated-inputs + `(("python-twisted" ,python-twisted))) + (native-inputs + `(("python-tox" ,python-tox))) + (home-page "https://github.com/prometheus/client_python") + (synopsis "Prometheus instrumentation library for Python applications") + (description "The official Python 2 and 3 client for Prometheus.") + (license license:asl2.0))) -- 2.25.2 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0009-gnu-Add-python-ldap3.patch >>From 475ebc3de9557456da67a824d3f68aa579a4d0ad Mon Sep 17 00:00:00 2001 From: Alex ter Weele Date: Sat, 29 Feb 2020 11:12:08 -0600 Subject: [PATCH 09/17] gnu: Add python-ldap3. * gnu/packages/python-xyz.scm (python-ldap3): New variable. --- gnu/packages/python-xyz.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index 76ff670022..896123e998 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -18911,3 +18911,27 @@ enforcement of that policy.") (synopsis "Prometheus instrumentation library for Python applications") (description "The official Python 2 and 3 client for Prometheus.") (license license:asl2.0))) + +(define-public python-ldap3 + (package + (name "python-ldap3") + (version "2.6.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "ldap3" version)) + (sha256 + (base32 "0ag5xqlki6pjk3f50b8ar8vynx2fmkna7rfampv3kdgwg8z6gjr7")))) + (build-system python-build-system) + (arguments + ;; TODO "ImportError: Failed to import test module: ordDict" + `(#:tests? #f)) + (propagated-inputs + `(("python-pyasn1" ,python-pyasn1) + ("python-gssapi" ,python-gssapi))) + (home-page "https://github.com/cannatag/ldap3") + (synopsis "Strictly RFC 4510 conforming LDAP V3 pure Python client") + (description + "LDAP3 is a strictly RFC 4510 conforming LDAP V3 pure Python client +library. The same codebase runs in Python 2, Python 3, PyPy and PyPy3.") + (license license:lgpl3+))) -- 2.25.2 --=-=-= Content-Type: text/x-patch; charset=utf-8 Content-Disposition: attachment; filename=0010-gnu-Add-python-boltons.patch Content-Transfer-Encoding: quoted-printable >>From 45f5731eb7b2e14e06c99427b5831eef1394a8dc Mon Sep 17 00:00:00 2001 From: Alex ter Weele Date: Tue, 24 Mar 2020 19:32:46 -0500 Subject: [PATCH 10/17] gnu: Add python-boltons. * gnu/packages/python-xyz.scm: (python-boltons) New variable. --- gnu/packages/python-xyz.scm | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index 896123e998..8642f062ee 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -18935,3 +18935,36 @@ enforcement of that policy.") "LDAP3 is a strictly RFC 4510 conforming LDAP V3 pure Python client library. The same codebase runs in Python 2, Python 3, PyPy and PyPy3.") (license license:lgpl3+))) + +(define-public python-boltons + (package + (name "python-boltons") + (version "20.0.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "boltons" version)) + (sha256 + (base32 + "0lrr40qqj3ch8xarvyzbnbjs79pz5aywklllq53l347h1b8xnkg4")))) + (build-system python-build-system) + (home-page "https://github.com/mahmoud/boltons") + (synopsis + "When they're not builtins, they're boltons.") + (description + "Boltons is a set of over 230 BSD-licensed, pure-Python utilities in = the +same spirit as =E2=80=94 and yet conspicuously missing from =E2=80=94 the = standard library, +including: + +@itemize +@item Atomic file saving, bolted on with fileutils +@item A highly-optimized OrderedMultiDict, in dictutils +@item Two types of PriorityQueue, in queueutils +@item Chunked and windowed iteration, in iterutils +@item Recursive data structure iteration and merging, with iterutils.remap +@item Exponential backoff functionality, including jitter, through +iterutils.backoff +@item A full-featured TracebackInfo type, for representing stack traces, in +tbutils +@end itemize") + (license license:bsd-3))) --=20 2.25.2 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0011-gnu-Add-python-eliot.patch >>From e9b95095fd03956aeb4f7814d7a268f67ed38707 Mon Sep 17 00:00:00 2001 From: Alex ter Weele Date: Tue, 24 Mar 2020 19:33:36 -0500 Subject: [PATCH 11/17] gnu: Add python-eliot. * gnu/packages/python-xyz.scm: (python-eliot) New variable. --- gnu/packages/python-xyz.scm | 53 +++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index 8642f062ee..e0d102b681 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -18968,3 +18968,56 @@ iterutils.backoff tbutils @end itemize") (license license:bsd-3))) + +(define-public python-eliot + (package + (name "python-eliot") + (version "1.12.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "eliot" version)) + (sha256 + (base32 "0wabv7hk63l12881f4zw02mmj06583qsx2im0yywdjlj8f56vqdn")))) + (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'remove-journald-support + (lambda _ + (invoke "rm" + "eliot/tests/test_journald.py" + "eliot/journald.py") + #t)) + (add-after 'remove-journald-support 'remove-eliot-prettyprint-tests + ;; remove command-line tool's tests. TODO eliot-prettyprint should + ;; be installed and these tests should pass. + (lambda _ + (invoke "rm" "eliot/tests/test_prettyprint.py") + #t))))) + (propagated-inputs + `(("python-boltons" ,python-boltons) + ("python-pyrsistent" ,python-pyrsistent) + ("python-six" ,python-six) + ("python-zope-interface" ,python-zope-interface))) + (native-inputs + `(("python-black" ,python-black) + ("python-coverage" ,python-coverage) + ("python-dask" ,python-dask) + ("python-flake8" ,python-flake8) + ("python-hypothesis" ,python-hypothesis) + ("python-pytest" ,python-pytest) + ("python-setuptools" ,python-setuptools) + ("python-sphinx" ,python-sphinx) + ("python-sphinx-rtd-theme" ,python-sphinx-rtd-theme) + ("python-testtools" ,python-testtools) + ("python-twine" ,python-twine) + ("python-twisted" ,python-twisted))) + (home-page "https://github.com/itamarst/eliot/") + (synopsis "Eliot: the logging system that tells you why it happened") + (description + "@dfn{eliot} is a Python logging system that outputs causal chains of +actions: actions can spawn other actions, and eventually they either succeed +or fail. The resulting logs tell you the story of what your software did: what +happened, and what caused it.") + (license license:asl2.0))) -- 2.25.2 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0012-gnu-Add-python-pem.patch >>From 9f89671dcb4932aedc0ea38a28b7b95c3458e9ee Mon Sep 17 00:00:00 2001 From: Alex ter Weele Date: Tue, 24 Mar 2020 19:49:10 -0500 Subject: [PATCH 12/17] gnu: Add python-pem. * gnu/packages/python-xyz.scm: (python-pem) New variable. --- gnu/packages/python-xyz.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index e0d102b681..d3dfa8951d 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -19021,3 +19021,28 @@ actions: actions can spawn other actions, and eventually they either succeed or fail. The resulting logs tell you the story of what your software did: what happened, and what caused it.") (license license:asl2.0))) + +(define-public python-pem + (package + (name "python-pem") + (version "20.1.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "pem" version)) + (sha256 + (base32 + "1xh88ss279fprxnzd10dczmqwjhppbyvljm33zrg2mgybwd66qr7")))) + (build-system python-build-system) + (native-inputs + `(("python-certifi" ,python-certifi) + ("python-coverage" ,python-coverage) + ("python-pretend" ,python-pretend) + ("python-pyopenssl" ,python-pyopenssl) + ("python-pytest" ,python-pytest) + ("python-sphinx" ,python-sphinx) + ("python-twisted" ,python-twisted))) + (home-page "https://pem.readthedocs.io/") + (synopsis "Easy PEM file parsing in Python.") + (description "Easy PEM file parsing in Python.") + (license license:expat))) -- 2.25.2 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0013-gnu-Add-python-txsni.patch >>From 850fd6dc4c9a5149718916441fe775913ca9d17c Mon Sep 17 00:00:00 2001 From: Alex ter Weele Date: Tue, 24 Mar 2020 19:49:55 -0500 Subject: [PATCH 13/17] gnu: Add python-txsni. * gnu/packages/python-xyz.scm: (python-txsni) New variable. --- gnu/packages/python-xyz.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index d3dfa8951d..3a8756fdac 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -19046,3 +19046,28 @@ happened, and what caused it.") (synopsis "Easy PEM file parsing in Python.") (description "Easy PEM file parsing in Python.") (license license:expat))) + +(define-public python-txsni + (package + (name "python-txsni") + (version "0.1.9") + (source + (origin + (method url-fetch) + (uri (pypi-uri "TxSNI" version)) + (sha256 + (base32 + "1c72nbhx4z0v5djb89yzrcqlmjdlyryj7qgwl9ivnn816126z5kj")))) + (build-system python-build-system) + (arguments + ;; TODO confusing test failure + `(#:tests? #f)) + (propagated-inputs + `(("python-pyopenssl" ,python-pyopenssl) + ("python-service-identity" ,python-service-identity) + ("python-twisted" ,python-twisted))) + (home-page "https://github.com/glyph/txsni") + (synopsis "easy-to-use SNI endpoint for twisted") + (description + "easy-to-use SNI endpoint for twisted") + (license license:expat))) -- 2.25.2 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0014-gnu-Add-python-txacme.patch >>From ca6ec637b59fca634b1f826b93557a2316096c09 Mon Sep 17 00:00:00 2001 From: Alex ter Weele Date: Sat, 29 Feb 2020 11:13:26 -0600 Subject: [PATCH 14/17] gnu: Add python-txacme. * gnu/packages/python-xyz.scm (python-txacme): New variable. --- gnu/packages/python-xyz.scm | 42 +++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index 3a8756fdac..c0f55c06b8 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -19071,3 +19071,45 @@ happened, and what caused it.") (description "easy-to-use SNI endpoint for twisted") (license license:expat))) + +(define-public python-txacme + (package + (name "python-txacme") + (version "0.9.2") + (source + (origin + (method url-fetch) + (uri (pypi-uri "txacme" version)) + (sha256 + (base32 "1cplx4llq7i508w6fgwjdv9di7rsz9k9irfmzdfbiz6q6a0ykf1d")))) + (build-system python-build-system) + (propagated-inputs + `(("python-acme" ,python-acme) + ("python-attrs" ,python-attrs) + ("python-eliot" ,python-eliot) + ("python-josepy" ,python-josepy) + ("python-pem" ,python-pem) + ("python-treq" ,python-treq) + ("python-twisted" ,python-twisted) + ("python-txsni" ,python-txsni))) + (native-inputs + `(("python-fixtures" ,python-fixtures) + ("python-hypothesis" ,python-hypothesis) + ("python-mock" ,python-mock) + ("python-service-identity" + ,python-service-identity) + ("python-testrepository" ,python-testrepository) + ("python-testscenarios" ,python-testscenarios) + ("python-testtools" ,python-testtools))) + (home-page "https://github.com/twisted/txacme") + (synopsis + "Twisted implexmentation of the ACME protocol") + (description + "ACME is Automatic Certificate Management Environment, a protocol that +allows clients and certificate authorities to automate verification and +certificate issuance. The ACME protocol is used by the free Let's Encrypt +Certificate Authority. + +txacme is an implementation of the protocol for Twisted, the event-driven +networking engine for Python.") + (license license:expat))) -- 2.25.2 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0015-gnu-Add-python-pysaml2.patch >>From a0a9b1418301e22a3c5c260c4bd62c4be952b5e2 Mon Sep 17 00:00:00 2001 From: Alex ter Weele Date: Tue, 24 Mar 2020 19:38:36 -0500 Subject: [PATCH 15/17] gnu: Add python-pysaml2. * gnu/packages/python-xyz.scm: (python-pysaml2) New variable. --- gnu/packages/python-xyz.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index c0f55c06b8..e6d4aa0eae 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -19113,3 +19113,31 @@ Certificate Authority. txacme is an implementation of the protocol for Twisted, the event-driven networking engine for Python.") (license license:expat))) + +(define-public python-pysaml2 + (package + (name "python-pysaml2") + (version "5.0.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "pysaml2" version)) + (sha256 + (base32 + "1h8cmxh9cvxhrdfmkh92wg6zpxmhi2fixq1cy4hxismmaar7bsny")))) + (build-system python-build-system) + (propagated-inputs + `(("python-cryptography" ,python-cryptography) + ("python-dateutil" ,python-dateutil) + ("python-defusedxml" ,python-defusedxml) + ("python-pyopenssl" ,python-pyopenssl) + ("python-pytz" ,python-pytz) + ("python-requests" ,python-requests) + ("python-six" ,python-six))) + (home-page "https://idpy.org") + (synopsis + "Python implementation of SAML Version 2 Standard") + (description + "Python implementation of SAML Version 2 Standard") + (license license:asl2.0))) + -- 2.25.2 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0016-gnu-Add-python-matrix-synapse-ldap3.patch >>From b9644bb5c73c0162c13ef736e33305e11de38644 Mon Sep 17 00:00:00 2001 From: Alex ter Weele Date: Sat, 29 Feb 2020 11:19:28 -0600 Subject: [PATCH 16/17] gnu: Add python-matrix-synapse-ldap3. * gnu/packages/matrix.scm: New file. (python-matrix-synapse-ldap3) New variable. * gnu/local.mk (GNU_SYSTEM_MODULES): Add matrix.scm. --- gnu/local.mk | 1 + gnu/packages/matrix.scm | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 gnu/packages/matrix.scm diff --git a/gnu/local.mk b/gnu/local.mk index b8649b39b1..c8f0ae5543 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -343,6 +343,7 @@ GNU_SYSTEM_MODULES = \ %D%/packages/marst.scm \ %D%/packages/mate.scm \ %D%/packages/maths.scm \ + %D%/packages/matrix.scm \ %D%/packages/maven.scm \ %D%/packages/mc.scm \ %D%/packages/mcrypt.scm \ diff --git a/gnu/packages/matrix.scm b/gnu/packages/matrix.scm new file mode 100644 index 0000000000..f399d2aabc --- /dev/null +++ b/gnu/packages/matrix.scm @@ -0,0 +1,33 @@ +(define-module (gnu packages matrix) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (gnu packages python-crypto) + #:use-module (gnu packages python-xyz) + #:use-module (guix build-system python) + #:use-module (guix download) + #:use-module (guix packages)) + +(define-public python-matrix-synapse-ldap3 + (package + (name "python-matrix-synapse-ldap3") + (version "0.1.4") + (source + (origin + (method url-fetch) + (uri (pypi-uri "matrix-synapse-ldap3" version)) + (sha256 + (base32 + "01bms89sl16nyh9f141idsz4mnhxvjrc3gj721wxh1fhikps0djx")))) + (build-system python-build-system) + (arguments + ;; tests require synapse, creating a circular dependency. + '(#:tests? #f)) + (porpagated-inputs + `(("python-twisted" ,python-twisted) + ("python-ldap3" ,python-ldap3) + ("python-service-identity" ,python-service-identity))) + (home-page "https://github.com/matrix-org/matrix-synapse-ldap3") + (synopsis "LDAP3 auth provider for Synapse") + (description + "Allows synapse to use LDAP as a password provider. This allows users to +log in to synapse with their username and password from an LDAP server.") + (license license:asl2.0))) -- 2.25.2 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0017-gnu-Add-synapse.patch >>From b82005d735c4c14cf8686004ea683512a098b0b0 Mon Sep 17 00:00:00 2001 From: Alex ter Weele Date: Sat, 29 Feb 2020 11:22:06 -0600 Subject: [PATCH 17/17] gnu: Add synapse. * gnu/packages/matrix.scm (synapse): New variable. --- gnu/packages/matrix.scm | 69 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) diff --git a/gnu/packages/matrix.scm b/gnu/packages/matrix.scm index f399d2aabc..0b56c66bbb 100644 --- a/gnu/packages/matrix.scm +++ b/gnu/packages/matrix.scm @@ -1,7 +1,11 @@ (define-module (gnu packages matrix) #:use-module ((guix licenses) #:prefix license:) + #:use-module (gnu packages check) + #:use-module (gnu packages databases) #: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 packages)) @@ -31,3 +35,68 @@ "Allows synapse to use LDAP as a password provider. This allows users to log in to synapse with their username and password from an LDAP server.") (license license:asl2.0))) + +(define-public synapse + (package + (name "synapse") + (version "1.11.0") + (source (origin + (method url-fetch) + (uri (pypi-uri "matrix-synapse" version)) + (sha256 + (base32 + "0cqbwcz0fi4w413s1kcxvf696qi4n46n1k4ggnygqri5yq26qlfy")))) + (build-system python-build-system) + ;; TODO I think there are custom tests + (propagated-inputs + `(("python-simplejson" ,python-simplejson) ; not attested but required + ;; requirements (synapse/python_dependencies.py) + ("python-jsonschema" ,python-jsonschema) + ("python-frozendict" ,python-frozendict) + ("python-unpaddedbase64" ,python-unpaddedbase64) + ("python-canonicaljson" ,python-canonicaljson) + ("python-signedjson" ,python-signedjson) + ("python-pynacl" ,python-pynacl) + ("python-idna" ,python-idna) + ("python-service-identity" ,python-service-identity) + ("python-twisted" ,python-twisted) + ("python-treq" ,python-treq) + ("python-pyopenssl" ,python-pyopenssl) + ("python-pyyaml" ,python-pyyaml) + ("python-pyasn1" ,python-pyasn1) + ("python-pyasn1-modules" ,python-pyasn1-modules) + ("python-daemonize" ,python-daemonize) + ("python-bcrypt" ,python-bcrypt) + ("python-pillow" ,python-pillow) + ("python-sortedcontainers" ,python-sortedcontainers) + ("python-pymacaroons" ,python-pymacaroons) + ("python-msgpack" ,python-msgpack) + ("python-phonenumbers" ,python-phonenumbers) + ("python-six" ,python-six) + ("python-prometheus-client" ,python-prometheus-client) + ("python-attrs" ,python-attrs) + ("python-netaddr" ,python-netaddr) + ("python-jinja2" ,python-jinja2) + ("python-bleach" ,python-bleach) + ("python-typing-extensions" ,python-typing-extensions) + ;; conditional requirements (synapse/python_dependencies.py) + ("python-matrix-synapse-ldap3" ,python-matrix-synapse-ldap3) + ("python-psycopg2" ,python-psycopg2) + ("python-jinja2" ,python-jinja2) + ("python-txacme" ,python-txacme) + ("python-pysaml2" ,python-pysaml2) + ("python-lxml" ,python-lxml) + ;; sentry-sdk, jaeger-client, and opentracing could be included, but + ;; all are monitoring aids and not essential. + ("python-pyjwt" ,python-pyjwt))) + (native-inputs + `(("python-mock" ,python-mock) + ("python-parameterized" ,python-parameterized))) + (home-page "https://github.com/matrix-org/synapse") + (synopsis "Matrix reference homeserver") + (description "Synapse is a reference \"homeserver\" implementation of +Matrix from the core development team at matrix.org, written in +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))) -- 2.25.2 --=-=-=--