summary refs log tree commit diff
path: root/pkgs/servers/mail
diff options
context:
space:
mode:
authorPeter Simons <simons@cryp.to>2019-08-25 22:09:58 +0200
committerGitHub <noreply@github.com>2019-08-25 22:09:58 +0200
commitfa5a231313bb870eea2878ce5035b26ea52d734c (patch)
tree6eb766feafa5dc49b850e5b8f4c256decca0281a /pkgs/servers/mail
parent36c6252174a00a8fcf3f78205cb0b6a384d50b98 (diff)
parent842942baaa82e5a6c53e45c1dcaf1c85e7113b07 (diff)
downloadnixpkgs-fa5a231313bb870eea2878ce5035b26ea52d734c.tar
nixpkgs-fa5a231313bb870eea2878ce5035b26ea52d734c.tar.gz
nixpkgs-fa5a231313bb870eea2878ce5035b26ea52d734c.tar.bz2
nixpkgs-fa5a231313bb870eea2878ce5035b26ea52d734c.tar.lz
nixpkgs-fa5a231313bb870eea2878ce5035b26ea52d734c.tar.xz
nixpkgs-fa5a231313bb870eea2878ce5035b26ea52d734c.tar.zst
nixpkgs-fa5a231313bb870eea2878ce5035b26ea52d734c.zip
Merge pull request #67366 from peti/t/mailman-v3
update mailman to version 3.2.2
Diffstat (limited to 'pkgs/servers/mail')
-rw-r--r--pkgs/servers/mail/mailman/default.nix55
-rw-r--r--pkgs/servers/mail/mailman/fix-var-prefix.patch33
2 files changed, 31 insertions, 57 deletions
diff --git a/pkgs/servers/mail/mailman/default.nix b/pkgs/servers/mail/mailman/default.nix
index 91445afa97d..e3cd393c3c3 100644
--- a/pkgs/servers/mail/mailman/default.nix
+++ b/pkgs/servers/mail/mailman/default.nix
@@ -1,33 +1,40 @@
-{ stdenv, fetchurl, python2 }:
-
-stdenv.mkDerivation rec {
-  name = "mailman-${version}";
-  version = "2.1.29";
-
-  src = fetchurl {
-    url = "mirror://gnu/mailman/${name}.tgz";
-    sha256 = "0b0dpwf6ap260791c7lg2vpw30llf19hymbf2hja3s016rqp5243";
+{ stdenv, buildPythonPackage, fetchPypi, alembic, aiosmtpd, dnspython
+, flufl_bounce, flufl_i18n, flufl_lock, lazr_config, lazr_delegates, passlib
+, requests, zope_configuration, click, falcon, importlib-resources
+, zope_component
+}:
+
+buildPythonPackage rec {
+  pname = "mailman";
+  version = "3.2.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "09s9p5pb8gff6zblwidyq830yfgcvv50p5drdaxj1qpy8w46lvc6";
   };
 
-  buildInputs = [ python2 python2.pkgs.dnspython ];
-
-  patches = [ ./fix-var-prefix.patch ];
-
-  configureFlags = [
-    "--without-permcheck"
-    "--with-cgi-ext=.cgi"
-    "--with-var-prefix=/var/lib/mailman"
+  propagatedBuildInputs = [
+    alembic aiosmtpd click dnspython falcon flufl_bounce flufl_i18n flufl_lock
+    importlib-resources lazr_config passlib requests zope_configuration
+    zope_component
   ];
 
-  installTargets = "doinstall"; # Leave out the 'update' target that's implied by 'install'.
-
-  makeFlags = [ "DIRSETGID=:" ];
+  # Mailman assumes that those scripts in $out/bin are Python scripts. Wrapping
+  # them in shell code breaks this assumption. The proper way to use mailman is
+  # to create a specialized python interpreter:
+  #
+  #   python37.withPackages (ps: [ps.mailman])
+  #
+  # This gives a properly wrapped 'mailman' command plus an interpreter that
+  # has all the necessary search paths to execute unwrapped 'master' and
+  # 'runner' scripts. The setup is a little tricky, but fortunately NixOS is
+  # about to get a OS module that takes care of those details.
+  dontWrapPythonPrograms = true;
 
   meta = {
     homepage = https://www.gnu.org/software/mailman/;
-    description = "Free software for managing electronic mail discussion and e-newsletter lists";
-    license = stdenv.lib.licenses.gpl2Plus;
-    platforms = stdenv.lib.platforms.linux;
-    maintainers = [ stdenv.lib.maintainers.peti ];
+    description = "Free software for managing electronic mail discussion and newsletter lists";
+    license = stdenv.lib.licenses.gpl3Plus;
+    maintainers = with stdenv.lib.maintainers; [ peti ];
   };
 }
diff --git a/pkgs/servers/mail/mailman/fix-var-prefix.patch b/pkgs/servers/mail/mailman/fix-var-prefix.patch
deleted file mode 100644
index 9bb735ecbed..00000000000
--- a/pkgs/servers/mail/mailman/fix-var-prefix.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-diff -ubr mailman-2.1.16-orig/contrib/redhat_fhs.patch mailman-2.1.16/contrib/redhat_fhs.patch
---- mailman-2.1.16-orig/contrib/redhat_fhs.patch	2013-10-21 14:55:48.797631434 +0200
-+++ mailman-2.1.16/contrib/redhat_fhs.patch	2013-10-21 14:56:42.534310378 +0200
-@@ -197,7 +197,7 @@
- +	    else true; \
- +	    fi; \
- +	done
-- 	chmod o-r $(DESTDIR)$(var_prefix)/archives/private
-+ 	chmod o-r $(prefix)$(var_prefix)/archives/private
-  	@for d in $(ARCH_INDEP_DIRS); \
-  	do \
- Only in mailman-2.1.5.FHS: Makefile.in~
-diff -ubr mailman-2.1.16-orig/Makefile.in mailman-2.1.16/Makefile.in
---- mailman-2.1.16-orig/Makefile.in	2013-10-21 14:55:48.798631519 +0200
-+++ mailman-2.1.16/Makefile.in	2013-10-21 14:56:42.562313220 +0200
-@@ -87,7 +87,7 @@
- 	@echo "Creating architecture independent directories..."
- 	@for d in $(VAR_DIRS); \
- 	do \
--	    dir=$(DESTDIR)$(var_prefix)/$$d; \
-+	    dir=$(prefix)$(var_prefix)/$$d; \
- 	    if test ! -d $$dir; then \
- 		echo "Creating directory hierarchy $$dir"; \
- 		$(srcdir)/mkinstalldirs $$dir; \
-@@ -96,7 +96,7 @@
- 	    else true; \
- 	    fi; \
- 	done
--	chmod o-r $(DESTDIR)$(var_prefix)/archives/private
-+	chmod o-r $(prefix)$(var_prefix)/archives/private
- 	@for d in $(ARCH_INDEP_DIRS); \
- 	do \
- 	    dir=$(DESTDIR)$(prefix)/$$d; \