dovecot24: first build of dovecot 2.4.0

This commit is contained in:
Raven 2025-01-28 18:58:37 +06:00
parent 797969a27f
commit b65cbb59f1
14 changed files with 2400 additions and 0 deletions

View File

@ -0,0 +1,11 @@
--- dovecot-1.0.beta2/doc/mkcert.sh.configfile 2006-01-16 21:14:54.000000000 +0100
+++ dovecot-1.0.beta2/doc/mkcert.sh 2006-01-26 14:28:38.000000000 +0100
@@ -29,6 +29,7 @@
fi
$OPENSSL req -new -x509 -nodes -config $OPENSSLCONFIG -out $CERTFILE -keyout $KEYFILE -days 365 || exit 2
-chmod 0600 $KEYFILE
+chown root:root $CERTFILE $KEYFILE
+chmod 0600 $CERTFILE $KEYFILE
echo
$OPENSSL x509 -subject -fingerprint -noout -in $CERTFILE || exit 2

View File

@ -0,0 +1,33 @@
diff -up dovecot-2.3.0.1/doc/example-config/conf.d/10-mail.conf.default-settings dovecot-2.3.0.1/doc/example-config/conf.d/10-mail.conf
--- dovecot-2.3.0.1/doc/example-config/conf.d/10-mail.conf.default-settings 2018-02-28 15:28:57.000000000 +0100
+++ dovecot-2.3.0.1/doc/example-config/conf.d/10-mail.conf 2018-03-01 10:29:38.208368555 +0100
@@ -322,6 +322,7 @@ protocol !indexer-worker {
# them simultaneously.
#mbox_read_locks = fcntl
#mbox_write_locks = dotlock fcntl
+mbox_write_locks = fcntl
# Maximum time to wait for lock (all of them) before aborting.
#mbox_lock_timeout = 5 mins
diff -up dovecot-2.3.0.1/doc/example-config/conf.d/10-ssl.conf.default-settings dovecot-2.3.0.1/doc/example-config/conf.d/10-ssl.conf
--- dovecot-2.3.0.1/doc/example-config/conf.d/10-ssl.conf.default-settings 2018-02-28 15:28:57.000000000 +0100
+++ dovecot-2.3.0.1/doc/example-config/conf.d/10-ssl.conf 2018-03-01 10:33:54.779499044 +0100
@@ -3,7 +3,9 @@
##
# SSL/TLS support: yes, no, required. <doc/wiki/SSL.txt>
-#ssl = yes
+# disable plain pop3 and imap, allowed are only pop3+TLS, pop3s, imap+TLS and imaps
+# plain imap and pop3 are still allowed for local connections
+ssl = required
# PEM encoded X.509 SSL/TLS certificate and private key. They're opened before
# dropping root privileges, so keep the key file unreadable by anyone but
@@ -57,6 +59,7 @@ ssl_key = </etc/ssl/private/dovecot.pem
#ssl_cipher_list = ALL:!kRSA:!SRP:!kDHd:!DSS:!aNULL:!eNULL:!EXPORT:!DES:!3DES:!MD5:!PSK:!RC4:!ADH:!LOW@STRENGTH
# To disable non-EC DH, use:
#ssl_cipher_list = ALL:!DH:!kRSA:!SRP:!kDHd:!DSS:!aNULL:!eNULL:!EXPORT:!DES:!3DES:!MD5:!PSK:!RC4:!ADH:!LOW@STRENGTH
+ssl_cipher_list = PROFILE=SYSTEM
# Colon separated list of elliptic curves to use. Empty value (the default)
# means use the defaults from the SSL library. P-521:P-384:P-256 would be an

View File

@ -0,0 +1,11 @@
diff -up dovecot-2.3.19.1/dovecot.service.in.waitonline dovecot-2.3.19.1/dovecot.service.in
--- dovecot-2.3.19.1/dovecot.service.in.waitonline 2022-06-14 08:55:03.000000000 +0200
+++ dovecot-2.3.19.1/dovecot.service.in 2022-11-08 20:28:37.550081709 +0100
@@ -12,6 +12,7 @@ Description=Dovecot IMAP/POP3 email serv
Documentation=man:dovecot(1)
Documentation=https://doc.dovecot.org/
After=local-fs.target network-online.target
+Wants=network-online.target
[Service]
Type=@systemdservicetype@

View File

@ -0,0 +1,13 @@
--- dovecot-2.2.27/doc/mkcert.sh.mkcert-paths 2017-01-07 14:04:15.000000000 +1300
+++ dovecot-2.2.27/doc/mkcert.sh 2017-01-07 14:09:53.557598325 +1300
@@ -5,8 +5,8 @@
umask 077
OPENSSL=${OPENSSL-openssl}
-SSLDIR=${SSLDIR-/etc/ssl}
-OPENSSLCONFIG=${OPENSSLCONFIG-dovecot-openssl.cnf}
+SSLDIR=${SSLDIR-/etc/pki/dovecot}
+OPENSSLCONFIG=${OPENSSLCONFIG-/etc/pki/dovecot/dovecot-openssl.cnf}
CERTDIR=$SSLDIR/certs
KEYDIR=$SSLDIR/private

View File

@ -0,0 +1,143 @@
diff -Naur a/doc/conf.d/10-auth.conf b/doc/conf.d/10-auth.conf
--- a/doc/conf.d/10-auth.conf 1970-01-01 06:00:00.000000000 +0600
+++ b/doc/conf.d/10-auth.conf 2025-01-24 18:31:57.000000000 +0600
@@ -0,0 +1,7 @@
+# Enable pam by default
+passdb pam {
+}
+
+# Use system users
+userdb passwd {
+}
diff -Naur a/doc/conf.d/10-mail.conf b/doc/conf.d/10-mail.conf
--- a/doc/conf.d/10-mail.conf 1970-01-01 06:00:00.000000000 +0600
+++ b/doc/conf.d/10-mail.conf 2025-01-28 12:56:09.232653876 +0600
@@ -0,0 +1,10 @@
+mail_driver = maildir
+mail_home = %h
+mail_path = ~/mail
+mail_inbox_path = /var/mail/%n
+mailbox_list_utf8 = yes
+
+namespace inbox {
+ separator = /
+ inbox = yes
+}
diff -Naur a/doc/conf.d/10-ssl.conf b/doc/conf.d/10-ssl.conf
--- a/doc/conf.d/10-ssl.conf 1970-01-01 06:00:00.000000000 +0600
+++ b/doc/conf.d/10-ssl.conf 2025-01-28 12:59:33.616396297 +0600
@@ -0,0 +1,5 @@
+#ssl_server {
+# cert_file = /etc/pki/tls/certs/ssl-cert-snakeoil.pem
+# key_file = /etc/pki/tls/private/ssl-cert-snakeoil.key
+#}
+#ssl_cipher_list = PROFILE=SYSTEM
diff -Naur a/doc/conf.d/20-imap.conf b/doc/conf.d/20-imap.conf
--- a/doc/conf.d/20-imap.conf 1970-01-01 06:00:00.000000000 +0600
+++ b/doc/conf.d/20-imap.conf 2025-01-24 18:31:57.000000000 +0600
@@ -0,0 +1,4 @@
+# Enable IMAP protocol
+protocols {
+ imap = yes
+}
diff -Naur a/doc/conf.d/20-lmtp.conf b/doc/conf.d/20-lmtp.conf
--- a/doc/conf.d/20-lmtp.conf 1970-01-01 06:00:00.000000000 +0600
+++ b/doc/conf.d/20-lmtp.conf 2025-01-24 18:31:57.000000000 +0600
@@ -0,0 +1,4 @@
+# Enable LMTP protocol
+protocols {
+ lmtp = yes
+}
diff -Naur a/doc/conf.d/20-pop3.conf b/doc/conf.d/20-pop3.conf
--- a/doc/conf.d/20-pop3.conf 1970-01-01 06:00:00.000000000 +0600
+++ b/doc/conf.d/20-pop3.conf 2025-01-24 18:31:57.000000000 +0600
@@ -0,0 +1,4 @@
+# Enable POP3 protocol
+protocols {
+ pop3 = yes
+}
diff -Naur a/doc/conf.d/20-submission.conf b/doc/conf.d/20-submission.conf
--- a/doc/conf.d/20-submission.conf 1970-01-01 06:00:00.000000000 +0600
+++ b/doc/conf.d/20-submission.conf 2025-01-24 18:31:57.000000000 +0600
@@ -0,0 +1,4 @@
+# Enable Submission protocol
+protocols {
+ submission = yes
+}
diff -Naur a/doc/dovecot.conf.in b/doc/dovecot.conf.in
--- a/doc/dovecot.conf.in 2025-01-24 13:08:40.000000000 +0600
+++ b/doc/dovecot.conf.in 2025-01-28 13:00:53.279906125 +0600
@@ -4,47 +4,9 @@
# configuration file. It specifies the configuration syntax, the used setting
# names and the expected default values.
dovecot_config_version = @DOVECOT_CONFIG_VERSION@
-
-# Dovecot storage file format version. It specifies the oldest Dovecot version
-# that must be able to read files written by this Dovecot instance. The
-# intention is that when upgrading Dovecot cluster, this setting is first kept
-# as the old Dovecot version. Once the cluster is fully upgraded to a new
-# version and there is no intention to rollback to the old version anymore,
-# this version number can be increased.
dovecot_storage_version = @DOVECOT_CONFIG_VERSION@
-# The configuration below is a minimal configuration file using system user authentication.
-# See https://@DOVECOT_ASSET_URL@/configuration_manual/quick_configuration/
-
-!include_try conf.d/*.conf
-
-# Enable wanted protocols:
-protocols {
- imap = yes
- lmtp = yes
-}
-
-mail_home = /srv/mail/%{user}
-mail_driver = sdbox
-mail_path = ~/mail
-mail_uid = vmail
-mail_gid = vmail
+protocols =
-# By default first_valid_uid is 500. If your vmail user's UID is smaller,
-# you need to modify this:
-#first_valid_uid = uid-number-of-vmail-user
-
-namespace inbox {
- inbox = yes
- separator = /
-}
-
-# Authenticate as system users:
-passdb pam {
-}
-
-ssl_server {
- cert_file = /etc/dovecot/ssl-cert.pem
- key_file = /etc/dovecot/ssl-key.pem
-}
+!include_try conf.d/*.conf
diff -Naur a/doc/Makefile.am b/doc/Makefile.am
--- a/doc/Makefile.am 2025-01-24 13:08:40.000000000 +0600
+++ b/doc/Makefile.am 2025-01-28 13:52:14.611578403 +0600
@@ -27,6 +27,8 @@
$(INSTALL) -d $(DESTDIR)$(sysconfdir)/dovecot
test -e $(DESTDIR)$(sysconfdir)/dovecot/dovecot.conf || \
$(INSTALL) dovecot.conf $(DESTDIR)$(sysconfdir)/dovecot/dovecot.conf
+ $(INSTALL) -d $(DESTDIR)$(sysconfdir)/dovecot/conf.d
+ $(INSTALL) conf.d/* $(DESTDIR)$(sysconfdir)/dovecot/conf.d/
install-data-local:
$(MKDIR_P) $(DESTDIR)$(docdir); \
diff -Naur a/doc/Makefile.in b/doc/Makefile.in
--- a/doc/Makefile.in 2025-01-24 13:08:52.000000000 +0600
+++ b/doc/Makefile.in 2025-01-28 13:11:02.189159488 +0600
@@ -866,6 +866,8 @@
$(INSTALL) -d $(DESTDIR)$(sysconfdir)/dovecot
test -e $(DESTDIR)$(sysconfdir)/dovecot/dovecot.conf || \
$(INSTALL) dovecot.conf $(DESTDIR)$(sysconfdir)/dovecot/dovecot.conf
+ $(INSTALL) -d $(DESTDIR)$(sysconfdir)/dovecot/conf.d
+ $(INSTALL) conf.d/* $(DESTDIR)$(sysconfdir)/dovecot/conf.d/
install-data-local:
$(MKDIR_P) $(DESTDIR)$(docdir); \

View File

@ -0,0 +1,11 @@
diff -Naur a/dovecot.service.in c/dovecot.service.in
--- a/dovecot.service.in 2025-01-24 13:08:40.000000000 +0600
+++ c/dovecot.service.in 2025-01-28 13:15:00.124679423 +0600
@@ -12,6 +12,7 @@
Documentation=man:dovecot(1)
Documentation=https://doc.dovecot.org/
After=local-fs.target network-online.target remote-fs.target time-sync.target
+Wants=network-online.target
[Service]
Type=@systemdservicetype@

View File

@ -0,0 +1,25 @@
m4: crypt_xxpg6.m4: Define _DEFAULT_SOURCE for current glibc
Current glibc no longer implements the CRYPT extension, so it does not
declare crypt in <unistd.h> in strict standard modes. The check
defines _XOPEN_SOURCE, which enables one of these modes. Defining
_DEFAULT_SOURCE as well again makes available the crypt function
prototype.
This avoids a configure check result change with compilers which do
not support implicit function declarations.
Submitted upstream: <https://github.com/dovecot/core/pull/193>
diff --git a/m4/crypt_xpg6.m4 b/m4/crypt_xpg6.m4
index 0085b2ac76..3a288a3713 100644
--- a/m4/crypt_xpg6.m4
+++ b/m4/crypt_xpg6.m4
@@ -6,6 +6,7 @@ AC_DEFUN([DOVECOT_CRYPT_XPG6], [
#define _XOPEN_SOURCE 4
#define _XOPEN_SOURCE_EXTENDED 1
#define _XOPEN_VERSION 4
+ #define _DEFAULT_SOURCE
#define _XPG4_2
#define _XPG6
#include <unistd.h>

View File

@ -0,0 +1,19 @@
.TH DOVECOT.CONF 5 2010/06/27 "dovecot" "File Formats and Conventions"
.SH NAME
\fBdovecot.conf\fP \- The configuration file for dovecot imap and pop3 server
.SH FULL PATH
.B /etc/dovecot.conf
.SH DESCRIPTION
The dovecot.conf file is a configuration file for the
.BR dovecot (1)
imap and pop3 server. The dovecot.conf configuration file contains description to all available options. Some of these options are described also in offline wiki documentation placed in /usr/share/doc/dovecot*/wiki/.
For backup purposes unmodified version of dovecot.conf can be found in /usr/share/doc/dovecot-<version>/example-config/dovecot.conf.default
.SH "SEE ALSO"
.BR doveadm (1),
.BR dovecot (1),
.I /usr/share/doc/dovecot*/wiki/
.I /usr/share/doc/dovecot*/dovecot.conf.default

108
extras/dovecot24/dovecot.init Executable file
View File

@ -0,0 +1,108 @@
#!/bin/bash
#
# /etc/rc.d/init.d/dovecot
#
# Starts the dovecot daemon
#
# chkconfig: - 65 35
# description: Dovecot Imap Server
# processname: dovecot
# config: /etc/dovecot.conf
# config: /etc/sysconfig/dovecot
# pidfile: /var/run/dovecot/master.pid
### BEGIN INIT INFO
# Provides: dovecot
# Required-Start: $local_fs $network
# Required-Stop: $local_fs $network
# Should-Start: $remote_fs
# Should-Stop: $remote_fs
# Default-Start:
# Default-Stop: 0 1 2 3 4 5 6
# Short-Description: start and stop Dovecot Imap server
# Description: Dovecot is an IMAP server for Linux/UNIX-like systems,
# written with security primarily in mind. It also contains
# a small POP3 server.
### END INIT INFO
# Source function library.
. /etc/init.d/functions
if [ -f /etc/sysconfig/dovecot -a $UID -eq 0 ]; then
. /etc/sysconfig/dovecot
fi
RETVAL=0
prog="Dovecot Imap"
exec="/usr/sbin/dovecot"
config="/etc/dovecot/dovecot.conf"
pidfile="/var/run/dovecot/master.pid"
lockfile="/var/lock/subsys/dovecot"
start() {
[ $UID -eq 0 ] || exit 4
[ -x $exec ] || exit 5
[ -f $config ] || exit 6
echo -n $"Starting $prog: "
daemon --pidfile $pidfile $exec $OPTIONS
RETVAL=$?
[ $RETVAL -eq 0 ] && touch $lockfile
echo
}
stop() {
[ $UID -eq 0 ] || exit 4
echo -n $"Stopping $prog: "
killproc -p $pidfile $exec
RETVAL=$?
[ $RETVAL -eq 0 ] && rm -f $lockfile
echo
}
reload() {
[ $UID -eq 0 ] || exit 4
echo -n $"Reloading $prog: "
killproc -p $pidfile $exec -HUP
RETVAL=$?
echo
}
#
# See how we were called.
#
case "$1" in
start)
start
;;
stop)
stop
;;
reload)
reload
;;
force-reload|restart)
stop
sleep 1
start
RETVAL=$?
;;
condrestart|try-restart)
if [ -f $lockfile ]; then
stop
sleep 3
start
fi
;;
status)
status -p $pidfile $exec
RETVAL=$?
;;
*)
echo $"Usage: $0 {condrestart|try-restart|start|stop|restart|reload|force-reload|status}"
RETVAL=2
[ "$1" = 'usage' ] && RETVAL=0
esac
exit $RETVAL

View File

@ -0,0 +1,5 @@
#%PAM-1.0
auth required pam_nologin.so
auth include password-auth
account include password-auth
session include password-auth

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,3 @@
# Here you can specify your dovecot command line options.
#
#OPTIONS=""

View File

@ -0,0 +1,2 @@
d /run/dovecot 0755 root dovecot -

View File

@ -0,0 +1,3 @@
#!/bin/sh
/bin/systemctl -q is-enabled NetworkManager.service >/dev/null 2>&1 && /usr/bin/nm-online -q --timeout 30 ||: