anchor.diff: -{ 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";
  
positive.code:   };
  
    preConfigure = ''
      substituteInPlace src/config/settings-get.pl --replace \
        "/usr/bin/env perl" "${perl}/bin/perl"
    '';
  
    postInstall = stdenv.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
  
negative.code:     # http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=626211
      "--localstatedir=/var"
      "--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/";
  