From c59158d7df706e93f218f11677abe621a621d859 Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Sat, 12 Sep 2026 19:46:53 +0000 Subject: [PATCH 1/2] upgrade: Document settings that can't be used inside filters Some settings are now a configuration error inside filters that don't use them, instead of being silently ignored. --- docs/installation/upgrade/2.4-to-2.4.x.md | 2 ++ .../include/2.4.6-filter-inherited-settings.inc | 12 ++++++++++++ 2 files changed, 14 insertions(+) create mode 100644 docs/installation/upgrade/include/2.4.6-filter-inherited-settings.inc diff --git a/docs/installation/upgrade/2.4-to-2.4.x.md b/docs/installation/upgrade/2.4-to-2.4.x.md index 71e354086..37c2356fb 100644 --- a/docs/installation/upgrade/2.4-to-2.4.x.md +++ b/docs/installation/upgrade/2.4-to-2.4.x.md @@ -197,6 +197,8 @@ INBOX namespace. + + #### Doveadm Logging Changes diff --git a/docs/installation/upgrade/include/2.4.6-filter-inherited-settings.inc b/docs/installation/upgrade/include/2.4.6-filter-inherited-settings.inc new file mode 100644 index 000000000..650b9930b --- /dev/null +++ b/docs/installation/upgrade/include/2.4.6-filter-inherited-settings.inc @@ -0,0 +1,12 @@ + * Some settings can now be used only where they have an effect. Using one + inside a filter that doesn't use it is a configuration error instead of + being silently ignored. For example [[setting,quota_mail_size]] applies to + the user rather than to a quota root, so it can't be used inside + `quota { .. }`. + * The global `default_*` settings and [[setting,protocols]] can be used only + globally. Setting a `default_*` inside `service { .. }` used to change that + service's derived settings, because their defaults expand + `$SET:default_internal_user` and similar within the filter. Use the + per-service setting instead, e.g. [[setting,service_user]] rather than + `service foo { default_internal_user = .. }`. Referring to the global + settings with `$SET:` inside a filter keeps working. From e56b012e6f01083774344890290ad965db07c8ea Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Sat, 12 Sep 2026 19:47:13 +0000 Subject: [PATCH 2/2] settings: Rename listen to inet_listener_listen The old name still works as an alias. Document the new name next to the other inet_listener settings, where it belongs now. --- data/settings.js | 60 +++++++++++-------- data/updates.js | 1 + docs/installation/upgrade/2.4-to-2.4.x.md | 2 + .../include/2.4-converted-settings.inc | 2 +- .../upgrade/include/2.4.6-listen-setting.inc | 3 + 5 files changed, 43 insertions(+), 25 deletions(-) create mode 100644 docs/installation/upgrade/include/2.4.6-listen-setting.inc diff --git a/data/settings.js b/data/settings.js index 55107147f..61ddfe413 100644 --- a/data/settings.js +++ b/data/settings.js @@ -7437,12 +7437,45 @@ distinguish different listener types that one service may employ.` inet_listener_port: { tags: [ 'service' ], values: setting_types.IN_PORT, - seealso: [ 'listen' ], + seealso: [ 'inet_listener_listen' ], default: 0, text: ` Port number where to listen. \`0\` disables the listener.` }, + inet_listener_listen: { + tags: [ 'service' ], + default: '\*, \:\:', + values: setting_types.IPADDR, + changed: { + settings_listen_renamed: ` +Renamed from \`listen\`, which still works as an alias.` + }, + text: ` +A comma-separated list of IP addresses or hostnames on which external network +connections will be handled. + +\`*\` listens at all IPv4 interfaces, and \`::\` listens at all IPv6 +interfaces. + +Example: + +\`\`\` +listen = 127.0.0.1, 192.168.0.1 +\`\`\` + +The setting can be used globally, inside a \`service { .. }\` and inside an +[[setting,inet_listener]], where the most specific value wins, e.g.: + +\`\`\` +service imap-login { + inet_listener imap { + listen = 192.168.0.1 + } +} +\`\`\`` + }, + inet_listener_ssl: { tags: [ 'service' ], values: setting_types.BOOLEAN, @@ -7562,31 +7595,10 @@ The directory from which you execute commands via doveadm-exec.` }, listen: { - default: '\*, \:\:', values: setting_types.IPADDR, + seealso: [ 'inet_listener_listen' ], text: ` -A comma-separated list of IP addresses or hostnames on which external network -connections will be handled. - -\`*\` listens at all IPv4 interfaces, and \`::\` listens at all IPv6 -interfaces. - -Example: - -\`\`\` -listen = 127.0.0.1, 192.168.0.1 -\`\`\` - -This setting can be used also inside an [[setting,inet_listener]] to override -the listener address, e.g.: - -\`\`\` -service imap-login { - inet_listener imap { - listen = 192.168.0.1 - } -} -\`\`\`` +Alias for [[setting,inet_listener_listen]].` }, lmtp_add_received_header: { diff --git a/data/updates.js b/data/updates.js index 3c8908759..f66d14dc3 100644 --- a/data/updates.js +++ b/data/updates.js @@ -89,6 +89,7 @@ export const updates = { settings_boolean_values_changed: '2.4.6', settings_delayed_expansion_changed: '2.4.2', settings_list_key_variables_changed: '2.4.5', + settings_listen_renamed: '2.4.6', settings_path_types_added: '2.4.6', settings_syntax_named_filters_added: '2.4.0', sieve_ext_imapflags: '2.4.0', diff --git a/docs/installation/upgrade/2.4-to-2.4.x.md b/docs/installation/upgrade/2.4-to-2.4.x.md index 37c2356fb..eb12a10db 100644 --- a/docs/installation/upgrade/2.4-to-2.4.x.md +++ b/docs/installation/upgrade/2.4-to-2.4.x.md @@ -199,6 +199,8 @@ INBOX namespace. + + #### Doveadm Logging Changes diff --git a/docs/installation/upgrade/include/2.4-converted-settings.inc b/docs/installation/upgrade/include/2.4-converted-settings.inc index 22e70e6bc..961f106c3 100644 --- a/docs/installation/upgrade/include/2.4-converted-settings.inc +++ b/docs/installation/upgrade/include/2.4-converted-settings.inc @@ -16,7 +16,7 @@ | `event_exporter_transport_args` | Split off to driver-specific settings, see [[link,event_export]]. | | `event_exporter_transport_timeout` | Replaced by [[setting,http_client_request_timeout]] and [[setting,event_exporter_unix_connect_timeout]]. | | `imap_capability = +CAPA1` | Use [[setting,imap_capability]] `{ CAPA1 = yes }` instead. | -| `inet_listener { address }` | Replaced by [[setting,listen]] setting. | +| `inet_listener { address }` | Replaced by [[setting,inet_listener_listen]] setting. | | `push_notification_backend` | Use [[setting,push_notification_driver]] instead. | | `mail_crypt_require_encrypted_user_key` | Replaced by [[setting,crypt_user_key_require_encrypted]], [[setting,crypt_user_key_password]] and [[setting,crypt_user_key_encryption_key]]. | | `verbose_ssl` | Use [[setting,log_debug,category=ssl]] instead. | diff --git a/docs/installation/upgrade/include/2.4.6-listen-setting.inc b/docs/installation/upgrade/include/2.4.6-listen-setting.inc new file mode 100644 index 000000000..58742359d --- /dev/null +++ b/docs/installation/upgrade/include/2.4.6-listen-setting.inc @@ -0,0 +1,3 @@ + * The `listen` setting is now called [[setting,inet_listener_listen]]. The old + name still works as an alias, so configurations don't need changes, but + `doveconf` writes the new name outside of `inet_listener { .. }` blocks.