Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package dovecot23 for openSUSE:Factory checked in at 2022-12-21 16:07:08 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/dovecot23 (Old) and /work/SRC/openSUSE:Factory/.dovecot23.new.1835 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "dovecot23" Wed Dec 21 16:07:08 2022 rev:48 rq:1044022 version:2.3.19.1 Changes: -------- --- /work/SRC/openSUSE:Factory/dovecot23/dovecot23.changes 2022-06-23 10:23:45.971707117 +0200 +++ /work/SRC/openSUSE:Factory/.dovecot23.new.1835/dovecot23.changes 2022-12-21 16:07:10.294726310 +0100 @@ -1,0 +2,11 @@ +Tue Dec 20 22:30:25 UTC 2022 - Thiago Macieira <thi...@kde.org> + +- Add suppor for Zstandard (zstd) to the compression (zlib) plugin: zstd has a + better compression ratio than gzip for the same amount of CPU work, or takes + less CPU to compress the same. It's also faster to decompress. +- Add dovecot-2.3.19-fix-doveadm-sync-special-folders.patch: + Patches from the release-2.3 branch that fix issues importing the INBOX + folder from a Cyrus IMAP server and dealing with auto-creating folders that + haven't yet been created + +------------------------------------------------------------------- New: ---- dovecot-2.3.19-fix-doveadm-sync-special-folders.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ dovecot23.spec ++++++ --- /var/tmp/diff_new_pack.0IZWQs/_old 2022-12-21 16:07:12.046735758 +0100 +++ /var/tmp/diff_new_pack.0IZWQs/_new 2022-12-21 16:07:12.050735780 +0100 @@ -58,6 +58,11 @@ %bcond_with argon %bcond_with lz4 %endif +%if 0%{?suse_version} >= 1110 +%bcond_without zstd +%else +%bcond_with zstd +%endif BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: bison BuildRequires: cyrus-sasl-devel @@ -73,6 +78,9 @@ %if %{with lz4} BuildRequires: liblz4-devel %endif +%if %{with zstd} +BuildRequires: libzstd-devel +%endif %if %{with argon} BuildRequires: libsodium-devel %endif @@ -152,6 +160,7 @@ Source12: dovecot23.keyring Patch: dovecot-2.3.0-dont_use_etc_ssl_certs.patch Patch1: dovecot-2.3.0-better_ssl_defaults.patch +Patch2: dovecot-2.3.19-fix-doveadm-sync-special-folders.patch Summary: IMAP and POP3 Server Written Primarily with Security in Mind License: BSD-3-Clause AND LGPL-2.1-or-later AND MIT Group: Productivity/Networking/Email/Servers @@ -378,6 +387,9 @@ %if %{with lz4} --with-lz4 \ %endif +%if %{with zstd} + --with-zstd \ +%endif --with-libcap \ --with-libwrap \ --with-docs \ ++++++ dovecot-2.3.19-fix-doveadm-sync-special-folders.patch ++++++ >From b05564d1575158cb011b4a66a37eccc926fe55db Mon Sep 17 00:00:00 2001 From: Timo Sirainen <timo.sirai...@open-xchange.com> Date: Fri, 4 Nov 2022 14:01:14 +0200 Subject: [PATCH 1/2] imapc: Fix listing INBOX when INBOX is already the namespace prefix This especially caused problems when using dsync with imapc, resulting in "Remote lost mailbox GUID" errors. --- src/lib-storage/index/imapc/imapc-list.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/lib-storage/index/imapc/imapc-list.c b/src/lib-storage/index/imapc/imapc-list.c index a9e03ecf02..d987538df2 100644 --- a/src/lib-storage/index/imapc/imapc-list.c +++ b/src/lib-storage/index/imapc/imapc-list.c @@ -754,7 +754,9 @@ imapc_list_iter_next(struct mailbox_list_iterate_context *_ctx) if (node == NULL) return mailbox_list_iter_default_next(_ctx); } while ((node->flags & MAILBOX_MATCHED) == 0 || - imapc_list_is_ns_root(ctx, node)); + (imapc_list_is_ns_root(ctx, node) && + (strcasecmp(vname, "INBOX") != 0 || + (ctx->info.ns->flags & NAMESPACE_FLAG_INBOX_ANY) == 0))); if (ctx->info.ns->prefix_len > 0 && strcasecmp(vname, "INBOX") != 0 && -- 2.38.1 >From 8fb6b9e1b847e6a0dc4f73d5d8cfb178830a282e Mon Sep 17 00:00:00 2001 From: Timo Sirainen <timo.sirai...@open-xchange.com> Date: Thu, 3 Nov 2022 17:40:28 +0200 Subject: [PATCH 2/2] dsync: Skip autocreated mailboxes that haven't been created yet --- src/doveadm/dsync/dsync-mailbox-tree-fill.c | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/doveadm/dsync/dsync-mailbox-tree-fill.c b/src/doveadm/dsync/dsync-mailbox-tree-fill.c index c523e6bdc5..17c1eea0e5 100644 --- a/src/doveadm/dsync/dsync-mailbox-tree-fill.c +++ b/src/doveadm/dsync/dsync-mailbox-tree-fill.c @@ -79,6 +79,7 @@ static int dsync_mailbox_tree_add(struct dsync_mailbox_tree *tree, { struct dsync_mailbox_node *node; struct mailbox *box; + enum mailbox_existence existence; struct mailbox_metadata metadata; struct mailbox_status status; const char *errstr; @@ -94,8 +95,23 @@ static int dsync_mailbox_tree_add(struct dsync_mailbox_tree *tree, /* get GUID and UIDVALIDITY for selectable mailbox */ box = mailbox_alloc(info->ns->list, info->vname, MAILBOX_FLAG_READONLY); - if (dsync_mailbox_tree_get_selectable(box, &metadata, &status) < 0) { + ret = mailbox_exists(box, FALSE, &existence); + if (ret == 0 && existence != MAILBOX_EXISTENCE_SELECT) { + /* autocreated mailbox doesn't exist yet */ + mailbox_free(&box); + if (existence == MAILBOX_EXISTENCE_NOSELECT) { + return !guid_128_is_empty(box_guid) ? 0 : + dsync_mailbox_tree_add_exists_node( + tree, info, &node, error_r); + } else { + return 0; + } + } + if (ret == 0) + ret = dsync_mailbox_tree_get_selectable(box, &metadata, &status); + if (ret < 0) { errstr = mailbox_get_last_internal_error(box, &error); + ret = 0; switch (error) { case MAIL_ERROR_NOTFOUND: /* mailbox was just deleted? */ -- 2.38.1