Convert standalone mbox to standalone Maildir with Dsync - hierarchy separator error
Aki Tuomi
aki.tuomi at open-xchange.com
Wed May 13 11:03:37 EEST 2020
> On 13/05/2020 10:11 Sam Kuper <sampablokuper at 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-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)
>
>
> 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
More information about the dovecot
mailing list