From: Timo Sirainen Date: Fri, 9 Oct 2009 01:22:12 +0000 (-0400) Subject: plugins: Added dependencies. X-Git-Tag: 2.0.alpha1~42 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=23fdad6c7e2581921f511e24cd9371c9eaebcef9;p=thirdparty%2Fdovecot%2Fcore.git plugins: Added dependencies. The dependencies can only be checked if the dlopen() can successfully open the module, so use (apparently) non-portable ltlibrary linking to force the libraries we depend on to load with us. --HG-- branch : HEAD --- diff --git a/src/plugins/fts-solr/Makefile.am b/src/plugins/fts-solr/Makefile.am index cc3d631903..f09a6663be 100644 --- a/src/plugins/fts-solr/Makefile.am +++ b/src/plugins/fts-solr/Makefile.am @@ -12,6 +12,7 @@ module_LTLIBRARIES = \ lib21_fts_solr_plugin.la lib21_fts_solr_plugin_la_LIBADD = \ + ../fts/lib20_fts_plugin.la \ $(CURL_LIBS) -lexpat lib21_fts_solr_plugin_la_SOURCES = \ diff --git a/src/plugins/fts-solr/fts-solr-plugin.c b/src/plugins/fts-solr/fts-solr-plugin.c index cab40debef..bbff7cf1f6 100644 --- a/src/plugins/fts-solr/fts-solr-plugin.c +++ b/src/plugins/fts-solr/fts-solr-plugin.c @@ -83,3 +83,5 @@ void fts_solr_plugin_deinit(void) fts_backend_unregister(fts_backend_solr.name); hook_mail_user_created = fts_solr_next_hook_mail_user_created; } + +const char *fts_solr_plugin_dependencies[] = { "fts", NULL }; diff --git a/src/plugins/fts-solr/fts-solr-plugin.h b/src/plugins/fts-solr/fts-solr-plugin.h index a47d78d5ed..2069d131ff 100644 --- a/src/plugins/fts-solr/fts-solr-plugin.h +++ b/src/plugins/fts-solr/fts-solr-plugin.h @@ -18,6 +18,7 @@ struct fts_solr_user { struct fts_solr_settings set; }; +extern const char *fts_solr_plugin_dependencies[]; extern struct fts_backend fts_backend_solr; extern MODULE_CONTEXT_DEFINE(fts_solr_user_module, &mail_user_module_register); diff --git a/src/plugins/fts-squat/Makefile.am b/src/plugins/fts-squat/Makefile.am index 8d5f6c04d7..a20bc93116 100644 --- a/src/plugins/fts-squat/Makefile.am +++ b/src/plugins/fts-squat/Makefile.am @@ -10,6 +10,9 @@ lib21_fts_squat_plugin_la_LDFLAGS = -module -avoid-version module_LTLIBRARIES = \ lib21_fts_squat_plugin.la +lib21_fts_squat_plugin_la_LIBADD = \ + ../fts/lib20_fts_plugin.la + lib21_fts_squat_plugin_la_SOURCES = \ fts-squat-plugin.c \ fts-backend-squat.c \ diff --git a/src/plugins/fts-squat/fts-squat-plugin.c b/src/plugins/fts-squat/fts-squat-plugin.c index ee93ce84aa..2b88600768 100644 --- a/src/plugins/fts-squat/fts-squat-plugin.c +++ b/src/plugins/fts-squat/fts-squat-plugin.c @@ -14,3 +14,5 @@ void fts_squat_plugin_deinit(void) { fts_backend_unregister(fts_backend_squat.name); } + +const char *fts_squat_plugin_dependencies[] = { "fts", NULL }; diff --git a/src/plugins/fts-squat/fts-squat-plugin.h b/src/plugins/fts-squat/fts-squat-plugin.h index a0f7bd0dac..b37951189e 100644 --- a/src/plugins/fts-squat/fts-squat-plugin.h +++ b/src/plugins/fts-squat/fts-squat-plugin.h @@ -3,6 +3,7 @@ #include "fts-api-private.h" +extern const char *fts_squat_plugin_dependencies[]; extern struct fts_backend fts_backend_squat; void fts_squat_plugin_init(void); diff --git a/src/plugins/imap-acl/Makefile.am b/src/plugins/imap-acl/Makefile.am index 07071d443d..82dade93ee 100644 --- a/src/plugins/imap-acl/Makefile.am +++ b/src/plugins/imap-acl/Makefile.am @@ -14,6 +14,9 @@ lib02_imap_acl_plugin_la_LDFLAGS = -module -avoid-version imap_module_LTLIBRARIES = \ lib02_imap_acl_plugin.la +lib02_imap_acl_plugin_la_LIBADD = \ + ../acl/lib01_acl_plugin.la + lib02_imap_acl_plugin_la_SOURCES = \ imap-acl-plugin.c diff --git a/src/plugins/imap-acl/imap-acl-plugin.c b/src/plugins/imap-acl/imap-acl-plugin.c index 8a26f9db85..aaefb1aacc 100644 --- a/src/plugins/imap-acl/imap-acl-plugin.c +++ b/src/plugins/imap-acl/imap-acl-plugin.c @@ -643,3 +643,5 @@ void imap_acl_plugin_deinit(void) hook_client_created = next_hook_client_created; } + +const char *imap_acl_plugin_dependencies[] = { "acl", NULL }; diff --git a/src/plugins/imap-acl/imap-acl-plugin.h b/src/plugins/imap-acl/imap-acl-plugin.h index 866db5f392..71ce66b028 100644 --- a/src/plugins/imap-acl/imap-acl-plugin.h +++ b/src/plugins/imap-acl/imap-acl-plugin.h @@ -1,6 +1,8 @@ #ifndef IMAP_ACL_PLUGIN_H #define IMAP_ACL_PLUGIN_H +extern const char *imap_acl_plugin_dependencies[]; + void imap_acl_plugin_init(void); void imap_acl_plugin_deinit(void); diff --git a/src/plugins/imap-quota/Makefile.am b/src/plugins/imap-quota/Makefile.am index c9302bfa75..2a81ec2677 100644 --- a/src/plugins/imap-quota/Makefile.am +++ b/src/plugins/imap-quota/Makefile.am @@ -13,6 +13,9 @@ lib11_imap_quota_plugin_la_LDFLAGS = -module -avoid-version imap_module_LTLIBRARIES = \ lib11_imap_quota_plugin.la +lib11_imap_quota_plugin_la_LIBADD = \ + ../quota/lib10_quota_plugin.la + lib11_imap_quota_plugin_la_SOURCES = \ imap-quota-plugin.c diff --git a/src/plugins/imap-quota/imap-quota-plugin.c b/src/plugins/imap-quota/imap-quota-plugin.c index 51a3bcc40e..86ecd7330a 100644 --- a/src/plugins/imap-quota/imap-quota-plugin.c +++ b/src/plugins/imap-quota/imap-quota-plugin.c @@ -223,3 +223,5 @@ void imap_quota_plugin_deinit(void) hook_client_created = next_hook_client_created; } + +const char *imap_quota_plugin_dependencies[] = { "quota", NULL }; diff --git a/src/plugins/imap-quota/imap-quota-plugin.h b/src/plugins/imap-quota/imap-quota-plugin.h index 990974c148..057e4f6ace 100644 --- a/src/plugins/imap-quota/imap-quota-plugin.h +++ b/src/plugins/imap-quota/imap-quota-plugin.h @@ -1,6 +1,8 @@ #ifndef IMAP_QUOTA_PLUGIN_H #define IMAP_QUOTA_PLUGIN_H +extern const char *imap_quota_plugin_dependencies[]; + void imap_quota_plugin_init(void); void imap_quota_plugin_deinit(void); diff --git a/src/plugins/mail-log/Makefile.am b/src/plugins/mail-log/Makefile.am index 8ea32ccfd1..c0a0706f0b 100644 --- a/src/plugins/mail-log/Makefile.am +++ b/src/plugins/mail-log/Makefile.am @@ -13,6 +13,9 @@ lib20_mail_log_plugin_la_LDFLAGS = -module -avoid-version module_LTLIBRARIES = \ lib20_mail_log_plugin.la +lib20_mail_log_plugin_la_LIBADD = \ + ../notify/lib15_notify_plugin.la + lib20_mail_log_plugin_la_SOURCES = \ mail-log-plugin.c diff --git a/src/plugins/mail-log/mail-log-plugin.c b/src/plugins/mail-log/mail-log-plugin.c index 4483a6cf44..be5652ffaa 100644 --- a/src/plugins/mail-log/mail-log-plugin.c +++ b/src/plugins/mail-log/mail-log-plugin.c @@ -430,3 +430,5 @@ void mail_log_plugin_deinit(void) { notify_unregister(mail_log_ctx); } + +const char *mail_log_plugin_dependencies[] = { "notify", NULL }; diff --git a/src/plugins/mail-log/mail-log-plugin.h b/src/plugins/mail-log/mail-log-plugin.h index 105cdf4807..face3ca39d 100644 --- a/src/plugins/mail-log/mail-log-plugin.h +++ b/src/plugins/mail-log/mail-log-plugin.h @@ -1,6 +1,8 @@ #ifndef MAIL_LOG_PLUGIN_H #define MAIL_LOG_PLUGIN_H +extern const char *mail_log_plugin_dependencies[]; + void mail_log_plugin_init(void); void mail_log_plugin_deinit(void); diff --git a/src/plugins/trash/Makefile.am b/src/plugins/trash/Makefile.am index 8b18ab71ef..cf719a0e53 100644 --- a/src/plugins/trash/Makefile.am +++ b/src/plugins/trash/Makefile.am @@ -10,6 +10,9 @@ lib11_trash_plugin_la_LDFLAGS = -module -avoid-version module_LTLIBRARIES = \ lib11_trash_plugin.la +lib11_trash_plugin_la_LIBADD = \ + ../quota/lib10_quota_plugin.la + lib11_trash_plugin_la_SOURCES = \ trash-plugin.c diff --git a/src/plugins/trash/trash-plugin.c b/src/plugins/trash/trash-plugin.c index 1cd3d3f952..f39330df55 100644 --- a/src/plugins/trash/trash-plugin.c +++ b/src/plugins/trash/trash-plugin.c @@ -333,3 +333,5 @@ void trash_plugin_deinit(void) { hook_mail_namespaces_created = trash_hook_mail_namespaces_created; } + +const char *trash_plugin_dependencies[] = { "quota", NULL }; diff --git a/src/plugins/trash/trash-plugin.h b/src/plugins/trash/trash-plugin.h index 880e4036c0..6d9873f3fb 100644 --- a/src/plugins/trash/trash-plugin.h +++ b/src/plugins/trash/trash-plugin.h @@ -1,6 +1,8 @@ #ifndef TRASH_PLUGIN_H #define TRASH_PLUGIN_H +extern const char *trash_plugin_dependencies[]; + void trash_plugin_init(void); void trash_plugin_deinit(void);