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.
This commit is contained in:
Peter Simons 2016-03-11 15:45:01 +01:00
parent ce6a1a6cea
commit c73a22aed5
4 changed files with 64 additions and 99 deletions

View File

@ -98,8 +98,8 @@ in
package = mkOption {
type = types.package;
default = pkgs.dovecot22;
defaultText = "pkgs.dovecot22";
default = pkgs.dovecot;
defaultText = "pkgs.dovecot";
description = "Dovecot package to use.";
};

View File

@ -1,75 +0,0 @@
{ 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";
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";
sha256 = "080bil83gr2dski4gk2bxykg2g497kqm2hn2z4xkbw71b6g17dvs";
};
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 rickynils];
hydraPlatforms = stdenv.lib.platforms.linux;
};
}

View File

@ -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
configureFlags = [
"--localstatedir=/var"
"--with-ldap"
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;
};
}

View File

@ -9543,16 +9543,8 @@ let
dnschain = callPackage ../servers/dnschain { };
dovecot = dovecot22;
dovecot21 = callPackage ../servers/mail/dovecot { };
dovecot22 = callPackage ../servers/mail/dovecot/2.2.x.nix { };
dovecot_pigeonhole = callPackage ../servers/mail/dovecot/plugins/pigeonhole {
dovecot = dovecot22;
};
dovecot = callPackage ../servers/mail/dovecot { };
dovecot_pigeonhole = callPackage ../servers/mail/dovecot/plugins/pigeonhole { };
dovecot_antispam = callPackage ../servers/mail/dovecot/plugins/antispam { };
dspam = callPackage ../servers/mail/dspam {