summary refs log tree commit diff
path: root/pkgs/servers/mail
diff options
context:
space:
mode:
authorVladimír Čunát <vcunat@gmail.com>2013-08-02 18:28:29 +0200
committerVladimír Čunát <vcunat@gmail.com>2013-08-02 18:30:53 +0200
commit625f40151b0767cb421999cf988f4eb7bcf8b63d (patch)
tree629565f6f9efb26ad36b2a6d8e7e266290feb94b /pkgs/servers/mail
parentd239d24a89276cc7ee4bab1343c7e5bb40cbdfd4 (diff)
parent4fb87e91ffcbf6f6785e32b7e608198401a7155d (diff)
downloadnixlib-625f40151b0767cb421999cf988f4eb7bcf8b63d.tar
nixlib-625f40151b0767cb421999cf988f4eb7bcf8b63d.tar.gz
nixlib-625f40151b0767cb421999cf988f4eb7bcf8b63d.tar.bz2
nixlib-625f40151b0767cb421999cf988f4eb7bcf8b63d.tar.lz
nixlib-625f40151b0767cb421999cf988f4eb7bcf8b63d.tar.xz
nixlib-625f40151b0767cb421999cf988f4eb7bcf8b63d.tar.zst
nixlib-625f40151b0767cb421999cf988f4eb7bcf8b63d.zip
Merge branch 'master' into x-updates
Conflicts (a little tricky, I did some cleanup of interacting changes):
	pkgs/development/compilers/llvm/default.nix
	pkgs/development/libraries/libpng/default.nix
	pkgs/tools/package-management/nixops/default.nix
	pkgs/top-level/all-packages.nix
Diffstat (limited to 'pkgs/servers/mail')
-rw-r--r--pkgs/servers/mail/dovecot-pigeonhole/default.nix35
-rw-r--r--pkgs/servers/mail/dovecot/2.2.x-module_dir.patch114
-rw-r--r--pkgs/servers/mail/dovecot/2.2.x.nix41
-rw-r--r--pkgs/servers/mail/opensmtpd/default.nix33
4 files changed, 223 insertions, 0 deletions
diff --git a/pkgs/servers/mail/dovecot-pigeonhole/default.nix b/pkgs/servers/mail/dovecot-pigeonhole/default.nix
new file mode 100644
index 000000000000..844219925b17
--- /dev/null
+++ b/pkgs/servers/mail/dovecot-pigeonhole/default.nix
@@ -0,0 +1,35 @@
+{stdenv, fetchurl, dovecot22, openssl}:
+
+stdenv.mkDerivation rec {
+  name = "dovecot-pigeonhole-${version}";
+  version = "0.4.1";
+
+  src = fetchurl {
+    url = "http://www.rename-it.nl/dovecot/2.2/dovecot-2.2-pigeonhole-${version}.tar.gz";
+    sha256 = "0vk9khwijl8qbjlm1q36a5dvpilrminp756n87c452kc3cfgc71n";
+  };  
+
+  buildInputs = [ dovecot22 openssl ];
+
+  preConfigure = ''
+    substituteInPlace src/managesieve/managesieve-settings.c --replace \
+      ".executable = \"managesieve\"" \
+      ".executable = \"$out/libexec/dovecot/managesieve\""
+    substituteInPlace src/managesieve-login/managesieve-login-settings.c --replace \
+      ".executable = \"managesieve-login\"" \
+      ".executable = \"$out/libexec/dovecot/managesieve-login\""
+  ''; 
+
+  configureFlags = [ 
+    "--with-dovecot=${dovecot22}/lib/dovecot"
+    "--without-dovecot-install-dirs"
+    "--with-moduledir=$(out)/lib/dovecot"
+  ];  
+
+  meta = with stdenv.lib; {
+    homepage = http://pigeonhole.dovecot.org/;
+    description = "A sieve plugin for the Dovecot IMAP server.";
+    license = licenses.lgpl21;
+    maintainers = [ maintainers.rickynils ];
+  };  
+}
diff --git a/pkgs/servers/mail/dovecot/2.2.x-module_dir.patch b/pkgs/servers/mail/dovecot/2.2.x-module_dir.patch
new file mode 100644
index 000000000000..cce63fe250c6
--- /dev/null
+++ b/pkgs/servers/mail/dovecot/2.2.x-module_dir.patch
@@ -0,0 +1,114 @@
+diff -ur dovecot-2.2.2-orig/src/auth/main.c dovecot-2.2.2/src/auth/main.c
+--- dovecot-2.2.2-orig/src/auth/main.c	2013-03-13 15:26:46.000000000 +0100
++++ dovecot-2.2.2/src/auth/main.c	2013-05-20 20:23:58.126024535 +0200
+@@ -193,7 +193,7 @@
+ 	mod_set.debug = global_auth_settings->debug;
+ 	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);
+ 	module_dir_init(modules);
+ 
+ 	if (!worker)
+@@ -223,7 +223,7 @@
+ 	mod_set.debug = global_auth_settings->debug;
+ 	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,
+ 					  &mod_set);
+ 	module_dir_init(modules);
+ }
+diff -ur dovecot-2.2.2-orig/src/config/all-settings.c dovecot-2.2.2/src/config/all-settings.c
+--- dovecot-2.2.2-orig/src/config/all-settings.c	2013-05-15 12:20:55.000000000 +0200
++++ dovecot-2.2.2/src/config/all-settings.c	2013-05-21 00:31:46.624073562 +0200
+@@ -766,7 +766,7 @@
+ 	.last_valid_gid = 0,
+ 
+ 	.mail_plugins = "",
+-	.mail_plugin_dir = MODULEDIR,
++	.mail_plugin_dir = "/var/lib/dovecot/modules",
+ 
+ 	.mail_log_prefix = "%s(%u): ",
+ 
+@@ -3274,7 +3274,7 @@
+ 	.base_dir = PKG_RUNDIR,
+ 	.libexec_dir = PKG_LIBEXECDIR,
+ 	.mail_plugins = "",
+-	.mail_plugin_dir = MODULEDIR,
++	.mail_plugin_dir = "/var/lib/dovecot/modules",
+ 	.doveadm_socket_path = "doveadm-server",
+ 	.doveadm_worker_count = 0,
+ 	.doveadm_port = 0,
+diff -ur dovecot-2.2.2-orig/src/config/config-parser.c dovecot-2.2.2/src/config/config-parser.c
+--- dovecot-2.2.2-orig/src/config/config-parser.c	2013-02-04 22:05:42.000000000 +0100
++++ dovecot-2.2.2/src/config/config-parser.c	2013-05-20 20:23:58.106024534 +0200
+@@ -990,7 +990,7 @@
+ 
+ 	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);
+ 	module_dir_init(modules);
+ 
+ 	i_array_init(&new_roots, 64);
+diff -ur dovecot-2.2.2-orig/src/dict/main.c dovecot-2.2.2/src/dict/main.c
+--- dovecot-2.2.2-orig/src/dict/main.c	2013-02-04 22:05:42.000000000 +0100
++++ dovecot-2.2.2/src/dict/main.c	2013-05-20 20:23:58.101024534 +0200
+@@ -61,7 +61,7 @@
+ 	mod_set.abi_version = DOVECOT_ABI_VERSION;
+ 	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);
+ 	module_dir_init(modules);
+ 
+ 	/* Register only after loading modules. They may contain SQL drivers,
+diff -ur dovecot-2.2.2-orig/src/doveadm/doveadm-settings.c dovecot-2.2.2/src/doveadm/doveadm-settings.c
+--- dovecot-2.2.2-orig/src/doveadm/doveadm-settings.c	2013-04-07 19:13:06.000000000 +0200
++++ dovecot-2.2.2/src/doveadm/doveadm-settings.c	2013-05-20 20:23:58.399024539 +0200
+@@ -76,7 +76,7 @@
+ 	.base_dir = PKG_RUNDIR,
+ 	.libexec_dir = PKG_LIBEXECDIR,
+ 	.mail_plugins = "",
+-	.mail_plugin_dir = MODULEDIR,
++	.mail_plugin_dir = "/var/lib/dovecot/modules",
+ 	.doveadm_socket_path = "doveadm-server",
+ 	.doveadm_worker_count = 0,
+ 	.doveadm_port = 0,
+diff -ur dovecot-2.2.2-orig/src/lib-fs/fs-api.c dovecot-2.2.2/src/lib-fs/fs-api.c
+--- dovecot-2.2.2-orig/src/lib-fs/fs-api.c	2013-04-18 16:07:26.000000000 +0200
++++ dovecot-2.2.2/src/lib-fs/fs-api.c	2013-05-20 20:23:58.099024534 +0200
+@@ -82,7 +82,7 @@
+ 	mod_set.abi_version = DOVECOT_ABI_VERSION;
+ 	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",
+ 					     module_name, &mod_set);
+ 	module_dir_init(fs_modules);
+ 
+diff -ur dovecot-2.2.2-orig/src/lib-ssl-iostream/iostream-ssl.c dovecot-2.2.2/src/lib-ssl-iostream/iostream-ssl.c
+--- dovecot-2.2.2-orig/src/lib-ssl-iostream/iostream-ssl.c	2013-04-09 22:45:19.000000000 +0200
++++ dovecot-2.2.2/src/lib-ssl-iostream/iostream-ssl.c	2013-05-20 20:23:58.089024534 +0200
+@@ -28,7 +28,7 @@
+ 	memset(&mod_set, 0, sizeof(mod_set));
+ 	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_vfuncs = module_get_symbol(ssl_module, "ssl_vfuncs");
+ 	if (ssl_vfuncs == NULL) {
+diff -ur dovecot-2.2.2-orig/src/lib-storage/mail-storage-settings.c dovecot-2.2.2/src/lib-storage/mail-storage-settings.c
+--- dovecot-2.2.2-orig/src/lib-storage/mail-storage-settings.c	2013-05-15 12:20:00.000000000 +0200
++++ dovecot-2.2.2/src/lib-storage/mail-storage-settings.c	2013-05-20 20:23:57.858024531 +0200
+@@ -260,7 +260,7 @@
+ 	.last_valid_gid = 0,
+ 
+ 	.mail_plugins = "",
+-	.mail_plugin_dir = MODULEDIR,
++	.mail_plugin_dir = "/var/lib/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
new file mode 100644
index 000000000000..15c3b65b7543
--- /dev/null
+++ b/pkgs/servers/mail/dovecot/2.2.x.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchurl, perl, systemd, openssl, pam, bzip2, zlib, openldap
+, inotifyTools }:
+
+stdenv.mkDerivation rec {
+  name = "dovecot-2.2.4";
+
+  buildInputs = [perl systemd openssl pam bzip2 zlib openldap inotifyTools];
+
+  src = fetchurl {
+    url = "http://dovecot.org/releases/2.2/${name}.tar.gz";
+    sha256 = "1i5x7l03q854h4j210cpzair4vak95saccp9gb5p4xx7ndggm3q1";
+  };
+
+  preConfigure = ''
+    substituteInPlace src/config/settings-get.pl --replace \
+      "/usr/bin/env perl" "${perl}/bin/perl"
+  '';
+
+  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
+    ./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"
+    "--with-systemdsystemunitdir=$(out)/etc/systemd/system"
+    "--with-ldap"
+  ];
+
+  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];
+    platforms = with stdenv.lib.platforms; linux;
+  };
+}
diff --git a/pkgs/servers/mail/opensmtpd/default.nix b/pkgs/servers/mail/opensmtpd/default.nix
new file mode 100644
index 000000000000..fc518e4f889d
--- /dev/null
+++ b/pkgs/servers/mail/opensmtpd/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchurl, libevent, zlib, openssl, db4, bison, pam }:
+
+stdenv.mkDerivation rec {
+  name = "opensmtpd-${version}";
+  version = "201307151923p1";
+
+  buildInputs = [ libevent zlib openssl db4 bison pam ];
+
+  src = fetchurl {
+    url = "http://www.opensmtpd.org/archives/${name}.tar.gz";
+    sha256 = "0cggq60zzz5mgj093pmgwjp4bm6znnhyv6ibp1vhkba7cxjavr4g";
+  };  
+
+  configureFlags = [ 
+    "--with-mantype=doc"
+    "--with-pam"
+    "--without-bsd-auth"
+    "--with-sock-dir=/run"
+    "--with-privsep-user=smtpd"
+    "--with-queue-user=smtpq"
+  ];  
+
+  meta = {
+    homepage = "http://www.postfix.org/";
+    description = ''
+      A free implementation of the server-side SMTP protocol as defined by
+      RFC 5321, with some additional standard extensions.
+    '';
+    license = stdenv.lib.licenses.isc;
+    platforms = stdenv.lib.platforms.linux;
+    maintainers = [ stdenv.lib.maintainers.rickynils ];
+  };
+}