diff options
author | Clemens Fruhwirth <clemens@endorphin.org> | 2018-09-16 13:10:56 +0200 |
---|---|---|
committer | Clemens Fruhwirth <clemens@endorphin.org> | 2018-09-18 10:48:55 +0200 |
commit | 6d97096d8bf999edf8f1eff36a5577c2ae536e45 (patch) | |
tree | 25947a6e29cdac490556d41fc8d39bff07f18e02 /pkgs/tools | |
parent | 0e33c56662eb3f072e22950ebf8cf8d7969f078d (diff) |
mpack: Invoke /run/wrappers/bin/sendmail via execvp
Calling /run/current-sw/bin/sendmail fails under postfix because setgid bits are not set. Switching the hardcoded path to an invocation via execvp should cover both cases, when the sendmail binary is setgid-wrapped and when it is not.
Diffstat (limited to 'pkgs/tools')
-rw-r--r-- | pkgs/tools/networking/mpack/default.nix | 7 | ||||
-rw-r--r-- | pkgs/tools/networking/mpack/sendmail-via-execvp.diff | 12 |
2 files changed, 13 insertions, 6 deletions
diff --git a/pkgs/tools/networking/mpack/default.nix b/pkgs/tools/networking/mpack/default.nix index 62cec7c41eef9..5a8af7de36a00 100644 --- a/pkgs/tools/networking/mpack/default.nix +++ b/pkgs/tools/networking/mpack/default.nix @@ -8,18 +8,13 @@ stdenv.mkDerivation rec { sha256 = "0k590z96509k96zxmhv72gkwhrlf55jkmyqlzi72m61r7axhhh97"; }; - patches = [ ./build-fix.patch ]; + patches = [ ./build-fix.patch ./sendmail-via-execvp.diff ]; postPatch = '' for f in *.{c,man,pl,unix} ; do substituteInPlace $f --replace /usr/tmp /tmp done - for f in unixpk.c ; do - substituteInPlace $f \ - --replace /usr/sbin /run/current-system/sw/bin - done - # this just shuts up some warnings for f in {decode,encode,part,unixos,unixpk,unixunpk,xmalloc}.c ; do sed -i 'i#include <stdlib.h>' $f diff --git a/pkgs/tools/networking/mpack/sendmail-via-execvp.diff b/pkgs/tools/networking/mpack/sendmail-via-execvp.diff new file mode 100644 index 0000000000000..8f10901038d6b --- /dev/null +++ b/pkgs/tools/networking/mpack/sendmail-via-execvp.diff @@ -0,0 +1,12 @@ +--- mpack-1.6/unixpk.c 2003-07-21 22:50:41.000000000 +0200 ++++ mpack-1.6/unixpk.c 2018-09-16 12:57:14.104026964 +0200 +@@ -254,8 +254,9 @@ + #ifdef SCO + execv("/usr/lib/mail/execmail", addr+start); + #else ++ execvp("sendmail", addr+start); + execv("/usr/lib/sendmail", addr+start); + execv("/usr/sbin/sendmail", addr+start); + #endif + perror("execv"); + _exit(1); |