diff options
author | Vladimír Čunát <vcunat@gmail.com> | 2016-02-03 16:54:03 +0100 |
---|---|---|
committer | Vladimír Čunát <vcunat@gmail.com> | 2016-02-03 16:57:19 +0100 |
commit | ae74c356d94b795eb07dfe9978788b49b70f5959 (patch) | |
tree | c13c6894b75f95d3a4dc4627efef508bb03dfba8 /pkgs/servers/mail | |
parent | c9790126312119ce5a2a8ac946d9f086e7ea9f55 (diff) | |
parent | 53e0f8b1cdf36574bfede6e62e2ac2739c3ef804 (diff) | |
download | nixlib-ae74c356d94b795eb07dfe9978788b49b70f5959.tar nixlib-ae74c356d94b795eb07dfe9978788b49b70f5959.tar.gz nixlib-ae74c356d94b795eb07dfe9978788b49b70f5959.tar.bz2 nixlib-ae74c356d94b795eb07dfe9978788b49b70f5959.tar.lz nixlib-ae74c356d94b795eb07dfe9978788b49b70f5959.tar.xz nixlib-ae74c356d94b795eb07dfe9978788b49b70f5959.tar.zst nixlib-ae74c356d94b795eb07dfe9978788b49b70f5959.zip |
Merge recent 'staging' into closure-size
Let's get rid of those merge conflicts.
Diffstat (limited to 'pkgs/servers/mail')
-rw-r--r-- | pkgs/servers/mail/dovecot/2.2.x-module_dir.patch | 20 | ||||
-rw-r--r-- | pkgs/servers/mail/dovecot/2.2.x.nix | 54 | ||||
-rw-r--r-- | pkgs/servers/mail/dovecot/plugins/antispam/default.nix | 34 | ||||
-rw-r--r-- | pkgs/servers/mail/dovecot/plugins/pigeonhole/default.nix (renamed from pkgs/servers/mail/dovecot-pigeonhole/default.nix) | 23 | ||||
-rw-r--r-- | pkgs/servers/mail/postfix/3.0.nix | 8 | ||||
-rw-r--r-- | pkgs/servers/mail/postfix/post-install-script.patch | 28 |
6 files changed, 127 insertions, 40 deletions
diff --git a/pkgs/servers/mail/dovecot/2.2.x-module_dir.patch b/pkgs/servers/mail/dovecot/2.2.x-module_dir.patch index 3ba11d41b1bd..a6edc8d83ee9 100644 --- a/pkgs/servers/mail/dovecot/2.2.x-module_dir.patch +++ b/pkgs/servers/mail/dovecot/2.2.x-module_dir.patch @@ -6,7 +6,7 @@ diff -ur dovecot-2.2.12-orig/src/auth/main.c dovecot-2.2.12/src/auth/main.c mod_set.filter_callback = auth_module_filter; - modules = module_dir_load(AUTH_MODULE_DIR, NULL, &mod_set); -+ modules = module_dir_load("/var/lib/dovecot/modules/auth", NULL, &mod_set); ++ modules = module_dir_load("/etc/dovecot/modules/auth", NULL, &mod_set); module_dir_init(modules); if (!worker) @@ -15,7 +15,7 @@ diff -ur dovecot-2.2.12-orig/src/auth/main.c dovecot-2.2.12/src/auth/main.c mod_set.ignore_missing = TRUE; - modules = module_dir_load_missing(modules, AUTH_MODULE_DIR, names, -+ modules = module_dir_load_missing(modules, "/var/lib/dovecot/modules/auth", names, ++ modules = module_dir_load_missing(modules, "/etc/dovecot/modules/auth", names, &mod_set); module_dir_init(modules); } @@ -27,7 +27,7 @@ diff -ur dovecot-2.2.12-orig/src/config/all-settings.c dovecot-2.2.12/src/config .mail_plugins = "", - .mail_plugin_dir = MODULEDIR, -+ .mail_plugin_dir = "/var/lib/dovecot/modules", ++ .mail_plugin_dir = "/etc/dovecot/modules", .mail_log_prefix = "%s(%u): ", @@ -36,7 +36,7 @@ diff -ur dovecot-2.2.12-orig/src/config/all-settings.c dovecot-2.2.12/src/config .libexec_dir = PKG_LIBEXECDIR, .mail_plugins = "", - .mail_plugin_dir = MODULEDIR, -+ .mail_plugin_dir = "/var/lib/dovecot/modules", ++ .mail_plugin_dir = "/etc/dovecot/modules", .auth_socket_path = "auth-userdb", .doveadm_socket_path = "doveadm-server", .doveadm_worker_count = 0, @@ -49,7 +49,7 @@ diff -ur dovecot-2.2.12-orig/src/config/config-parser.c dovecot-2.2.12/src/confi memset(&mod_set, 0, sizeof(mod_set)); mod_set.abi_version = DOVECOT_ABI_VERSION; - modules = module_dir_load(CONFIG_MODULE_DIR, NULL, &mod_set); -+ modules = module_dir_load("/var/lib/dovecot/modules/settings", NULL, &mod_set); ++ modules = module_dir_load("/etc/dovecot/modules/settings", NULL, &mod_set); module_dir_init(modules); i_array_init(&new_roots, 64); @@ -61,7 +61,7 @@ diff -ur dovecot-2.2.12-orig/src/dict/main.c dovecot-2.2.12/src/dict/main.c mod_set.require_init_funcs = TRUE; - modules = module_dir_load(DICT_MODULE_DIR, NULL, &mod_set); -+ modules = module_dir_load("/var/lib/dovecot/modules/dict", NULL, &mod_set); ++ modules = module_dir_load("/etc/dovecot/modules/dict", NULL, &mod_set); module_dir_init(modules); /* Register only after loading modules. They may contain SQL drivers, @@ -73,7 +73,7 @@ diff -ur dovecot-2.2.12-orig/src/doveadm/doveadm-settings.c dovecot-2.2.12/src/d .libexec_dir = PKG_LIBEXECDIR, .mail_plugins = "", - .mail_plugin_dir = MODULEDIR, -+ .mail_plugin_dir = "/var/lib/dovecot/modules", ++ .mail_plugin_dir = "/etc/dovecot/modules", .auth_socket_path = "auth-userdb", .doveadm_socket_path = "doveadm-server", .doveadm_worker_count = 0, @@ -86,7 +86,7 @@ diff -ur dovecot-2.2.12-orig/src/lib-fs/fs-api.c dovecot-2.2.12/src/lib-fs/fs-ap mod_set.ignore_missing = TRUE; - fs_modules = module_dir_load_missing(fs_modules, MODULE_DIR, -+ fs_modules = module_dir_load_missing(fs_modules, "/var/lib/dovecot/modules", ++ fs_modules = module_dir_load_missing(fs_modules, "/etc/dovecot/modules", module_name, &mod_set); module_dir_init(fs_modules); @@ -99,7 +99,7 @@ diff -ur dovecot-2.2.12-orig/src/lib-ssl-iostream/iostream-ssl.c dovecot-2.2.12/ mod_set.abi_version = DOVECOT_ABI_VERSION; mod_set.setting_name = "<built-in lib-ssl-iostream lookup>"; - ssl_module = module_dir_load(MODULE_DIR, plugin_name, &mod_set); -+ ssl_module = module_dir_load("/var/lib/dovecot/modules", plugin_name, &mod_set); ++ ssl_module = module_dir_load("/etc/dovecot/modules", plugin_name, &mod_set); ssl_vfuncs = module_get_symbol(ssl_module, "ssl_vfuncs"); if (ssl_vfuncs == NULL) { @@ -112,7 +112,7 @@ diff -ur dovecot-2.2.12-orig/src/lib-storage/mail-storage-settings.c dovecot-2.2 .mail_plugins = "", - .mail_plugin_dir = MODULEDIR, -+ .mail_plugin_dir = "/var/lib/dovecot/modules", ++ .mail_plugin_dir = "/etc/dovecot/modules", .mail_log_prefix = "%s(%u): ", diff --git a/pkgs/servers/mail/dovecot/2.2.x.nix b/pkgs/servers/mail/dovecot/2.2.x.nix index 2d38f3f5cef3..ec4c5c935af0 100644 --- a/pkgs/servers/mail/dovecot/2.2.x.nix +++ b/pkgs/servers/mail/dovecot/2.2.x.nix @@ -1,23 +1,38 @@ -{ 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.19"; + 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"; - sha256 = "17sf5aancad4pg1vx1606k99389wg76blpqzmnmxlz4hklzix7km"; + sha256 = "080bil83gr2dski4gk2bxykg2g497kqm2hn2z4xkbw71b6g17dvs"; }; 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 '' + # 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 @@ -27,10 +42,9 @@ stdenv.mkDerivation rec { ''; patches = [ - # Make dovecot look for plugins in /var/lib/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 + # 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 ]; @@ -38,15 +52,19 @@ stdenv.mkDerivation rec { # 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-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/"; diff --git a/pkgs/servers/mail/dovecot/plugins/antispam/default.nix b/pkgs/servers/mail/dovecot/plugins/antispam/default.nix new file mode 100644 index 000000000000..1a1ba1ad4486 --- /dev/null +++ b/pkgs/servers/mail/dovecot/plugins/antispam/default.nix @@ -0,0 +1,34 @@ +{ stdenv, fetchhg, autoconf, automake, dovecot, openssl }: + +stdenv.mkDerivation { + name = "dovecot-antispam-20130429"; + + src = fetchhg { + url = "http://hg.dovecot.org/dovecot-antispam-plugin/"; + rev = "5ebc6aae4d7c"; + sha256 = "181i79c9sf3a80mgmycfq1f77z7fpn3j2s0qiddrj16h3yklf4gv"; + }; + + buildInputs = [ dovecot openssl ]; + nativeBuildInputs = [ autoconf automake ]; + + preConfigure = '' + ./autogen.sh + # Ugly hack; any ideas? + sed "s,^dovecot_moduledir=.*,dovecot_moduledir=$out/lib/dovecot," ${dovecot}/lib/dovecot/dovecot-config > dovecot-config + ''; + + configureFlags = [ + "--with-dovecot=." + ]; + + enableParallelBuilding = true; + + meta = with stdenv.lib; { + homepage = http://wiki2.dovecot.org/Plugins/Antispam; + description = "An antispam plugin for the Dovecot IMAP server"; + license = licenses.gpl2; + maintainers = with maintainers; [ abbradar ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/servers/mail/dovecot-pigeonhole/default.nix b/pkgs/servers/mail/dovecot/plugins/pigeonhole/default.nix index 3ee73520d7ad..385cf7d35ba8 100644 --- a/pkgs/servers/mail/dovecot-pigeonhole/default.nix +++ b/pkgs/servers/mail/dovecot/plugins/pigeonhole/default.nix @@ -1,15 +1,15 @@ -{stdenv, fetchurl, dovecot22, openssl}: +{ stdenv, fetchurl, dovecot, openssl }: stdenv.mkDerivation rec { name = "dovecot-pigeonhole-${version}"; - version = "0.4.3"; + version = "0.4.10"; src = fetchurl { url = "http://pigeonhole.dovecot.org/releases/2.2/dovecot-2.2-pigeonhole-${version}.tar.gz"; - sha256 = "0mypnkc980s3kd1bmy4f93dliwg6n8jfsac8r51jrpvv0ymz94nn"; - }; + sha256 = "0vvjj1yjr189rn8f41z5rj8gfvk24a8j33q6spb6bd6k1wbfgpz9"; + }; - buildInputs = [ dovecot22 openssl ]; + buildInputs = [ dovecot openssl ]; preConfigure = '' substituteInPlace src/managesieve/managesieve-settings.c --replace \ @@ -18,18 +18,21 @@ stdenv.mkDerivation rec { substituteInPlace src/managesieve-login/managesieve-login-settings.c --replace \ ".executable = \"managesieve-login\"" \ ".executable = \"$out/libexec/dovecot/managesieve-login\"" - ''; + ''; - configureFlags = [ - "--with-dovecot=${dovecot22}/lib/dovecot" + configureFlags = [ + "--with-dovecot=${dovecot}/lib/dovecot" "--without-dovecot-install-dirs" "--with-moduledir=$(out)/lib/dovecot" - ]; + ]; + + enableParallelBuilding = true; meta = with stdenv.lib; { homepage = http://pigeonhole.dovecot.org/; description = "A sieve plugin for the Dovecot IMAP server"; license = licenses.lgpl21; maintainers = [ maintainers.rickynils ]; - }; + platforms = platforms.linux; + }; } diff --git a/pkgs/servers/mail/postfix/3.0.nix b/pkgs/servers/mail/postfix/3.0.nix index 73ab8c8116f3..9ea151e597bb 100644 --- a/pkgs/servers/mail/postfix/3.0.nix +++ b/pkgs/servers/mail/postfix/3.0.nix @@ -35,10 +35,14 @@ in stdenv.mkDerivation rec { ++ lib.optional withMySQL libmysql ++ lib.optional withSQLite sqlite; - patches = [ ./postfix-script-shell.patch ./postfix-3.0-no-warnings.patch ]; + patches = [ ./postfix-script-shell.patch ./postfix-3.0-no-warnings.patch ./post-install-script.patch ]; preBuild = '' sed -e '/^PATH=/d' -i postfix-install + sed -e "s|@PACKAGE@|$out|" -i conf/post-install + + # post-install need skip permissions check/set on all symlinks following to /nix/store + sed -e "s|@NIX_STORE@|$NIX_STORE|" -i conf/post-install export command_directory=$out/sbin export config_directory=/etc/postfix @@ -63,7 +67,7 @@ in stdenv.mkDerivation rec { postInstall = '' mkdir -p $out mv -v installdir/$out/* $out/ - mv -v installdir/etc $out/etc + cp -rv installdir/etc $out sed -e '/^PATH=/d' -i $out/libexec/postfix/post-install wrapProgram $out/libexec/postfix/post-install \ --prefix PATH ":" ${coreutils}/bin:${findutils}/bin:${gnugrep}/bin diff --git a/pkgs/servers/mail/postfix/post-install-script.patch b/pkgs/servers/mail/postfix/post-install-script.patch new file mode 100644 index 000000000000..350fbf929b74 --- /dev/null +++ b/pkgs/servers/mail/postfix/post-install-script.patch @@ -0,0 +1,28 @@ +--- a/conf/post-install 1970-01-01 03:00:01.000000000 +0300 ++++ b/conf/post-install 2016-01-20 13:25:18.382233172 +0200 +@@ -254,6 +254,8 @@ + } + + # Bootstrapping problem. ++meta_directory="@PACKAGE@/etc/postfix" ++command_directory="@PACKAGE@/bin" + + if [ -n "$command_directory" ] + then +@@ -528,7 +530,16 @@ + # Skip uninstalled files. + case $path in + no|no/*) continue;; ++ # Skip immutable files from package, correct permissions provided by Nix. ++ @PACKAGE@/*) continue; + esac ++ # Also skip symlinks following to /nix/store ++ if test -L $path; then ++ case "$(readlink $path)" in ++ @NIX_STORE@/*) continue; ++ esac ++ fi ++ + # Pick up the flags. + case $flags in *u*) upgrade_flag=1;; *) upgrade_flag=;; esac + case $flags in *c*) create_flag=1;; *) create_flag=;; esac |