Hi all, after one year of intensive development we have just released Z-Push 2.3.0 final (tag 2.3.0, commit cc7ee228a5b1421268db37a0e1f7f9725ac1ffdf). There are many new features in Z-Push 2.3.0, like packages and repositories for 14 distributions, MySQL and memcache support for states, improved Outlook compatibility (KOE) and especially: a vast speed improvement! We would like to thank a lot our community contributors Etienne, Francisco, Nicolas, Ralf and Vincent who helped to make this possible! *Upgrade procedure* You can directly upgrade from any Z-Push 2.2.x. After the upgrade, "z-push-admin -a fixstates" needs to be executed once! Else the Ping request will not block and devices will sync continuously. After the fixstates all mobiles will work normally and Ping will be working as expected. *This version introduces new features that are partially not downgradable.* A limited downgrade is possible. In order to use all new features (especially for Outlook users) existing profiles must be completely re-synchronized, e.g. via "z-push-admin -a resync -u username". After the resync the devices use a new type of folderids (short ids) which are not compatible with Z-Push 2.2.x anymore. Re-synchronized profiles or newly connected devices (after the upgrade to 2.3.0) will not work properly when downgrading to Z-Push 2.2.x. These devices will be re-synchronized again automatically. There is no need to perform the resync immediately. Profiles created with 2.2.x will work normally with 2.3.0, but not all new features will be available. Using "z-push-admin -a lastsync" you are able to see who has new/old profiles. *Blackberry 10 users*: our tests have shown that a server side resync as described here is not enough for BB10 devices to work reliably. You need to remove and re-create the profile on these devices. BB seems to cache old folderids which causes sync inconsistencies. Ideally: (1) remove profile from BB (2) remove state on server (3) create the profile on the BB again. Existing Blackberry profiles will work normally with 2.3.0, but at some point they should be re-synchronized & re-created. We have seen a similar behavior with *Outlook 2013+* when upgrading. You will need to recreate your profile in Outlook as well. *We strongly advise you to install the from the packages and don't use the tarball (which we also publish)!* More information about the installation from repositories and packages is available here: https://wiki.z-hub.io/display/ZP/Installation *New features since Z-Push 2.2.x* https://jira.z-hub.io/browse/ZP-230 - SQL state machine https://jira.z-hub.io/browse/ZP-556 - Share folders read-only https://jira.z-hub.io/browse/ZP-77 - Systemwide policy configuration https://jira.z-hub.io/browse/ZP-402 - Implement Free/Busy support https://jira.z-hub.io/browse/ZP-622 - Ping should notify on hierarchy changes https://jira.z-hub.io/browse/ZP-767 - Open Shared Folders API (Webservice) https://jira.z-hub.io/browse/ZP-696 - Z-Push packages https://jira.z-hub.io/browse/ZP-900 - Kopano Outlook Extension compatibility https://jira.z-hub.io/browse/ZP-560 - Logging to syslog https://jira.z-hub.io/browse/ZP-665 - New backend - LDAP https://jira.z-hub.io/browse/ZP-684 - New backend - CardDAV https://jira.z-hub.io/browse/ZP-685 - New backend - CalDAV https://jira.z-hub.io/browse/ZP-739 - Heartbeat interval range lifetime https://jira.z-hub.io/browse/ZP-837 - Have a serverside timeout depending on device type https://jira.z-hub.io/browse/ZP-849 - Implement shorter folder ids (was: integer) https://jira.z-hub.io/browse/ZP-691 - Remove legacy stuff https://jira.z-hub.io/browse/ZP-698 - IPC provider logic https://jira.z-hub.io/browse/ZP-828 - IMAP - contributions https://jira.z-hub.io/browse/ZP-797 - rework WBXML handling https://jira.z-hub.io/browse/ZP-705 - Implement support for STREAMER_TYPE_STREAM_ASPLAIN https://jira.z-hub.io/browse/ZP-969 - Add webservices to list the hierarchy of another user. *Most important Improvements since Z-Push 2.2.x* https://jira.z-hub.io/browse/ZP-594 - Failsave for endless loops https://jira.z-hub.io/browse/ZP-648 - Implement ResolveRecipients for FreeBusy https://jira.z-hub.io/browse/ZP-666 - z_RFC882 - Update version https://jira.z-hub.io/browse/ZP-668 - mimeDecode.php - Update version and changes https://jira.z-hub.io/browse/ZP-681 - Remove closing PHP tags https://jira.z-hub.io/browse/ZP-682 - Composer - Auto-Include https://jira.z-hub.io/browse/ZP-700 - Catch PHP fatals and log them into z-push-error.log https://jira.z-hub.io/browse/ZP-760 - Always log generic exception as fatal error https://jira.z-hub.io/browse/ZP-765 - ZLog/Syslog refactor https://jira.z-hub.io/browse/ZP-818 - Send no answer collection for unchanged folders in Sync https://jira.z-hub.io/browse/ZP-832 - Detect folder changes faster https://jira.z-hub.io/browse/ZP-834 - Remove SINK_FORCERECHECK https://jira.z-hub.io/browse/ZP-835 - IStateMachine::CleanStates() should get a parameter to delete the exact counter file (not everything smaller) https://jira.z-hub.io/browse/ZP-838 - Set MAX_ITEMS to 512 to accelerate Outlook sync https://jira.z-hub.io/browse/ZP-839 - Z-Push-top writes over several lines when Outlook synchronizes https://jira.z-hub.io/browse/ZP-853 - Backend could not support FolderStats for single folders https://jira.z-hub.io/browse/ZP-865 - Don't enter conflict detection if more than 100 items are queued https://jira.z-hub.io/browse/ZP-886 - IImportChanges->ImportMessageDeletion() should support soft deletions https://jira.z-hub.io/browse/ZP-899 - Evaluate and compare should work on all SyncObjects https://jira.z-hub.io/browse/ZP-915 - KOE: multi-tenancy compatibility of gab-sync script https://jira.z-hub.io/browse/ZP-932 - z-push-admin should list old (longid) profiles https://jira.z-hub.io/browse/ZP-933 - z-push-admin could expose functionality to resync the KOE GAB for a single user https://jira.z-hub.io/browse/ZP-939 - z-push-admin can show foldernames in ongoing sync and identify the KOE GAB folder https://jira.z-hub.io/browse/ZP-945 - Log time and memory consumption also in INFO log level https://jira.z-hub.io/browse/ZP-946 - Add a check for php versions https://jira.z-hub.io/browse/ZP-950 - Improve GIT version logging https://jira.z-hub.io/browse/ZP-953 - improved human readability in the notification mail when reverting a changes in a read-only folder https://jira.z-hub.io/browse/ZP-958 - ability to suppress e,.g. E_NOTICE and E_STRICT notices/warnings, see also: https://wiki.z-hub.io/display/ZP/Hidden+configuration+parameters https://jira.z-hub.io/browse/ZP-964 - Expose Z-Push version via additional header to authenticated users. https://jira.z-hub.io/browse/ZP-965 - possibility to extend the SqlStateMachine by an own class https://jira.z-hub.io/browse/ZP-970 - Allow call printwbxml from arbitrary directories and use externals files as in usage - contributed by Ralf Becker! https://jira.z-hub.io/browse/ZP-974 - KOE: Add capability flag for shared folders https://jira.z-hub.io/browse/ZP-977 - Closing streams after exporting https://jira.z-hub.io/browse/ZP-982 - Include buildfiles in git repository https://jira.z-hub.io/browse/ZP-986 - Possibility to disable TopCollector for big systems https://jira.z-hub.io/browse/ZP-993 - Allow to disable Outlook access from LDAP/ADS *Bug fixes* https://jira.z-hub.io/browse/ZP-711 - zpush_fatal_handler reports PHP Notice & Warning as FATAL in z-push(-error).log https://jira.z-hub.io/browse/ZP-802 - Fix default Settings() response in abstract Backend class https://jira.z-hub.io/browse/ZP-810 - Missing configuration in BackendCombined for BackendLDAP https://jira.z-hub.io/browse/ZP-825 - Composer: replacenullchar filter can not be found https://jira.z-hub.io/browse/ZP-829 - CardDAV - fix phone number mappings https://jira.z-hub.io/browse/ZP-841 - SyncKey "0" needs to invalidate FolderStat https://jira.z-hub.io/browse/ZP-843 - MAPI stream warnings https://jira.z-hub.io/browse/ZP-848 - FolderStat should not be considered if not using latest SyncKey https://jira.z-hub.io/browse/ZP-851 - FolderStat needs expiration time https://jira.z-hub.io/browse/ZP-855 - Searched and found message can not be deleted (iOS) https://jira.z-hub.io/browse/ZP-856 - Code still contains while(1) in command processors https://jira.z-hub.io/browse/ZP-864 - User with umlauts in user name is not able to login in Outlook https://jira.z-hub.io/browse/ZP-866 - After exporting a change states used for empty request may be wrong https://jira.z-hub.io/browse/ZP-871 - Integer folderids may falsly trigger hierarchy sync in Ping https://jira.z-hub.io/browse/ZP-872 - Ping doesn't catch all notifications https://jira.z-hub.io/browse/ZP-874 - WBXMLencoder processMultipart() should warn if stream has "no size" https://jira.z-hub.io/browse/ZP-876 - Arrays in constants is not supported in php 5.4 https://jira.z-hub.io/browse/ZP-877 - Sync period change not honoured https://jira.z-hub.io/browse/ZP-879 - Fix for ZP-779 doesn't work when working on shared folders https://jira.z-hub.io/browse/ZP-882 - Loading policies.ini doesn't work from CLI https://jira.z-hub.io/browse/ZP-884 - Fix GetHierarchy() to provide otherwise streamed properties to MAPIProvider->GetFolder() https://jira.z-hub.io/browse/ZP-887 - Z-Push: warning when looking up free/busy for a new user https://jira.z-hub.io/browse/ZP-895 - Integer ids can trigger folder name switches by Outlook https://jira.z-hub.io/browse/ZP-896 - Warnings in MAPIProvider https://jira.z-hub.io/browse/ZP-904 - Autodiscover is not syslog compatible https://jira.z-hub.io/browse/ZP-905 - KopanoChangesWrapper throws fatal with php lower than 5.5 https://jira.z-hub.io/browse/ZP-918 - KOE: GAB folder being added when it doesn't exist https://jira.z-hub.io/browse/ZP-920 - Setting of reply flag is broken https://jira.z-hub.io/browse/ZP-921 - Move causes duplicates in destination folder https://jira.z-hub.io/browse/ZP-922 - Subfolders don't show up in the synchronized folder list https://jira.z-hub.io/browse/ZP-923 - Ping fails to load state for zero sync keys https://jira.z-hub.io/browse/ZP-924 - KOE: gab-sync calls wrong mapi error function https://jira.z-hub.io/browse/ZP-927 - When setting up additionalLogUsers the last stats line is not logged https://jira.z-hub.io/browse/ZP-930 - z-push-top doesn't work in another directory with memcache enabled https://jira.z-hub.io/browse/ZP-934 - Warnings while synchronizing https://jira.z-hub.io/browse/ZP-935 - Devicedata is deleted when requesting folder resync https://jira.z-hub.io/browse/ZP-936 - MAPIStreamWrapper loses data when truncating https://jira.z-hub.io/browse/ZP-940 - Implement Set/GetMoveStates in combined im/exporters https://jira.z-hub.io/browse/ZP-941 - On "remove" via z-push-admin the devicedata is not deleted when using sql states https://jira.z-hub.io/browse/ZP-947 - On exporter failure Outlook does not understand folder status code https://jira.z-hub.io/browse/ZP-951 - Error messages when synchronizing with BB https://jira.z-hub.io/browse/ZP-952 - Warnings when getting hierarchy notifications https://jira.z-hub.io/browse/ZP-955 - fixed warnings when using a diff-backend based backend https://jira.z-hub.io/browse/ZP-956 - Warnings about unmet condition when transforming folderid in backendid https://jira.z-hub.io/browse/ZP-962 - Problem with autoloader searching for non-existing backend - thanks to Vincent aka liverpoolfcfan for reporting! https://jira.z-hub.io/browse/ZP-966 - KOE: ZCP 7.1 compatibility of the gab-sync script https://jira.z-hub.io/browse/ZP-971 - Don't fail when source message id is not found on move operations to the waste basket. https://jira.z-hub.io/browse/ZP-976 - In case a state is not found z-push-admin list is useless https://jira.z-hub.io/browse/ZP-980 - Exception of an all day recurrence is not all day https://jira.z-hub.io/browse/ZP-981 - Error deleting an all-day occurrence on a mobile device https://jira.z-hub.io/browse/ZP-984 - Unable to list folders of a another user if not an admin user https://jira.z-hub.io/browse/ZP-990 - KOE: Race-condition when connecting two Outlooks with the same user simultaneously https://jira.z-hub.io/browse/ZP-994 - On missing permissions WebserviceInfo->ListUserFolders() returns own folders https://jira.z-hub.io/browse/ZP-1000 - Not possible to accept meeting request on iPhone https://jira.z-hub.io/browse/ZP-1001 - Requestid in MeetingResponse is not split https://jira.z-hub.io/browse/ZP-1003 - KOE: sync-gab is not always able to open store when using system *Others* https://jira.z-hub.io/browse/ZP-206 - Default log rotation for z-push packages https://jira.z-hub.io/browse/ZP-649 - Fix ResolveRecipients for Zarafa https://jira.z-hub.io/browse/ZP-650 - Implement ResolveRecipients for IMAP https://jira.z-hub.io/browse/ZP-674 - Remove the include of mimeDecode.php in Zarafa backend https://jira.z-hub.io/browse/ZP-706 - Update SyncObjects https://jira.z-hub.io/browse/ZP-707 - Implement plain streams for Zarafa https://jira.z-hub.io/browse/ZP-708 - Implement plain streams for IMAP https://jira.z-hub.io/browse/ZP-709 - Implement plain streams for Zimbra https://jira.z-hub.io/browse/ZP-710 - Implement plain streams for Egroupware https://jira.z-hub.io/browse/ZP-714 - Implement Free/Busy lookup for Zarafa backend https://jira.z-hub.io/browse/ZP-716 - [Zarafa] Implement options processing for ResolveRecipients https://jira.z-hub.io/browse/ZP-718 - Re-factor resolving recipients in gal and contacts https://jira.z-hub.io/browse/ZP-737 - ResolveRecipients Availability and Picture do not honour AS version https://jira.z-hub.io/browse/ZP-741 - Loopdetection does not need the folder type https://jira.z-hub.io/browse/ZP-768 - Additional folder data in device + Set/Get/List/Remove APIs https://jira.z-hub.io/browse/ZP-769 - Integration into FolderSync + FolderChange operations https://jira.z-hub.io/browse/ZP-770 - Expose API via Webservice https://jira.z-hub.io/browse/ZP-771 - Changes in Additional User Folder API should trigger a FolderSync while in Ping https://jira.z-hub.io/browse/ZP-772 - Change default value of USE_FULLEMAIL_FOR_LOGIN https://jira.z-hub.io/browse/ZP-774 - Webservice documentation https://jira.z-hub.io/browse/ZP-777 - Catch & Filter hierarchy events https://jira.z-hub.io/browse/ZP-778 - Verify hierarchy notifications https://jira.z-hub.io/browse/ZP-779 - Outlook: message is suddenly unread after moving it to another folder https://jira.z-hub.io/browse/ZP-816 - z-push-admin and z-push-top missing log dependency https://jira.z-hub.io/browse/ZP-821 - Integrate autoloading for backends https://jira.z-hub.io/browse/ZP-846 - z-push-admin fix-states need to fix missing folderdata of hierarchy state https://jira.z-hub.io/browse/ZP-847 - Remove stream seek() call from WBXMLencoder https://jira.z-hub.io/browse/ZP-852 - Show user's policy in z-push-admin https://jira.z-hub.io/browse/ZP-858 - Ping hierarchy checks old states https://jira.z-hub.io/browse/ZP-881 - Change ZCP server location for listfolders https://jira.z-hub.io/browse/ZP-891 - Remove extra log for 2.3.0 https://jira.z-hub.io/browse/ZP-897 - Rename ZCP backend https://jira.z-hub.io/browse/ZP-901 - ReplyBack of read flag should be done right https://jira.z-hub.io/browse/ZP-902 - ZPushAdmin->AdditionalFolderList() should list types and readonly flag https://jira.z-hub.io/browse/ZP-914 - KOE: Hide Z-Push-KOE-GAB folder automatically on creation https://jira.z-hub.io/browse/ZP-917 - Remove default IPC_PROVIDER https://jira.z-hub.io/browse/ZP-919 - KOE: GAB appears wrong in z-push-top PING https://jira.z-hub.io/browse/ZP-928 - Put apache configuration files in GIT https://jira.z-hub.io/browse/ZP-929 - KOE: make syncgab script executable directly https://jira.z-hub.io/browse/ZP-937 - Memcache logs blockmutex warnings too often https://jira.z-hub.io/browse/ZP-942 - Update INSTALL to reflect changes of 2.3 https://jira.z-hub.io/browse/ZP-943 - Make shared memory default IPC https://jira.z-hub.io/browse/ZP-944 - Update z-push-admin help page https://jira.z-hub.io/browse/ZP-948 - X-Forwarded-for can now be logged to DEBUG level https://jira.z-hub.io/browse/ZP-978 - Load policies from default section policy file https://jira.z-hub.io/browse/ZP-987 - Memcache IPC too slow https://jira.z-hub.io/browse/ZP-989 - Remove 'readonly' flag from configuration and webservice and show permissions in AdditionalFolderList() https://jira.z-hub.io/browse/ZP-995 - Warnings in WebserviceInfo->ListUserFolders() https://jira.z-hub.io/browse/ZP-999 - GMail example configuration of IMAP backend has a typo An overview of the tickets of 2.3.0 in Jira is available here: https://jira.z-hub.io/projects/ZP/versions/10128 Code changes since 2.2.10 are available here: https://stash.z-hub.io/projects/ZP/repos/z-push/compare/diff?targetBranch=refs%2Ftags%2F2.2.10&sourceBranch=refs%2Ftags%2F2.3.0 Install Z-Push 2.3.0 from repositories (recommended): https://wiki.z-hub.io/display/ZP/Installation The tarball is available here (not recommended): http://download.z-push.org/final/2.3/z-push-2.3.0.tar.gz Please share your experiences and give feedback! Greetings, Sebastian Z-Push dev team