diff options
author | Peter Hoeg <peter@hoeg.com> | 2017-05-01 16:33:15 +0800 |
---|---|---|
committer | Peter Hoeg <peter@hoeg.com> | 2017-10-14 14:38:04 +0800 |
commit | 5f29e9fdbfe0ac069c0348084ca169c59cda3ddc (patch) | |
tree | 32ef531cd98fe214e1b4350869f2be2151891dda /pkgs/applications/networking/msmtp | |
parent | a7a19401619eb667f784044e461ac9cf87b070b0 (diff) |
msmtp: add nonblocking support
Diffstat (limited to 'pkgs/applications/networking/msmtp')
-rw-r--r-- | pkgs/applications/networking/msmtp/default.nix | 37 |
1 files changed, 34 insertions, 3 deletions
diff --git a/pkgs/applications/networking/msmtp/default.nix b/pkgs/applications/networking/msmtp/default.nix index 85e5abdc9b6ee..74beba7be49ec 100644 --- a/pkgs/applications/networking/msmtp/default.nix +++ b/pkgs/applications/networking/msmtp/default.nix @@ -1,11 +1,21 @@ -{ stdenv, lib, fetchurl, autoreconfHook, pkgconfig +{ stdenv, lib, fetchurl, fetchFromGitHub, autoreconfHook, pkgconfig , openssl, netcat-gnu, gnutls, gsasl, libidn, Security -, systemd ? null }: +, systemd ? null, eject ? null }: let tester = "n"; # {x| |p|P|n|s} 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 { name = "msmtp-${version}"; version = "1.6.6"; @@ -20,13 +30,17 @@ in stdenv.mkDerivation rec { ]; buildInputs = [ openssl gnutls gsasl libidn ] - ++ stdenv.lib.optional stdenv.isDarwin Security; + ++ lib.optional stdenv.isDarwin Security + ++ lib.optionals preferNonBlock [ nonblock eject ]; nativeBuildInputs = [ autoreconfHook pkgconfig ]; + enableParallelBuilding = true; + configureFlags = stdenv.lib.optional stdenv.isDarwin [ "--with-macosx-keyring" ]; postInstall = '' + ${lib.optionalString (!preferNonBlock) '' substitute scripts/msmtpq/msmtpq $out/bin/msmtpq \ --replace @msmtp@ $out/bin/msmtp \ --replace @nc@ ${netcat-gnu}/bin/nc \ @@ -36,6 +50,23 @@ in stdenv.mkDerivation rec { substitute scripts/msmtpq/msmtp-queue $out/bin/msmtp-queue \ --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/* ''; |