about summary refs log tree commit diff
path: root/pkgs/servers/mail/dovecot
diff options
context:
space:
mode:
authorNikolay Amiantov <ab@fmap.me>2016-01-09 19:25:05 +0300
committerNikolay Amiantov <ab@fmap.me>2016-01-21 12:50:03 +0300
commitcc0e255ab975b50adb895d8d9bec5a9a66665e4a (patch)
treefa56de9dcee403a2d29bf1affa2cabb565bf3630 /pkgs/servers/mail/dovecot
parent97e3c42523083b9217b42f54c888c6895ca1ea5b (diff)
downloadnixlib-cc0e255ab975b50adb895d8d9bec5a9a66665e4a.tar
nixlib-cc0e255ab975b50adb895d8d9bec5a9a66665e4a.tar.gz
nixlib-cc0e255ab975b50adb895d8d9bec5a9a66665e4a.tar.bz2
nixlib-cc0e255ab975b50adb895d8d9bec5a9a66665e4a.tar.lz
nixlib-cc0e255ab975b50adb895d8d9bec5a9a66665e4a.tar.xz
nixlib-cc0e255ab975b50adb895d8d9bec5a9a66665e4a.tar.zst
nixlib-cc0e255ab975b50adb895d8d9bec5a9a66665e4a.zip
dovecot22: add options for building auth modules
Diffstat (limited to 'pkgs/servers/mail/dovecot')
-rw-r--r--pkgs/servers/mail/dovecot/2.2.x.nix40
1 files changed, 25 insertions, 15 deletions
diff --git a/pkgs/servers/mail/dovecot/2.2.x.nix b/pkgs/servers/mail/dovecot/2.2.x.nix
index 4488e8c86b1f..2237a09a6a68 100644
--- a/pkgs/servers/mail/dovecot/2.2.x.nix
+++ b/pkgs/servers/mail/dovecot/2.2.x.nix
@@ -1,11 +1,21 @@
-{ stdenv, fetchurl, perl, systemd, openssl, pam, bzip2, zlib, openldap
-, inotify-tools, clucene_core_2, sqlite }:
+{ stdenv, lib, fetchurl, perl, pkgconfig, systemd, openssl
+, bzip2, zlib, inotify-tools, pam, libcap
+, clucene_core_2, icu, openldap
+# Auth modules
+, withMySQL ? false, libmysql
+, withPgSQL ? false, postgresql
+, withSQLite ? true, sqlite
+}:
 
 stdenv.mkDerivation rec {
   name = "dovecot-2.2.21";
 
-  buildInputs = [ perl openssl bzip2 zlib openldap clucene_core_2 sqlite ]
-    ++ stdenv.lib.optionals (stdenv.isLinux) [ systemd pam inotify-tools ];
+  nativeBuildInputs = [ perl pkgconfig ];
+  buildInputs = [ openssl bzip2 zlib clucene_core_2 icu openldap ]
+    ++ lib.optionals (stdenv.isLinux) [ systemd pam libcap inotify-tools ]
+    ++ lib.optional withMySQL libmysql
+    ++ lib.optional withPgSQL postgresql
+    ++ lib.optional withSQLite sqlite;
 
   src = fetchurl {
     url = "http://dovecot.org/releases/2.2/${name}.tar.gz";
@@ -13,11 +23,10 @@ stdenv.mkDerivation rec {
   };
 
   preConfigure = ''
-    substituteInPlace src/config/settings-get.pl --replace \
-      "/usr/bin/env perl" "${perl}/bin/perl"
+    patchShebangs src/config/settings-get.pl
   '';
 
-  postInstall = stdenv.lib.optionalString stdenv.isDarwin ''
+  postInstall = lib.optionalString stdenv.isDarwin ''
     install_name_tool -change libclucene-shared.1.dylib \
         ${clucene_core_2}/lib/libclucene-shared.1.dylib \
         $out/lib/dovecot/lib21_fts_lucene_plugin.so
@@ -28,9 +37,8 @@ stdenv.mkDerivation rec {
 
   patches = [
     # Make dovecot look for plugins in /etc/dovecot/modules
-    # so we can symlink plugins from several packages there
-    # The symlinking needs to be done in NixOS, as part of the
-    # dovecot service start-up
+    # so we can symlink plugins from several packages there.
+    # The symlinking needs to be done in NixOS.
     ./2.2.x-module_dir.patch
   ];
 
@@ -39,14 +47,16 @@ stdenv.mkDerivation rec {
     # http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=626211
     "--localstatedir=/var"
     "--with-ldap"
-    "--with-lucene"
     "--with-ssl=openssl"
-    "--with-sqlite"
     "--with-zlib"
     "--with-bzlib"
-  ] ++ stdenv.lib.optionals (stdenv.isLinux) [
-    "--with-systemdsystemunitdir=$(out)/etc/systemd/system"
-  ];
+    "--with-ldap"
+    "--with-lucene"
+    "--with-icu"
+  ] ++ lib.optional (stdenv.isLinux) "--with-systemdsystemunitdir=$(out)/etc/systemd/system"
+    ++ lib.optional withMySQL "--with-mysql"
+    ++ lib.optional withPgSQL "--with-pgsql"
+    ++ lib.optional withSQLite "--with-sqlite";
 
   meta = {
     homepage = "http://dovecot.org/";