mailman: build full paths to postmap and lynx into the package

No more need to rely on $PATH.
wip/yesman
Peter Simons 5 years ago
parent 3e30f3e1f9
commit e3492eff46
  1. 51
      pkgs/servers/mail/mailman/0001-Find-external-tools-via-PATH-rather-than-hard-coding.patch
  2. 11
      pkgs/servers/mail/mailman/core.nix

@ -1,51 +0,0 @@
From 47469af384a6d4a0877c76d3c52013b40ab61f04 Mon Sep 17 00:00:00 2001
From: Peter Simons <simons@cryp.to>
Date: Mon, 26 Aug 2019 16:10:04 +0200
Subject: [PATCH] Find external tools via $PATH rather than hard-coding
/usr/bin.
---
src/mailman/config/mhonarc.cfg | 2 +-
src/mailman/config/postfix.cfg | 2 +-
src/mailman/config/schema.cfg | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/mailman/config/mhonarc.cfg b/src/mailman/config/mhonarc.cfg
index b00f93aea..096e9521b 100644
--- a/src/mailman/config/mhonarc.cfg
+++ b/src/mailman/config/mhonarc.cfg
@@ -24,4 +24,4 @@ base_url: http://$hostname/archives/$fqdn_listname
# If the archiver works by calling a command on the local machine, this is the
# command to call.
-command: /usr/bin/mhonarc -outdir /path/to/archive/$listname -add
+command: mhonarc -outdir /path/to/archive/$listname -add
diff --git a/src/mailman/config/postfix.cfg b/src/mailman/config/postfix.cfg
index cddda220a..934c9a977 100644
--- a/src/mailman/config/postfix.cfg
+++ b/src/mailman/config/postfix.cfg
@@ -5,7 +5,7 @@
# db file, from the associated plain text files. The file being updated will
# be appended to this string (with a separating space), so it must be
# appropriate for os.system().
-postmap_command: /usr/sbin/postmap
+postmap_command: postmap
# This variable describes the type of transport maps that will be generated by
# mailman to be used with postfix for LMTP transport. By default, it is set to
diff --git a/src/mailman/config/schema.cfg b/src/mailman/config/schema.cfg
index fa06ccced..406999e13 100644
--- a/src/mailman/config/schema.cfg
+++ b/src/mailman/config/schema.cfg
@@ -65,7 +65,7 @@ filtered_messages_are_preservable: no
# where the substitution variable $filename is filled in by Mailman, and
# contains the path to the temporary file that the command should read from.
# The command should print the converted text to stdout.
-html_to_plain_text_command: /usr/bin/lynx -dump $filename
+html_to_plain_text_command: lynx -dump $filename
# Specify what characters are allowed in list names. Characters outside of
# the class [-_.+=!$*{}~0-9a-z] matched case insensitively are never allowed,
--
2.22.0

@ -1,15 +1,13 @@
{ 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
, zope_component, lynx, postfix
}:
buildPythonPackage rec {
pname = "mailman";
version = "3.2.2";
patches = [ ./0001-Find-external-tools-via-PATH-rather-than-hard-coding.patch ];
src = fetchPypi {
inherit pname version;
sha256 = "09s9p5pb8gff6zblwidyq830yfgcvv50p5drdaxj1qpy8w46lvc6";
@ -21,6 +19,13 @@ buildPythonPackage rec {
zope_component
];
patchPhase = ''
substituteInPlace src/mailman/config/postfix.cfg \
--replace /usr/sbin/postmap ${postfix}/bin/postmap
substituteInPlace src/mailman/config/schema.cfg \
--replace /usr/bin/lynx ${lynx}/bin/lynx
'';
# 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:

Loading…
Cancel
Save