From 22af3829a4bf9722c96ca07cb2840e4d61ee8b7e Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Mon, 26 Aug 2019 17:41:02 +0200 Subject: [PATCH 1/4] mailman: add the Postorious web UI --- .../django-mailman3/default.nix | 19 ++++++++++++++ .../python-modules/mailmanclient/default.nix | 13 ++++++++++ .../mail/mailman/{default.nix => core.nix} | 0 pkgs/servers/mail/mailman/postorius.nix | 25 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 8 +++++- 5 files changed, 64 insertions(+), 1 deletion(-) create mode 100644 pkgs/development/python-modules/django-mailman3/default.nix create mode 100644 pkgs/development/python-modules/mailmanclient/default.nix rename pkgs/servers/mail/mailman/{default.nix => core.nix} (100%) create mode 100644 pkgs/servers/mail/mailman/postorius.nix diff --git a/pkgs/development/python-modules/django-mailman3/default.nix b/pkgs/development/python-modules/django-mailman3/default.nix new file mode 100644 index 00000000000..bd0f626d54e --- /dev/null +++ b/pkgs/development/python-modules/django-mailman3/default.nix @@ -0,0 +1,19 @@ +{ stdenv, buildPythonPackage, fetchPypi, django-gravatar2, django_compressor +, django-allauth, mailmanclient +}: + +buildPythonPackage rec { + pname = "django-mailman3"; + version = "1.2.0"; + + src = fetchPypi { + inherit pname version; + sha256 = "0v6c1jhcc212wc2xa314irfcchl05r7nysrcy63dcaan958kmnnx"; + }; + + propagatedBuildInputs = [ + django-gravatar2 django_compressor django-allauth mailmanclient + ]; + + doCheck = false; +} diff --git a/pkgs/development/python-modules/mailmanclient/default.nix b/pkgs/development/python-modules/mailmanclient/default.nix new file mode 100644 index 00000000000..a3a807901f3 --- /dev/null +++ b/pkgs/development/python-modules/mailmanclient/default.nix @@ -0,0 +1,13 @@ +{ stdenv, buildPythonPackage, fetchPypi, six, httplib2 }: + +buildPythonPackage rec { + pname = "mailmanclient"; + version = "3.2.2"; + + src = fetchPypi { + inherit pname version; + sha256 = "0xsrzdrsmfhnxv68zwm1g6awk7in08k6yhkyd27ipn0mq1wjm5jd"; + }; + + propagatedBuildInputs = [ six httplib2 ]; +} diff --git a/pkgs/servers/mail/mailman/default.nix b/pkgs/servers/mail/mailman/core.nix similarity index 100% rename from pkgs/servers/mail/mailman/default.nix rename to pkgs/servers/mail/mailman/core.nix diff --git a/pkgs/servers/mail/mailman/postorius.nix b/pkgs/servers/mail/mailman/postorius.nix new file mode 100644 index 00000000000..7ae07a99528 --- /dev/null +++ b/pkgs/servers/mail/mailman/postorius.nix @@ -0,0 +1,25 @@ +{ stdenv, buildPythonPackage, fetchPypi, beautifulsoup4, vcrpy, mock +, django-mailman3, mailmanclient +}: + +buildPythonPackage rec { + pname = "postorius"; + version = "1.2.4"; + + src = fetchPypi { + inherit pname version; + sha256 = "1722lnscxfl8wdigf5d80d1qmd5gblr439wa989jxlww0wkjg9fl"; + }; + + buildInputs = [ beautifulsoup4 vcrpy mock ]; + propagatedBuildInputs = [ django-mailman3 ]; + + doCheck = false; + + meta = { + homepage = https://www.gnu.org/software/mailman/; + description = "Web-based user interface for managing GNU Mailman"; + license = stdenv.lib.licenses.gpl3; + maintainers = with stdenv.lib.maintainers; [ peti ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index e77d3aecea2..91a828f3c1d 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -711,7 +711,9 @@ in { mail-parser = callPackage ../development/python-modules/mail-parser { }; - mailman = disabledIf (!isPy3k) (callPackage ../servers/mail/mailman { }); + mailman = disabledIf (!isPy3k) (callPackage ../servers/mail/mailman/core.nix { }); + + mailmanclient = callPackage ../development/python-modules/mailmanclient { }; manhole = callPackage ../development/python-modules/manhole { }; @@ -821,6 +823,8 @@ in { poetry = callPackage ../development/python-modules/poetry { }; + postorius = disabledIf (!isPy3k) (callPackage ../servers/mail/mailman/postorius.nix { }); + pplpy = callPackage ../development/python-modules/pplpy { }; pprintpp = callPackage ../development/python-modules/pprintpp { }; @@ -2868,6 +2872,8 @@ in { django-logentry-admin = callPackage ../development/python-modules/django-logentry-admin { }; + django-mailman3 = callPackage ../development/python-modules/django-mailman3 { }; + django-pglocks = callPackage ../development/python-modules/django-pglocks { }; django-picklefield = callPackage ../development/python-modules/django-picklefield { }; From 4b1cc7eebfe21906f1823193e75eab70f8d1de4f Mon Sep 17 00:00:00 2001 From: Robin Gloster Date: Mon, 26 Aug 2019 22:51:33 +0200 Subject: [PATCH 2/4] mailman: add meta to python deps --- .../python-modules/django-mailman3/default.nix | 7 +++++++ pkgs/development/python-modules/mailmanclient/default.nix | 8 ++++++++ pkgs/servers/mail/mailman/postorius.nix | 2 +- 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/pkgs/development/python-modules/django-mailman3/default.nix b/pkgs/development/python-modules/django-mailman3/default.nix index bd0f626d54e..2dd3801dad5 100644 --- a/pkgs/development/python-modules/django-mailman3/default.nix +++ b/pkgs/development/python-modules/django-mailman3/default.nix @@ -16,4 +16,11 @@ buildPythonPackage rec { ]; doCheck = false; + + meta = with stdenv.lib; { + description = "Django library for Mailman UIs"; + homepage = https://gitlab.com/mailman/django-mailman3; + license = licenses.gpl3; + maintainers = with maintainers; [ globin peti ]; + }; } diff --git a/pkgs/development/python-modules/mailmanclient/default.nix b/pkgs/development/python-modules/mailmanclient/default.nix index a3a807901f3..95e9e4fdd3e 100644 --- a/pkgs/development/python-modules/mailmanclient/default.nix +++ b/pkgs/development/python-modules/mailmanclient/default.nix @@ -10,4 +10,12 @@ buildPythonPackage rec { }; propagatedBuildInputs = [ six httplib2 ]; + + meta = with stdenv.lib; { + homepage = "http://www.gnu.org/software/mailman/"; + description = "REST client for driving Mailman 3"; + license = licenses.lgpl3; + platforms = platforms.linux; + maintainers = with maintainers; [ peti globin ]; + }; } diff --git a/pkgs/servers/mail/mailman/postorius.nix b/pkgs/servers/mail/mailman/postorius.nix index 7ae07a99528..e48a7da581e 100644 --- a/pkgs/servers/mail/mailman/postorius.nix +++ b/pkgs/servers/mail/mailman/postorius.nix @@ -20,6 +20,6 @@ buildPythonPackage rec { homepage = https://www.gnu.org/software/mailman/; description = "Web-based user interface for managing GNU Mailman"; license = stdenv.lib.licenses.gpl3; - maintainers = with stdenv.lib.maintainers; [ peti ]; + maintainers = with stdenv.lib.maintainers; [ globin peti ]; }; } From 6bff4c107e2344f24e9247a5a815617916416185 Mon Sep 17 00:00:00 2001 From: Robin Gloster Date: Mon, 26 Aug 2019 22:51:53 +0200 Subject: [PATCH 3/4] mailman: add postorius testing --- pkgs/servers/mail/mailman/postorius.nix | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pkgs/servers/mail/mailman/postorius.nix b/pkgs/servers/mail/mailman/postorius.nix index e48a7da581e..871f2ea244d 100644 --- a/pkgs/servers/mail/mailman/postorius.nix +++ b/pkgs/servers/mail/mailman/postorius.nix @@ -14,7 +14,10 @@ buildPythonPackage rec { buildInputs = [ beautifulsoup4 vcrpy mock ]; propagatedBuildInputs = [ django-mailman3 ]; - doCheck = false; + checkPhase = '' + cd $NIX_BUILD_TOP/$sourceRoot + PYTHONPATH=.:$PYTHONPATH python example_project/manage.py test --settings=test_settings postorius + ''; meta = { homepage = https://www.gnu.org/software/mailman/; From 582bb946242dd61a2500dcc9f8114a616fe9933f Mon Sep 17 00:00:00 2001 From: Robin Gloster Date: Mon, 26 Aug 2019 22:54:10 +0200 Subject: [PATCH 4/4] mailman: add django_mailman3 testing --- .../python-modules/django-mailman3/default.nix | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/django-mailman3/default.nix b/pkgs/development/python-modules/django-mailman3/default.nix index 2dd3801dad5..91cea9b0059 100644 --- a/pkgs/development/python-modules/django-mailman3/default.nix +++ b/pkgs/development/python-modules/django-mailman3/default.nix @@ -1,5 +1,5 @@ { stdenv, buildPythonPackage, fetchPypi, django-gravatar2, django_compressor -, django-allauth, mailmanclient +, django-allauth, mailmanclient, django, mock }: buildPythonPackage rec { @@ -14,8 +14,12 @@ buildPythonPackage rec { propagatedBuildInputs = [ django-gravatar2 django_compressor django-allauth mailmanclient ]; + checkInputs = [ django mock ]; - doCheck = false; + checkPhase = '' + cd $NIX_BUILD_TOP/$sourceRoot + PYTHONPATH=.:$PYTHONPATH django-admin.py test --settings=django_mailman3.tests.settings_test + ''; meta = with stdenv.lib; { description = "Django library for Mailman UIs";