diff --git a/options/mailman3/core.nix b/options/mailman3/core.nix new file mode 100644 index 0000000..dcb61e7 --- /dev/null +++ b/options/mailman3/core.nix @@ -0,0 +1,54 @@ +{ stdenv, buildPythonPackage, fetchgit +, aiosmtpd, alembic, atpublic, click, dnspython, falcon, flufl_bounce, flufl_i18n, flufl_lock +, importlib-resources, lazr_config, passlib, requests, sqlalchemy +, zope_component, zope_configuration, zope_event, zope_interface +# optional database dependencies +, pymysql, psycopg2 }: + +buildPythonPackage rec { + name = "mailman3_core-${version}"; + version = "3.2.2"; + src = fetchgit { + url = "https://gitlab.com/mailman/mailman.git"; + rev = version; + sha256 = "0p1z2i2x6f0g05lx5mymiiw2ij1bsycvbxwabb52nisdddcfhhzp"; + }; + + propagatedBuildInputs = [ + aiosmtpd + alembic + atpublic + click + dnspython + falcon + flufl_bounce + flufl_i18n + flufl_lock + importlib-resources + lazr_config + passlib + requests + sqlalchemy + zope_component + zope_configuration + zope_event + zope_interface + pymysql psycopg2 + ]; + + doCheck = false; + + # mailman imports master and runner + # -> only wrap $out/bin/mailman + dontWrapPythonPrograms = true; + postFixup = '' + wrapProgram $out/bin/mailman --prefix PYTHONPATH : "$PYTHONPATH" + ''; + + meta = with stdenv.lib; { + description = "GNU Mailman, a mailing list management system"; + license = licenses.gpl3; + maintainers = with maintainers; [ ]; + homepage = http://list.org/; + }; +} diff --git a/options/mailman3/extraPackages/aiosmtpd.nix b/options/mailman3/extraPackages/aiosmtpd.nix new file mode 100644 index 0000000..7eac2a8 --- /dev/null +++ b/options/mailman3/extraPackages/aiosmtpd.nix @@ -0,0 +1,14 @@ +{ stdenv, lib, fetchPypi, buildPythonPackage +, atpublic }: + +buildPythonPackage rec { + pname = "aiosmtpd"; + version = "1.2"; + + src = fetchPypi { + inherit pname version; + sha256 = "1xdfk741pjmz1cm8dsi4n5vq4517i175rm94696m3f7kcgk7xsmp"; + }; + doCheck = false; + propagatedBuildInputs = [ atpublic ]; +} diff --git a/options/mailman3/extraPackages/atpublic.nix b/options/mailman3/extraPackages/atpublic.nix new file mode 100644 index 0000000..a243c98 --- /dev/null +++ b/options/mailman3/extraPackages/atpublic.nix @@ -0,0 +1,13 @@ +{ stdenv, lib, fetchPypi, buildPythonPackage }: + +buildPythonPackage rec { + pname = "atpublic"; + version = "1.0"; + + src = fetchPypi { + inherit pname version; + sha256 = "0i3sbxkdlbb4560rrlmwwd5y4ps7k73lp4d8wnmd7ag9k426gjkx"; + }; + doCheck = false; +# propagatedBuildInputs = []; +} diff --git a/options/mailman3/extraPackages/flufl_bounce.nix b/options/mailman3/extraPackages/flufl_bounce.nix new file mode 100644 index 0000000..567c628 --- /dev/null +++ b/options/mailman3/extraPackages/flufl_bounce.nix @@ -0,0 +1,17 @@ +{ stdenv, lib, fetchPypi, buildPythonPackage +, atpublic, zope_interface }: + +buildPythonPackage rec { + name = "${pname}-${version}"; + pname = "flufl.bounce"; + version = "3.0"; + + src = fetchPypi { + inherit pname version; + sha256 = "0k5kjqa3x6gvwwxyzb2vwi1g1i6asm1zw5fivylxz3d583y4kid2"; + }; + + propagatedBuildInputs = [ atpublic zope_interface ]; + + doCheck = false; +} diff --git a/options/mailman3/extraPackages/flufl_i18n.nix b/options/mailman3/extraPackages/flufl_i18n.nix new file mode 100644 index 0000000..c2f3f5d --- /dev/null +++ b/options/mailman3/extraPackages/flufl_i18n.nix @@ -0,0 +1,17 @@ +{ stdenv, lib, fetchPypi, buildPythonPackage +, atpublic }: + +buildPythonPackage rec { + name = "${pname}-${version}"; + pname = "flufl.i18n"; + version = "2.0.2"; + + src = fetchPypi { + inherit pname version; + sha256 = "1csgds59nx0ann9v2alqr69lakp1cnc1ikmbgn96l6n23js7c2ah"; + }; + + propagatedBuildInputs = [ atpublic ]; + + doCheck = false; +} diff --git a/options/mailman3/extraPackages/flufl_lock.nix b/options/mailman3/extraPackages/flufl_lock.nix new file mode 100644 index 0000000..cb82853 --- /dev/null +++ b/options/mailman3/extraPackages/flufl_lock.nix @@ -0,0 +1,17 @@ +{ stdenv, lib, fetchPypi, buildPythonPackage +, atpublic }: + +buildPythonPackage rec { + name = "${pname}-${version}"; + pname = "flufl.lock"; + version = "3.2"; + + src = fetchPypi { + inherit pname version; + sha256 = "0nzzd6l30ff6cwsrlrb94xzfja4wkyrqv3ydc6cz0hdbr766mmm8"; + }; + + propagatedBuildInputs = [ atpublic ]; + + doCheck = false; +} diff --git a/options/mailman3/extraPackages/lazr_config.nix b/options/mailman3/extraPackages/lazr_config.nix new file mode 100644 index 0000000..23e912f --- /dev/null +++ b/options/mailman3/extraPackages/lazr_config.nix @@ -0,0 +1,17 @@ +{ stdenv, lib, fetchPypi, buildPythonPackage +, lazr_delegates }: + +buildPythonPackage rec { + name = "${pname}-${version}"; + pname = "lazr.config"; + version = "2.2.1"; + + src = fetchPypi { + inherit pname version; + sha256 = "1s7pyvlq06qjrkaw9r6nc290lb095n25ybzgavvy51ygpxkgqxwn"; + }; + + propagatedBuildInputs = [ lazr_delegates ]; + + doCheck = false; +} diff --git a/options/mailman3/extraPackages/lazr_delegates.nix b/options/mailman3/extraPackages/lazr_delegates.nix new file mode 100644 index 0000000..ee12fc2 --- /dev/null +++ b/options/mailman3/extraPackages/lazr_delegates.nix @@ -0,0 +1,17 @@ +{ stdenv, lib, fetchPypi, buildPythonPackage +, nose, zope_interface }: + +buildPythonPackage rec { + name = "${pname}-${version}"; + pname = "lazr.delegates"; + version = "2.0.4"; + + src = fetchPypi { + inherit pname version; + sha256 = "1rdnl85j9ayp8n85l0ciip621j9dcziz5qnmv2m7krgwgcn31vfx"; + }; + + propagatedBuildInputs = [ nose zope_interface ]; + + doCheck = false; +} diff --git a/options/mailman3/release.nix b/options/mailman3/release.nix new file mode 100644 index 0000000..4fcc213 --- /dev/null +++ b/options/mailman3/release.nix @@ -0,0 +1,28 @@ +{ pkgs ? import {}, python3Packages ? pkgs.python3Packages }: + +let + mailman3 = { + core = python3Packages.callPackage ./core.nix ( with deps; { + inherit aiosmtpd atpublic flufl_bounce flufl_i18n flufl_lock lazr_config; + }); + }; + deps = rec { + aiosmtpd = python3Packages.callPackage ./extraPackages/aiosmtpd.nix { + inherit atpublic; + }; + atpublic = python3Packages.callPackage ./extraPackages/atpublic.nix { }; + flufl_bounce = python3Packages.callPackage ./extraPackages/flufl_bounce.nix { + inherit atpublic; + }; + flufl_i18n = python3Packages.callPackage ./extraPackages/flufl_i18n.nix { + inherit atpublic; + }; + flufl_lock = python3Packages.callPackage ./extraPackages/flufl_lock.nix { + inherit atpublic; + }; + lazr_config = python3Packages.callPackage ./extraPackages/lazr_config.nix { + inherit lazr_delegates; + }; + lazr_delegates = python3Packages.callPackage ./extraPackages/lazr_delegates.nix { }; + }; +in mailman3