summaryrefslogtreecommitdiff
path: root/mail/dovecot2
AgeCommit message (Collapse)AuthorFilesLines
2017-04-29Pullup ticket #5321 - requested by sevanbsiegert1-3/+5
mail/dovecot2: build fix Revisions pulled up: - mail/dovecot2/Makefile.common 1.7 --- Module Name: pkgsrc Committed By: jperkin Date: Wed Apr 19 09:05:16 UTC 2017 Modified Files: pkgsrc/mail/dovecot2: Makefile.common Log Message: Explicitly disable epoll/inotify on illumos, based on patch in PR#52176.
2017-04-13Pullup ticket #5274 - requested by tacabsiegert3-9/+13
mail/dovecot2: security fix mail/dovecot2-sqlite: security fix Revisions pulled up: - mail/dovecot2-sqlite/Makefile 1.5 - mail/dovecot2/Makefile.common 1.6 - mail/dovecot2/PLIST 1.53 - mail/dovecot2/distinfo 1.72 --- Module Name: pkgsrc Committed By: taca Date: Thu Apr 13 01:59:08 UTC 2017 Modified Files: pkgsrc/mail/dovecot2: Makefile.common PLIST distinfo pkgsrc/mail/dovecot2-sqlite: Makefile Log Message: Update dovecot2 to 2.2.29.1. This release contains security fixes. v2.2.29.1 2017-04-12 Timo Sirainen <tss@iki.fi> - 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 v2.2.29 2017-04-10 Timo Sirainen <tss@iki.fi> * 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 autoexpunge run causes LMTP client to timeout between the DATA replies, resulting in duplicate mail deliveries. * config: Don't stop the process due to idling. Otherwise the configuration is reloaded when the process restarts. * mail_log plugin: Differentiate autoexpunges from regular expunges * imapc: Use LOGOUT to cleanly disconnect from server. * lib-http: Internal status codes (>9000) are no longer visible in logs * director: Log vhost count changes and HOST-UP/DOWNte autoexpunges from regular expunges * imapc: Use LOGOUT to cleanly disconnect from server. * lib-http: Internal status codes (>9000) are no longer visible in logs * director: Log vhost count changes and HOST-UP/DOWN + quota: Add plugin { quota_max_mail_size } setting to limit the maximum individual mail size that can be saved. + imapc: Add imapc_features=delay-login. If set, connecting to the remote IMAP server isn't done until it's necessary. + imapc: Add imapc_connection_retry_count and imapc_connection_retry_interval settings. + imap, pop3, indexer-worker: Add (deinit) to process title before autoexpunging runs. + Added %{encrypt} and %{decrypt} variables + imap/pop3 proxy: Log proxy state in errors as human-readable string. + imap/pop3-login: All forward_* extra fields returned by passdb are sent to the next hop when proxying using ID/XCLIENT commands. On the receiving side these fields are imported and sent to auth process where they're accessible via %{passdb:forward_*}. This is done only if the sending IP address matches login_trusted_networks. + imap-login: If imap_id_retain=yes, send the IMAP ID string to auth process. %{client_id} expands to it in auth process. The ID string is also sent to the next hop when proxying. + passdb imap: Use ssl_client_ca_* settings for CA validation. - fts-tika: Fixed crash when parsing attachment without Content-Disposition header. Broken by 2.2.28. - trash plugin was broken in 2.2.28 - auth: When passdb/userdb lookups were done via auth-workers, too much data was added to auth cache. This could have resulted in wrong replies when using multiple passdbs/userdbs. - auth: passdb { skip & mechanisms } were ignored for the first passdb - oauth2: Various fixes, including fixes to crashes - dsync: Large Sieve scripts (or other large metadata) weren't always synced. - Index rebuild (e.g. doveadm force-resync) set all mails as \Recent - imap-hibernate: %{userdb:*} wasn't expanded in mail_log_prefix - doveadm: Exit codes weren't preserved when proxying commands via doveadm-server. Almost all errors used exit code 75 (tempfail). - ACLs weren't applied to not-yet-existing autocreated mailboxes. - Fixed a potential crash when parsing a broken message header. - cassandra: Fallback consistency settings weren't working correctly. - doveadm director status <user>: "Initial config" was always empty - imapc: Various reconnection fixes.
2017-03-18Changes 2.2.28:adam4-10/+20
* 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 there are multiple namespaces pointing to the same mail root (e.g. lazy_expunge namespace for mdbox). + Add size.virtual to dovecot.index when folder vsizes are accessed (e.g. quota=count). This is mainly a workaround to avoid slow quota recalculation performance when message sizes get lost from dovecot.index.cache due to corruption or some other reason. + auth: Support OAUTHBEARER and XOAUTH2 mechanisms. Also support them in lib-dsasl for client side. + auth: Support filtering by SASL mechanism: passdb { mechanisms } + Shrink the mail processes' memory usage by not storing settings duplicated unnecessarily many times. + imap: Add imap_fetch_failure setting to control what happens when FETCH fails for some mails (see example-config). + imap: Include info about last command in disconnection log line. + imap: Created new SEARCH=X-MIMEPART extension. It's currently not advertised by default, since it's not fully implemented. + fts-solr: Add support for basic authentication. + Cassandra: Support automatically retrying failed queries if execution_retry_interval and execution_retry_times are set. + doveadm: Added "mailbox path" command. + mail_log plugin: If plugin { mail_log_cached_only=yes }, log the wanted fields only if it doesn't require opening the email. + mail_vsize_bg_after_count setting added (see example-config). + mail_sort_max_read_count setting added (see example-config). + pop3c: Added pop3c_features=no-pipelining setting to prevent using PIPELINING extension even though it's advertised. - Index files: day_first_uid wasn't updated correctly since v2.2.26. This caused dovecot.index.cache to be non-optimal. - imap: SEARCH/SORT may have assert-crashed in client_check_command_hangs - imap: FETCH X-MAILBOX may have assert-crashed in virtual mailboxes. - imap: Running time in tagged command reply was often wrongly 0. - search: Using NOT n:* or NOT UID n:* wasn't handled correctly - director: doveadm director kick was broken - director: Fix crash when using director_flush_socket - director: Fix some bugs when moving users between backends - imapc: Various error handling fixes and improvements - master: doveadm process status output had a lot of duplicates. - autoexpunge: If mailbox's rename timestamp is newer than mail's save-timestamp, use it instead. This is useful when autoexpunging e.g. Trash/* and an entire mailbox is deleted by renaming it under Trash to prevent it from being autoexpunged too early. - autoexpunge: Multiple processes may have been trying to expunge the same mails simultaneously. This was problematic especially with lazy_expunge plugin. - auth: %{passdb:*} was empty in auth-worker processes - auth-policy: hashed_password was always sent empty. - dict-sql: Merge multiple UPDATEs to a single statement if possible. - fts-solr: Escape {} chars when sending queries - fts: fts_autoindex_exclude = \Special-use caused crashes - doveadm-server: Fix leaks and other problems when process is reused for multiple requests (service_count != 1) - sdbox: Fix assert-crash on mailbox create race - lda/lmtp: deliver_log_format values weren't entirely correct if Sieve was used. especially %{storage_id} was broken. - lmtp_user_concurrency_limit didn't work if userdb changed username
2017-01-17Include sys/time.h for struct timeval.wiz2-1/+16
Build fix for NetBSD-7.99.59.
2016-12-14Changes 2.2.27:adam5-18/+31
* 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. See http://wiki2.dovecot.org/Plugins/MailCrypt + stats: Global stats can be sent to Carbon server by setting stats_carbon_server=ip:port + imap/pop3 proxy: If passdb returns proxy_not_trusted, don't send ID/XCLIENT + Added generic hash modifier for %variables: %{<hash algorithm>;rounds=<n>,truncate=<bits>,salt=s>:field} Hash algorithm is any of the supported ones, e.g. md5, sha1, sha256. Also "pkcs5" is supported using SHA256. For example: %{sha256:user} or %{md5;truncate=32:user}. + Added support for SHA3-256 and SHA3-512 hashes. + config: Support DNS wildcards in local_name, e.g. local_name *.example.com { .. } matches anything.example.com, but not multiple.anything.example.com. + config: Support multiple names in local_name, e.g. local_name "1.example.com 2.example.com" { .. } - Fixed crash in auth process when auth-policy was configured and authentication was aborted/failed without a username set. - director: If two users had different tags but the same hash, the users may have been redirected to the wrong tag's hosts. - Index files may have been thought incorrectly lost, causing "Missing middle file seq=.." to be logged and index rebuild. This happened more easily with IMAP hibernation enabled. - Various fixes to restoring state correctly in un-hibernation. - dovecot.index files were commonly 4 bytes per email too large. This is because 3 bytes per email were being wasted that could have been used for IMAP keywords. - Various fixes to handle dovecot.list.index corruption better. - lib-fts: Fixed assert-crash in address tokenizer with specific input. - Fixed assert-crash in HTML to text parsing with specific input (e.g. for FTS indexing or snippet generation) - doveadm sync -1: Fixed handling mailbox GUID conflicts. - sdbox, mdbox: Perform full index rebuild if corruption is detected inside lib-index, which runs index fsck. - quota: Don't skip quota checks when moving mails between different quota roots. - search: Multiple sequence sets or UID sets in search parameters weren't handled correctly. They were incorrectly merged together.
2016-11-12Bump BUILDLINK_ABI_DEPENDS since older dovecot2-pigeonhole dose not worktaca1-2/+2
with 2.2.26.0.
2016-11-12Add build problem on NetBSD 7.0_STABLE at least.taca3-6/+20
2016-11-12Changes 2.2.26:adam7-85/+16
* 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. + Added a concept of "alternative usernames" by returning user_* extra field(s) in passdb. doveadm proxy list shows these alt usernames in "doveadm proxy list" output. "doveadm director&proxy kick" adds -f <passdb field> parameter. The alt usernames don't have to be unique, so this allows creation of user groups and kicking them in one command. + auth: passdb/userdb dict allows now %variables in key settings. + auth: If passdb returns noauthenticate=yes extra field, assume that it only set extra fields and authentication wasn't actually performed. + auth: passdb static now supports password={scheme} prefix. + auth, login_log_format_elements: Added %{local_name} variable, which expands to TLS SNI hostname if given. + imapc: Added imapc_max_line_length to limit maximum memory usage. + imap, pop3: Added rawlog_dir setting to store IMAP/POP3 traffic logs. This replaces at least partially the rawlog plugin. + dsync: Added dsync_features=empty-header-workaround setting. This makes incremental dsyncs work better for servers that randomly return empty headers for mails. When an empty header is seen for an existing mail, dsync assumes that it matches the local mail. + doveadm sync/backup: Added -I <max size> parameter to skip too large mails. + doveadm sync/backup: Fixed -t parameter and added -e for "end date". + doveadm mailbox metadata: Added -s parameter to allow accessing server metadata by using empty mailbox name. + Added "doveadm service status" and "doveadm process status" commands. + director: Added director_flush_socket. See http://wiki2.dovecot.org/Director#Flush_socket + doveadm director flush: Users are now moved only max 100 at a time to avoid load spikes. --max-parallel parameter overrides this. + Added FILE_LOCK_SLOW_WARNING_MSECS environment, which logs a warning if any lock is waited on or kept for this many milliseconds. - master process's listener socket was leaked to all child processes. This might have allowed untrusted processes to capture and prevent "doveadm service stop" comands from working. - login proxy: Fixed crash when outgoing SSL connections were hanging. - auth: userdb fields weren't passed to auth-workers, so %{userdb:*} from previous userdbs didn't work there. - auth: Each userdb lookup from cache reset its TTL. - auth: Fixed auth_bind=yes + sasl_bind=yes to work together - auth: Blocking userdb lookups reset extra fields set by previous userdbs. - auth: Cache keys didn't include %{passdb:*} and %{userdb:*} - auth-policy: Fixed crash due to using already-freed memory if policy lookup takes longer than auth request exists. - lib-auth: Unescape passdb/userdb extra fields. Mainly affected returning extra fields with LFs or TABs. - lmtp_user_concurrency_limit>0 setting was logging unnecessary anvil errors. - lmtp_user_concurrency_limit is now checked before quota check with lmtp_rcpt_check_quota=yes to avoid unnecessary quota work. - lmtp: %{userdb:*} variables didn't work in mail_log_prefix - autoexpunge settings for mailboxes with wildcards didn't work when namespace prefix was non-empty. - Fixed writing >2GB to iostream-temp files (used by fs-compress, fs-metawrap, doveadm-http) - director: Ignore duplicates in director_servers setting. - director: Many fixes related to connection handshaking, user moving and error handling. - director: Don't break with shutdown_clients=no - zlib, IMAP BINARY: Fixed internal caching when accessing multiple newly created mails. They all had UID=0 and the next mail could have wrongly used the previously cached mail. - doveadm stats reset wasn't reseting all the stats. - auth_stats=yes: Don't update num_logins, since it doubles them when using with mail stats. - quota count: Fixed deadlocks when updating vsize header. - dict-quota: Fixed crashes happening due to memory corruption. - dict proxy: Fixed various timeout-related bugs. - doveadm proxying: Fixed -A and -u wildcard handling. - doveadm proxying: Fixed hangs and bugs related to printing. - imap: Fixed wrongly triggering assert-crash in client_check_command_hangs. - imap proxy: Don't send ID command pipelined with nopipelining=yes - imap-hibernate: Don't execute quota_over_script or last_login after un-hibernation. - imap-hibernate: Don't un-hibernate if client sends DONE+IDLE in one IP packet. - imap-hibernate: Fixed various failures when un-hibernating. - fts: fts_autoindex=yes was broken in 2.2.25 unless fts_autoindex_exclude settings existed. - fts-solr: Fixed searching multiple mailboxes (patch by x16a0) - doveadm fetch body.snippet wasn't working in 2.2.25. Also fixed a crash with certain emails. - pop3-migration + dbox: Various fixes related to POP3 UIDL optimization in 2.2.25. - pop3-migration: Fixed "truncated email header" workaround. v2.2.26 had a couple of nasty bugs left in it, so here's a fixup release. The version number is also a little bit weird, but had to be done this way (although 2.2.26.0.1 could have been another possibility). - 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
2016-10-08Enable generic SQL backend support. Fixes pkg/51536. PKGREVISION++fhajny2-4/+6
2016-10-05Fix static array check in configure. Patch will be in next dovecot release,sborrill2-1/+19
so can be removed after that.
2016-09-19Recursive PKGREVISION bump for gnutls shlib major bump.wiz2-4/+4
2016-07-18Split off dovecot2-{gssapi,ldap,mysql,pgsql,sqlite} as separatefhajny5-91/+64
packages, remove respective options.mk parts.
2016-07-06Most importantly this fixes startup failure with kqueue.adam5-4/+61
https://github.com/dovecot/core/commit/ffd8dc932516bc55bf01d91355540daab365e5e9?diff=unified Fix for PR 51314.
2016-07-02Changes 2.2.25:adam3-8/+30
* 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 + auth: Added %{auth_user}, %{auth_username} and %{auth_domain} + auth: Added ":remove" suffix to extra field names to remove them. + auth: Added "delay_until=<timestamp>[+<max random secs>]" passdb extra field. The auth will wait until <timestamp> and optionally some randomness and then return success. + dict proxy: Added idle_msecs=<n> parameter. Support async operations. + Performance improvements for handling large mailboxes. + Added lib-dcrypt API for providing cryptographic functions. + Added "doveadm mailbox update" command + imap commands' output now includes timing spent on the "syncing" stage if it's larger than 0. + cassandra: Added metrics=<path> to connect setting to output internal statistics in JSON format every second to <path>. + doveadm mailbox delete: Added -e parameter to delete only empty mailboxes. Added --unsafe option to quickly delete a mailbox, bypassing lazy_expunge and quota plugins. + doveadm user & auth cache flush are now available via doveadm-server. + doveadm service stop <services> will stop specified services while leaving the rest of Dovecot running. + quota optimization: Avoid reading mail sizes for backends which don't need them (count, fs, dirsize) + Added mailbox { autoexpunge_max_mails=<n> } setting. + Added welcome plugin: http://wiki2.dovecot.org/Plugins/Welcome + fts: Added fts_autoindex_exclude setting. - v2.2.24's MIME parser was assert-crashing on mails having truncated MIME headers. - auth: With multiple userdbs the final success/failure result wasn't always correct. The last userdb's result was always used. - doveadm backup was sometimes deleting entire mailboxes unnecessarily. - doveadm: Command -parameters weren't being sent to doveadm-server. - If dovecot.index read failed e.g. because mmap() reached VSZ limit, an empty index could have been opened instead, corrupting the mailbox state. - imapc: Fixed EXPUNGE handling when imapc_features didn't have modseq. - lazy-expunge: Fixed a crash when copying failed. Various other fixes. - fts-lucene: Fixed crash on index rescan. - auth_stats=yes produced broken output - dict-ldap: Various fixes - dict-sql: NULL values crashed. Now they're treated as "not found".
2016-06-08Remove the stability entity, it has no meaning outside of an official context.jperkin1-1/+0
2016-06-08Change the service_bundle name to "export" to reduce diffs between thejperkin1-1/+1
original manifest.xml file and the output from "svccfg export".
2016-05-03PLIST fix when ldap PKG_OPTIONS is not set, noted by Hauke Fath viataca2-6/+7
private e-mail.
2016-05-03Update dovecot2 to 2.2.24 (Dovecot 2.2.24).taca4-9/+31
v2.2.24 2016-04-26 Timo Sirainen <tss@iki.fi> * 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. + lazy-expunge: All mails can be saved to a single specified mailbox. + mailbox { autoexpunge } supports now wildcards in mailbox names. + doveadm HTTP API: Added support for proxy commands + imapc: Reconnect when getting disconnected in non-selected state. + imapc: Added imapc_features=modseq to access MODSEQs/HIGHESTMODSEQ. This is especially useful for incremental dsync. + doveadm auth/user: Auth lookup performs debug logging if -o auth_debug=yes is given to doveadm. + Added passdb/userdb { auth_verbose=yes|no } setting. + Cassandra: Added user, password, num_threads, connect_timeout and request_timeout settings. + doveadm user -e <value>: Print <value> with %variables expanded. - Huge header lines could have caused Dovecot to use too much memory (depending on config and used IMAP commands). (Typically this would result in only the single user's process dying with out of memory due to reaching service { vsz_limit } - not a global DoS). - dsync: Detect and handle invalid/stale -s state string better. - dsync: Fixed crash caused by specific mailbox renames - auth: Auth cache is now disabled passwd-file. It was unnecessary and it broke %variables in extra fields. - fts-tika: Don't crash if it returns 500 error - dict-redis: Fixed timeout handling - SEARCH INTHREAD was crashing - stats: Only a single fifo_listeners was supported, making it impossible to use both auth_stats=yes and mail stats plugin. - SSL errors were logged in separate "Stacked error" log lines instead of as part of the disconnection reason. - MIME body parser didn't handle properly when a child MIME part's --boundary had the same prefix as the parent.
2016-04-30Not MAKE_JOBS_SAFE.joerg1-1/+5
2016-04-11Recursive revbump from textproc/icu 57.1ryoon1-1/+2
2016-04-09PLIST fixadam1-4/+1
2016-04-08Changes 2.2.23:adam5-11/+45
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.
2016-03-05Bump PKGREVISION for security/openssl ABI bump.jperkin2-3/+4
2016-02-25Remove manual OPSYSVARS additions which are now part of the default set.jperkin1-3/+1
2015-12-27Changes 2.2.21:adam4-10/+16
- 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.
2015-11-04Remove duplicate SHA512 digests that crept in.agc1-2/+1
2015-11-03Add SHA512 digests for distfiles for mail categoryagc1-1/+2
Problems found locating distfiles: Package mutt: missing distfile patch-1.5.24.rr.compressed.gz Package p5-Email-Valid: missing distfile Email-Valid-1.198.tar.gz Package pine: missing distfile fancy.patch.gz Package postgrey: missing distfile targrey-0.31-postgrey-1.34.patch Package qmail: missing distfile badrcptto.patch Package qmail: missing distfile outgoingip.patch Package qmail: missing distfile qmail-1.03-realrcptto-2006.12.10.patch Package qmail: missing distfile qmail-smtpd-viruscan-1.3.patch Package thunderbird24: missing distfile enigmail-1.7.2.tar.gz Package thunderbird31: missing distfile enigmail-1.7.2.tar.gz Otherwise, existing SHA1 digests verified and found to be the same on the machine holding the existing distfiles (morden). All existing SHA1 digests retained for now as an audit trail.
2015-10-17Changes 2.2.19:adam6-36/+70
* 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. + Added imap-hibernate processes (see imap_hibernate_timeout setting). IDLEing IMAP connections can be hibernated, which saves memory. + Optimized tracking mailboxes' vsizes (= sum of all messages' sizes). If mailbox_list_index=yes, it's also stored in there. This makes it very efficient to look up vsizes for all mailboxes. + Added a quota "count" backend, which uses the mailbox vsizes to get the current quota usage. It requires using the new quota_vsizes=yes setting, which tracks the messages' "virtual sizes" rather than "physical sizes". Their distiction is minor and mostly irrelevant nowadays (if mail sizes should be counted with LF or CRLF newlines). + "doveadm director up/down" commands added. The monitoring script should be using these commands instead of changing the vhost count. This allows admin to manually disable a server by changing the vhost count to 0 without the monitoring script changing it back. + Added support for HAProxy protocol: http://wiki2.dovecot.org/HAProxy + Added push-notification plugin framework, which can be used to easily implement push notifications to various backends. Implemented "ox" backend for notifying Open-Xchange via HTTP/json. + imap_logout_format supports more variables now, e.g. number of deleted messages. + pop3: Added pop3_delete_type setting (related to pop3_deleted_flag). + plugin { fts_enforced=yes } setting now fails body searches unless it can be done via the full text search engine. + Added %{passdb:*} and %{userdb:*} variables to various places + auth: Added ":protected" suffix for passdb and userdb fields. If used, the field doesn't overwrite an existing field. + IMAP/POP3 proxy: If a backend server dies, avoid client reconnection spikes by slowly disconnecting clients over time. This is enabled by setting login_proxy_max_disconnect_delay=secs passdb extra field. + imap: Added new read-only METADATA entries: /private/specialuse, /shared/comment, /shared/admin + imap: If client disconnects in the middle of a command, log how long the command had been running. - mdbox: Rebuilding could have caused message's reference count to overflow the 16bit number in some situations, causing problems when trying to expunge the duplicates. - Various search fixes (fts, solr, tika, lib-charset, indexer) - Various virtual plugin fixes - Various fixes and optimizations to dsync, imapc and pop3-migration - imap: Various RFC compliancy and crash fixes to NOTIFY
2015-10-10Recursive revbump from textproc/icuryoon1-2/+2
2015-09-23__builtin_object_size may be delayed until codegen time by GCC, sojoerg2-1/+15
certain asserts based on ICE never trigger. Clang makes the choice earlier to declare the size as unknown, so it would fail the assert. The check in question is clearly bogus as an array parameter is really just a fancy way to write a pointer -- no size information is preserved.
2015-09-04Add a patch for dovecot to fix a hang on SmartOS.wiedi3-3/+25
While here also define the TEST_TARGET
2015-08-23Bump PKGREVISION for nettle shlib major bump.wiz2-3/+4
2015-05-17Update dovecot2 package to 2.2.18.taca5-66/+29
v2.2.18 2015-05-15 Timo Sirainen <tss@iki.fi> - 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. v2.2.17 2015-05-13 Timo Sirainen <tss@iki.fi> * 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. * imap: SPECIAL-USE capability is no longer advertised if there are no special_use flags specified for any mailboxes. + lmtp: Added lmtp_hdr_delivery_address setting to specify whether to include email address in Delivered-To: and Received: headers. + Added initial version of full text search library, which includes language-specific text normalization and filtering. This is still in development, but it's already possible to use for testing with fts-lucene and fts-solr. + lda, lmtp: deliver_log_format can now include %{delivery_time}, which expands to how many milliseconds it took to deliver the mail. With LMTP %{session_time} also expands to how many milliseconds the LMTP session took, not including the delivery time. + lmtp proxy: Mail delivery logging includes timing information. + imap: Most IMAP commands now include in the tagged reply how many milliseconds it took to run the command (not counting the time spent on waiting for the IMAP client to read/write data). + director: Implemented director_proxy_maybe passdb extra field to be able to run director and backend in the same Dovecot instance. (LMTP doesn't support mixed proxy/non-proxy destinations currently.) + doveadm: Added -F <file> parameter to read a list of users from the given file and run the command for all the users. This is similar to -A parameter reading the list of users from userdb lookup. + Implemented initial Cassandra CQL support as lib-sql backend. It's only usable as dict backend currently. + Added quota-clone plugin to copy current quota usage to a dict. - auth: If auth_master_user_separator was set, auth process could be crashed by trying to log in with empty master username. - imap-login, pop3-login: Fixed crash on handshake failures with new OpenSSL versions (v1.0.2) when SSLv3 was disabled. - auth: If one passdb fails allow_nets check, it shouldn't have failed all the other passdb checks later on. - imap: Server METADATA couldn't be accessed - imapc: Fixed \Muted label handling in gmail-migration. - imapc: Various bugfixes and improvements. - Trash plugin fixes by Alexei Gradinari - mbox: Fixed crash/corruption in some situations
2015-05-10Add fix for CVE-2015-3420.taca3-3/+59
Bump PKGREVISION.
2015-04-23Explicitly disable inotify on illumos, it is provided for Linux compat only.jperkin1-1/+6
2015-04-06Revbump after updating textproc/icuadam1-1/+2
2015-03-15Fix build under NetBSD (amd64 7.0_BETA).tron2-1/+19
2015-03-14Changes 2.2.16:adam4-10/+25
* dbox: Resyncing (e.g. doveadm force-resync) no longer deletes dovecot.index.cache file. The cache file was rarely the problem so this just caused unnecessary slowness. * Mailbox name limits changed during mailbox creation: Each part of a hierarchical name (e.g. "x" or "y" in "x/y") can now be up to 255 chars long (instead of 200). This also reduces the max number of hierarchical levels to 16 (instead of 20) to keep the maximum name length 4096 (a common PATH_MAX limit). The 255 char limit is hopefully large enough for migrations from all existing systems. It's also the limit on many filesystems. + director: Added director_consistent_hashing setting to enable consistent hashing (instead of the mostly-random MD5 hashing). This causes fewer user moves between backends when backend counts are changed, which may improve performance (mainly due to caching). + director: Added support for "tags", which allows one director ring to serve multiple backend clusters with different sets of users. + LMTP server: Added lmtp_user_concurrency_limit setting to limit how many LMTP deliveries can be done concurrently for a single user. + LMTP server: Added support for STARTTLS command. + If logging data is generated faster than it can be written, log a warning about it and show information about it in log process's process title in ps output. Also don't allow a single service to flood too long at the cost of delaying other services' logging. + stats: Added support for getting global statistics. + stats: Use the same session IDs as the rest of Dovecot. + stats: Plugins can now create their own statistics fields + doveadm server: Non-mail related commands can now also be used via doveadm server (TCP socket). + doveadm proxying: passdb lookup can now override doveadm_port and change the username. + doveadm: Search query supports now "oldestonly" parameter to stop immediately on the first non-match. This can be used to optimize: doveadm expunge mailbox Trash savedbefore 30d oldestonly + doveadm: Added "save" command to directly save mails to specified mailbox (bypassing Sieve). + doveadm fetch: Added body.snippet field, which returns the first 100 chars of a message without whitespace or HTML tags. The result is stored into dovecot.index.cache, so it can be fetched efficiently. + dsync: Added -t <timestamp> parameter to sync only mails newer than the given received-timestamp. + dsync: Added -F [-]<flag> parameter to sync only mails with[out] the given flag/keyword. + dsync: Added -a <mailbox> parameter to specify the virtual mailbox containing user's all mails. If this mailbox is already found to contain the wanted mail (by its GUID), the message is copied from there instead of being re-saved. (This isn't efficient enough yet for incremental replication.) + dsync: -m parameter can now specify \Special-use names for mailboxes. + imapc: Added imapc_features=gmail-migration to help migrations from GMail. See http://wiki2.dovecot.org/Migration/Gmail + imapc: Added imapc_features=search to support IMAP SEARCH command. (Currently requires ESEARCH support from remote server.) + expire plugin: Added expire_cache=yes setting to cache most of the database lookups in dovecot index files. + quota: If overquota-flag in userdb doesn't match the current quota usage, execute a configured script. + redis dict: Added support for expiring keys (:expire_secs=n) and specifying the database number (:db=n) - auth: Don't crash if master user login is attempted without any configured master=yes passdbs - Parsing UTF-8 text for mails could have caused broken results sometimes if buffering was split in the middle of a UTF-8 character. This affected at least searching messages. - String sanitization for some logged output wasn't done properly: UTF-8 text could have been truncated wrongly or the truncation may not have happened at all. - fts-lucene: Lookups from virtual mailbox consisting of over 32 physical mailboxes could have caused crashes.
2015-02-19Add tcpwrapper PKG_OPTIONS and enable it default.taca3-7/+17
Bump PKGREVISION.
2015-01-24Add upper bound to ABI depends.wiz1-2/+2
Suggested by tron.
2015-01-14Bump ABI depends per PR 49563 from Petar Bogdanovic, and add a notewiz2-3/+8
in the Makefile for updaters.
2014-12-12Fix typo in previous.wiz1-2/+2
Noted by Uwe Klaus.
2014-12-12The sqlite option is quite useful, and the dependency it pulls in, sqlite3,wiz2-3/+4
is small and installed on many machines anyway. Turn the option on by default. Bump PKGREVISION. Ok MAINTAINER adam@
2014-11-02Update dovecot2 to 2.2.15.taca5-82/+7
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 proxy_timeout. This allows quick restarts/upgrades on the backend server without returning login failures. * Internal passdb lookups (e.g. done by lmtp/doveadm proxy) wasn't returning failure in some situations where it should have (e.g. allow_nets mismatch) * LMTP uses mail_log_prefix now for logging mail deliveries instead of a hardcoded prefix. The non-delivery log prefix is still hardcoded though. + passdb allow_nets=local matches lookups that don't contain an IP address (internally done by Dovecot services) + Various debug logging and error logging improvements - Various race condition fixes to LAYOUT=index - v2.2.14 virtual plugin crashed in some situations
2014-10-20regen patch, no change, just patches more cleanlywiz2-8/+6
2014-10-20Changes 2.2.14:adam3-8/+29
* 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 ports). + Rawlog settings can use tcp:<host>:<port> as the path. + virtual plugin: Don't keep more than virtual_max_open_mailboxes (default 64) number of backend mailboxes open. + SSL/TLS compression can be disabled with ssl_options=no_compression + acl: Global ACL file now supports "quotes" around patterns. + Added last-login plugin to set user's last-login timestamp on login. + LDAP auth: Allow passdb credentials lookup also with auth_bind=yes - IMAP: MODSEQ was sent in FETCH reply even if CONDSTORE/QRESYNC wasn't enabled. This broke at least old Outlooks. - passdb static treated missing password field the same as an empty password field. - mdbox: Fixed potential infinite looping when scanning a broken mdbox file. - imap-login, pop3-login: Fixed potential crashes when client disconnected unexpectedly. - imap proxy: The connection was hanging in some usage patterns. This mainly affected older Outlooks. - lmtp proxy: The proxy sometimes delivered empty mails in error situations or potentially delivered truncated mails. - fts-lucene: If whitespace_chars was set, we may have ended up indexing some garbage words, growing the index size unnecessarily. - -c and -i parameters for dovecot/doveadm commands were ignored if the config socket was readable. - quota: Quota recalculation didn't include INBOX in some setups. - Mail headers were sometimes added to dovecot.index.cache in wrong order. The main problem this caused was with dsync+imapc incremental syncing when the second sync thought the local mailbox had changed. - doveadm backup didn't notice if emails were missing from the middle of the destination mailbox. Now it deletes and resyncs the mailbox.
2014-10-10Remove unneeded patch, confirmed by adam.wiz2-17/+1
2014-10-10Remove patch file from HEAD, to finish a commit that ended upgdt1-22/+0
mysteriously mixed on HEAD and 2013Q4, despite there not being a CVS/Tag file in patches.
2014-10-10Drop misleading SSL patch.gdt2-4/+3
One really does need to put < before the ssl key/cert file; the upstream example is correct. ok adam@
2014-10-09Remove pkgviews: don't set PKG_INSTALLATION_TYPES in Makefiles.wiz1-3/+1