ports/51593: Maintainer Update: mail/dovecot

Dominic Marks dom at cus.org.uk
Sat May 3 18:02:28 UTC 2003


On 03/05/2003 09:16, Norikatsu Shigemura wrote:
> Synopsis: Maintainer Update: mail/dovecot
> 
> State-Changed-From-To: open->feedback
> State-Changed-By: nork
> State-Changed-When: Sat May 3 09:04:15 PDT 2003
> State-Changed-Why: 
> Please make diff -urN /usr/ports/mail/dovecot YOU-HOPE-TO-CHANGE-THIS.
> This patch should be adapt for mail/dovecot, or I can't commit your patch.
> 
> 
> Responsible-Changed-From-To: freebsd-ports-bugs->nork
> Responsible-Changed-By: nork
> Responsible-Changed-When: Sat May 3 09:04:15 PDT 2003
> Responsible-Changed-Why: 
> I'll handle this.
> 
> http://www.freebsd.org/cgi/query-pr.cgi?pr=51593

As requested:

diff -ruN /usr/ports/mail/dovecot/Makefile dovecot/Makefile
--- /usr/ports/mail/dovecot/Makefile	Thu Jan 16 18:33:15 2003
+++ dovecot/Makefile	Sat May  3 18:59:41 2003
@@ -2,24 +2,109 @@
 # Date created:				12/08/2002
 # Whom:			Dominic Marks <d.marks at student.umist.ac.uk>
 #
-# $FreeBSD: ports/mail/dovecot/Makefile,v 1.7 2003/01/12 17:40:06 naddy Exp $
+# $FreeBSD: ports/mail/dovecot/Makefile,v 1.10 2003/03/31 09:18:00 edwin Exp $
 #
 
 PORTNAME=	dovecot
-PORTVERSION=	0.99.5
+PORTVERSION=	0.99.9
 CATEGORIES=	mail ipv6
 MASTER_SITES=	http://dovecot.procontrol.fi/
 
 MAINTAINER=	d.marks at student.umist.ac.uk
+COMMENT=	Secure and compact IMAP and POP3 servers
+
+LIB_DEPENDS=	iconv.3:${PORTSDIR}/converters/libiconv
 
 USE_REINPLACE=	yes
 GNU_CONFIGURE=	yes
-CONFIGURE_ARGS+=	--disable-shadow --enable-ipv6 \
-		--localstatedir=/var/dovecot --with-ssl=openssl \
-		--with-vpopmail --with-pam --with-rawlog \
-		--with-ssldir=/var/dovecot/ssl 
-		
+CONFIGURE_ARGS+=	--without-shadow --enable-ipv6 \
+		--localstatedir=/var --with-ssl=openssl \
+		--with-ssldir=/var/dovecot/ssl --with-pop3d \
+		--with-pam
+CONFIGURE_ENV+=	CPPFLAGS=-I${LOCALBASE}/include \
+	LDFLAGS=-L${LOCALBASE}/lib
+
+#
+# Feature Autodetection
+#
+.if exists(${LOCALBASE}/lib/libsasl.so.2)
+WITH_SASL2=	yes
+.endif
+
+.if exists(${LOCALBASE}/vpopmail/bin/vckpw)
+WITH_VPOPMAIL=	yes
+.endif
+
+.if exists(${LOCALBASE}/lib/libldap.so.2)
+WITH_LDAP2=	yes
+.endif
+
+.if exists(${LOCALBASE}/lib/libpq.so.3)
+WITH_PGSQL=	yes
+.endif
+
+#
+# SASL2 support
+#
+# SASL provides authentication support to
+# session-based protocols. This is can be
+# used by dovecot for authentication sources.
+#
+.if WITH_SASL2
+LIB_DEPENDS+=	sasl2.2:${PORTSDIR}/security/cyrus-sasl2
+CONFIGURE_ARGS+=	--with-cyrus-sasl2
+.endif
+
+#
+# VPopMail Support
+#
+# vpopmail provides easy authentication and
+# multi-domain features. It was originally
+# created for use with Qmail.
+#
+.if WITH_VPOPMAIL
+VPOPMAIL=	${LOCALBASE}/vpopmail/bin/vchkpw
+BUILD_DEPENDS+=	${VPOPMAIL}:${PORTSDIR}/mail/vpopmail
+CONFIGURE_ARGS+=	--with-vpopmail
+.endif
+
+#
+# OpenLDAP Support
+#
+# LDAP is the light-weight directory access
+# protocol and can be used by Dovecot for its
+# user database.
+#
+.if WITH_LDAP2
+LIB_DEPENDS+=	ldap.2:${PORTSDIR}/net/openldap20
+CONFIGURE_ARGS+=	--with-ldap
+.endif
+
+#
+# PostgreSQL Support
+#
+# PostgreSQL is a powerful SQL database which
+# can be used to store user tables.
+#
+.if WITH_PGSQL
+LIB_DEPENDS+=	pq.3:${PORTSDIR}/databases/postgresql
+CONFIGURE_ARGS+=	--with-pgsql
+.endif
+
+pre-everything:
+	@${ECHO_MSG} "==>  Dovecot Options"
+	@${ECHO_MSG} "==>   See the Makefile for descriptions."
+	@${ECHO_MSG} "==> ------------------------------------------"
+	@${ECHO_MSG} "==>  o SASL2 Support         + WITH_SASL2"
+	@${ECHO_MSG} "==>  o VPoPMail SUpport      + WITH_VPOPMAIL"
+	@${ECHO_MSG} "==>  o OpenLDAP2 Support     + WITH_LDAP2"
+	@${ECHO_MSG} "==>  o PostgreSQL Support    + WITH_PGSQL"
+	@${ECHO_MSG} "==> ------------------------------------------"
+
 pre-build:
+	@${REINPLACE_CMD} -e 's,%%SSLDIR%%,/var/dovecot/ssl,' \
+		${WRKSRC}/doc/mkcert.sh \
+		${WRKSRC}/dovecot-example.conf
 	@${REINPLACE_CMD} -e 's,%%PREFIX%%,${PREFIX},' \
 		${WRKSRC}/dovecot-example.conf
 
@@ -28,26 +113,31 @@
 		${SH} ${PKGINSTALL} ${PKGNAME} PRE-INSTALL
 
 do-install:
-	@${MKDIR} ${PREFIX}/lib/dovecot
+	@${MKDIR} ${PREFIX}/libexec/dovecot
 	${INSTALL_PROGRAM} \
 		${WRKSRC}/src/imap/imap \
-		${WRKSRC}/src/auth/imap-auth \
-		${WRKSRC}/src/login/imap-login \
-			${PREFIX}/lib/dovecot/
-	${INSTALL_DATA} ${WRKSRC}/dovecot-example.conf ${PREFIX}/etc/		
-	${INSTALL_PROGRAM} ${WRKSRC}/src/master/imap-master ${PREFIX}/sbin/
+		${WRKSRC}/src/pop3/pop3 \
+		${WRKSRC}/src/auth/dovecot-auth \
+		${WRKSRC}/src/imap-login/imap-login \
+		${WRKSRC}/src/pop3-login/pop3-login \
+			${PREFIX}/libexec/dovecot/
+	${INSTALL_DATA} ${WRKSRC}/dovecot-example.conf ${PREFIX}/etc/
+	${INSTALL_PROGRAM} ${WRKSRC}/src/master/dovecot ${PREFIX}/sbin/
 
 post-install:
 	@${MKDIR} /var/dovecot
 	@${MKDIR} /var/dovecot/ssl
+	@${MKDIR} /var/dovecot/ssl/certs
+	@${MKDIR} /var/dovecot/ssl/private
 	@${MKDIR} /var/dovecot/auth
+	@${CHOWN} -R dovecot:dovecot /var/dovecot
 	@${MKDIR} /var/dovecot/login
-	@${CHOWN} -R imapd:imapd /var/dovecot
-	@if [ ! -f ${PREFIX}/etc/rc.d/dovecot-imapd.sh ]; then \
-		${ECHO} "Installing dovecot-imapd.sh startup file."; \
-		${INSTALL_SCRIPT} -m 751 ${FILESDIR}/dovecot-imapd.sh \
-			${PREFIX}/etc/rc.d/dovecot-imapd.sh; \
-	fi
+	@${CHOWN} root:dovecot /var/dovecot/login
+	@${MKDIR} /var/run/dovecot
+	@${CHMOD} 0700 /var/run/dovecot
+	@${CHOWN} root:dovecot /var/run/dovecot
+	${INSTALL_SCRIPT} -m 751 ${FILESDIR}/dovecot.sh.sample \
+		${PREFIX}/etc/rc.d/dovecot.sh.sample
 .if !defined(NOPORTDOCS)
 	@${MKDIR} ${PREFIX}/share/doc/dovecot
 	@${INSTALL_DATA} \
@@ -58,7 +148,16 @@
 		${WRKSRC}/doc/nfs.txt \
 		${WRKSRC}/doc/configuration.txt \
 		${WRKSRC}/doc/mail-storages.txt \
+		${WRKSRC}/doc/dovecot-ldap.conf \
+		${WRKSRC}/doc/dovecot-pgsql.conf \
+		${WRKSRC}/doc/dovecot-openssl.cnf \
+		${WRKSRC}/doc/mkcert.sh \
+		${FILESDIR}/README.FreeBSD \
 			${PREFIX}/share/doc/dovecot
 .endif
+	@${CP} ${PKGMESSAGE} ${WRKDIR}/pkg-message
+	@${REINPLACE_CMD} -e 's,%%PREFIX%%,${PREFIX},g' \
+		${WRKDIR}/pkg-message
+	@${CAT} ${WRKDIR}/pkg-message
 
 .include <bsd.port.mk>
diff -ruN /usr/ports/mail/dovecot/distinfo dovecot/distinfo
--- /usr/ports/mail/dovecot/distinfo	Thu Jan 16 18:33:15 2003
+++ dovecot/distinfo	Tue Apr 29 16:24:40 2003
@@ -1 +1 @@
-MD5 (dovecot-0.99.5.tar.gz) = b9e592f23213be9db3603f8bda8235cd
+MD5 (dovecot-0.99.9.tar.gz) = 37b5c3fffcaa704bf2f4c373b5735b62
diff -ruN /usr/ports/mail/dovecot/files/README.FreeBSD dovecot/files/README.FreeBSD
--- /usr/ports/mail/dovecot/files/README.FreeBSD	Thu Jan  1 01:00:00 1970
+++ dovecot/files/README.FreeBSD	Mon Apr 28 13:42:12 2003
@@ -0,0 +1,58 @@
+#
+# README.FreeBSD
+#
+# $FreeBSD$
+#
+
+ o Dovecot currently will not allow users with a user or group id of 0
+   to login. Because of this you will not be able to open root's
+   mailbox, or any of the mailboxes of users in the wheel group. This is
+   intended as a security feature, and isn't an issue on Linux because
+   the concept of wheel is not enforced by GNU su.
+
+  + 2003/04/15
+     It is now possible to change this behavior to allow wheel users to
+     check their mailboxes with Dovecot. Add the following line to your
+     dovecot.conf:
+
+     allow_zero_gid = yes
+
+ o The configuration which is supplied with this port is installed into
+   PREFIX/etc/dovecot-example.conf and PREFIX defaults to /usr/local.
+   I have attempted to choose what appears to be the best mixture of
+   performance and compatibility and set Dovecot up to start POP3 and
+   IMAP services for all the local users of the machine. This should be
+   enough for the simplest sites to get up and running straight away.
+ 
+ o Enabling SSL services should be easy, the Dovecot port is configured
+   by default to keep its SSL information under /var/dovecot/ssl, if you
+   already have certificates you wish to use then you can override this
+   in the configuration. If you don't have a certificate and wish to
+   make your own it should be as simple as:
+
+   # cd PREFIX/share/doc/dovecot/
+   # vi dovecot-openssl.conf
+    
+    Add information which describes your enivironment.
+    
+   # sh mkcert.sh
+
+    Execute the certificate generator. This will put a new certificate
+    and private key under /var/dovecot/ssl.
+    
+   # cd PREFIX/etc/
+   # vi dovecot.conf
+    
+    Reconfigure Dovecot to use SSL.
+
+   The variables you will want to set in dovecot.conf to allow a SSL
+   secured POP3 and IMAP service are:
+
+    + protocols = imap imaps pop3 pop3s
+    + ssl_disable = no
+
+   You may wish to also change the following variables to reflect the
+   location of SSL certificates on your system.
+   
+    + ssl_cert_file = /var/dovecot/ssl/certs/imapd.pem
+    + ssl_key_file = /var/dovecot/ssl/private/imapd.pem
diff -ruN /usr/ports/mail/dovecot/files/dovecot-imapd.sh dovecot/files/dovecot-imapd.sh
--- /usr/ports/mail/dovecot/files/dovecot-imapd.sh	Sun Sep  1 15:17:07 2002
+++ dovecot/files/dovecot-imapd.sh	Thu Jan  1 01:00:00 1970
@@ -1,21 +0,0 @@
-#!/bin/sh
-
-if ! PREFIX=$(expr $0 : "\(/.*\)/etc/rc\.d/$(basename $0)\$"); then
-    echo "$0: Cannot determine the PREFIX" >&2
-    exit 1
-fi
-
-case "$1" in
-start)
-	[ -x ${PREFIX}/sbin/imap-master ] && \
-		${PREFIX}/sbin/imap-master && echo -n ' dovecot-imapd'
-	;;
-stop)
-	/usr/bin/killall imap-master && echo -n ' dovecot-imapd'
-	;;
-*)
-	echo "Usage: `basename $0` { start | stop }" >&2
-	;;
-esac
-
-exit 0
diff -ruN /usr/ports/mail/dovecot/files/dovecot.sh.sample dovecot/files/dovecot.sh.sample
--- /usr/ports/mail/dovecot/files/dovecot.sh.sample	Thu Jan  1 01:00:00 1970
+++ dovecot/files/dovecot.sh.sample	Mon Apr 28 13:42:12 2003
@@ -0,0 +1,21 @@
+#!/bin/sh
+
+if ! PREFIX=$(expr $0 : "\(/.*\)/etc/rc\.d/$(basename $0)\$"); then
+    echo "$0: Cannot determine the PREFIX" >&2
+    exit 1
+fi
+
+case "$1" in
+start)
+	[ -x ${PREFIX}/sbin/dovecot ] && \
+		${PREFIX}/sbin/dovecot && echo -n ' dovecot'
+	;;
+stop)
+	/usr/bin/killall dovecot && echo -n ' dovecot'
+	;;
+*)
+	echo "Usage: `basename $0` { start | stop }" >&2
+	;;
+esac
+
+exit 0
diff -ruN /usr/ports/mail/dovecot/files/patch-allow-zero-gid dovecot/files/patch-allow-zero-gid
--- /usr/ports/mail/dovecot/files/patch-allow-zero-gid	Thu Jan  1 01:00:00 1970
+++ dovecot/files/patch-allow-zero-gid	Mon Apr 28 13:42:12 2003
@@ -0,0 +1,172 @@
+Index: src/lib/restrict-access.c
+===================================================================
+RCS file: /home/cvs/dovecot/src/lib/restrict-access.c,v
+retrieving revision 1.10
+diff -u -3 -p -r1.10 restrict-access.c
+--- src/lib/restrict-access.c	4 Mar 2003 04:00:13 -0000	1.10
++++ src/lib/restrict-access.c	15 Apr 2003 17:37:26 -0000
+@@ -31,12 +31,14 @@
+ #include <grp.h>
+ 
+ void restrict_access_set_env(const char *user, uid_t uid, gid_t gid,
+-			     const char *chroot_dir)
++		 	     const char *chroot_dir, int allow_zg)
+ {
+ 	if (user != NULL && *user != '\0')
+ 		env_put(t_strconcat("RESTRICT_USER=", user, NULL));
+ 	if (chroot_dir != NULL && *chroot_dir != '\0')
+ 		env_put(t_strconcat("RESTRICT_CHROOT=", chroot_dir, NULL));
++	if (allow_zg == TRUE)
++		env_put(t_strdup("ALLOW_ZERO_GID=TRUE"));
+ 
+ 	env_put(t_strdup_printf("RESTRICT_SETUID=%s", dec2str(uid)));
+ 	env_put(t_strdup_printf("RESTRICT_SETGID=%s", dec2str(gid)));
+@@ -45,6 +47,7 @@ void restrict_access_set_env(const char 
+ void restrict_access_by_env(int disallow_root)
+ {
+ 	const char *env;
++	int allow_zero_gid;
+ 	gid_t gid;
+ 	uid_t uid;
+ 
+@@ -97,8 +100,14 @@ void restrict_access_by_env(int disallow
+ 			i_fatal("We couldn't drop root privileges");
+ 	}
+ 
+-	if ((gid != 0 && uid != 0) || disallow_root) {
++	/* allow users with zero group id permission for BSD */
++	env = getenv("ALLOW_ZERO_GID");
++	allow_zero_gid = env == NULL ? FALSE : TRUE;
++
++	if (allow_zero_gid == FALSE &&
++		((gid != 0 && uid != 0) || disallow_root)) {
+ 		if (getgid() == 0 || getegid() == 0 || setgid(0) == 0)
+ 			i_fatal("We couldn't drop root group privileges");
+ 	}
++
+ }
+Index: src/lib/restrict-access.h
+===================================================================
+RCS file: /home/cvs/dovecot/src/lib/restrict-access.h,v
+retrieving revision 1.4
+diff -u -3 -p -r1.4 restrict-access.h
+--- src/lib/restrict-access.h	4 Mar 2003 04:00:13 -0000	1.4
++++ src/lib/restrict-access.h	15 Apr 2003 17:37:26 -0000
+@@ -4,7 +4,7 @@
+ /* set environment variables so they can be read with
+    restrict_access_by_env() */
+ void restrict_access_set_env(const char *user, uid_t uid, gid_t gid,
+-			     const char *chroot_dir);
++			     const char *chroot_dir, int allow_zg);
+ 
+ /* chroot, setuid() and setgid() based on environment variables.
+    If disallow_roots is TRUE, we'll kill ourself if we didn't have the
+Index: src/master/auth-process.c
+===================================================================
+RCS file: /home/cvs/dovecot/src/master/auth-process.c,v
+retrieving revision 1.41
+diff -u -3 -p -r1.41 auth-process.c
+--- src/master/auth-process.c	2 Apr 2003 02:09:41 -0000	1.41
++++ src/master/auth-process.c	15 Apr 2003 17:37:27 -0000
+@@ -307,7 +307,7 @@ static pid_t create_auth_process(struct 
+ 
+ 	/* setup access environment */
+ 	restrict_access_set_env(group->set->user, pwd->pw_uid, pwd->pw_gid,
+-				group->set->chroot);
++				group->set->chroot, set->allow_zero_gid);
+ 
+ 	/* set other environment */
+ 	env_put(t_strconcat("AUTH_PROCESS=", dec2str(getpid()), NULL));
+Index: src/master/login-process.c
+===================================================================
+RCS file: /home/cvs/dovecot/src/master/login-process.c,v
+retrieving revision 1.40
+diff -u -3 -p -r1.40 login-process.c
+--- src/master/login-process.c	15 Apr 2003 16:58:48 -0000	1.40
++++ src/master/login-process.c	15 Apr 2003 17:37:27 -0000
+@@ -384,7 +384,8 @@ static void login_process_init_env(struc
+ 	   clean_child_process() since it clears environment */
+ 	restrict_access_set_env(group->set->user,
+ 				group->set->uid, set->login_gid,
+-				set->login_chroot ? set->login_dir : NULL);
++				set->login_chroot ? set->login_dir : NULL,
++				FALSE);
+ 
+ 	env_put("DOVECOT_MASTER=1");
+ 
+Index: src/master/mail-process.c
+===================================================================
+RCS file: /home/cvs/dovecot/src/master/mail-process.c,v
+retrieving revision 1.13
+diff -u -3 -p -r1.13 mail-process.c
+--- src/master/mail-process.c	15 Apr 2003 16:58:48 -0000	1.13
++++ src/master/mail-process.c	15 Apr 2003 17:37:28 -0000
+@@ -25,7 +25,7 @@ static int validate_uid_gid(uid_t uid, g
+ 		return FALSE;
+ 	}
+ 
+-	if (uid != 0 && gid == 0) {
++	if (set->allow_zero_gid == FALSE && uid != 0 && gid == 0) {
+ 		i_error("mail process isn't allowed to be in group 0");
+ 		return FALSE;
+ 	}
+@@ -38,8 +38,9 @@ static int validate_uid_gid(uid_t uid, g
+ 		return FALSE;
+ 	}
+ 
+-	if (gid < (gid_t)set->first_valid_gid ||
+-	    (set->last_valid_gid != 0 && gid > (gid_t)set->last_valid_gid)) {
++	if (set->allow_zero_gid == FALSE &&
++	    (gid < (gid_t)set->first_valid_gid ||
++	    (set->last_valid_gid != 0 && gid > (gid_t)set->last_valid_gid))) {
+ 		i_error("mail process isn't allowed to use "
+ 			"GID %s (UID is %s)", dec2str(gid), dec2str(uid));
+ 		return FALSE;
+@@ -150,7 +151,8 @@ int create_mail_process(int socket, stru
+ 	   (paranoia about filling up environment without noticing) */
+ 	restrict_access_set_env(data + reply->system_user_idx,
+ 				reply->uid, reply->gid,
+-				reply->chroot ? data + reply->home_idx : NULL);
++				reply->chroot ? data + reply->home_idx : NULL,
++				set->allow_zero_gid);
+ 
+ 	restrict_process_size(process_size, (unsigned int)-1);
+ 
+Index: src/master/master-settings.c
+===================================================================
+RCS file: /home/cvs/dovecot/src/master/master-settings.c,v
+retrieving revision 1.16
+diff -u -3 -p -r1.16 master-settings.c
+--- src/master/master-settings.c	2 Apr 2003 02:09:41 -0000	1.16
++++ src/master/master-settings.c	15 Apr 2003 17:37:28 -0000
+@@ -46,6 +46,7 @@ static struct setting_def setting_defs[]
+ 	DEF(SET_INT, max_mail_processes),
+ 	DEF(SET_BOOL, verbose_proctitle),
+ 
++	DEF(SET_BOOL, allow_zero_gid),
+ 	DEF(SET_INT, first_valid_uid),
+ 	DEF(SET_INT, last_valid_uid),
+ 	DEF(SET_INT, first_valid_gid),
+@@ -153,6 +154,7 @@ struct settings default_settings = {
+ 	MEMBER(max_mail_processes) 1024,
+ 	MEMBER(verbose_proctitle) FALSE,
+ 
++	MEMBER(allow_zero_gid) FALSE,
+ 	MEMBER(first_valid_uid) 500,
+ 	MEMBER(last_valid_uid) 0,
+ 	MEMBER(first_valid_gid) 1,
+Index: src/master/master-settings.h
+===================================================================
+RCS file: /home/cvs/dovecot/src/master/master-settings.h,v
+retrieving revision 1.10
+diff -u -3 -p -r1.10 master-settings.h
+--- src/master/master-settings.h	2 Apr 2003 02:09:41 -0000	1.10
++++ src/master/master-settings.h	15 Apr 2003 17:37:29 -0000
+@@ -32,6 +32,7 @@ struct settings {
+ 	unsigned int max_mail_processes;
+ 	int verbose_proctitle;
+ 
++	int allow_zero_gid;
+ 	unsigned int first_valid_uid, last_valid_uid;
+ 	unsigned int first_valid_gid, last_valid_gid;
+ 
diff -ruN /usr/ports/mail/dovecot/files/patch-dovecot-example.conf dovecot/files/patch-dovecot-example.conf
--- /usr/ports/mail/dovecot/files/patch-dovecot-example.conf	Thu Jan 16 18:33:15 2003
+++ dovecot/files/patch-dovecot-example.conf	Mon Apr 28 13:42:12 2003
@@ -1,56 +1,193 @@
---- dovecot-example.conf	Thu Jan  2 10:33:53 2003
-+++ dovecot-example.conf.new	Sat Jan  4 21:40:34 2003
-@@ -64,7 +64,7 @@
+--- dovecot-example.conf.orig	Fri Apr  4 13:17:25 2003
++++ dovecot-example.conf	Sat Apr 19 14:11:40 2003
+@@ -7,11 +7,11 @@
+ # --with-ssldir=/etc/ssl
+ 
+ # Base directory where to store runtime data.
+-#base_dir = /var/run/dovecot/
++base_dir = /var/dovecot/
+ 
+ # Protocols we want to be serving:
+ #  imap imaps pop3 pop3s
+-#protocols = imap imaps
++protocols = imap pop3
+ 
+ # IP or host address where to listen in for connections. It's not currently
+ # possible to specify multiple addresses. "*" listens in all IPv4 interfaces.
+@@ -27,18 +27,18 @@
+ #pop3s_listen = 
+ 
+ # Disable SSL/TLS support.
+-#ssl_disable = no
++ssl_disable = yes
+ 
+ # 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
+ # root. Included doc/mkcert.sh can be used to easily generate self-signed
+ # certificate, just make sure to update the domains in dovecot-openssl.cnf
+-#ssl_cert_file = /etc/ssl/certs/dovecot.pem
+-#ssl_key_file = /etc/ssl/private/dovecot.pem
++ssl_cert_file = %%SSLDIR%%/certs/imapd.pem
++ssl_key_file = %%SSLDIR%%/private/imapd.pem
+ 
+ # SSL parameter file. Master process generates this file for login processes.
+ # It contains Diffie Hellman and RSA parameters.
+-#ssl_parameters_file = /var/run/dovecot/ssl-parameters.dat
++ssl_parameters_file = %%SSLDIR%%/parameters.dat
+ 
+ # How often to regenerate the SSL parameters file. Generation is quite CPU
+ # intensive operation. The value is in hours, 0 disables regeneration
+@@ -67,11 +67,11 @@
+ # Directory where authentication process places authentication UNIX sockets
+ # which login needs to be able to connect to. The sockets are created when
+ # running as root, so you don't have to worry about permissions.
+-#login_dir = /var/run/dovecot/login
++login_dir = /var/dovecot/login
+ 
+ # chroot login process to the login_dir. Only reason not to do this is if you
+ # wish to run the whole Dovecot without roots.
+-#login_chroot = yes
++login_chroot = yes
+ 
+ 
  ##
+@@ -81,12 +81,12 @@
+ login = imap
  
- # Executable location
+ # Executable location.
 -#login_executable = /usr/libexec/dovecot/imap-login
-+login_executable = %%PREFIX%%/dovecot/imap-login
++login_executable = %%PREFIX%%/libexec/dovecot/imap-login
  
- # User to use for imap-login process
- #login_user = imapd
-@@ -76,7 +76,7 @@
- # Directory where imap-auth places authentication UNIX sockets which login
- # needs to be able to connect to. The sockets are created when running as
- # root, so you don't need to give imap-auth any access for it.
--#login_dir = /var/run/dovecot/login
-+login_dir = /var/dovecot/login
+ # User to use for the login process. The user must belong to a group where
+ # only it has access, it's used to control access for authentication process
+ # named sockets.
+-#login_user = dovecot
++login_user = dovecot
+ 
+ # Set max. process size in megabytes. If you don't use
+ # login_process_per_connection you might need to grow this.
+@@ -100,7 +100,7 @@
+ 
+ # Number of login processes to create. If login_process_per_user is
+ # yes, this is the number of extra processes waiting for users to log in.
+-#login_processes_count = 3
++login_processes_count = 1
+ 
+ # Maximum number of extra login processes to create. The extra process count
+ # usually stays at login_processes_count, but when multiple users start logging
+@@ -126,7 +126,7 @@
+ login = pop3
+ 
+ # Exception to above rule being the executable location.
+-#login_executable = /usr/libexec/dovecot/pop3-login
++login_executable = %%PREFIX%%/libexec/dovecot/pop3-login
  
- # chroot imap-login process to the login_dir. Only reason not to do this
- # is if you wish to run the whole imapd without roots.
-@@ -111,7 +111,7 @@
+ ##
+ ## Mail processes
+@@ -139,10 +139,10 @@
+ # Show more verbose process titles (in ps). Currently shows user name and
+ # IP address. Useful for seeing who are actually using the IMAP processes
+ # (eg. shared mailboxes or if same uid is used for multiple accounts).
+-#verbose_proctitle = no
++verbose_proctitle = yes
+ 
+ # Show protocol level SSL errors.
+-#verbose_ssl = no
++verbose_ssl = yes
+ 
+ # Valid UID/GID ranges for users, defaults to 500 and above. This is mostly
+ # to make sure that users can't log in as daemons or other system users.
+@@ -160,7 +160,7 @@
+ # WARNING: Never add directories here which local users can modify, that
+ # may lead to root exploit. Usually this should be done only if you don't
+ # allow shell access for users. See doc/configuration.txt for more information.
+-#valid_chroot_dirs = 
++valid_chroot_dirs = /var/mail
+ 
+ # Default MAIL environment to use when it's not set. By leaving this empty
+ # dovecot tries to do some automatic detection as described in
+@@ -179,7 +179,7 @@
+ #   mbox:~/mail/:INBOX=/var/mail/%u
+ #   mbox:/var/mail/%d/%n/:INDEX=/var/indexes/%d/%n
+ #
+-#default_mail_env = 
++default_mail_env = mbox:/var/mail/%u
+ 
+ # Space-separated list of fields to cache for all mails. Currently these
+ # fields are allowed followed by a list of commands they speed up:
+@@ -224,7 +224,7 @@
+ #     arrives in half a hour, Dovecot closes the connection. This is still
+ #     fine, except Outlook doesn't connect back so you don't see if new mail
+ #     arrives.
+-#client_workarounds = 
++client_workarounds = oe6-fetch-no-newmail outlook-idle
+ 
+ # Dovecot can notify client of new mail in selected mailbox soon after it's
+ # received. This setting specifies the minimum interval in seconds between
+@@ -249,7 +249,7 @@
+ # Save mails with CR+LF instead of plain LF. This makes sending those mails
+ # take less CPU, especially with sendfile() syscall with Linux and FreeBSD.
+ # But it also creates a bit more disk I/O which may just make it slower.
+-#mail_save_crlf = no
++mail_save_crlf = yes
+ 
+ # Use mmap() instead of read() to read mail files. read() seems to be a bit
+ # faster with my Linux/x86 and it's better with NFS, so that's the default.
+@@ -261,7 +261,7 @@
+ # know any MUA which would modify mail files directly. IMAP protocol also
+ # requires that the mails don't change, so it would be problematic in any case.
+ # If you care about performance, enable it.
+-#maildir_copy_with_hardlinks = no
++maildir_copy_with_hardlinks = yes
+ 
+ # Check if mails' content has been changed by external programs. This slows
+ # down things as extra stat() needs to be called for each file. If changes are
+@@ -280,7 +280,7 @@
+ # with is important to avoid deadlocks if other MTAs/MUAs are using both fcntl
+ # and flock. Some operating systems don't allow using both of them
+ # simultaneously, eg. BSDs. If dotlock is used, it's always created first.
+-#mbox_locks = dotlock fcntl
++mbox_locks = fcntl
+ 
+ # Should we create dotlock file even when we want only a read-lock? Setting
+ # this to yes hurts the performance when the mailbox is accessed simultaneously
+@@ -310,7 +310,7 @@
  ##
  
  # Executable location
 -#imap_executable = /usr/libexec/dovecot/imap
-+imap_executable = %%PREFIX%%/dovecot/imap
++imap_executable = %%PREFIX%%/libexec/dovecot/imap
+ 
+ # Set max. process size in megabytes. Most of the memory goes to mmap()ing
+ # files, so it shouldn't harm much even if this limit is set pretty high.
+@@ -321,7 +321,7 @@
+ ##
+ 
+ # Executable location
+-#pop3_executable = /usr/libexec/dovecot/pop3
++pop3_executable = %%PREFIX%%/libexec/dovecot/pop3
  
  # Set max. process size in megabytes. Most of the memory goes to mmap()ing
  # files, so it shouldn't harm much even if this limit is set pretty high.
-@@ -292,7 +292,7 @@
- auth_userinfo = pam
+@@ -374,10 +374,10 @@
+ #   vpopmail: vpopmail authentication
+ #   ldap <config path>: LDAP, see doc/dovecot-ldap.conf
+ #   pgsql <config path>: a PostgreSQL database, see doc/dovecot-pgsql.conf
+-auth_passdb = pam
++auth_passdb = passwd
  
  # Executable location
--#auth_executable = /usr/libexec/dovecot/imap-auth
-+auth_executable = %%PREFIX%%/dovecot/imap-auth
+-#auth_executable = /usr/libexec/dovecot/dovecot-auth
++auth_executable = %%PREFIX%%/libexec/dovecot/dovecot-auth
  
  # Set max. process size in megabytes.
  #auth_process_size = 256
-@@ -303,7 +303,7 @@
+@@ -402,7 +402,7 @@
  
- # Directory where to chroot the process. Most authentication backends don't
- # work if this is set, and there's no point chrooting if auth_user is root.
--#auth_chroot = 
-+auth_chroot = /var/dovecot/auth
- 
- # Number of authentication processes to create
- #auth_count = 1
-@@ -319,7 +319,7 @@
- #auth_realms = 
- #auth_userinfo = passwd-file /etc/passwd.imap
- #auth_user = imapauth
--#auth_chroot = /var/run/dovecot/auth
-+#auth_chroot = /var/dovecot/auth
+ # More verbose logging. Useful for figuring out why authentication isn't
+ # working.
+-#auth_verbose = no
++auth_verbose = yes
  
- # if you plan to use only passwd-file, you don't need the two auth processes,
- # simply set "auth_methods = plain digest-md5"
+ # digest-md5 authentication process. It requires special MD5 passwords which
+ # /etc/shadow and PAM doesn't support, so we never need roots to handle it.
diff -ruN /usr/ports/mail/dovecot/files/patch-mkcert.sh dovecot/files/patch-mkcert.sh
--- /usr/ports/mail/dovecot/files/patch-mkcert.sh	Thu Jan  1 01:00:00 1970
+++ dovecot/files/patch-mkcert.sh	Mon Apr 28 13:42:12 2003
@@ -0,0 +1,11 @@
+--- doc/mkcert.sh	Tue Apr 15 14:28:24 2003
++++ mkcert.sh.new	Tue Apr 15 14:28:52 2003
+@@ -4,7 +4,7 @@
+ # Edit dovecot-openssl.cnf before running this.
+ 
+ OPENSSL=${OPENSSL-openssl}
+-SSLDIR=${SSLDIR-/etc/ssl}
++SSLDIR=${SSLDIR-%%SSLDIR%%}
+ OPENSSLCONFIG=${OPENSSLCONFIG-dovecot-openssl.cnf}
+ 
+ CERTFILE=$SSLDIR/certs/imapd.pem
diff -ruN /usr/ports/mail/dovecot/pkg-comment dovecot/pkg-comment
--- /usr/ports/mail/dovecot/pkg-comment	Sun Sep  1 15:17:04 2002
+++ dovecot/pkg-comment	Thu Jan  1 01:00:00 1970
@@ -1 +0,0 @@
-Secure and compact IMAP server
diff -ruN /usr/ports/mail/dovecot/pkg-install dovecot/pkg-install
--- /usr/ports/mail/dovecot/pkg-install	Sun Sep  1 15:17:04 2002
+++ dovecot/pkg-install	Mon Apr 28 13:42:12 2003
@@ -36,8 +36,8 @@
 }
 
 if [ x"$2" = xPRE-INSTALL ]; then
-    USER=imapd
-    GROUP=imapd
+    USER=dovecot
+    GROUP=dovecot
 
     if /usr/sbin/pw groupshow "${GROUP}" 2>/dev/null; then
         echo "You already have a group \"${GROUP}\", so I will use it."
@@ -57,7 +57,7 @@
     else
         if /usr/sbin/pw useradd ${USER} -g ${GROUP} -h - \
            -s /sbin/nologin \
-           -c "Imap Daemon"
+           -c "Dovecot"
 	then
 	    echo "Added user \"${USER}\"."
 	else
diff -ruN /usr/ports/mail/dovecot/pkg-message dovecot/pkg-message
--- /usr/ports/mail/dovecot/pkg-message	Thu Jan  1 01:00:00 1970
+++ dovecot/pkg-message	Mon Apr 28 13:42:12 2003
@@ -0,0 +1,22 @@
+---------------------------------------------------------------------
+ 
+ You can get default configured IMAP and POP3 services running by
+ copying the following sample files to the given locations. In this
+ simple configuration Dovecot will authenticate users against the
+ systems passwd file and use the default /var/mail/$USER mbox files.
+
+  %%PREFIX%%/etc/dovecot-example.conf
+   -> %%PREFIX%%/etc/dovecot.conf
+  
+  %%PREFIX%%/etc/rc.d/dovecot.sh.sample
+   -> %%PREFIX%%/etc/rc.d/dovecot.sh
+ 
+ Further information on configuration can be found in:
+
+  %%PREFIX%%/share/doc/dovecot/
+
+ FreeBSD specific information is covered in the following file:
+
+  %%PREFIX%%/share/doc/dovecot/README.FreeBSD
+
+---------------------------------------------------------------------
diff -ruN /usr/ports/mail/dovecot/pkg-plist dovecot/pkg-plist
--- /usr/ports/mail/dovecot/pkg-plist	Thu Jan 16 18:33:15 2003
+++ dovecot/pkg-plist	Tue Apr 29 16:31:29 2003
@@ -1,9 +1,11 @@
 etc/dovecot-example.conf
-etc/rc.d/dovecot-imapd.sh
-lib/dovecot/imap
-lib/dovecot/imap-auth
-lib/dovecot/imap-login
-sbin/imap-master
+etc/rc.d/dovecot.sh.sample
+libexec/dovecot/imap
+libexec/dovecot/imap-login
+libexec/dovecot/pop3
+libexec/dovecot/pop3-login
+libexec/dovecot/dovecot-auth
+sbin/dovecot
 %%PORTDOCS%%share/doc/dovecot/auth.txt
 %%PORTDOCS%%share/doc/dovecot/design.txt
 %%PORTDOCS%%share/doc/dovecot/nfs.txt
@@ -11,5 +13,10 @@
 %%PORTDOCS%%share/doc/dovecot/multiaccess.txt
 %%PORTDOCS%%share/doc/dovecot/configuration.txt
 %%PORTDOCS%%share/doc/dovecot/mail-storages.txt
+%%PORTDOCS%%share/doc/dovecot/dovecot-ldap.conf
+%%PORTDOCS%%share/doc/dovecot/dovecot-pgsql.conf
+%%PORTDOCS%%share/doc/dovecot/dovecot-openssl.cnf
+%%PORTDOCS%%share/doc/dovecot/mkcert.sh
+%%PORTDOCS%%share/doc/dovecot/README.FreeBSD
 %%PORTDOCS%%@dirrm share/doc/dovecot
- at dirrm lib/dovecot
+ at dirrm libexec/dovecot

Thanks,
-- 
Dominic
 <dom at cus.org.uk> <d.marks at student.umist.ac.uk>



More information about the freebsd-ports-bugs mailing list