Upgrading Dovecot CE from 2.4 to 2.4.x
Dovecot CE
v2.4.0 to v2.4.1
- Added
MALLOC_MMAP_THRESHOLD_=131072toimport_environmentwhen building with glibc. Note thatdovecot_config_versionvalue does not affect change - it's always added.
v2.4.2 to v2.4.3
- Using Settings Variables with LDAP settings now requires using
| safefilter to allow passing through LDAP characters that are otherwise escaped. Thesafefilter must always be the last filter in the pipeline. Note that this should be used only for variables coming from trusted sources, not for e.g. username variable.
Changed Setting Defaults
These changes don't take effect until dovecot_config_version is changed from 2.4.0 to 2.4.1.
| Setting | Old Default Value | New Default Value |
|---|---|---|
mail_cache_fields | flags | flags hdr.date hdr.subject hdr.from hdr.sender hdr.reply-to hdr.to hdr.cc hdr.bcc hdr.in-reply-to hdr.message-id date.received size.virtual imap.bodystructure mime.parts hdr.references hdr.importance hdr.x-priority hdr.x-open-xchange-share-url pop3.uidl pop3.order |
service/auth/unix_listener/auth-userdb/group | (empty = root) | $SET:default_internal_group |
service/lmtp/restart_request_count | unlimited | 1 |
lmtp_user_concurrency_limit | unlimited | 10 |
v2.4.1 to v2.4.2
Changed Setting Defaults
These changes don't take effect until dovecot_config_version is changed to 2.4.2.
| Setting | Old Default Value | New Default Value |
|---|---|---|
@metric_defaults/proxy/metric | Adds proxy_session_established | |
service/anvil/unix_listener/anvil/mode | 0600 | 0660 |
service/anvil/unix_listener/anvil/group | (empty = root) | $SET:default_internal_group |
mailbox_directory_name_legacy | yes | no |
mail_attachment_detection_options | add-flags content-type=!application/signature |
v2.4.2 to v2.4.3
Changed Setting Defaults
These changes don't take effect until dovecot_config_version is changed to 2.4.3.
| Setting | Old Default Value | New Default Value |
|---|---|---|
fts_message_max_size | 0 is not allowed anymore to mean unlimited use unlimited instead | |
last_valid_gid | 0 is not allowed anymore to mean unlimited use unlimited instead | |
last_valid_uid | 0 is not allowed anymore to mean unlimited use unlimited instead | |
lazy_expunge_only_last_instance | no | yes |
mail_access_groups | default_internal_group | |
mail_cache_max_header_name_length | 0 is not allowed anymore to mean unlimited use unlimited instead | |
mail_cache_max_headers_count | 0 is not allowed anymore to mean unlimited use unlimited instead | |
mail_sort_max_read_count | 0 is not allowed anymore to mean unlimited use unlimited instead | |
mail_vsize_bg_after_count | 0 is not allowed anymore to mean unlimited use unlimited instead | |
passdb_default_password_scheme | PLAIN | CRYPT |
sieve_quota_script_count | 0 is not allowed anymore to mean unlimited use unlimited instead | |
sieve_quota_storage_size | 0 is not allowed anymore to mean unlimited use unlimited instead | |
submission_max_recipients | 0 is not allowed anymore to mean unlimited use unlimited instead | |
maildir/mail_attachment_detection_options | add-flags content-type=!application/signature | |
passdb_passwd_file/passdb_default_password_scheme | PLAIN | CRYPT |
passdb_sql/passdb_default_password_scheme | PLAIN | CRYPT |
service/doveadm/service_extra_groups | default_internal_group | |
service/imap/service_extra_groups | default_internal_group | |
service/imap-urlauth-worker/service_extra_groups | default_internal_group | |
service/indexer-worker/service_extra_groups | default_internal_group | |
service/lmtp/service_extra_groups | default_internal_group | |
service/pop3/service_extra_groups | default_internal_group | |
service/submission/service_extra_groups | default_internal_group | |
service/managesieve/service_extra_groups | default_internal_group | |
@mailbox_defaults/english/namespace/inbox/mailbox/Drafts/mailbox_auto | no | subscribe |
@mailbox_defaults/english/namespace/inbox/mailbox/Junk/mailbox_auto | no | subscribe |
@mailbox_defaults/english/namespace/inbox/mailbox/Sent/mailbox_auto | no | subscribe |
@mailbox_defaults/english/namespace/inbox/mailbox/Trash/mailbox_auto | no | subscribe |
service/anvil/unix_listener/anvil-auth-penalty/mode | 0600 | 0660 |
service/anvil/unix_listener/anvil-auth-penalty/group | default_internal_group | |
service/imap/unix_listener/imap-master/user | default_internal_user |
Removed Features
| Feature | Notes |
|---|---|
acl_global_path setting | See ACL Settings Migration. |
v2.4.3 to v2.4.4
Forcibly Changed Setting Defaults
Unlike other default setting changes, this change takes effect regardless of dovecot_config_version. This is because indexer-worker now drops root privileges, and the old default could make the service non-working.
| Setting | Old Default Value | New Default Value |
|---|---|---|
service/indexer-worker/service_restart_request_count | service_restart_request_count | 1 |
Changed Setting Defaults
These changes don't take effect until dovecot_config_version is changed to 2.4.4.
| Setting | Old Default Value | New Default Value |
|---|---|---|
push_notification_ox/http_client_request_max_attempts | 1 | 2 |
push_notification_ox/http_client_request_timeout | 1min | 2s |
service/lmtp/service_extra_groups | default_internal_group |
v2.4.4 to v2.4.5
- String List and Boolean List setting keys are now expanded with
Settings variablesthe same way their values already were. Keys defined in the configuration are always expanded. For settings overrides only default overrides expand the keys; keys coming from-ocommand line parameters and from userdb are kept literal. - The per-field time and date Settings Variables providers are now deprecated:
time:hour,time:min,time:minute,time:sec,time:second,time:usecanddate:year,date:month,date:day. Use the newtime:unixprovider together with thedatefilter instead. Note that the old providers always used the local timezone, whereas thedatefilter defaults to UTC, so to keep the old behavior passtz='local': use%{time:unix | date('%H', 'local')}in place of%{time:hour}. The new approach additionally supports UTC, timestamps from any other variable, and ISO 8601 / RFC 3339 output via theiso8601filter. The deprecated providers keep working for now.
Changed Setting Defaults
These changes don't take effect until dovecot_config_version is changed to 2.4.5.
| Setting | Old Default Value | New Default Value |
|---|---|---|
sieve_max_cpu_time | 0 (unlimited) | 30s |
imap_compress_on_proxy | no | yes |
New Features
| Feature | Notes |
|---|---|
| `escape` filter | Explicitly apply the configured escape function within a variable expansion pipeline. Useful for partial escaping when combined with concat and safe. |
| `time:unix` provider | Returns the current time as a <seconds>.<nanoseconds> UNIX timestamp. Recommended replacement for the deprecated per-field time:/date: providers. |
| `epoch` | Convert and format UNIX timestamps (unit scaling, calendar formatting via strftime, and ISO 8601 / RFC 3339 output). |
Removed Features
| Feature | Notes |
|---|---|
auth: SIGHUP, SIGUSR2 | Use doveadm auth cache flush to flush the cache and doveadm auth cache status to inspect cache statistics instead. |