msmtp: add nonblocking support
This commit is contained in:
parent
a7a1940161
commit
5f29e9fdbf
@ -1,11 +1,21 @@
|
|||||||
{ stdenv, lib, fetchurl, autoreconfHook, pkgconfig
|
{ stdenv, lib, fetchurl, fetchFromGitHub, autoreconfHook, pkgconfig
|
||||||
, openssl, netcat-gnu, gnutls, gsasl, libidn, Security
|
, openssl, netcat-gnu, gnutls, gsasl, libidn, Security
|
||||||
, systemd ? null }:
|
, systemd ? null, eject ? null }:
|
||||||
|
|
||||||
let
|
let
|
||||||
tester = "n"; # {x| |p|P|n|s}
|
tester = "n"; # {x| |p|P|n|s}
|
||||||
journal = if stdenv.isLinux then "y" else "n";
|
journal = if stdenv.isLinux then "y" else "n";
|
||||||
|
|
||||||
|
# preferNonBlock = stdenv.isLinux;
|
||||||
|
preferNonBlock = false;
|
||||||
|
|
||||||
|
nonblock = fetchFromGitHub {
|
||||||
|
owner = "Stebalien";
|
||||||
|
repo = "msmtp-queue";
|
||||||
|
rev = "07032a4e4c8ea0d2364641c959db0c60f52423c7";
|
||||||
|
sha256 = "0g2aph30007spkdwxljrlr2bliivf9nrdis3d3jvjpx8l6k60rr9";
|
||||||
|
};
|
||||||
|
|
||||||
in stdenv.mkDerivation rec {
|
in stdenv.mkDerivation rec {
|
||||||
name = "msmtp-${version}";
|
name = "msmtp-${version}";
|
||||||
version = "1.6.6";
|
version = "1.6.6";
|
||||||
@ -20,13 +30,17 @@ in stdenv.mkDerivation rec {
|
|||||||
];
|
];
|
||||||
|
|
||||||
buildInputs = [ openssl gnutls gsasl libidn ]
|
buildInputs = [ openssl gnutls gsasl libidn ]
|
||||||
++ stdenv.lib.optional stdenv.isDarwin Security;
|
++ lib.optional stdenv.isDarwin Security
|
||||||
|
++ lib.optionals preferNonBlock [ nonblock eject ];
|
||||||
nativeBuildInputs = [ autoreconfHook pkgconfig ];
|
nativeBuildInputs = [ autoreconfHook pkgconfig ];
|
||||||
|
|
||||||
|
enableParallelBuilding = true;
|
||||||
|
|
||||||
configureFlags =
|
configureFlags =
|
||||||
stdenv.lib.optional stdenv.isDarwin [ "--with-macosx-keyring" ];
|
stdenv.lib.optional stdenv.isDarwin [ "--with-macosx-keyring" ];
|
||||||
|
|
||||||
postInstall = ''
|
postInstall = ''
|
||||||
|
${lib.optionalString (!preferNonBlock) ''
|
||||||
substitute scripts/msmtpq/msmtpq $out/bin/msmtpq \
|
substitute scripts/msmtpq/msmtpq $out/bin/msmtpq \
|
||||||
--replace @msmtp@ $out/bin/msmtp \
|
--replace @msmtp@ $out/bin/msmtp \
|
||||||
--replace @nc@ ${netcat-gnu}/bin/nc \
|
--replace @nc@ ${netcat-gnu}/bin/nc \
|
||||||
@ -36,6 +50,23 @@ in stdenv.mkDerivation rec {
|
|||||||
|
|
||||||
substitute scripts/msmtpq/msmtp-queue $out/bin/msmtp-queue \
|
substitute scripts/msmtpq/msmtp-queue $out/bin/msmtp-queue \
|
||||||
--replace @msmtpq@ $out/bin/msmtpq
|
--replace @msmtpq@ $out/bin/msmtpq
|
||||||
|
''}
|
||||||
|
${lib.optionalString preferNonBlock ''
|
||||||
|
mkdir -p $out/lib/systemd/user
|
||||||
|
cp ${nonblock}/msmtp* $out/bin/
|
||||||
|
cp ${nonblock}/systemd/* $out/lib/systemd/user
|
||||||
|
for f in $out/bin/msmtpq* ; do
|
||||||
|
sed $f -i -r \
|
||||||
|
-e 's|^QUEUE_DIR.*|QUEUE_DIR="''${MSMTP_QUEUE:-''${XDG_DATA_HOME:-$HOME/.local/share}/mail.queue}"|' \
|
||||||
|
-e 's|^CONFIG.*|CONFIG="''${XDG_CONFIG_HOME:-$HOME/.config}/msmtprc"|' \
|
||||||
|
-e 's| flock | ${eject}/bin/flock |'
|
||||||
|
done
|
||||||
|
for f in $out/lib/systemd/user/* ; do
|
||||||
|
substituteInPlace $f \
|
||||||
|
--replace /usr/local $out \
|
||||||
|
--replace .local/share/mail.queue .cache/msmtp/queue
|
||||||
|
done
|
||||||
|
''}
|
||||||
|
|
||||||
chmod +x $out/bin/*
|
chmod +x $out/bin/*
|
||||||
'';
|
'';
|
||||||
|
Loading…
x
Reference in New Issue
Block a user