On 13/05/2020 10:11 Sam Kuper sampablokuper@posteo.net wrote:
Dear Dovecot users/devs,
I have the following mbox file:
/tmp/dsync_test/mbox/2002-September
I would like to convert it to a Maildir:
/tmp/dsync_test/maildir
(Currently, the latter is just an empty directory.)
I am attempting this on an old PC running Debian 9 ("Stretch"). I installed the dovecot-core package in order to make the
dsync
tool available on that PC. I have not otherwise done anything with Dovecot on that PC; for instance, I have not created or edited any Dovecot config files.man dsync
gives the Dovecot version as 2.2.Inspired by the man page and the Dovecot wiki, here was my first attempt to perform the conversion. (I have added newlines between each line of the output, for readability.)
$ dsync -Dv -o 'mail_location=maildir:/tmp/dsync_test/maildir' \ backup \ mbox:/tmp/dsync_test/mbox/:INBOX=/tmp/dsync_test/mbox/2002-September Debug: Loading modules from directory: /usr/lib/dovecot/modules/doveadm Debug: Skipping module doveadm_acl_plugin, because dlopen() failed: /usr/lib/dovecot/modules/doveadm/lib10_doveadm_acl_plugin.so: undefined symbol: acl_lookup_dict_iterate_visible_next (this is usually intentional, so just ignore this message) Debug: Skipping module doveadm_expire_plugin, because dlopen() failed: /usr/lib/dovecot/modules/doveadm/lib10_doveadm_expire_plugin.so: undefined symbol: expire_set_deinit (this is usually intentional, so just ignore this message) Debug: Skipping module doveadm_quota_plugin, because dlopen() failed: /usr/lib/dovecot/modules/doveadm/lib10_doveadm_quota_plugin.so: undefined symbol: quota_user_module (this is usually intentional, so just ignore this message) Debug: Skipping module doveadm_fts_lucene_plugin, because dlopen() failed: /usr/lib/dovecot/modules/doveadm/lib20_doveadm_fts_lucene_plugin.so: undefined symbol: lucene_index_iter_deinit (this is usually intentional, so just ignore this message) Debug: Skipping module doveadm_fts_plugin, because dlopen() failed: /usr/lib/dovecot/modules/doveadm/lib20_doveadm_fts_plugin.so: undefined symbol: fts_user_get_language_list (this is usually intentional, so just ignore this message) Debug: Skipping module doveadm_mail_crypt_plugin, because dlopen() failed: /usr/lib/dovecot/modules/doveadm/libdoveadm_mail_crypt_plugin.so: undefined symbol: mail_crypt_box_get_pvt_digests (this is usually intentional, so just ignore this message) doveadm(sampablokuper): Debug: Effective uid=1000, gid=1000, home=/home/sampablokuper doveadm(sampablokuper): Debug: Namespace inbox: type=private, prefix=, sep=, inbox=yes, hidden=no, list=yes, subscriptions=yes location=maildir:/tmp/dsync_test/maildir doveadm(sampablokuper): Debug: maildir++: root=/tmp/dsync_test/maildir, index=, indexpvt=, control=, inbox=/tmp/dsync_test/maildir, alt= doveadm(sampablokuper): Debug: Namespace : Using permissions from /tmp/dsync_test/maildir: mode=0755 gid=default dsync(sampablokuper): Debug: Effective uid=1000, gid=1000, home=/home/sampablokuper dsync(sampablokuper): Debug: Namespace inbox: type=private, prefix=, sep=, inbox=yes, hidden=no, list=yes, subscriptions=yes location=mbox:/tmp/dsync_test/mbox/:INBOX=/tmp/dsync_test/mbox/2002-September dsync(sampablokuper): Debug: fs: root=/tmp/dsync_test/mbox, index=, indexpvt=, control=, inbox=/tmp/dsync_test/mbox/2002-September, alt= dsync(sampablokuper): Error: Mail locations must use the same virtual mailbox hierarchy separator (specify separator for the default namespace)
As you can see, it ends with "Error: Mail locations must use the same virtual mailbox hierarchy separator (specify separator for the default namespace)".
So, I tried specifying a hierarchy separator, but this failed too:
$ dsync -Dv
-o 'separator=.'
-o 'mail_location=maildir:/tmp/dsync_test/maildir'
backup
mbox:/tmp/dsync_test/mbox/:INBOX=/tmp/dsync_test/mbox/2002-SeptemberDebug: Loading modules from directory: /usr/lib/dovecot/modules/doveadm Debug: Skipping module doveadm_acl_plugin, because dlopen() failed: /usr/lib/dovecot/modules/doveadm/lib10_doveadm_acl_plugin.so: undefined symbol: acl_lookup_dict_iterate_visible_next (this is usually intentional, so just ignore this message) Debug: Skipping module doveadm_expire_plugin, because dlopen() failed: /usr/lib/dovecot/modules/doveadm/lib10_doveadm_expire_plugin.so: undefined symbol: expire_set_deinit (this is usually intentional, so just ignore this message) Debug: Skipping module doveadm_quota_plugin, because dlopen() failed: /usr/lib/dovecot/modules/doveadm/lib10_doveadm_quota_plugin.so: undefined symbol: quota_user_module (this is usually intentional, so just ignore this message) Debug: Skipping module doveadm_fts_lucene_plugin, because dlopen() failed: /usr/lib/dovecot/modules/doveadm/lib20_doveadm_fts_lucene_plugin.so: undefined symbol: lucene_index_iter_deinit (this is usually intentional, so just ignore this message) Debug: Skipping module doveadm_fts_plugin, because dlopen() failed: /usr/lib/dovecot/modules/doveadm/lib20_doveadm_fts_plugin.so: undefined symbol: fts_user_get_language_list (this is usually intentional, so just ignore this message) Debug: Skipping module doveadm_mail_crypt_plugin, because dlopen() failed: /usr/lib/dovecot/modules/doveadm/libdoveadm_mail_crypt_plugin.so: undefined symbol: mail_crypt_box_get_pvt_digests (this is usually intentional, so just ignore this message) doveadm(sampablokuper): Debug: Effective uid=1000, gid=1000, home=/home/sampablokuper doveadm(sampablokuper): Debug: Namespace inbox: type=private, prefix=, sep=, inbox=yes, hidden=no, list=yes, subscriptions=yes location=maildir:/tmp/dsync_test/maildir doveadm(sampablokuper): Debug: maildir++: root=/tmp/dsync_test/maildir, index=, indexpvt=, control=, inbox=/tmp/dsync_test/maildir, alt= doveadm(sampablokuper): Debug: Namespace : Using permissions from /tmp/dsync_test/maildir: mode=0755 gid=default dsync(sampablokuper): Debug: Effective uid=1000, gid=1000, home=/home/sampablokuper dsync(sampablokuper): Debug: Namespace inbox: type=private, prefix=, sep=, inbox=yes, hidden=no, list=yes, subscriptions=yes location=mbox:/tmp/dsync_test/mbox/:INBOX=/tmp/dsync_test/mbox/2002-September dsync(sampablokuper): Debug: fs: root=/tmp/dsync_test/mbox, index=, indexpvt=, control=, inbox=/tmp/dsync_test/mbox/2002-September, alt= dsync(sampablokuper): Error: Mail locations must use the same virtual mailbox hierarchy separator (specify separator for the default namespace)
I got the same error again when I tried the command above with "/" instead of "." as the hierarchy separator.
Forgive me for my ignorance, but how should I correct the invocation I used above? In other words: using dsync, how can I extract/copy the emails from the mbox to the new Maildir?
Thank you!
-- A: When it messes up the order in which people normally read text. Q: When is top-posting a bad thing?
() ASCII ribbon campaign. Please avoid HTML emails & proprietary /\ file formats. (Why? See e.g. https://v.gd/jrmGbS ). Thank you.
Edit your dovecot.conf and add
namespace { inbox = yes # or use '.' here. separator = / }
Aki