2.3 -> 2.4 migration problem(s)
Recently in debian sid version 2.4 appeared and I tried to migrate. it (mostly working) but Neither dovecot-lda nor doveadm does not see current system user context i.e.
--8<---------------cut here---------------start------------->8---
%doveadm mailbox list
Fatal: One of -u, -F, -A or --no-userdb-lookup must be provided
--8<---------------cut here---------------end--------------->8---
from lda logs --8<---------------cut here---------------start------------->8--- Fatal: Namespace root: mail_storage settings: Failed to parse configuration: Invalid setting mail_path=~/Mail/0/: mail_path setting used home directory (~/) but there is no mail_home and userdb didn't return it --8<---------------cut here---------------end--------------->8--- for dovecot-lda setting "mail_home = /home/%{user|username}" helped but still ...
doveadm mailbox list -u kjonca and "-d" option helped in both cases
Moreover I found that doveadm does not work when dovecot is stoped (but used to work in 2.3.x)
Another thing is: --8<---------------cut here---------------start------------->8--- deliver_log_format = msgid=%m: %$ --8<---------------cut here---------------end--------------->8---
in 2.3.x configuration it created line like this: --8<---------------cut here---------------start------------->8--- 2025-04-27T02:08:31.925845+02:00 alfa dovecot: LDA(kjonca): sieve: msgid=<fd248603-b186-4ee2-9e76-b9b9c0fe7a87@alfa>: fileinto action: stored mail into mailbox 'RSS' --8<---------------cut here---------------end--------------->8--- but now it does not work (what is strange I cannot find %$ description and %m is described as "mechanism" not message id ...)
So how can I have old loggin and authentication mechanisms? KJ
2.4.1-4 (7d8c0e5759): /etc/dovecot/dovecot.conf
Pigeonhole version 2.4.1-4 (0a86619f)
OS: Linux 6.12.22-amd64 x86_64 Debian trixie/sid
...
4 default setting change
dovecot_config_version = 2.4.0 acl_driver = vfile auth_allow_cleartext = yes auth_debug = yes auth_mechanisms = plain digest-md5 cram-md5 login auth_username_format = %{user | username } auth_verbose = yes default_vsz_limit = 1024M dovecot_storage_version = 2.4.0 lazy_expunge_mailbox = .EXPUNGED/ lazy_expunge_only_last_instance = yes listen = alfa mail_driver = maildir mail_inbox_path = ~/Mail/0/INBOX mail_log_events = delete undelete expunge copy mailbox_delete mailbox_rename flag_change save mail_log_fields = uid box msgid size from subject flags mail_log_prefix = "%{protocol}(%{user}): " mail_path = ~/Mail/0/ mail_plugins { acl = yes lazy_expunge = yes } postmaster_address = root@localhost protocols { imap = yes } sieve_execute_bin_dir = %{home}/sieve/bin sieve_execute_exec_timeout = 86400s sieve_extensions { fileinto = yes reject = yes envelope = yes encoded-character = yes vacation = yes subaddress = yes comparator-i;ascii-numeric = yes relational = yes regex = yes imap4flags = yes copy = yes include = yes body = yes variables = yes enotify = yes environment = yes mailbox = yes date = yes index = yes ihave = yes duplicate = yes mime = yes foreverypart = yes extracttext = yes vnd.dovecot.pipe = yes vnd.dovecot.execute = yes vnd.dovecot.filter = yes vnd.dovecot.debug = yes editheader = yes } sieve_filter_bin_dir = %{home}/sieve/bin sieve_filter_exec_timeout = 86400s sieve_pipe_bin_dir = %{home}/sieve/bin sieve_pipe_exec_timeout = 86400s sieve_plugins { sieve_extprograms = yes } ssl = no service auth { user = root unix_listener auth-userdb { } } passdb alfa { default_password_scheme = PLAIN driver = passwd-file passwd_file_path = /etc/security/dovecot.pwd } userdb alfa { passwd_file_path = /etc/security/dovecot.pwd driver = passwd-file } namespace root { inbox = yes separator = / } namespace expunged { mail_driver = maildir mail_path = ~/Mail/expunged/ hidden = yes inbox = no list = no prefix = .EXPUNGED/ separator = / } service imap-login { inet_listener imap { } } service imap { } service auth-worker { user = dovecot } service dict { unix_listener dict { } } protocol lda { deliver_log_format = msgid=%m: %$ info_log_path = syslog log_path = syslog mail_plugins { sieve = yes } syslog_facility = mail } protocol imap { mail_max_userip_connections = 20 mail_plugins { mail_log = yes notify = yes acl = yes imap_acl = yes lazy_expunge = yes } } sieve_script personal { path = ~/.dovecot.sieve } sieve_script before { path = /etc/dovecot/sieve }
-- http://wolnelektury.pl/wesprzyj/teraz/ The way I understand it, the Russians are sort of a combination of evil and incompetence... sort of like the Post Office with tanks. -- Emo Philips
On 30. Apr 2025, at 8.42, Kamil Jońca via dovecot <dovecot@dovecot.org> wrote:
Recently in debian sid version 2.4 appeared and I tried to migrate. it (mostly working) but Neither dovecot-lda nor doveadm does not see current system user context i.e.
This was usually just causing confusion, so it's no longer used by default.
--8<---------------cut here---------------start------------->8--- %doveadm mailbox list
Fatal: One of -u, -F, -A or --no-userdb-lookup must be provided
Using --no-userdb-lookup preserves the old behavior.
from lda logs --8<---------------cut here---------------start------------->8--- Fatal: Namespace root: mail_storage settings: Failed to parse configuration: Invalid setting mail_path=~/Mail/0/: mail_path setting used home directory (~/) but there is no mail_home and userdb didn't return it
Was dovecot-lda also used without -d parameter before? The intention was to use $HOME environment here? I suppose that change was somewhat accidental, but I'm not sure I want to add it back.
for dovecot-lda setting "mail_home = /home/%{user|username}" helped but still ...
Alternative could have been to use dovecot-lda -o mail_home=$HOME
Moreover I found that doveadm does not work when dovecot is stoped (but used to work in 2.3.x)
Probably now that you're using -u parameter, so it does a userdb lookup from auth process? If you use --no-userdb-lookup it works as before.
Another thing is: --8<---------------cut here---------------start------------->8--- deliver_log_format = msgid=%m: %$ --8<---------------cut here---------------end--------------->8---
in 2.3.x configuration it created line like this: --8<---------------cut here---------------start------------->8--- 2025-04-27T02:08:31.925845+02:00 alfa dovecot: LDA(kjonca): sieve: msgid=<fd248603-b186-4ee2-9e76-b9b9c0fe7a87@alfa>: fileinto action: stored mail into mailbox 'RSS' --8<---------------cut here---------------end--------------->8--- but now it does not work (what is strange I cannot find %$ description and %m is described as "mechanism" not message id ...)
So how can I have old loggin and authentication mechanisms?
https://doc.dovecot.org/main/core/summaries/settings.html#deliver_log_format describes the available variables for this setting. Looks like you're using the default value, so you could just comment it out.
On 30. Apr 2025, at 8.42, Kamil Jońca via dovecot <dovecot@dovecot.org> wrote:
Recently in debian sid version 2.4 appeared and I tried to migrate.
it (mostly working) but
Neither dovecot-lda nor doveadm does not see current system user
context i.e.
This was usually just causing confusion, so it's no longer used by default.
--8<---------------cut here---------------start------------->8---
%doveadm mailbox list
Fatal: One of -u, -F, -A or --no-userdb-lookup must be provided
Using --no-userdb-lookup preserves the old behavior.
from lda logs
--8<---------------cut here---------------start------------->8---
Fatal: Namespace root: mail_storage settings: Failed to parse
configuration: Invalid setting mail_path=~/Mail/0/: mail_path setting
used home directory (~/) but there is no mail_home and userdb didn't
return it
Was dovecot-lda also used without -d parameter before? The intention was to use $HOME environment here? I suppose that change was somewhat accidental, but I'm not sure I want to add it back.
for dovecot-lda
setting "mail_home = /home/%{user|username}"
helped but still ...
Alternative could have been to use dovecot-lda -o mail_home=$HOME
Moreover I found that doveadm does not work when dovecot is stoped
(but
used to work in 2.3.x)
Probably now that you're using -u parameter, so it does a userdb lookup from auth process? If you use --no-userdb-lookup it works as before.
Another thing is:
--8<---------------cut here---------------start------------->8---
deliver_log_format = msgid=%m: %$
--8<---------------cut here---------------end--------------->8---
in 2.3.x configuration it created line like this:
--8<---------------cut here---------------start------------->8---
2025-04-27T02:08:31.925845+02:00 alfa dovecot: LDA(kjonca): sieve:
msgid=<fd248603-b186-4ee2-9e76-b9b9c0fe7a87@alfa>: fileinto action:
stored mail into mailbox 'RSS'
--8<---------------cut here---------------end--------------->8---
but now it does not work (what is strange I cannot find %$
description
and %m is described as "mechanism" not message id ...)
So how can I have old loggin and authentication mechanisms?
https://doc.dovecot.org/main/core/summaries/ settings.html#deliver_log_format describes the available variables for this setting. Looks like you're using the default value, so you could just comment it out.
Il 06/05/2025 10:55 Timo Sirainen via dovecot ha scritto:
Fatal: Namespace root: mail_storage settings: Failed to parse configuration: Invalid setting mail_path=~/Mail/0/: mail_path setting used home directory (~/) but there is no mail_home and userdb didn't return it
Was dovecot-lda also used without -d parameter before? The intention was to use $HOME environment here? I suppose that change was somewhat accidental, but I'm not sure I want to add it back.
I also had this issue when I migrated to 2.4 and yes dovecot-lda was used without -d counting on $HOME. But I did add -d and it went just fine. Only thing was that it came as a surprise because it wasn't announced.
-- Ciao, Luigi
participants (3)
-
Kamil Jońca
-
Luigi Trovato
-
Timo Sirainen