summary refs log tree commit diff
path: root/pkgs/servers/mail/dovecot/default.nix
diff options
context:
space:
mode:
authorPeter Simons <simons@cryp.to>2016-03-11 15:45:01 +0100
committerPeter Simons <simons@cryp.to>2016-03-11 16:03:09 +0100
commitc73a22aed586787acfebb9bb039404d3c393297b (patch)
treee761089067bc46cf95bb45302a1704d7a5e55b2d /pkgs/servers/mail/dovecot/default.nix
parentce6a1a6ceaee7496313bc6dd3f2325b43f65db64 (diff)
downloadnixpkgs-c73a22aed586787acfebb9bb039404d3c393297b.tar
nixpkgs-c73a22aed586787acfebb9bb039404d3c393297b.tar.gz
nixpkgs-c73a22aed586787acfebb9bb039404d3c393297b.tar.bz2
nixpkgs-c73a22aed586787acfebb9bb039404d3c393297b.tar.lz
nixpkgs-c73a22aed586787acfebb9bb039404d3c393297b.tar.xz
nixpkgs-c73a22aed586787acfebb9bb039404d3c393297b.tar.zst
nixpkgs-c73a22aed586787acfebb9bb039404d3c393297b.zip
Drop support for dovecot 2.1.x from Nixpkgs and NixOS.
Version 2.2.x has been stable for a long time; let's give up support for
the obsolete version.
Diffstat (limited to 'pkgs/servers/mail/dovecot/default.nix')
-rw-r--r--pkgs/servers/mail/dovecot/default.nix68
1 files changed, 58 insertions, 10 deletions
diff --git a/pkgs/servers/mail/dovecot/default.nix b/pkgs/servers/mail/dovecot/default.nix
index 3997370154e..ec4c5c935af 100644
--- a/pkgs/servers/mail/dovecot/default.nix
+++ b/pkgs/servers/mail/dovecot/default.nix
@@ -1,27 +1,75 @@
-{stdenv, fetchurl, openssl, pam, bzip2, zlib, inotify-tools, openldap}:
+{ 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.1.17";
+  name = "dovecot-2.2.21";
 
-  buildInputs = [openssl bzip2 zlib openldap] ++ stdenv.lib.optionals stdenv.isLinux [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.1/${name}.tar.gz";
-    sha256 = "06j2s5bcrmc0dhjsyavqiss3k65p6xn00a7sffpsv6w3yngv777m";
+    url = "http://dovecot.org/releases/2.2/${name}.tar.gz";
+    sha256 = "080bil83gr2dski4gk2bxykg2g497kqm2hn2z4xkbw71b6g17dvs";
   };
 
-  # It will hardcode this for /var/lib/dovecot.
-  # http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=626211
+  preConfigure = ''
+    patchShebangs src/config/settings-get.pl
+  '';
+
+  # We need this for sysconfdir, see remark below.
+  installFlags = [ "DESTDIR=$(out)" ];
+
+  postInstall = ''
+    cp -r $out/$out/* $out
+    rm -rf $out/$(echo "$out" | cut -d "/" -f2)
+  '' + 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
+    install_name_tool -change libclucene-core.1.dylib \
+        ${clucene_core_2}/lib/libclucene-core.1.dylib \
+        $out/lib/dovecot/lib21_fts_lucene_plugin.so
+  '';
+
+  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.
+    ./2.2.x-module_dir.patch
+  ];
+
   configureFlags = [
+    # It will hardcode this for /var/lib/dovecot.
+    # http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=626211
     "--localstatedir=/var"
+    # We need this so utilities default to reading /etc/dovecot/dovecot.conf file.
+    "--sysconfdir=/etc"
     "--with-ldap"
-  ];
+    "--with-ssl=openssl"
+    "--with-zlib"
+    "--with-bzlib"
+    "--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/";
     description = "Open source IMAP and POP3 email server written with security primarily in mind";
-    maintainers = with stdenv.lib.maintainers; [viric simons];
+    maintainers = with stdenv.lib.maintainers; [viric simons rickynils];
     hydraPlatforms = stdenv.lib.platforms.linux;
   };
-
 }