Subject: bug#25736: postorius (mailman)

From: ng0 <[email-masked]>
Date: Sat, 8 Apr 2017 16:39:32 +0000

Updated patches appended.

ng0 transcribed 1.0K bytes:
> ng0 transcribed 0.7K bytes:
> > This patch series adds postorius, one part of mailman version 3.
> > It was reviewed by Harmut as "Okay, good to go" and I see no point in
> > waiting for a discussion to happen on django bits of the python build
> > system. If there are minor issues on the what should be propagated or
> > native inputs, they can be solved afterwards. The packages are good to
> > go.
> > 
> > 0001-gnu-Add-python-defusedxml.patch
> > 0002-gnu-Add-python-openid.patch
> > 0003-gnu-Add-python-django-allauth.patch
> > 0004-gnu-Add-python-django-gravatar2.patch
> > 0005-gnu-Add-python-django-mailman3.patch
> > 0006-gnu-Add-postorius.patch
> > 
> > For the previous discussion, search "postorius" on the guix-devel@ list.
> > 
> > Thanks.
> 
> It seems to me as if send in on 2017-02-15, time passed until today, the
> 2017-03-23 would be enough to simply push this if I could (access
> level).
> 
> For those who can push, these patches should theoretically still apply.
> If they do not apply anymore, tell me and I'll rebase them.
> 
> 
> 
>From 7338a5d8cf40006b1572ccf6b506ded5bc768c0f Mon Sep 17 00:00:00 2001
From: ng0 <[email-masked]>
Date: Sat, 7 Jan 2017 16:37:11 +0000
Subject: [PATCH 1/6] gnu: Add python-defusedxml.

* gnu/packages/xml.scm (python-defusedxml): New variable.
---
 gnu/packages/xml.scm | 23 ++++++++++++++++++++++-
 1 file changed, 22 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/xml.scm b/gnu/packages/xml.scm
index b2e8959df..283d5112a 100644
--- a/gnu/packages/xml.scm
+++ b/gnu/packages/xml.scm
@@ -11,7 +11,7 @@
 ;;; Copyright © 2016, 2017 Leo Famulari <[email-masked]>
 ;;; Copyright © 2016 Ben Woodcroft <[email-masked]>
 ;;; Copyright © 2016 Jan Nieuwenhuizen <[email-masked]>
-;;; Copyright © 2016 ng0 <[email-masked]>
+;;; Copyright © 2016, 2017 ng0 <[email-masked]>
 ;;; Copyright © 2016 Tobias Geerinckx-Rice <[email-masked]>
 ;;; Copyright © 2016, 2017 Marius Bakke <[email-masked]>
 ;;;
@@ -1068,3 +1068,24 @@ XSLT and EXSLT.")
 XLSM) format spreadsheets into plaintext @dfn{comma separated values} (CSV)
 files.  It is designed to be fast and to handle large input files.")
     (license license:gpl2+)))
+
+(define-public python-defusedxml
+  (package
+    (name "python-defusedxml")
+    (version "0.4.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "defusedxml" version))
+       (sha256
+        (base32
+         "0y147zy3jqmk6ly7fbhqmzn1hf41xcb53f2vcc3m8x4ba5d1smfd"))))
+    (build-system python-build-system)
+    (home-page "https://bitbucket.org/tiran/defusedxml")
+    (synopsis "XML bomb protection for Python stdlib modules")
+    (description
+     "Defusedxml provides XML bomb protection for Python stdlib modules.")
+    (license license:psfl)))
+
+(define-public python2-defusedxml
+  (package-with-python2 python-defusedxml))
-- 
2.12.2

>From e588ace594815381ce73dabccf2b669d8cb6ba86 Mon Sep 17 00:00:00 2001
From: ng0 <[email-masked]>
Date: Sat, 7 Jan 2017 16:46:11 +0000
Subject: [PATCH 2/6] gnu: Add python-openid.

* gnu/packages/python.scm (python-openid): New variable.
---
 gnu/packages/python.scm | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 0746af24a..875908505 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -5549,6 +5549,32 @@ for clients and servers.")
 for clients and servers.")
     (license license:asl2.0)))
 
+;; This is named "python3-openid" upstream, but python-python3-openid
+;; is too much of an tautology.
+(define-public python-openid
+  (package
+    (name "python-openid")
+    (version "3.0.10")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "python3-openid" version))
+       (sha256
+        (base32
+         "1x3nh3fycqfn43jp5j5pb4q4y2jxp4mdka4absaa3bc0078qd758"))))
+    (propagated-inputs
+     `(("python-defusedxml" ,python-defusedxml)))
+    (native-inputs
+     `(("python-coverage" ,python-coverage)))
+    (build-system python-build-system)
+    (home-page "https://github.com/necaris/python3-openid")
+    (synopsis "OpenID support for modern servers and consumers")
+    (description
+     "This library provides OpenID authentication for Python, both
+for clients and servers.  This package provides the Python 3 port
+of python-openid.")
+    (license license:asl2.0)))
+
 (define-public python-urwidtrees
   (package
     (name "python-urwidtrees")
-- 
2.12.2

>From d767b82d5e8bd4d0ad5626fb6bb6b60ff6d37f84 Mon Sep 17 00:00:00 2001
From: ng0 <[email-masked]>
Date: Sun, 8 Jan 2017 20:02:41 +0000
Subject: [PATCH 3/6] gnu: Add python-django-allauth.

* gnu/packages/django.scm (python-django-allauth): New variable.
---
 gnu/packages/django.scm | 32 ++++++++++++++++++++++++++++++++
 1 file changed, 32 insertions(+)

diff --git a/gnu/packages/django.scm b/gnu/packages/django.scm
index 805dca6c9..4f7620ee2 100644
--- a/gnu/packages/django.scm
+++ b/gnu/packages/django.scm
@@ -1,6 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2016 Hartmut Goebel <[email-masked]>
 ;;; Copyright © 2016 Efraim Flashner <[email-masked]>
+;;; Copyright © 2017 ng0 <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -189,3 +190,34 @@ them do this.")
 
 (define-public python2-django-filter
   (package-with-python2 python-django-filter))
+
+(define-public python-django-allauth
+  (package
+    (name "python-django-allauth")
+    (version "0.30.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "django-allauth" version))
+       (sha256
+        (base32
+         "1fslqc5qqb0b66yscvkyjwfv8cnbfx5nlkpnwimyb3pf1nc1w7r3"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     `(("python-openid" ,python-openid)
+       ("python-requests" ,python-requests)
+       ("python-requests-oauthlib" ,python-requests-oauthlib)))
+    (native-inputs
+     `(("python-mock" ,python-mock)))
+    (inputs
+     `(("python-django" ,python-django)))
+    (home-page "https://github.com/pennersr/django-allauth")
+    (synopsis "Set of Django applications addressing authentication")
+    (description
+     "Integrated set of Django applications addressing authentication,
+registration, account management as well as 3rd party (social)
+account authentication.")
+    (license license:expat)))
+
+(define-public python2-django-allauth
+  (package-with-python2 python-django-allauth))
-- 
2.12.2

>From 1c2f5592e86ff0616386af4aaaac4088147b6219 Mon Sep 17 00:00:00 2001
From: ng0 <[email-masked]>
Date: Sun, 8 Jan 2017 20:31:53 +0000
Subject: [PATCH 4/6] gnu: Add python-django-gravatar2.

* gnu/packages/django.scm (python-django-gravatar2): New variable.
---
 gnu/packages/django.scm | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/gnu/packages/django.scm b/gnu/packages/django.scm
index 4f7620ee2..2038473f5 100644
--- a/gnu/packages/django.scm
+++ b/gnu/packages/django.scm
@@ -221,3 +221,27 @@ account authentication.")
 
 (define-public python2-django-allauth
   (package-with-python2 python-django-allauth))
+
+(define-public python-django-gravatar2
+  (package
+    (name "python-django-gravatar2")
+    (version "1.4.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "django-gravatar2" version))
+       (sha256
+        (base32
+         "1v4qyj6kms321yw0z2g1kch6b2dskmv6fjd6sfxzwr4xshq9mccl"))))
+    (build-system python-build-system)
+    (inputs
+     `(("python-django" ,python-django)))
+    (home-page "https://github.com/twaddington/django-gravatar")
+    (synopsis "Gravatar support for Django, improved version")
+    (description
+     "Essential Gravatar support for Django.  Features helper methods,
+templatetags and a full test suite.")
+    (license license:expat)))
+
+(define-public python2-django-gravatar2
+  (package-with-python2 python-django-gravatar2))
-- 
2.12.2

>From 1d2371fc9958873d244b6db6b2c7eea8e2989b15 Mon Sep 17 00:00:00 2001
From: ng0 <[email-masked]>
Date: Sun, 8 Jan 2017 20:54:47 +0000
Subject: [PATCH 5/6] gnu: Add python-django-mailman3.

* gnu/packages/mail.scm (python-django-mailman3): New variable.
---
 gnu/packages/mail.scm | 39 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 39 insertions(+)

diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index 13861a8ad..44730f297 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -50,6 +50,7 @@
   #:use-module (gnu packages cyrus-sasl)
   #:use-module (gnu packages databases)
   #:use-module (gnu packages dejagnu)
+  #:use-module (gnu packages django)
   #:use-module (gnu packages dns)
   #:use-module (gnu packages documentation)
   #:use-module (gnu packages emacs)
@@ -2145,3 +2146,41 @@ Options can be specified in environment variables, configuration files, and
 the command line allowing maximum configurability and ease of use for
 operators and scripters.")
     (license gpl2+)))
+
+(define-public python-django-mailman3
+  (package
+    (name "python-django-mailman3")
+    (version "1.0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "django-mailman3" version))
+       (sha256
+        (base32
+         "1adxyh8knw9knjlh73xq0jpn5adml0ck4alsv0swakm95wfyx46z"))))
+    (build-system python-build-system)
+    (inputs
+     `(("python-django" ,python-django)
+    (propagated-inputs
+     `(("python-requests" ,python-requests)
+       ("python-requests-oauthlib" ,python-requests-oauthlib)
+       ("python-openid" ,python-openid)
+       ("python-mailmanclient" ,python-mailmanclient)
+       ("python-django-allauth" ,python-django-allauth)
+       ("python-django-gravatar2" ,python-django-gravatar2)
+       ("python-pytz" ,python-pytz)))
+    (home-page "https://gitlab.com/mailman/django-mailman3")
+    (synopsis "Django library for Mailman UIs")
+    (description
+     "Libraries and templates for Django-based interfaces
+interacting with Mailman.")
+    (license gpl3+)))
+
+(define-public python2-django-mailman3
+  (let ((base (package-with-python2
+               python-django-mailman3)))
+    (package
+      (inherit base)
+      (propagated-inputs
+       `(("python2-openid" ,python2-openid)
+         ,@(package-propagated-inputs base))))))
-- 
2.12.2

>From 191c0c22d72a39dab8fb852b43afc9d0769061c7 Mon Sep 17 00:00:00 2001
From: ng0 <[email-masked]>
Date: Thu, 2 Feb 2017 21:08:05 +0000
Subject: [PATCH 6/6] gnu: Add postorius.

* gnu/packages/mail.scm (postorius): New variable.
---
 gnu/packages/mail.scm | 30 ++++++++++++++++++++++++++++++
 1 file changed, 30 insertions(+)

diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index 44730f297..bd1e24e17 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -2184,3 +2184,33 @@ interacting with Mailman.")
       (propagated-inputs
        `(("python2-openid" ,python2-openid)
          ,@(package-propagated-inputs base))))))
+
+(define-public postorius
+  (package
+    (name "postorius")
+    (version "1.0.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "postorius" version "+post2.tar.gz"))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1wymcpv2icjjy8h1ni52p6dr7wwxf71ivqgbqhzx4i82yqphcaq5"))))
+    (build-system python-build-system)
+    (arguments
+     `(; One test dependency relies on Persona, which was shut down in
+       ;; November 2016.
+       #:tests? #f
+                ;; The part of the frontend of Mailman is still python 2.7.
+                #:python ,python-2))
+    (inputs
+     `(("python2-django" ,python2-django)
+       ("python2-django-mailman3" ,python2-django-mailman3)
+       ("python2-mailmanclient" ,python2-mailmanclient)))
+    (home-page "https://gitlab.com/mailman/postorius")
+    (synopsis "Web user interface for GNU Mailman")
+    (description
+     "Postorius is a Django app which provides a web user interface
+to access GNU Mailman.")
+    (license (list gpl3+ lgpl3+))))
-- 
2.12.2