zfs: disable smartmontools mail functionality

This commit is contained in:
Cole Helbling 2021-01-13 23:40:46 -08:00
parent a206194b4e
commit 1ed5b6a285
No known key found for this signature in database
GPG Key ID: B37E0F2371016A4C
2 changed files with 27 additions and 10 deletions

View File

@ -327,7 +327,9 @@ in
};
services.zfs.zed = {
enableMail = mkEnableOption "ZED's ability to send emails";
enableMail = mkEnableOption "ZED's ability to send emails" // {
default = cfgZfs.package.enableMail;
};
settings = mkOption {
type = with types; attrsOf (oneOf [ str int bool (listOf str) ]);
@ -362,6 +364,14 @@ in
config = mkMerge [
(mkIf cfgZfs.enabled {
assertions = [
{
assertion = cfgZED.enableMail -> cfgZfs.package.enableMail;
message = ''
To allow ZED to send emails, ZFS needs to be configured to enable
this. To do so, one must override the `zfs` package and set
`enableMail` to true.
'';
}
{
assertion = config.networking.hostId != null;
message = "ZFS requires networking.hostId to be set";

View File

@ -8,8 +8,8 @@
, libtirpc
, nfs-utils
, gawk, gnugrep, gnused, systemd
, smartmontools, sysstat, sudo
, pkg-config
, smartmontools, enableMail ? false
, sysstat, sudo, pkg-config
# Kernel dependencies
, kernel ? null
@ -18,6 +18,8 @@
with lib;
let
smartmon = smartmontools.override { inherit enableMail; };
buildKernel = any (n: n == configFile) [ "kernel" "all" ];
buildUser = any (n: n == configFile) [ "user" "all" ];
@ -148,7 +150,7 @@ let
'';
postFixup = let
path = "PATH=${makeBinPath [ coreutils gawk gnused gnugrep util-linux smartmontools sysstat ]}:$PATH";
path = "PATH=${makeBinPath [ coreutils gawk gnused gnugrep util-linux smartmon sysstat ]}:$PATH";
in ''
for i in $out/libexec/zfs/zpool.d/*; do
sed -i '2i${path}' $i
@ -157,12 +159,17 @@ let
outputs = [ "out" ] ++ optionals buildUser [ "lib" "dev" ];
passthru.tests = if isUnstable then
[ nixosTests.zfs.unstable ]
else [
nixosTests.zfs.installer
nixosTests.zfs.stable
];
passthru = {
inherit enableMail;
tests =
if isUnstable then [
nixosTests.zfs.unstable
] else [
nixosTests.zfs.installer
nixosTests.zfs.stable
];
};
meta = {
description = "ZFS Filesystem Linux Kernel module";