aboutsummaryrefslogtreecommitdiffstats
path: root/mail/dovecot
diff options
context:
space:
mode:
authorbeech <beech@FreeBSD.org>2008-09-08 14:42:28 +0800
committerbeech <beech@FreeBSD.org>2008-09-08 14:42:28 +0800
commit9c00e4564498c5b1d784454c8b0410df30dbe787 (patch)
tree960abbce33415d3a06b747f52c0f104e73653254 /mail/dovecot
parent3ec705d7b46418270a3d81d6411d64671258424e (diff)
downloadfreebsd-ports-gnome-9c00e4564498c5b1d784454c8b0410df30dbe787.tar.gz
freebsd-ports-gnome-9c00e4564498c5b1d784454c8b0410df30dbe787.tar.zst
freebsd-ports-gnome-9c00e4564498c5b1d784454c8b0410df30dbe787.zip
- Update to 1.1.3
- Add support for Berkeley DB used by the expire plugin. - 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_*) - 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. PR: ports/127200 Submitted by: Yarema <yds@CoolRat.org> (maintainer)
Diffstat (limited to 'mail/dovecot')
-rw-r--r--mail/dovecot/Makefile116
-rw-r--r--mail/dovecot/distinfo12
-rw-r--r--mail/dovecot/files/dovecot.sh.in19
-rw-r--r--mail/dovecot/files/patch-configure10
-rw-r--r--mail/dovecot/files/patch-dovecot-example.conf357
-rw-r--r--mail/dovecot/files/pkg-deinstall.in (renamed from mail/dovecot/pkg-deinstall)9
-rw-r--r--mail/dovecot/files/pkg-install.in (renamed from mail/dovecot/pkg-install)18
-rw-r--r--mail/dovecot/files/pkg-message.in (renamed from mail/dovecot/pkg-message)0
-rw-r--r--mail/dovecot/pkg-plist31
9 files changed, 362 insertions, 210 deletions
diff --git a/mail/dovecot/Makefile b/mail/dovecot/Makefile
index 789e10a76e74..cdda905efea0 100644
--- a/mail/dovecot/Makefile
+++ b/mail/dovecot/Makefile
@@ -7,8 +7,7 @@
#
PORTNAME= dovecot
-DISTVERSION= 1.1.2
-PORTREVISION= 1
+DISTVERSION= 1.1.3
CATEGORIES= mail ipv6
MASTER_SITES= http://www.dovecot.org/releases/1.1/
@@ -19,7 +18,8 @@ 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,16 +27,17 @@ USE_LDCONFIG= ${PREFIX}/lib/dovecot \
${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 \
@@ -46,6 +47,7 @@ OPTIONS= KQUEUE "kqueue(2) support" on \
MANAGESIEVE "ManageSieve support" off \
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 @@ OPTIONS= KQUEUE "kqueue(2) support" on \
# 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 @@ CONFIGURE_ARGS+= --with-ioloop=kqueue
## 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 @@ CONFIGURE_ARGS+= --disable-ipv6
#
.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 @@ PLIST_SUB+= LDA=""
## 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 @@ CONFIGURE_ARGS+= --without-gssapi
## 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+= --with-vpopmail
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 pkg-message
post-patch:
+ @${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
+ @${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' \
- ${WRKSRC}/dovecot-example.conf
+ @${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 --git a/mail/dovecot/distinfo b/mail/dovecot/distinfo
index e0ba6107ae36..d31aa6ec0fa5 100644
--- a/mail/dovecot/distinfo
+++ b/mail/dovecot/distinfo
@@ -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 --git a/mail/dovecot/files/dovecot.sh.in b/mail/dovecot/files/dovecot.sh.in
index 8d125d59a17c..17263cb5c4d5 100644
--- a/mail/dovecot/files/dovecot.sh.in
+++ b/mail/dovecot/files/dovecot.sh.in
@@ -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 --git a/mail/dovecot/files/patch-configure b/mail/dovecot/files/patch-configure
new file mode 100644
index 000000000000..477c5b049b03
--- /dev/null
+++ b/mail/dovecot/files/patch-configure
@@ -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 --git a/mail/dovecot/files/patch-dovecot-example.conf b/mail/dovecot/files/patch-dovecot-example.conf
index cd57d29ee03d..ba0fe1984864 100644
--- a/mail/dovecot/files/patch-dovecot-example.conf
+++ b/mail/dovecot/files/patch-dovecot-example.conf
@@ -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
-
- # Base directory where to store runtime data.
-@@ -21,6 +21,7 @@
+--- 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 @@
+
# 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
+ # 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
- # 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, 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 @@
-
- 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 @@
+@@ -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
+
+ # 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
+ # 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
- # Human readable error message for rejection mails. Use can use variables:
- # %n = CRLF, %r = reason, %s = subject, %t = recipient
-@@ -693,7 +701,7 @@
- ##
+ # 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
+
+ #
+ # 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
+ }
- # Executable location
--#auth_executable = /usr/libexec/dovecot/dovecot-auth
-+#auth_executable = %%PREFIX%%/libexec/dovecot/dovecot-auth
+ # System users (NSS, /etc/passwd, or similiar)
+@@ -897,14 +898,16 @@
- # Set max. process size in megabytes.
- #auth_process_size = 256
-@@ -783,7 +791,7 @@
- #auth_ntlm_use_winbind = no
+ # 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
+ #}
- # Path for Samba's ntlm_auth helper binary.
--#auth_winbind_helper_path = /usr/bin/ntlm_auth
-+#auth_winbind_helper_path = %%PREFIX%%/bin/ntlm_auth
+ # 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
+ }
- # Number of seconds to delay before replying to failed authentications.
- #auth_failure_delay = 2
-@@ -816,7 +824,7 @@
+ # passwd-like file with specified location
+@@ -960,14 +963,16 @@
- #passdb passwd-file {
- # File contains a list of usernames, one per line
-- #args = /etc/dovecot.deny
-+ #args = %%PREFIX%%/etc/dovecot.deny
- #deny = yes
+ # 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 --git a/mail/dovecot/pkg-deinstall b/mail/dovecot/files/pkg-deinstall.in
index b2d28cc62ef3..30ae84752a39 100644
--- a/mail/dovecot/pkg-deinstall
+++ b/mail/dovecot/files/pkg-deinstall.in
@@ -1,5 +1,7 @@
#! /bin/sh
#
+# $FreeBSD: /tmp/pcvs/ports/mail/dovecot/files/pkg-deinstall.in,v 1.1 2008-09-08 06:42:28 beech Exp $
+#
# ex:ts=4
ask() {
@@ -37,7 +39,8 @@ delete_account() {
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}')."
+ 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
@@ -52,7 +55,9 @@ DEINSTALL)
fi
fi
- delete_account Dovecot dovecot:${DOVECOT_UID:-143} dovecot:${DOVECOT_GID:-143}
+ 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}"
diff --git a/mail/dovecot/pkg-install b/mail/dovecot/files/pkg-install.in
index ad6d5ae3357e..93faa0f3e36f 100644
--- a/mail/dovecot/pkg-install
+++ b/mail/dovecot/files/pkg-install.in
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# $FreeBSD$
+# $FreeBSD: /tmp/pcvs/ports/mail/dovecot/files/pkg-install.in,v 1.1 2008-09-08 06:42:28 beech Exp $
#
# ex:ts=4
@@ -85,23 +85,13 @@ create_account() {
case $2 in
PRE-INSTALL)
- create_account Dovecot dovecot:${DOVECOT_UID:-143} dovecot:${DOVECOT_GID:-143} "Dovecot User" /var/empty /usr/sbin/nologin
+ 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
- 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
+ /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 --git a/mail/dovecot/pkg-message b/mail/dovecot/files/pkg-message.in
index a86b76ee9d4f..a86b76ee9d4f 100644
--- a/mail/dovecot/pkg-message
+++ b/mail/dovecot/files/pkg-message.in
diff --git a/mail/dovecot/pkg-plist b/mail/dovecot/pkg-plist
index d921530c4154..b43336b8472d 100644
--- a/mail/dovecot/pkg-plist
+++ b/mail/dovecot/pkg-plist
@@ -1,10 +1,4 @@
@comment $FreeBSD$
-@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_expire_plugin.so
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_mbox_snarf_plugin.so
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/lib20_zlib_plugin.la
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 @@ libexec/dovecot/maildirlock
%%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%%