12. Release Notes

Please see the Kopano Changelog <http://documentation.kopano.io/kopano_changelog> for updates changelogs.

12.1. Release notes for 8.5.0 (2018-02-05)

Enhancements:

  • server: new “server_listen” directive replacing “server_bind” [KC-645]
  • server: stronger keep-alive [KC-888,KC-890]
  • server: further general performance improvements [KC-62,KC-181,KC-889,KC-892,KC-893]
  • server: update PR_LOCAL_COMMIT_MAX on hard-deletes [KC-770]
  • server: speed up contact and search folder querying [KC-265,KC-941]
  • server: skip some unnecessary attachment accesses [KC-769,KC-794]
  • spooler: introduce indexed_headers config directive [KC-948]
  • search: pass “limit_results” to xapian to improve performance [KC-786]
  • search: optionally index draft folders [KC-787]
  • unixplugin: support multiple non_login_shells [KC-824]
  • unixplugin: add /sbin/nologin as a non_login_shell (new installs only) [KC-824]
  • gateway: RFC 6154 support [KC-857]
  • dagent: a Python version of kopano-autorespond is available [KC-861]
  • kopano-spamd: new program [KC-666]
  • icalmapi: support URL, NICKNAME, PRODID in vcards
  • php: extend mapi_feature with ST_ONLY_WHEN_OOF [KC-970]

Fixes:

  • gateway: generate envelope using inetmapi if not present yet [KC-607]
  • spooler: only evaluate rules that are explicitly enabled using PR_RULE_STATE [KC-963]
  • search: supply a HOME environment (tmpdir) when running conversion tools [KC-331]

Changes:

  • Support for Debian 7 ended [KC-736]
  • /etc/kopano is no longer prepopulated, create .cfg manually if you need to override anything [KC-681, KC-978]
  • server: remove support for upgrading databases older than ZCP 7.2 [KC-839]
  • gateway: use threaded mode for reduced memory usage on many-user systems (new installs only) [KC-768]
  • gateway: the “imap_store_rfc822” config directive is removed [KC-964]
  • server: the “counter_reset” config directive is removed [KC-960]
  • spooler: the “always_send_utf8” config directive is removed [KC-901]
  • client: MAPI provider configuration moved from /etc/mapi to /usr/lib/mapi.d

Packager notes:

  • libical 3.x support [KC-920]

12.2. Release notes for 8.4.7

Fixes:

  • php: do return true when AbortSubmit succeeded [KW-2087]

12.3. Release notes for 8.4.6 (2018-02-02)

Fixes:

  • common: restore support for binary data in RTF [KC-969]
  • libserver: store size for orphaned stores was reported incorrectly [KC-984]
  • client: have OpenEntry check for NULL entryids and entryids too short [KC-932]
  • dagent, client: fix nonfunctional HTML filter [KC-953]
  • common: switch logging to stderr when pipe dies [KC-815]
  • spooler: avoid printing garbage when non-worker child exits [KC-815]

12.4. Release notes for 8.4.5 (2017-12-15)

Fixes:

  • treewide: avoid freeing ADRLIST garbage pointers [KC-927]
  • libserver: fix waiting for ntlm_auth forever [KC-916]
  • libserver: fix use after free in ECCacheManager::GetPropFromObject [KC-60, KC-177, KC-355, KC-669, KC-754]

12.5. Release notes for 8.4.4 (2017-11-23)

Fixes:

  • common: fix detection of local connections that need not use zlib compression
  • libserver: improve ECICS error reporting [KC-880]
  • inetmapi: overwrite recipients instead of appending [KC-419]

12.6. Release notes for 8.4.3 (2017-11-07)

Enhancements:

  • dagent: enable automated backtraces when invoked with -f [KC-879]

Fixes:

  • php5-ext: fix positive retval setting in error case [KC-875]
  • dagent: redirect rule led to crash [KC-868,KC-871]

12.7. Release notes for 8.4.2 (2017-11-02)

  • server: revert NO_UNSIGNED_SUBTRACTIONS [KC-841,KC-869]

12.8. Release notes for 8.4.1 (2017-11-01)

Fixes:

  • Avoid calling srand with 1-second-granular time
  • inetmapi: handle empty/invalid Sender in RFC2822 mails [KC-263]
  • spooler: for send-later mails, check trash, not outbox [KC-848,KC-863]

12.9. Release notes for 8.4.0 (2017-10-30)

Enhancements:

  • dagent, gateway: whitelist-based HTML filter [ZCP-13472]
  • New scripts/utilities: kopano-fix-ipm-subtree, kopano-localize-folders, kopano-recreate-systemfolders, kopano-rules [KC-533]
  • server: drop excessive locking in ECABObjectTable/ECStoreObjectTable hot path
  • provider: speed up getIDsFromNames by reducing SQL queries
  • server: add LIMIT clauses to single-result SELECT statements [KC-5]
  • client: speedup from-scratch MAPI session creation by avoiding extraneous logon-logoff cycles during provider initialization [KC-667]
  • client: add API for dump+restore of MAPI session profile data so libmapi users can skip provider reinitialization at program startup [KC-67,KC-165]
  • gateway: add option to ignore commands during IDLE
  • gateway: will now warn about IMAP clients using wrong sequence ranges
  • php: copy back improvements from the Z-Push project’s bundled copy [KC-463]
  • search: make searchfolder creation in shared stores configurable [KC-565]
  • mapi: disable very slow RTF compression [KC-622]
  • server: add entry cache for S3 backend [KC-702]
  • icalmapi: handle up to three email addresses in a vcard [KC-420]
  • inetmapi: add the right extension for attachments without filename [KC-624]
  • search: index embedded messages (recursively) [KC-151]
  • migration-pst: new options -S, –clean-folders option [KC-651,KC-485]
  • pyko: fall back to search-key to determine recipient email address [KC-566]
  • pyko: support processing basic cancellations [KC-612]
  • pyko: support cancellation of existing exception [KC-612]
  • icalmapi: support ADR, ORG, TITLE tags in VCF files
  • swig: lazy opening of folder objects [KC-632]
  • backup: the “backup_servers” option is back again [KC-364]
  • backup: save and restore store-level ACLs [KC-687]
  • backup: use store GUID for backup directory [KC-686]
  • backup: merge store-level metadata [KC-627]

Fixes:

  • spooler: do not run mr-process before mr-accept [KC-498]
  • spooler: do not send deleted send-later mails [KC-848]
  • Coverity reports on absent return value checks [KC-595]
  • freebusy: avoid potential divison by zero when trying to determine the end date of a non-recurring recurrence. [KC-595]
  • libserver: ensure same endianess for SOURCEKEYs [KC-628]
  • server plugins: more escaping in SQL commands [KC-620]
  • gateway: set PR_FOLLOWUP_ICON for WebApp [KC-653]
  • gateway: cure slow folder access [KC-853]
  • gateway: resolve accessing invalid pointer [KC-817]
  • server: avoid crash when NTLM subprocess gives no newline [KC-656]
  • pyko: avoid hang on shutdown of Python services with logging [KC-643]
  • server: disable reminders from shared stores [KC-728]
  • server: improved error reporting when users/groups/group members are not found/not complete [KC-497]
  • backup: avoid emitting tracebacks [KC-411]

Changes:

  • server: the underlying call for traditional-style fd monitoring was changed from select(2) to poll(2) [ZCP-13065]
  • server: the sync_log_all_changes is obsolete [KC-527]
  • server: use SQL autocommit=0 during transactions
  • server: stop relying on NO_UNSIGNED_SUBTRACTIONS and avoid use of hexadecimal numbers [KC-841]
  • server: avoid UB during hostname lookup when host is IPv6-only
  • gateway: ignore missing (lost) attachments [KC-363]
  • dagent: turn on PHP7 SCL on RHEL6 [KC-621]
  • pyko/backup: change error into warning for ‘missing’ attachments [KC-545, KC-555, KC-575]
  • server: hide private messages’ reminders from shared stores [KC-565]
  • server: drop ZCP client update support [KC-644]

Packager notes:

  • libicu changed from optional to required build dependency
  • kopano-server S3 store required libs3 4.1 [KC-751]
  • python/swig is now optional [KC-753]

12.10. Release notes for 8.3.5 (unreleased/state of 2017-10-31)

Fixes:

  • server: complete signal blocking [KC-779]
  • ical: avoid freeing garbage pointers [KC-803]
  • caldav: fix unbounded copy/iteration past end [KC-792]
  • migration-pst: skip archiver properties [KC-812]
  • icalmapi: cure a NULL dereference when generating VCFs
  • inetmapi: cure a NULL dereference when parsing MDNs [KC-814]
  • inetmapi: support embedded messages once again [KC-540, KC-775]
  • inetmapi: stop generating <”@”@hostname> [KC-689, KC-772]
  • server: admin user is to always open shared reminders [KC-813]
  • gateway: fix infinite loop when UID ranges are inverted [KS-38641]
  • extra nullptr checks in Util::HrCopyProperty [KC-826]
  • server: removing user from folder permission broke [KC-844]
  • ldapplugin: fix out-of-bounds reads in SMD5 and SSHA password check
  • ldapplugin: avoid triggering crash in DES_fcrypt
  • ldapplugin: fix truncated SMD5 hash comparison
  • ldapplugin: fix out-of-bounds in b64_encode

12.11. Release notes for 8.3.4 (2017-09-01)

Fixes:

  • server: configurable shared reminders [KC-789]
  • migration-pst: create unknown named-properties [KC-788]
  • server: filter private shared messages from search, and filter private shared notifications [KC-565]
  • dagent: check quota on delivery
  • m4lcommon: ensure right condition for SRowSetPtr::empty [KC-773]

Changes:

  • server: rename disable_shared_reminders option [KC-565]

12.12. Release notes for 8.3.3 (2017-08-09)

Fixes:

  • gateway: fix another IMAP protocol error [KC-720]
  • server: fix depth level count for attachments [KC-745]
  • common/spooler: catch a potential pointer underflow [KC-694]
  • common: fix incorrect condition in scheduler [KC-638] Fixes timing of softdeletes, sync-table cleanups, kopano-monitor.
  • server: disable reminders from shared stores [KC-728]
  • libserver: avoid creating multi-stream gzip files [KC-104, KC-314, KC-597]
  • monitor: do not check quota for admin user [KC-773]

Changes:

  • server: build with libs3 4.1 [KC-751]

12.13. Release notes for 8.3.2 [2017-07-06]

Fixes:

  • gateway: fix an IMAP protocol error [KC-668] Apple Mail/Alpine did not show mails with long encoded subjects
  • common: restore ability to output crashdump [KC-630]
  • caldav: counter proposal without dates [KC-710]
  • inetmapi: avoid short allocation on group expansion [KC-388,KC-727]
  • server: support ICS initial sync with more than 100000 items again [KC-683]

Changes:

  • server: improve wording of ntlm_auth messages [KC-572]

12.14. Release notes for 8.3.1 [2017-06-20]

Enhancements:

  • gateway: add option to ignore commands during IDLE

Fixes:

  • dagent.cfg:forward_whitelist_domains commentary has been reworded [KC-593]
  • inetmapi: do not force HTML when use_tnef is set to minimal [KC-664]
  • spooler: avoid a use-after-free, and a deadlock after this failure [KC-588]
  • backup: batch storage updates [KC-662]
  • spooler: custom bounce message text for forward_whitelist_domain [KC-618]
  • server: avoid unchecked return value and unsigned underflow [KC-656]
  • php: rework pointer value storing
  • daemons: call initgroups when switching user and don’t fall over [KC-684,KC-690]

12.15. Release notes for 8.3.0 [2017-04-27]

Enhancements:

  • mapi: drop global lock and replace singleton allocmore table by per-object vectors [KC-328]
  • swig: expose group and company properties in Python [KC-320]
  • xapian-compact.py: new -c option to specify config file [KC-205]
  • utils: support setting out-of-office without an until-date [KC-275]
  • gateway, server: reload SSL certificates on SIGHUP [KC-301]
  • gateway: optimize LIST, SELECT, STATUS [KC-490]
  • dagent: log_raw_message option can now be used selectively on users [KC-370]
  • icalmapi: VCF conversion [KC-420]
  • migration-pst: call SaveChanges only once [KC-534]

Fixes:

  • pyko: do not throw backtraces on log messages [KC-340]
  • server: Ctrl-C now works in gdb [KC-171]
  • ics: make creation of new syncids work incrementally [KC-208]
  • libserver: change incorrect compare operator for EID_V0 [KC-365]
  • migration-pst: show usage, not traceback, for invalid options [KC-372]
  • migration-pst: skip root folder more intelligently [KC-487]
  • migration-pst: MV properties are handled better [KC-457]
  • inetmapi: avoid buffer overread on rejected recipients (showed garbage in logs) [KC-398]
  • client: add extra checks for EID sizes [KC-500]
  • gateway: enforce user and password checking on local socket [KC-396,KC-490]
  • caldav: avoid a nullptr dereference [KC-236]
  • cachestat: avoid exception and unpack tuple [KC-402]
  • ldapplugin: revert “catch empty ldap_search_base” [KC-602]
  • spooler: fix crash on forwarding rules [KC-608]
  • dagent: avoid shell command injections [KC-619]
  • server: avoid returning garbage for getLicenseAuth [KA-2]

Changes:

  • server: compressed attachments now get the same permissions as uncompressed ones [KC-380]
  • server: make softdelete_lifetime config setting a reloadable property [KC-472]
  • icalmapi: handle missing timezone for RRULE [KC-414]
  • backup: maintain deleted folders and add –purge N option [KC-376]
  • migration-pst: filter metadata at start of subject [KC-424]
  • migration-pst: ignore decode errors [KC-521]
  • common: fix empty text bodies when converting U+0000 from RTF/HTML [KC-557,KC-580]
  • icalmapi: reworked copying description into mail body [KC-568]

Of special mention:

  • search: python3 support (but requires new python-xapian and, as a result, a db migration or full reindexing)

Developer/packager notes:

  • KC variables and functions now live in the KC:: C++ namespace [KC-369]
  • Build-time requirements: gsoap >= 2.8.39 [KC-335], libvmime >= 0.9.2, boost no longer needed at all [KC-451], xmlto no longer needed at all.

12.16. Release notes for 8.2.0 [2017-02-17]

Fixes:

  • backup: avoid exceptions on problematic rules/ACLs/delegates [KC-213,KC-266]
  • The comment for server.cfg’s “disabled_features” was wrong [KC-262]
  • php: fix crash by adding missing pointer type conversions [KC-274]
  • dagent: the “Received” debugging header had the wrong target address
  • gateway: do not emit an X-Mailer field when retrieving mail [KC-277]
  • gateway: report missing attachments over IMAP better [KC-436]
  • server/ldap: report empty ldap_search_base setting
  • client: verify peer’s SSL certificate name [KC-156,KC-409]
  • admin: support unwrapping “default:” type URLs [KC-289]
  • backup: fix tracebacks when used with ZCP [KC-306,KC-307,KC-308]
  • server: implement missing readback of compressed attachments [KC-285]
  • dagent: iCal descriptions caused wrong body parts to be displayed [KC-138]
  • dagent: mr-process failed to copy attachments to the calendar item [KC-202]
  • dagent: restore/rework forced ASCII charset upgrade [KC-294]
  • server: S3 attachment size was not calculated [KC-351]
  • inetmapi: review misdetection of TNEF necessity for reminders [KC-348]
  • icalmapi: unbreak timezone lookup [KC-313]
  • icalmapi: handle RRULE with missing timezone [KC-341]
  • inetmapi: avoid an infinite recursion on SMIME handling [KC-366]
  • inetmapi: avoid buffer overread when generating NDR [KC-398]
  • inetmapi: avoid overzealously generating winmail.dat [KC-348]
  • server: equalize fs permissions for attachments [KC-380]
  • migration-pst: resolve tracebacks [KC-372,KC-373,KC-377]
  • migration-pst: do not skip folder when items unprocessible [KC-417]
  • common: fix spurious crash in sk_SSL_COMP_free on shutdown [KC-443]

Enhancements:

  • client: Kerberos/GSSAPI support [KC-396]
  • PST importer [KC-59]
  • Python 3 support [KC-48,KC-267]
  • search: files are now compacted, and their uid/gid checked [KC-188]
  • server: allow search folder creation outside of own store [KC-271]
  • dagent: forwarding by rule can be restricted with a whitelist [KC-109]
  • search: add script for findroot upgrade [KC-300]
  • php: can build with ZTS again [KC-442]
  • php: ICS import/export functions [KC-302]
  • server: AWS4-HMAC-SHA256 support for S3 [KC-170]
  • pyko: permit “public@company” syntax to specify stores [KC-317]
  • dagent: new AUTORESPOND_BCC option for use with OOF [KC-319]
  • kopano-stats: bind ‘q’ key to exit as well [KC-105]
  • presence: log authentication errors
  • Improved PHP7 support [*,KC-330]
  • backup: backup deleted items and folders [KC-376]
  • backup: add –purge option [KC-376]
  • backup: improved logging when ACL does not resolve to user/group [KC-431]

Changes:

  • Non-Delivery Reports now originate from “Mail Delivery System” (like postfix) instead of yourself [KC-309]
  • Support for building with a no-SSLv2 OpenSSL 1.1. [KC-230] If you run such a setup, be aware that a config setting like “ssl_protocol = !SSLv2” in one or more of kopano-{server,gateway,ical}.cfg can inhibit the process from starting.
  • Cleanup of the example LDAP configuration files. [KC-229] /usr/share/doc/kopano/example-configs/ now has just a ldap.cfg, and no more ldap{,ms}.{active-directory,ldap}.cfg.
  • The example LDAP config file now has a different proposed value for ldap_object_search_filter for OpenLDAP. [KC-218]
  • spooler: messages with reminder will be sent with a TNEF copy [KC-152]
  • admin: group features will no longer be shown [KC-239]
  • search: log to file (if set) instead of stdout [KC-204]
  • search: treat ‘_’ as a word break [KC-290]
  • swig: resolve crash when python programs end [KC-269]
  • config: change ldap_object_search_filter for WebApp to be able to search by mail address [KC-337]
  • backup: synchronize soft-deleted items [KC-376]
  • The RTF encoder incorrectly produced paragraphs where it should have created linefeeds [KC-338]
  • The RTF decoder failed to see that uXXXX could start a paragraph [KC-338]
  • The RTF decoder erroneously created a new paragraph on pard [KC-338]

Developer/packager notes:

  • Support for building the source with newer gsoap (upto and including 2.8.37) [KC-261]
  • KC 8.2 is the first to support 2.8.34+ at runtime. [KC-261] Earlier KC releases only support gsoap < 2.8.30 because KC was using undocumented behavior for which the generator changed the wire protocol.
  • New libvmime API is now being used [KC-263]

Internal:

  • Many “goto exit” were abolished and reordered [KC-87]
  • for() loop verbosity reduced by using range-based loops [KC-88]
  • pthread_mutex calls have been switched to std::mutex [KC-191]
  • Coverity report fixes and other possible NULL dereferences [KC-23,KC-235]
  • Memory leak fixes [KC-93,KC-98,KC-316]
  • Reduction of symbol table sizes [KC-20]

12.17. Kopano Core 8.1.0

Kopano Core 8.1.0 is the first major release that went through a massive amount of quality assurance and therefore can be rated from us as a production-capable release. Kopano Core 8.1.0 is the first supported version from Kopano and provides you the following changes:

Fixes:

  • ldapplugin: hopefully avoid “Timed out” errors from ldap_search [KC-74]
  • swig: resolve a memory leak when using python components [KC-72]
  • server: better guard against off-size EntryIDs [KC-60]
  • ics: avoid referencing a value-replaced mysql_fetch_lengths array [KC-52]
  • backup: restore container classes [KC-22]
  • all daemons: fixed coredumps not getting generated most of the time [KC-61]
  • all: issue setgroups(2) before setuid(2) [KC-37]

Enhancements:

  • PHP7 support
  • server: add ICS log messages [KC-18]
  • server: ship example config files for ldap multi-server [KC-65]
  • server: speed up REPLACE-type sql queries [KC-58]
  • server: speed up login phase by caching PR_LOGON_TIME [KC-6]
  • libicalmapi: improve fallback scenario to server_timezone in ical.cfg [KC-11]

Changes:

  • search: no longer do indexing on root and Draft folders [KC-57]
  • search: index junk folders, but skip updating suggestion list [KC-57]
  • Python 2.5 support is removed

12.18. Kopano Core 8.0.1

Kopano Core 8.0.1 is the first major release of Kopano Core based on the open source code of ZCP (Zarafa Collaboration Platform). It marks the first iteration and we do not recommend this release yet as production release, even though many changes have been made.

A short list of changes are:

  • server: avoid “netlink: 4 bytes leftover” in dmesg
  • server: A fast-growing memory leak was resolved [KC-12]
  • sql schema: all PRIMARY keys need to be NOT NULL, otherwise a UNIQUE key would be required. [KC-2]

Enhancements: - server: add ICS log messages [KC-18] - libicalmapi: improve fallback scenario to server_timezone in ical.cfg [KC-11]