Skip site navigation (1)Skip section navigation (2)
Date:      Mon,  8 Sep 2008 01:32:22 -0400 (EDT)
From:      Yarema <yds@CoolRat.org>
To:        FreeBSD-gnats-submit@FreeBSD.org
Cc:        Beech Rintoul <Beech@FreeBSD.org>, bapt <Baptiste.Daroussin@Gmail.com>
Subject:   ports/127200: [PATCH] mail/dovecot new version 1.1.3
Message-ID:  <20080908053222.7F5356432D06@orion.dppl.com>
Resent-Message-ID: <200809080540.m885e85h034081@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         127200
>Category:       ports
>Synopsis:       [PATCH] mail/dovecot new version 1.1.3
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          maintainer-update
>Submitter-Id:   current-users
>Arrival-Date:   Mon Sep 08 05:40:08 UTC 2008
>Closed-Date:
>Last-Modified:
>Originator:     Yarema
>Release:        FreeBSD 6.4-PRERELEASE amd64
>Organization:
NYCBUG.org
>Environment:
System: FreeBSD 6.4-PRERELEASE amd64
	FreeBSD 7.1-PRERELEASE amd64
>Description:
Version update and deep reworking of the port.
Supersedes and incorporates PR ports/127091, please close it.

New files:	files/patch-configur
		files/pkg-deinstall.in
		files/pkg-install.in

Deleted files:	pkg-deinstall
		pkg-install
                
Add support for Berkeley DB used by the expire plugin.
(Submitted by bapt <Baptiste.Daroussin@Gmail.com> as PR ports/127091)

Install more DOCS.

Move the SCRIPT_ENV substitutions to SUB_FILES
otherwise DOVECOT_[UG]ID settings do not propagate to the binary package.

Change from .if defined(WITHOUT_*)
to .if defined(WITH_*) && !defined(WITHOUT_*)
so make does the right thing in case both are defined.
This sort of conflict can happen is these tunables are set in
/etc/make.conf and options.

Make the PROTOCOLS substitution include all the protocols which are built
into the example config file.

Clean up patch-dovecot-example.conf and perform some post-patch processing
to reflect more closely how this port actually installs.  This is necessary
because of the optional ManageSieve patch.

Modify files/dovecot.sh.in to ensure runtime directories exist with correct
permissions.

Rework the install so all the example config files get installed into
EXAMPLESDIR as per hier(7) independent of the NOPORTDOCS tunable.  Install
the relevant config files into etc/ if no prior version exists.

Ensure that 'make install' and pkg_add(1) produce identical installs and
that everything is accounted for in the PLIST.
>How-To-Repeat:
cd /usr/ports/mail/dovecot/ && make install
>Fix:
diff -u -r -N dovecot-1.1.2/Makefile dovecot/Makefile
--- dovecot-1.1.2/Makefile	2008-08-21 03:38:22.356910179 -0400
+++ dovecot/Makefile	2008-09-08 00:17:44.941119349 -0400
@@ -7,19 +7,19 @@
 #
 
 PORTNAME=	dovecot
-DISTVERSION=	1.1.2
-PORTREVISION=	1
+DISTVERSION=	1.1.3
 CATEGORIES=	mail ipv6
 MASTER_SITES=	http://www.dovecot.org/releases/1.1/
 
-MAINTAINER=	yds@coolrat.org
+MAINTAINER=	yds@CoolRat.org
 COMMENT=	Secure and compact IMAP and POP3 servers
 
 USE_ICONV=	yes
 USE_RC_SUBR=	dovecot.sh
 
 GNU_CONFIGURE=	yes
-CONFIGURE_ARGS=	--without-shadow --localstatedir=/var
+CONFIGURE_TARGET=	--build=${MACHINE_ARCH}-portbld-freebsd${OSREL}
+CONFIGURE_ARGS=	--localstatedir=/var --without-shadow
 CONFIGURE_ENV=	CPPFLAGS="-I${LOCALBASE}/include" \
 		LDFLAGS="-L${LOCALBASE}/lib"
 USE_LDCONFIG=	${PREFIX}/lib/dovecot \
@@ -27,25 +27,27 @@
 		${PREFIX}/lib/dovecot/pop3 \
 		${PREFIX}/lib/dovecot/lda
 
-.if !defined(NOPORTDOCS)
-PORTDOCS=	*.txt wiki
-.else
+.if defined(NOPORTDOCS)
 CONFIGURE_ARGS+=	--without-docs
+.else
+DOCS=		AUTHORS COPYING COPYING.LGPL COPYING.MIT INSTALL NEWS TODO README
+PORTDOCS=	*.txt wiki ${DOCS}
 .endif
 
 DOVECOT_UID?=	143
 DOVECOT_GID?=	143
-SCRIPT_ENV+=	DOVECOT_UID=${DOVECOT_UID} \
-		DOVECOT_GID=${DOVECOT_GID}
+
+PROTOCOLS=	imap
 
 OPTIONS=	KQUEUE		"kqueue(2) support"	on  \
 		SSL		"SSL support"		on  \
 		IPV6		"IPv6 support"		on  \
 		POP3		"POP3 support"		on  \
 		LDA		"LDA support"		on  \
-		MANAGESIEVE	"ManageSieve support"	off  \
+		MANAGESIEVE	"ManageSieve support"	on  \
 		GSSAPI		"GSSAPI support"	off \
 		VPOPMAIL	"VPopMail support"	off \
+		BDB		"BerkleyDB support"	off \
 		LDAP		"OpenLDAP support"	off \
 		PGSQL		"PostgreSQL support"	off \
 		MYSQL		"MySQL support"		off \
@@ -56,6 +58,15 @@
 # Default requirement for dovecot rc script
 _REQUIRE=	LOGIN
 
+# sed script for dovecot.conf
+SED_CONF=	s!%%PROTOCOLS%%!${PROTOCOLS}!g;\
+		s!/usr/!${PREFIX}/!g;\
+		s!=/usr!=${PREFIX}!g;\
+		s!=/etc !=${PREFIX}/etc !g;\
+		s!/etc/dovecot!${PREFIX}&!g;\
+		s![[:<:]]doc/(dovecot-[^-]+)-example.conf[[:>:]]!${EXAMPLESDIR}/\1.conf!g;\
+		s!\#sendmail_path = /usr/.*!sendmail_path = /usr/sbin/sendmail!g;
+
 ## kqueue(2) support
 #
 .if !defined(WITHOUT_KQUEUE)
@@ -64,7 +75,9 @@
 
 ## SSL support
 #
-.if defined(WITHOUT_SSL)
+.if defined(WITH_SSL) && !defined(WITHOUT_SSL)
+PROTOCOLS+=	imaps
+.else
 CONFIGURE_ARGS+=	--without-ssl
 .endif
 
@@ -78,10 +91,12 @@
 #
 .if defined(WITHOUT_POP3)
 CONFIGURE_ARGS+=	--without-pop3d
-PROTOCOLS=		imap
 PLIST_SUB+=		POP3="@comment "
 .else
-PROTOCOLS=		imap pop3
+PROTOCOLS+=		pop3
+.if defined(WITH_SSL) && !defined(WITHOUT_SSL)
+PROTOCOLS+=		pop3s
+.endif
 PLIST_SUB+=		POP3=""
 .endif
 
@@ -96,16 +111,18 @@
 
 ## ManageSieve support
 #
-.if defined(WITH_MANAGESIEVE)
+.if defined(WITH_MANAGESIEVE) && !defined(WITHOUT_MANAGESIEVE)
 MANAGESIEVEVERSION!=	${MAKE} -C ${.CURDIR}/../dovecot-managesieve -V PORTVERSION
 PATCH_SITES!=		${MAKE} -C ${.CURDIR}/../dovecot-managesieve -V MASTER_SITES
 PATCHFILES+=		dovecot-${PORTVERSION}-managesieve-${MANAGESIEVEVERSION}.diff.gz
 PATCH_DIST_STRIP=	-p1
+PROTOCOLS+=		managesieve
+DOCS+=			README.managesieve
 .endif
 
 ## GSSAPI support
 #
-.if defined(WITH_GSSAPI)
+.if defined(WITH_GSSAPI) && !defined(WITHOUT_GSSAPI)
 CONFIGURE_ARGS+=	--with-gssapi
 .else
 CONFIGURE_ARGS+=	--without-gssapi
@@ -113,7 +130,7 @@
 
 ## VPopMail Support
 #
-.if defined(WITH_VPOPMAIL)
+.if defined(WITH_VPOPMAIL) && !defined(WITHOUT_VPOPMAIL)
 VPOPMAIL=		${LOCALBASE}/vpopmail/bin/vchkpw
 BUILD_DEPENDS+=		${VPOPMAIL}:${PORTSDIR}/mail/vpopmail
 CONFIGURE_ARGS+=	--with-vpopmail
@@ -121,67 +138,104 @@
 CONFIGURE_ARGS+=	--without-vpopmail
 .endif
 
+## BDB Support
+#
+.if defined(WITH_BDB) && !defined(WITHOUT_BDB)
+USE_BDB=		yes
+CONFIGURE_ARGS+=	--with-db
+CFLAGS+=		-I${BDB_INCLUDE_DIR} -L${BDB_LIB_DIR}
+PLIST_SUB+=		BDB=""
+SED_CONF+=		s!^\#(dict_db_config)!\1!;
+.else
+PLIST_SUB+=		BDB="@comment "
+.endif
+
 ## OpenLDAP Support
 #
-.if defined(WITH_LDAP)
+.if defined(WITH_LDAP) && !defined(WITHOUT_LDAP)
 USE_OPENLDAP=		yes
 CONFIGURE_ARGS+=	--with-ldap
+PLIST_SUB+=		LDAP=""
 _REQUIRE+=		slapd
 .else
 CONFIGURE_ARGS+=	--without-ldap
+PLIST_SUB+=		LDAP="@comment "
 .endif
 
 ## PostgreSQL Support
 #
-.if defined(WITH_PGSQL)
+.if defined(WITH_PGSQL) && !defined(WITHOUT_PGSQL)
 USE_PGSQL=		yes
 CONFIGURE_ARGS+=	--with-pgsql
+PLIST_SUB+=		SQL=""
 _REQUIRE+=		postgresql
 .else
 CONFIGURE_ARGS+=	--without-pgsql
+PLIST_SUB+=		SQL="@comment "
 .endif
 
 ## MySQL Support
 #
-.if defined(WITH_MYSQL)
+.if defined(WITH_MYSQL) && !defined(WITHOUT_MYSQL)
 USE_MYSQL=		yes
 CONFIGURE_ARGS+=	--with-mysql
+PLIST_SUB+=		SQL=""
 _REQUIRE+=		mysql
 .else
 CONFIGURE_ARGS+=	--without-mysql
+PLIST_SUB+=		SQL="@comment "
 .endif
 
 ## SQLite Support
 #
-.if defined(WITH_SQLITE)
+.if defined(WITH_SQLITE) && !defined(WITHOUT_SQLITE)
 USE_SQLITE=		3
 CONFIGURE_ARGS+=	--with-sqlite
+PLIST_SUB+=		SQL=""
 .else
 CONFIGURE_ARGS+=	--without-sqlite
+PLIST_SUB+=		SQL="@comment "
 .endif
 
-SUB_LIST+=		REQUIRE="${_REQUIRE}"
+SUB_LIST+=		REQUIRE="${_REQUIRE}" DOVECOT_UID=${DOVECOT_UID} DOVECOT_GID=${DOVECOT_GID}
+SUB_FILES+=		pkg-install pkg-deinstall
 
 post-patch:
-.if defined(WITH_GSSAPI)
-	@${REINPLACE_CMD} -e 's,<gssapi/gssapi\.h>,<gssapi.h>,' \
-		${WRKSRC}/src/auth/mech-gssapi.c \
-		${WRKSRC}/configure
-.endif
-
-post-build:
-	@${REINPLACE_CMD} \
-		-e 's,%%PREFIX%%,${PREFIX},g' \
-		-e 's,%%PROTOCOLS%%,${PROTOCOLS},g' \
+	@${REINPLACE_CMD} -E -e '${SED_CONF}' \
 		${WRKSRC}/dovecot-example.conf
+	@${REINPLACE_CMD} -E -e'\
+		s!-example\.conf[[:>:]]!.conf!g;\
+		s!^(confdir[[:space:]]+=[[:space:]]+)\$$\(sysconfdir\)!\1${EXAMPLESDIR}!g;\
+		' ${WRKSRC}/*/Makefile.in ${WRKSRC}/Makefile.in
+.if defined(WITH_GSSAPI)
+	@${REINPLACE_CMD} -e '\
+		s!<gssapi/gssapi\.h>!<gssapi.h>!;\
+		' ${WRKSRC}/src/auth/mech-gssapi.c ${WRKSRC}/configure
+.endif
+	@${LN} -f ${WRKSRC}/dovecot-example.conf		${WRKSRC}/dovecot.conf
+	@${LN} -f ${WRKSRC}/doc/dovecot-db-example.conf		${WRKSRC}/doc/dovecot-db.conf
+	@${LN} -f ${WRKSRC}/doc/dovecot-ldap-example.conf	${WRKSRC}/doc/dovecot-ldap.conf
+	@${LN} -f ${WRKSRC}/doc/dovecot-sql-example.conf	${WRKSRC}/doc/dovecot-sql.conf
 
 pre-install:
 	@${SETENV} ${SCRIPTS_ENV} ${SH} ${PKGINSTALL} ${PKGNAME} PRE-INSTALL
 
 post-install:
-	@${MKDIR} ${DATADIR}
-	${INSTALL_SCRIPT} ${WRKSRC}/doc/mkcert.sh ${DATADIR}
-	${INSTALL_DATA} ${WRKSRC}/doc/dovecot-openssl.cnf ${DATADIR}
+	${INSTALL_DATA} ${WRKSRC}/dovecot.conf ${EXAMPLESDIR}
+	${INSTALL_DATA} ${WRKSRC}/doc/dovecot-db.conf ${EXAMPLESDIR}
+	${INSTALL_DATA} ${WRKSRC}/doc/dovecot-ldap.conf ${EXAMPLESDIR}
+	${INSTALL_DATA} ${WRKSRC}/doc/dovecot-sql.conf ${EXAMPLESDIR}
+	${INSTALL_DATA} ${WRKSRC}/doc/dovecot-openssl.cnf ${EXAMPLESDIR}
+	${INSTALL_SCRIPT} ${WRKSRC}/doc/mkcert.sh ${EXAMPLESDIR}
+	@${GREP} '^@exec ' ${TMPPLIST} \
+		| ${SED} -e 's:^@exec ::; s:%D:${PREFIX}:g;' \
+		> ${WRKDIR}/.PLIST.exec \
+		&& ${SH} ${WRKDIR}/.PLIST.exec
+.if !defined(NOPORTDOCS)
+.for f in ${DOCS}
+	${INSTALL_DATA} ${WRKSRC}/${f} ${DOCSDIR}
+.endfor
+.endif
 	@${SETENV} ${SCRIPTS_ENV} ${SH} ${PKGINSTALL} ${PKGNAME} POST-INSTALL
 	@${CAT} ${PKGMESSAGE}
 
diff -u -r -N dovecot-1.1.2/distinfo dovecot/distinfo
--- dovecot-1.1.2/distinfo	2008-07-30 03:43:32.000000000 -0400
+++ dovecot/distinfo	2008-09-07 16:47:56.066415979 -0400
@@ -1,6 +1,6 @@
-MD5 (dovecot-1.1.2.tar.gz) = fcebb6c099421049632b2f1f019f55cd
-SHA256 (dovecot-1.1.2.tar.gz) = 693981dbaa3bfda0796a88995b42c17f8c48d3cc8630a4762557db01170ca91e
-SIZE (dovecot-1.1.2.tar.gz) = 2300564
-MD5 (dovecot-1.1.2-managesieve-0.10.3.diff.gz) = 72e1532ddd5df4ee5f8cf190a1b53cfe
-SHA256 (dovecot-1.1.2-managesieve-0.10.3.diff.gz) = 67a2b7ca49d5dc96e57b534008593c9702cecd768801aaba2f588087e5fe5980
-SIZE (dovecot-1.1.2-managesieve-0.10.3.diff.gz) = 6117
+MD5 (dovecot-1.1.3.tar.gz) = 103ff0ffb4bcb37f22c27779553e48bc
+SHA256 (dovecot-1.1.3.tar.gz) = e07d52e6d61a653672c5173d6d27fe119970c792478cbbd23b87f9fdfc0c13c7
+SIZE (dovecot-1.1.3.tar.gz) = 2306933
+MD5 (dovecot-1.1.3-managesieve-0.10.3.diff.gz) = 3e1755a2ca4dab1a8d1cb00d8ea9e451
+SHA256 (dovecot-1.1.3-managesieve-0.10.3.diff.gz) = 045520404c0928e63a7127d9a38b7c12ff68ff74dc423f88f8af9e93f129e756
+SIZE (dovecot-1.1.3-managesieve-0.10.3.diff.gz) = 5837
diff -u -r -N dovecot-1.1.2/files/dovecot.sh.in dovecot/files/dovecot.sh.in
--- dovecot-1.1.2/files/dovecot.sh.in	2008-06-27 03:58:54.000000000 -0400
+++ dovecot/files/dovecot.sh.in	2008-08-01 05:54:20.414422689 -0400
@@ -7,20 +7,31 @@
 # REQUIRE: %%REQUIRE%%
 # KEYWORD: shutdown
 
+# Define these dovecot_* variables in one of these files:
+#	/etc/rc.conf
+#	/etc/rc.conf.local
+#	/etc/rc.conf.d/dovecot
 #
-# Add the following lines to /etc/rc.conf to enable dovecot:
-#
-#dovecot_enable="YES"
+# DO NOT CHANGE THESE DEFAULT VALUES HERE
 #
+: ${dovecot_enable:="NO"}
 
 . %%RC_SUBR%%
 
 name=dovecot
 rcvar=`set_rcvar`
 
-: ${dovecot_enable:="NO"}
 command=%%PREFIX%%/sbin/${name}
 required_files=%%PREFIX%%/etc/${name}.conf
+start_precmd="${name}_prestart"
+extra_commands="restart"
+
+dovecot_prestart()
+{	# Ensure runtime directories exist with correct permissions
+	base=/var/run/dovecot
+	/usr/bin/install -o root -g wheel -m 0755 -d ${base}
+	/usr/bin/install -o root -g dovecot -m 0750 -d ${base}/login
+}
 
 load_rc_config ${name}
 run_rc_command "$1"
diff -u -r -N dovecot-1.1.2/files/patch-configure dovecot/files/patch-configure
--- dovecot-1.1.2/files/patch-configure	1969-12-31 19:00:00.000000000 -0500
+++ dovecot/files/patch-configure	2008-08-01 07:16:40.447361924 -0400
@@ -0,0 +1,10 @@
+--- configure.orig	2008-07-23 19:47:03.000000000 -0400
++++ configure	2008-08-01 07:13:03.765264947 -0400
+@@ -1003,6 +1003,7 @@
+ includedir='${prefix}/include'
+ oldincludedir='/usr/include'
+ docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
++examplesdir='${datarootdir}/examples/${PACKAGE_TARNAME}'
+ infodir='${datarootdir}/info'
+ htmldir='${docdir}'
+ dvidir='${docdir}'
diff -u -r -N dovecot-1.1.2/files/patch-dovecot-example.conf dovecot/files/patch-dovecot-example.conf
--- dovecot-1.1.2/files/patch-dovecot-example.conf	2008-06-27 03:58:54.000000000 -0400
+++ dovecot/files/patch-dovecot-example.conf	2008-08-28 06:53:28.000000000 -0400
@@ -1,213 +1,288 @@
---- dovecot-example.conf.orig	2008-06-21 21:21:38.422213158 +0100
-+++ dovecot-example.conf	2008-06-21 21:29:47.638914442 +0100
-@@ -12,7 +12,7 @@
- # Default values are shown for each setting, it's not required to uncomment
- # any of the lines. Exception to this are paths, they're just examples with
- # the real defaults being based on configure options. The paths listed here
--# are for configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var
-+# are for configure --prefix=%%PREFIX%% --sysconfdir=%%PREFIX%%/etc --localstatedir=/var
- # --with-ssldir=/etc/ssl
+--- dovecot-example.conf.orig	2008-08-28 06:53:28.000000000 -0400
++++ dovecot-example.conf	2008-08-28 06:53:28.000000000 -0400
+@@ -20,7 +20,7 @@
  
- # Base directory where to store runtime data.
-@@ -21,6 +21,7 @@
  # Protocols we want to be serving: imap imaps pop3 pop3s
  # If you only want to use dovecot-auth, you can set this to "none".
- #protocols = imap imaps
+-#protocols = imap imaps
 +protocols = %%PROTOCOLS%%
  
  # A space separated list of IP or host addresses where to listen in for
  # connections. "*" listens in all IPv4 interfaces. "[::]" listens in all IPv6
-@@ -213,6 +214,7 @@
+@@ -44,7 +44,7 @@
+ # SSL/TLS is used (LOGINDISABLED capability). Note that if the remote IP
+ # matches the local IP (ie. you're connecting from the same computer), the
+ # connection is considered secure and plaintext authentication is allowed.
+-#disable_plaintext_auth = yes
++disable_plaintext_auth = no
+ 
+ # Should all IMAP and POP3 processes be killed when Dovecot master process
+ # shuts down. Setting this to "no" means that Dovecot can be upgraded without
+@@ -211,7 +211,7 @@
+ #
  # <doc/wiki/MailLocation.txt>
  #
- #mail_location = 
+-#mail_location = 
 +mail_location = mbox:~/mail/:INBOX=/var/mail/%u
  
  # If you need to set multiple mailbox locations or want to change default
  # namespace settings, you can do it by defining namespace sections.
-@@ -273,6 +275,7 @@
+@@ -271,7 +271,7 @@
+ # Group to enable temporarily for privileged operations. Currently this is
  # used only with INBOX when either its initial creation or dotlocking fails.
  # Typically this is set to "mail" to give access to /var/mail.
- #mail_privileged_group =
+-#mail_privileged_group =
 +mail_privileged_group = mail
  
  # Grant access to these supplementary groups for mail processes. Typically
  # these are used to set up access to shared mailboxes. Note that it may be
-@@ -340,6 +343,7 @@
+@@ -310,7 +310,7 @@
+ 
+ # Rely on O_EXCL to work when creating dotlock files. NFS supports O_EXCL
+ # since version 3, so this should be safe to use nowadays by default.
+-#dotlock_use_excl = yes
++dotlock_use_excl = yes
+ 
+ # Don't use fsync() or fdatasync() calls. This makes the performance better
+ # at the cost of potential data loss if the server (or the file server)
+@@ -338,20 +338,20 @@
+ # 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 = no
 +verbose_proctitle = yes
  
  # Valid UID range 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.
-@@ -353,6 +357,7 @@
+ # Note that denying root logins is hardcoded to dovecot binary and can't
+ # be done even if first_valid_uid is set to 0.
+-#first_valid_uid = 500
++first_valid_uid = 1000
+ #last_valid_uid = 0
+ 
+ # Valid GID range for users, defaults to non-root/wheel. Users having
+ # non-valid GID as primary group ID aren't allowed to log in. If user
  # belongs to supplementary groups with non-valid GIDs, those groups are
  # not set.
- #first_valid_gid = 1
-+first_valid_gid = 0
+-#first_valid_gid = 1
++first_valid_gid = 1000
  #last_valid_gid = 0
  
  # Maximum number of running mail processes. When this limit is reached,
-@@ -503,19 +508,19 @@
+@@ -418,7 +418,7 @@
  
- protocol imap {
-   # Login executable location.
--  #login_executable = /usr/libexec/dovecot/imap-login
-+  #login_executable = %%PREFIX%%/libexec/dovecot/imap-login
- 
-   # IMAP executable location. Changing this allows you to execute other
-   # binaries before the imap process is executed.
-   #
-   # This would write rawlogs into ~/dovecot.rawlog/ directory:
--  #   mail_executable = /usr/libexec/dovecot/rawlog /usr/libexec/dovecot/imap
-+  #   mail_executable = %%PREFIX%%/libexec/dovecot/rawlog %%PREFIX%%/libexec/dovecot/imap
-   #
-   # This would attach gdb into the imap process and write backtraces into
-   # /tmp/gdbhelper.* files:
--  #   mail_executable = /usr/libexec/dovecot/gdbhelper /usr/libexec/dovecot/imap
-+  #   mail_executable = %%PREFIX%%/libexec/dovecot/gdbhelper %%PREFIX%%/libexec/dovecot/imap
-   #
--  #mail_executable = /usr/libexec/dovecot/imap
-+  #mail_executable = %%PREFIX%%/libexec/dovecot/imap
- 
-   # Maximum IMAP command line length in bytes. Some clients generate very long
-   # command lines with huge mailboxes, so you may need to raise this if you get
-@@ -529,7 +534,7 @@
-   # Support for dynamically loadable plugins. mail_plugins is a space separated
-   # list of plugins to load.
-   #mail_plugins = 
--  #mail_plugin_dir = /usr/lib/dovecot/imap
-+  #mail_plugin_dir = %%PREFIX%%/lib/dovecot/imap
+ # When copying a message, do it with hard links whenever possible. This makes
+ # the performance much better, and it's unlikely to have any side effects.
+-#maildir_copy_with_hardlinks = yes
++maildir_copy_with_hardlinks = yes
+ 
+ # When copying a message, try to preserve the base filename. Only if the
+ # destination mailbox already contains the same name (ie. the mail is being
+@@ -426,7 +426,7 @@
+ # done only by looking at dovecot-uidlist file, so if something outside
+ # Dovecot does similar filename preserving copies, you may run into problems.
+ # NOTE: This setting requires maildir_copy_with_hardlinks = yes to work.
+-#maildir_copy_preserve_filename = no
++maildir_copy_preserve_filename = yes
  
+ ##
+ ## mbox-specific settings
+@@ -533,7 +533,7 @@
    # Send IMAP capabilities in greeting message. This makes it unnecessary for
    # clients to request it with CAPABILITY command, so it saves one round-trip.
-@@ -564,6 +569,7 @@
+   # Many clients however don't understand it and ask the CAPABILITY anyway.
+-  #login_greeting_capability = no
++  login_greeting_capability = yes
+ 
+   # IMAP logout format string:
+   #  %i - total number of bytes read from client
+@@ -562,7 +562,7 @@
+   #     but not both. Thunderbird separates these two by forcing server to
    #     accept '/' suffix in mailbox names in subscriptions list.
    # The list is space-separated.
-   #imap_client_workarounds = 
+-  #imap_client_workarounds = 
 +  imap_client_workarounds = delay-newmail netscape-eoh tb-extra-mailbox-sep
  }
    
  ##
-@@ -572,11 +578,11 @@
+@@ -585,7 +585,7 @@
+   # Support LAST command which exists in old POP3 specs, but has been removed
+   # from new ones. Some clients still wish to use this though. Enabling this
+   # makes RSET command clear all \Seen flags from messages.
+-  #pop3_enable_last = no
++  pop3_enable_last = yes
+ 
+   # If mail has X-UIDL header, use it as the mail's UIDL.
+   #pop3_reuse_xuidl = no
+@@ -614,7 +614,7 @@
+   # Dovecot's default, so if you're building a new server it would be a good
+   # idea to change this. %08Xu%08Xv should be pretty fail-safe.
+   #
+-  #pop3_uidl_format = %08Xu%08Xv
++  pop3_uidl_format = %08Xu%08Xv
  
- protocol pop3 {
-   # Login executable location.
--  #login_executable = /usr/libexec/dovecot/pop3-login
-+  #login_executable = %%PREFIX%%/libexec/dovecot/pop3-login
- 
-   # POP3 executable location. See IMAP's mail_executable above for examples
-   # how this could be changed.
--  #mail_executable = /usr/libexec/dovecot/pop3
-+  #mail_executable = %%PREFIX%%/libexec/dovecot/pop3
- 
-   # Don't try to set mails non-recent or seen with POP3 sessions. This is
-   # mostly intended to reduce disk I/O. With maildir it doesn't move files
-@@ -636,7 +642,7 @@
-   # Support for dynamically loadable plugins. mail_plugins is a space separated
-   # list of plugins to load.
-   #mail_plugins = 
--  #mail_plugin_dir = /usr/lib/dovecot/pop3
-+  #mail_plugin_dir = %%PREFIX%%/lib/dovecot/pop3
- 
-   # Workarounds for various client bugs:
-   #   outlook-no-nuls:
-@@ -647,6 +653,7 @@
+   # POP3 logout format string:
+   #  %i - total number of bytes read from client
+@@ -645,7 +645,7 @@
+   #     Outlook Express and Netscape Mail breaks if end of headers-line is
    #     missing. This option simply sends it if it's missing.
    # The list is space-separated.
-   #pop3_client_workarounds = 
+-  #pop3_client_workarounds = 
 +  pop3_client_workarounds = outlook-no-nuls oe-ns-eoh
  }
  
  ##
-@@ -664,7 +671,7 @@
-   # Support for dynamically loadable plugins. mail_plugins is a space separated
-   # list of plugins to load.
-   #mail_plugins = 
--  #mail_plugin_dir = /usr/lib/dovecot/lda
-+  #mail_plugin_dir = %%PREFIX%%/lib/dovecot/lda
+@@ -667,7 +667,7 @@
  
    # If user is over quota, return with temporary failure instead of
    # bouncing the mail.
-@@ -679,6 +686,7 @@
+-  #quota_full_tempfail = no
++  quota_full_tempfail = yes
  
-   # Binary to use for sending mails.
-   #sendmail_path = /usr/lib/sendmail
-+  sendmail_path = /usr/sbin/sendmail
- 
-   # Human readable error message for rejection mails. Use can use variables:
-   #  %n = CRLF, %r = reason, %s = subject, %t = recipient
-@@ -693,7 +701,7 @@
- ##
+   # Format to use for logging mail deliveries. You can use variables:
+   #  %$ - Delivery status message (e.g. "saved to INBOX")
+@@ -736,7 +736,7 @@
+ # the standard variables here, eg. %Lu would lowercase the username, %n would
+ # drop away the domain if it was given, or "%n-AT-%d" would change the '@' into
+ # "-AT-". This translation is done after auth_username_translation changes.
+-#auth_username_format =
++auth_username_format = %Ln
+ 
+ # If you want to allow master users to log in by specifying the master
+ # username within the normal username string (ie. not using SASL mechanism's
+@@ -792,7 +792,7 @@
+   #   plain login digest-md5 cram-md5 ntlm rpa apop anonymous gssapi otp skey
+   #   gss-spnego
+   # NOTE: See also disable_plaintext_auth setting.
+-  mechanisms = plain
++  mechanisms = plain login
  
- # Executable location
--#auth_executable = /usr/libexec/dovecot/dovecot-auth
-+#auth_executable = %%PREFIX%%/libexec/dovecot/dovecot-auth
- 
- # Set max. process size in megabytes.
- #auth_process_size = 256
-@@ -783,7 +791,7 @@
- #auth_ntlm_use_winbind = no
- 
- # Path for Samba's ntlm_auth helper binary.
--#auth_winbind_helper_path = /usr/bin/ntlm_auth
-+#auth_winbind_helper_path = %%PREFIX%%/bin/ntlm_auth
- 
- # Number of seconds to delay before replying to failed authentications.
- #auth_failure_delay = 2
-@@ -816,7 +824,7 @@
- 
-   #passdb passwd-file {
-     # File contains a list of usernames, one per line
--    #args = /etc/dovecot.deny
-+    #args = %%PREFIX%%/etc/dovecot.deny
-     #deny = yes
+   #
+   # Password database is used to verify user's password (and nothing more).
+@@ -854,6 +854,7 @@
+     #   args = session=yes %Ls
+     #   args = cache_key=%u dovecot
+     #args = dovecot
++    args = session=yes dovecot
+   }
+ 
+   # System users (NSS, /etc/passwd, or similiar)
+@@ -897,14 +898,16 @@
+ 
+   # SQL database <doc/wiki/AuthDatabase.SQL.txt>
+   #passdb sql {
+-    # Path for SQL configuration file, see doc/dovecot-sql-example.conf
+-    #args = 
++    # Path for SQL configuration file.
++    # See doc/dovecot-sql-example.conf
++    #args = /etc/dovecot-sql.conf
+   #}
+ 
+   # LDAP database <doc/wiki/AuthDatabase.LDAP.txt>
+   #passdb ldap {
+-    # Path for LDAP configuration file, see doc/dovecot-ldap-example.conf
+-    #args = 
++    # Path for LDAP configuration file.
++    # See doc/dovecot-ldap-example.conf
++    #args = /etc/dovecot-ldap.conf
+   #}
+ 
+   # vpopmail authentication <doc/wiki/AuthDatabase.VPopMail.txt>
+@@ -931,7 +934,7 @@
+     # proceses. Useful with remote NSS lookups that may block.
+     # NOTE: Be sure to use this setting with nss_ldap or users might get
+     # logged in as each others!
+-    #args = 
++    args = blocking=yes
+   }
+ 
+   # passwd-like file with specified location
+@@ -960,14 +963,16 @@
+ 
+   # SQL database <doc/wiki/AuthDatabase.SQL.txt>
+   #userdb sql {
+-    # Path for SQL configuration file, see doc/dovecot-sql-example.conf
+-    #args = 
++    # Path for SQL configuration file.
++    # See doc/dovecot-sql-example.conf
++    #args = /etc/dovecot-sql.conf
    #}
  
-@@ -1053,7 +1061,7 @@
- # referenced using URIs in format "proxy:<name>".
+   # LDAP database <doc/wiki/AuthDatabase.LDAP.txt>
+   #userdb ldap {
+-    # Path for LDAP configuration file, see doc/dovecot-ldap-example.conf
+-    #args = 
++    # Path for LDAP configuration file.
++    # See doc/dovecot-ldap-example.conf
++    #args = /etc/dovecot-ldap.conf
+   #}
+ 
+   # vpopmail <doc/wiki/AuthDatabase.VPopMail.txt>
+@@ -1007,25 +1012,25 @@
+   #ssl_username_from_cert = no
+ 
+   # It's possible to export the authentication interface to other programs:
+-  #socket listen {
+-    #master {
++  socket listen {
++    master {
+       # Master socket provides access to userdb information. It's typically
+       # used to give Dovecot's local delivery agent access to userdb so it
+       # can find mailbox locations.
+-      #path = /var/run/dovecot/auth-master
+-      #mode = 0600
++      path = /var/run/dovecot/auth-master
++      mode = 0600
+       # Default user/group is the one who started dovecot-auth (root)
+       #user = 
+       #group = 
+-    #}
+-    #client {
++    }
++    client {
+       # The client socket is generally safe to export to everyone. Typical use
+       # is to export it to your SMTP server so it can do SMTP AUTH lookups
+       # using it.
+-      #path = /var/run/dovecot/auth-client
+-      #mode = 0660
+-    #}
+-  #}
++      path = /var/run/dovecot/auth-client
++      mode = 0660
++    }
++  }
+ }
  
- dict {
--  #quota = mysql:/etc/dovecot-dict-quota.conf 
-+  #quota = mysql:%%PREFIX%%/etc/dovecot-dict-quota.conf 
+ # If you wish to use another authentication server than dovecot-auth, you can
+@@ -1055,8 +1060,9 @@
+   #quota = mysql:/etc/dovecot-dict-quota.conf 
  }
  
- # Path to Berkeley DB's configuration file. See doc/dovecot-db.conf for an
-@@ -1095,8 +1103,8 @@
+-# Path to Berkeley DB's configuration file. See doc/dovecot-db-example.conf
+-#dict_db_config = 
++# Path to Berkeley DB's configuration file.
++# See doc/dovecot-db-example.conf
++#dict_db_config = /etc/dovecot-db.conf
+ 
+ ##
+ ## Plugin settings
+@@ -1093,8 +1099,8 @@
    # Each quota root has separate limits. Only the command for the first
    # exceeded limit is excecuted, so put the highest limit first.
    # Note that % needs to be escaped as %%, otherwise "% " expands to empty.
 -  #   quota_warning = storage=95%% /usr/local/bin/quota-warning.sh 95
 -  #   quota_warning2 = storage=80%% /usr/local/bin/quota-warning.sh 80
-+  #   quota_warning = storage=95%% %%PREFIX%%/local/bin/quota-warning.sh 95
-+  #   quota_warning2 = storage=80%% %%PREFIX%%/local/bin/quota-warning.sh 80
++  #   quota_warning = storage=95%% /usr/bin/quota-warning.sh 95
++  #   quota_warning2 = storage=80%% /usr/bin/quota-warning.sh 80
    #quota = maildir
  
    # ACL plugin. vfile backend reads ACLs from "dovecot-acl" file from maildir
-@@ -1105,7 +1113,7 @@
-   # one file for each mailbox, eg. INBOX or sub.mailbox. cache_secs parameter
-   # specifies how many seconds to wait between stat()ing dovecot-acl file
-   # to see if it changed.
--  #acl = vfile:/etc/dovecot-acls:cache_secs=300
-+  #acl = vfile:%%PREFIX%%/etc/dovecot-acls:cache_secs=300
- 
-   # Convert plugin. If set, specifies the source storage path which is
-   # converted to destination storage (mail_location) when the user logs in.
-@@ -1124,14 +1132,14 @@
-   # until the message can be saved within quota limits. The configuration file
-   # is a text file where each line is in format: <priority> <mailbox name>
-   # Mails are first deleted in lowest -> highest priority number order
--  #trash = /etc/dovecot-trash.conf
-+  #trash = %%PREFIX%%/etc/dovecot-trash.conf
- 
-   # Expire plugin. Mails are expunged from mailboxes after being there the
-   # configurable time. The first expiration date for each mailbox is stored in
-   # a dictionary so it can be quickly determined which mailboxes contain
-   # expired mails. The actual expunging is done in a nightly cronjob, which
+@@ -1131,7 +1137,7 @@
    # you must set up:
--  #   dovecot --exec-mail ext /usr/libexec/dovecot/expire-tool
-+  #   dovecot --exec-mail ext %%PREFIX%%/libexec/dovecot/expire-tool
+   #   dovecot --exec-mail ext /usr/libexec/dovecot/expire-tool
    #expire = Trash 7 Spam 30
-   #expire_dict = db:/var/lib/dovecot/expire.db
+-  #expire_dict = db:/var/lib/dovecot/expire.db
++  #expire_dict = db:/var/db/dovecot/expire.db
  
+   # Lazy expunge plugin. Currently works only with maildirs. When a user
+   # expunges mails, the mails are moved to a mailbox in another namespace
diff -u -r -N dovecot-1.1.2/files/pkg-deinstall.in dovecot/files/pkg-deinstall.in
--- dovecot-1.1.2/files/pkg-deinstall.in	1969-12-31 19:00:00.000000000 -0500
+++ dovecot/files/pkg-deinstall.in	2008-09-08 00:04:05.549837739 -0400
@@ -0,0 +1,70 @@
+#! /bin/sh
+#
+#	$FreeBSD: $
+#
+# ex:ts=4
+
+ask() {
+	local question default answer
+
+	question=$1
+	default=$2
+	if [ -z "${PACKAGE_BUILDING}" -a -z "${BATCH}" ]; then
+		read -p "${question} [${default}]? " answer
+	fi
+	echo ${answer:-${default}}
+}
+
+yesno() {
+	local question default answer
+
+	question=$1
+	default=$2
+	while :; do
+		answer=$(ask "${question}" "${default}")
+		case "${answer}" in
+		[Yy]*)	return 0;;
+		[Nn]*)	return 1;;
+		esac
+		echo "Please answer yes or no."
+	done
+}
+
+delete_account() {
+	local port user uid group gid
+
+	port=$1
+	user=${2%:*}
+	uid=${2#*:}
+	group=${3%:*}
+	gid=${3#*:}
+
+	echo "If you do not intend to reinstall ${port}, you should manually"
+	echo "remove user '${user}' (uid='${uid}') and group '${group}' (gid='${gid}')."
+}
+
+case $2 in
+
+DEINSTALL)
+	if ps -axc | grep -qw dovecot; then
+		if yesno "Dovecot is still running. Shall I stop it?" y; then
+			killall dovecot
+			sleep 2
+		else
+			echo "OK ... I hope you know what you are doing."
+		fi
+	fi
+
+	delete_account Dovecot dovecot:${DOVECOT_UID:-%%DOVECOT_UID%%} dovecot:${DOVECOT_GID:-%%DOVECOT_GID%%}
+
+	echo "Also manually rm -rf /var/db/dovecot if anything was stored there."
+
+	base=/var/run/dovecot
+	DIRLIST="${base}/login ${base}"
+	echo "Cleaning up \"${base}\"."
+	for directory in ${DIRLIST}; do
+		rmdir ${directory} 2>/dev/null || :
+	done
+	;;
+
+esac
diff -u -r -N dovecot-1.1.2/files/pkg-install.in dovecot/files/pkg-install.in
--- dovecot-1.1.2/files/pkg-install.in	1969-12-31 19:00:00.000000000 -0500
+++ dovecot/files/pkg-install.in	2008-09-07 18:19:12.118758892 -0400
@@ -0,0 +1,97 @@
+#!/bin/sh
+#
+#	$FreeBSD: ports/mail/dovecot/files/pkg-install.in,v 1.11 2008/04/10 09:45:22 rafan Exp $
+#
+# ex:ts=4
+
+ask() {
+	local question default answer
+
+	question=$1
+	default=$2
+	if [ -z "${PACKAGE_BUILDING}" -a -z "${BATCH}" ]; then
+		read -p "${question} [${default}]? " answer
+	fi
+	echo ${answer:-${default}}
+}
+
+yesno() {
+	local question default answer
+
+	question=$1
+	default=$2
+	while :; do
+		answer=$(ask "${question}" "${default}")
+		case "${answer}" in
+		[Yy]*)	return 0;;
+		[Nn]*)	return 1;;
+		esac
+		echo "Please answer yes or no."
+	done
+}
+
+create_account() {
+	local port user uid group gid gcos home shell
+
+	port=$1
+	user=${2%:*}
+	uid=${2#*:}
+	group=${3%:*}
+	gid=${3#*:}
+	gcos=$4
+	home=$5
+	shell=$6
+
+	pw_user_uid=$(pw usershow -n "${user}" 2>/dev/null | cut -d: -f3)
+	pw_uid_user=$(pw usershow -u "${uid}" 2>/dev/null | cut -d: -f1)
+	pw_group_gid=$(pw groupshow -n "${group}" 2>/dev/null | cut -d: -f3)
+	pw_gid_group=$(pw groupshow -g "${gid}" 2>/dev/null | cut -d: -f1)
+
+	if [ -z "${pw_group_gid}" -a -z "${pw_gid_group}" ]; then
+		echo "You need a ${group} group; creating it..."
+		pw groupadd "${group}" -g "${gid}" || exit
+		echo "Done."
+	elif [ "${gid}" = "${pw_group_gid}" -a "${group}" = "${pw_gid_group}" ]; then
+		echo "Using existing ${group} group."
+	else
+		echo "${port} has reserved the groupname '${group}' and gid '${gid}':"
+		[ -n "${pw_group_gid}" -a "${gid}"   != "${pw_group_gid}" ] \
+			&& echo "ERROR: groupname '${group}' already in use by gid '${pw_group_gid}'"
+		[ -n "${pw_gid_group}" -a "${group}" != "${pw_gid_group}" ] \
+			&& echo "ERROR: gid '${gid}' already in use by group '${pw_gid_group}'"
+		echo "Please resolve these issues and try again:"
+		echo "Either remove the conflicting group or if you wish to continue using a legacy group override DOVECOT_GID."
+		exit 1
+	fi
+
+	if [ -z "${pw_user_uid}" -a -z "${pw_uid_user}" ]; then
+		echo "You need a ${user} user; creating it..."
+		pw useradd "${user}" -u "${uid}" -g "${group}" -c "${gcos}" -d "${home}" -s "${shell}"
+		echo "Done."
+	elif [ "${uid}" = "${pw_user_uid}" -a "${user}" = "${pw_uid_user}" ]; then
+		echo "Using existing ${user} user."
+	else
+		echo "${port} has reserved the username '${user}' and uid '${uid}':"
+		[ -n "${pw_user_uid}" -a "${uid}"  != "${pw_user_uid}" ] \
+			&& echo "ERROR: username '${user}' already in use by uid '${pw_user_uid}'"
+		[ -n "${pw_uid_user}" -a "${user}" != "${pw_uid_user}" ] \
+			&& echo "ERROR: uid '${uid}' already in use by user '${pw_uid_user}'"
+		echo "Please resolve these issues and try again:"
+		echo "Either remove the conflicting user or if you wish to continue using a legacy user override DOVECOT_UID."
+		exit 1
+	fi
+}
+
+case $2 in
+
+PRE-INSTALL)
+	create_account Dovecot dovecot:${DOVECOT_UID:-%%DOVECOT_UID%%} dovecot:${DOVECOT_GID:-%%DOVECOT_GID%%} "Dovecot User" /var/empty /usr/sbin/nologin
+	;;
+
+POST-INSTALL)
+	base=/var/run/dovecot
+	/usr/bin/install -o root -g wheel -m 0755 -d ${base}
+	/usr/bin/install -o root -g dovecot -m 0750 -d ${base}/login
+	;;
+
+esac
diff -u -r -N dovecot-1.1.2/pkg-deinstall dovecot/pkg-deinstall
--- dovecot-1.1.2/pkg-deinstall	2007-01-08 03:42:38.000000000 -0500
+++ dovecot/pkg-deinstall	1969-12-31 19:00:00.000000000 -0500
@@ -1,65 +0,0 @@
-#! /bin/sh
-#
-# ex:ts=4
-
-ask() {
-	local question default answer
-
-	question=$1
-	default=$2
-	if [ -z "${PACKAGE_BUILDING}" -a -z "${BATCH}" ]; then
-		read -p "${question} [${default}]? " answer
-	fi
-	echo ${answer:-${default}}
-}
-
-yesno() {
-	local question default answer
-
-	question=$1
-	default=$2
-	while :; do
-		answer=$(ask "${question}" "${default}")
-		case "${answer}" in
-		[Yy]*)	return 0;;
-		[Nn]*)	return 1;;
-		esac
-		echo "Please answer yes or no."
-	done
-}
-
-delete_account() {
-	local port user uid group gid
-
-	port=$1
-	user=${2%:*}
-	uid=${2#*:}
-	group=${3%:*}
-	gid=${3#*:}
-
-	echo "If you do not intend to reinstall ${port}, you should manually remove the user '${user}' (uid='${uid}') and the group '${group}' (gid='${gid}')."
-}
-
-case $2 in
-
-DEINSTALL)
-	if ps -axc | grep -qw dovecot; then
-		if yesno "Dovecot is still running. Shall I stop it?" y; then
-			killall dovecot
-			sleep 2
-		else
-			echo "OK ... I hope you know what you are doing."
-		fi
-	fi
-
-	delete_account Dovecot dovecot:${DOVECOT_UID:-143} dovecot:${DOVECOT_GID:-143}
-
-	base=/var/run/dovecot
-	DIRLIST="${base}/login ${base}"
-	echo "Cleaning up \"${base}\"."
-	for directory in ${DIRLIST}; do
-		rmdir ${directory} 2>/dev/null || :
-	done
-	;;
-
-esac
diff -u -r -N dovecot-1.1.2/pkg-install dovecot/pkg-install
--- dovecot-1.1.2/pkg-install	2008-04-11 03:48:42.000000000 -0400
+++ dovecot/pkg-install	1969-12-31 19:00:00.000000000 -0500
@@ -1,107 +0,0 @@
-#!/bin/sh
-#
-#	$FreeBSD: ports/mail/dovecot/pkg-install,v 1.11 2008/04/10 09:45:22 rafan Exp $
-#
-# ex:ts=4
-
-ask() {
-	local question default answer
-
-	question=$1
-	default=$2
-	if [ -z "${PACKAGE_BUILDING}" -a -z "${BATCH}" ]; then
-		read -p "${question} [${default}]? " answer
-	fi
-	echo ${answer:-${default}}
-}
-
-yesno() {
-	local question default answer
-
-	question=$1
-	default=$2
-	while :; do
-		answer=$(ask "${question}" "${default}")
-		case "${answer}" in
-		[Yy]*)	return 0;;
-		[Nn]*)	return 1;;
-		esac
-		echo "Please answer yes or no."
-	done
-}
-
-create_account() {
-	local port user uid group gid gcos home shell
-
-	port=$1
-	user=${2%:*}
-	uid=${2#*:}
-	group=${3%:*}
-	gid=${3#*:}
-	gcos=$4
-	home=$5
-	shell=$6
-
-	pw_user_uid=$(pw usershow -n "${user}" 2>/dev/null | cut -d: -f3)
-	pw_uid_user=$(pw usershow -u "${uid}" 2>/dev/null | cut -d: -f1)
-	pw_group_gid=$(pw groupshow -n "${group}" 2>/dev/null | cut -d: -f3)
-	pw_gid_group=$(pw groupshow -g "${gid}" 2>/dev/null | cut -d: -f1)
-
-	if [ -z "${pw_group_gid}" -a -z "${pw_gid_group}" ]; then
-		echo "You need a ${group} group; creating it..."
-		pw groupadd "${group}" -g "${gid}" || exit
-		echo "Done."
-	elif [ "${gid}" = "${pw_group_gid}" -a "${group}" = "${pw_gid_group}" ]; then
-		echo "Using existing ${group} group."
-	else
-		echo "${port} has reserved the groupname '${group}' and gid '${gid}':"
-		[ -n "${pw_group_gid}" -a "${gid}"   != "${pw_group_gid}" ] \
-			&& echo "ERROR: groupname '${group}' already in use by gid '${pw_group_gid}'"
-		[ -n "${pw_gid_group}" -a "${group}" != "${pw_gid_group}" ] \
-			&& echo "ERROR: gid '${gid}' already in use by group '${pw_gid_group}'"
-		echo "Please resolve these issues and try again:"
-		echo "Either remove the conflicting group or if you wish to continue using a legacy group override DOVECOT_GID."
-		exit 1
-	fi
-
-	if [ -z "${pw_user_uid}" -a -z "${pw_uid_user}" ]; then
-		echo "You need a ${user} user; creating it..."
-		pw useradd "${user}" -u "${uid}" -g "${group}" -c "${gcos}" -d "${home}" -s "${shell}"
-		echo "Done."
-	elif [ "${uid}" = "${pw_user_uid}" -a "${user}" = "${pw_uid_user}" ]; then
-		echo "Using existing ${user} user."
-	else
-		echo "${port} has reserved the username '${user}' and uid '${uid}':"
-		[ -n "${pw_user_uid}" -a "${uid}"  != "${pw_user_uid}" ] \
-			&& echo "ERROR: username '${user}' already in use by uid '${pw_user_uid}'"
-		[ -n "${pw_uid_user}" -a "${user}" != "${pw_uid_user}" ] \
-			&& echo "ERROR: uid '${uid}' already in use by user '${pw_uid_user}'"
-		echo "Please resolve these issues and try again:"
-		echo "Either remove the conflicting user or if you wish to continue using a legacy user override DOVECOT_UID."
-		exit 1
-	fi
-}
-
-case $2 in
-
-PRE-INSTALL)
-	create_account Dovecot dovecot:${DOVECOT_UID:-143} dovecot:${DOVECOT_GID:-143} "Dovecot User" /var/empty /usr/sbin/nologin
-	;;
-
-POST-INSTALL)
-	base=/var/run/dovecot
-	DIRLIST="${base} ${base}/login"
-	echo "Fixing ownerships and modes in \"${base}\"."
-	for directory in ${DIRLIST}; do
-		if [ ! -d "${directory}" ]; then
-			mkdir -p ${directory}
-			echo "Created directory: ${directory}"
-		fi
-	done
-	chown -R root:wheel   ${base}
-	chmod -R 0755         ${base}
-	chown -R root:dovecot ${base}/login
-	chmod -R 0750         ${base}/login
-	;;
-
-esac
diff -u -r -N dovecot-1.1.2/pkg-plist dovecot/pkg-plist
--- dovecot-1.1.2/pkg-plist	2008-07-25 04:21:31.000000000 -0400
+++ dovecot/pkg-plist	2008-09-07 21:39:53.280810348 -0400
@@ -1,10 +1,4 @@
 @comment $FreeBSD: ports/mail/dovecot/pkg-plist,v 1.28 2008/07/24 23:38:12 beech Exp $
-@unexec if cmp -s %D/etc/dovecot-example.conf %D/etc/dovecot.conf; then rm -f %D/etc/dovecot.conf; fi
-etc/dovecot-example.conf
-@exec if [ ! -f %D/etc/dovecot.conf ] ; then cp -p %D/%F %B/dovecot.conf; fi
-%%PORTDOCS%%etc/dovecot-db-example.conf
-%%PORTDOCS%%etc/dovecot-ldap-example.conf
-%%PORTDOCS%%etc/dovecot-sql-example.conf
 @dirrmtry include/dovecot
 lib/dovecot/imap/lib01_acl_plugin.so
 lib/dovecot/imap/lib02_lazy_expunge_plugin.so
@@ -29,7 +23,7 @@
 lib/dovecot/lda/lib20_fts_plugin.so
 lib/dovecot/lda/lib20_mail_log_plugin.so
 lib/dovecot/lda/lib21_fts_squat_plugin.so
-@dirrm lib/dovecot/lda
+@dirrmtry lib/dovecot/lda
 lib/dovecot/pop3/lib02_lazy_expunge_plugin.so
 lib/dovecot/pop3/lib10_quota_plugin.so
 lib/dovecot/pop3/lib20_convert_plugin.so
@@ -40,6 +34,7 @@
 lib/dovecot/pop3/lib20_zlib_plugin.so
 lib/dovecot/pop3/lib21_fts_squat_plugin.so
 @dirrm lib/dovecot/pop3
+@exec install -o root -g wheel -m 0755 -d %D/lib/dovecot/auth
 @dirrm lib/dovecot/auth
 lib/dovecot/lib01_acl_plugin.a
 lib/dovecot/lib01_acl_plugin.la
@@ -74,7 +69,7 @@
 lib/dovecot/lib21_fts_squat_plugin.a
 lib/dovecot/lib21_fts_squat_plugin.la
 lib/dovecot/lib21_fts_squat_plugin.so
-@dirrm lib/dovecot
+@dirrmtry lib/dovecot
 libexec/dovecot/checkpassword-reply
 libexec/dovecot/convert-tool
 %%LDA%%libexec/dovecot/deliver
@@ -92,9 +87,21 @@
 %%POP3%%libexec/dovecot/pop3-login
 libexec/dovecot/rawlog
 libexec/dovecot/ssl-build-param
-@dirrm libexec/dovecot
+@dirrmtry libexec/dovecot
 sbin/dovecot
 sbin/dovecotpw
-%%DATADIR%%/dovecot-openssl.cnf
-%%DATADIR%%/mkcert.sh
-@dirrm %%DATADIR%%
+@unexec if cmp -s %D/%%EXAMPLESDIR%%/dovecot.conf %D/etc/dovecot.conf; then rm -f %D/etc/dovecot.conf; fi
+%%EXAMPLESDIR%%/dovecot.conf
+@exec if [ ! -f %D/etc/dovecot.conf ]; then cp -p %D/%%EXAMPLESDIR%%/dovecot.conf %D/etc/dovecot.conf; fi
+%%BDB%%@unexec if cmp -s %D/%%EXAMPLESDIR%%/dovecot-db.conf %D/etc/dovecot-db.conf; then rm -f %D/etc/dovecot-db.conf; fi
+%%EXAMPLESDIR%%/dovecot-db.conf
+%%BDB%%@exec if [ ! -f %D/etc/dovecot-db.conf ]; then cp -p %D/%%EXAMPLESDIR%%/dovecot-db.conf %D/etc/dovecot-db.conf; fi
+%%LDAP%%@unexec if cmp -s %D/%%EXAMPLESDIR%%/dovecot-ldap.conf %D/etc/dovecot-ldap.conf; then rm -f %D/etc/dovecot-ldap.conf; fi
+%%EXAMPLESDIR%%/dovecot-ldap.conf
+%%LDAP%%@exec if [ ! -f %D/etc/dovecot-ldap.conf ]; then cp -p %D/%%EXAMPLESDIR%%/dovecot-ldap.conf %D/etc/dovecot-ldap.conf; fi
+%%SQL%%@unexec if cmp -s %D/%%EXAMPLESDIR%%/dovecot-sql.conf %D/etc/dovecot-sql.conf; then rm -f %D/etc/dovecot-sql.conf; fi
+%%EXAMPLESDIR%%/dovecot-sql.conf
+%%SQL%%@exec if [ ! -f %D/etc/dovecot-sql.conf ]; then cp -p %D/%%EXAMPLESDIR%%/dovecot-sql.conf %D/etc/dovecot-sql.conf; fi
+%%EXAMPLESDIR%%/dovecot-openssl.cnf
+%%EXAMPLESDIR%%/mkcert.sh
+@dirrm %%EXAMPLESDIR%%
>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20080908053222.7F5356432D06>