From c73a22aed586787acfebb9bb039404d3c393297b Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Fri, 11 Mar 2016 15:45:01 +0100 Subject: [PATCH] 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. --- nixos/modules/services/mail/dovecot.nix | 4 +- pkgs/servers/mail/dovecot/2.2.x.nix | 75 ------------------------- pkgs/servers/mail/dovecot/default.nix | 72 ++++++++++++++++++++---- pkgs/top-level/all-packages.nix | 12 +--- 4 files changed, 64 insertions(+), 99 deletions(-) delete mode 100644 pkgs/servers/mail/dovecot/2.2.x.nix diff --git a/nixos/modules/services/mail/dovecot.nix b/nixos/modules/services/mail/dovecot.nix index 3935c14dc8cc..127c3da69d14 100644 --- a/nixos/modules/services/mail/dovecot.nix +++ b/nixos/modules/services/mail/dovecot.nix @@ -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."; }; diff --git a/pkgs/servers/mail/dovecot/2.2.x.nix b/pkgs/servers/mail/dovecot/2.2.x.nix deleted file mode 100644 index ec4c5c935af0..000000000000 --- a/pkgs/servers/mail/dovecot/2.2.x.nix +++ /dev/null @@ -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; - }; -} diff --git a/pkgs/servers/mail/dovecot/default.nix b/pkgs/servers/mail/dovecot/default.nix index 3997370154e4..ec4c5c935af0 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 - 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; }; - } diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 603e451116c6..2835bd223317 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -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 {