summary refs log tree commit diff
diff options
context:
space:
mode:
authorpacien <pacien.trangirard@pacien.net>2018-09-16 15:19:29 +0200
committerpacien <pacien.trangirard@pacien.net>2018-09-16 15:19:29 +0200
commitd73ed4264f48da098e782c0e204ae4ce613801e5 (patch)
tree2f2c6e61560e29789a5155b3393554539d2f79cb
parentd499b7d821106964581cbb6eab5354fbdf7a6847 (diff)
downloadnixpkgs-d73ed4264f48da098e782c0e204ae4ce613801e5.tar
nixpkgs-d73ed4264f48da098e782c0e204ae4ce613801e5.tar.gz
nixpkgs-d73ed4264f48da098e782c0e204ae4ce613801e5.tar.bz2
nixpkgs-d73ed4264f48da098e782c0e204ae4ce613801e5.tar.lz
nixpkgs-d73ed4264f48da098e782c0e204ae4ce613801e5.tar.xz
nixpkgs-d73ed4264f48da098e782c0e204ae4ce613801e5.tar.zst
nixpkgs-d73ed4264f48da098e782c0e204ae4ce613801e5.zip
exim: parametrise package
This allows the definition of a custom derivation of Exim,
which can be used to enable custom features such as LDAP and PAM support.

The default behaviour remains unchanged (defaulting to pkgs.exim).
-rw-r--r--nixos/modules/services/mail/exim.nix18
1 files changed, 14 insertions, 4 deletions
diff --git a/nixos/modules/services/mail/exim.nix b/nixos/modules/services/mail/exim.nix
index 06c4b2811b3..c0581129135 100644
--- a/nixos/modules/services/mail/exim.nix
+++ b/nixos/modules/services/mail/exim.nix
@@ -2,7 +2,7 @@
 
 let
   inherit (lib) mkIf mkOption singleton types;
-  inherit (pkgs) coreutils exim;
+  inherit (pkgs) coreutils;
   cfg = config.services.exim;
 in
 
@@ -57,6 +57,16 @@ in
         '';
       };
 
+      package = mkOption {
+        type = types.package;
+        default = pkgs.exim;
+        defaultText = "pkgs.exim";
+        description = ''
+          The Exim derivation to use.
+          This can be used to enable features such as LDAP or PAM support.
+        '';
+      };
+
     };
 
   };
@@ -74,7 +84,7 @@ in
         spool_directory = ${cfg.spoolDir}
         ${cfg.config}
       '';
-      systemPackages = [ exim ];
+      systemPackages = [ cfg.package ];
     };
 
     users.users = singleton {
@@ -89,14 +99,14 @@ in
       gid = config.ids.gids.exim;
     };
 
-    security.wrappers.exim.source = "${exim}/bin/exim";
+    security.wrappers.exim.source = "${cfg.package}/bin/exim";
 
     systemd.services.exim = {
       description = "Exim Mail Daemon";
       wantedBy = [ "multi-user.target" ];
       restartTriggers = [ config.environment.etc."exim.conf".source ];
       serviceConfig = {
-        ExecStart   = "${exim}/bin/exim -bdf -q30m";
+        ExecStart   = "${cfg.package}/bin/exim -bdf -q30m";
         ExecReload  = "${coreutils}/bin/kill -HUP $MAINPID";
       };
       preStart = ''