I see, it seems it wasn't compiled with maildir storage engine.

About running another dovecot instance on the same box, I never tried it myself, but I guess you could have your production version (which needs to support maildir, otherwise you won't be able to access the mailboxes after the migration) in /usr (as distros usually do), and install your customized version (with support for maildir and dbox for the migration) in /usr/local.

If you go this way, you will have to reference the dovecot version you're addressing with the full path (/usr/bin/doveadm or /usr/local/bin/doveadm), or you'll have to rely on your $PATH environment variable. You also need to take into account to separate the /etc directories for both instances, because you'll probably need slightly different configurations.

Cheers

On 2019-06-24 10:34, Adam Raszkiewicz via dovecot wrote:
Yeah, I think dovecot was a custom compiled build

Version is 2.2.18

Config:

# 2.2.18: /etc/dovecot/dovecot.conf
# Pigeonhole version 0.4.8
# OS: Linux 2.6.32-754.14.2.el6.x86_64 x86_64 CentOS release 6.10 (Final) xfs
auth_master_user_separator = *
auth_mechanisms = plain login
dict {
  acl = mysql:/etc/dovecot/dovecot-dict-sql.conf.ext
}
disable_plaintext_auth = no
lda_mailbox_autosubscribe = yes
log_path = /var/log/dovecot.log
mail_home = mdbox:/var/homedirs/%2Mu/%2.2Mu/%u
mail_location = mdbox:/var/mailboxes/%2Mu/%2.2Mu/%u
mail_plugins = acl
mail_shared_explicit_inbox = yes
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 index ihave duplicate vnd.dovecot.pipe
vnd.dovecot.filter vnd.dovecot.execute
namespace {
  list = children
  location = mdbox:/var/mailboxes/%%2Mu/%%2.2Mu/%%u
  prefix = shared/%%u/
  separator = /
  subscriptions = yes
  type = shared
}
namespace inbox {
  inbox = yes
  location =
  mailbox Drafts {
    auto = subscribe
    special_use = \Drafts
  }
  mailbox INBOX {
    auto = subscribe
  }
  mailbox Junk {
    special_use = \Junk
  }
  mailbox Sent {
    auto = subscribe
    special_use = \Sent
  }
  mailbox "Sent Messages" {
    special_use = \Sent
  }
  mailbox Trash {
    auto = subscribe
    special_use = \Trash
  }
  prefix =
  subscriptions = yes
}
passdb {
  args = /etc/dovecot/mastership-sql.conf
  driver = sql
  master = yes
  pass = yes
}
passdb {
  args = /etc/dovecot/dovecot-sql.conf.ext
  driver = sql
}
plugin {
  acl = vfile
  acl_defaults_from_inbox = yes
  acl_shared_dict = proxy::acl
  sieve_after = /etc/dovecot/sieve/99-file-qvera-ccda.sieve
  sieve_after2 = /etc/dovecot/sieve/98-notify-biz-address.sieve
  sieve_after3 = /etc/dovecot/sieve/97-mdn-processed.sieve
  sieve_execute_bin_dir = /etc/dovecot/sieve-execute
  sieve_execute_socket_dir = sieve-execute
sieve_extensions = +vnd.dovecot.execute +vnd.dovecot.filter +vnd.dovecot.pipe
  sieve_filter_bin_dir = /etc/dovecot/sieve-filter
  sieve_filter_socket_dir = sieve-filter
  sieve_pipe_bin_dir = /etc/dovecot/sieve-pipe
  sieve_pipe_socket_dir = sieve-pipe
  sieve_plugins = sieve_extprograms
}
postmaster_address = [email protected]
sendmail_path = /sbin/sendmail
service dict {
  unix_listener dict {
    user = dovecot
  }
}
service imap-postlogin {
  executable = script-login /etc/dovecot/imappostlogin
  user = $default_internal_user
}
service imap {
  executable = imap imap-postlogin
}
ssl = no
userdb {
  args = uid=dovecot gid=dovecot home=/var/mailboxes/%%2Mu/%%2.2Mu/%%u
  driver = static
}
protocol lmtp {
  mail_plugins = acl sieve
}
protocol lda {
  mail_plugins = acl sieve
}
protocol imap {
  mail_plugins = acl imap_acl
}

and --build-options:

Build options: ioloop=epoll notify=inotify ipv6 openssl io_block_size=8192
Mail storages: shared mdbox raw fail
SQL drivers: mysql
Passdb: checkpassword pam passwd passwd-file shadow sql
Userdb: checkpassword nss passwd prefetch passwd-file sql

At that point my question is if I can run another dovecot build on the
same box? I knew I can run the same instance but as is this a custom
build I want to have something generic just to use for migration
purposes.

Thanks,
Adam

On 6/21/19, 4:45 PM, "dovecot on behalf of Germán Herrera via
dovecot" <[email protected] on behalf of
[email protected]> wrote:

Well, judging by the error message it appears like dovecot hasn't been compiled with support for maildir, which is strange because I don't see
    any way to disable in the compile-time options.

    Are you using the precompiled package from the distro or compiling
    dovecot by yourself? Could you share the output of "dovecot
    --build-options" and "dovecot --version"?

    Thanks!

    On 2019-06-21 17:17, Adam Raszkiewicz wrote:

    > Hi German,
    >
    > I have tried your way and getting the same error message:
    >
> dsync([email protected]): Debug: Namespace inbox: type=private, prefix=,
    > sep=, inbox=yes, hidden=no, list=yes, subscriptions=yes
    > location=maildir:~/Maildir
    >
> dsync([email protected]): Error: User initialization failed: Namespace
    > '': Unknown mail storage driver maildir
    >
> Thoughts? Missing dovecot library, something in the configuration?
    >
    > Thanks,
    >
    > Adam
    >
> FROM: dovecot <[email protected]> on behalf of Germán Herrera
    > via dovecot <[email protected]>
    > ORGANIZATION: SES Sistemas Electrónicos S.A.
    > REPLY-TO: Germán Herrera <[email protected]>
    > DATE: Friday, June 21, 2019 at 3:10 PM
    > TO: Adam Raszkiewicz <[email protected]>
    > CC: "[email protected]" <[email protected]>
    > SUBJECT: Re: Mail migration problem
    >
    > Hi Adam
    >
    > Can you try: "doveadm sync -u <user> maildir:~/Maildir"
    >
    > My mailboxes are in sdbox (I have "mail_location =
    > sdbox:~/sdbox:ALT=/mnt/archive/%u/sdbox") and after running that
> command I managed to successfully migrate the user mailbox to maildir. > Also that is the command I used to migrate all my user's maildirs to
    > sdbox some time ago.
    >
    > Regards
    >
    > ---
    >
    > Germán Herrera
    > Responsable de IT
    > Ingeniería
> SES Sistemas Electrónicos S.A.| Espinosa 1045 (C1405AMM) | Buenos Aires
    > | Argentina
    > W: +54 11 54530000 | Email: [email protected]
    >
    > -------------------------
    >
    > Denos su opinión aquí
    >
    > On 2019-06-21 11:58, Adam Raszkiewicz via dovecot wrote:
    >
    >> I'm trying to migrate mdbox to maildir based on
    >> https://wiki.dovecot.org/Migration/MailFormat
    >>
    >> * Modified dovecot.conf and set
    >> mail_location=maildir:/tmp/destination/mailboxes/
    >> * Then I had run
    >>
    >> /mnt/testmail/bin/dsync -Dv -u [email protected] mirror
    >> mdbox:/source/mailboxes/[email protected]
    >>
    >> but that did nothing. Then I have
    >>
>> * Modified dovecot.conf and set mail_location=mdbox:/source/mailboxes
    >> * Then I had run
    >>
    >> /mnt/testmail/bin/dsync -Dv -u [email protected] mirror
    >> mdbox:/tmp/destination/mailboxes/[email protected]
    >>
    >> that copied over [email protected] mailbox from the source to the
    >> destination location. As that was working I have tried to run
    >>
    >> /mnt/testmail/bin/dsync -Dv -u [email protected] mirror
    >> maildir:/tmp/destination/mailboxes/[email protected]
    >>
    >> but that got an error:
    >>
>> dsync([email protected]): Debug: Namespace inbox: type=private, prefix=,
    >> sep=, inbox=yes, hidden=no, list=yes, subscriptions=yes
    >> location=maildir:/mnt/testmail/mailboxes
    >>
>> dsync([email protected]): Error: User initialization failed: Namespace
    >> '': Unknown mail storage driver maildir
    >>
>> First problem is that based on example #2 from above provided syntax >> in https://wiki.dovecot.org/Migration/MailFormat is incorrect or for
    >> some reason is not working for me as it should for example #1.
    >>
>> Second issue is not recognizing maildir format - what about that?
    >> Docecot has some missing libraries?
    >>
    >> Thanks,
    >>
    >> Adam

Reply via email to