Dovecot is an open source IMAP and POP3 email server for Linux/UNIX-like
systems, written with security primarily in mind. Dovecot is an excellent
choice for both small and large installations. It's fast, simple to set up,
requires no special administration and it uses very little memory.
Dovecot is high-performing, self-optimizing, self-healing, and easily
extensible. It includes IMAP4rev1 and POP3 support. IPv6, SSL and TLS are
supported. It supports multiple commonly used IMAP extensions, including SORT,
THREAD and IDLE.
WWW: http://www.dovecot.org/
===> The following configuration options are available for dovecot2-2.2.31_1:
DOCS=on: Build and/or install documentation
EXAMPLES=on: Build and/or install examples
KQUEUE=on: kqueue(2) support
LIBWRAP=off: TCP wrapper support
LZ4=off: LZ4 compression support
VPOPMAIL=off: vpopmail support
====> Database support
CDB=off: CDB database support
LDAP=off: LDAP protocol support
MYSQL=off: MySQL database support
PGSQL=off: PostgreSQL database support
SQLITE=off: SQLite database support
====> Full text search plugins
ICU=off: Use libicu for FTS unicode normalization
LUCENE=off: CLucene FTS support
SOLR=off: Solr FTS support
TEXTCAT=off: Libtextcat FTS support
====> GSSAPI Security API support: you have to select exactly one of them
GSSAPI_NONE=on: Build without GSSAPI support
GSSAPI_BASE=off: Use GSSAPI from base
GSSAPI_HEIMDAL=off: Use Heimdal GSSAPI from security/heimdal
GSSAPI_MIT=off: Use MIT GSSAPI from security/krb5
===> Use 'make config' to modify these settings
Rename dovecot2/dovecot2-pigeonhole to dovecot/dovecot-pigeonhole.
It might be necessary to manually remove and reinstall the package under
the new name.
Discussed with: ler
Update dovecot2 to 2.2.31, and bump PORTREVISION on the modules.
* LMTP: Removed "(Dovecot)" from added Received headers. Some
installations want to hide it, and there's not really any good reason
for anyone to have it.
+ Add ssl_alt_cert and ssl_alt_key settings to add support for
having both RSA and ECDSA certificates.
+ dsync/imapc, pop3-migration plugin: Strip trailing whitespace from
headers when matching mails. This helps with migrations from Zimbra.
+ acl: Add acl_globals_only setting to disable looking up
per-mailbox dovecot-acl files.
+ Parse invalid message addresses better. This mainly affects the
generated IMAP ENVELOPE replies.
- v2.2.30 wasn't fixing corrupted dovecot.index.cache files properly.
(Only the first 15 lines of the commit message are shown above )
mail/dovecot2:
- auth: Multiple failed authentications within short time caused
crashes
- push-notification: OX driver crashed at deinit
Bump PORTREVISION for plugins.
Update dovecot to 2.2.30.1, and bump PORTREVISION on plugins.
Due to some release process changes I didn't notice that one
important bugfix wasn't included in the v2.2.30 release branch
before I made the release. So fixing it here with v2.2.30.1.
Also included another less important fix.
- quota_warning scripts weren't working in v2.2.30
- vpopmail still wasn't compiling
Also I guess should mention that in v2.2.30+ the "script"
service's protocol changed to a new version. If anyone had
written their own script services (not using the included
"script" binary) they would need some changes. I haven't
heard of anyone having done that though.
Update dovecot to 2.2.30, and bump PORTREVISION in consumers.
* auth: Use timing safe comparisons for everything related to
passwords. It's unlikely that these could have been used for
practical attacks, especially because Dovecot delays and flushes all
failed authentications in 2 second intervals. Also it could have
worked only when passwords were stored in plaintext in the passdb.
* master process sends SIGQUIT to all running children at shutdown,
which instructs them to close all the socket listeners immediately.
This way restarting Dovecot should no longer fail due to some
processes keeping the listeners open for a long time.
+ auth: Add passdb { mechanisms=none } to match separate passdb lookup
+ auth: Add passdb { username_filter } to use passdb only if user
matches the filter. See https://wiki2.dovecot.org/PasswordDatabase
(Only the first 15 lines of the commit message are shown above )
Control lz4 support from a configure knob. Previously, if liblz4.so was
present, the port would pick it up, without registering a proper dependency.
PORTREVISION bump for the potential product change.
Reported by: Melissa Pilgrim
Update to 2.2.29.1.
- imapc reconnection fix was forgotten from 2.2.29 release, which also
made "make check" fail in a unit test
- dict-sql: Merging multiple UPDATEs to a single statement wasn't
actually working.
- Fixed building with vpopmail
Update dovecot to 2.2.29, and bump PORTREVISION for the plugins. Add a
warning to the pkg-message that security.bsd.see_other_uids/gids should
not be enabled if dovecot is storing mail for multiple users concurrently
(PR 218392, submitted by topical).
* passdb/userdb dict: Don't double-expand %variables in keys. If dict
was used as the authentication passdb, using specially crafted
%variables in the username could be used to cause DoS (CVE-2017-2669)
* When Dovecot encounters an internal error, it logs the real error and
usually logs another line saying what function failed. Previously the
second log line's error message was a rather uninformative "Internal
error occurred. Refer to server log for more information." Now the
real error message is duplicated in this second log line.
* lmtp: If a delivery has multiple recipients, run autoexpunging only
for the last recipient. This avoids a problem where a long
(Only the first 15 lines of the commit message are shown above )
Update dovecot2 to 2.2.28, and bump PORTREVISION on the plugins.
* director: "doveadm director move" to same host now refreshes user's
timeout. This allows keeping user constantly in the same backend by
just periodically moving the user there.
* When new mailbox is created, use initially INBOX's
dovecot.index.cache caching decisions.
* Expunging mails writes GUID to dovecot.index.log now only if the
GUID is quickly available from index/cache.
* pop3c: Increase timeout for PASS command to 5 minutes.
* Mail access errors are no longer ignored when searching or sorting.
With IMAP the untagged SEARCH/SORT reply is still sent the same as
before, but NO reply is returned instead of OK.
+ Make dovecot.list.index's filename configurable. This is needed when
(Only the first 15 lines of the commit message are shown above )
Update dovecot2 to 2.2.27, and bump PORTREVISION on pigeonhole and
antispam-plugin. Also, while here, switch the MASTER_SITE to https,
because https.
The big thing in this release is the ability to read and write
encrypted messages. I'm very interested in hearing FreeBSD users'
experiences with it.
Really, Larry Rosenman did almost all the actual work here.
* dovecot.list.index.log rotation sizes/times were changed so that
the .log file stays smaller and .log.2 is deleted sooner.
+ Added mail_crypt plugin that allows encryption of stored emails.
(Only the first 15 lines of the commit message are shown above )
Bump PORTREVISIONS for ports depending on the canonical version of GCC and
lang/gcc which have moved from GCC 4.8.5 to GCC 4.9.4 (at least under some
circumstances such as versions of FreeBSD or platforms).
In particular that is ports with USE_GCC=yes, USE_GCC=any, or one of
gcc-c++11-lib, openmp, nestedfct, c++11-lib as well as c++14-lang,
c++11-lang, c++0x, c11 requested via USES=compiler.
Update to 2.2.26.0, which you can tell is higher than 2.2.26 because 0
is a larger number.
- Fixed some compiling issues.
- auth: Fixed assert-crash when using NTLM or SKEY mechanisms and
multiple passdbs.
- auth: Fixed crash when exporting to auth-worker passdb extra fields
that had empty values.
- dsync: Fixed assert-crash in dsync_brain_sync_mailbox_deinit
Update dovecot2 to 2.2.26, and bump PORTREVISION on pigeonhole and
antispam-plugin.
Changes for 2.2.26:
Mainly there are quite a lot of director fixes and improvements.
Here's the full list of changes:
* master: Removed hardcoded 511 backlog limit for listen(). The kernel
should limit this as needed.
* doveadm import: Source user is now initialized the same as target
user. Added -U parameter to override the source user.
* Mailbox names are no longer limited to 16 hierarchy levels. We'll
check another way to make sure mailbox names can't grow larger than
4096 bytes.
(Only the first 15 lines of the commit message are shown above )
- When DOCS is enabled but EXAMPLES is not, two files that are supposed to
be examples are bundled into DOCSDIR. Fix this by installing them into
EXAMPLESDIR regardless of the EXAMPLES knob and trust pkg to DTRT
- Make vpopmail depend on vpopmail-the-package, instead of
vchkpw-the-silly-looking-path-under-LOCALBASE
- Turn the curl dependency in the SOLR knob to a LIB_DEPENDS instead of a
BUILD_DEPENDS, so that curl is available at runtime as well
- Categorize the OPTIONS helpers under the same categories they're listed
under in the OPTIONS dialogue, to aid with organization
PORTREVISION bump for the potential plist and dependency changes.
- Update devel/icu to 57.1.
- Clean up the Makefile.
- Follow some upstream recommendations (--with-data-packaging=archive,
--disable-renaming, -DICU_NO_USER_DATA_OVERRIDE).
- Patch makefiles to install static libraries with INSTALL_DATA so they
aren't stripped.
- Patch config/mh-bsd-gcc to sync with config/mh-linux-gcc.
- Fix endianness detection in ICU. The code wanted to use BYTE_ORDER
defined in machine/endian.h, but this isn't visible because ICU is
compiled with _XOPEN_SOURCE. Patch the code to use _BYTE_ORDER instead.
- Compile ICU with C++11 compiler to enable move constructors.
- Patch ICU to fix a problem with atomics in the case of a C++11 compiler
without C++11 header <atomic> (like Clang on FreeBSD 9).
- Bump all ports that depend on it due to library version change.
- Add USES=compiler:c++0x to some ports that pick up -std=c++0x from ICU
pkgconfig files.
- Add USES=compiler:c++11-lib to graphics/libcdr01 because it also needs
a C++11 runtime library now. Add this to all ports that depend on it
so their executables load the right libstdc++.so on FreeBSD 9.
PR: 205120
Exp-run by: antoine
Approved by: portmgr (antoine)
Remove the SSL option and make it mandatory.
I received a report that the build is broken on 9.x with SSL disabled.
I think the right solution here is just to remove the SSL option entirely.
I really can't think of a use-case where IMAP/POP/LMTP without TLS
capability is a good idea. Plus, NetBSD and OpenBSD both have SSL
mandatory.
PORTREVISION bump is necessary here, because it was possible to have
no SSL on 10.x with a successful build.
Discussed with: Larry Rosenman, maintainer of dovecot2-pigeonhole
Fix packaging with SSL disabled. No PORTREVISION bump.
While here, left-indent a comment so that 9.x doesn't log it to
the console, and only set USES=ssl if SSL is enabled.
Submitted by: Christian Bernard
Bump PORTREVISION for the icu revert.
This time not bumping lang/php70, but devel/php70-intl which is the one
really depending on icu.
PR: 205120
With hat: portmgr
Sponsored by: Absolight
Fix build on 9.x.
Adds compiler:c11 for this error:
sha1.h:80: error: static or type qualifiers in abstract declarator
dovecot no longer builds againt the old OpenSSL in 9.x base, so
require ssl from ports there.
Despite the dependency change (only for 9.x), I'm not bumping
PORTREVISION because build couldn't complete on 9.x regardless.
Back out the 2.2.25 update before anybody builds it. I'm getting errors
on production with it:
Jul 1 10:10:34 IMAP-jail dovecot: master: Panic: kevent(EV_ADD, READ, 45)
failed: Bad file descriptor
Update dovecot2 to 2.2.25, and bump PORTREVISION on pigeonhole and
antispam-plugin.
* lmtp: Start tracking lmtp_user_concurrency_limit and reject already
at RCPT TO stage. This avoids MTA unnecessarily completing DATA only
to get an error.
* doveadm: Previously only mail settings were read from protocol
doveadm { .. } section. Now all settings are.
+ quota: Added quota_over_flag_lazy_check setting. It avoids checking
quota_over_flag always at startup. Instead it's checked only when
quota is being read for some other purpose.
+ auth: Added a new auth policy service:
http://wiki2.dovecot.org/Authentication/Policy
+ auth: Added PBKDF2 password scheme
(Only the first 15 lines of the commit message are shown above )
Update dovecot2 to 2.2.24, and bump PORTREVISION on antispam-plugin and
pigeonhole.
* doveconf now warns if it sees a global setting being changed when
the same setting was already set inside some filters. (A common
mistake has been adding more plugins to a global mail_plugins
setting after it was already set inside protocol { .. }, which
caused the global setting to be ignored for that protocol.)
* LMTP proxy: Increased default timeout 30s -> 125s. This makes it
less likely to reach the timeout and cause duplicate deliveries.
* LMTP and indexer now append ":suffix" to session IDs to make it
unique for the specific user's delivery. (Fixes duplicate session
ID warnings in stats process.)
+ Added dict-ldap for performing read-only LDAP dict lookups.
(Only the first 15 lines of the commit message are shown above )
Remove USE_SQLITE from bsd.databases.mk, replaced by USES=sqlite.
While there replace USE_SQLITE=x by USES=sqlite:x.
PR: 208971
Submitted by: mat
Exp-run by: antoine
With hat: portmgr
Sponsored by: Absolight
Differential Revision: https://reviews.freebsd.org/D5951
Update dovecot2 to 2.2.23, and bump PORTREVISION on dovecot2-pigeonhole
and dovecot2-antispam-plugin.
From the 2.2.23 release notes:
This is a bugfix-only release with various important fixes on top of v2.2.22.
- Various fixes to doveadm. Especially running commands via
doveadm-server was broken.
- director: Fixed user weakness getting stuck in some situations
- director: Fixed a situation where directors keep re-sending
different states to each others and never becoming synced.
- director: Fixed assert-crash related to a slow "user killed" reply
- Fixed assert-crash related to istream-concat, which could have
been triggered at least by a Sieve script.
Update mail/dovecot2 to 2.2.22, and bump PORTREVISION on dovecot2-pigeonhole
and dovecot2-antispam-plugin.
Changes for 2.2.22:
+ Added doveadm HTTP API: See
http://wiki2.dovecot.org/Design/DoveadmProtocol/HTTP
+ virtual plugin: Mailbox filtering can now be done based on the
mailbox metadata. See http://wiki2.dovecot.org/Plugins/Virtual
+ stats: Added doveadm stats reset to reset global stats.
+ stats: Added authentication statistics if auth_stats=yes.
+ dsync, imapc, pop3c & pop3-migration: Many optimizations,
improvements and error handling fixes.
+ doveadm: Most commands now stop soon after SIGINT/SIGTERM.
- auth: Auth caching was done too aggressively when %variables were
used in default_fields, override_fields or LDAP pass/user_attrs.
(Only the first 15 lines of the commit message are shown above )
Execute run_rc_command even if the config file doesn't exist. Previously,
until you followed the instructions in pkg-message, the config file didn't
exist and rc.d/dovecot would just silently exit.
While here, also spit out a message reminding you to create the config
files if necessary.
PR: 205761
Submitted by: me@cschwarz.com
Update dovecot2 to 2.2.21, and bump PORTREVISION in consumers.
While here, fix up some paths in the decode2text plugin, and add a note
to pkg-message about how to make it work. [1]
Changes:
- doveadm mailbox list (and some others) were broken in v2.2.20
- director: Fixed making backend changes when running with only a
single director server.
- virtual plugin: Fixed crash when trying to open nonexistent
autocreated backend mailbox.
PR: 205231 [1]
Submitted by: andrej@ebert.su
Update dovecot2 to 2.2.20, and bump PORTREVISION on antispam-plugin and
pigeonhole.
Also, remove the GC option from dovecot2. As reported in bug #205035,
reported by sebastian@wolfgarten.com, all it does it cause leaks and
spam the logs about it.
Changes:
+ Added mailbox { autoexpunge=<time> } setting. See
http://wiki2.dovecot.org/MailboxSettings for details.
+ ssl_options: Added support for no_ticket
+ imap/pop3/managesieve-login: Added postlogin_socket=path passdb extra
field. This allows replacing the default service
imap/pop3/managesieve {} settings for specific users (e.g. running
their imap process via valgrind or strace).
(Only the first 15 lines of the commit message are shown above )
Update dovecot2 to 2.2.19, and bump PORTREVISION on antispam-plugin
and pigeonhole.
Changes:
* pop3_deleted_flag has been broken since v2.2.10. Using it would
cause buffer overflows, which could be exploitable. However, this
bug would have become visible quite soon after users had deleted
some POP3 mails, because the pop3 processes would have started
crashing all the time even in normal use.
* "doveadm director flush" command has a changed meaning now:
It safely moves users to their wanted backends, instead of simply
forgetting the mapping entirely and leaving the existing connections
untouched. Use -F parameter to get the original unsafe behavior.
(Only the first 15 lines of the commit message are shown above )
Update dovecot2 to 2.2.18. This is a bugfix release to address issues
identified in 2.2.17.
Changes:
- director: Login UNIX sockets were normally detected as doveadm or
director ring sockets, causing it to break in existing installations.
- sdbox: When copying a mail in alt storage, place the destination to
alt storage as well.
Bump PORTREVISION on antispam-plugin and pigeonhole, like I should have
done last time.
Update to 2.2.17.
For a full change list, see:
http://dovecot.org/list/dovecot-news/2015-May/000292.html
There are two changes that could potentially break setups:
* Dovecot no longer checks or warns if a mountpoint is removed. This
was causing more trouble than it was worth. Make sure that all the
mountpoints that Dovecot accesses aren't writable by mail processes
when they're unmounted.
* dict server wasn't properly escaping/unescaping data. Fixing this
broke backwards compatibility with data that contains line feeds.
This hopefully affects only very few installations. If you're using
dict to save multiline data (Sieve scripts to SQL), you may be
affected.
For this release I've introduced many new OPTIONS:
* boehm-gc support
* CDB database support
* icu (for FTS)
* libtextcat FTS
* disabling kqueue support also disables kqueue fs change notification
* databases and FTS plugins moved to their own config sections
Move the sample configuration files into ETCDIR.
After talking more with Rozhuk Ivan (submitter of 198792, see r381930),
the sample configuration files don't belong in DOCSDIR, and they really
don't belong underneath an OPTION that many people have disabled by
default.
I still don't think that they're good candidates for @sample, but they
make more sense living in ETCDIR.
While here, shuffle around a few other docs/examples files.
PORTREVISION bump for the plist changes.
PR: 198792
Submitted by: Rozhuk Ivan
Do a better job of explaining where the default configuration files
come from. Not bumping PORTREVISION as this change will only benefit
people who don't already have dovecot installed.
PR: 198792
rc.d/dovecot allows for multiple concurrent dovecot setups, but in doing
so runs the dovecot binary against each provided configuration file to
obtain configuration data. When the configuration file doesn't exist, it
says:
doveconf: Fatal: open(/im_not_here) failed: No such file or directory
Mistyping the conf file locations when doing multiple instances deserves
an error message. The real issue here is that in order to set up
dovecot, you have to actually copy files over from ${EXAMPLESDIR}. The
default configuration file intentionally does not exist in a clean
installation. So everybody who installs the dovecot2 port and does not
configure it will receive that message at every boot.
Fix it with a patch from pi that makes sure the conf file exists before
trying to do stuff with it.
PORTREVISION bump.
PR: 197275
Submitted by: pi
Allow the port to build on arm.
I don't think this requires a PORTREVISION bump, but someone will
correct me if I'm wrong.
PR: 195168
Submitted by: Ronald Klop
Remove the checkyesno dovecot_enable section, as it prevents onestart/onestop
from working (as well as other things).
I suspect this behaviour is present in other rc-files... a general cleanup on
this might be in order.
PR: 194629
Submitted by: Reinier Schoof
Update dovecot2 to 2.2.15, and add an LZ4 option that uses liblz4.
ChangeLog:
Some small fixes and changes to v2.2.14. This release is mainly in the hope
that it could still make it into the next Debian stable instead of v2.2.14 -
mainly because of a couple of new assert crashes that started happening in
v2.2.14 and should be fixed now.
* Plugins can now print a banner comment in doveconf output
(typically the plugin version)
* Replication plugin now triggers low (instead of high) priority for
mail copying operations.
* IMAP/POP3/ManageSieve proxy: If destination server can't be
connected to, retry connecting once per second up to the value of
(Only the first 15 lines of the commit message are shown above )
Update dovecot2 to 2.2.14. PORTREVISION bumps for dovecot2-pigeonhole and
dovecot2-antispam-plugin.
Changes in 2.2.14:
* lmtp: Delivered-To: header no longer contains <> around the email
address. Other MDAs don't have it either.
* "Out of disk space" errors are now treated as temporary errors
(not the same as "Out of disk quota").
* replication plugin: Use replication only for users who have a
non-empty mail_replica setting.
+ lmtp proxy: Log a line about each mail delivery.
+ Added login_source_ips setting. This can be used to set the source IP
address round-robin from a pool of IPs (in case you run out of TCP
(Only the first 15 lines of the commit message are shown above )
net/openldap24-*:
- Convert to USES=libtool and bump dependent ports
- Avoid USE_AUTOTOOLS
- Don't use PTHREAD_LIBS
- Use MAKE_CMD
databases/glom:
- Drop :keepla
- Add INSTALL_TARGET=install-strip
databases/libgda4* databases/libgda5*:
- Convert to USES=libtool and bump dependent ports
- USES=tar:xz
- Use INSTALL_TARGET=install-strip
- Use @sample
(Only the first 15 lines of the commit message are shown above )
Bump more ports that depend on libsqlite3.so:
- ports that set USE_SQLITE with the *_USE option helper
- ports that depend on libsqlite3 indirectly as reported by pkg rquery
Approved by: portmgr (implicit)
Enable support for GSSAPI from ports using USES=gssapi magic. PORTREVISION
bump for this.
PR: ports/187721
Submitted by: dewayne@heuristicsystems.com.au
While we're here:
- More general cleanups
- Improve COMMENT and pkg-descr
General tidying and cleanups. THe functional changes:
Remove NOOP sed commands, and incorporate the pkg-deinstall message into
pkg-plist.
Use install-strip as the INSTALL_TARGET rather than manually stripping
libraries.
Technically it needs a PORTREVISION bump for the pkg-deinstall/pkg-plist thing,
but I'm going to need to bump PORTREVISION for some other changes soon and I'd
rather not force everyone to rebuild an extra time for a differently-phrased
message.
- Update from 2.2.6 to 2.2.9
- And, following the instructions in Makefile, bump PORTREVISION of
mail/dovecot2-antispam-plugin and mail/dovecot-pigeonhole
PR: ports/184273
Submitted by: Attila Nagy <bra@fsn.hu> (maintainer)
Add an optional support for full-text search with CLucene 2.3.x.
PR: ports/174779
Submitted by: Veniamin Gvozdikov <g.veniamin@googlemail.com>
Approved by: Attila Nagy <bra@fsn.hu> (maintainer)
- update to 2.1.12
- chase update in dovecot2-pigeonhole
while here, do some changes in dovecot2-pigeonhole:
- remove indefinite article from COMMENT
- tab -> scape in pkg-descr:WWW
- remove trailing whitespace in pkg-message
- fix pkg-plist
PR: 174014
Submitted by: Attila Nagy <bra@fsn.hu> (maintainer)
Feature safe: yes