Package: dovecot-core
Version: 1:2.1.7-7
Severity: normal

Dear Maintainer,

The lazy_expunge plugin is broken when deleting mail from Maildir
subfolders.

See discussion here:
  http://www.dovecot.org/list/dovecot/2012-September/068519.html

Fixed in upstream dovecot 2.1.11 (although not listed in ChangeLog).

Attached patch applies cleanly to Debian dovecot 1:2.1.7-7 package and
solves the issue.

Thanks!


-- Package-specific info:

dovecot configuration
---------------------
# 2.1.7: /etc/dovecot/dovecot.conf
# OS: Linux 3.2.0-4-amd64 x86_64 Debian 7.0 
auth_mechanisms = plain login
first_valid_gid = 100
first_valid_uid = 1000
last_valid_gid = 100
last_valid_uid = 1999
mail_location = maildir:~/Maildir
managesieve_notify_capability = mailto
managesieve_sieve_capability = fileinto reject envelope encoded-character 
vacation subaddress comparator-i;ascii-numeric relational regex imap4flags copy 
include variables body enotify environment mailbox date ihave
namespace expunged {
  list = no
  location = maildir:~/Maildir/expunged
  prefix = .EXPUNGED/
  separator = /
}
namespace inbox {
  inbox = yes
  location = 
  mailbox Drafts {
    special_use = \Drafts
  }
  mailbox Junk {
    special_use = \Junk
  }
  mailbox Sent {
    special_use = \Sent
  }
  mailbox "Sent Messages" {
    special_use = \Sent
  }
  mailbox Spam {
    special_use = \Junk
  }
  mailbox Trash {
    special_use = \Trash
  }
  prefix = 
  separator = /
}
passdb {
  args = /etc/dovecot/dovecot-ldap.conf.ext
  driver = ldap
}
plugin {
  antispam_backend = pipe
  antispam_pipe_program = /etc/dovecot/sa-learn
  antispam_pipe_program_notspam_arg = --ham
  antispam_pipe_program_spam_arg = --spam
  antispam_spam_pattern_ignorecase = Spam
  antispam_trash_pattern_ignorecase = Trash;Deleted *
  lazy_expunge = .EXPUNGED/
  sieve = ~/Maildir/sieve
  sieve_default = /etc/dovecot/default.sieve
  sieve_dir = ~/Maildir/sieve.d
}
protocols = " imap sieve"
service auth {
  unix_listener /var/spool/postfix/private/auth {
    group = postfix
    mode = 0660
    user = postfix
  }
}
service imap {
  vsz_limit = 1 G
}
service managesieve-login {
  inet_listener sieve {
    port = 4190
  }
  inet_listener sieve_deprecated {
    port = 2000
  }
}
ssl = required
ssl_cert = </etc/ssl/certs/unzane/mail.crt
ssl_key = </etc/ssl/private/unzane/mail.key
userdb {
  args = /etc/dovecot/dovecot-ldap.conf.ext
  driver = ldap
}
protocol lda {
  mail_plugins = " sieve"
}
protocol imap {
  mail_plugins = " antispam lazy_expunge"
}

-- System Information:
Debian Release: 7.0
  APT prefers stable
  APT policy: (500, 'stable')
Architecture: amd64 (x86_64)

Kernel: Linux 3.2.0-4-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) (ignored: LC_ALL 
set to en_US.UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages dovecot-core depends on:
ii  adduser         3.113+nmu3
ii  libbz2-1.0      1.0.6-4
ii  libc6           2.13-38
ii  libpam-runtime  1.1.3-7.1
ii  libpam0g        1.1.3-7.1
ii  libssl1.0.0     1.0.1e-2
ii  openssl         1.0.1e-2
ii  ucf             3.0025+nmu3
ii  zlib1g          1:1.2.7.dfsg-13

dovecot-core recommends no packages.

Versions of packages dovecot-core suggests:
pn  dovecot-gssapi        <none>
ii  dovecot-imapd         1:2.1.7-7
ii  dovecot-ldap          1:2.1.7-7
pn  dovecot-lmtpd         <none>
ii  dovecot-managesieved  1:2.1.7-7
pn  dovecot-mysql         <none>
pn  dovecot-pgsql         <none>
pn  dovecot-pop3d         <none>
ii  dovecot-sieve         1:2.1.7-7
pn  dovecot-solr          <none>
pn  dovecot-sqlite        <none>
ii  ntp                   1:4.2.6.p5+dfsg-2

Versions of packages dovecot-core is related to:
ii  dovecot-core [dovecot-common]  1:2.1.7-7
pn  dovecot-dbg                    <none>
pn  dovecot-dev                    <none>
pn  dovecot-gssapi                 <none>
ii  dovecot-imapd                  1:2.1.7-7
ii  dovecot-ldap                   1:2.1.7-7
pn  dovecot-lmtpd                  <none>
ii  dovecot-managesieved           1:2.1.7-7
pn  dovecot-mysql                  <none>
pn  dovecot-pgsql                  <none>
pn  dovecot-pop3d                  <none>
ii  dovecot-sieve                  1:2.1.7-7
pn  dovecot-sqlite                 <none>

-- no debconf information

-- 
Gerald Turner   Email: gtur...@unzane.com   JID: gtur...@unzane.com
GPG: 0xFA8CD6D5  21D9 B2E8 7FE7 F19E 5F7D  4D0C 3FA0 810F FA8C D6D5
diff -r ba770cba5598 -r 4e431b202cfd src/plugins/lazy-expunge/lazy-expunge-plugin.c
--- a/src/plugins/lazy-expunge/lazy-expunge-plugin.c	Sun Feb 12 18:55:28 2012 +0200
+++ b/src/plugins/lazy-expunge/lazy-expunge-plugin.c	Wed Sep 26 21:12:37 2012 +0300
@@ -70,11 +70,11 @@
 	const char *name;
 	char src_sep, dest_sep;
 
-	/* get the storage name, so it doesn't have namespace prefix */
+	/* use the (canonical / unaliased) storage name */
 	name = src_box->name;
-	/* replace hierarchy separators with destination separator */
+	/* replace hierarchy separators with destination virtual separator */
 	src_sep = mailbox_list_get_hierarchy_sep(src_box->list);
-	dest_sep = mailbox_list_get_hierarchy_sep(list);
+	dest_sep = mail_namespace_get_sep(list->ns);
 	if (src_sep != dest_sep) {
 		string_t *str = t_str_new(128);
 		unsigned int i;
@@ -87,7 +87,7 @@
 		}
 		name = str_c(str);
 	}
-	/* add expunge namespace prefix */
+	/* add expunge namespace prefix. the name is now a proper vname */
 	name = t_strconcat(list->ns->prefix, name, NULL);
 
 	box = mailbox_alloc(list, name, MAILBOX_FLAG_NO_INDEX_FILES);




Attachment: pgpBJl9Mt4aZB.pgp
Description: PGP signature

Reply via email to