93ff42ae9c
I also added a patch that makes dovecot search for plugins in /var/lib/dovecot/modules. This way, you can add plugins from several packages without running into circular dependencies. The module dir needs to be populated before the dovecot service is started, for example. This is currently not done in NixOS, so you need to implement your own service in order to get the plugins working. The module patch has not been added to the old 2.1.x package.
114 lines
4.9 KiB
Diff
114 lines
4.9 KiB
Diff
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): ",
|
|
|