From: Alex ter Weele <alex.ter.weele@gmail.com>
To: 39841@debbugs.gnu.org
Subject: [bug#39841] [WIP PATCH] synapse
Date: Sat, 29 Feb 2020 11:53:03 -0600 [thread overview]
Message-ID: <87tv39nuv4.fsf@librem.i-did-not-set--mail-host-address--so-tickle-me> (raw)
[-- Attachment #1: Type: text/plain, Size: 772 bytes --]
Hello,
These are some patches to add Synapse
<https://github.com/matrix-org/synapse>.
I would appreciate some help getting the tests to run for some of the
Python dependencies, they're marked with TODOs.
Synapse appears to have some optional dependencies. I haven't packaged
all of them. The remaining ones are also marked with TODOs.
But, it seems to run! Here's what I had to do to start it:
guix environment guix -- make -j4 && ./pre-inst-env guix environment synapse
cd ~/src/synapse/
python -m synapse.app.homeserver --server-name test.local --config-path /tmp/homeserver.yaml --generate-config --report-stats=no
exit
guix environment guix -- make -j4 && ./pre-inst-env guix environment --ad-hoc synapse -- synctl --no-daemonize start /tmp/homeserver.yaml
[-- 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: 1185 bytes --]
From 713a8bf6905ccd49ff53a5a06526816ca0a98535 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/12] 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 4ea09b756e..abd3ff775a 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -14907,14 +14907,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.1
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #3: 0002-gnu-Add-python-frozendict.patch --]
[-- Type: text/x-patch, Size: 1378 bytes --]
From 7a9128fe9a1199349557f6a442ed410b099fe049 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/12] 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 abd3ff775a..9007c4f3fa 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -17576,3 +17576,22 @@ sequences.")
(define-public python2-fuzzywuzzy
(package-with-python2 python-fuzzywuzzy))
+
+(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 "A simple immutable mapping for python")
+ (description
+ "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.1
[-- Attachment #4: 0003-gnu-Add-python-unpaddedbase64.patch --]
[-- Type: text/x-patch, Size: 1706 bytes --]
From 6efc1c329f39fc9290601b368dde4e5283397563 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/12] 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 9007c4f3fa..847a4fe7e0 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -17595,3 +17595,26 @@ sequences.")
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.1
[-- Attachment #5: 0004-gnu-Add-python-canonicaljson.patch --]
[-- Type: text/x-patch, Size: 2029 bytes --]
From 85cfe8b9df96aa7b500ee88baa274310a8ab0e20 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/12] gnu: Add python-canonicaljson.
* gnu/packages/python-xyz.scm (python-canonicaljson): New variable.
---
gnu/packages/python-xyz.scm | 30 ++++++++++++++++++++++++++++++
1 file changed, 30 insertions(+)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 847a4fe7e0..5b401a0ad3 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -17618,3 +17618,33 @@ 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)
+ (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
+ "@enumerate
+@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 enumerate ")
+ (license license:asl2.0)))
--
2.25.1
[-- Attachment #6: 0005-gnu-Add-python-signedjson.patch --]
[-- Type: text/x-patch, Size: 2171 bytes --]
From f071df94857709c1bb586463ad28e58cc940bfaf 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/12] gnu: Add python-signedjson.
* gnu/packages/python-xyz.scm (python-signedjson): New variable.
---
gnu/packages/python-xyz.scm | 37 +++++++++++++++++++++++++++++++++++++
1 file changed, 37 insertions(+)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 5b401a0ad3..7200b3218e 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -17648,3 +17648,40 @@ to use Base64 without the “=” padding.")
@item Can encode frozendict immutable dictionaries.
@end enumerate ")
(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))
+ (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
+ "@enumerate
+@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 enumerate")
+ (license license:asl2.0)))
--
2.25.1
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #7: 0006-gnu-Add-python-daemonize.patch --]
[-- Type: text/x-patch, Size: 1209 bytes --]
From 420e1f58df9d5f8d39d39fff97cea0f592607afa 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/12] 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 7200b3218e..58cc7c197d 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -17685,3 +17685,19 @@ rotate keys
key.
@end enumerate")
(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 "A library for writing system daemons in Python")
+ (description "daemonize is a library for writing system daemons in Python.")
+ (license license:expat)))
--
2.25.1
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #8: 0007-gnu-Add-python-pymacaroons.patch --]
[-- Type: text/x-patch, Size: 1835 bytes --]
From 290caa3269f9cfc121af8350d223089925c9b801 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/12] 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 58cc7c197d..7d8653a99d 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -17701,3 +17701,30 @@ key.
(synopsis "A 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)
+ (inputs
+ `(("python-six" ,python-six)
+ ("python-pynacl" ,python-pynacl)))
+ (home-page "https://github.com/ecordell/pymacaroons")
+ (synopsis "A 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.1
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #9: 0008-gnu-Add-python-prometheus-client.patch --]
[-- Type: text/x-patch, Size: 1618 bytes --]
From 87db6e10a67ad872ad9de6dcf4c9e6cc5a57ab15 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/12] 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 7d8653a99d..ee7f4cd239 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -17728,3 +17728,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))
+ (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.1
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #10: 0009-gnu-Add-python-ldap3.patch --]
[-- Type: text/x-patch, Size: 1635 bytes --]
From 8bb5a61b0e865a4bb31ccba7777a964e51d51fc7 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/12] 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 ee7f4cd239..8313d620de 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -17751,3 +17751,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))
+ (inputs
+ `(("python-pyasn1" ,python-pyasn1)
+ ("python-gssapi" ,python-gssapi)))
+ (home-page "https://github.com/ecordell/ldap3")
+ (synopsis "A 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.1
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #11: 0010-gnu-Add-python-txacme.patch --]
[-- Type: text/x-patch, Size: 1758 bytes --]
From 6385d8d65cf0022b6f893b8fc3e8216d942a629a 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 10/12] gnu: Add python-txacme.
* gnu/packages/python-xyz.scm (python-txacme): 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 8313d620de..8735a6c220 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -17775,3 +17775,31 @@ 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-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)
+ (inputs
+ ;; TODO many unpackaged inputs needed
+ `())
+ (home-page "https://github.com/twisted/txacme")
+ (synopsis
+ "Twisted implementation of the Automatic Certificate Management
+Environment (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.1
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #12: 0011-gnu-Add-python-matrix-synapse-ldap3.patch --]
[-- Type: text/x-patch, Size: 2348 bytes --]
From 0b37dabdf6691b314a89c099cbf0e97c7d2c202e 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 11/12] 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 857345cfad..5c87561eaf 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -340,6 +340,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..83c314ffe4
--- /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))
+ (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 "An 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.1
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #13: 0012-gnu-Add-synapse.patch --]
[-- Type: text/x-patch, Size: 4074 bytes --]
From 60769229bc80fcd800e5a4a325c4dcdf7591ae21 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 12/12] gnu: Add synapse.
* gnu/packages/matrix.scm (synapse): New variable.
---
gnu/packages/matrix.scm | 70 +++++++++++++++++++++++++++++++++++++++++
1 file changed, 70 insertions(+)
diff --git a/gnu/packages/matrix.scm b/gnu/packages/matrix.scm
index 83c314ffe4..93ec726465 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,69 @@
"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
+ (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)
+ ;; TODO txacme, eliot, pysaml2
+ ("python-lxml" ,python-lxml)
+ ;; TODO sentry-sdk, jaeger-client, opentracing
+ ("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.1
next reply other threads:[~2020-02-29 17:54 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-02-29 17:53 Alex ter Weele [this message]
2020-02-29 19:12 ` [bug#39841] [WIP PATCH] synapse Alex ter Weele
2020-02-29 19:14 ` Alex ter Weele
2020-03-28 22:22 ` Alex ter Weele
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=87tv39nuv4.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).