Upgrading Dovecot v1.0 to v1.1
==============================

You can use your old 'dovecot.conf' from v1.0. It should work without changes,
although a couple of deprecated settings have been removed.

Upgrading from Dovecot versions older than v1.0.rc1 directly to v1.1 is not
recommended. v1.0 versions contain some backwards compatibility checks and file
format converters that have been removed from v1.1.

If you want to downgrade back after running v1.1, don't downgrade to older
versions than v1.0.8 or you'll get crashes. Especially if you're using maildir,
the 'dovecot-uidlist' file format has changed and Dovecot versions older than
v1.0.2 can't read it.

Connections
-----------

 * 'listen = [::]' listens only for IPv6 connections now in most operating
   systems. If you want both IPv4 and IPv6 use 'listen = *, [::]'
 * By default the number of connections per-user per-IP is limited to 10. You
   can change this with the 'mail_max_userip_connections' setting.

Authentication
--------------

 * <passwd-file> [AuthDatabase.PasswdFile.txt]: If you use %d in args, it no
   longer means that domain isn't looked up from the passwd-file. You'll need
   to add 'username_format=%n' prefix to args (e.g. 'args = username_format=%n
   /etc/virtual.%d').
 * Empty or NULL password no longer means "any password is valid". You'll also
   have to return "nopassword" field.
 * <PAM> [PasswordDatabase.PAM.txt]: There's no more 'blocking=yes' setting,
   it's now always enabled. If you want to limit the number of lookups done by
   a dovecot-auth worker, change 'auth_worker_max_request_count' setting.
   Setting it to 1 makes it work basically the same as the old 'blocking=no'.
 * <passwd> [AuthDatabase.Passwd.txt]: The problem with passwd lookups is that
   temporary errors (e.g. LDAP server down) are returned as "user doesn't
   exist" errors. You may want to try the new <NSS> [UserDatabase.NSS.txt]
   userdb.
 * <SQL> [AuthDatabase.SQL.txt] and <LDAP> [AuthDatabase.LDAP.txt]:
   'user_global_uid' and 'user_global_gid' fields have been removed from their
   config files. Instead you can now use 'mail_uid' and 'mail_gid' settings in
   'dovecot.conf'. This also means that it's no longer a requirement to specify
   a userdb at all (a dummy <static userdb> [UserDatabase.Static.txt] is used
   internally).

Mail handling
-------------

 * In v1.0 'mmap_disable=yes' might have worked faster. If you had changed this
   only because of that, it's time to set it back to "no".
 * <NFS.txt> users should now set 'mail_nfs_storage=yes' and
   'mail_nfs_index=yes'. Dovecot no longer requires attribute cache to be
   disabled.
 * <Quota.txt> plugin has completely new configuration. See <Quota.1.1.txt>.
 * <Maildir> [MailboxFormat.Maildir.txt]: 'dovecot-uidlist' file is in a new
   format. The old format is automatically converted to new one, but if you
   plan to move back to v1.0 be sure to use at least v1.0.2 which will also
   understand this new format.
 * Index files have slightly changed as well. Upgrading to v1.1 should go
   transparently, but moving back to v1.0 might again cause some errors. v1.0.8
   fixes some assert-crashes that were caused by reading v1.1-generated index
   files.
 * 'dotlock_use_excl=yes' is default nowadays. If you're still using an ancient
   NFSv2 setup, you'll need to set this to "no".
 * mbox: Delete existing dovecot.index.cache files from all mailboxes.
   Otherwise you may see some errors in logs.
 * 'default_mail_env' has been renamed to 'mail_location' (since v1.0.rc11
   already).
 * Namespaces:
    * deliver now supports namespaces. If you use namespace prefixes or a
      non-default separator and you deliver to non-INBOXes, deliver will now
      have to use the configured prefix and separators.
       * This is especially important for Sieve scripts. For example if you
         only have "INBOX." namespace prefix and you used to use 'fileinto
         "box"', it now has to be instead: 'fileinto "INBOX.box"'
    * 'hidden=yes' now hides the namespace only from IMAP NAMESPACE reply.
      You'll also need to set 'list=no' to truly hide them from clients'
      mailbox list.

Removed settings
----------------

 * mail_read_mmaped: Mails are never read mmaped anymore. There wasn't much
   point.
 * mmap_no_write: OpenBSD users will have to settle for mmap_disable=yes for
   now.

(This file was created from the wiki on 2019-06-19 12:42)
