unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
From: Alex ter Weele <alex.ter.weele@gmail.com>
To: Alex ter Weele <alex.ter.weele@gmail.com>
Cc: 39841@debbugs.gnu.org
Subject: [bug#39841] [WIP PATCH] synapse
Date: Sat, 28 Mar 2020 17:22:02 -0500	[thread overview]
Message-ID: <87a740yvat.fsf@librem.i-did-not-set--mail-host-address--so-tickle-me> (raw)
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")

[-- Attachment #1: Type: text/plain, Size: 224 bytes --]

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.


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-gnu-python-typing-extensions-Update-to-3.7.4.1.patch --]
[-- Type: text/x-patch, Size: 1186 bytes --]

>From 333a46d0f0317a29ed1ff33b673f511537bc0233 Mon Sep 17 00:00:00 2001
From: Alex ter Weele <alex.ter.weele@gmail.com>
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


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #3: 0002-gnu-Add-python-frozendict.patch --]
[-- Type: text/x-patch, Size: 1464 bytes --]

>From 32800f04102e53acadf9fdd06b7e263c75c35534 Mon Sep 17 00:00:00 2001
From: Alex ter Weele <alex.ter.weele@gmail.com>
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


[-- Attachment #4: 0003-gnu-Add-python-unpaddedbase64.patch --]
[-- Type: text/x-patch, Size: 1742 bytes --]

>From 1372123f8ba023cfbe3c34610c0bb8efa70f6467 Mon Sep 17 00:00:00 2001
From: Alex ter Weele <alex.ter.weele@gmail.com>
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 “=” padding")
+    (description
+     "RFC 4648 specifies that Base64 should be padded to a multiple of 4 bytes
+using “=” characters.  However this conveys no benefit so many protocols
+choose to use Base64 without the “=” padding.")
+    (license license:asl2.0)))
-- 
2.25.2


[-- Attachment #5: 0004-gnu-Add-python-canonicaljson.patch --]
[-- Type: text/x-patch, Size: 2091 bytes --]

>From 45f8e99a585463c92bc02bcf81683c3184f663f5 Mon Sep 17 00:00:00 2001
From: Alex ter Weele <alex.ter.weele@gmail.com>
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 “=” characters.  However this conveys no benefit so many protocols
 choose to use Base64 without the “=” 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 possible.
+@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)))
-- 
2.25.2


[-- Attachment #6: 0005-gnu-Add-python-signedjson.patch --]
[-- Type: text/x-patch, Size: 2231 bytes --]

>From 4945c826db27840dc0157cc14d5aba583ec45164 Mon Sep 17 00:00:00 2001
From: Alex ter Weele <alex.ter.weele@gmail.com>
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 “=” 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 easier to
+rotate keys
+@item ED25519 can be replaced with a different algorithm.
+@item Unprotected data can be added to the object under the @dfn{\"unsigned\"}
+key.
+@end itemize")
+    (license license:asl2.0)))
-- 
2.25.2


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #7: 0006-gnu-Add-python-daemonize.patch --]
[-- Type: text/x-patch, Size: 1206 bytes --]

>From c7e1b8d06f308787239ea9857738caec05c5b369 Mon Sep 17 00:00:00 2001
From: Alex ter Weele <alex.ter.weele@gmail.com>
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


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #8: 0007-gnu-Add-python-pymacaroons.patch --]
[-- Type: text/x-patch, Size: 1845 bytes --]

>From 6065dcd69856aee9de073b6ad4b6d545b7f3e16c Mon Sep 17 00:00:00 2001
From: Alex ter Weele <alex.ter.weele@gmail.com>
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


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #9: 0008-gnu-Add-python-prometheus-client.patch --]
[-- Type: text/x-patch, Size: 1631 bytes --]

>From 2722ce29a52b99d42205be476fa133cac75385ce Mon Sep 17 00:00:00 2001
From: Alex ter Weele <alex.ter.weele@gmail.com>
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


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #10: 0009-gnu-Add-python-ldap3.patch --]
[-- Type: text/x-patch, Size: 1645 bytes --]

>From 475ebc3de9557456da67a824d3f68aa579a4d0ad Mon Sep 17 00:00:00 2001
From: Alex ter Weele <alex.ter.weele@gmail.com>
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


[-- Attachment #11: 0010-gnu-Add-python-boltons.patch --]
[-- Type: text/x-patch, Size: 2020 bytes --]

>From 45f5731eb7b2e14e06c99427b5831eef1394a8dc Mon Sep 17 00:00:00 2001
From: Alex ter Weele <alex.ter.weele@gmail.com>
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 — and yet conspicuously missing from — 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)))
-- 
2.25.2


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #12: 0011-gnu-Add-python-eliot.patch --]
[-- Type: text/x-patch, Size: 2804 bytes --]

>From e9b95095fd03956aeb4f7814d7a268f67ed38707 Mon Sep 17 00:00:00 2001
From: Alex ter Weele <alex.ter.weele@gmail.com>
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


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #13: 0012-gnu-Add-python-pem.patch --]
[-- Type: text/x-patch, Size: 1627 bytes --]

>From 9f89671dcb4932aedc0ea38a28b7b95c3458e9ee Mon Sep 17 00:00:00 2001
From: Alex ter Weele <alex.ter.weele@gmail.com>
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


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #14: 0013-gnu-Add-python-txsni.patch --]
[-- Type: text/x-patch, Size: 1526 bytes --]

>From 850fd6dc4c9a5149718916441fe775913ca9d17c Mon Sep 17 00:00:00 2001
From: Alex ter Weele <alex.ter.weele@gmail.com>
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


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #15: 0014-gnu-Add-python-txacme.patch --]
[-- Type: text/x-patch, Size: 2281 bytes --]

>From ca6ec637b59fca634b1f826b93557a2316096c09 Mon Sep 17 00:00:00 2001
From: Alex ter Weele <alex.ter.weele@gmail.com>
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


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #16: 0015-gnu-Add-python-pysaml2.patch --]
[-- Type: text/x-patch, Size: 1637 bytes --]

>From a0a9b1418301e22a3c5c260c4bd62c4be952b5e2 Mon Sep 17 00:00:00 2001
From: Alex ter Weele <alex.ter.weele@gmail.com>
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


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #17: 0016-gnu-Add-python-matrix-synapse-ldap3.patch --]
[-- Type: text/x-patch, Size: 2358 bytes --]

>From b9644bb5c73c0162c13ef736e33305e11de38644 Mon Sep 17 00:00:00 2001
From: Alex ter Weele <alex.ter.weele@gmail.com>
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


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #18: 0017-gnu-Add-synapse.patch --]
[-- Type: text/x-patch, Size: 4196 bytes --]

>From b82005d735c4c14cf8686004ea683512a098b0b0 Mon Sep 17 00:00:00 2001
From: Alex ter Weele <alex.ter.weele@gmail.com>
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


  reply	other threads:[~2020-03-30  2:36 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-02-29 17:53 [bug#39841] [WIP PATCH] synapse Alex ter Weele
2020-02-29 19:12 ` Alex ter Weele
2020-02-29 19:14   ` Alex ter Weele
2020-03-28 22:22     ` Alex ter Weele [this message]
2020-03-29 20:03 ` Marius Bakke
2020-03-30  0:28   ` Alex ter Weele
2020-03-30  0:35     ` Alex ter Weele
2020-04-02 18:49       ` bug#39841: " Marius Bakke
2020-03-30  0:42     ` [bug#39841] " Alex ter Weele

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87a740yvat.fsf@librem.i-did-not-set--mail-host-address--so-tickle-me \
    --to=alex.ter.weele@gmail.com \
    --cc=39841@debbugs.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).