From 4b9d7fc69899fdc4930b337c40f9cbd81c243881 Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Tue, 8 Dec 2015 12:55:40 +0200 Subject: [PATCH 01/18] lib-storage: Code cleanup - moved BODY/TEXT "" optimization to mail_search_args_simplify() --- src/lib-storage/mail-search-args-simplify.c | 11 +++++++++-- src/lib-storage/mail-search-register-imap.c | 6 ------ src/lib-storage/test-mail-search-args-simplify.c | 10 ++++++++++ 3 files changed, 19 insertions(+), 8 deletions(-) diff --git a/src/lib-storage/mail-search-args-simplify.c b/src/lib-storage/mail-search-args-simplify.c index 3d72f75859..da906ec762 100644 --- a/src/lib-storage/mail-search-args-simplify.c +++ b/src/lib-storage/mail-search-args-simplify.c @@ -540,11 +540,18 @@ mail_search_args_simplify_sub(struct mailbox *box, pool_t pool, case SEARCH_LARGER: merged = mail_search_args_merge_size(&ctx, args); break; + case SEARCH_BODY: + case SEARCH_TEXT: + if (args->value.str[0] == '\0') { + /* BODY "" and TEXT "" matches everything */ + args->type = SEARCH_ALL; + ctx.removals = TRUE; + break; + } + /* fall through */ case SEARCH_HEADER: case SEARCH_HEADER_ADDRESS: case SEARCH_HEADER_COMPRESS_LWSP: - case SEARCH_BODY: - case SEARCH_TEXT: merged = mail_search_args_merge_text(&ctx, args); break; default: diff --git a/src/lib-storage/mail-search-register-imap.c b/src/lib-storage/mail-search-register-imap.c index deeac84126..eca18fcfbf 100644 --- a/src/lib-storage/mail-search-register-imap.c +++ b/src/lib-storage/mail-search-register-imap.c @@ -277,12 +277,6 @@ arg_new_body(struct mail_search_build_context *ctx, if (mail_search_build_get_utf8(ctx, sarg->value.str, &sarg->value.str) < 0) return NULL; - - if (sarg->value.str[0] == '\0') { - /* optimization: BODY "" matches everything - (but do this only after checking charset and key are ok) */ - return mail_search_build_new(ctx, SEARCH_ALL); - } return sarg; } diff --git a/src/lib-storage/test-mail-search-args-simplify.c b/src/lib-storage/test-mail-search-args-simplify.c index a2592a7821..c72dc9bbe7 100644 --- a/src/lib-storage/test-mail-search-args-simplify.c +++ b/src/lib-storage/test-mail-search-args-simplify.c @@ -97,6 +97,16 @@ struct { { "TEXT foo BODY foo", "TEXT foo BODY foo" }, { "OR ( TEXT foo OR TEXT foo TEXT foo ) ( TEXT foo ( TEXT foo ) )", "TEXT foo" }, + /* value="" tests */ + { "HEADER foo ", "HEADER FOO \"\"" }, + { "SUBJECT ", "SUBJECT \"\"" }, + { "BODY ", "ALL" }, + { "TEXT ", "ALL" }, + { "HEADER foo .", "HEADER FOO ." }, + { "SUBJECT .", "SUBJECT ." }, + { "BODY .", "BODY ." }, + { "TEXT .", "TEXT ." }, + /* OR: drop redundant args */ { "OR ( TEXT common1 TEXT unique1 ) TEXT common1", "TEXT common1" }, { "OR ( TEXT unique1 TEXT common1 ) TEXT common1", "TEXT common1" }, From f14696cabeb468191851e1c0b0022b07551e598b Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Tue, 8 Dec 2015 13:13:10 +0200 Subject: [PATCH 02/18] lib-storage: Fix to a776ee107aa2 - merged-flag wasn't reset between all args. --- src/lib-storage/mail-search-args-simplify.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib-storage/mail-search-args-simplify.c b/src/lib-storage/mail-search-args-simplify.c index da906ec762..0e04436446 100644 --- a/src/lib-storage/mail-search-args-simplify.c +++ b/src/lib-storage/mail-search-args-simplify.c @@ -523,6 +523,7 @@ mail_search_args_simplify_sub(struct mailbox *box, pool_t pool, } /* try to merge arguments */ + merged = FALSE; switch (args->type) { case SEARCH_FLAGS: merged = mail_search_args_merge_flags(&ctx, args); @@ -555,7 +556,6 @@ mail_search_args_simplify_sub(struct mailbox *box, pool_t pool, merged = mail_search_args_merge_text(&ctx, args); break; default: - merged = FALSE; break; } if (merged) { From b6cf97df5231cc0def535c34af957803f8077aad Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Tue, 8 Dec 2015 13:13:24 +0200 Subject: [PATCH 03/18] lib-storage: mail_search_args_simplify() code cleanup - allow merging first arg --- src/lib-storage/mail-search-args-simplify.c | 23 ++++++++++----------- 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/src/lib-storage/mail-search-args-simplify.c b/src/lib-storage/mail-search-args-simplify.c index 0e04436446..cfd9df5b7c 100644 --- a/src/lib-storage/mail-search-args-simplify.c +++ b/src/lib-storage/mail-search-args-simplify.c @@ -461,10 +461,10 @@ mail_search_args_simplify_extract_common(struct mail_search_arg **argsp, static bool mail_search_args_simplify_sub(struct mailbox *box, pool_t pool, - struct mail_search_arg *args, bool parent_and) + struct mail_search_arg **argsp, bool parent_and) { struct mail_search_simplify_ctx ctx; - struct mail_search_arg *sub, *prev_arg = NULL; + struct mail_search_arg *sub; bool merged; memset(&ctx, 0, sizeof(ctx)); @@ -474,7 +474,9 @@ mail_search_args_simplify_sub(struct mailbox *box, pool_t pool, mail_search_simplify_prev_arg_hash, mail_search_simplify_prev_arg_cmp); - while (args != NULL) { + while (*argsp != NULL) { + struct mail_search_arg *args = *argsp; + if (args->match_not && (args->type == SEARCH_SUB || args->type == SEARCH_OR)) { /* neg(p and q and ..) == neg(p) or neg(q) or .. @@ -517,7 +519,7 @@ mail_search_args_simplify_sub(struct mailbox *box, pool_t pool, if (mail_search_args_simplify_extract_common(&args->value.subargs, pool, and_arg)) ctx.removals = TRUE; } - if (mail_search_args_simplify_sub(box, pool, args->value.subargs, + if (mail_search_args_simplify_sub(box, pool, &args->value.subargs, args->type != SEARCH_OR)) ctx.removals = TRUE; } @@ -559,15 +561,12 @@ mail_search_args_simplify_sub(struct mailbox *box, pool_t pool, break; } if (merged) { - i_assert(prev_arg != NULL); - prev_arg->next = args->next; - args = args->next; + *argsp = args->next; ctx.removals = TRUE; continue; } - prev_arg = args; - args = args->next; + argsp = &args->next; } hash_table_destroy(&ctx.prev_args); pool_unref(&ctx.pool); @@ -646,11 +645,11 @@ void mail_search_args_simplify(struct mail_search_args *args) args->simplified = TRUE; - removals = mail_search_args_simplify_sub(args->box, args->pool, args->args, TRUE); + removals = mail_search_args_simplify_sub(args->box, args->pool, &args->args, TRUE); if (mail_search_args_unnest_inthreads(args, &args->args, FALSE, TRUE)) { /* we may have added some extra SUBs that could be dropped */ - if (mail_search_args_simplify_sub(args->box, args->pool, args->args, TRUE)) + if (mail_search_args_simplify_sub(args->box, args->pool, &args->args, TRUE)) removals = TRUE; } for (;;) { @@ -660,6 +659,6 @@ void mail_search_args_simplify(struct mail_search_args *args) removals = TRUE; if (!removals) break; - removals = mail_search_args_simplify_sub(args->box, args->pool, args->args, TRUE); + removals = mail_search_args_simplify_sub(args->box, args->pool, &args->args, TRUE); } } From dfeae309e396ff899da87e3bde6bea35cb0cdbf8 Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Tue, 8 Dec 2015 13:23:19 +0200 Subject: [PATCH 04/18] lib-storage: mail_search_args_simplify() handles now ALL better. --- src/lib-storage/mail-search-args-simplify.c | 23 ++++++++++++++++++- .../test-mail-search-args-simplify.c | 10 ++++++++ 2 files changed, 32 insertions(+), 1 deletion(-) diff --git a/src/lib-storage/mail-search-args-simplify.c b/src/lib-storage/mail-search-args-simplify.c index cfd9df5b7c..8413ff188a 100644 --- a/src/lib-storage/mail-search-args-simplify.c +++ b/src/lib-storage/mail-search-args-simplify.c @@ -464,7 +464,7 @@ mail_search_args_simplify_sub(struct mailbox *box, pool_t pool, struct mail_search_arg **argsp, bool parent_and) { struct mail_search_simplify_ctx ctx; - struct mail_search_arg *sub; + struct mail_search_arg *sub, **all_argsp = argsp; bool merged; memset(&ctx, 0, sizeof(ctx)); @@ -527,6 +527,27 @@ mail_search_args_simplify_sub(struct mailbox *box, pool_t pool, /* try to merge arguments */ merged = FALSE; switch (args->type) { + case SEARCH_ALL: { + if (*all_argsp == args && args->next == NULL) { + /* this arg has no siblings - no merging */ + break; + } + if ((parent_and && !args->match_not) || + (!parent_and && args->match_not)) { + /* .. AND ALL .. + .. OR NOT ALL .. + This arg is irrelevant -> drop */ + merged = TRUE; + break; + } + /* .. AND NOT ALL .. + .. OR ALL .. + The other args are irrelevant -> drop them */ + *all_argsp = args; + args->next = NULL; + ctx.removals = TRUE; + break; + } case SEARCH_FLAGS: merged = mail_search_args_merge_flags(&ctx, args); break; diff --git a/src/lib-storage/test-mail-search-args-simplify.c b/src/lib-storage/test-mail-search-args-simplify.c index c72dc9bbe7..9ba5ca719c 100644 --- a/src/lib-storage/test-mail-search-args-simplify.c +++ b/src/lib-storage/test-mail-search-args-simplify.c @@ -11,6 +11,16 @@ struct { const char *input; const char *output; } tests[] = { + { "ALL", "ALL" }, + { "NOT ALL", "NOT ALL" }, + { "ALL NOT ALL", "NOT ALL" }, + { "ALL NOT ALL TEXT foo", "NOT ALL" }, + { "OR ALL NOT ALL", "ALL" }, + { "OR ALL OR NOT ALL TEXT foo", "ALL" }, + { "OR ALL OR TEXT foo TEXT bar", "ALL" }, + { "OR TEXT FOO ( ALL NOT ALL )", "TEXT FOO" }, + { "TEXT FOO OR ALL NOT ALL", "TEXT FOO" }, + { "TEXT foo", "TEXT foo" }, { "( TEXT foo )", "TEXT foo" }, { "( ( TEXT foo ) )", "TEXT foo" }, From 6d4758b1aa2b9d184cfd9b76bb2d661c26ae0d9b Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Tue, 8 Dec 2015 13:28:01 +0200 Subject: [PATCH 05/18] fts: Fixed searching for HEADER "" with lib-fts --- src/plugins/fts/fts-search-args.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/plugins/fts/fts-search-args.c b/src/plugins/fts/fts-search-args.c index ef817292dd..17bb214ad7 100644 --- a/src/plugins/fts/fts-search-args.c +++ b/src/plugins/fts/fts-search-args.c @@ -192,6 +192,11 @@ fts_search_args_expand_tree(struct fts_backend *backend, pool_t pool, case SEARCH_HEADER: case SEARCH_HEADER_ADDRESS: case SEARCH_HEADER_COMPRESS_LWSP: + if ((*argp)->value.str[0] == '\0') { + /* we're testing for the existence of + the header */ + break; + } case SEARCH_BODY: case SEARCH_TEXT: T_BEGIN { From 983e2bc911abe97cd9fded72beb0c6b91d2bff28 Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Tue, 8 Dec 2015 15:47:28 +0200 Subject: [PATCH 06/18] fts: When indexing header names with lib-fts, add them using "data" language. --- src/plugins/fts/fts-build-mail.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/plugins/fts/fts-build-mail.c b/src/plugins/fts/fts-build-mail.c index 00f43c6680..97e08039ea 100644 --- a/src/plugins/fts/fts-build-mail.c +++ b/src/plugins/fts/fts-build-mail.c @@ -213,13 +213,18 @@ static int fts_build_mail_header(struct fts_mail_build_context *ctx, if ((ctx->update_ctx->backend->flags & FTS_BACKEND_FLAG_TOKENIZED_INPUT) != 0) { - /* index the header name itself */ + /* index the header name itself using data-language. */ + struct fts_user_language *prev_lang = ctx->cur_user_lang; + + fts_mail_build_ctx_set_lang(ctx, + fts_user_get_data_lang(ctx->update_ctx->backend->ns->user)); key.hdr_name = ""; if (fts_backend_update_set_build_key(ctx->update_ctx, &key)) { if (fts_build_data(ctx, (const void *)hdr->name, strlen(hdr->name), TRUE) < 0) ret = -1; } + fts_mail_build_ctx_set_lang(ctx, prev_lang); } return ret; } From cfce7cc47258f4b9b3095280a059d5eb7e440a1a Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Wed, 9 Dec 2015 13:02:19 +0200 Subject: [PATCH 07/18] doveadm director update: Tag can't be changed - don't allow -t parameter --- src/doveadm/doveadm-director.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/doveadm/doveadm-director.c b/src/doveadm/doveadm-director.c index 22fbde19cd..b7fa14ae98 100644 --- a/src/doveadm/doveadm-director.c +++ b/src/doveadm/doveadm-director.c @@ -408,15 +408,16 @@ static void cmd_director_map(int argc, char *argv[]) static void cmd_director_add_or_update(int argc, char *argv[], doveadm_command_t *cmd_func, - const char *director_cmd) + bool update) { + const char *director_cmd = update ? "HOST-UPDATE" : "HOST-SET"; struct director_context *ctx; struct ip_addr *ips; unsigned int i, ips_count, vhost_count = UINT_MAX; const char *host, *line; string_t *cmd; - ctx = cmd_director_init(argc, argv, "a:t:", cmd_func); + ctx = cmd_director_init(argc, argv, update ? "a:" : "a:t:", cmd_func); if (ctx->tag != NULL && ctx->tag[0] == '\0') ctx->tag = NULL; host = argv[optind++]; @@ -465,12 +466,12 @@ cmd_director_add_or_update(int argc, char *argv[], doveadm_command_t *cmd_func, static void cmd_director_add(int argc, char *argv[]) { - cmd_director_add_or_update(argc, argv, cmd_director_add, "HOST-SET"); + cmd_director_add_or_update(argc, argv, cmd_director_add, FALSE); } static void cmd_director_update(int argc, char *argv[]) { - cmd_director_add_or_update(argc, argv, cmd_director_update, "HOST-UPDATE"); + cmd_director_add_or_update(argc, argv, cmd_director_update, TRUE); } static void @@ -824,7 +825,7 @@ struct doveadm_cmd doveadm_cmd_director[] = { { cmd_director_add, "director add", "[-a ] [-t ] []" }, { cmd_director_update, "director update", - "[-a ] [-t ] " }, + "[-a ] " }, { cmd_director_up, "director up", "[-a ] " }, { cmd_director_down, "director down", From 02b51cddfb244fbe3972b12fb3e05183e38879d8 Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Wed, 9 Dec 2015 13:51:35 +0200 Subject: [PATCH 08/18] lib-storage: Fixed mail_search_args_simplify() with empty args. This fixes assert-crash in doveadm mailbox list. --- src/lib-storage/mail-search-args-simplify.c | 5 ++++- src/lib-storage/test-mail-search-args-simplify.c | 14 ++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/src/lib-storage/mail-search-args-simplify.c b/src/lib-storage/mail-search-args-simplify.c index 8413ff188a..5dfc1605c5 100644 --- a/src/lib-storage/mail-search-args-simplify.c +++ b/src/lib-storage/mail-search-args-simplify.c @@ -344,6 +344,9 @@ mail_search_args_simplify_drop_redundent_args(struct mail_search_arg **argsp, unsigned int count, lowest_count = UINT_MAX; bool ret = FALSE; + if (*argsp == NULL) + return FALSE; + child_subargs_type = and_arg ? SEARCH_OR : SEARCH_SUB; /* find the arg which has the lowest number of child args */ @@ -399,7 +402,7 @@ mail_search_args_simplify_extract_common(struct mail_search_arg **argsp, struct mail_search_arg *new_arg, *child_arg, *common_args = NULL; enum mail_search_arg_type child_subargs_type; - if ((*argsp)->next == NULL) { + if (*argsp == NULL || (*argsp)->next == NULL) { /* single arg, nothing to extract */ return FALSE; } diff --git a/src/lib-storage/test-mail-search-args-simplify.c b/src/lib-storage/test-mail-search-args-simplify.c index 9ba5ca719c..80686e5985 100644 --- a/src/lib-storage/test-mail-search-args-simplify.c +++ b/src/lib-storage/test-mail-search-args-simplify.c @@ -202,10 +202,24 @@ static void test_mail_search_args_simplify(void) test_end(); } +static void test_mail_search_args_simplify_empty_lists(void) +{ + struct mail_search_args *args; + + test_begin("mail search args simplify empty args"); + + args = mail_search_build_init(); + mail_search_args_simplify(args); + mail_search_args_unref(&args); + + test_end(); +} + int main(void) { static void (*test_functions[])(void) = { test_mail_search_args_simplify, + test_mail_search_args_simplify_empty_lists, NULL }; From d9e60ea0a11ca739e1fa8ef526aababe13371570 Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Wed, 9 Dec 2015 15:31:37 +0200 Subject: [PATCH 09/18] virtual: Fixed assert-crash when opening virtual mailbox triggered backend mailbox autocreation. Fixes assert: Panic: file virtual-storage.c: line 335 (virtual_mailbox_opened_hook): assertion failed: (!bbox->open_tracked) --- src/plugins/virtual/virtual-plugin.c | 3 ++- src/plugins/virtual/virtual-storage.c | 36 ++++++++++++++++++++++++++- src/plugins/virtual/virtual-storage.h | 3 ++- 3 files changed, 39 insertions(+), 3 deletions(-) diff --git a/src/plugins/virtual/virtual-plugin.c b/src/plugins/virtual/virtual-plugin.c index 946328ab45..027b6a612c 100644 --- a/src/plugins/virtual/virtual-plugin.c +++ b/src/plugins/virtual/virtual-plugin.c @@ -8,7 +8,8 @@ const char *virtual_plugin_version = DOVECOT_ABI_VERSION; static struct mail_storage_hooks acl_mail_storage_hooks = { - .mailbox_opened = virtual_mailbox_opened_hook + .mailbox_allocated = virtual_backend_mailbox_allocated, + .mailbox_opened = virtual_backend_mailbox_opened }; void virtual_plugin_init(struct module *module ATTR_UNUSED) diff --git a/src/plugins/virtual/virtual-storage.c b/src/plugins/virtual/virtual-storage.c index 5b7f74474c..58abbf68ef 100644 --- a/src/plugins/virtual/virtual-storage.c +++ b/src/plugins/virtual/virtual-storage.c @@ -22,12 +22,21 @@ #define VIRTUAL_DEFAULT_MAX_OPEN_MAILBOXES 64 +#define VIRTUAL_BACKEND_CONTEXT(obj) \ + MODULE_CONTEXT(obj, virtual_backend_storage_module) + +struct virtual_backend_mailbox { + union mailbox_module_context module_ctx; +}; + extern struct mail_storage virtual_storage; extern struct mailbox virtual_mailbox; extern struct virtual_mailbox_vfuncs virtual_mailbox_vfuncs; struct virtual_storage_module virtual_storage_module = MODULE_CONTEXT_INIT(&mail_storage_module_register); +static MODULE_CONTEXT_DEFINE_INIT(virtual_backend_storage_module, + &mail_storage_module_register); static bool ns_is_visible(struct mail_namespace *ns) { @@ -323,7 +332,32 @@ virtual_backend_box_close_any_except(struct virtual_mailbox *mbox, return FALSE; } -void virtual_mailbox_opened_hook(struct mailbox *box) +static void virtual_backend_mailbox_close(struct mailbox *box) +{ + struct virtual_backend_box *bbox = VIRTUAL_CONTEXT(box); + struct virtual_backend_mailbox *vbox = VIRTUAL_BACKEND_CONTEXT(box); + + if (bbox != NULL && bbox->open_tracked) { + /* we could have gotten here from e.g. mailbox_autocreate() + without going through virtual_mailbox_close() */ + virtual_backend_box_close(bbox->virtual_mbox, bbox); + } + vbox->module_ctx.super.close(box); +} + +void virtual_backend_mailbox_allocated(struct mailbox *box) +{ + struct mailbox_vfuncs *v = box->vlast; + struct virtual_backend_mailbox *vbox; + + vbox = p_new(box->pool, struct virtual_backend_mailbox, 1); + vbox->module_ctx.super = *v; + box->vlast = &vbox->module_ctx.super; + v->close = virtual_backend_mailbox_close; + MODULE_CONTEXT_SET(box, virtual_backend_storage_module, vbox); +} + +void virtual_backend_mailbox_opened(struct mailbox *box) { struct virtual_backend_box *bbox = VIRTUAL_CONTEXT(box); struct virtual_mailbox *mbox; diff --git a/src/plugins/virtual/virtual-storage.h b/src/plugins/virtual/virtual-storage.h index dfa16fc859..520dfea12b 100644 --- a/src/plugins/virtual/virtual-storage.h +++ b/src/plugins/virtual/virtual-storage.h @@ -225,6 +225,7 @@ void virtual_save_free(struct mail_save_context *ctx); void virtual_box_copy_error(struct mailbox *dest, struct mailbox *src); -void virtual_mailbox_opened_hook(struct mailbox *box); +void virtual_backend_mailbox_allocated(struct mailbox *box); +void virtual_backend_mailbox_opened(struct mailbox *box); #endif From 827b07103c69885bce057a2ad55afaa82900573f Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Wed, 9 Dec 2015 17:36:49 +0200 Subject: [PATCH 10/18] acl: Empty lines and comments in dovecot-acl files weren't handled correctly. --- src/plugins/acl/acl-api.c | 3 --- src/plugins/acl/acl-backend-vfile.c | 6 ++++-- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/src/plugins/acl/acl-api.c b/src/plugins/acl/acl-api.c index 280ca28805..0122421944 100644 --- a/src/plugins/acl/acl-api.c +++ b/src/plugins/acl/acl-api.c @@ -388,9 +388,6 @@ int acl_rights_parse_line(const char *line, pool_t pool, { const char *id_str, *const *right_names, *error = NULL; - if (*line == '\0' || *line == '#') - return 0; - /* [] [:] */ if (*line == '"') { line++; diff --git a/src/plugins/acl/acl-backend-vfile.c b/src/plugins/acl/acl-backend-vfile.c index b8c4e128e1..5aae34f3db 100644 --- a/src/plugins/acl/acl-backend-vfile.c +++ b/src/plugins/acl/acl-backend-vfile.c @@ -366,8 +366,11 @@ acl_backend_vfile_read(struct acl_object *aclobj, bool global, const char *path, input = i_stream_create_fd(fd, (size_t)-1, FALSE); i_stream_set_return_partial_line(input, TRUE); - linenum = 1; + linenum = 0; while ((line = i_stream_read_next_line(input)) != NULL) { + linenum++; + if (line[0] == '\0' || line[0] == '#') + continue; T_BEGIN { ret = acl_rights_parse_line(line, aclobj->rights_pool, &rights, &error); @@ -381,7 +384,6 @@ acl_backend_vfile_read(struct acl_object *aclobj, bool global, const char *path, } T_END; if (ret < 0) break; - linenum++; } if (ret < 0) { From d0044d145abfe45b265f8a532d1c56fe72c163fe Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Wed, 9 Dec 2015 18:38:00 +0200 Subject: [PATCH 11/18] Makefile, update-version.sh: Switched from hg to git. --- Makefile.am | 4 ++-- update-version.sh | 17 +++++++---------- 2 files changed, 9 insertions(+), 12 deletions(-) diff --git a/Makefile.am b/Makefile.am index e50e49e7af..c83365fb9f 100644 --- a/Makefile.am +++ b/Makefile.am @@ -22,8 +22,8 @@ noinst_DATA = dovecot-config nodist_pkginclude_HEADERS = config.h if MAINTAINER_MODE -ChangeLog: .hg/dirstate - hg log -r tip:fef8259e7277 --style=changelog > ChangeLog +ChangeLog: .git/ORIG_HEAD + git log 2.2.alpha1..HEAD > ChangeLog endif aclocal_DATA = dovecot.m4 diff --git a/update-version.sh b/update-version.sh index 5e2b264c00..5a3db800e8 100644 --- a/update-version.sh +++ b/update-version.sh @@ -21,9 +21,9 @@ abspath() abspath "${SRCDIR}" 1 abspath "${BUILDDIR}" 2 -# when using a different BUILDDIR just copy from SRCDIR, if there is no .hg +# when using a different BUILDDIR just copy from SRCDIR, if there is no .git if [ "${BUILDDIR}" != "${SRCDIR}" ]; then - if [ ! -d "${SRCDIR}/.hg" ] && [ -f "${SRCDIR}/${VERSION_H}" ]; then + if [ ! -d "${SRCDIR}/.git" ] && [ -f "${SRCDIR}/${VERSION_H}" ]; then cmp -s "${SRCDIR}/${VERSION_H}" "${BUILDDIR}/${VERSION_H}" if [ $? -ne 0 ]; then cp "${SRCDIR}/${VERSION_H}" "${BUILDDIR}/${VERSION_H}" @@ -32,22 +32,19 @@ if [ "${BUILDDIR}" != "${SRCDIR}" ]; then fi fi -# Don't generate dovecot-version.h if the source tree has no .hg dir but +# Don't generate dovecot-version.h if the source tree has no .git dir but # a dovecot-version.h. This may be the result of a release/nightly tarball. -[ ! -d "${SRCDIR}/.hg" ] && [ -f "${BUILDDIR}/${VERSION_H}" ] && exit 0 +[ ! -d "${SRCDIR}/.git" ] && [ -f "${BUILDDIR}/${VERSION_H}" ] && exit 0 # Lets generate the dovecot-version.h [ -f "${BUILDDIR}/${VERSION_HT}" ] && rm -f "${BUILDDIR}/${VERSION_HT}" -python "${SRCDIR}/is-tagged.py" "${SRCDIR}" -if [ $? = 1 ]; then - # older hg doesn't recognize option -i - #HGID=`hg -R ${SRCDIR} id -i 2>/dev/null` - HGID=`hg -R ${SRCDIR} id 2>/dev/null | awk '{print $1}'` +if true; then + GITID=`git rev-parse --short HEAD` cat > "${BUILDDIR}/${VERSION_HT}" < Date: Wed, 9 Dec 2015 19:40:10 +0200 Subject: [PATCH 12/18] Removed .hgsigs and .hgtags --- .hgsigs | 97 ---------------------------------------- .hgtags | 134 -------------------------------------------------------- 2 files changed, 231 deletions(-) delete mode 100644 .hgsigs delete mode 100644 .hgtags diff --git a/.hgsigs b/.hgsigs deleted file mode 100644 index 46a8131112..0000000000 --- a/.hgsigs +++ /dev/null @@ -1,97 +0,0 @@ -7dc28f9b899dd3f183b5bbf274e3b3323edc27af 0 iEYEABECAAYFAkrTsGAACgkQyUhSUUBVismysgCgm/ZT5VCDAAAsMkQqBk8ZCIVJbhwAn1sMw5k+UGmrupfWQmumC+Q/gxuz -6b75cb16d4278817350d3236628b6ef30ce08608 0 iEYEABECAAYFAkrhHe8ACgkQyUhSUUBVisml1gCfTGnN8XY0fnd2HRhQ53qfOdqKAS0AnjkLGrR4xVEYnIHRHNyWXjYAiY+k -d52d842e8f81c5c019b20d91781c8b99cef4bb18 0 iEYEABECAAYFAkr42D4ACgkQyUhSUUBVislmawCfVpc32i4tFW7ms7vBPhpHPRsjU/YAnRnm7cBK92MoaBnuRi3Rv4nP0yl7 -594a349067f6b03da4a32ef1f7e800d2eda72b3a 0 iEYEABECAAYFAkslq90ACgkQyUhSUUBVisndjwCeOWc4LCqUNbT1SLcUtPLv+BYwUeoAoKGOA7r4rAVeIodUZXmM/BslHFfH -357995a6c2701fe1f7663893bdadc53290f41546 0 iEYEABECAAYFAktlzCsACgkQyUhSUUBVisn3wACgoXX5AItYcA5cWz+eM9xvMzNr3Z0AoIeX+dqLXz9v+nR3yudzp6qG1lAU -81e79df3fed89d60360f67926d318bcd3e4ad3d1 0 iEYEABECAAYFAkuADikACgkQyUhSUUBVislvuwCfcHv23bNtLEOfUqK7foJnpUMMZD0An1Kmd1IYLBbzv975WfNe9cFY9zeV -38e98c234af526270122d4b8de9e9beb5442ec85 0 iEYEABECAAYFAkumsIgACgkQyUhSUUBVisliGACfTIY8+mtNNOIC3rc5E9dJNivnqZEAnj7vP8DyuPOBQkBGBBOmCeQN+dIh -6b15f36d40c93e5f55965b91983cbe0bdcf49f30 0 iEYEABECAAYFAkvnB8YACgkQyUhSUUBVisnSggCcD8HCX/ikxL3z4wgzrSlOW3Ea36IAnjOSxUrRfsdvqPFQA228mr81IQxf -0c23ff04394f4ab8a888e3658b352016079e2b4e 0 iEYEABECAAYFAkwSyP8ACgkQyUhSUUBVisnB1wCeM/VoiW4TskNNI61QLtm6uvc5GvkAn1aHhfXp/9wm0PjASSUycJnYmp5L -d4d6ebad3d337295c06537d5ffe2270672cb1312 0 iEYEABECAAYFAkwuRRYACgkQyUhSUUBVismQHgCgjee6P/AJuGaxoAU76dWhg7RCfWIAn19UbLi7ZrMgsG/tCYeImhHhERP0 -fd0497f5a49672c88c6aff775a9042ca9122a2a1 0 iEYEABECAAYFAkw3lYwACgkQyUhSUUBVislXCwCdHW09w+BljltFQ7lUYNm9AVf93SEAn3sctY0ImwfznoD5vMXO1ZJUpKC5 -a15b694f1d64a81eea7959fe34780e9e50356321 0 iEYEABECAAYFAkxGDMMACgkQyUhSUUBViskQUgCfQKbLIx86lOpNuRNE82D4H6aLhx4AoJ1f1CALKXTppHewftXLydxS7qg1 -71b2cb9895d92e2e3c80ecdd351055ab848a4ed6 0 iEYEABECAAYFAkxZwBUACgkQyUhSUUBViskB9ACgmIAgI3syzyHQU7NMwuqJywjCnUMAnA+AnvUgDc7ewsBJMog2F8OkQ0KB -4a2d840a80bbe85e2101e3a5fb19424c3050f923 0 iEYEABECAAYFAkxhYVUACgkQyUhSUUBVisllmwCdFEJ8CzPbbzKZSKJbmgPTQj4lgP0AoKZXDAxxrs+lWB1kp3ECTyX3gW5T -c5de2eb14a97e269cc3c6874fc6fdbafdac4edca 0 iEYEABECAAYFAkxljW0ACgkQyUhSUUBVislzOgCePgpbqsyJnDL2peSNvpS6ygVlTEEAn0B5PbmFdPTrelnSoneyG/CgmNVs -d0d3ba81d2052258b099b9f660866369a56d4a9c 0 iEYEABECAAYFAkxpTKEACgkQyUhSUUBVisnZHgCfW/F0r/rVwHaxm7DNeisa2FVprooAn2c17typ1b38O+sagsqwD1IbPYzf -8baa8ccb40216d626b9ca66309fca9437a76e6e2 0 iEYEABECAAYFAkxz/QQACgkQyUhSUUBViskVrwCfcB/267/lsPntHEyCkn5nG0cEP34AnjN9AzBApHkaHiDViRxS697HXbMj -f4eb5306587964fee1074235de19c2c395249156 0 iEYEABECAAYFAkyHvBIACgkQyUhSUUBVismKMACfe7pcnrMHVmdmaUNgvyIperV9Uw4AoJ7bU7dh9SCPE868D3if2bcWNJHa -a475e8d4eb213ae00d1d5e98cb75a470e34b252d 0 iEYEABECAAYFAkyTv5EACgkQyUhSUUBVisl4hgCfQxnLPCOrJ/opxRG3q30lWdML46AAni7Dotuow6acR2kK12l5jLl7fwu6 -7f5c5778c4b96d2fabee5ba22e635b5bdcf01a2b 0 iEYEABECAAYFAkyfh0gACgkQyUhSUUBVisn2UwCcCCL3V2F9//heGMDIMZ0kmQvDRvsAn2y5UibslT7gJ1QfoIIJokJhTcLS -2690facaa9271c6b7c1c94b23c9051112cb9cc32 0 iEYEABECAAYFAkymThgACgkQyUhSUUBVislLzgCgmD1FpSMIVMb+xYIW1X/i5c4M14kAn3251AG6/aDke0XtaJTDMdmnoLvx -8a838dcf8e761690806c8df2caabf828fa8028ff 0 iEYEABECAAYFAkzAgVMACgkQyUhSUUBVislqlACgptrkApZDOZOARdi0UtefD/EWVagAn3GEcvGADNkeos2laWvQxGURptCY -d0d3aca1c9587887a32a890548ec7db76c3bbbe2 0 iEYEABECAAYFAkzYU0oACgkQyUhSUUBVismeNwCaAua5XzOT/BgfeOVrBpscYz4M/jYAnRAc11iVkEeXr32o4YVL37DCPOv/ -51e41fcc78560b1eb5e3e1d026151e2cbe007486 0 iEYEABECAAYFAkz5RxcACgkQyUhSUUBViskcyQCcDetyEXnLHc1nCSFQ5LdlxgoNDE4AoKS8ZtsrUFdeT3/dfnJT1K7b5ski -440fcf8cb33815e86e5cb9701965000230338ac8 0 iEYEABECAAYFAk0u33kACgkQyUhSUUBVislxBwCeNfszo3Ivr5182ugeAXheEX33qDgAni6UFG9soLT2P5p1wpL2p/Bq4ACG -755c63ff089f434d18801d1864e5ce98d60f5ca9 0 iEYEABECAAYFAk1xNpAACgkQyUhSUUBVisn4HgCggcSxHEZGjRlCJQubqYquZMrnYckAoIKy+zTG+JMEez2pAtZdKse3uCjQ -3355b4bbd4acf5eb004cacbaa3bcc873ad818b80 0 iEYEABECAAYFAk10DCoACgkQyUhSUUBVislFAwCfUyZb1gwaGuSweAs1eUwIpIAAWTkAn2M2MDMIjmZduTZgcmbQPlWScNGP -606faab2b896295b7dae7941b47e9374dbf90a66 0 iEYEABECAAYFAk2kh3YACgkQyUhSUUBViskrNgCfdmuKZ1/9HDFOvBuBnTCw6lUuiaEAn207VAo55MOIb1RwAQgaP8wNC7YS -aa8dfa085a99b5c6e1bb6d304adc67b8a199c63a 0 iEYEABECAAYFAk3KpGwACgkQyUhSUUBVismbmQCfTKfNrQnIy2cIQCYUE7zFrRl6nvgAnAu5W0iAfzKwFEAGtnGj1h+D+tY0 -aa68f38c04f080fe4d3142fb3f73425b78ef98bd 0 iEYEABECAAYFAk5bEKIACgkQyUhSUUBVislRhwCePWvqh3c+EitvNe1XlMqxpwWvDDgAoJKjDnmLwk0U62IhIQ+x90DEIgl6 -8ae243558677b23f2077c3fe9683cc7890f5eb5d 0 iEYEABECAAYFAk5fSWYACgkQyUhSUUBVism47wCeJe0dWWZZLLXgn3r5oBg+jy9UtN0An3qCOCwxFxql7Ik42c/6kUKiCd1V -11ef524500964054ae8e4e6150f890b1864139eb 0 iEYEABECAAYFAk5zUvIACgkQyUhSUUBVisnDTgCdHVHSwKeZjHV4KrlTmqipFoO26mkAoIMqPTna3Y1ETIGnPq6XRCB90C8p -f9e744ffe02135f6dc75e62db366bd39a8e19f99 0 iEYEABECAAYFAk5zVngACgkQyUhSUUBVisntgQCfaceKIsHTtbu6LpUd2Tjj8lIHXZYAn3mCNW+Fc43t6M1tIE/ZUEwiWzCv -437ae2c24872b59056d08c7e67a0db5354710065 0 iEYEABECAAYFAk65qLwACgkQyUhSUUBVismRQACfad1LMF1iLd3vsFmxsONlDFEgxVwAnRmJRtv17mIUxvuzixLgc6bEtJvX -18f32bf70fac3c022065d4bfcd1f3e1a74b06b10 0 iEUEABECAAYFAk7NkY0ACgkQyUhSUUBVisl8xgCfSg6EA1Bz+7vShYM1YzRQCXNJx7UAlRBpHQmMenUfxRi/98DUsQs0uN0= -a14b7333ae458eb669ebbe5ec85488b81e223267 0 iEYEABECAAYFAk8G/vkACgkQyUhSUUBVisnObQCePLKBz9KeNrU2YadqtlzDe65V7zwAn1+M0om2SFMlzTG251xszcN4g4gn -5398bdb8613fbe05f24a2c655e0408e6fa4d764f 0 iEYEABECAAYFAk8HTMkACgkQyUhSUUBVisknigCgkg1AEAFgPq0xdyBYYDdm55+De1UAoKDSnvoGetcQRB4j86B5c968PjxV -a20a99b8815d4d0ddd176e529a8928d00473fd7f 0 iEYEABECAAYFAk8ezgsACgkQyUhSUUBVismeJQCfVq1NwEBD/U0GTy6Bk5mdBBy6CAEAn1/s2UzStxTUIxy0bmBJg8d+91Jv -0f10b3ed5c18eefb752d8b76a0071b10a969fdf1 0 iEYEABECAAYFAk8ghdYACgkQyUhSUUBVism4swCdGiTY9/6R8vZmxsg7gyrMhFAutZ4AnRwLbjzBreqPbmWvbP1CYrGHQzT6 -481860782250ad55ab18ca81bd606fc70c3d2ad9 0 iEYEABECAAYFAk84IqgACgkQyUhSUUBVislPnQCfdgX9pbhqat0CCZhEjGiYu0uPXFUAn1QOG9uetBsgOM6MB4tuJc58Pl4c -736f1b7af190ea68e65719277bd8d3d4682e0844 0 iEYEABECAAYFAk87Kz4ACgkQyUhSUUBVismKXACeME7EBYoEuoLLELp0uX6B/lkgRWQAoJ2OAgz4mmluGbi0Db8grDDWSsTj -e2cd03cc9c690c4989fb53a1871b7109c547388a 0 iEYEABECAAYFAk89MXsACgkQyUhSUUBVisnPmwCgiAr4OfQX1uAjhuqj5X0xbd8O1NQAn2bQW+h8QPAbqN6dQRNTm82D2hNF -04b0acc03f1eaa0353888a75a452e5c8e61e4c94 0 iEYEABECAAYFAk9F+k0ACgkQyUhSUUBViskLmwCfUt/aex6wOIEohJKnRGA4diF5WxoAn2zlMxSaPX/b0LBmV1P46GAMqZbO -744e0d7f1b255a9339060f761b850303121f14df 0 iEYEABECAAYFAk9h/8oACgkQyUhSUUBVism2OQCfWh62w8pMxJaf1oYx2A+2PxQvBocAn29RFDgZblGRLn7iMCPw6We1yiIw -b9adfd52cb66d5d89d291b76b9845d6361216d12 0 iEYEABECAAYFAk9jbugACgkQyUhSUUBVislSgwCgpo3f0bsSujItBum/M6js8SzF06YAmwftHlwaOstKeALdjLR5vtF2c5F7 -2c21c940e19d97a772128a7f281cea302e157d73 0 iEYEABECAAYFAk+CtkYACgkQyUhSUUBVisknxgCfTJw2YPGJ17HbHRGmbwmCyLqepbMAn17j7IYzUfEU0xkXhCgwEAmk7XO4 -469cee314d9c54d2d7101ec9e38579fdc9610eaf 0 iEYEABECAAYFAk+VWqkACgkQyUhSUUBVislnXACfVjPqMmPUvYtXQXwqff0h7N76mZUAn02lPeUCyuyr1TF9e1hGM/sKgmko -7c249e2a82a9cd33ae15ead6443c3499e16da623 0 iEYEABECAAYFAk+nX2sACgkQyUhSUUBVisn7uwCbBD3boxBOGEJ8OYsIJ57n5Cr09FAAoIvhxL6EHRB15AMOw4sPaALJ3/bB -c92fb8b928f69ca01681a2c2976304b7e4bc3afc 0 iEYEABECAAYFAk/FIeIACgkQyUhSUUBVisk4IgCfUiXVXntqzPjJcALYRpqw4Zc7a/0An3HKWwgb6PBCbmvxBfTezNkqjqVK -7e5f36fd989d27a2fb48250adbab8fa54ddb6083 0 iEYEABECAAYFAk/yVakACgkQyUhSUUBVismekwCfSEVQjd6fwdChjd53LSt03b4UWKoAoIxd/IjLatTISlHm44iiQwzRKByo -bc86680293d256d5a8009690caeb73ab2e34e359 0 iEYEABECAAYFAlAZaTUACgkQyUhSUUBVisnTAACfU1pB34RrXEyLnpnL4Ee/oeNBYcoAnRWxTqx870Efjwf+eBPzafO0C/NU -1a6c3b4e92e4174d3b1eb0a7c841f97e8fb9e590 0 iEYEABECAAYFAlBYwJMACgkQyUhSUUBVisn2PwCeIJxfB5ebXlAbtMcjrZBCmB8Kg1sAn39BC9rQoR/wjD2/ix1JaxH7gHOT -f5941f3ac7622361634b6cba464da79cc883d1bb 0 iEYEABECAAYFAlCO62QACgkQyUhSUUBViskUtQCffWRQpSqaf+iCOipsTWE1D93TwVEAnAhxx1aezuqDVAsjWoYZkrIufO28 -741d800a192fa23572bb14196df2a8917cf20614 0 iEYEABECAAYFAlC3A5EACgkQyUhSUUBVisnmlACcCm6jc7NRoTkBtrJLcz+P325U1xcAn2+0eghqEMiP+rzRJC55oQxV00Zy -75bfda4a7c6c9aa04b6a6ef233fc527356171a06 0 iEYEABECAAYFAlC4WKwACgkQyUhSUUBViskaOACgmcwWV8hgsCOWvkbdh0OIw1ImSQYAn1RcTL0CG3M8+XG7QrrxSfQ7+V99 -86bccdf46d172524ca19a1a8a16a50ac30a6743c 0 iEYEABECAAYFAlDqonoACgkQyUhSUUBVisnqqACfaqdR6GxUAJznotKT9WHIUVhVgcIAoJIEa0SBzlGIWThmLvtQByF9vXcc -cf9d62fd0b143efa8e49fac998eb78a648cdd8a9 0 iEYEABECAAYFAlDqjXUACgkQyUhSUUBViskUEwCfYTWHeDmPr8HfxSBQN17SD5IwDygAnROhb3IVTm9niDun4gxPxbHLo/Pe -b314c97d4bbffd01b20f8492592aa422c13e3d55 0 iEYEABECAAYFAlEJlGMACgkQyUhSUUBVismNdQCgggPP/dt1duU1CMYfkpE4Kyc9Ju0An0kphokRqrtppkeqg7pF1JR01Mgq -fc75811f3c08d80ed339cbb4d37c66f549542ba7 0 iEYEABECAAYFAlEU+CEACgkQyUhSUUBViskh9QCgnqPHUkNvtOioWxo4W7fXjCFLVAwAnR9Z26jgBpoejXDkgwT07wdfYiL3 -018de2aa893a040256cb8cd92b1fc9f3f2bbd09f 0 iEYEABECAAYFAlEmOJEACgkQyUhSUUBVismawgCfbfY6KuH+/AauPkRZs4ish20YeV8Ani5DMLh02DUyJvDIpVPJMmTn2Mu/ -582108c190f88597c5215279cb66f74673144c9b 0 iEUEABECAAYFAlFd69UACgkQyUhSUUBVisk/aQCYyYU9JcDM3SrTZu1oJuS26IAnZACeM400zLRROTaM6QYBVKTqTnfpuBY= -508d46f858153c85ae777e87e1c5143a534a51fe 0 iEYEABECAAYFAlErhDkACgkQyUhSUUBViskRdwCeJ61F0qLZ/3xxIQruTujzo0AEWK0An3PH7nkTY7ouyBdUr0QCra5KLXEZ -e62fa121f4a2db3348fd79bb176dd363cc1224bf 0 iEYEABECAAYFAlErsAwACgkQyUhSUUBVismarACbBffm3XY21sfkTsbmF8o8udtRZk4An0ofYy2VminZ3S8EFApHymk/UpNv -11bd79bf4866b0d728b25717134a6ba972505746 0 iEYEABECAAYFAlFKFqsACgkQyUhSUUBVismbSwCdHgMYWjcwcTM7fD4v6wTd/8/8ZEsAn2THId1zYspMTEMtDg0rlrvjlht4 -92c88eca562d45a55b65e45eb9bb937292b20595 0 iEYEABECAAYFAlFd75QACgkQyUhSUUBVismY8ACeI2egJAQjbspR/2ioZ85G+NbekuwAoIy2pl+wrSDOhwt9Qd4D72Q9I4ag -9446df6da5a89ae94653362ef4d4ea154272cd3e 0 iEYEABECAAYFAlFfEeQACgkQyUhSUUBViskn8QCfW8C5xr/OuOSQNuLchv9HJduncaEAnici8NhTmN7G9qwReXnLqcdrC1Tc -ae4341d0e83bd63397b418666bc80076700432fd 0 iEYEABECAAYFAlFh+/EACgkQyUhSUUBViskLaACfaQUhj/uJIZ5oDL5Wo5hTUgJC+cQAnR4GFR/GhGqJmvFWe8jZPD3CwtW/ -d7f29af734683149badfc45a4e2015254ca78672 0 iEYEABECAAYFAlFlvh0ACgkQyUhSUUBVislyrgCfSTX5MQWcV+eAWNlZ1jpawq9rNPMAnRNU9RBWmrUNU9PqDrsqS3WDCGyu -e2cd03cc9c690c4989fb53a1871b7109c547388a 0 iEYEABECAAYFAlFnEVAACgkQyUhSUUBVismWBgCgit90C+1stGSchsVzJGghBs9278UAnj0vB6BETfOU9tNjViyCR18aEdUH -6fcf060b50f183549909f0fee17307e646edcbc6 0 iEYEABECAAYFAlFwZ7oACgkQyUhSUUBVismG6wCeI05eVDC++LqgfF9sOkoT3qRp9xYAn3pRDGYKPx7DhcTp+0RX/I9TXUmB -7aa929edd551e3d3bd9405643341129c7a805554 0 iEYEABECAAYFAlGZX2MACgkQyUhSUUBVisn2LACfWc8QwBvF31mYx3iv9ePvShCRcH4AnjZkbQEmcvaFQrfCy5YIIrstNBzx -5d9f52c9a2871245097c725b9a4163a8789512fd 0 iEYEABECAAYFAlG+LqYACgkQyUhSUUBVisn45wCgiEnDSrMoa5hZHRv+0eovGQJJ4g8An1Q8kms24rovLF/PGaani8Ap6VXR -4b3c9c3e4fb8499ca7133a4d229e5eef349995e0 0 iEYEABECAAYFAlHI1NMACgkQyUhSUUBVismCOQCbB/qdjOfUBvm0AUGBudvg2TaKbJ0AnRmr8JEV1QnowwA0g0vGF8Hkm6ib -71f0696749ab347119278d7f68a01f81ed584c53 0 iEYEABECAAYFAlH/+4cACgkQyUhSUUBVislEUwCfc7GeL9I5US5yJltYpWe8ZU7MAIkAnRlUGvhpFMBnehwSlUDRsssRCJ+a -1de9a494cb2520986da97fa73cf87a3781ea2d17 0 iEYEABECAAYFAlJCi2cACgkQyUhSUUBVisnoWQCfecKzvsHw/MC/5DDuZXIF/CmkaBUAn2DfADK7V0fIWZ49GPyL+BPbYCXy -b5b118701aa83e7b047e53f51aa5a4622ee812df 0 iEYEABECAAYFAlJ2rGIACgkQyUhSUUBVislFRwCfTgg6BYRGpKAOAvE3hhhIskLwxLUAoJjRlth0ob0ahrqIhg7du4+Z0C3j -095a777edc2623fad2ad9d6321ed93a804e85889 0 iEYEABECAAYFAlKL1YoACgkQyUhSUUBVismrpQCeP/ab1oKZp0VJ6PwmnRgDthf2hi8AoJZB+KuQIgKA5iBx3NpGcaZjmlzc -2852a7c55fc756e489ebff6aefcb0553f638e851 0 iEYEABECAAYFAlKSirAACgkQyUhSUUBVisn17ACgjsnbSktYkNMvoO2FNjA2DVBNYDwAnAtQ1Zjemwvi+Pow/px6TZ2K76J6 -614bd66000113a062c1a02751cc7d04c0fcef1d6 0 iEYEABECAAYFAlKzsg8ACgkQyUhSUUBVism5cACdEM1jR3c6gO0dGodbsgVtDMZPSxsAoKGmvyIxt7MSQkdz9cbe+Kfn2jyK -6b96eb75ded21d09739c5662a52dd054059920f6 0 iEYEABECAAYFAlL6qV8ACgkQyUhSUUBVislKhwCgm48QhoYeogfLdMT6Ys65XD8n93gAnA7xLoUqp8qXP9xhMrXabhaLQCaC -8e4433702920216747e874d2914518de6748d05f 0 iEYEABECAAYFAlL9OsoACgkQyUhSUUBVisnz6ACgmR2KgErDS5jB8SvPB2u7yaRN6SIAnRwxqa0LGPBM52Fdw2e8vDVFxSWU -791ec610422cd2852cf51bd1842e90aa04d3ed20 0 iEUEABECAAYFAlNrnasACgkQyUhSUUBVismrBQCUD5Q/tPiX+KtsoWM3aUOyooARWgCfcfUrhO5jUSBEXZ9F61wVynvtxf0= -c55c660d6e9dd0b433768c906c1462cf6e8d71d5 0 iEYEABECAAYFAlNv0HUACgkQyUhSUUBVisllBwCePV2jKcugiF0QYnIFLGJytMsW22kAn2bGBQ5hD/LrpTml5h9aCchkpSL3 -34e52cbeb83725178c0c0a282ffa5ef1c161e3cb 0 iEYEABECAAYFAlQuvlIACgkQyUhSUUBVislFdwCfTD1ctLwAmkwWzuIugFdnLBo7wYoAoJbAtUIRsFyyxdgvslqT9aJ6Mg0A -6dad1f6e8930940f3c763cf3f27aaa7a9c979520 0 iEYEABECAAYFAlQ9VDQACgkQyUhSUUBVisk1fgCfdmFGZA/0DGz9vQFDeBTFK/JLhAEAnA966b+cMBaRegwj/v0Zta7c62lS -e8b793f2c4091f76075e66d5166b38cf82e598bd 0 iEYEABECAAYFAlRLH5gACgkQyUhSUUBVisn+6gCfcGV1kM2OS9udaFxY7MVtqaaGwYAAnRxUc/RGeUhvJGdg9LvSSzBFPCfz -a3c27cec411261b3ff2947795b3b8ff96a5320a1 0 iEYEABECAAYFAlT5zBYACgkQyUhSUUBVisnQ4gCdFb/4T+WZYCAxRKjfup+xIiP26bkAn2CbIlsJBU1f3WnAJX9KsAmhphlY -0f8f0d8ee60745f6ce7ff379da7f2660aec7c4d4 0 iEYEABECAAYFAlUBs5IACgkQyUhSUUBVisn/yACcCUC3xDOCPFAgTKd72uyDrEUv7wcAn1tNcf+AyIUmM9ksDeB2fuZZZJFT -da685736985a17c2b6b1ff24c4f762a4009ce598 0 iEYEABECAAYFAlVORBAACgkQyUhSUUBViskBnQCfRmUjoFty2pUJrrrdIvkEgOCiVEUAnRK0OYM4z5bxs9xcBlXZn8n2qyFx -2c1ce55de520484431a63041602829d21195b4e9 0 iEYEABECAAYFAlVSXUYACgkQyUhSUUBVislsrwCdEtWDWrQPsJua75RL83lpkeh7DagAoKW+534P0iziiX/nD6QzNmBTHODe -166106aaefc5e6cf3850dba9534ca90153931ad9 0 iEYEABECAAYFAlVTf5MACgkQyUhSUUBViskLHgCeMooopuB7egroMj8w78YarjjRieYAnjVSKcz0sXShlbYRsLRPOnyfq/pS -917d027836d0f9d7d4b740dc33ae48cc5beead6f 0 iEYEABECAAYFAlVV0mIACgkQyUhSUUBVismFtwCeIVNrGFguuXIhDoCSUm86Q4uTpQUAnAi6UfVL9/+QWC5LpR7jvY97QH0c -60057d955db325d1af199098ff4cfd57f237645c 0 iEYEABECAAYFAlYCpMAACgkQyUhSUUBVismRDwCeIE5jzDFBEBFuIf2JgRMsvgErSmkAniUiUmQ8clnWBSqu7fEY7A2ZbHia -7a5726201e40ac299b677cebd73326ec92b8fdd8 0 iEYEABECAAYFAlYJTfgACgkQyUhSUUBVislrewCfZRDY+7eAKD4vPigNVUlVU/fU1CUAoIbplWaRSdUFByC4A4tb1OdU1uWc -d7e14d388a7ee6090daec2fadbc11325f67dc0cc 0 iEYEABECAAYFAlYOqqMACgkQyUhSUUBVism9LgCgjrrzr2NKJbpK0+UJmRqKgBXkpCoAmwRpnWSYcx9s9fiSB2t1mEMNFybU -c35e62a9e7104d26b0c4e27b2672394b58f11593 0 iEYEABECAAYFAlZgRD0ACgkQyUhSUUBVisl0JQCfawJemfWD44bNxyR5oDixX/oRs4EAn3hETQqMBxTLh5Dej+K/n0Y4Babv -f833b8160e39caa20e79e90844dc7bb2f3d25c71 0 iEYEABECAAYFAlZl2XMACgkQyUhSUUBViskUogCfeMku29+x3cwXnEKjQfTNvTjwtRYAoJCd0R8AM6wYD+DDbpOlZOrQtOok diff --git a/.hgtags b/.hgtags deleted file mode 100644 index 6c2a3f5237..0000000000 --- a/.hgtags +++ /dev/null @@ -1,134 +0,0 @@ -c5fda8e075c2367531cd840fd7e586e03ac7229d 1.1.alpha1 -8d4fa6f0b7e6dc49821b666901bf4a83f4153498 1.1.alpha2 -f4fa0970f855036db96baab90941f68103536412 1.1.alpha4 -77e556a67719021d27c6cf26d26589103a1da07d 1.1.alpha5 -5ac9c11807e75dcb1f50cf1902be2183b84ba0c8 1.1.alpha6 -1d45cf642d862921c72e679f1793fc314681fca6 1.1.beta1 -19b73ae1d6f6a04cb3a26af4e28e1f6cd5721d94 1.1.beta2 -4fddc10844ff652e4576125cec483ebdeb91bf4e 1.1.beta3 -f92e583e2a0e6db4a1b4d8f7b6e5e2d2ac9ec5f7 1.1.beta4 -2c3d08ad32ffe66c855bce55001f63a508c01f9d 1.1.beta5 -1745e18a2e54956ba6177ced058b5c31abc4eebd 1.1.beta6 -4628e3ec65e446c2dee7b2074a715d20e6f2efcc 1.1.beta8 -4b768f8b403455e1e9636c9480cb8a56196f46ab 1.1.beta9 -75fabf3fded83144b09d64ead845f1248550a7be 1.1.beta10 -e334e53fcc61e59ac63afbea355f9be6d4afc009 1.1.beta11 -a1353d4fc3b634c319488ddf30c1d04b4197b874 1.1.beta12 -358cba31b4d5abc91a1dce5c86233aa36f005938 1.1.beta13 -88de748a2f174e926f9557a7cdc79b082d3ae619 1.1.beta14 -2aa39f1e3993b801cf047da056554fc8e385c33c 1.1.beta16 -958e377fc1dcdc88be2f8cfaba68fc5ad4c15dc6 1.1.rc1 -dfd811aa0418000e2b60d9cafb67817cdc2dbdb9 1.1.rc2 -c73d6224a96b3c07740dd9880cfe1b066e6238ff 1.1.rc3 -4607141a6bdc4226acbbece913d9780e5c3c818f 1.1.rc4 -3b09af6458e590f5b05fba89847a80441b6c0d5f 1.1.rc5 -79857a116d281846441c866ae2a9f8f2e4d7b0cf 1.1.rc6 -290bd8b0c2d76f6fccd3add14bb3007c86ce34ff 1.1.rc7 -58c7f5c31db1801d9c7495354e6911da898aaa65 1.1.rc8 -eaa3469db1dde6f11b686b0289360b5726cc619a 1.2.alpha1 -140688a281c25fcf7c8fbaff7c65e687f9bd771c 1.2.alpha2 -3c8d43f85b1aa55b915209c57b752a8d9e1b08bd 1.2.alpha3 -f53952ac42850b6dcd2902d6b03780b99f079ead 1.2.alpha4 -5d80abcfb2fff41def568fcbab1b4d289972101d 1.2.alpha5 -c21c082aebb649c12e025b0c0e257bb139c470f2 1.2.beta1 -116ca52dfcb58b46da40ea616ee592fe6caeeaa7 1.2.beta2 -6ab55d9917657d69f804b6b988d3e35843946793 1.2.beta3 -84c70b0695c5285b649763594c016b0daf754863 1.2.beta4 -9b0f8347905678b0a5d22d78887506a091801cba 1.2.rc1 -7dc28f9b899dd3f183b5bbf274e3b3323edc27af 2.0.alpha1 -6b75cb16d4278817350d3236628b6ef30ce08608 2.0.alpha2 -d52d842e8f81c5c019b20d91781c8b99cef4bb18 2.0.alpha3 -594a349067f6b03da4a32ef1f7e800d2eda72b3a 2.0.beta1 -357995a6c2701fe1f7663893bdadc53290f41546 2.0.beta2 -81e79df3fed89d60360f67926d318bcd3e4ad3d1 2.0.beta3 -38e98c234af526270122d4b8de9e9beb5442ec85 2.0.beta4 -6b15f36d40c93e5f55965b91983cbe0bdcf49f30 2.0.beta5 -0c23ff04394f4ab8a888e3658b352016079e2b4e 2.0.beta6 -d4d6ebad3d337295c06537d5ffe2270672cb1312 2.0.rc1 -fd0497f5a49672c88c6aff775a9042ca9122a2a1 2.0.rc2 -a15b694f1d64a81eea7959fe34780e9e50356321 2.0.rc3 -71b2cb9895d92e2e3c80ecdd351055ab848a4ed6 2.0.rc4 -4a2d840a80bbe85e2101e3a5fb19424c3050f923 2.0.rc5 -c5de2eb14a97e269cc3c6874fc6fdbafdac4edca 2.0.rc6 -d0d3ba81d2052258b099b9f660866369a56d4a9c 2.0.0 -8baa8ccb40216d626b9ca66309fca9437a76e6e2 2.0.1 -f4eb5306587964fee1074235de19c2c395249156 2.0.2 -a475e8d4eb213ae00d1d5e98cb75a470e34b252d 2.0.3 -7f5c5778c4b96d2fabee5ba22e635b5bdcf01a2b 2.0.4 -2690facaa9271c6b7c1c94b23c9051112cb9cc32 2.0.5 -8a838dcf8e761690806c8df2caabf828fa8028ff 2.0.6 -d0d3aca1c9587887a32a890548ec7db76c3bbbe2 2.0.7 -51e41fcc78560b1eb5e3e1d026151e2cbe007486 2.0.8 -440fcf8cb33815e86e5cb9701965000230338ac8 2.0.9 -755c63ff089f434d18801d1864e5ce98d60f5ca9 2.0.10 -3355b4bbd4acf5eb004cacbaa3bcc873ad818b80 2.0.11 -606faab2b896295b7dae7941b47e9374dbf90a66 2.0.12 -aa8dfa085a99b5c6e1bb6d304adc67b8a199c63a 2.0.13 -aa68f38c04f080fe4d3142fb3f73425b78ef98bd 2.0.14 -8ae243558677b23f2077c3fe9683cc7890f5eb5d 2.1.alpha1 -11ef524500964054ae8e4e6150f890b1864139eb 2.0.15 -f9e744ffe02135f6dc75e62db366bd39a8e19f99 2.1.alpha2 -437ae2c24872b59056d08c7e67a0db5354710065 2.1.beta1 -18f32bf70fac3c022065d4bfcd1f3e1a74b06b10 2.1.rc1 -a14b7333ae458eb669ebbe5ec85488b81e223267 2.1.rc2 -5398bdb8613fbe05f24a2c655e0408e6fa4d764f 2.1.rc3 -a20a99b8815d4d0ddd176e529a8928d00473fd7f 2.1.rc4 -0f10b3ed5c18eefb752d8b76a0071b10a969fdf1 2.1.rc5 -481860782250ad55ab18ca81bd606fc70c3d2ad9 2.1.rc6 -736f1b7af190ea68e65719277bd8d3d4682e0844 2.1.rc7 -e2cd03cc9c690c4989fb53a1871b7109c547388a 2.1.0 -04b0acc03f1eaa0353888a75a452e5c8e61e4c94 2.1.1 -744e0d7f1b255a9339060f761b850303121f14df 2.1.2 -b9adfd52cb66d5d89d291b76b9845d6361216d12 2.1.3 -2c21c940e19d97a772128a7f281cea302e157d73 2.1.4 -469cee314d9c54d2d7101ec9e38579fdc9610eaf 2.1.5 -7c249e2a82a9cd33ae15ead6443c3499e16da623 2.1.6 -c92fb8b928f69ca01681a2c2976304b7e4bc3afc 2.1.7 -7e5f36fd989d27a2fb48250adbab8fa54ddb6083 2.1.8 -bc86680293d256d5a8009690caeb73ab2e34e359 2.1.9 -1a6c3b4e92e4174d3b1eb0a7c841f97e8fb9e590 2.1.10 -f5941f3ac7622361634b6cba464da79cc883d1bb 2.2.alpha1 -741d800a192fa23572bb14196df2a8917cf20614 2.1.11 -75bfda4a7c6c9aa04b6a6ef233fc527356171a06 2.1.12 -cf9d62fd0b143efa8e49fac998eb78a648cdd8a9 2.1.13 -86bccdf46d172524ca19a1a8a16a50ac30a6743c 2.2.beta1 -b314c97d4bbffd01b20f8492592aa422c13e3d55 2.1.14 -fc75811f3c08d80ed339cbb4d37c66f549542ba7 2.1.15 -018de2aa893a040256cb8cd92b1fc9f3f2bbd09f 2.2.beta2 -582108c190f88597c5215279cb66f74673144c9b 2.1.16 -508d46f858153c85ae777e87e1c5143a534a51fe 2.2.rc1 -e62fa121f4a2db3348fd79bb176dd363cc1224bf 2.2.rc2 -11bd79bf4866b0d728b25717134a6ba972505746 2.2.rc3 -92c88eca562d45a55b65e45eb9bb937292b20595 2.2.rc4 -9446df6da5a89ae94653362ef4d4ea154272cd3e 2.2.rc5 -ae4341d0e83bd63397b418666bc80076700432fd 2.2.rc6 -d7f29af734683149badfc45a4e2015254ca78672 2.2.rc7 -1c8e7a295d4bd167a2b0a7243a3ec4d1e161360d 2.2.0 -6fcf060b50f183549909f0fee17307e646edcbc6 2.2.1 -7aa929edd551e3d3bd9405643341129c7a805554 2.2.2 -5d9f52c9a2871245097c725b9a4163a8789512fd 2.2.3 -4b3c9c3e4fb8499ca7133a4d229e5eef349995e0 2.2.4 -71f0696749ab347119278d7f68a01f81ed584c53 2.2.5 -1de9a494cb2520986da97fa73cf87a3781ea2d17 2.2.6 -b5b118701aa83e7b047e53f51aa5a4622ee812df 2.2.7 -095a777edc2623fad2ad9d6321ed93a804e85889 2.2.8 -2852a7c55fc756e489ebff6aefcb0553f638e851 2.2.9 -614bd66000113a062c1a02751cc7d04c0fcef1d6 2.2.10 -6b96eb75ded21d09739c5662a52dd054059920f6 2.2.11 -8e4433702920216747e874d2914518de6748d05f 2.2.12 -791ec610422cd2852cf51bd1842e90aa04d3ed20 2.2.13.rc1 -c55c660d6e9dd0b433768c906c1462cf6e8d71d5 2.2.13 -34e52cbeb83725178c0c0a282ffa5ef1c161e3cb 2.2.14.rc1 -6dad1f6e8930940f3c763cf3f27aaa7a9c979520 2.2.14 -e8b793f2c4091f76075e66d5166b38cf82e598bd 2.2.15 -a3c27cec411261b3ff2947795b3b8ff96a5320a1 2.2.16.rc1 -0f8f0d8ee60745f6ce7ff379da7f2660aec7c4d4 2.2.16 -da685736985a17c2b6b1ff24c4f762a4009ce598 2.2.17.rc1 -2c1ce55de520484431a63041602829d21195b4e9 2.2.17.rc2 -166106aaefc5e6cf3850dba9534ca90153931ad9 2.2.17 -917d027836d0f9d7d4b740dc33ae48cc5beead6f 2.2.18 -60057d955db325d1af199098ff4cfd57f237645c 2.2.19.rc1 -7a5726201e40ac299b677cebd73326ec92b8fdd8 2.2.19.rc2 -d7e14d388a7ee6090daec2fadbc11325f67dc0cc 2.2.19 -c35e62a9e7104d26b0c4e27b2672394b58f11593 2.2.20.rc1 -f833b8160e39caa20e79e90844dc7bb2f3d25c71 2.2.20 From 1ce79f02a5076a8ecaeb2f99f53a608ac196ad33 Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Wed, 9 Dec 2015 19:40:18 +0200 Subject: [PATCH 13/18] Switched .hgignore to .gitignore --- .hgignore => .gitignore | 127 +++++++++++++++++++++++----------------- 1 file changed, 74 insertions(+), 53 deletions(-) rename .hgignore => .gitignore (52%) diff --git a/.hgignore b/.gitignore similarity index 52% rename from .hgignore rename to .gitignore index 47e99aad18..bf16175564 100644 --- a/.hgignore +++ b/.gitignore @@ -1,56 +1,82 @@ -syntax: glob -aclocal.m4 -autom4te.cache -cc-wrapper.sh -compile -config.cache -config.guess -config.h -config.h.in -config.h.in~ -config.log -config.status -config.sub -config.rpath -configure -configure.scan -dovecot-version.h -libtool -libtool-shared -ltconfig -ltmain.sh -stamp-h* -stamp.h -version.h -.exrc -depcomp -install-sh -missing -mkinstalldirs -ABOUT-NLS -build-stamp -configure-stamp -dovecot.spec -dovecot-config -dovecot-config.in -ChangeLog Makefile Makefile.in -run-test.sh - +*.a *.o *.lo -*.Po -*.Plo -*.Tpo -*.a *.la -*.lai -*.so -**/Makefile -**/Makefile.in -**/Info.plist -**/.libs +.deps +.libs + +/configure +/config.cache +/config.guess +/config.h +/config.h.in +/config.log +/config.status +/config.sub +/config.rpath +/compile +/depcomp +/dummy-config.h +/dummy-config.h.in +/fts-config.h +/install-sh +/libtool +/ltmain.sh +/missing +/run-test.sh +/aclocal.m4 +/stamp.h +/stamp-h1 +/stamp-h2 +/autom4te.cache +/ChangeLog +/cc-wrapper.sh +/dovecot-config +/dovecot-config.in +/dovecot-version.h + +src/**/test-* +!src/**/test-*.c +!src/**/test-*.h + +doc/man/doveadm-acl.1 +doc/man/doveadm-altmove.1 +doc/man/doveadm-auth.1 +doc/man/doveadm-batch.1 +doc/man/doveadm-deduplicate.1 +doc/man/doveadm-director.1 +doc/man/doveadm-dump.1 +doc/man/doveadm-exec.1 +doc/man/doveadm-expunge.1 +doc/man/doveadm-fetch.1 +doc/man/doveadm-flags.1 +doc/man/doveadm-fts.1 +doc/man/doveadm-import.1 +doc/man/doveadm-instance.1 +doc/man/doveadm-index.1 +doc/man/doveadm-force-resync.1 +doc/man/doveadm-help.1 +doc/man/doveadm-kick.1 +doc/man/doveadm-log.1 +doc/man/doveadm-mailbox.1 +doc/man/doveadm-mount.1 +doc/man/doveadm-move.1 +doc/man/doveadm-penalty.1 +doc/man/doveadm-proxy.1 +doc/man/doveadm-purge.1 +doc/man/doveadm-pw.1 +doc/man/doveadm-quota.1 +doc/man/doveadm-replicator.1 +doc/man/doveadm-search.1 +doc/man/doveadm-sync.1 +doc/man/doveadm-user.1 +doc/man/doveadm-who.1 +doc/man/doveadm.1 +doc/man/doveconf.1 +doc/man/dovecot-lda.1 +doc/man/dovecot.1 doc/example-config/README doc/wiki/*.txt @@ -108,8 +134,3 @@ src/plugins/fts/xml2text src/plugins/quota/rquota_xdr.c src/plugins/quota/rquota.h src/plugins/quota/quota-status - -syntax: regexp -src/.*/test-[^\.]*$ -doc/man/doveadm-(acl|altmove|auth|batch|deduplicate|director|dump|exec|expunge|fetch|flags|fts|import|instance|index|force-resync|help|kick|log|mailbox|mount|move|penalty|proxy|purge|pw|quota|replicator|search|sync|user|who)\.1$ -doc/man/(doveadm|doveconf|dovecot-lda|dovecot)\.1$ From f43b59ad4e8e6a2c9a702ca80a8eea02f8779116 Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Thu, 10 Dec 2015 11:14:26 +0200 Subject: [PATCH 14/18] Makefile: Make ChangeLog depend on .git/index instead of .git/ORIG_HEAD ORIG_HEAD doesn't necessarily exist, so maybe index is good for this. --- Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile.am b/Makefile.am index c83365fb9f..801862273c 100644 --- a/Makefile.am +++ b/Makefile.am @@ -22,7 +22,7 @@ noinst_DATA = dovecot-config nodist_pkginclude_HEADERS = config.h if MAINTAINER_MODE -ChangeLog: .git/ORIG_HEAD +ChangeLog: .git/index git log 2.2.alpha1..HEAD > ChangeLog endif From c0ac695d27efc381dbafd7d93744acfa3f226988 Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Thu, 10 Dec 2015 14:40:01 +0200 Subject: [PATCH 15/18] director: Don't trigger a ring resync if only last_updown_change has changed. --- src/director/director-connection.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/director/director-connection.c b/src/director/director-connection.c index 8d7500b67d..a6016becf6 100644 --- a/src/director/director-connection.c +++ b/src/director/director-connection.c @@ -905,8 +905,7 @@ director_cmd_host_int(struct director_connection *conn, const char *const *args, update = TRUE; } else { update = host->vhost_count != vhost_count || - host->down != down || - host->last_updown_change != last_updown_change; + host->down != down; host_tag = mail_host_get_tag(host); if (strcmp(tag, host_tag) != 0) { From c4eda2aa3bda09cf14599cdae883f6eeac520ea4 Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Fri, 11 Dec 2015 16:33:43 +0200 Subject: [PATCH 16/18] director: Don't mark the host desynced if director is alone in ring. --- src/director/director.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/director/director.c b/src/director/director.c index 3cb6f9fbb2..40f41b6955 100644 --- a/src/director/director.c +++ b/src/director/director.c @@ -586,7 +586,10 @@ void director_update_host(struct director *dir, struct director_host *src, director_send_host(dir, src, orig_src, host); - host->desynced = TRUE; + /* mark the host desynced until ring is synced again. except if we're + alone in the ring that never happens. */ + if (dir->right != NULL || dir->left != NULL) + host->desynced = TRUE; director_sync(dir); } From 6b7309aae91673579ef01c32b898953240f46ad5 Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Fri, 11 Dec 2015 17:39:05 +0200 Subject: [PATCH 17/18] dovecot-config: Fixed setting LIBDOVECOT_LIBFTS[_DEPS] --- configure.ac | 3 +-- dovecot-config.in.in | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/configure.ac b/configure.ac index 141b043939..4b874c00d7 100644 --- a/configure.ac +++ b/configure.ac @@ -2523,7 +2523,6 @@ if test "$want_shared_libs" = "yes"; then LIBDOVECOT_LOGIN='$(top_builddir)/src/login-common/libdovecot-login.la' LIBDOVECOT_COMPRESS='$(top_builddir)/src/lib-compression/libcompression.la' LIBDOVECOT_LDA='$(top_builddir)/src/lib-lda/libdovecot-lda.la' - LIBDOVECOT_LIBFTS='$(top_builddir)/src/lib-fts/libfts.la' else LIBDOVECOT_DEPS='$(top_builddir)/src/lib-master/libmaster.la $(top_builddir)/src/lib-settings/libsettings.la $(top_builddir)/src/lib-stats/libstats.la $(top_builddir)/src/lib-http/libhttp.la $(top_builddir)/src/lib-dict/libdict.la $(top_builddir)/src/lib-dns/libdns.la $(top_builddir)/src/lib-fs/libfs.la $(top_builddir)/src/lib-imap/libimap.la $(top_builddir)/src/lib-mail/libmail.la $(top_builddir)/src/lib-sasl/libsasl.la $(top_builddir)/src/lib-auth/libauth.la $(top_builddir)/src/lib-charset/libcharset.la $(top_builddir)/src/lib-ssl-iostream/libssl_iostream.la $(top_builddir)/src/lib-test/libtest.la $(top_builddir)/src/lib/liblib.la' LIBDOVECOT="$LIBDOVECOT_DEPS \$(LIBICONV) \$(MODULE_LIBS)" @@ -2531,11 +2530,11 @@ else LIBDOVECOT_LOGIN='$(top_builddir)/src/login-common/liblogin.la' LIBDOVECOT_COMPRESS='$(top_builddir)/src/lib-compression/libcompression.la' LIBDOVECOT_LDA='$(top_builddir)/src/lib-lda/liblda.la' - LIBDOVECOT_LIBFTS_DEPS='$(top_builddir)/src/lib-fts/libfts.la' fi LIBDOVECOT_STORAGE="$LIBDOVECOT_STORAGE_DEPS" LIBDOVECOT_DSYNC='$(top_builddir)/src/doveadm/dsync/libdovecot-dsync.la' LIBDOVECOT_SQL='$(top_builddir)/src/lib-sql/libsql.la' +LIBDOVECOT_LIBFTS='$(top_builddir)/src/lib-fts/libfts.la' AC_SUBST(LIBDOVECOT) AC_SUBST(LIBDOVECOT_DEPS) AC_SUBST(LIBDOVECOT_STORAGE) diff --git a/dovecot-config.in.in b/dovecot-config.in.in index 338a5a4742..3630207045 100644 --- a/dovecot-config.in.in +++ b/dovecot-config.in.in @@ -20,7 +20,7 @@ LIBDOVECOT_COMPRESS_DEPS="@LIBDOVECOT_COMPRESS@" LIBDOVECOT_LDA_DEPS="@LIBDOVECOT_LDA@" LIBDOVECOT_STORAGE_DEPS="@LIBDOVECOT_STORAGE_DEPS@" LIBDOVECOT_DSYNC_DEPS="@LIBDOVECOT_DSYNC@" -LIBDOVECOT_LIBFTS_DEPS="@LIBDOVECOT_LIBFTS_DEPS@" +LIBDOVECOT_LIBFTS_DEPS="@LIBDOVECOT_LIBFTS@" LIBDOVECOT_INCLUDE="-I$(incdir) -I$(incdir)/src/lib -I$(incdir)/src/lib-dict -I$(incdir)/src/lib-dns -I$(incdir)/src/lib-http -I$(incdir)/src/lib-mail -I$(incdir)/src/lib-imap -I$(incdir)/src/lib-fs -I$(incdir)/src/lib-charset -I$(incdir)/src/lib-auth -I$(incdir)/src/lib-master -I$(incdir)/src/lib-ssl-iostream -I$(incdir)/src/lib-compression -I$(incdir)/src/lib-settings -I$(incdir)/src/lib-test -I$(incdir)/src/lib-sasl -I$(incdir)/src/lib-stats" LIBDOVECOT_LDA_INCLUDE="-I$(incdir)/src/lib-lda -I$(incdir)/src/lda" From 5345f22c94b1bf02904bbb36b4c1807050ad91e6 Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Fri, 11 Dec 2015 18:34:47 +0200 Subject: [PATCH 18/18] Released v2.2.21. --- NEWS | 8 ++++++++ configure.ac | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/NEWS b/NEWS index 32e1561c77..52315d1568 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,11 @@ +v2.2.21 2015-12-11 Timo Sirainen + + - doveadm mailbox list (and some others) were broken in v2.2.20 + - director: Fixed making backend changes when running with only a + single director server. + - virtual plugin: Fixed crash when trying to open nonexistent + autocreated backend mailbox. + v2.2.20 2015-12-07 Timo Sirainen + Added mailbox { autoexpunge=