mirror of
https://github.com/ilyakooo0/nixpkgs.git
synced 2024-12-28 06:14:26 +03:00
* New directory modules/programs that contains system-wide
configuration for specific programs. For instance, ssh.nix provides the configuration for the SSH client; ssmtp.nix provides the configuration for the `ssmtp' MTA. svn path=/nixos/branches/modular-nixos/; revision=15757
This commit is contained in:
parent
2c34a4b8c0
commit
2d7beac377
@ -134,33 +134,8 @@ let
|
|||||||
target = "skel/.bashrc";
|
target = "skel/.bashrc";
|
||||||
}
|
}
|
||||||
|
|
||||||
{ # SSH configuration. Slight duplication of the sshd_config
|
|
||||||
# generation in the sshd service.
|
|
||||||
source = pkgs.writeText "ssh_config" ''
|
|
||||||
${if config.services.sshd.forwardX11 then ''
|
|
||||||
ForwardX11 yes
|
|
||||||
XAuthLocation ${pkgs.xorg.xauth}/bin/xauth
|
|
||||||
'' else ''
|
|
||||||
ForwardX11 no
|
|
||||||
''}
|
|
||||||
'';
|
|
||||||
target = "ssh/ssh_config";
|
|
||||||
}
|
|
||||||
]
|
]
|
||||||
|
|
||||||
# Configuration for ssmtp.
|
|
||||||
++ optional config.networking.defaultMailServer.directDelivery {
|
|
||||||
source = let cfg = config.networking.defaultMailServer; in pkgs.writeText "ssmtp.conf" ''
|
|
||||||
MailHub=${cfg.hostName}
|
|
||||||
FromLineOverride=YES
|
|
||||||
${if cfg.domain != "" then "rewriteDomain=${cfg.domain}" else ""}
|
|
||||||
UseTLS=${if cfg.useTLS then "YES" else "NO"}
|
|
||||||
UseSTARTTLS=${if cfg.useSTARTTLS then "YES" else "NO"}
|
|
||||||
#Debug=YES
|
|
||||||
'';
|
|
||||||
target = "ssmtp/ssmtp.conf";
|
|
||||||
}
|
|
||||||
|
|
||||||
# A bunch of PAM configuration files for various programs.
|
# A bunch of PAM configuration files for various programs.
|
||||||
++ (map
|
++ (map
|
||||||
(program:
|
(program:
|
||||||
|
@ -71,7 +71,6 @@ let
|
|||||||
(import ../../helpers/info-wrapper.nix {inherit (pkgs) bash texinfo writeScriptBin;})
|
(import ../../helpers/info-wrapper.nix {inherit (pkgs) bash texinfo writeScriptBin;})
|
||||||
]
|
]
|
||||||
++ pkgs.lib.optional config.services.bitlbee.enable pkgs.bitlbee
|
++ pkgs.lib.optional config.services.bitlbee.enable pkgs.bitlbee
|
||||||
++ pkgs.lib.optional config.networking.defaultMailServer.directDelivery pkgs.ssmtp
|
|
||||||
++ config.environment.extraPackages
|
++ config.environment.extraPackages
|
||||||
++ pkgs.lib.optional config.fonts.enableFontDir config.system.build.x11Fonts
|
++ pkgs.lib.optional config.fonts.enableFontDir config.system.build.x11Fonts
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
[ # This file have been generated by gen-module-list.sh
|
[ # This file has been generated by gen-module-list.sh
|
||||||
./config/fonts.nix
|
./config/fonts.nix
|
||||||
./config/i18n.nix
|
./config/i18n.nix
|
||||||
./config/nsswitch.nix
|
./config/nsswitch.nix
|
||||||
@ -8,6 +8,8 @@
|
|||||||
./config/users-groups.nix
|
./config/users-groups.nix
|
||||||
./installer/grub/grub.nix
|
./installer/grub/grub.nix
|
||||||
./legacy.nix
|
./legacy.nix
|
||||||
|
./programs/ssh.nix
|
||||||
|
./programs/ssmtp.nix
|
||||||
./security/setuid-wrappers.nix
|
./security/setuid-wrappers.nix
|
||||||
./security/sudo.nix
|
./security/sudo.nix
|
||||||
./services/audio/alsa.nix
|
./services/audio/alsa.nix
|
||||||
|
20
modules/programs/ssh.nix
Normal file
20
modules/programs/ssh.nix
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
# Global configuration for the SSH client.
|
||||||
|
|
||||||
|
{config, pkgs, ...}:
|
||||||
|
|
||||||
|
{
|
||||||
|
environment.etc =
|
||||||
|
[ { # SSH configuration. Slight duplication of the sshd_config
|
||||||
|
# generation in the sshd service.
|
||||||
|
source = pkgs.writeText "ssh_config" ''
|
||||||
|
${if config.services.sshd.forwardX11 then ''
|
||||||
|
ForwardX11 yes
|
||||||
|
XAuthLocation ${pkgs.xorg.xauth}/bin/xauth
|
||||||
|
'' else ''
|
||||||
|
ForwardX11 no
|
||||||
|
''}
|
||||||
|
'';
|
||||||
|
target = "ssh/ssh_config";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
}
|
91
modules/programs/ssmtp.nix
Normal file
91
modules/programs/ssmtp.nix
Normal file
@ -0,0 +1,91 @@
|
|||||||
|
# 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, wihout
|
||||||
|
# queueing mail locally.
|
||||||
|
|
||||||
|
{config, pkgs, ...}:
|
||||||
|
|
||||||
|
with pkgs.lib;
|
||||||
|
|
||||||
|
let
|
||||||
|
|
||||||
|
options = {
|
||||||
|
|
||||||
|
networking.defaultMailServer = {
|
||||||
|
|
||||||
|
directDelivery = mkOption {
|
||||||
|
default = false;
|
||||||
|
example = true;
|
||||||
|
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>networking.defaultMailServer.hostName</option> to the
|
||||||
|
host name of your preferred mail server.
|
||||||
|
";
|
||||||
|
};
|
||||||
|
|
||||||
|
hostName = mkOption {
|
||||||
|
example = "mail.example.org";
|
||||||
|
description = "
|
||||||
|
The host name of the default mail server to use to deliver
|
||||||
|
e-mail.
|
||||||
|
";
|
||||||
|
};
|
||||||
|
|
||||||
|
domain = mkOption {
|
||||||
|
default = "";
|
||||||
|
example = "example.org";
|
||||||
|
description = "
|
||||||
|
The domain from which mail will appear to be sent.
|
||||||
|
";
|
||||||
|
};
|
||||||
|
|
||||||
|
useTLS = mkOption {
|
||||||
|
default = false;
|
||||||
|
example = true;
|
||||||
|
description = "
|
||||||
|
Whether TLS should be used to connect to the default mail
|
||||||
|
server.
|
||||||
|
";
|
||||||
|
};
|
||||||
|
|
||||||
|
useSTARTTLS = mkOption {
|
||||||
|
default = false;
|
||||||
|
example = true;
|
||||||
|
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.)
|
||||||
|
";
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
cfg = config.networking.defaultMailServer;
|
||||||
|
|
||||||
|
in
|
||||||
|
|
||||||
|
mkIf cfg.directDelivery {
|
||||||
|
require = [options];
|
||||||
|
|
||||||
|
environment.etc =
|
||||||
|
[ { source = pkgs.writeText "ssmtp.conf" ''
|
||||||
|
MailHub=${cfg.hostName}
|
||||||
|
FromLineOverride=YES
|
||||||
|
${if cfg.domain != "" then "rewriteDomain=${cfg.domain}" else ""}
|
||||||
|
UseTLS=${if cfg.useTLS then "YES" else "NO"}
|
||||||
|
UseSTARTTLS=${if cfg.useSTARTTLS then "YES" else "NO"}
|
||||||
|
#Debug=YES
|
||||||
|
'';
|
||||||
|
target = "ssmtp/ssmtp.conf";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
environment.extraPackages = [pkgs.ssmtp];
|
||||||
|
}
|
@ -85,60 +85,6 @@ in
|
|||||||
";
|
";
|
||||||
};
|
};
|
||||||
|
|
||||||
defaultMailServer = {
|
|
||||||
|
|
||||||
directDelivery = mkOption {
|
|
||||||
default = false;
|
|
||||||
example = true;
|
|
||||||
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>networking.defaultMailServer.hostName</option> to the
|
|
||||||
host name of your preferred mail server.
|
|
||||||
";
|
|
||||||
};
|
|
||||||
|
|
||||||
hostName = mkOption {
|
|
||||||
example = "mail.example.org";
|
|
||||||
description = "
|
|
||||||
The host name of the default mail server to use to deliver
|
|
||||||
e-mail.
|
|
||||||
";
|
|
||||||
};
|
|
||||||
|
|
||||||
domain = mkOption {
|
|
||||||
default = "";
|
|
||||||
example = "example.org";
|
|
||||||
description = "
|
|
||||||
The domain from which mail will appear to be sent.
|
|
||||||
";
|
|
||||||
};
|
|
||||||
|
|
||||||
useTLS = mkOption {
|
|
||||||
default = false;
|
|
||||||
example = true;
|
|
||||||
description = "
|
|
||||||
Whether TLS should be used to connect to the default mail
|
|
||||||
server.
|
|
||||||
";
|
|
||||||
};
|
|
||||||
|
|
||||||
useSTARTTLS = mkOption {
|
|
||||||
default = false;
|
|
||||||
example = true;
|
|
||||||
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.)
|
|
||||||
";
|
|
||||||
};
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user