PaulHowarth/Blog/2015-03-13

Friday 13th March 2015

Fedora Project

  • Branched and built perl-IO-Compress-Zlib (version 2.005, to match the existing perl-IO-Compress-Bzip2 package) for EPEL-5, needed by OpenDMARC (Bug #905304)

Local Packages

  • Updated dovecot to 2.2.16:

    • dbox: Resyncing (e.g. doveadm force-resync) no longer deletes the 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 maximum 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 and 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 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

  • Updated perl-IO-Socket-IP: update to 0.37:

    • Earlier detection/reporting of erroneous Listen + Peer* argument combination; don't rely on resolveable hostname to do it (CPAN RT#92930)

    • Skip t/16v6only.t on irix (CPAN RT#102662)

    • Remember to eval() $IO::Socket::VERSION in case it's a devel release (CPAN RT#101954)

    • s/Port/LocalPort/ in unit tests (CPAN RT#96064)

  • Updated perl-Module-Runtime-Conflicts to 0.002:

    • Make this module actually check the proper versions :/
    • Add entries for MooseX:NonMoose and Elasticsearch, both of which also had issues with changes to Module::Runtime


Recent