nixos/ssmtp: drop module
The ssmtp program is not maintained and is being removed. GitHub: see https://github.com/NixOS/nixpkgs/issues/105710
This commit is contained in:
parent
788bd96c1c
commit
cfc763bf36
|
@ -205,7 +205,6 @@
|
||||||
./programs/spacefm.nix
|
./programs/spacefm.nix
|
||||||
./programs/singularity.nix
|
./programs/singularity.nix
|
||||||
./programs/ssh.nix
|
./programs/ssh.nix
|
||||||
./programs/ssmtp.nix
|
|
||||||
./programs/sysdig.nix
|
./programs/sysdig.nix
|
||||||
./programs/systemtap.nix
|
./programs/systemtap.nix
|
||||||
./programs/starship.nix
|
./programs/starship.nix
|
||||||
|
|
|
@ -1,190 +0,0 @@
|
||||||
# Configuration for `ssmtp', a trivial mail transfer agent that can
|
|
||||||
# replace sendmail/postfix on simple systems. It delivers email
|
|
||||||
# directly to an SMTP server defined in its configuration file, without
|
|
||||||
# queueing mail locally.
|
|
||||||
|
|
||||||
{ config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.services.ssmtp;
|
|
||||||
|
|
||||||
in
|
|
||||||
{
|
|
||||||
|
|
||||||
imports = [
|
|
||||||
(mkRenamedOptionModule [ "networking" "defaultMailServer" "directDelivery" ] [ "services" "ssmtp" "enable" ])
|
|
||||||
(mkRenamedOptionModule [ "networking" "defaultMailServer" "hostName" ] [ "services" "ssmtp" "hostName" ])
|
|
||||||
(mkRenamedOptionModule [ "networking" "defaultMailServer" "domain" ] [ "services" "ssmtp" "domain" ])
|
|
||||||
(mkRenamedOptionModule [ "networking" "defaultMailServer" "root" ] [ "services" "ssmtp" "root" ])
|
|
||||||
(mkRenamedOptionModule [ "networking" "defaultMailServer" "useTLS" ] [ "services" "ssmtp" "useTLS" ])
|
|
||||||
(mkRenamedOptionModule [ "networking" "defaultMailServer" "useSTARTTLS" ] [ "services" "ssmtp" "useSTARTTLS" ])
|
|
||||||
(mkRenamedOptionModule [ "networking" "defaultMailServer" "authUser" ] [ "services" "ssmtp" "authUser" ])
|
|
||||||
(mkRenamedOptionModule [ "networking" "defaultMailServer" "authPassFile" ] [ "services" "ssmtp" "authPassFile" ])
|
|
||||||
(mkRenamedOptionModule [ "networking" "defaultMailServer" "setSendmail" ] [ "services" "ssmtp" "setSendmail" ])
|
|
||||||
|
|
||||||
(mkRemovedOptionModule [ "networking" "defaultMailServer" "authPass" ] "authPass has been removed since it leaks the clear-text password into the world-readable store. Use authPassFile instead and make sure it's not a store path")
|
|
||||||
(mkRemovedOptionModule [ "services" "ssmtp" "authPass" ] "authPass has been removed since it leaks the clear-text password into the world-readable store. Use authPassFile instead and make sure it's not a store path")
|
|
||||||
];
|
|
||||||
|
|
||||||
options = {
|
|
||||||
|
|
||||||
services.ssmtp = {
|
|
||||||
|
|
||||||
enable = mkOption {
|
|
||||||
type = types.bool;
|
|
||||||
default = false;
|
|
||||||
description = ''
|
|
||||||
Use the trivial Mail Transfer Agent (MTA)
|
|
||||||
<command>ssmtp</command> package to allow programs to send
|
|
||||||
e-mail. If you don't want to run a “real” MTA like
|
|
||||||
<command>sendmail</command> or <command>postfix</command> on
|
|
||||||
your machine, set this option to <literal>true</literal>, and
|
|
||||||
set the option
|
|
||||||
<option>services.ssmtp.hostName</option> to the
|
|
||||||
host name of your preferred mail server.
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
settings = mkOption {
|
|
||||||
type = with types; attrsOf (oneOf [ bool str ]);
|
|
||||||
default = {};
|
|
||||||
description = ''
|
|
||||||
<citerefentry><refentrytitle>ssmtp</refentrytitle><manvolnum>5</manvolnum></citerefentry> configuration. Refer
|
|
||||||
to <link xlink:href="https://linux.die.net/man/5/ssmtp.conf"/> for details on supported values.
|
|
||||||
'';
|
|
||||||
example = literalExpression ''
|
|
||||||
{
|
|
||||||
Debug = true;
|
|
||||||
FromLineOverride = false;
|
|
||||||
}
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
hostName = mkOption {
|
|
||||||
type = types.str;
|
|
||||||
example = "mail.example.org";
|
|
||||||
description = ''
|
|
||||||
The host name of the default mail server to use to deliver
|
|
||||||
e-mail. Can also contain a port number (ex: mail.example.org:587),
|
|
||||||
defaults to port 25 if no port is given.
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
root = mkOption {
|
|
||||||
type = types.str;
|
|
||||||
default = "";
|
|
||||||
example = "root@example.org";
|
|
||||||
description = ''
|
|
||||||
The e-mail to which mail for users with UID < 1000 is forwarded.
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
domain = mkOption {
|
|
||||||
type = types.str;
|
|
||||||
default = "";
|
|
||||||
example = "example.org";
|
|
||||||
description = ''
|
|
||||||
The domain from which mail will appear to be sent.
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
useTLS = mkOption {
|
|
||||||
type = types.bool;
|
|
||||||
default = false;
|
|
||||||
description = ''
|
|
||||||
Whether TLS should be used to connect to the default mail
|
|
||||||
server.
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
useSTARTTLS = mkOption {
|
|
||||||
type = types.bool;
|
|
||||||
default = false;
|
|
||||||
description = ''
|
|
||||||
Whether the STARTTLS should be used to connect to the default
|
|
||||||
mail server. (This is needed for TLS-capable mail servers
|
|
||||||
running on the default SMTP port 25.)
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
authUser = mkOption {
|
|
||||||
type = types.str;
|
|
||||||
default = "";
|
|
||||||
example = "foo@example.org";
|
|
||||||
description = ''
|
|
||||||
Username used for SMTP auth. Leave blank to disable.
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
authPassFile = mkOption {
|
|
||||||
type = types.nullOr types.str;
|
|
||||||
default = null;
|
|
||||||
example = "/run/keys/ssmtp-authpass";
|
|
||||||
description = ''
|
|
||||||
Path to a file that contains the password used for SMTP auth. The file
|
|
||||||
should not contain a trailing newline, if the password does not contain one
|
|
||||||
(e.g. use <command>echo -n "password" > file</command>).
|
|
||||||
This file should be readable by the users that need to execute ssmtp.
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
setSendmail = mkOption {
|
|
||||||
type = types.bool;
|
|
||||||
default = true;
|
|
||||||
description = "Whether to set the system sendmail to ssmtp's.";
|
|
||||||
};
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
|
|
||||||
assertions = [
|
|
||||||
{
|
|
||||||
assertion = cfg.useSTARTTLS -> cfg.useTLS;
|
|
||||||
message = "services.ssmtp.useSTARTTLS has no effect without services.ssmtp.useTLS";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
|
|
||||||
services.ssmtp.settings = mkMerge [
|
|
||||||
({
|
|
||||||
MailHub = cfg.hostName;
|
|
||||||
FromLineOverride = mkDefault true;
|
|
||||||
UseTLS = cfg.useTLS;
|
|
||||||
UseSTARTTLS = cfg.useSTARTTLS;
|
|
||||||
})
|
|
||||||
(mkIf (cfg.root != "") { root = cfg.root; })
|
|
||||||
(mkIf (cfg.domain != "") { rewriteDomain = cfg.domain; })
|
|
||||||
(mkIf (cfg.authUser != "") { AuthUser = cfg.authUser; })
|
|
||||||
(mkIf (cfg.authPassFile != null) { AuthPassFile = cfg.authPassFile; })
|
|
||||||
];
|
|
||||||
|
|
||||||
# careful here: ssmtp REQUIRES all config lines to end with a newline char!
|
|
||||||
environment.etc."ssmtp/ssmtp.conf".text = with generators; toKeyValue {
|
|
||||||
mkKeyValue = mkKeyValueDefault {
|
|
||||||
mkValueString = value:
|
|
||||||
if value == true then "YES"
|
|
||||||
else if value == false then "NO"
|
|
||||||
else mkValueStringDefault {} value
|
|
||||||
;
|
|
||||||
} "=";
|
|
||||||
} cfg.settings;
|
|
||||||
|
|
||||||
environment.systemPackages = [pkgs.ssmtp];
|
|
||||||
|
|
||||||
services.mail.sendmailSetuidWrapper = mkIf cfg.setSendmail {
|
|
||||||
program = "sendmail";
|
|
||||||
source = "${pkgs.ssmtp}/bin/sendmail";
|
|
||||||
setuid = false;
|
|
||||||
setgid = false;
|
|
||||||
owner = "root";
|
|
||||||
group = "root";
|
|
||||||
};
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
}
|
|
|
@ -69,6 +69,11 @@ with lib;
|
||||||
'')
|
'')
|
||||||
(mkRemovedOptionModule [ "services" "quagga" ] "the corresponding package has been removed from nixpkgs")
|
(mkRemovedOptionModule [ "services" "quagga" ] "the corresponding package has been removed from nixpkgs")
|
||||||
(mkRemovedOptionModule [ "services" "seeks" ] "")
|
(mkRemovedOptionModule [ "services" "seeks" ] "")
|
||||||
|
(mkRemovedOptionModule [ "services" "ssmtp" ] ''
|
||||||
|
The ssmtp package and the corresponding module have been removed due to
|
||||||
|
the program being unmaintained. The options `programs.msmtp.*` can be
|
||||||
|
used instead.
|
||||||
|
'')
|
||||||
(mkRemovedOptionModule [ "services" "venus" ] "The corresponding package was removed from nixpkgs.")
|
(mkRemovedOptionModule [ "services" "venus" ] "The corresponding package was removed from nixpkgs.")
|
||||||
(mkRemovedOptionModule [ "services" "wakeonlan"] "This module was removed in favor of enabling it with networking.interfaces.<name>.wakeOnLan")
|
(mkRemovedOptionModule [ "services" "wakeonlan"] "This module was removed in favor of enabling it with networking.interfaces.<name>.wakeOnLan")
|
||||||
(mkRemovedOptionModule [ "services" "winstone" ] "The corresponding package was removed from nixpkgs.")
|
(mkRemovedOptionModule [ "services" "winstone" ] "The corresponding package was removed from nixpkgs.")
|
||||||
|
|
Loading…
Reference in a new issue