Debian: Dovecot 2.3.0.1 won't start if dovecot-pop3d is missing
Hello,
given a Debian 9 system with Dovecot 2.2.34 installed from self-built packages made from the official tarball combined with Stephan Bosch's debian files (upgraded multiple times from packages made in a similar way). Today, I updated this system to 2.3.0.1 from the official repository at repo.dovecot.org. After the update, dovecot wouldn't start because of:
dovecot: master: Fatal: service(pop3) access(/usr/lib/dovecot/pop3) failed: No such file or directory
Obviously, installing the dovecot-pop3d package, which provides the pop3 binary, made the error go away. Nevertheless, until v. 2.2.34 not installing the pop3 binary had never been a problem. Trying to solve this, I even commented the following sections in the config (which previously hadn't caused problems since the lines defining the ports etc. had already been commented):
10-master.conf:
service pop3-login { inet_listener pop3 { #port = 110 } inet_listener pop3s { #port = 995 #ssl = yes } }
service pop3 { # Max. number of POP3 processes (connections) #process_limit = 1024 }
10-director.conf:
service pop3-login { #executable = pop3-login director }
After those changes I had the configuration shown below, which produced the described error. Why would Dovecot insist that the pop3 binary has to exist on the system?
BTW: Note the protocols = line in the doveconf -n output, whereas
# grep -R protocols /etc/dovecot/ /etc/dovecot/dovecot.conf:# Most (but not all) settings can be overridden by different protocols and/or /etc/dovecot/dovecot.conf:# Enable installed protocols /etc/dovecot/dovecot.conf:!include_try /usr/share/dovecot/protocols.d/*.protocol /etc/dovecot/conf.d/20-managesieve.conf:#protocols = $protocols sieve /etc/dovecot/conf.d/10-ssl.conf:# SSL protocols to use /etc/dovecot/conf.d/10-ssl.conf:#ssl_protocols = !SSLv2
# ll /usr/share/dovecot/protocols.d/ insgesamt 12 -rw-r--r-- 1 root root 28 Mär 2 14:51 imapd.protocol -rw-r--r-- 1 root root 28 Mär 2 14:51 lmtpd.protocol -rw-r--r-- 1 root root 29 Mär 2 14:51 managesieved.protocol
Regards mks
doveconf -n
# 2.3.0.1 (ffd8a29): /etc/dovecot/dovecot.conf # Pigeonhole version 0.5.0.1 (d33dca2) # OS: Linux 4.9.0-6-amd64 x86_64 Debian 9.3 ext4 auth_master_user_separator = * auth_mechanisms = plain login dict { quota = mysql:/etc/dovecot/dovecot-dict-sql.conf.ext } imap_id_log = * mail_home = /var/spool/vmail/home/%d/%n mail_location = mdbox:/var/spool/vmail/mail/%d/%n mail_log_prefix = "%s%p<%{session}>: " mail_plugins = " quota acl" 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 mime foreverypart extracttext namespace { list = children location = mdbox:/var/spool/vmail/mail/Public:INDEXPVT=/var/spool/vmail/home/Public prefix = Public/ separator = / subscriptions = no type = public } namespace inbox { inbox = yes location = mailbox Drafts { special_use = \Drafts } mailbox Junk { special_use = \Junk } mailbox Sent { special_use = \Sent } mailbox "Sent Messages" { special_use = \Sent } mailbox Trash { special_use = \Trash } prefix = separator = / } passdb { args = /etc/dovecot/master-users driver = passwd-file master = yes pass = yes } passdb { args = /etc/dovecot/dovecot-proxy-sql.conf.ext driver = sql } passdb { args = /etc/dovecot/dovecot-sql.conf.ext driver = sql } passdb { args = /etc/dovecot/dovecot-system-sql.conf.ext driver = sql } plugin { acl = vfile mail_log_events = delete undelete expunge copy mailbox_delete mailbox_rename mail_log_fields = uid box msgid size quota = dict:User quota::proxy::quota recipient_delimiter = + sieve = file:~/sieve;active=~/.dovecot.sieve sieve_after = /var/spool/vmail/home/1-global/sieve } protocols = imap pop3 lmtp imap lmtp sieve service auth { inet_listener { port = 12345 } unix_listener /var/spool/postfix/private/auth { group = postfix mode = 0666 user = postfix } } service dict { unix_listener dict { group = vmail mode = 0600 user = vmail } } service imap-login { inet_listener imap_2 { port = 10143 } } service lmtp { unix_listener /var/spool/postfix/private/dovecot-lmtp { group = postfix mode = 0600 user = postfix } } ssl_cert = </etc/ssl/certs/complete.crt ssl_dh = # hidden, use -P to show it ssl_key = # hidden, use -P to show it userdb { args = /etc/dovecot/master-users default_fields = master_user=%u driver = passwd-file } userdb { args = /etc/dovecot/dovecot-sql.conf.ext default_fields = master_user=%u driver = sql } userdb { args = /etc/dovecot/dovecot-system-sql.conf.ext driver = sql } verbose_proctitle = yes protocol lmtp { mail_plugins = " quota acl quota sieve" postmaster_address = postmaster@<domain> } protocol lda { mail_plugins = " quota acl sieve" } protocol imap { mail_max_userip_connections = 40 mail_plugins = " quota acl imap_quota acl" } remote 192.168.1.116 { protocol imap { disable_plaintext_auth = no } } remote 192.168.1.127 { protocol imap { disable_plaintext_auth = no } }
the problem is default protocols = imap pop3 packaging should use protocols = protocols = $protocols imap etc. or you could ---Aki TuomiDovecot oy -------- Original message --------From: Markus Schönhaber <dovecot@list-post.mks-mail.de> Date: 02/03/2018 19:44 (GMT+02:00) To: dovecot@dovecot.org Subject: Debian: Dovecot 2.3.0.1 won't start if dovecot-pop3d is missing Hello,
given a Debian 9 system with Dovecot 2.2.34 installed from self-built packages made from the official tarball combined with Stephan Bosch's debian files (upgraded multiple times from packages made in a similar way). Today, I updated this system to 2.3.0.1 from the official repository at repo.dovecot.org. After the update, dovecot wouldn't start because of:
dovecot: master: Fatal: service(pop3) access(/usr/lib/dovecot/pop3) failed: No such file or directory
Obviously, installing the dovecot-pop3d package, which provides the pop3 binary, made the error go away. Nevertheless, until v. 2.2.34 not installing the pop3 binary had never been a problem. Trying to solve this, I even commented the following sections in the config (which previously hadn't caused problems since the lines defining the ports etc. had already been commented):
10-master.conf:
service pop3-login { inet_listener pop3 { #port = 110 } inet_listener pop3s { #port = 995 #ssl = yes } }
service pop3 { # Max. number of POP3 processes (connections) #process_limit = 1024 }
10-director.conf:
service pop3-login { #executable = pop3-login director }
After those changes I had the configuration shown below, which produced the described error. Why would Dovecot insist that the pop3 binary has to exist on the system?
BTW: Note the protocols = line in the doveconf -n output, whereas
# grep -R protocols /etc/dovecot/ /etc/dovecot/dovecot.conf:# Most (but not all) settings can be overridden by different protocols and/or /etc/dovecot/dovecot.conf:# Enable installed protocols /etc/dovecot/dovecot.conf:!include_try /usr/share/dovecot/protocols.d/*.protocol /etc/dovecot/conf.d/20-managesieve.conf:#protocols = $protocols sieve /etc/dovecot/conf.d/10-ssl.conf:# SSL protocols to use /etc/dovecot/conf.d/10-ssl.conf:#ssl_protocols = !SSLv2
# ll /usr/share/dovecot/protocols.d/ insgesamt 12 -rw-r--r-- 1 root root 28 Mär 2 14:51 imapd.protocol -rw-r--r-- 1 root root 28 Mär 2 14:51 lmtpd.protocol -rw-r--r-- 1 root root 29 Mär 2 14:51 managesieved.protocol
Regards mks
doveconf -n
# 2.3.0.1 (ffd8a29): /etc/dovecot/dovecot.conf # Pigeonhole version 0.5.0.1 (d33dca2) # OS: Linux 4.9.0-6-amd64 x86_64 Debian 9.3 ext4 auth_master_user_separator = * auth_mechanisms = plain login dict { quota = mysql:/etc/dovecot/dovecot-dict-sql.conf.ext } imap_id_log = * mail_home = /var/spool/vmail/home/%d/%n mail_location = mdbox:/var/spool/vmail/mail/%d/%n mail_log_prefix = "%s%p<%{session}>: " mail_plugins = " quota acl" 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 mime foreverypart extracttext namespace { list = children location = mdbox:/var/spool/vmail/mail/Public:INDEXPVT=/var/spool/vmail/home/Public prefix = Public/ separator = / subscriptions = no type = public } namespace inbox { inbox = yes location = mailbox Drafts { special_use = \Drafts } mailbox Junk { special_use = \Junk } mailbox Sent { special_use = \Sent } mailbox "Sent Messages" { special_use = \Sent } mailbox Trash { special_use = \Trash } prefix = separator = / } passdb { args = /etc/dovecot/master-users driver = passwd-file master = yes pass = yes } passdb { args = /etc/dovecot/dovecot-proxy-sql.conf.ext driver = sql } passdb { args = /etc/dovecot/dovecot-sql.conf.ext driver = sql } passdb { args = /etc/dovecot/dovecot-system-sql.conf.ext driver = sql } plugin { acl = vfile mail_log_events = delete undelete expunge copy mailbox_delete mailbox_rename mail_log_fields = uid box msgid size quota = dict:User quota::proxy::quota recipient_delimiter = + sieve = file:~/sieve;active=~/.dovecot.sieve sieve_after = /var/spool/vmail/home/1-global/sieve } protocols = imap pop3 lmtp imap lmtp sieve service auth { inet_listener { port = 12345 } unix_listener /var/spool/postfix/private/auth { group = postfix mode = 0666 user = postfix } } service dict { unix_listener dict { group = vmail mode = 0600 user = vmail } } service imap-login { inet_listener imap_2 { port = 10143 } } service lmtp { unix_listener /var/spool/postfix/private/dovecot-lmtp { group = postfix mode = 0600 user = postfix } } ssl_cert = </etc/ssl/certs/complete.crt ssl_dh = # hidden, use -P to show it ssl_key = # hidden, use -P to show it userdb { args = /etc/dovecot/master-users default_fields = master_user=%u driver = passwd-file } userdb { args = /etc/dovecot/dovecot-sql.conf.ext default_fields = master_user=%u driver = sql } userdb { args = /etc/dovecot/dovecot-system-sql.conf.ext driver = sql } verbose_proctitle = yes protocol lmtp { mail_plugins = " quota acl quota sieve" postmaster_address = postmaster@<domain> } protocol lda { mail_plugins = " quota acl sieve" } protocol imap { mail_max_userip_connections = 40 mail_plugins = " quota acl imap_quota acl" } remote 192.168.1.116 { protocol imap { disable_plaintext_auth = no } } remote 192.168.1.127 { protocol imap { disable_plaintext_auth = no } }
Aki Tuomi, Fri, 02 Mar 2018 20:06:35 +0200:
the problem is default protocols = imap pop3
Ah, OK. I wasn't aware that the default had changed. It seems to be protocols = imap pop3 lmtp now.
packaging should use protocols = protocols = $protocols imap
Yep, explicitly setting protocols = before !include_try /usr/share/dovecot/protocols.d/*.protocol helps.
IMO Something like that should be changed in the official packages too.
-- Regards mks
Op 3/2/2018 om 8:58 PM schreef Markus Schönhaber:
Aki Tuomi, Fri, 02 Mar 2018 20:06:35 +0200:
the problem is default protocols = imap pop3 Ah, OK. I wasn't aware that the default had changed. It seems to be protocols = imap pop3 lmtp now.
packaging should use protocols = protocols = $protocols imap Yep, explicitly setting protocols = before !include_try /usr/share/dovecot/protocols.d/*.protocol helps.
IMO Something like that should be changed in the official packages too.
The official packages patch Dovecot to set the protocols to none in the defaul config.
Regards,
Stephan.
Stephan Bosch, Sat, 3 Mar 2018 08:59:16 +0100:
Op 3/2/2018 om 8:58 PM schreef Markus Schönhaber:
Yep, explicitly setting protocols = before !include_try /usr/share/dovecot/protocols.d/*.protocol helps.
IMO Something like that should be changed in the official packages too.
The official packages patch Dovecot to set the protocols to none in the defaul config.
First: Many thanks for providing the package repository!
WRT the default config: doesn't seem so. I purged all Dovecot packages, removed /etc/dovecot and did
apt -V install dovecot-imapd dovecot-lmtpd dovecot-managesieved dovecot-mysql dovecot-sqlite dovecot-solr dovecot-lucene
but the freshly installed dovecot won't start because /usr/lib/dovecot/pop3 is not there.
# doveconf protocols protocols = imap pop3 lmtp imap lmtp sieve
# LANG=C apt-cache policy dovecot-core dovecot-core: Installed: 2:2.3.0.1-6 Candidate: 2:2.3.0.1-6 Version table: *** 2:2.3.0.1-6 500 500 http://repo.dovecot.org/ce-2.3-latest/debian/stretch stretch/main amd64 Packages 100 /var/lib/dpkg/status 2:2.3.0-4 500 500 http://repo.dovecot.org/ce-2.3-latest/debian/stretch stretch/main amd64 Packages 2:2.3.0-3 500 500 http://repo.dovecot.org/ce-2.3-latest/debian/stretch stretch/main amd64 Packages 2:2.3.0-2 500 500 http://repo.dovecot.org/ce-2.3-latest/debian/stretch stretch/main amd64 Packages 2:2.2.34-1~ddt1 500 500 http://ddt-web5/stretch stretch/main amd64 Packages 1:2.2.27-3+deb9u2 500 500 http://security.debian.org stretch/updates/main amd64 Packages 1:2.2.27-3+deb9u1 500 500 http://ftp.de.debian.org/debian stretch/main amd64 Packages
# doveconf -n # 2.3.0.1 (ffd8a29): /etc/dovecot/dovecot.conf # Pigeonhole version 0.5.0.1 (d33dca2) # OS: Linux 4.9.0-6-amd64 x86_64 Debian 9.3 doveconf: Error: t_readlink(/var/run/dovecot/dovecot.conf) failed: readlink() failed: No such file or directory mail_location = mbox:~/mail:INBOX=/var/mail/%u 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 mime foreverypart extracttext namespace inbox { inbox = yes location = mailbox Drafts { special_use = \Drafts } mailbox Junk { special_use = \Junk } mailbox Sent { special_use = \Sent } mailbox "Sent Messages" { special_use = \Sent } mailbox Trash { special_use = \Trash } prefix = } passdb { driver = pam } plugin { sieve = file:~/sieve;active=~/.dovecot.sieve } protocols = imap pop3 lmtp imap lmtp sieve ssl = no userdb { driver = passwd }
-- Regards mks
participants (3)
-
Aki Tuomi
-
Markus Schönhaber
-
Stephan Bosch