summary refs log tree commit diff
diff options
context:
space:
mode:
authorroblabla <robinlambertz+dev@gmail.com>2017-06-06 12:59:47 +0200
committerroblabla <robinlambertz+dev@gmail.com>2017-06-06 12:59:47 +0200
commitc18c50a42e68e5327d8612d5aed2e25d094205d3 (patch)
tree6e351c1300685deb5bde005cea72fdb23bfa57ea
parent048114eb4f79f3e125dadee106b454e3d72ccdfc (diff)
downloadnixpkgs-c18c50a42e68e5327d8612d5aed2e25d094205d3.tar
nixpkgs-c18c50a42e68e5327d8612d5aed2e25d094205d3.tar.gz
nixpkgs-c18c50a42e68e5327d8612d5aed2e25d094205d3.tar.bz2
nixpkgs-c18c50a42e68e5327d8612d5aed2e25d094205d3.tar.lz
nixpkgs-c18c50a42e68e5327d8612d5aed2e25d094205d3.tar.xz
nixpkgs-c18c50a42e68e5327d8612d5aed2e25d094205d3.tar.zst
nixpkgs-c18c50a42e68e5327d8612d5aed2e25d094205d3.zip
cyrus-sasl: Add saslauthd service support
-rw-r--r--nixos/modules/module-list.nix1
-rw-r--r--nixos/modules/services/system/saslauthd.nix63
-rw-r--r--pkgs/development/libraries/cyrus-sasl/default.nix1
3 files changed, 64 insertions, 1 deletions
diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix
index f7608a57d71..4ab70707d72 100644
--- a/nixos/modules/module-list.nix
+++ b/nixos/modules/module-list.nix
@@ -534,6 +534,7 @@
   ./services/system/earlyoom.nix
   ./services/system/kerberos.nix
   ./services/system/nscd.nix
+  ./services/system/saslauthd.nix
   ./services/system/uptimed.nix
   ./services/torrent/deluge.nix
   ./services/torrent/flexget.nix
diff --git a/nixos/modules/services/system/saslauthd.nix b/nixos/modules/services/system/saslauthd.nix
new file mode 100644
index 00000000000..281716cf186
--- /dev/null
+++ b/nixos/modules/services/system/saslauthd.nix
@@ -0,0 +1,63 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+
+  nssModulesPath = config.system.nssModules.path;
+  cfg = config.services.saslauthd;
+
+in
+
+{
+
+  ###### interface
+
+  options = {
+
+    services.saslauthd = {
+
+      enable = mkEnableOption "Whether to enable the Cyrus SASL authentication daemon.";
+
+      package = mkOption {
+        default = pkgs.cyrus_sasl.bin;
+        defaultText = "pkgs.cyrus_sasl.bin";
+        type = types.package;
+        description = "Cyrus SASL package to use.";
+      };
+
+      mechanism = mkOption {
+        type = types.str;
+        default = "pam";
+        description = "Auth mechanism to use";
+      };
+
+      config = mkOption {
+        type = types.lines;
+        default = "";
+        description = "Configuration to use for Cyrus SASL authentication daemon.";
+      };
+
+    };
+
+  };
+
+
+  ###### implementation
+
+  config = mkIf cfg.enable {
+
+    systemd.services.saslauthd = {
+      description = "Cyrus SASL authentication daemon";
+
+      wantedBy = [ "multi-user.target" ];
+
+      serviceConfig = {
+        ExecStart = "@${cfg.package}/sbin/saslauthd saslauthd -a ${cfg.mechanism} -O ${pkgs.writeText "saslauthd.conf" cfg.config}";
+        Type = "forking";
+        PIDFile = "/run/saslauthd/saslauthd.pid";
+        Restart = "always";
+      };
+    };
+  };
+}
diff --git a/pkgs/development/libraries/cyrus-sasl/default.nix b/pkgs/development/libraries/cyrus-sasl/default.nix
index 05eb575547d..590092e988c 100644
--- a/pkgs/development/libraries/cyrus-sasl/default.nix
+++ b/pkgs/development/libraries/cyrus-sasl/default.nix
@@ -34,7 +34,6 @@ stdenv.mkDerivation rec {
   # Set this variable at build-time to make sure $out can be evaluated.
   preConfigure = ''
     configureFlagsArray=( --with-plugindir=$out/lib/sasl2
-                          --with-configdir=$out/lib/sasl2
                           --with-saslauthd=/run/saslauthd
                           --enable-login
                         )