Convert standalone mbox to standalone Maildir with Dsync - hierarchy separator error
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.
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
On Wed, May 13, 2020 at 11:03:37AM +0300, Aki Tuomi wrote:
Edit your dovecot.conf and add
namespace { inbox = yes # or use '.' here. separator = / }
Thanks for the suggestion! I added those lines to the bottom of /etc/dovecot/dovecot.conf .
However, when I attempted the mbox to maildir conversion afterwards, I still received an error, albeit a different one:
$ 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 : 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): Error: User initialization failed: namespace
configuration error: Duplicate namespace prefix: ""
doveadm(sampablokuper): Error: User init failed
I was able to resolve this error by commenting out this line in my /etc/dovecot/dovecot.conf:
include conf.d/*.conf
Even after that, though, dsync still failed to migrate the source mbox's contents to the target maildir, but this time with a "Skipping unchanged mailbox" message. See below for full output.
(Dsync did however replace the source mbox's contents with a dummy message: "This text is part of the internal format of your mail folder, and is not a real message. ...".)
I would be grateful for assistance to make dsync convert the mbox to a maildir.
Here is dsync's output:
$ 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 : 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 : 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): Debug: Namespace : Using permissions from
/tmp/dsync_test/mbox: mode=0755 gid=default
dsync(sampablokuper): Debug: brain M: Local mailbox tree: INBOX
guid=49147222caefc55e0851000041fea997 uid_validity=1590030282
uid_next=1 subs=no last_change=0 last_subs=0
dsync(sampablokuper): Debug: brain S: Local mailbox tree: INBOX
guid=aa02c63478e7c55eff3a000041fea997 uid_validity=1590028152
uid_next=1 subs=no last_change=0 last_subs=0
dsync(sampablokuper): Debug: brain M: Remote mailbox tree: INBOX
guid=aa02c63478e7c55eff3a000041fea997 uid_validity=1590028152
uid_next=1 subs=no last_change=0 last_subs=0
dsync(sampablokuper): Debug: brain S: Remote mailbox tree: INBOX
guid=49147222caefc55e0851000041fea997 uid_validity=1590030282
uid_next=1 subs=no last_change=0 last_subs=0
dsync(sampablokuper): Debug: brain M: Remote mailbox tree deletion:
guid=ab02c63478e7c55eff3a000041fea997 type=mailbox
timestamp=1590028152 name= local update=not found
dsync(sampablokuper): Debug: brain M: Mailbox INBOX:
local=49147222caefc55e0851000041fea997/0/1,
remote=aa02c63478e7c55eff3a000041fea997/0/1: GUIDs conflict - will
be merged later
dsync(sampablokuper): Debug: brain S: Mailbox INBOX:
local=aa02c63478e7c55eff3a000041fea997/0/1,
remote=49147222caefc55e0851000041fea997/0/1: GUIDs conflict - will
be merged later
dsync(sampablokuper): Debug: brain S: Deleting mailbox 'INBOX' (GUID
aa02c63478e7c55eff3a000041fea997): UIDVALIDITY changed (1590030282
-> 1590028152)
dsync(sampablokuper): Debug: Namespace :
/tmp/dsync_test/mbox/2002-September doesn't exist yet, using default
permissions
dsync(sampablokuper): Debug: Namespace : Using permissions from
/tmp/dsync_test/mbox: mode=0755 gid=default
dsync(sampablokuper): Debug: Namespace :
/tmp/dsync_test/mbox/2002-September doesn't exist yet, using default
permissions
dsync(sampablokuper): Debug: Namespace : Using permissions from
/tmp/dsync_test/mbox: mode=0755 gid=default
dsync(sampablokuper): Debug: brain S: Skipping unchanged mailbox
49147222caefc55e0851000041fea997
And here is my full /etc/dovecot/dovecot.conf :
## Dovecot configuration file
# If you're in a hurry, see http://wiki2.dovecot.org/QuickConfiguration
# "doveconf -n" command gives a clean output of the changed settings. Use it
# instead of copy&pasting files when posting to the Dovecot mailing list.
# '#' character and everything after it is treated as comments. Extra spaces
# and tabs are ignored. If you want to use either of these explicitly, put the
# value inside quotes, eg.: key = "# char and trailing whitespace "
# Most (but not all) settings can be overridden by different protocols and/or
# source/destination IPs by placing the settings inside sections, for example:
# protocol imap { }, local 127.0.0.1 { }, remote 10.0.0.0/8 { }
# Default values are shown for each setting, it's not required to uncomment
# those. These are exceptions to this though: No sections (e.g. namespace {})
# or plugin settings are added by default, they're listed only as examples.
# Paths are also just examples with the real defaults being based on configure
# options. The paths listed here are for configure --prefix=/usr
# --sysconfdir=/etc --localstatedir=/var
# Enable installed protocols
!include_try /usr/share/dovecot/protocols.d/*.protocol
# A comma separated list of IPs or hosts where to listen in for connections.
# "*" listens in all IPv4 interfaces, "::" listens in all IPv6 interfaces.
# If you want to specify non-default ports or anything more complex,
# edit conf.d/master.conf.
#listen = *, ::
# Base directory where to store runtime data.
#base_dir = /var/run/dovecot/
# Name of this instance. In multi-instance setup doveadm and other commands
# can use -i <instance_name> to select which instance is used (an alternative
# to -c <config_path>). The instance name is also added to Dovecot processes
# in ps output.
#instance_name = dovecot
# Greeting message for clients.
#login_greeting = Dovecot ready.
# Space separated list of trusted network ranges. Connections from these
# IPs are allowed to override their IP addresses and ports (for logging and
# for authentication checks). disable_plaintext_auth is also ignored for
# these networks. Typically you'd specify your IMAP proxy servers here.
#login_trusted_networks =
# Space separated list of login access check sockets (e.g. tcpwrap)
#login_access_sockets =
# With proxy_maybe=yes if proxy destination matches any of these IPs, don't do
# proxying. This isn't necessary normally, but may be useful if the destination
# IP is e.g. a load balancer's IP.
#auth_proxy_self =
# Show more verbose process titles (in ps). Currently shows user name and
# IP address. Useful for seeing who are actually using the IMAP processes
# (eg. shared mailboxes or if same uid is used for multiple accounts).
#verbose_proctitle = no
# Should all processes be killed when Dovecot master process shuts down.
# Setting this to "no" means that Dovecot can be upgraded without
# forcing existing client connections to close (although that could also be
# a problem if the upgrade is e.g. because of a security fix).
#shutdown_clients = yes
# If non-zero, run mail commands via this many connections to doveadm server,
# instead of running them directly in the same process.
#doveadm_worker_count = 0
# UNIX socket or host:port used for connecting to doveadm server
#doveadm_socket_path = doveadm-server
# Space separated list of environment variables that are preserved on Dovecot
# startup and passed down to all of its child processes. You can also give
# key=value pairs to always set specific settings.
#import_environment = TZ
##
## Dictionary server settings
##
# Dictionary can be used to store key=value lists. This is used by several
# plugins. The dictionary can be accessed either directly or though a
# dictionary server. The following dict block maps dictionary names to URIs
# when the server is used. These can then be referenced using URIs in format
# "proxy::<name>".
dict {
#quota = mysql:/etc/dovecot/dovecot-dict-sql.conf.ext
#expire = sqlite:/etc/dovecot/dovecot-dict-sql.conf.ext
}
# Most of the actual configuration gets included below. The filenames are
# first sorted by their ASCII value and parsed in that order. The 00-prefixes
# in filenames are intended to make it easier to understand the ordering.
#!include conf.d/*.conf
# A config file can also tried to be included without giving an error if
# it's not found:
!include_try local.conf
# Added 16/5/2020, per Aki Tuomi advice:
namespace {
inbox = yes
# or use '.' here.
separator = /
}
Thank you again!
-- 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.
On Thu, May 21, 2020 at 04:16:26AM +0100, Sam Kuper wrote:
On Wed, May 13, 2020 at 11:03:37AM +0300, Aki Tuomi wrote:
Edit your dovecot.conf and add
namespace { inbox = yes # or use '.' here. separator = / }
Thanks for the suggestion! I added those lines to the bottom of /etc/dovecot/dovecot.conf .
However, when I attempted the mbox to maildir conversion afterwards, I still received an error, albeit a different one:
$ dsync -Dv \ -o 'mail_location=maildir:/tmp/dsync_test/maildir' \ backup \ mbox:/tmp/dsync_test/mbox/:INBOX=/tmp/dsync_test/mbox/2002-September [..] doveadm(sampablokuper): Error: User initialization failed: namespace configuration error: Duplicate namespace prefix: "" doveadm(sampablokuper): Error: User init failed
I was able to resolve this error by commenting out this line in my /etc/dovecot/dovecot.conf:
include conf.d/*.conf
I meant to add, for anyone else reading this who might be experiencing the same error, that the following thread was quite helpful:
https://forum.vestacp.com/viewtopic.php?t=17154
-- 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.
participants (2)
-
Aki Tuomi
-
Sam Kuper