Files
nixpkgs/pkgs/servers/mail/nullmailer/default.nix
Dark Steveneq 646b892680
Some checks failed
Periodic Merges (6h) / master → staging-nixos (push) Failing after 12m50s
Periodic Merges (6h) / master → staging-next (push) Failing after 12m54s
Periodic Merges (24h) / merge-base(master,staging) → haskell-updates (push) Failing after 11m54s
Periodic Merges (6h) / staging-next → staging (push) Failing after 12m13s
Periodic Merges (24h) / staging-next-25.05 → staging-25.05 (push) Failing after 13m24s
Periodic Merges (24h) / release-25.05 → staging-next-25.05 (push) Failing after 14m28s
push sheeet
2025-10-09 14:15:47 +02:00

59 lines
1.7 KiB
Nix

{
stdenv,
fetchurl,
lib,
tls ? true,
gnutls ? null,
}:
assert tls -> gnutls != null;
stdenv.mkDerivation rec {
version = "2.2";
pname = "nullmailer";
src = fetchurl {
url = "https://untroubled.org/nullmailer/nullmailer-${version}.tar.gz";
sha256 = "0md8cf90fl2yf3zh9njjy42a673v4j4ygyq95xg7fzkygdigm1lq";
};
buildInputs = lib.optional tls gnutls;
configureFlags = [
"--sysconfdir=/etc"
"--localstatedir=/var"
]
++ lib.optional tls "--enable-tls";
installFlags = [ "DESTDIR=$(out)" ];
# We have to remove the ''var'' directory, since nix can't handle named pipes
# and we can't use it in the store anyway. Same for ''etc''.
# The second line is need, because the installer of nullmailer will copy its
# own prepared version of ''etc'' and ''var'' and also uses the prefix path (configure phase)
# for hardcoded absolute references to its own binary farm, e.g. sendmail binary is
# calling nullmailer-inject binary. Since we can't configure inside the store of
# the derivation we need both directories in the root, but don't want to put them there
# during install, hence we have to fix mumbling inside the install directory.
# This is kind of a hack, but the only way I know of, yet.
postInstall = ''
rm -rf $out/var/ $out/etc/
mv $out/$out/* $out/
rmdir $out/$out
'';
enableParallelBuilding = true;
meta = {
homepage = "http://untroubled.org/nullmailer/";
description = ''
A sendmail/qmail/etc replacement MTA for hosts which relay to a fixed set of smart relays.
It is designed to be simple to configure, secure, and easily extendable.
'';
license = lib.licenses.gpl2Plus;
platforms = lib.platforms.all;
maintainers = with lib.maintainers; [ sargon ];
};
}