Community  »  Applications  »  Groupware

Changes by Release



[jan] SECURITY: Fix unauthorized access in Tasks and File Manager.
[jan] Officially support PHP 7.
[jan] Fix returning to last URL after using the login link.

Calendar Changes
[jan] Fix time offsets when importing CSV data with two-digit years.
[jan] Fix updating and deleting events from external CalDAV servers
      (, Bug #14021).
[jan] Fix exporting multiple tags to iCalendar CATEGORIES (Bug #14057).

Tasks Changes
[jan] SECURITY: Fix unauthorized access to task exports.
[jan] Fix regression when exporting single tags to iCalendar CATEGORIES.
[jan] Fix parsing sub-tasks from the quick enter dialog (Bug #14681).
[jan] Fix positioning of due time drop down list (Bug #12288).
[jan] Improve compatibilty when synchronizing tasks via CalDAV/ICS (Bug
[jan] Fix exporting multiple tags to iCalendar CATEGORIES (Bug #14057).
[jan] Don't include external tasks into drop down list for parent tasks.
[jan] Fix redirecting to task list after completing a task (Bug #14678).

Notes Changes
[jan] Fix exporting multiple tags to vNote CATEGORIES (Bug #14057).

File Manager Changes
[jan] SECURITY: Fix unauthorized access to files from backends that don't
      require authentication (Reported by Tim O'Driscoll

Library Changes
[mjr] Prevent broken datetime strings from causing a fatal error (Bug #14682).

[jan] Fix RAR compressed file names with unicode characters.

[jan] Fix double line breaks in task description tooltips (Bug #14684).
[mjr] Fix issue that could break ActiveSync sync if object not found.

[jan] Correctly determine expiration dates of short living PGP keys.

[jan] Fix translating the string representation of a recurrence rule.

[jan] SECURITY: Fix remote code execution vulnerability in Im driver (Thomas
      Jarosch <>.

[jan] Fix expunging cache entries of a certain lifetime from the DB backend.

[jan] Fix bottom table line length of RAR archive summaries.


[jan] SECURITY: Fix open redirects.
[jan] Update Turkish translations (İTÜ BİDB <>).

Address Book Changes
[jan] Fix creating address books with the external API.

Calendar Changes
[mjr] Prevent broken iCalendar files from causing fatal errors (Bug #14672).
[jan] Work around calendar servers advertising as CalDAV-capable, but ignoring
      CalDAV requests (Bug #14662).
[jan] Fix displaying yesterday's event in Prior Events portal block
      (, Bug #14638).

Tasks Changes
[mjr] Fix handling of delayed start dates (Bug #14634).

File Manager Changes
[jan] Fix redirection after logins with Horde 5.2.16 and later.

Library Changes
[mjr] Fix undefined constant error (Bug #14671).
[mjr] Improve support for android Gmail application (Bug #14655).
[mjr] Fix undefined property warnings (Bug #14631).

[jan] Fix catching database backend exceptions.

[jan] Filter out control characters from file names when sending download

[jan] Fix returning to normal font after text with light colors.
[jan] Fix fatal error screen for PHP 7 error objects.
[jan] Fix header() method to print, not return the header.
[jan] Really silence errors from tput and stty (Bug #14632).
[jan] Silence errors from tput and stty (Bug #14632).

[jan] SECURITY: Fix XSS vulnerability with pathinfo component in
[jan] Deprecate Horde::redirect().
[jan] Add Horde::signUrl() and Horde::verifySignedUrl().
[jan] Fix JavaScript minifying with recent Closure compilers (Bug #14650).
[jan] Add Horde_Registry_Application#backup(), restore(), and
[mjr] Fix calculating ActiveSync SOFTDELETE times for calendar collections (Bug

[jan] More fixes for GnuPG 2 (Mathieu Parent <>).
[jan] Remove dependency on openssl executable (Hadi Nategh <>).

[jan] Add Horde_Date_Recurrence::fromHash() and toHash().

[jan] SECURITY: Fix XSS vulnerability with form sections.

[jan] Fix unescaping of commas in ADR, N, and ORG attributes.

[mjr] SECURITY: Fix more potential places for command injections.
[mjr] SECURITY: Prevent DOS attack by preventing an infinite loop in certain
      conditions (CVE-2017-9773, reported by Fariskhi Vidyan
[mjr] SECURITY: Prevent RCE attacks by properly sanitizing shell arguments
      (CVE-2017-9774, reported by Fariskhi Vidyan <>).
[jan] Add blur effect.

[jan] Fix check if QRESYNC is enabled in vanished() (i.badamshin

[jan] Add unit tests.

[jan] SECURITY: Fix XSS vulnerability with pathinfo component in toString().


Colorize output of command line scripts.

Horde Changes
[jan] Show alarm ID with error output from horde-alarms.

Calendar Changes
[mjr] Don't hide the reservee's identity on the resource calendar (Bug #14609).

Library Changes
[mjr] Fix regression that caused S/MIME messages to appear invalid on device.
[mjr] Readd timestamp to sync log entries.
[mjr] Catch leaked Horde_Idna_Exceptions from Horde_Mime.

[jan] Return the alarm ID with the getErrors() result.

[jan] Colorize output.
[jan] Add Horde_Argv_HelpFormatter#highlightHeading() and

[jan] Use rectangular background coloring for messages and errors.
[jan] Add Horde_Cli#block().
[jan] Use the system's newline character(s).
[jan] Fix color sequences for black and darkgray.
[jan] Mark PHP 7 as supported.
[jan] Wrap content matching the terminal width.
[jan] Add Horde_Cli#getWidth() to return the terminal width.
[jan] Add Horde_Cli_Color.

[jan] Add Horde_Cli_Modular_ModuleUsage to support colored output.

[jan] Add support for compressing TAR archives.
[jan] Add compressDirectory().
[jan] Fix notice when adding files older than 1988 to a ZIP archive.
[jan] Fix reading file dates after August from ZIP files.

[jan] Detect unsupported GnuPG versions.
[jan] Fix detection of new GnuPG API (Remi Collet <>, PR #220).
[mjr] Correctly specify either sha-1 or sha-256 when signing a smime message.
[jan] Support GnuPG 2.1+ too (Bug #14014).

[mjr] Fix returning stream data from NULL image driver (Bug #14608).

[jan] Don't exit after running phpunit tests.

[jan] Fix unfolding of multi-line strings and other incompatibilites with


Library Changes
[mjr] SECURITY: Fix remote code execution vulnerability (CVE-2017-7413, and

[mjr] Fix PHP error accessing logger during OPTIONS request (Bug #14601).

[jan] Fix unpacking encrypted session data ("User not authorized for ..." log
[jan] Throw an exception when accessing a non-existing API through the registry.
[mjr] Fix regression in loading vhost config files (Bug #14605).

[jan] Fix regression when submitting multiple forms (Bug #14604).


Horde Changes
[mjr] Fix errors in horde-memcache-stats script (Bug #14588).
[mjr] Remove configuration for defunct Yahoo, CloudMade, and MyTopo mapping

Address Book Changes
[mjr] Fix importing vCard LABEL fields (Bug #14584).
[mjr] Fix saving sync preference when no default address book exists (Bug
[mjr] Fix removing virtual address books when calling the removeUserData API
      (Bug #14577).
[jan] Fix fatal error if group contacts from an LDAP server don't exist

Calendar Changes
[mjr] Fix saving sync preference when no default calendar exists (Bug #14585).
[mjr] Fix display of date in ITIP_CANCEL notifications of deleted instances of
      recurring events (PR: 214,

Tasks Changes
[mjr] Fix saving sync preference when no default tasklist exists (Bug #14585).
[mjr] Avoid PHP warnings due to corrupt preference values (Bug #14585).

Notes Changes
[mjr] Fix saving sync preference when no default notepad exists (Bug #14585).
[mjr] Fix potential infinite recursion in Mnemo_Api::listBy() due to corrupt
      preference values.

Library Changes
[mjr] Fix error in synchronizing recurring tasks (Bug #14599).
[mjr] Database compatibility improvements.
[mjr] Refactor logging to support streams and improve readability.
[jan] Fix MongoDB backend with mongodb extension.
[mjr] Add Horde_ActiveSync_Imap_EasMessageBuilder classes.
[mjr] Fix loading event file attachments on iOS.

[jan] Fix MongoDB backend with mongodb extension.

[jan] Add header() method to turn a string into an outlined header.
[jan] Add color() method to colorize output with any supported color.

[jan] Restore BC with incorrect parameter usage of
      Horde_PageOutput::addInlineScript() (Bug #14597).
[jan] Allow to specify JS framework to use for defer-loading inline scripts.
[mjr] Fix fatal error when logging a successfully sent email via ActiveSync.
[mjr] Fix adding a separator item to a custom menu (Bug #14581).
[jan] Enable LDAP rootDSE caching.
[mjr] Use new ActiveSync log handling.
[jan] Correctly encode IP address literal in first Received: header (Bug
[mjr] Remove support for defunct CloudMade, and MyTopo mapping APIs.
[jan] Fix fatal error screen for PHP 7 error objects.
[jan] Remember the configuration values of split-read database environments.
[jan] Only show $conf[sql][ca] if $conf[sql][ssl] is enabled.

[mjr] Improve Horde_Db logging options (Request #10773).
[mjr] Allow Horde_Value objects to contain stream data (Request #10805).

[jan] Keep submitted checkboxes unchecked if they default to be checked.

[mjr] Fix PHP 5.3 compatibility (Remi Collet <>).
[mjr] Fix calculating timezone offsets when parsing vTimezone components.

[jan] Check for errors when using UTS #46 algorithm.

[mjr] Fix drop shadow generation when using a background color.
[mjr] Add support for storing image data as a temporary stream.

[jan] Optionally cache rootDSE requests too.
[jan] Fix checking for existing attributes in Horde_Ldap_RootDse.

[mjr] Use protected member variables to facilitate extending the
      Horde_Log_Logger class.

[jan] Correctly encode IP address literal in first Received: header (Bug

[jan] Fix PostgreSQL backend with newer Horde_Db version.

[jan] Fix regression with PHP < 5.5.

[jan] Fix MongoDB backend with mongodb extension.
[jan] Fix returning session ID when using a PostgreSQL backend.

[jan] Fix removing custom permssions when removing a user or group from a share
      (Bug #14578).

[mjr] Fix RFC 3030 (CHUNKING) support.

[jan] Add Horde_Backtrace#createFromThrowable() to support PHP 7 error objects

[jan] Update to PHPUnit 4.8.35 and dependencies.
[jan] Colorize PHPUnit output.

[jan] Add Horde_Text_Diff_Renderer_Unified_Colored as a renderer with color

[jan] Fix generating TZOFFSETFROM attributes for certain rules.
[jan] Add parameters to Horde_Timezone_Zone#toVtimezone() to limit the
      generated STANDARD and DAYLIGHT sections.

[jan] Fix detecting locale directories of namespaced libraries.

[mjr] Allow Horde_Vfs::writeData() to accept stream input.
[jan] Fix retrieving files from root folder with SQL backends (Bug #14545).


Horde Changes
[jan] Disallow setting of creator permissions too if sharing with world is

Address Book Changes
[jan] Remove left over from 10-years-old code (Bug #14521).
[mjr] Fix regression in sorting contacts by a name field (Bug #14471).
[mjr] Fix regression in saving tags (Bug #14463).

Calendar Changes
[mjr] Fix allowing ics import on when user has edit permissions on a shared
      calendar (Bug #14501).
[jan] Disallow setting of creator permissions too if sharing with world is
[jan] Split shared users by linebreaks too.

Tasks Changes
[jan] Fix sorting by due date with PHP < 5.5 (Bug #14507).
[mjr] Fix fatal error caused by regression in sorting recurring tasks with due
      dates (Bug #14504).

File Manager Changes
[jan] Update Portuguese translation.
[jan] Update Basque translation.
[jan] Add Greek translation (Limperis Antonis <>).
[jan] Use access rules compatible with both Apache 2.2 and 2.4.
[jan] Fix fatal error when cutting and pasting files on the same backend.
[jan] Update Italian translation.

Timeobject Changes
[jan] Update Basque translation.
[jan] Add Greek translation (Limperis Antonis <>).

Library Changes
[mjr] Fix test issue on 32bit systems (Bug #14532).
[mjr] Improve handling of case when IMAP server returns invalid HIGHESTMODSEQ
      values (DVT - Daten-Verarbeitung-Tirol GmbH).
[mjr] Fix regression in initial synchronization.
[mjr] Attempt to work around IMAP servers that report broken HIGHESTMODSEQ
[mjr] Prevent invalid UTF-8 text in address fields.
[mjr] Add support for EAS 16 draft email sync.
[mjr] Close database connections while sleeping during PING requests.
[mjr] Fix converting charset of subject and attachment names in certain cases
      (Bug #14457).
[mjr] Changes to support attachment sync support for Appointment objects.

[jan] Use more efficient database access in SQL backend.

[jan] Fix Horde_Form dependency (Bug #14460).
[mjr] Fix BC break in Weather block (Bug #14473).
[mjr] Fix locking user account after bad logins (Bug #14467).
[mjr] Add support for EAS 16 draft email sync.
[jan] Allow administrators to log in if preference backend is not available.
[mjr] Log message headers on error when sending email via ActiveSync.
[jan] Fix warning if an old locale is longer than 255 characters (Bug #14489).
[jan] Fix abbreviated Norwegian month names in JavaScript to include trailing
      dot (Bug #14488).
[jan] Fix reading session data from the command line with PHP 7.
[mjr] Prevent building invalid HTML when building an email from a SMART_REPLY
      (Bug #14500).
[mjr] Improve handling of certain ActiveSync failures.
[jan] Fix parsing abbreviated Norwegian month names too (Bug #14503).
[mjr] Fix Google Map API warnings (Bug #14525,
[jan] Catch errors from NoSQL preference backend.
[jan] Make 'hostspec' parameter for MongoDB configuration optional
      again on PHP 7.
[jan] Fix session preference driver.
[jan] Don't pollute DB DSN with unknown parameters when using Cyrsql
      authentication driver.
[mjr] Refresh mailbox list when retrieving for ActiveSync.
[mjr] Add support for a activesync_mailboxlist hook.
[jan] Don't show apps with 'admin' status in menu (Bug #14526).

[mjr] Ensure version information is output in ASCII armored output.
[jan] Fix parsing inline signed PGP messages with PHP 7+ (Bug #14352).
[jan] Fix label for S/MIME Encrypted Key Usage attribute.

[jan] Fix some PHP 7.2 issues.

[jan] Fix parsing GETACL responses from RFC 4314 capable IMAP servers (Bug
[mjr] Fix failed connections when using unix sockets (Thomas Jarosch
[mjr] Fix command syntax for CREATE-SPECIAL-USE support.

[mjr] Fix regression caused by incorrect fix and test for Bug #14456 (Bug

[jan] Update country list.

[jan] Avoid notice if packing an invalid UTF-8 string (Bug #14522).

[mjr] Replace defunct data source for surface station data (Bug #14502).
[mjr] Create standalone CLI script for generation of metar station data.
[mjr] Improve metar table creation performance.

[jan] Use more efficient database access in SQL backend.


Horde Changes
[jan] SECURITY: Add CSRF protection tokens to portal layout forms (Reported by
      Florian Köllich <>).
[jan] Fix double loading of hooks.php.

Address Book Changes
[mjr] Fix synchronizing email fields in certain cases (Bug #14301).
[jan] Continue removing user data if a source doesn't have an __owner field.
[mjr] Fix over-agressive filtering of search results when searching via the API
      (Bug #13945).

Calendar Changes
[mjr] Fix potential memory issue with really long events (Bug #14453).
[mjr] Fix setting DELETE permissions (Bug #14447).
[mjr] More fixes and improvements related to preventing empty date values.
[jan] Fix losing shared users when adding invalid user name (Bug #14415).
[mjr] Fix displaying tag search results (Bug #14412).
[jan] Fix sender of event change notification messages.

Tasks Changes
[mjr] Fix sorting recurring tasks by due date (Bug #14403).

Library Changes
[jan] Use more efficient database access in SQL backends.
[jan] Run Memcache tests on PHP 7 too.

[jan] Add searchUsers() method.

[jan] Run Mongo tests on PHP 7 too.

[jan] Improve PHP 7.1 compatibility.

[jan] SECURITY: Add CSRF protection tokens to portal layout forms and fix open
      URL redirection (Reported by Florian Köllich
[jan] SECURITY: enable CSRF token for configuration form again (Reported by
      Dawid Gounski via Beyond Security's SecuriTeam Secure Disclosure
[mjr] Changes to support EAS attachment sync support for Appointment objects.
[mjr] Refactor ajax weather location autocompleter and add support for metar
[jan] Allow to specify user DN search parameters for LDAP with all bind methods
      (Request #11697,
[jan] Allow to use the pretty autocompleter without Ajax requests.
[mjr] Allow adding CSS files with Ajax response.
[mjr] Use syntaxhighlighter version 4.
[jan] Fix issue with prototype.js that keeps images in HTML messages from

[jan] Support PHP 7.1 with deprecated mcrypt extension.

[jan] Drop ereg_replace() usage (Remi Collet <>).

[jan] Make sure to return NULL values in result sets from Oracle.
[jan] Fix failing transactions if retrieving last INSERT ID from PostgreSQL
      fails on PHP 7.2.

[jan] Catch errors when checking one-time form tokens.

[jan] Fix Redis tests.

[jan] Fix parsing GPS exif data of a certain format.

[jan] Optimize deleting or moving a large number of messages.

[jan] Drop split() usage (Remi Collet <>).

[jan] Fix loading of Auth_SASL class (Ralf Becker

[jan] Fix setting compression threshold when using the memcache extension (Bug

[mjr] Fix parsing headers containing MIME encoded email addresses (Bug #14456).

[jan] SECURITY: Don't render SVG images in the browser to avoid XSS attacks
      (Reported by Dawid Gounski via Beyond Security's SecuriTeam Secure
      Disclosure program).
[mjr] Add SyntaxHighlighter version 4 support.

[jan] Support mongodb extension too (Remi Collet <>).

[jan] Fix and optimize removing preferences for a single application.
[jan] Add Horde_Prefs::removeAll().

[jan] Fix deleting retrieved tasks from SQL storage.

[jan] Add Horde_Rdo_Base#toArray() (Neal Thomas Oakey <>).
[jan] Make the JOIN type settable by mapper relationships (Neal Thomas Oakey

[mjr] Add support for METAR/TAF weather sources.

[jan] Fix tests for PHP 7.1.
[jan] Add Mongo test.

[jan] Update to PHPUnit 4.8.26 and dependencies.

[jan] SECURITY: Fix XSS via data:text/html content of form action and xlink
      attributes (Reported by Liuzhu <>).


[jan] Update Portuguese translation.
[jan] Update Basque translation.

Address Book Changes
[mjr] Fix searching via the API when specifying fields and not specifying
[mjr] Require Horde_Perms::DELETE for including an address book  as sync-able.

Calendar Changes
[mjr] Fix issue where it is possible to save an event with an empty start or
      end date on some browsers.
[mjr] Require Horde_Perms::DELETE for including a calendar as sync-able.
[mjr] Fix end date when toggling an all day event off (Bug #13979).
[jan] Fix showing error message if loading of remote calendars failed.

Tasks Changes
[mjr] Fix handling of start and due dates when syncing via EAS.
[jan] Avoid fatal errors if tasks don't have a UID.
[mjr] Fix parsing certain date formats (Bug #14348).
[jan] Fix deleteing alarms when completing a task.
[mjr] Require Horde_Perms::DELETE for including a tasklist as sync-able.

Notes Changes
[mjr] Require Horde_Perms::DELETE for including a notebook as sync-able.

Bookmarks Changes
[mjr] Honor ['content_index']['enabled'] setting (Bug #14345).

Library Changes
[mjr] Fix PHP error when handling a STATUS_FOLDERSYNC_REQUIRED.
[mjr] Protect against colliding synckeys.
[mjr] Support TLS encryption setting in Outlook autodiscovery responses.
[mjr] Fix mirroring client changes back to the client (Bug #14354).
[mjr] Fix iOS version detection for some iOS devices.
[mjr] Work around broken iOS behavior of sending empty POOMCONTACTS:Picture
      tags (Bug #14361).
[mjr] Improve performance in certain cases by updating collection syncstamps
      (Ticket #14368).
[mjr] Fix normalizing POOMCONTACTS:Birthday and other date fields for the
      "Nine" client.
[mjr] Honor the LOG_DETAILED debug log setting even when data is contained in a
[mjr] Birthday workaround fixes for BB10 (Bug #14375).
[mjr] Sanity check envelope date (Ticket #14381).
[mjr] Prevent sending empty message objects.
[mjr] Improved handling of task dates.
[mjr] Fix fatal error when handling email errors due to a typo (Bug #14398).

[jan] Update to PHP-CSS-Parser 7.0.3.

[mjr] Improve EAS logging when sending email messages.
[jan] Fix specifying custom log template (Viktor Szépe <>).
[jan] Upgrade prototype.js to version 1.7.3.
[jan] Pre-select the current locale when building the spellchecker languages
      (Request #14244).
[jan] Fix pre-selecting an item in key-navigation-lists.
[jan] Add classes to support the Horde 6 davusername hook.
[jan] Fix session_regenerate_id() warnings with PHP 7.
[jan] Fix running garbage collection on cached CSS and JS files (Bug #14285).

[jan] Add old Olson timezone names as aliases.

[jan] Drop ereg_replace() usage (Remi Collet <>).
[mjr] Fix setting Oracle charset in certain cases.

[mjr] Fix handling of incomplete date arrays (Neal Thomas Oakey
[mjr] Fix bug when using multiple sections (Neal Thomas Oakey

[jan] Fix tests.

[jan] Support HTTP PECL extension version 3.x.

[mjr] Add sanity check for malformed offset in Date header (Bug #14381).
[mjr] Fix fatal error in certain cases when performing a BODY[HEADER.FIELDS]
[jan] Avoid notice with Horde_Mongo on PHP 7.
[mjr] Catch incorrectly localized Date headers.

[jan] Drop split() usage (Remi Collet <>).

[jan] Avoid notice with Horde_Mongo on PHP 7.

[jan] Fix locking.
[jan] Add support for memcached extension and PHP 7.

[mjr] Add sanity check for malformed offset in Date header (Bug #14381).
[jan] Add Horde_Mime_Part#isAttachment().
[mjr] Add workaround for failures due to sending broken rfc822/message
      attachments (Bug #14324).
[mjr] Catch incorrectly localized Date headers.

[mjr] Fix fatal error related to setting timezone in WWO driver (Bug #14289).
[jan] Fix translations of weather alert types and significances.
[jan] Calculate time of last condition update more precisely.

[mjr] Fix handling of text/clob fields (Bug #14357).

[jan] Update bundled code from github.

[mjr] Fix detecting certain types of broken UTF-8 strings.

[jan] Fix creating the vfsroot when using paths in the 'hostspec' parameter of
      the Smb driver.
[jan] Don't change directory when listing folders in File backend.
[jan] Allow to specify root folder ('/') as 'vfsroot' parameter.


[jan] Update Greek translation (Limperis Antonis <>).

Address Book Changes
[mjr] Fix persisting tags when moving or copying a contact to another address
      book (Bug #14312).
[mjr] Fix resetting state when changing sync_book prefs and device has forced
[mjr] Fix synchronizing contact notes via ActiveSync when no truncation value
      is requested by the client (Bug #14307).

Tasks Changes
[jan] Fix regression with date picker in tasks form (Bug #14303).
[mjr] Fix handling EAS categories/tags.

Library Changes
[mjr] Improve handling of when a client sends an incorrect synckey.

[mjr] Fix creating/removing mailbox in cyrsql driver
      (, Bug #14295).

[jan] Work around broken PGP key servers.

[jan] Update to PHP-CSS-Parser 7.0.2 (Request #14297).

[jan] Fix down migration of database schema.

[jan] Add a few common aliases for the log level constants.
[jan] Allow to have mltiple log level names with the same value.

[jan] Add Horde_Nls::getTimezonesWithAbbreviations().


[jan] Update Greek translation (Limperis Antonis <>).

Horde Changes
[mjr] Remove broken Facebook posting functionality from the Facebook block.
[jan] Check if temporary directory is writable
      (, Request #14237).

Address Book Changes
[mjr] Honor alternative_name mapping (Bug #14280).
[mjr] Fix dealing with orphaned virtual address books.

Calendar Changes
[mjr] Fix updating list of resource calendars in resource group dialog (Bug
[jan] Fixed several issues with resource management.
[mjr] Fix typo preventing deletion of events from dynamic view (Bug #14256).
[jan] Handle gracefully if the base event of an imported recurrence exception
      is no longer recurring (Bug #14249).
[mjr] Fix issue deleting and closing event dialog during event deletion.
[mjr] Honor the SCHEDULE-AGENT attribute during CalDAV import.
[mjr] Add missing EAS ghosted property support for all EAS versions. Prevents
      potential loss of event data during synchronization.

Tasks Changes
[mjr] Honor date_format prefs in Task form (Bug #14287).

Bookmarks Changes
[cjh] Fix error when deleting bookmarks.

Library Changes
[jan] Mark PHP 7 as supported.

[mjr] Fix possible leaking of Horde_Imap_Client Exceptions.
[mjr] Fix reversed login in GHOSTED element handling.
[mjr] Changes for EAS 16.0 support.
[mjr] Fix error when attempting to rewrite previous syncstate.
[mjr] Another fix for GHOSTED support on certain clients.
[mjr] Fix regression in handling all day events in EAS versions prior to 16.0.
[mjr] Fix undefined variable notices (Bug #14251).
[mjr] Fix WBXML output when allday event exceptions have no starttime set (Bug
[mjr] Fix calculation of when to send MOREAVAILABLE tag.
[mjr] More fixes for allday exception events (Bug #14255).
[mjr] Improvements to ActiveSync SETTINGS_ACCOUNTS response data.
[mjr] Prevent mirroring back email category changes.
[mjr] Fix the workaround for some versions of Outlook's broken behavior
      regarding moving email messages.
[mjr] Improve allday event handling in appointment objects (Bug #14278).
[mjr] Work around BC break in PHP 5.5.10 with converting timezone abbreviations
      to full timezone names.

[jan] Fix incomplete migration from old to new garbage collection in file
      backend (Bug #14258).

[mjr] Improvements to GHOSTED/SUPPORTED handling for ActiveSync.
[mjr] Do not throw a fatal error if a meeting request can not be deleted after
      responding to it.
[mjr] Changes for EAS 16.0 support.
[mjr] Honor the disabled property when rendering boolean form types.
[jan] Fix returning to last page after problem reporting from AJAX pages (Bug
[jan] Fix updating group cache with LDAP backend.
[jan] Horde_Registry_Nlsconfig#validLang() checks now if a locale is installed
      (Request #10457).
[jan] Add option to always lowercase user names after logging in.
[mjr] Improvements to ActiveSync SETTINGS_ACCOUNTS response data.
[mjr] Fix issues with ActiveSync clients and user defined message flags.
[jan] Fix logging in from a different page than the login page (Bug #14231).
[jan] Add Horde_Core_Auth_Application#listNames().
[jan] Don't call authusername() hook on administrator names when running CLI
[mjr] Fix fatal error with broken EAS clients searching the Outbox.

[jan] Try three times to retrieve public PGP if the keyserver pool contains
      broken servers.
[jan] Fix throwing exception if verifying a PGP signature failed.

[jan] Add Horde_Date::getTimezoneAlias().

[mjr] Fixes for PHP 7.1.

[jan] Fix compression with Closure.

[jan] Fix usage of 'tlsv1' connection setting (Ralf Becker
[jan] Fix setting authentication credentials from login() (Ralf Becker
[jan] Fix throwing exceptions (Ralf Becker <>).

[jan] Bump earliest supported PostgreSQL version to 8.3.
[jan] Improve getting tables and indexes from PostgreSQL servers (Ivan Sergio
      Borgonovo <>).

[mjr] Allow non-breaking space to match in a telephone field (Request #14235).

[mjr] Work around BC break in PHP 5.5.10 with converting timezone abbreviations
      to full timezone names.

[jan] Add temp_dir configuration parameter to OpenOffice/LibreOffice viewer
      (Request #11756).

[jan] Protect against certain share tables corruption (Bug #14259).

[jan] Support more timezone names in Horde_Timezone#getZone().


[jan] Use access rules compatible with both Apache 2.2 and 2.4.

Horde Changes
[jan] SECURITY: Fix XSS vulnerability in menu bar exposed by few applications
      (Bug #14213).
[jan] Add more detailed user DN settings to Kolab group configuration (Request
[jan] Fix returning to last page after problem reporting from AJAX pages (Bug
[jan] Fix custom database configuration for groups (Bug #11664).
[mjr] Fix reporting results for non-select queries in administrative sql shell
      (Bug #14216).

Address Book Changes
[jan] Fix building search query if some fields are set for strict search (Bug
[mjr] Fix splitting tags over ActiveSync (Bug #14218).
[mjr] Fix searching within virtual address books (Bug #14155).
[mjr] Fix import of vCard with single component via API.
[mjr] Fix regression in removing all contacts from a single address book in the
      SQL driver (Bug #14145, Guenter Bartsch

Calendar Changes
[mjr] Fix missing truncated event description when using ActiveSync.
[jan] Fix week number in basic view if week starts on Sundays.
[mjr] Fix issue where new event could be created with exceptions from
      previously edited event.
[jan] Mark preferences only available in basic mode.
[jan] Fix accidental deletion of events if importing recurring events without a
      UID attribute (Bug #14208).
[mjr] Honor confirm_delete preference in dynamic view (Bug #14188).
[mjr] Correctly deal with cancelled meetings via ActiveSync.
[mjr] Fix visibility of alarm titles when alarm is generated via CLI (Bug
[mjr] Fix display of embed code by adding the full url.

Tasks Changes
[mjr] Enforce child tasks must be completed before parent tasks in edit form
      (Bug #12308).
[mjr] Fix possible fatal error due to tasks created with an alarm but no due
      date (Bug #14214).
[mjr] Fix storage of parent field when using Kolab driver (Bug #14197,
[mjr] Fix switching tab/filters when using Kolab driver (Bug #14196,
[mjr] Fix moving subtasks to another tasklist when parent task is moved (Bug
[mjr] Fix fatal error when saving tasks when system shares are present in
      certain cases.
[mjr] Return recurring tasks via listTimeObjects API (Bug #14137).
[mjr] Prevent orphaning tasks via the API.

Notes Changes
[mjr] Fix fatal error when removing notepads in certain cases.

File Manager Changes
[jan] Fix fatal error when cutting and pasting files on the same backend.

Bookmarks Changes
[mjr] Fix tag links when tags contain URL special characters.

Timeobject Changes
[jan] Add Italian translation (Massimo Balestrieri <>).

Library Changes
[jan] Improve Oracle compatibility.

[mjr] Fix RECUR_YEARLY_DAY recurrences showing up every day.
[mjr] Fix regression introduced by checking device remote wipe during PING
[mjr] Fix mailbox searches with non 7-bit characters.
[mjr] Allow global request window size limit to be overridden.
[mjr] Fix issue where global request window size was being reached prematurely.
[mjr] Fix potential fatal error due to incorrect exception name.
[mjr] Fix issue that prevents new device being added if an entry exists in the
      device user table but not the device table (Bug #14147).
[mjr] OL2016 added to device multiplex settings.
[mjr] Improved workaround for clients with broken picture tag handling.

[mjr] Don't set the empty_file_input_value quirk for recent Safari versions
      (Bug #14207).

[jan] Improve performance and memory consumption of garbage collection in File
[jan] Fix garbage collection in File driver.
[jan] Fix caching issues within the same request in the Memcache driver.
[jan] Fix the Mongo driver's expire() if not using a logger.
[jan] Add unit tests.

[mjr] SECURITY: Fix XSS in Horde_Core_VarRenderer_Html (reported by Centurion
      Information Security <>).
[jan] Pass Horde_Cache to Horde_Group if group caching enabled.
[mjr] Fix handling of empty tags strings in certain use cases (Bug #14203).
[mjr] Fix fatal error when using count_bad_logins in SQL auth driver.
[mjr] Support sending MDN via ActiveSync (Request #23080).
[mjr] Fix issue with synchronizing IMAP folder names that contain only numbers.
[mjr] Small logging improvements for ActiveSync.
[mjr] Match various session parameters in the NULL driver.

[jan] Add Horde_Crypt_Pgp::pgpPacketInformationMultiple() and
      Horde_Crypt_Pgp_Backend_Binary::packetInfoMultiple() (Request #13190).
[jan] Fix retrieving PGP keys from the keyserver with certain HTTP client
[jan] Fix creating PGP keys with comments (Bug #14125).

[mjr] Add Horde_Date_Recurrence::isEqual().

[jan] Bump earliest supported PostgreSQL version to 8.3.
[jan] Improve getting tables and indexes from PostgreSQL servers (Ivan Sergio
      Borgonovo <>).
[mjr] Fix SQL error when setting blob fields to empty in oracle driver (Bug
[jan] Add 'status' argument to horde-db-migrate-component (Nicolas Rochelemagne

[jan] Fix field types being overwritten in certain cases.
[jan] Allow any empty format specifiers for the monthdayyear field (Bug #14130).

[jan] Add caching support.

[jan] Fix disabling SSL certificate hostname check (Thomas Jarosch
      <>, Bug #12929).

[mjr] Fix cases where incorrect transition times were being returned (Bug

[jan] Don't try LOGIN authentication over secure connections if explicitly
[mjr] Fix fatal error during shutdown due to incorrect exception name.
[jan] Fix broken ID requests under certain circumstances.
[jan] Fix parsing IMAP responses with tilde characters.

[mjr] Fix decoding base64 encoded Kolab objects (Bug #14199,
[mjr] Fix updating Kolab data that contains non 7-bit data (Bug #14201).
[mjr] Implement a token based syncronization strategy for servers with
      QRESYNC/MODSEQ support.
[mjr] Improve debug logging.
[mjr] Add full Horde_History support for better Kolab<->Horde<->Sync client

[jan] Add temp_dir configuration parameter to OpenOffice/LibreOffice viewer
      (Request #11756).

[mjr] Use NULL instead of an empty string in the perms_parents field for root

[jan] Catch Horde_Date exceptions and try harder to provide dates for weather
[jan] Fix undefined variable warnings.

[jan] Fix updating large files in Oracle backends.
[jan] Fix writing big session data to Oracle (Bug #14175).

[jan] Enable TLS 1.1 and 1.2 connections (Request #14190).

[jan] Split large objects into multiple messages (, Request
[jan] Remove workarounds for ancient Synthesis clients (Bug #10942).

[jan] Add Horde_Test_Stub_Registry#setConfigFile() to provide pre-configured
      Horde_Test_Stub_Registry_Loadconfig objects.

[mjr] Fix generation of broken VTIMEZONE components for certain Rules (Bug


[jan] Update Italian translation.
[mjr] Remove object reference from Content when object is deleted (Bug #14112).
[mjr] Remove tags from Content when tagged object is deleted (Bug #14112).

Horde Changes
[mjr] SECURITY: Protect against CSRF attacks on various admin pages.
[jan] Don't apply access keys to checkbox and radiobox rows in the sidebar
      (Bug #14103).
[jan] Send correct MIME type for non-statically cached javascript files.
[mjr] Added configuration support for version 2 of WorldWeatherOnline's API.

Address Book Changes
[mjr] Better prevention of importing duplicate contacts with same email
      addresses via the API (Bug #14119).
[mjr] Allow API to search all email type fields when calling getField().
[mjr] Fix removing all contacts owned by a specific user.
[jan] Fix inserting and updating photos with Oracle backends.
[mjr] Fix incorrectly populating email field when importing vCard (Bug #14046).

Calendar Changes
[mjr] Fix issue when replacing an event via the API when the attendee list
[mjr] Fix exporting events from Horde_Perms::SHOW calendars over DAV (Bug
[mjr] Send CANCEL iTip when attendee is removed from a meeting (Request
[mjr] Fix incorrect offset of freebusy times in certain cases (Bug #14084).
[mjr] Fix handling of email groups as attendees (Bug #14093).
[mjr] Fix importing text/calendar data via API (Bug #14089).

Library Changes
[jan] Catch possible exceptions in shutdown methods.

[mjr] Fix issue in sending email from client due to input stream not being
      seekable on some systems (Bug #13160).
[mjr] Work around bug in early versions of iOS that could cause a contact's
      picture to be removed on the server.
[mjr] Improved client and version detection, especially for iOS devices.
[mjr] Fixed bug that was causing SUPPORTED data to be overwritten.
[mjr] Change some ERR log level entries to WARN and some other small logging
[mjr] Don't take sub-parts of rfc822/message parts as attachments.
[mjr] Fix handling of meeting requests that contain no DTEND attribute.
[mjr] Fix parsing of SETTINGS request that was causing a harmless WBXML parsing
[mjr] Explicitly request a FOLDERSYNC when backend id is not found.
[mjr] Fix corruption of base64 encoded text parts in certain cases (Bug #14092).
[mjr] Work around bug in various versions of PHP 5.5 and 5.6 regarding
      base64-encode stream filters (Bug #14086).
[mjr] Fix issue where incorrect text/html part is choosen as the main body part.

[mjr] Fix ajax updating of Weather block when weather map is shown.
[mjr] Fix detecting an application's ability to send Horde_Alarm notifications
      (Bug #14098).
[mjr] ActiveSync logging improvements.
[mjr] Add support for OpenWeatherMap layers in Horde_Map.
[mjr] Fix edge-case issue with ActiveSync folder list generation when installed
      application contains no user writable sources.
[mjr] Fix dependency on possibly missing Horde_Kolab_Storage_HistoryPrefix
      interface (Bug #14099).
[mjr] Add beforeUpdate callback to prettyautocompleter.js.
[mjr] Support configuration for version 2 of WorldWeatherOnline's API.

[mjr] Fix PHP 5.3 incompatibility (Bug #14090).

[cjh] Fix EXIF data not being returned in Bundled driver.

[mjr] Avoid PHP warning when listing mailboxes without LIST-STATUS (Bug #14097).
[mms] Improved performance of Horde_Imap_Client_Data_Thread object when
      containing large number of messages (Request #14075).
[mms] Catch translation errors when creating Exceptions (PR #143;

[mjr] Correctly work around PHP bug 65776.

[jan] Add ALPHA-3 country codes.

[jan] Do not silent the potentially fatal require_once.

[mjr] Avoid some PHP warnings.

[jan] Remove unnecessary include.

[mjr] Add support for OpenWeatherMap API.
[mjr] Add support for radar maps if provider provides them.
[mjr] Add support for weather alerts.
[mjr] Update WWO to support the v2 API (Request #14094).

[jan] Test environment improvements.


File Manager Changes
[mjr] SECURITY: Fix XSS vulnerability when viewing directory contents
      (Discovered by


[mjr] Bundle release to fix version numbers in package file.


[jan] Update Czech translation.
[jan] Update Italian translation.
[jan] Update German translation.
[jan] Update Hungarian translation.

Horde Changes
[mjr] Don't create a session for Webdav requests (Bug #14040).
[jan] Mark PHP 5.6 as officially supported.
[mjr] Fix some issues with the permission interface when a value of 0 is a
      valid permission value (Bug #14025).

Address Book Changes
[mjr] Fix issue where sidebar links point to incorrect address book.

Calendar Changes
[mjr] Fix enabling deletion of resources for non-admin users (Bug #14069).
[mjr] Honor workweek view as the login_view (Bug #14042).
[mjr] Fix Permission Denied error after removing a currently displayed
      timeObject (Bug #14022).
[jan] Enable purge calendar checkbox if user has delete permissions.
[mjr] Honor locking the remote_cals preference.
[mjr] Fix detecting duplicate events during import via the API (Bug #14018).

Notes Changes
[mjr] Fix inconsistent handling of incoming HTML notes from ActiveSync clients
      (Bug #14045).
[mjr] Allow more reasonable length of description field to interop better with
      synchronized clients (Bug #14041).

Bookmarks Changes
[mjr] Fix shebang (after install) for trean scripts (Remi Collet
[mjr] Use the favicon when returning tag search results via the API if

Library Changes
[jan] Update Galician translation.
[jan] Update Ukrainian translation.
[jan] Fix Composer files.

[mjr] Fix display of certain Multipart/Report messages, on certain clients.
[mjr] Improve handling of authentication/policy errors.
[mjr] Fix renaming email folder when using PostgreSQL state storage (Bug

[jan] SECURITY: Don't allow to login to LDAP with an emtpy password.
[mjr] Ensure we rebind as configured user after testing auth user credentials.

[jan] SECURITY: Don't allow to login with an empty password.
[mjr] Map Kolab distribution-list items to the contacts API (Bug #14038).
[mjr] Prevent various broken behaviors on ActiveSync clients due to errors
      copying an email to sent mail folder or updating the maillog (Bug
[jan] Give administrators access to all groups, even with
      $conf['share']['any_group'] disabled.

[jan] Fix issues with certain locales like Turkish.
[mms] Split gnupg command-line binary specific code out into a separate PGP
      backend driver.
[mms] S/MIME encryption is now done only with AES (if using PHP 5.4+) or 3DES.

[jan] Prevent segfault due to non-ascii characters on some systems.
[jan] Fix PHP7 error because of reserved "String".

[jan] SECURITY: Fixed XSS in form renderer.
[mjr] Prevent empty email addresses from being detected as a valid "multiple"
      email (Bug #14063).

[jan] Improve performance of database migration.

[jan] Fix generated VALARM TRIGGER attributes with empty duration (Ralf Becker

[mms] Ensure FETCH stream data is rewound before returning (Bug #14013).
[mjr] Fix detecting empty ID queries (Bug #14044).

[mms] Fix validating sent messages if the driver supports EAI addresses.
[mjr] Fix sending mail via PHP's mail function (Steffen Lindner

[mjr] Fix issues when a value of 0 is a valid value for the permission (Bug

[mjr] Send more appropriate HTTP status codes on ActiveSync authentication

[jan] Fix test that could fail due to changes in glibc.

[jan] Make 'port' parameter of Smb driver optional.
[jan] Add 'domain' parameter to Smb driver.
[jan] Allow to specify a fixed leading directory in Smb driver.


Horde Changes
[jan] Use Horde_Ldap in example preference hooks.
[jan] Convert REDIRECT_HTTP_AUTHORIZATION to HTTP authentication headers too.
[jan] Display MOTD on mobile login screen.

Address Book Changes
[jan] Fix error when removing user data.

Calendar Changes
[jan] Don't delete existing exceptions and completions when editing recurring
      events or tasks.
[jan] Fix importing iCalendar events via the API (Bug #13975).

Tasks Changes
[jan] Fix positioning of dialog windows.
[jan] Don't delete existing completions when editing a recurring task.
[jan] Only delete the last completion when toggling a recurring task to

Library Changes
[mjr] Reduce memory usage during IMAP FETCH with very large mailboxes.
[mjr] Workaround broken CGI behavior of sending incorrect authentication
[mjr] Fix issues with detecting changes in FILTERTYPE.
[mjr] Performance improvements during IMAP server change detection for
      CONDSTORE servers, especially during FILTERTYPE changes.
[mjr] Fix issue when using REPLACEMIME feature of SENDMAIL and some other edge
      cases (Bug #13901).
[mjr] Fix off by one error that could cause some errors in downstream client
[mjr] Fix detecting changes in email message "Flag" sent from certain clients.
[mjr] Fix regression causing useless backend query.
[mjr] Fix bug causing changes to be sent as new messages, thus causing them to
      be ignored by most clients.
[mjr] Fix sending SMIME signed/encrypted mail when using streams.
[mjr] Fix regression that could cause loss of mailbox sync.
[mjr] Fix issue that could cause sending the same email to the client multiple
      times (Bug #13985).
[mjr] Performance and memory improvements, especially during initial sync to
      Outlook clients.

[mjr] Fix typo that was causing ActiveSync FILTERTYPE changes to go undetected.
[mjr] Support for Horde_History in Horde_Kolab_Storage. Requires
      Horde_Kolab_Storage 2.2.0+.
[jan] Don't allow empty From: addresses if verifying identities.
[mjr] Fix fatal error when disconnecting a user Twitter account.
[mjr] Work around broken ActiveSync clients that send incorrect line lengths
      for text/html parts (Bug #13901).
[mjr] Fix issue causing message text from email forwarded from ActiveSync
      clients to be missing (Bug #14000).
[mjr] Fix duplicate attachments in certain messages that were forwarded by
      ActiveSync clients.
[mjr] Fix issue that could cause sending the same email to an ActiveSync client
      multiple times (Bug #13985).
[mjr] Performance and memory improvements to ActiveSync.

[mms] Add Horde_Crypt_Blowfish_Pbkdf2.

[jan] Support monthly recurrence by last weekday (Request #1922).
[jan] Support negative occurrences in Horde_Date#setNthWeekday().
[jan] Add Galician translation.

[mms] Add Horde_Icalendar#getAttributeSingle().

[mjr] Fix detecting changes when using tokens.
[mms] Add support for SCRAM-SHA-1 authentication (RFC 5802) for both IMAP and
      POP3 drivers.
[mms] Directly store literal data in a separate stream when parsing IMAP
      tokens, so we don't have to duplicate the stream later when processing it.
[mms] Don't load literal IMAP data into a string variable when tokenizing IMAP
[mms] Fix search queries where ID list given is explicitly empty, indicating
      that a match can never be successful (Bug #13971).
[mms] Fix expunging in certain cases when UIDPLUS is not available (Bug #13970;
      Robin McCorkell <>).

[mms] Correctly output MIME headers when generating multipart/digest parts (RFC
      2047 [5.1.5]).

[mjr] Remove obsolete end_session endpoint.

[jan] Fix returning user and group permissions for system shares using the
      SQLNG driver.

[mms] Fix some autoloading issues.


Horde Changes
[jan] SECURITY: Fix XSS vulnerability in group administration.
[mjr] Fix display of Facebook block by removing no longer allowed notification

Address Book Changes
[jan] Don't try to load Content application if tags are disabled.
[mjr] Fix adding tags to new contacts (Bug #13884).
[jan] Fix waiting for replication on LDAP backend.

Calendar Changes
[jan] Fix building recipient list for event update notifications.
[mjr] Honor background color for listTimeObjects API calendars (Bug #13951).
[jan] Always sort users in advanced sharing dialog (Bug #13938).
[mjr] Fix saving recurring event after a change in resources (Bug #13921).
[mjr] Fix creating recurrence exceptions from CalDAV clients.
[jan] Added an index to find base events of recurrence exceptions faster.
[jan] Fix finding duplicate events by UID.
[mjr] Fix updating FB data when start date changes.
[mjr] Fix detecting attendees when email address is not lowercase (Bug #13905).
[jan] Fix duplicate group names in sharing dialog.
[jan] Fix JavaScript error when saving an unselected calendar.
[mjr] Fix using custom SQL configuration parameters.

Notes Changes
[mjr] Fix using custom SQL configuration parameters.

Library Changes
[jan] Fix issues with certain locales like Turkish.

[mjr] Fix issue where badly formed emails could cause out of memory error.
[mjr] Fix issue that could break sync if a badly formed email address could not
      be parsed.
[mjr] Fix PARTIAL SYNC handling when no COLLECTIONS are provided (Bug #13912).
[mjr] Detect stock Android 5.0 multiplex settings.
[mjr] Fix broken sync due to clients that send badly formatted date strings.
[mjr] Fix fatal error when dealing with iTip replies from vTodo requests.
[mjr] Return email search results in descending order by arrival date.
[mjr] Add HTCOne Mini to device detection and set multiplex ability
[mjr] Fix handling of PARTIAL and EMPTY sync requests in certain cases (Bug

[jan] Improve salt generation for Blowfish hashes.

[jan] Fix fatal error due to incorrect class name case (Ralph Becker
[mms] Fix leaking Horde_Date exceptions.
[mjr] Improve detection of ORGANIZER when decoding MAPI encoded vTODOs.
[mms] Fix decoding of Unicode Strings in TNEF MAPI attributes.
[mjr] Fix possible fatal error when parsing certain types of Vtodo files.
[mjr] Add support for generating vTodo from TNEF embedded MAPI TASK objects.
[mjr] Add option to inject a logger object.
[mjr] Improve support for decompressing TNEF data.

[jan] Upgrade prototype.js to version 1.7.2.
[jan] Fix editing existing LDAP timeout configuration (Bug #13949).
[mms] Fix regression in removing CBC cipher mode when encrypting data within a
      session (Bug #13869).
[mjr] Fix combination X509 and http plain authentication with ActiveSync.
[jan] Revert to using ECB mode for encryption, to not break existing
      credentials (Bug #13869).
[mjr] Fix replying to email from search results in some broken ActiveSync
      clients (Bug #13878).
[jan] Fix propagating the LDAP hostspec configuration field (Bug #13872).

[jan] Add schema definition for LDAP groups.
[jan] Don't throw exception from listUsers() if group not found in LDAP
      directory (Bug #13879).

[jan] Fix setting key prefixes.

[jan] Make cached entries available to garbage collection.

[jan] Allow to pass Horde_Url objects as URI (Bug #13897).
[jan] Make Horde_Http_Base_Response::headers array keys lowercase again (Bug
[jan] Fix return code from multi-request actions in Peclhttp2 driver.

[mms] Use intl extension, if installed, and fallback to a locally-patched
      version of the true/php-punycode package.

[jan] Fix transparent rectangles in SVG backend.
[jan] Fix setting background color in SVG backend.
[jan] Add 'ratio' parameter to Horde_Image_Effect_Imagick_LiquidResize.
[jan] Fix catching exceptions from imagick extension.
[jan] Complete the backends' capabilities properties.
[jan] Fix SVG and SWF backends.
[jan] Fix setting background color in Horde_Image_Swf constructor.
[jan] Send Content-Type header in Horde_Image_Svg#display().
[jan] Improve arc rendering with Im backend.
[jan] Enable antialiasing in GD backend if available.
[jan] Implement Horde_Image_Imagick::arc().
[jan] Fix rounded rectangle drawing with GD backend.
[jan] Fix transparency issues with GD backend.
[jan] Fix autoloading of effect classes.
[jan] Fix border effect with GD driver.
[jan] Don't error out in effects if a logger hasn't been set.
[jan] Make getImageAtIndex() always return an image.
[jan] Don't error our when calling unsupported manipulation methods.
[jan] Make Horde_Image::arcPoints() work with any angles.
[jan] Fix some HTML color name to RGB value mappings.
[jan] Add Horde_Image_Rgb class and remove $horde_image_rgb_colors global.
[jan] Add Null driver for basics like just displaying the image.
[mjr] Fix incorrect color renderings in certain situations.

[mms] Fix parsing mailbox name from STATUS response on servers that have the
      UTF8 extension enabled.
[jan] Fix searching with non-ASCII strings in AND/OR-combined searches.
[jan] Fix issues with certain locales like Turkish.
[mms] Pipeline ID command with other commands, if possible.
[jan] Add parameter for stream context settings (Request #13730).

[mjr] Add support for iTip responses to vTodo requests.

[jan] Fix deleting object attachments from cache (Bug #13268).

[jan] Fix connection if using ldaps:// scheme (Bug #13858).

[mms] Add support for outputting comment information when writing an address.

[mjr] Remove bcmath extension requirement and add PEAR Math_BigInteger package
      in it's place.

[mms] Fix rare errors when multiple iterations are occurring on the same set of
      MIME parts.
[mms] Fix indexing MIME part when base is a multipart object.
[mms] Ignore broken headers when parsing header text.
[mms] Subpart manipulation should now be done via array access.
[mms] Add recurisve iteration to the Horde_Mime_Part object.
[mms] Work around broken line-oriented data when transfer encoding (Bug #13835).
[mms] Fix regression in using the deprecated Horde_Mime::generateMessageId()
      method (Bug #13846).
[mms] Add Horde_Mime_Headers_ContentId class.
[mms] Add Horde_Mime_Headers_ContentTransferEncoding class.
[mms] Added Horde_Mime_Headers_Element#isDefault().
[mms] Add interface to differentiate between MIME and non-MIME headers.
[mms] Content-Type and Content-Disposition related data is now handled
      internally in Horde_Mime_Part object by using Horde_Mime_Headers.
[mms] Added the Horde_Mime_Headers_ContentLanguage class.
[mms] Fix cloning of the Content-Type and Content-Disposition header objects.
[mms] Ensure that null bytes are filtered from MIME data that is contained in
      the headers.
[mms] Fix cloning of the Content-Type and Content-Disposition header objects.

[mms] Add optional support to determine if link text is a hostname when doing
      phishing analysis for the HTML driver.

[mjr] Fix fatal error when using pecl_http2.
[mjr] Fix possible PHP error when returning HTTP 500 response.

[mjr] Fix fatal error when using pecl_http2.

[mjr] Fix fatal error when using pecl_http (Bug #13897).

[jan] Add parameter for stream context settings (Request #13730).
[jan] Allow to pass hostname with protocol scheme prefix.
[jan] Add getStatus(), gets(), read(), and write().

[mms] Fix sending BODY keyword when debugging and SMTP server does not support
      8BITMIME extension.
[jan] Add parameter for stream context settings (Request #13730).
[jan] Fix notice if server doesn't support ENHANCEDSTATUSCODES.
[mms] Add 'localhost' parameter to Horde_Smtp (Request #13832).

[mms] Update to PHPUnit 4.5.0 and dependencies.

[mjr] Prevent malformed urls from leaking exceptions (Bug #13965).
[mjr] Fix failing tests on MacOS related to mulitbyte data contained in links.
[mjr] Add nestingLimit parameter to Html2text filter.
[jan] Add 'html' hint to Simplemarkup filter to indicate the input format.
[jan] Match simple markup spanning a complete line too.

[mms] Fix handling broken text input with all multibyte drivers.
[mms] Fix error detection when using Horde_String::substr() with mb_substr().

[jan] Fix PHP 7 compatibility (Remi Collet <>).


Horde Changes
[mms] Make dynamic context menus scrollable if taller than the browser screen
      height (Bug #13833).
[jan] Fix horde-import-squirrelmail-prefs script (Bug #13780).
[jan] Don't instantiate notification system for RPC requests.

Address Book Changes
[jan] Fix export format of tags to vCard 3.0 categories (Bug #13800).

Calendar Changes
[mjr] Fix generating calendar embed code (Bug #13828).
[jan] Don't wipe out whole calendars when PUTing individual events via WebDAV.

Tasks Changes
[jan] Don't list task lists without SHOW permissions (Bug #13837).
[jan] Use consistent checkbox.
[jan] Don't allow deletion of tasks with sub-tasks (Bug #13809).
[jan] Don't allow completion of tasks with incomplete sub-tasks and vice versa.
[jan] Don't wipe out whole task lists when PUTing individual tasks via WebDAV.

Notes Changes
[jan] Don't list notepads without SHOW permissions (Bug #13838).
[jan] Fix using custom SQL driver configuration.
[mjr] Fix truncation of body text when synchronizing over EAS when no
      truncationsize option is sent from client (Bug #13755).

Library Changes
[jan] Improve PSR-2 compatibility.

[mjr] Fix moving a mailbox to a new parent (Bug #13839).
[mjr] Always send the attachmentsenabled policy, even when it's the default
      value of 'enabled' (Bug #13827).
[mjr] Improve handling of FILTERTYPE changes after initial SYNC (Bug #13781).
[mjr] Add Date header to emails sent from broken HTC clients (Bug #13784).
[mjr] Add some more TRUNCATION related workarounds/fixes.
[mjr] Improve/fix support for handling OOF messages (Bug #13719).
[mjr] Fix incorrect converting of HTML to plaintext causing incorrect
      truncation size.
[mjr] Fix BC break due to MessageBodyData improvements (Bug #13768).
[mjr] Fix some WBXML parsing issues due to empty GET tags in SETTINGS requests.
[mjr] Correctly implement BODYPART handling (Bug #13729).
[mjr] Workaround some broken clients that send null content inside open/close
      tags instead of an empty tag (Bug #13719).
[mjr] Fix regression in detecting iTip requests (Bug #13739).
[mjr] Add support for clients that issue BODYPARTPREFERENCE options (Bug
[mjr] Fix handling POOMCALENDAR_UID values to prevent broken meeting request
[mjr] Fix handling of certain types of broken MIME messages (Bug #13728).
[mjr] Fix issue that could cause broken sync when an email contains no text
      parts (Bug #13711).

[mms] Fix fatal errors when stored alarm data cannot be unserialized.

[mms] Handle a cache miss by trying to load the class in its new location.

[mms] Add zlib driver and allow it to be considered a 'fast' compression driver
      (disabled by default).

[jan] Fix notice when deleting identities.
[jan] Fix NoSQL database name setting getting lost during configuration.
[jan] Allow to configure multiple LDAP servers and timeout value.
[mjr] Fixes for using ActiveSync without email sync enabled on Android 5
      (Niklas Forsdahl <>).
[mms] Calling an application's changeLanguage method on language change now
      handled by Horde_Registry.
[jan] Support non-ascii latin characters as access keys.
[mms] Use more secure CBC block cipher mode when storing encrypted Blowfish
      data inside the session.
[mms] If compressing/packaging javascript files, don't use pre-compressed
      version (if one exists) when generating.
[mjr] Improvements in ActiveSync to handling the case when FILTERTYPE changes
      (Bug #13781).
[mjr] Fix missing Date and From headers when saving sent mail from broken HTC
      clients (Bug #13784).
[jan] Fix user names via DAV access when using authusername hooks.
[jan] Fix updating of location in weather portal block.
[mjr] Improve/fix support for handling OOF messages in ActiveSync (Bug #13719).
[mms] Upgrade jQuery to v1.11.2.
[jan] Call preference hooks for default values of new identities.
[mms] Only load application notify handlers on demand.
[mjr] Allow disabling maillog synchronization with EAS clients (Bug #13747).
      the correct level.
[mjr] Add support for ActiveSync clients that issue BODYPARTPREFERENCE options
      (Bug #13729).

[jan] Make all PGP features locale-independent.
[mms] Fix parsing GPG packet information using the gnupg v2.1 binary.

[mms] Update PHP-CSS-Parser lib to latest dev to fix issues on PHP < 5.3.9 (Bug
[mms] Use composer to generate the distributed version of the PHP-CSS-Parser

[jan] Add unit tests for Memcache and Redis backends.

[jan] Add unit tests for PECL HTTP 1.x/2.x drivers.
[mms] Horde_Http_Base_Response#getHeader() is now case-insensitive for the
      header input (Bug #13736).

[jan] Fix install paths (Bug #13785).
[mms] Initial release.

[mjr] Improve stream handling in bundled EXIF driver (Request #13788).
[mms] Horde_Image_Exif_Bundled now supports reading data from a PHP stream,
      rather than a file.

[mms] Fix serialization of Horde_Imap_Client_Data_Fetch objects.
[mms] Workaround broken in-memory stream filter handling.
[mms] Fix handling mailbox cache data when the mailbox returns NOMODSEQ.
[mms] IMAP alerts can now be handled by registering an observer with the new
      Horde_Imap_Client_Base_Alerts object.

[mms] Silence code warnings for Closure compiler (Bug #13789).

[jan] Remove PHPUnit dependency.

[jan] Fix error when using custom separators in
[jan] Fix casefolding option not being passed to multivalued RDNs.
[jan] Fix exists() with multivalued RDNs.
[jan] Add 'timeout' parameter.

[mms] IDN support no longer requires intl to be built-in to PHP.

[mms] Fix setting a MIME part's contents when the data is the current stream
      resource of that part.
[mms] Fix MIME encoding the Content-Description header (Bug #13814).
[mms] Fix setting MIME IDs when a message/rfc822 part is the base of the part
[jan] Fix Horde_Mime::quotedPrintableEncode() (Bug #13769).
[mjr] Fix issue where long lines were not properly dealt with when binary
      transfer encoding was used (Bug #13709).
[mms] Added Horde_Mime_Filter_Encoding class.
[mms] MIME decoding uses windows-1252 charset by default when iso-8859-1 is
      identified in the MIME encoded string.
[mms] Move mime.mapping.php generation code from horde-support repository into
      doc/ directory.

[mms] Removed unused 'password' parameter.
[mms] Fix Horde_Prefs#isDefault() to return true if the given pref name doesn't
      exist in a scope.

[jan] Fix return errors from jsonrpc requests.

[mms] Failed recipients can now be determined via the
      Horde_Smtp_Exception_Recipients exception thrown when calling

[mms] Fix possible infinite loop when reading from a combined stream.

[mjr] Add method to obtain all logged events.
[mms] Fix install location for the phpunit libraries packaged locally via
[mms] Update to PHPUnit 4.4.0 and dependencies.
[jan] Add remoteHost() to Horde_Test_Stub_Registry.

[mms] Support display of IDN domains in URLs.

[jan] Use grapheme functions in Horde_String if intl extension is available.
[mms] Fix deleting multi-level temporary directories in

[jan] Fix updating quota when overwriting existing files.
[jan] Fix updating quota when using writeData() with FTP driver.
[jan] Fix setting permissions in Ssh2 driver (Bug #13783).


Horde Changes
[mjr] Fix performing actions from ActiveSync user preference page (Bug #13657).
[jan] Add missing 'secure' configuration for SMTP.

Address Book Changes
[jan] Use the SHOW permission to determine the sidebar address book list.

Calendar Changes
[mjr] SECURITY: Don't show private event details in daily agenda emails if not
      the owner (Bug #13660).
[jan] Make access to non-CalDAV remote calendars faster (Bug #12379).
[jan] Continue with further events if parsing of one remote event date fails.
[jan] Fix JS error in month view with more events today than the maximum
[mjr] Fix fatal error when creating or modifying an entry via PUT.

Tasks Changes
[mjr] Fix issue with initially creating nag_shares table.

Notes Changes
[jan] SECURITY: Fix permission check when editing notes (found by Christopher
      Neuhaus <>).
[mms] Added ability to link to note via API.

Library Changes
[mjr] Fix incorrect default values for BODYPREF TRUNCATIONSIZE values (Bug
[mjr] Fix regression in sending MIME messages as a result of a FETCH operation
      (Bug #13714).
[mjr] Fix issue that could cause mime boundry strings to leak into the message
      body when the message contained only a single part.
[mjr] Improvements and fixes to MIME truncation truncation handling.
[mjr] Fix limiting To: field in email sent to ActiveSync clients.
[mjr] Provisioning requirement is now set after the device object is obtained.
[mjr] Fix handling of MIME truncation in certain cases.
[mjr] Change the order various SYNC reply structures are sent to be more
      in-line with the spcification.
[mjr] Fix issue where sticky OPTIONS values were lost resulting in incorrect
      values for MIMESUPPORT and other values (Bug #12970).
[mjr] Added support for differentiating between S/MIME signed and S/MIME
      encrypted so the content-class property can be properly set (Bug #12970).

[jan] More compatibility fixes for Oracle.

[jan] Consider all user agents with "bot" in the name as robots.

[mjr] Fix broken MIME messages constructed from ActiveSync SMART replies to
      messages that contained a mulitpart/alternative part (Bug #13720).
[mjr] Fix issue that could cause incorrect truncation of ActiveSync emails.
[mms] Added Horde_Core_Mime_Headers_Received.
[mms] Added Horde_Registry#remoteHost().
[mms] Fix file permissions of dynamically generated static CSS/JS files.
[jan] Use correct user name as a fallback for identity full names with existing
      authusername hook.
[mjr] Add the activesync_provisioning_check hook.
[mjr] Fix determining multiplex settting for EAS notes (Bug #13637).
[mjr] Fix adding new tasklists from EAS (Bug #13642).
[jan] Update Czech translation (Michael Grafnetter

[jan] Fix using non-deprecated Content-Type for encrypted messages (Bug #13659).

[jan] Fix DAV client always using Digest authentication (Bug #13319).
[jan] Fix PUT request not passing content to the backend.

[jan] Make Oracle's updateBlob() compatible with PHP 5.3.
[jan] Fix using addColumn() with autoincrementKey types in SQLite.
[jan] Fix several issues with changing autoincrementKey columns in Oracle.
[mms] Fix SplitRead driver to work with the recent blob changes.
[jan] Fix returning primary key value from insertBlob().
[jan] Add Horde_Db_Adapter::updateBlob().
[jan] Add Horde_Db_Value_Text to encapsulate long text values.
[jan] Add missing insertBlob to adapter interface.

[jan] Fix migration with Oracle.

[mms] No longer call code that depends on Horde_Mime, which is not a required

[mms] Better cache unserialization error handling for all backends.
[mjr] Fix broken IMAP cache behavior in the DB driver when unserialization of a
      cached object fails.
[mms] Better error handling when IMAP connection is prematurely disconnected.
[mms] Fix regression in listMailboxes() for POP3 servers when 'flat' option is
[mms] Fix determining whether a command requires a continuation request, when
      the literal occurs within a nested list.
[mms] Ensure we don't use the same authentication method multiple times when
      logging into IMAP server.

[jan] Raise log level of errors from Closure compiler.

[mms] Added Horde_ListHeaders#listHeadersExist().

[mms] Added Horde_Mail_Rfc822_List#first() function.
[mms] Add property to address object to indicate whether it is an EAI address.
[mms] Transport driver now indicates whether it handles EAI data.
[mms] Support validation of EAI addresses (RFC 6532).
[mms] Add Horde_Mail_Mbox_Parse.

[mms] Fix race condition where memcache lock could be removed before the
      underlying locked data could be updated.

[mms] Improved sanity checking when adding header data.
[mms] Fix Horde_Mime_Headers_Deprecated#addReceivedHeader().
[mms] Fix Horde_Mime_Headers_Deprecated#listHeadersExists().
[mms] Horde_Mime_Headers has been rewritten.
[mms] Correctly handle content parameters in a case-insensitive manner.
[mms] Correctly pass the 'no_body' parameter to parts embedded in a
      message/rfc822 part in Horde_Mime_Part#parseMessage().
[mms] Fix parsing a base MIME-compliant message with no Content-Type
[mms] Horde_Mime::is8bit() no longer requires the charset parameter.
[mms] Improved MIME encoding.
[mms] Deprecated Horde_Mime::quotedPrintableEncode() and move to
[mms] Moved MIME ID manipulation/query methods out of Horde_Mime and into
[mms] Use string-based ABNF-based parser for scanning MIME content parameters
      instead of a regular expression (Bug #13587).
[mms] Moved content parameter handling methods out of Horde_Mime and into
[mms] Deprecated Horde_Mime::generateMessageId() and move to Horde_Mime_Headers.
[mms] Deprecated Horde_Mime::uudecode() and move to new Horde_Mime_Uudecode
[mms] Add Auto-Submitted header to outgoing MDN messages.

[mms] More thorough handling of tar.gz data.

[mms] Catch unknown errors when unpacking data.

[mms] Added Horde_Smtp_Exception property indicating whether error is permanent
      or transient.
[mms] Determine EAI and Body transport information by analyzing the message
      data, instead of requiring a parameter.
[mms] Add support for ETRN extension (RFC 1985).
[mms] Add support for BINARYMIME extension (RFC 3030).
[mms] Add support for CHUNKING extension (RFC 3030).

[jan] Throw InvalidArgumentException if passing incorrect arguments to

[mms] COPYING file did not contain the LGPL-3.0 addition to GPLv3.

[jan] Fix exporting notes to Funambol clients (, Bug #9487).
[jan] Fix creating server-client-mapping if backend returns multiple server IDs
      per client ID (, Bug #13706).

[jan] Add convertUsername() to Horde_Test_Stub_Registry.

[jan] Add Horde_Translation_Autodetect to support loading translations from
      Composer-installed packages (Renan Gonçalves <>).


Horde Changes
[mjr] Honor date_format_mini in Moon block (Bug #13628).
[jan] Fix spacing in top menu (Bug #13617).
[jan] Don't show password reset preferences if disabled in configuration (Bug
[mjr] Remove non-existent Yahoo Maps option for map tile provider.
[mms] Fix display of Horde stylesheets not served from the local server (i.e.
      via a CDN).
[jan] Hide weather portal block if weather configuration is disabled (Bug
[jan] Add show_encryption setting to HTTP authentication configuration
      (, Bug #13444).

Address Book Changes
[jan] Fix importing empty birthdays/anniversaries from vCard.
[mjr] Fix defaulting to the defined search fields when searching via the API.
[mjr] Fix broken EAS synchronization due to incorrect setting of the
      Categories field.

Calendar Changes
[jan] Support time label rotation in week and day views on IE 11.
[jan] Fix updating of task list view if no tasks are returned from server.
[jan] Fix ordering of sub-tasks.
[jan] Send iTip notifications even to attendees that are not required to attend
      (Bug #13600).
[jan] Fix notification and alarm issues if alarm is longer than a day (Bug
[jan] Fix closure compiler errors (Bug #13593).
[mjr] Fix checking resource availability when adding multiple resources (Bug

Tasks Changes
[jan] Fix search attribute of SQL shares on Oracle.
[mjr] Fix adding a new tasklist to the syncronized tasklists (Bug #13642).
[jan] Pass current start date of recurring tasks to dynamic interface.
[jan] Fix setting task list name for external tasks.
[jan] Fix link to create sub-task from a task view.
[jan] Fix listing of recurring tasks with start dates.
[mjr] Add missing categories to EAS tasks.
[jan] Fix sidebar display of system task lists in basic view.
[jan] Fix retrieving individual tasks via WebDAV.

Notes Changes
[mjr] Fix adding new notepads via the API.
[jan] Hide PDF button if Horde_Pdf_Writer is not installed (Bug #13624).
[mjr] Fix replacing tags in existing notes (Bug #13417).

Library Changes
[mjr] Fix adding new tasklists from EAS client (Bug #13642).
[mjr] Fix some issues related to synchronizing recurring tasks (Bug #13636).
[mjr] Some fixes for POOMCONTACT date fields on Samsung Android clients.
[mjr] Fix issue with returning proper RI cache data in certain cases.
[mjr] Added ability to sniff out Nine and Samsung Android clients.
[mjr] Improvements to the workaround for broken POOMCONTACTS date field
[mjr] Fix handling of EAS categories containing spaces in the name.

[jan] Update Czech translation (Michael Grafnetter

[mjr] Fix fatal error viewing certain MIME parts due to incorrect method name
      in the MimeViewer factory.
[mjr] Add support for moving calendar items on EAS clients.
[mjr] Fix generating reply text from EAS clients that only reply in HTML (Bug
[mjr] Remove Yahoo related code from HordeMap API.
[mjr] Add Reply-To header to email sent via ActiveSync if available in identity
      (Ticket #13592).
[mjr] Prevent sending contact lists as results in GAL searches.
[mjr] Fix handling of EAS categories containing spaces in the name.
[jan] Catch exceptions if not being able to find an LDAP user DN (Bug #13571).
[mms] Fix using master SMTP credentials when a CLI script uses the 'user_admin'
      registry flag.

[mms] Correctly handle full URLs in background-* properties.

[jan] Support returning of custom WebDAV properties.
[jan] Return ETags with WebDAV requests.
[jan] Support for WebDAV DELETE requests.

[jan] Fix migrating NULL values to BLOB on Oracle.
[jan] Catch exceptions from PDO result set methods.

[jan] Fix catching exceptions from Horde_Db.

[mms] Add support for UTF8 extension for POP3 servers (RFC 6856).
[mms] Add support for LANG extension for POP3 servers (RFC 6856).
[mms] Fix IMAP search results for recent and total messages when it is the only
      query and the mailbox is not selected.
[mms] Fix client-side message sorting when there are multiple sort criteria and
      at least one tie in the first sorting criteria.
[mms] Better error handling when attempting to authenticate via IMAP LOGIN
      command with non-ASCII credentials (Bug #13554).
[mms] Fix sending IMAP APPEND data when the UTF-8 capability is enabled.
[mms] Fix parsing IMAP mailbox list requests when UTF-8 mode is enabled.
[mms] Ensure client sorting tests work reproducibly across systems with varying
      default locales.

[mms] Support IDN hostnames in e-mail address queries.

[mms] Re-enable igbinary driver (requires igbinary >= 1.2.0).

[jan] Revert: Only store keys in cookie if cookies are in use
      (, Bug #13284).

[mjr] Add missing percent sign for humidity when using WWO.
[mjr] Fix detected errors returned from WWO.

[mms] Initial release.

[jan] Update to PHPUnit 4.3.4 and dependencies.
[jan] Raise priority of Horde_Test autoloader.
[jan] Don't report hooks loading as successful.

[jan] Fix format of UNTIL attribute when exporting to iCalendar (Joerg Pulz

[mms] Allow extension to be built with system lz4 library (Remi Collet
[mms] Add --with-liblz4 option to use system liblz4 (Remi)


Address Book Changes
[jan] Fix duplicate searching in address books without owner field.
[jan] Fix duplicate search form (, Bug #13528).
[mms] Make case-insensitive API e-mail search work on non-ASCII data (Request
[jan] Fix listing group members that contain colons in their IDs.

Calendar Changes
[mjr] Fix removing resource event when editing the bound event causes the
      resource to reject the event (Bug #13466).
[mjr] Fix refreshing resource events in the UI when the host event changes
      (Bug #13465).
[mjr] Fix updating the exceptionoriginaldate field when the base event changes
      (Bug #13512).
[mjr] Fix moving recurring events with exceptions from one calendar to another
      (Bug #13524).
[mjr] Fix honoring resource_management permission (Bug #13049).
[jan] Fix visual overlapping of certain events (Bug #13376).
[jan] Fix error editing events if using exotic date formats.
[jan] Fix JavaScript error if not showing all events in month view (Jasper
      Olbrich <>, Bug #13433).
[jan] Fix displayed CalDAV URLs for shared calendars in basic view too
      (, Bug #12380).

Library Changes
[mjr] Added Horde_ActiveSync_Rfc822::replaceMime().
[mjr] Added Horde_ActiveSync_Mime class.
[mjr] Added Horde_ActiveSync_Exception_EmailFatalFailure.
[mjr] Fix issues with 8-bit characters in Subject header in some cases (Bug
[mjr] Fix POOMTASKS_SUBORDINALDATE parsing (Bug #13461).
[mjr] Prevent folder cache from being overwritten (Bug #13273).
[mjr] Add Horde_ActiveSync_Imap_Adapter::emptyMailbox().
[mjr] Fix sending ItemSettings responses for EAS 14.1.
[mjr] Add unofficial WindowsLive codepage extensions.
[mjr] Fix yearly recurrences appearing on incorrect day in certain cases.
[mjr] Add support for synchronizing user-defined IMAP flags as EAS Email
[mjr] Prevent infinite loops due to broken clients sending invalid OPTIONS data
      (Bug #13405).
[mjr] Prevent fatal WBXML parsing error due to broken BlackBerry clients (Bug

[mjr] Fix dependency on Horde_HashTable (Bug #13549).
[mjr] Add activesync_email_presend hook.
[mjr] Fix issue where replying or forwarding broken email messages would break
      ActiveSync synchronization when saving to Sent mail.
[mjr] Fix issues with 8-bit characters in Subject header when sending smart
      replies via ActiveSync (Bug #13456).
[mjr] Fix GAL searches returning all address book entries.
[jan] Improve positioning of date picker popup (Karim Geiger
[jan] Really fix returning session start time from session handler (Bug
[mms] Ensure persistently stored data is not overwritten by another session.
[mms] Fix boostrapping DB object when using SQL as the Horde cache driver (Bug
[mjr] Support ITEMOPERATIONS_EMPTYFOLDER requests via ActiveSync.
[mjr] Fetch correct data for EAS ItemSettings requests.
[jan] Catch exception from application in portal block (Bug #13427).
[jan] Fix returning session start time from session handler (Bug #13428).
[mjr] Add support for synchronizing user-defined IMAP flags as EAS Email
[mjr] Fix BC break when detecting the ActiveSync state driver.

[mms] Add support for Gmail-specific WEBALERT response code.
[mms] IMAP/POP3 URL generation split into a more modular library structure.
[mms] Ignore message-specific URL parameters if a search query appears in an
      IMAP URL.
[mms] Fix encoding/decoding URL elements in IMAP/POP3 URLs.
[mms] Fix setting default port for POP3 URLs.
[mms] Fix client-side reverse sorting.
[mms] Fix client-side sequence sorting, when that is the only sort criteria.
[mms] Use Collator class, if present, to sort string fields on the client side.
[mms] Fix client-side sorting of display addresses.
[mms] Even more improved pseudo-UIDNEXT value for POP3 servers.
[mms] Improved sanity checking so that non-ASCII data is not sent to server in
      commands where it is not supported.
[mms] Fix typo in Horde_Imap_Client_Data_Sync (Bug #13430; Jasper Olbrich
[mms] Fix regression in reporting capabilities (Bug #13421).

[jan] Fix tests including Horde_Mime_Part.

[mms] Fix generation of Original-Message-ID header in MDN notification (Bug
[mms] Fix determination of MDN user confirmation in certain instances.

[mms] Attempt to workaround broken JSON-C decoder regarding null characters.

[mms] Add ArrayAccess, Countable, and Iterator functionality to the
      Horde_Prefs_Identity object.

[mms] Fix determination of test cases using AllTests.php.
[mms] Fix AllTests.php when dealing with test cases that inherit from parent
      test cases.

[jan] Fix "Undefined offset" notice (Bug #13455).

[mms] Fix another issue with older versions of PHP in
[mms] Fix regression in Horde_String_Transliterate for PHP 5.3 (Bug #13419).
[mms] Added Horde_String::ipos() and Horde_String::ripos().
[mms] Fallback to lesser priority transliterator driver when an error is


Horde Changes
[mjr] Fix cancelling remote wipe of EAS client from user prefs.
[mms] Fix fatal error in signup confirmation script.
[mjr] Fix removing ActiveSync device state from administrative interface when
      multiple user accounts exist on the same device (Bug #13336).

Address Book Changes
[jan] Display correct address books in WebDAV folders.
[jan] Fix displayed CardDAV URLs for shared address books (Bug #12380).
[mms] Only include e-mail addresses that match the search string in the return
      from the search() API call (Request #12480).
[mjr] Fix exporting tags via vCard and ActiveSync (Bug #13393).
[mjr] Add EAS client created shares to the sync_books preference (Bug #13359).
[mjr] Add missing API support for searchTags API (Bug #13362).
[mjr] Fix issue that caused contacts to be tagged with a broken username.

Calendar Changes
[jan] Fix displayed CalDAV URLs for shared calendars (Bug #12380).
[jan] Don't show today's events that are over in portal (Bug #13368).
[mjr] Fix exporting to ics file when event contains exceptions and an explicit
      timezone (Bug #13369).
[mjr] Fix importing iCalendar data that contains timezone parameters.
[mjr] Fix both importing and replacing text/calendar data via the API when
      recurrence exceptions are present (Bug #13399).
[mjr] Ensure default share attribute is set when auto determining a default
[mjr] Fix fatal error when calculating alarms on a recurring event that has
[mjr] Fix catching minical clicks on browsers that return element names in
      uppercase (, Bug #13370).

Tasks Changes
[jan] Don't include external tasks with WebDAV task list.
[jan] Fix displayed CalDAV URLs for shared task lists (Bug #12380).
[mjr] Fix remembering auto determined default share (Bug #13360).
[mjr] Add EAS client created shares to the sync_lists preference (Bug #13359).
[mjr] Add missing API support for searchTags API (Bug #13364).
[mjr] Fix detecting task completion when sending task change notifications
      (Alfonso Marín Marín <>, Bug #13350).

Notes Changes
[mjr] Ensure default share attribute is set when auto determining a default
[mjr] Fix showing the notepad name in list view when show_notepad preference is
      set (Bug #13352).
[mjr] Add EAS client created shares to the sync_notpads preference (Bug
[mjr] Add missing API support for searchTags API (Bug #13361).
[mjr] Fix issue that caused notes to be tagged with a broken username.

File Manager Changes
[jan] Update Polish translation (Maciej Uhlig <>).
[jan] Make shares table compatible with Oracle.

Bookmarks Changes
[mjr] Fix fatal error due to botched merge.

Library Changes
[mjr] Prevent another issue that could cause an error when attempting to update
      a non-existent state (Bug #13338).
[mjr] Prevent error caused by attempting to update a non-existent state (Bug

[mms] Add Horde_Core_Script_Package_Autocomplete.
[mms] Fix broken parse_url() behavior for PHP < 5.3.6.
[mms] Horde_Data now stores temporary data using Horde_Vfs to ensure data
      persists and that it doesn't overload session storage (Request #11335).
[mms] Add method to allow any code to register tasks to run on logout.
[mjr] Ensure EAS client created collections are requested to be added to the
      application's sync preference (Bug #13359).
[mjr] Fix fatal error when executing a FOLDERDELETE command on certain
[mjr] Fix regression in sending email via ActiveSync when no properly
      configured identity exists (Bug #13346).
[mjr] Fix broken CHANGEFOLDER functionality for ActiveSync NOTES collections
      (Bug #13334).
[mms] Better error handling when trying to load config files from the conf.d

[mms] Fix Horde_CssMinify_CssParser#setOptions().

[jan] Fix calculating recurrence end if UNTIL property of iCalendar data is
      DATE value (Bug #13401).

[mms] Add Horde_Vfs driver.

[mms] Determination of approximate part size should be done at IMAP level, not
      within Horde_Mime_Part.
[mms] Fix regression in handling invalid DateTime data due to a BC-incompatible
      change in PHP.

[mms] Added the 'noquote' option to Horde_Mail_Rfc822_Object#writeAddress().

[mms] Fix fatal error in Horde_Mime_Mail#getBasePart() (Thomas Müller
[mms] Fix determination of part size when the part contains explicit sizing

[mms] Added support for sending internationalized header data (RFC 6531).

[mjr] Hotfix to deal with failure exporting non-contact data due to
      inconsistency in export methods between applications (Bug #13394).


Horde Changes
[mms] Add configuration to allow for SMTP authentication if the current Horde
      access does not have an authenticated user.

Address Book Changes
[jan] Fix fatal error if importing CSV data with date fields.

Calendar Changes
[jan] Fix selecting days in the sidebar mini calendar (Bug #13327).
[mjr] Issue a cancellation iTip when an event's status changes to cancelled
      (Bug #13321).
[jan] Fix loading events for intial view in smartphone mode.

Tasks Changes
[mjr] Fix returning to previously selected tab after task is saved (Bug
[mjr] Fix fatal error when saving a task, only one tasklist exists, and at
      least one SmartList exists.

Bookmarks Changes
[mjr] Fix creating tags from folder names when importing bookmarks.

Library Changes
[mms] Add configuration to allow for SMTP authentication if the current Horde
      access does not have an authenticated user.
[mjr] Fix closing smartmobile dialog pages (Bug #13316).
[mjr] Fix issue that could cause multiple tabs to be shown as active when
      tab_name could be a mix of integers or strings.


[jan] Update Polish translations (Maciej Uhlig <>).
[jan] Update Japanese translations (Hiromi Kimura <>).
[jan] Make SQL backends compatible with Oracle.
[jan] Make shares tables compatible with Oracle.

Horde Changes
[mjr] Fix removing EAS device pairings via the removeUserData API (Bug #13278).
[jan] Add configuration for searching user DNs in LDAP groups (Bug #12128).
[jan] Don't try to write to read-only group backends when removing user data
      (, Bug #13248).
[mms] Cleaner indication on login page that an authenticated user is logging
      into specific application rather than Horde in general.
[mjr] Fix blocking an ActiveSync client through the admin interface.
[mjr] Add an ActivSync device's currently used heartbeat interval to the device
      information display.
[mms] Fix regression in displaying MOTD content on login screen.
[mms] Support LMTP servers when sending mail.
[mms] Add more advanced configuration options for the Redis HashTable driver
      (Michael Cramer <>).
[jan] Add script to import user preferences from Open-Xchange.
[mms] The location of dynamically served static files is now configurable
      (Request #13070).
[jan] Update Korean translation (Deokgon Kim <>.
[mms] Add a NoSQL driver for history storage.
[mms] The history driver can now be configured via conf.php.
[jan] Add mysql encryption option for SQL backends (Request #12962).
[rla] Add joomla-md5 encryption option for SQL backends (Request #12889).
[mms] By default, enforce maximum storage size on preferences values.
[mms] Support UglifyJS for compressing javascript.
[mjr] Add improved ActiveSync device administration page.
[mms] Display indication that Caps Lock key is on when entering password on
      login page (Request #7178).
[mjr] Add support for configuring a NoSQL driver for ActiveSync state storage.
[mms] Added 'filemtime' configuration option for CSS caching.
[mjr] Add support for X509 authentication support.
[mjr] Improve logging options for ActiveSync logging configuration.
[mjr] Add support for managing ActiveSync devices through the API.
[mjr] Add prefs for selecting From address when sending email via ActiveSync.

Address Book Changes
[mjr] Fix another regression with exporting photos in vCard when we are
      ignoring empty values.
[mjr] Fix regression with exporting photos in vCard when we are ignoring empty
[jan] Export composite attributes to vCard too.
[jan] Don't export binary fields to CSV/TSV.
[mms] Fix search in Facebook driver.
[jan] Add script to import contacts from Open-Xchange.
[jan] Don't remove missing contacts from distributions lists in Kolab backends
      (Bug #12861).
[jan] Support binary fields (photos) in Kolab backends.
[mjr] Fix importing certain vCards to sources only using the 'email' attribute
      (Bug #12955).
[jan] Export free/busy URL to vCard (Request #12915).
[mjr] Fix listTimeObjects API when format_in attribute parameter is changed
      from default (Bug #11891).
[mjr] Add API support for supporting multiple addressbooks via ActiveSync.
[jan] Remember currently open tab when switching or saving contact views
      (Request #12609).
[jan] Replace categories with tags (Request #9544).

Calendar Changes
[jan] Fix issues with event URL field not updating (Carlos Timóteo
[jan] Fix error when deleting unselected calendars.
[jan] Improve DTEND compatibility with other programs using iCalendar.
[mjr] Fix sending iTip invitations when Save As New is used (Bug #13239).
[jan] Fix free/busy display with 24-hours-busy days.
[jan] Fix navigating free/busy dates.
[jan] Fix hover style in year view (Bug #13057).
[jan] Add synchronization of attendees via CalDAV (Request #13027).
[mjr] Fix moving an event from one calendar to another while resources are
      disabled (Bug #13201, Carlos Timóteo <>)
[mjr] Do not include resources with no email address when synching to EAS
[jan] Fix dependency on Nag (Bug #13166).
[jan] Use the event's or calendar's owner identity when sending notifications
      (Bug #13158).
[mjr] Gracefully handle import errors in dynamic interface (Bug #11127).
[mjr] Show reservee of a resource in resource's event description (Request
[mjr] Add resource_management permission (Request #13049).
[jan] Allow to synchronize shared calendars via CalDAV (Request #12380).
[jan] Add script to import events from Open-Xchange.
[mjr] Fix various issues with alarms for recurring events.
[jan] Add calendar legend to print output.
[mjr] Allow for exporting of resource calendars (Request #12372).
[mjr] Make event url property a true hyperlink in dynamic view (Request
[jan] Support task assignees.
[jan] Support parent tasks.
[jan] Indent sub tasks.
[mjr] Improve display of Free/Busy information and add pagination (Requests
      #12899, #12676).
[mjr] Add ability to export event to a timeslice (Request #11307).
[mjr] Add API support for supporting multiple calendar sync via ActiveSync.
[jan] Improve sort order of events in month view (Request #11155).

Tasks Changes
[jan] Always display system task lists to administrators.
[mjr] Group task fields into tabs on edit form (Request #13228).
[jan] Only use URL rewriting for saving/completing tasks if pretty URLs are
      enabled in the configuration.
[jan] Don't include smart lists in top menu.
[jan] Fix top menu URLs to create new tasks in specific task lists.
[jan] Show external tasks in the correct task type.
[jan] Purge old tasks from versions < 2.3 too.
[jan] Allow to synchronize shared task lists via CalDAV (Request #12380).
[jan] Add script to import tasks from Open-Xchange.
[jan] Add recurrence controls to basic view (Request #11545).
[mjr] Add button for creating sub-task from task view (Request #12309).
[mjr] Add ability to return to existing search results after navigating to a
      task (Request #12879).
[mjr] Add API support for multiple tasklists via ActiveSync.

Notes Changes
[jan] Fix error after successful import (Thomas Jarosch
      <>, Bug #13272).
[jan] Fix link on edit form to delete notes (Thomas Jarosch
      <>, Bug #13271).
[jan] Fix exporting tags to CSV (Thomas Jarosch <>,
      Bug #13269).
[jan] Fix adding and editing notes with Kolab backend (Bug #13269).
[jan] Make notepad checkbox links switches instead of toggles.
[jan] Replace categories with tags.
[jan] Convert to Horde_View.

Bookmarks Changes
[jan] Add Hungarian translation (Andras Galos <>).
[jan] Add Danish translation (Erling Preben Hansen <>).
[mjr] Add support for importing bookmarks from Mozilla's JSON format.

Library Changes
[mjr] Fix issue sending email via EAS when the imap client throws an error when
      synchronizing the maillog (Bug #13276).
[mjr] Improvements to vcard mime handler to allow for ajax updating (Bug
[jan] Fix delay when fading the same dialog more than once.
[jan] Catch exceptions from NoSQL backends when building indices.
[mjr] Fix incorrect processing of autocompleted data when using
      prettyautocompleter (Bug #13256).
[mjr] Fix updating attendee response status when received via ActiveSync.
[jan] Add <configldapuser> configuration item.
[jan] Add base DN to LDAP configuration for searching user DNs.
[jan] Allow to specify port for PostgreSQL socket connections (Request #13250).
[mms] Allow any HordeCore AJAX response object to return JSON-HTML output,
      instead of pure JSON.
[mjr] Fix copying forwarded messages to Sent mail folder when using EAS.
[mjr] Fix generating From address when sending email via ActiveSync when
      personal part must be quoted (Bug# 13208).
[mjr] Fix tracking bad login count and honoring the lock setting when using
      Application auth backend.
[mms] Support LMTP servers when sending mail.
[mms] Add Horde_Registry#hasLink() (Bug #13175).
[mjr] Fix returning mailbox list for ActiveSync clients when not using IMAP
      subscriptions (Bug #13177).
[jan] Update Hungarian translation (Andras Galos <>).
[mms] Allow CKeditor 3 to work with IE 11.
[jan] Fix translation of portal block names (Bug #13116).
[mms] Add Horde_Registry#getAuthInfo() and Horde_Registry#getAuthApps().
[mms] Add Horde_Core_Cache_Session.
[mms] Add abstracted web notifications interface to the Horde_Notification
[mms] Upgrade prototype.js to most recent git version
[mjr] Fix issue that causes enter to submit the form when inside the pretty
      autocompleter (Bug #12923).
[mms] Don't store preference UI elements in the session cache storage.
[mjr] Send the PRIMARYSMTPADDRESS to EAS clients, if appropriate (Request
[jan] Fix loading of configuration screen with basedir restrictions or libxml
      entity loading disabled (Bug #13025).
[mms] The location of dynamically served static files is now configurable
      (Request #13070).
[jan] Update Korean translation (Deokgon Kim <>).
[mms] Support new configuration options for history storage.
[mms] Fix for prototype.js to correctly recognize IE 11 as IE, not Gecko (Bug
[mjr] Added the nonotificationinit parameter to Horde_Registry::appInit().
[mjr] Fix issue authenticating to certain applications when accessed via RPC.
[mms] Move CSS minification to the Horde_CssMinify package.
[mjr] Work around parsing broken incoming ActiveSync SMARTREPLY requests with
      incorrect character sets (Bug #12969).
[mms] Add null driver for the content tagger.
[jan] Add database configuration for Oracle.
[mms] Add Horde_Registry_Application#getInitialPage().
[mms] Add Horde_Core_Script_Package_Sortable.
[mms] Abstract Horde configuration parsing into Horde_Registry_Hordeconfig
[mms] Abstract CSS caching/compressions into Horde_Themes_Css framework.
[mms] Abstract javascript caching/compression into Horde_Script_Cache
[mms] Allow jQuery Mobile script to be packaged in same file as other jquery
[mms] Move configuration loading code to Horde_Registry_Loadconfig class.
[mjr] Fix saving S/MIME signed emails sent via ActiveSync to sent folder (Bug
[mms] Store registry cache on the local filesystem.
[mms] Refactor alarm code to prevent the need from accessing the themes cache
      on every server access.
[mms] Prevent avalanche effect from occurring when re-creating cached JS files.
[mms] Use Horde_JavascriptMinify package to compress javascript.
[mms] Combine all javascript to compress into a single string.
[mjr] Improve ActiveSync searches by no longer limiting available searched
      fields (Request #12917).
[mms] Support UglifyJS for compressing javascript.
[mjr] Add support for DocumentLibrary via the files API.
[mjr] Cache ActiveSync mailbox search results for improved performance during
[mms] Predis client should only use clustering if necessary.
[jan] Fix retrieving value lists from Horde_Session.
[mjr] Use webnotifications.js to normalize various browsers to the standard
      Notification API.
[mjr] Fix desktop style notifications in Ajax applications (Bug #12835).
[mms] Fix jquerymobile icons (Bug #12876).
[mms] Don't add 2 entries to history when opening a jquery mobile dialog (Bug
[jan] Fix padding of drop down lists with scrollbars (Bug #11971).


[jan] Update Korean translation (Deokgon Kim <>).

Horde Changes
[jan] Detect REPORT queries as DAV requests in RPC server (Bug #13124).
[jan] Fix fatal error in LDAP account portal block (Bug #12910).

Address Book Changes
[mjr] Fix pagination of search results (Bug #13047).
[mjr] Don't output empty properties for CardDAV requests (Bug #12782).
[jan] Fix portal serach block response when no contacts have been found
      (dulinux <>, Bug #13044).

Calendar Changes
[jan] Fix history not always returning the last modification time of an event
      (Bug #13113).
[jan] Support timezone aliases when importing events (Bug #13100).
[mjr] Honor the no_sharing configuration option in dynamic view (Bug #13002).
[mjr] Fix issue that could remove all events from shared calendars if a user
      with Horde_Perms::EDIT on that calendar is removed via the removeUserData
      API (Bug #12524).
[jan] Fix TRIGGER generation if alarm value is negative (Bug #13064).

Tasks Changes
[jan] Fix link to task in alarm emails.

Tagging Changes
[jan] Fix date format for 'created' column.

Timeobject Changes
[jan] Update to changed Facebook events API.
[jan] Add Danish translation (Erling Preben Hansen <>).
[jan] Fix returning Facebook event URLs.
[mjr] Cache Facebook queries.

Library Changes
[jan] Update Spanish translations (Manuel Perez Ayala
[jan] Update Japanese translations (Hiromi Kimura <>).
[jan] Update Hungarian translations (Andras Galos <>).
[jan] Update Danish translations (Erling Preben Hansen <>).

[mjr] Force multiplex contact collections for Outlook 2013.
[mjr] Fix issue sending email when the imap client throws an error when
      synchronizing the maillog (Bug #13276).
[mjr] Fix issue related to clients with enabled SMS sync causing broken email
      deletion behavior.
[mjr] Fix ignoring incoming SMS CHANGE commands.
[mjr] Fix removing orphaned device entries (Bug #13277).
[mjr] Prevent sending non-UTF8 data due to meeting response emails.
[mjr] Remove Horde::debug output.
[mjr] Fix requesting remote wipe when using the MongoDB state driver.
[mjr] Truly fix duplicate email in Outlook 2013 when moving/deleting messages.
[mjr] Fix detecting forced multiplex values for Android 4.4.0 and greater (Bug
[mjr] Fix issue with renaming folders (Bug #13196).
[mjr] Fix duplicate items in mailboxes after handling MOVEITEMS requests.
[mjr] Allow saving just dirty deviceProperties, and not deviceInfo.
[mjr] Fix return status for SETTINGS_DEVICEINFORMATION requests (Bug #13191).
[mjr] Fix regression that could cause some clients to no longer sync.
[mjr] Fix issue with clients that support EAS 12.1+ but still use PING commands
      that would cause the cached heartbeat interval to be cleared.
[mjr] Fix issue where the device managed heartbeat interval would be ignored
      during PING requests.
[mjr] Fix issue that would cause a SYNC loop when changing FILTERTYPE in
      certain clients (Bug #13182).
[mjr] Fix regression with renaming email folders.
[mjr] Improve workarounds for certain clients that send broken authentication
      information (Bug #13184).
[jan] Make SQL state backend compatible with Oracle.
[mjr] Improve detection of Android devices for the purposes of determining
      support for non-multiplexed collections.
[mjr] Prevent possible PING loop due to PING requests incorrectly containing
      collections that haven't had a SYNC issued yet.
[mjr] Add Horde_ActiveSync_Rfc822::addStandardHeaders().
[mjr] Support sending PRIMARYSMTPADDRESS in EAS 14.1 (Request #13062).
[mjr] Change the order of WBXML tags for Horde_ActiveSync_Message_Exception to
      make some older clients happy.
[mjr] Fix some cases where removing a device's state could cause a PING and/or
      SYNC loop on some older clients.
[mjr] Fix regression that broke synchronization in clients that don't support
      EAS 14.1 (Bug #13038).
[jan] Optimize SQL query for garbage collection (, Bug
[mjr] Fix regression that could prevent stale sync requests to persist (Bug
[mjr] Fix regression in sending non Mime encoded messages (Bug #13029).

[jan] Test all available SQL backends.
[jan] Make tests work with PEAR-installed package.
[jan] Use correct schema table name when running tests.
[mjr] Add support for multiple instances of the same alarm, such as for a
      recurring event.

[jan] Update Ukrainian translation.

[jan] Add Polish translation (Maciej Uhlig <>).

[mms] Abstract caching logic into Horde_Autoloader_Cache_Bootstrap class.

[mms] Correctly identify MSIE 11.
[mms] Fix checking for upload errors if an array of files was uploaded.
[mms] Catch newer PHP upload errors when checking for upload data.

[mms] Add Memory driver.
[mms] Deprecate Memoryoverlay and Mock drivers.
[mms] Hashtable driver now respects lifetime parameter in the get() and
      exists() methods (Bug #13085).

[jan] Fix printing of structured fatal error details.

[jan] SECURITY: Fix broken encryption of session data if regenerating session

[mms] Fix reference to constant outside of the package.

[mms] Initial release.

[jan] Add importing of IMC (iCalendar/vCard) data from a URL.
[mms] Store CSV and TSV data in storage object, instead of temporary file, to
      ensure import can work across a PHP cluster.

[jan] Update Brazilian Portuguese translation (Luis Felipe Marzagao
[mjr] Fix setting timezone parameter when parsing certain string

[jan] Allow the same external object UID in multiple resources to fix moving
      objects (Bug #13102).
[jan] Fix synchronization with Mac Calendar application after adding events.
[jan] Update to SabreDAV 1.8.10.
[jan] Update to VObject 2.1.4.

[mms] SECURITY: Don't leak PDO DSN authentication/connection information in
      exception messages.
[jan] Fix changing columns to NULL/NOT NULL on Oracle and SQLite.
[jan] Fix migrating large values to BLOB on Oracle.
[jan] Fix certain migrations with Oracle.
[mms] Fix regression preventing caching of any internal DB information.
[jan] Fix columnCount() result of PDO result objects.

[jan] Fix loading of local files with basedir restrictions or libxml entity
      loading disabled.

[jan] Check for read-only LDAP configurations in removeUser()
      (, Bug #13247).

[mms] In the Predis driver, ramp up to the maximum unlock wait interval
      (Request #13231).
[mms] Implement logging.
[mms] Fix inconsistent usage of 'expire' and 'timeout' options (standardize on
      'expire', which is more semantically correct).

[jan] Fix migrating from systems older than Horde 4.
[mms] Add composite driver.
[mms] Add Null driver.
[mms] Add MongoDB driver.

[jan] Fix HTTP authentication with PECL HTTP drivers.
[jan] Always cast reponse body to string with pecl_http 2.0 (Michael Cramer
[jan] Add support for PECL http 2.0 extension (Michael Cramer

[jan] Fix detecting the current DST rule from certain VTIMEZONE components (Bug
[jan] Export VTIMEZONE components only once per TZID (Bug #12988).

[mjr] Add Horde_Image_Exif::getDescriptionFields() and
[mjr] Add "Title" and "Description" XMP fields.
[mjr] Update maximum allowed version for the PECL Imagick extension.
[jan] Fix converting to grayscale with imagick driver.
[jan] Add optional dependency on imagick PECL extension.

[mms] Fix regression in handling invalid DateTime data due to a BC-incompatible
      change in PHP.
[mms] Fix regression where INBOX subscription status was based on server
      status, instead of always being treated as subscribed (Bug #13261).
[mms] Delimiter information is now always returned from
[mms] Fix broken MBOX_UNSUBSCRIBED behavior on IMAP servers that support
[mms] Added the MBOX_ALL_SUBSCRIBED mode to
[mms] Workaround PHP DateTime regression in 5.4.29 & 5.5.13.
[mms] Fix translating error messages if they contain printf placeholders.
[mms] Fix working with mailboxes containing entirely integers (Bug #13157).
[mms] Horde_Imap_Client_Base#getNamespaces() can now return a
      Horde_Imap_Client_Namespace_List object instead of an array.
[mms] Use the new command length limitations defined in RFC 7162.
[mms] A noop() call before authentication will now correctly throw an exception
      on a connection issue (Bug #13205).
[mms] Fix instantiating base object with an empty password.
[mms] Better error checking when writing data to the server (Bug #13187; Thomas
      Jarosch <>).
[mms] Support partial search limitation even if the PARTIAL search return
      option is not available on the server (Request #13153).
[mms] Added the 'max' and 'min' properties to Horde_Imap_Client_Ids.
[mms] Workaround broken MIME parts that cannot be binary decoded on the server.
[mms] Correctly handle partial search limiting for a single ID (Bug #13153).
[mms] Workaround bug in Dovecot where improperly encoded body part returns NIL
      data when using the BINARY extension.
[mms] Handle IN-USE, LOGIN-DELAY, and SYS/TEMP error codes when authenticating
      to POP3 servers.
[mms] Fix TLS negotiation with POP3 servers.
[mms] Fix throwing authentication exception when using Digest-MD5.
[mms] Fix parsing a reply/forward subject with no blob content.
[mms] Ensure integer value returns from Horde_Imap_Client_Base#status() are
      truly integers.
[mms] Prevent unnecessary cache writes when list of UIDs passed to deleteMsgs()
      is empty.
[mms] Fix stripping non-ASCII characters in
[mms] Don't allow PREAUTH on unencrypted connection if a secure connection
      (e.g. STARTTLS) is requested.
[mms] Password is no longer a necessary parameter.
[mms] Fix regression in parsing empty string values in IMAP tokenizer.

[mms] Add commented list of original source URLs in minified output, in order
      to comply with any license terms contained in original files.

[mms] Add commented list of original source URLs in minified output, in order
      to comply with any license terms contained in original files.

[jan] Consistently return a stream from the getBodypart() methods.
[jan] Add Horde_Kolab_Storage_Object#getBackendId().
[jan] Implement saving and loading of attachments to Kolab objects (backward
      compatibility break in Horde_Kolab_Storage_Data#getAttachment()!).
[mms] Fix grabbing annotation list from IMAP server.

[jan] SECURITY: Stricter parameter check in bind() to detect empty passwords.
[jan] Fix compatibility with PHP 5.3 (Bug #11888).
[jan] Allow to specify base DN for searching user DNs.
[jan] Support multi-value RDNs in Horde_Ldap::quoteDN() (Request #11888).
[jan] Fix creating filters with the less (<) operator (Bug #13154).
[jan] Fix approximate search operator (Leandro Damascena
      <>, Bug #9094).

[jan] Add German translation.
[mms] Better translations of the list header fields.

[jan] Fix and improve tests.

[mms] Add Horde_Mail_Transport_Lmtphorde driver.
[mms] Be more lenient in parsing RFC 5322 identification field values.
[mms] Add Horde_Mail_Rfc822_Identification class.
[mms] Optimizations to address parsing.

[mjr] Make bcmath an optional, not required, extension (Bug #13285).

[mms] Ramp up to the maximum unlock wait interval (Request #13231).

[mjr] Fix returning raw data of sent email.
[mjr] Fix returning stream containing raw email data.
[mjr] Add Horde_Mime_Mail#getRaw() for returning the raw email email data.
[mms] Ensure return from Horde_Mime_Part#getBytes() is an integer.
[mms] Fix regression in part size calculation for parts that contain the raw
[mms] Add Importance to list of headers that expects a single value.
[mms] Correctly set size of part when using Horde_Mime_Part::parseMessage() and
      the 'no_body' option.
[mms] Fix Horde_Mime_Part#buildMimeIds() when called on the base embedded
      object of a parent part (Bug #13117).

[mms] Fix fatal error if using TNEF viewer and bcmath extension is not
      installed on the system.

[mms] Don't use JSON driver to pack if input contains non-UTF8 data (Bug
[mms] Due to issues with igbinary 1.1.1, disable the igbinary driver.

[mms] Add Horde_Prefs#getCache().
[mms] Add Horde_Cache based cache driver.
[mms] Pref scopes are now loaded on-demand.
[mms] Add Horde_Prefs#changeScope().

[mms] Only store keys in cookie if cookies are in use
      (, Bug #13284).
[mms] Correctly clear secret key from cookie data
      (, Bug #13283).

[jan] Fix broken translations of wind forecasts.
[mjr] Adjust to changes in Wunderground API (Bug #13299,
[mjr] Add cardinal direction abbreviations (Bug #13186).
[mjr] Fix fetching local observation time from Wwo (Bug #13083,

[mms] Fix harmless undefined error when accessing certain configuration
[mms] Horde_Smtp#send() now returns recipient status information if at least
      one recipient was successfully accepted.
[mms] Added an LMTP (RFC 2033) driver.
[mms] The mail submission port (587) should be default of this library.
[mms] Better exception message for a 550 error, since it is common and may be
      displayed to an end user (Request #12990).

[mms] Fix BC-breaking regression with self-signed TLS certificates introduced
      by PHP 5.6.

[jan] Update to PHPUnit 4.1.3.
[jan] Fix running tests from PEAR-installed version.
[jan] Bundle PHPUnit and dependencies.
[mms] Fix loading PHPUnit from PHAR file.

[jan] Fixed inline renderer breaking line breaks. (Petr Kalivoda
[jan] Assume Unicode input when splitting on character level (Petr Kalivoda
[jan] Fix signature of Horde_Text_Diff_Mapped constructor (BC break!) (Bug

[mms] Javascript minification has been deprecated and moved to the
      Horde_JavascriptMinify package.

[mms] Javascript minification has been deprecated and moved to the
      Horde_JavascriptMinify package.

[jan] Use passive FTP for downloading the timezone database
      (, Request #13024).

[mms] Catch/ignore invalid RFC 2397 data strings.

[mms] Add Horde_String_Transliterate class.
[mms] Support deeply nested HTML documents (requires PHP 5.4.0+ and libxml
      2.7.0+) (Bug #13086).

[jan] Change Horde_View_Helper_Date#distanceOfTimeInWords() to not round up the
[jan] Make Horde_View_Helper_Text#truncate() and truncateMiddle()
      multibyte-safe (Bug #13163).

[jan] Update lz4 source to r119 (CVE-2014-4715).
[mms] Fix compilation on ancient versions of PHP 5.3 (Bug #13310).
[jan] Update lz4 source to r118 (CVE-2014-4611).


[jan] Update Danish translation (Erling Preben Hansen <>).

Horde Changes
[mms] Fix regression where AJAX actions were not correctly checking permissions
      and potential authentication expiration actions.

Address Book Changes
[jan] Fix importing vCard fields with lowercase TYPE attributes (Bug #13006).
[jan] Store full name in Kolab contacts.
[jan] Fix distribution list support in Kolab driver (Bug #12450).

Calendar Changes
[mjr] Fix triggering alarms for cancelled events (Bug #12928).
[mjr] Fix exporting recurring events with no recur_end value to CSV.
[mjr] No longer include AIRSYNCBASEBODY when exporting for ActiveSync if there
      is no description.
[mjr] Properly set event status to Cancelled on Resource calendars when the
      original event status is set to Cancelled.
[mjr] Fix updating free/busy display when updating event times (Bug #12676).
[mjr] Fix issue that could cause calendar sync to break when creating an
      exception on EAS versions < 14.0
[jan] Fix rounding of start time when dragging events (Bug #11904).
[mjr] Fix fatal error when searching if Holiday driver is disabled (Bug
[jan] Ignore iCalendar alarms without action, and use first, not last alarm
      (Bug #12865).
[mjr] Fix incorrect case comparison when synchronizing tags with Kolab (Bug
[mjr] Honor recurrence-id range values when deleting recurring events (Bug
[mjr] Fix deleting and sending iTip notifications for recurring events (Bug
[jan] Fix calculation of work week start if on a weekend.
[jan] Fix deleting calendars with exceptions to recurring events.
[jan] Fix fatal error if recurrence exceptions have timezones set (Bug #12801).

Tasks Changes
[jan] Don't return future tasks from cost objects API.

Notes Changes
[jan] Add Korean translation (Deokgon Kim <>).
[mjr] Fix unencrypting and saving a previously encrypted note (Bug #12890).
[mjr] Fix fatal error when exporting encrypted notes via ActiveSync.
[mjr] Fix saving note after saving failed due to mismatched passwords (Bug

Library Changes
[mjr] More workarounds for PHP 65776, preventing segfaults for text attachments
      that contain inconsistent line endings.
[mjr] Rely on the IMAP adapter for returning accurate UID values after a
      message move (Bug #13010).
[mjr] Expose public Horde_ActiveSync_Utils::ensureUtf8() method.
[mjr] Fix some issues caused by attempting to process iTip responses when
      saving to sent mail folder (Bug #12956).
[mjr] Work around issues with clients that crash when receiving an empty body
      element (Bug #12956).
[mjr] Improve device property management and forced-multiplex detecection.
[mjr] Attempt a fix for clients that duplicate calendar entries when tags are
      received in a certain order (Bug #12741).
[mjr] Transparently handle moving from a non-MODSEQ IMAP server to a MODSEQ
      server (Thomas Jarosch <>, Bug #12941).
[mjr] Fix handling of empty OPTIONS tags.
[mjr] More fixes for handling meeting responses sent by Outlook (Bug #12934).
[mjr] Fix some edge case issues that could cause issues in sending changes to
      the client.
[mjr] Fix handling MEETING_RESPONSE requests for certain broken clients (Bug
[mjr] Add support for Recipient Information Cache collection.
[mjr] Fix issue with synchronizing recurring event series exceptions due to
      missing properties in the exception object.
[mjr] Fixes to S/MIME support for issues that prevent the decrypting of S/MIME
      encrypted email on certain clients.
[mjr] Improve error handling when state is lost and device continues to request
      the same state despite being sent the proper status code.
[mjr] Fix returning device information from Mongo driver when multiple user
      accounts exist on the same device.
[mjr] Improve detection of devices that cannot support non-multiplexed
[mjr] Add support for DocumentLibrary.
[mjr] Fix mailbox searching when number of results exceeds the requested RANGE
[mjr] Fix issue where attachments are not downloaded in certain situations on
      EAS version 14+.
[mjr] Some fixes for EAS 14.0/14.1 ITEMOPERATIONS request parsing. Fixes issues
      on some clients with broken email sync on Android 4.3 and 4.4.
[mjr] Fix issue that causes sync to break when SMS messages are deleted on the
      client (Bug #12887).
[mjr] Add support for parsing TNEF data when possible (Bug #12882).
[mjr] Fix typo that was causing server side searching of mailboxes to fail (Bug
[mjr] Add workaround for inconsistent handling of POOMCONTACTS date fields that
      causes fields like birthdays to become offset.
[mjr] Add ability to flag a specific device as blocked.
[mjr] Add ability to filter the list of devices on more than username.
[mjr] Attempt to recover old serialized data before forcing a repairing of
      Email collections.
[mjr] Fix generating EAS folder uids for devices that can't tell the difference
      between a string and an integer.
[mjr] Changes to support multiple non-email collections of the same type.
[mjr] Improvements to memory and database usage.
[mjr] Add MongoDB state driver.

[jan] Add getErrors() to return errors from alarm notifications.
[jan] Catch errors from alarm notifications (Bug #12951).
[jan] Fix compatibility with Oracle.

[jan] Add MySQL password hashing (Request #12962).
[rla] Add joomla encrypted password format (Request #12889).
[mms] Fix parsing salted SHA256 entries (Adam James

[mms] Remove duplicate paths when initializing the default Autoloader.
[mms] Add Horde_Autoloader_ClassPathMapper_PrefixString mapper implementation.

[mms] Use more efficient hashing algorithm, if available.
[mms] Saving cache data should be handled in a shutdown function, not a
[mms] Add Horde-specific prefix to filesystem cache name to allow for easy
[mms] Support msgpack for serializing the map lookup.

[mms] Detect Internet Explorer 11.

[mms] Cache prefix should be handled by Hashtable driver, not underlying
      backend object.
[mms] Fix lifetime usage in the file driver.
[mms] Add 'no_gc' parameter to the Horde_Cache_Storage_File driver.

[mjr] Fix parsing TNEF data that does not contain a meeting request (Bug
[mjr] Fix tests when Horde_Mapi is not available.
[mjr] Add initial support for decoding TNEF meeting requests.

[jan] Don't try authentication to SMTP server if explicitly disabled (Bug
[mms] Fix hiding preferences if they are contained within a prefs container.
[mms] Added standardized/normalized mousewheelY javascript event handling to
[mms] Add nonce generation/checking to Horde_Session.
[mms] Application hook methods moved from Horde:: to Horde_Core_Hooks::.
[mms] Add 'fallback' option for the Horde_Registry#appInit() 'authentication'
[mms] Fix deauthenticating when a system-level logout event occurs.

[mms] Ensure that all text parts are Q-P encoded when signing a MIME part.
[mms] More efficient parsing in Horde_Crypt_Pgp_Parse.
[mms] Remove Horde_Crypt_Pgp#generateRevocation() (Bug #7375).
[mms] Fix submitting PGP keys to a public keyserver (Bug #10931).
[mms] PGP keyserver code now uses Horde_Http_Client to connect to the
[mms] Move PGP keyserver code to a separate Horde_Crypt_Pgp_Keyserver class.
[mms] Add Horde_Crypt_Pgp_Parse#parseToPart().
[mms] Move Horde_Crypt_Pgp#parsePGPData() to separate class
      (Horde_Crypt_Pgp_Parse), since it can be used even if GnuPG binary is not
[mms] Horde_Crypt_Pgp#parsePGPData() now accepts a Horde_Stream object as an

[mms] Fixed comments parsing.

[jan] Fix date calculation if providing both a timestamp and a timezone (Bug
[mjr] Add ability to return human readable description of recurrence rules.
[mjr] Fix issue that could cause incorrect month values when populating an
      empty date object.
[mjr] Fix handling of RRULE with full datetime UNTIL values (Bug # 12869).
[rla] Add aliases for Windows and Lotus timezone identifiers (Bug #11688).

[jan] Update to SabreDAV 1.8.9.
[jan] Fix synchronization with SOGo connector.
[jan] Update to SabreDAV 1.8.7/VObject 2.1.3.

[jan] Return generated (or manipulated) index name from addIndex().
[jan] Avoid cache collisions when changing adapters or configurations.
[jan] Add Horde_Db_Adapter_Base#writeCache() and readCache().
[jan] Add Horde_Db_Adapter#insertBlob().
[jan] Make value of Horde_Db_Value_Binary publically accessible.
[jan] Add Oracle driver (Request #11974).
[jan] Add Horde_Db_Adapter_Base_Schema#column() method.
[jan] Always re-throw PDOExceptions as Horde_Db_Exceptions.
[jan] Fix issues with active Turkish locale.
[jan] Always return a Horde_Db_Adapter_Base_Result sub-class from the select()
[jan] Don't ping server before each query in PDO drivers (Bug #12656).
[jan] Re-organize unit tests.
[jan] Make several methods abstract in Horde_Db_Adapter_Base.
[jan] Deprecate external usage of execute() method.

[jan] Don't submit disabled fields.

[jan] Make SQL backend compatible with Oracle.

[mms] Fix getting data from Redis clusters.

[mms] Fopen driver needs to handle URIs without a protocol scheme - default to
      http (Bug #12991).

[mms] Fix updating cached flags list on a CONDSTORE-only server.
[mjr] Fix regression in obtaining bodypart size when BINARY extension is
[mms] Improved/more concise debug output.
[mms] Optimize sorting in Horde_Imap_Client_Ids object.
[mms] Workaround broken SASL capability responses from POP3 servers.
[mms] Prevent PHP error when a FETCH call is unsuccessful.
[mms] Relax type checking on cache driver object.
[mms] Fix obtaining bodypart size (Bug #12992;
[mms] More correct fix for Exception construction.
[mms] Fix regression where Horde_Imap_Client_Exception was inheriting from a
      different class than before.
[mms] Use more efficient FNV1-32 hashing algorithm for internal hashtable
      storage, if available.
[jan] Make SQL cache backend compatible with Oracle.
[mms] Optimizations to IMAP tokenizer.
[mms] Add raw error message text (in English) to Exceptions.
[mms] Add debug timing information for connection/commands.
[mms] Fix resetting capability list when internally cached authentication
      information becomes invalid.
[mms] Fix updating message list in the hashtable cache driver when deleting.
[mms] When determining a sequence -> UID mapping, do sanity checking to make
      ensure data is valid (Bug #12911).
[mms] Add a Horde_Hashtable specific cache driver.
[mms] Add remove() method to Horde_Imap_Client_Ids.
[mms] Don't login to IMAP server if namespace information is already cached.
[mms] Fix intermittent error when purging messages using a Horde_Cache caching
      backend (Bug #12827).
[mms] Workaround broken IMAP servers that don't support the required AUTH=PLAIN
      authentication method (Bug #12817).
[mms] Added direct TLS v1.x connection option when connecting to remote server.
[mms] Use SHA-1 instead of MD5 for internal hashing.
[mms] Correctly handle untagged BAD IMAP responses.
[mms] Added Horde_Imap_Client_Password_Xoauth2 class.
[mms] Fix harmless PHP undefined error when using with an IMAP server that
      supports XOAUTH2.

[mms] Cache creation of Reflection objects when binding.

[mms] Initial release.

[mms] Initial release.

[jan] Correctly translate display-name attribute of distribution lists.

[mms] Only run shutdown task if the tasklist is currently incomplete.

[mms] More thorough job trying to parse addresses that contain an @ but no
      domain information.
[mms] Correctly identify e-mail addresses without domain information when

[mjr] Clarify license is LGPL and fix package.xml/composer.json files.
[mjr] Initial release.

[mms] Fixed access to a non-visible internal method when performing actions on
[mms] Fix parsing MIME message that contains mixed EOLs (Bug #12842).

[mms] Initial release.

[mms] Need to expire SQL cache for all sub-permissions when deleting a parent

[mms] Correct fix for iteration of Horde_Prefs_Scope object.

[mms] More efficient reading of session data from filesystem in file driver.

[jan] Make SQL backend compatible with Oracle.

[mms] Add raw error message text (in English) to Exceptions.
[mms] Fix handling servers that don't support ESMTP (Bug #12853).
[mms] Fix returning reply code in Exceptions.
[mms] Added direct TLS v1.x connection option when connecting to remote server.
[mms] Added Horde_Smtp_Password_Xoauth2 class.

[mms] Handle transient socket connection issues.
[mms] Add 'tlsv1' as a secure parameter option in the Client constructor.

[mms] Fix packaging error.
[mms] Add the Horde_Stream_TempString class.
[mms] Add the Horde_Stream_String class.
[mms] Add 'all' parameter to Horde_Stream#getToChar().

[mms] Add unit tests.
[mms] Add Horde_Stream_Wrapper_Combine::getStream().
[mms] Add Horde_Stream_Wrapper_String::getStream().
[mms] Fix documentation regarding proper license for this package (BSD).

[jan] Add stubs for Horde_Registry_Loadconfig and
[mms] Add factory for a HashTable instance.
[jan] Correctly set up include paths on installed packages.
[mms] Restore error reporting level after running tests via

[mms] Move JSMin code to a separate package.

[mms] Initial release.

[mms] Add Horde_Translation#r() (raw gettext strings).

[mms] Optimize Horde_Url#toString().

[jan] Remove broken Kolab driver.
[mms] Add null VFS driver.
[jan] Support Oracle with SQL driver.

[mms] Update lz4 source to r108.


Horde Changes
[jan] SECURITY: Protect against CSRF attacks on share permissions form (Bug
[jan] SECURITY: Fix XSS vulnerabilities in top and left menu (Bug #12803).
[jan] Don't show admin alarm form if alarms are disabled.
[mms] Add horde-remove-user-data command-line script.
[mms] Add additional syntax checking for the configuration files in the test
[mms] Only update topbar if the underlying tree data has changed.

Address Book Changes
[jan] SECURITY: Fix XSS vulnerabilities when deleting address books.
[jan] Fix exporting selected contacts (Bug #12759).
[mms] Improved UI when viewing search results from Advanced Search.
[mms] Remove features from UI when VFS is not available or disabled.
[mjr] Fix filtering Facebook driver results (Bug #12739).
[jan] Gracefully deal with columns removed from the backend.

Calendar Changes
[jan] SECURITY: Protect against CSRF attacks on share permissions form (Bug
[jan] SECURITY: Fix XSS vulnerabilities when deleting calendars and resources.
[jan] Fix edge case that allowed to enter start time after end time (Bug
[mjr] Expire fb cache when fb_cals preference changes (Bug #12714).
[jan] Fix setting DTEND in iCalendar data if event has a timezone (Bug #12693).
[mjr] Fix importing new ActiveSync events created on the client with
[mjr] Fix some issues with recurring event exceptions due to improper timezone
      handling (Bug #12630).

Tasks Changes
[jan] SECURITY: Fix XSS vulnerabilities when deleting task lists.
[jan] Fix updating alarm if completing a task recurrence.
[jan] Fix editing tasks via CalDAV (Bug #12745).

Notes Changes
[jan] SECURITY: Fix XSS vulnerabilities when deleting notepads.
[mjr] Fix removing a list of UIDs via the API (Bug #12790,
[mjr] Fix exporting memos as v-note (, Bug #12622).

Library Changes
[mjr] Improve performance related to conflict detection and change mirroring
[mjr] Return proper status codes when OOF is unavailable (Bug #12757).
[mjr] Fix fatal crash when conflict is detected (Thomas Jarosch
      <>, Bug #12755)
[mjr] Fix returning contact image in GAL search for those clients that support
[mjr] Fix GAL searching for clients that depend on SEARCH_RANGE values.
[mjr] Fix some authentication issues when certain clients issue broken
      AutoDiscover requests.
[mjr] Fix some minor issues with Autodiscover requests caught by unit testing.
[mjr] Remove dependency on unreleased Horde_Stream code.
[mjr] Work around for PHP bug 65776, preventing segfaults with certain emails.
[mjr] Remove loop counter code that was incorrectly growing sync_cache data
      (Bug #12707).
[mjr] Ignore incoming SMS delete command. Prevents breaking sync on clients
      that send SMS data, even though we do not return it as an available
[mjr] Prevent sending invalid UTF-8 data in the Subject header, which could
      break sync in some clients.
[mjr] Support for SOFTDELETE.
[mjr] Fix possible infinite loop when a requested message is not found on the
      serer during a SYNC request.

[mjr] Fix initializing Alarms when using PDO_Oci or PDO_PostgreSQL.

[mms] Password strength testing is now case-insensitive
      (, Request #12708).

[mms] Fix key expiration for APC, Eaccelerator, and Xcache (Bug #12735).
[mms] Add Horde_Cache_Storage_Memoryoverlay driver.

[mms] Fix prototype.js issue in IE 9 regarding array iteration in a parent
[mjr] Ensure Bcc is removed from headers when sent via ActiveSync (Bug #12771).
[mjr] Fix calculating calendars to use for SOFTDELETE commands in certain
      configurations (Bug #12765).
[mms] Upgrade jQuery Mobile to v1.3.2/jQuery Core to v1.9.1.
[mms] Add Horde_Core_Ui_FlagImage#getFlagImageObByHost.
[mms] Add base64img property to Horde_Themes_Image.
[mjr] Do not assume that the filter API is available (Bug #12757).
[mms] Add ability to load javascript via a HordeCore AJAX response (Request
[mms] Add ability to expire CSS cache based on file modification time.
[mms] Allow disabling VFS via the configuration interface.
[mjr] Send back dummy mail folders when the Mail API is not available (Bug
[mms] Upgrade prototype.js to most recent git version
[mms] Cache permission results within a PHP access.
[mms] Don't initialize unnecessary prefs object when creating the topbar.
[mjr] Support ActiveSync SOFTDELETE.
[mms] Respect 'nobase64_img' configuration when generating image tags (João
      Machado <>).
[mjr] Support for X509 certificate authentication in ActiveSync requests.
[mjr] Fix calculating policy value for SD card encryption and device encryption

[mms] Merge from upstream - handle keywords/dimensions case-insensitively.
[mms] Performance optimizations in the parser.

[jan] Correct dates with very large days-of-month more efficiently (Bug #12615).
[jan] Don't limit the argument to Horde_Date_Utils::isLeapYear() to 4 digits.

[mms] Remove duplicate constructor.

[mjr] Only query History when we have a range of modSeq values to query
      (, Bug #12660).

[mms] Explicitly reject XOAUTH2 as a authentication mechanism if it is not
      configured in the client (Bug #12756).
[mms] Sort UID list before sending in QRESYNC parameter.
[mms] Ensure that INBOX always appears in subscribed mailbox list when using a
      server that supports LIST-EXTENDED.
[mms] Fix regression where INBOX may not be recognized as subscribed, if the
      server doesn't list it in the subscribed list.
[mms] Handle case-insensitive INBOX return from the server.
[mms] Use strict RFC-compliant workaround for servers that don't support the
      UNSELECT IMAP extension.
[mms] Ensure Horde_Imap_Client_Base#search() always returns the 'count' value
      (Bug #12682).
[jan] Fix incorrect usage of Horde_Db API in cache backend.
[mms] Workaround servers that don't advertise UIDL until after authentication.
[mms] Fix parsing continuation requests sent in SASL AUTH command (RFC 5034).
[mms] By default, use TLS if available and necessary to login to server.
[mms] Fix adding status information to listMailboxes() return when LIST-STATUS
      is not available.

[jan] Fix modifying entries with modify().
[jan] Try starting TLS without querying the rootDSE (Bug #12157).

[mms] Add Horde_ListHeaders#headers().

[jan] Add a CLI formatter and handler.

[mms] Discard personal information when it is identical to e-mail address.

[mms] Fix regression that broke quoted-printable encoding.
[mjr] Work around broken PHP behavior that could cause a segfault when encoding
      certain strings as quoted-printable.

[mjr] Prevent data loss due to forced selection of incorrect database.

[mms] Fix iteration of Horde_Prefs_Scope object.

[mjr] Correctly catch HTTP client exceptions.

[mjr] Correctly catch HTTP client exceptions.

[mms] Fix handling EOLs split on a stream bucket boundary (Bug #12763).
[mms] Fix escaping periods that begin a line of DATA input.
[mms] Explicitly reject XOAUTH2 as a authentication mechanism if it is not
      configured in the client.
[jan] Fix reading translations in PEAR-installed package.
[mms] Fix parsing SMTP error message on servers that support
[mms] Fix aborting a pipelined DATA command if only a subset of recipients were
      rejected (Bug #12659).
[mms] Don't auto-detect TLS availability again once we have done initial

[mms] Initial release.

[mms] Fix spellchecking within the ALT HTML tag (Bug #12610).

[mms] Add Horde_Stream#substring().
[mms] Fix getString() in certain use cases.
[mms] Horde_Stream#getToChar() now supports multiple characters in search
[mms] Horde_Stream#search() now supports multiple characters in search string.
[mms] Add ability to get UTF-8 character length of stream from
[mms] Add length argument to peek().
[mms] Add Horde_Stream#close().
[mms] Add support for parsing UTF-8 characters in stream via
[mms] Add Horde_Stream#eof().
[mms] Add Horde_Stream#end().
[mms] Add Horde_Stream#seek().
[mms] Add Horde_Stream#rewind().
[mms] Add Horde_Stream#pos().
[mms] Add Horde_Stream#__destruct().

[mms] Fix EOL filter when multi-character EOL is split between incoming buckets
      (Bug #2673).

[mms] Fix autoloading from a PHP-defined namespace.

[mms] Fix issue from upstream jsmin.c that was breaking parsing of a keyword
      immediately followed by a regexp (Bug #12787).
[mms] Merge upstream updates to JsMin filter.

[jan] Fix broken offsets during first zone rules.
[jan] Make BYMONTHDAY property as short as possible.
[jan] Fix missing time of day in DTSTART and UNTIL properties.
[jan] Don't create transitions that overlap.
[jan] Use orginally requested time zone instead of alias in TZID.

[jan] Bump minimum version of SSH2 extension to 0.12.


[jan] Fix fatal errors if DAV support is disabled (Bug #12481).

Horde Changes
[jan] Fix fatal error on ActiveSync preferences page (Bug #12631).
[mjr] Fix issue displaying ActiveSync pref page when it contains a wiped
      device entry.
[mms] Allow non-authenticated AJAX actions to be defined.
[mms] Improved session administration UI (Request #12515).
[jan] Make "Others" and cogwheel menu entry available on iOS (Bug #11937).

Address Book Changes
[mjr] Fix deleting multiple contacts via the API (Bug #12554).
[mjr] Fix issue generating contact hashes from EAS contacts that could prevent
      duplicate contact detection from working when certain properties have
      empty values (Bug #12506).

Calendar Changes
[jan] Fix inconsistent handling of all-day events (Bug #12627).
[mjr] Fix infinite loop for Kolab driver when event has recurrence (Bug #12160,
      Thomas Jarosch <>).
[jan] Fix synchronization of shared events in Kolab driver (Thomas Jarosch
      <>, Bug #12585).
[jan] Link to CalDAV help text from calendar dialog.
[mjr] Fix requesting changes by modification sequence (Bug #12508, Thomas
      Jarosch <>).
[mjr] Fix subscribing to internal calendars via subscription URL (Bug #12495).

Tasks Changes
[jan] Fix highlighting task type tabs in list view.
[mjr] Fix requesting changes by modification sequence (Bug #12507, Thomas
      Jarosch <>).

File Manager Changes
[jan] Fix saving columns preference if only one backend exists (Bug #12003).

Timeobject Changes
[jan] Fix timeobjects not showing up in the administration (Bug #12365).
[jan] Add Spanish translation (Manuel P. Ayala <>).

Library Changes
[mjr] Allow authentication to still be attempted without an available password,
      allowing for the use of setups using client certificates.
[mjr] Fix Wbxml output of SEARCH_TOTAL and SEARCH_RANGE values in SEARCH
      responses (Bug #12624).
[mjr] Allow reducing the amount of tag content that is logged to the Wbxml log.
[mjr] Fix broken wbxml in certain cases due to incorrect handling of encoding
      empty array values (Bug #12595).
[mjr] Detect IMAP message deletions on non-CONDSTORE servers during PING
      requests (Request #12597, Thomas Jarosch <>).
[mjr] Do not initiate a looping SYNC if there were any incoming changes, this
      prevents an unnecessary backend ping for each collection.
[mjr] Fix issue that could cause message deletions on the server to not be
      trasmitted to the client if the message falls outside of the FILTER
      window and the IMAP server does not support CONDSTORE.
[mjr] Don't filter out messages flagged as DELETED during initial sync request.
[mjr] Fix issue that could cause corrupt email attachment downloads on certain
      webservers due to PHP flushing the output buffer (Bug #12486).
[mjr] Output X-MS-RP header to advertise to clients that a more recent EAS
      version is supported on the server.
[mjr] Fix issue that could lead to email being duplicated on client due to
      incorrect Collection Type being detected for unsolicited SMS data (Bug
[mjr] Fix decoding EAS Timezone blobs on Big Endian systems.
[mjr] Fix race condition where changes may not be sent to the client due to a
      combination of a long running MOREAVAILABLE sync and server side changes.
[mjr] Do not ask the IMAP server to fetch flags if we don't have an empty imap
      search result (Bug #12551).
[mjr] Fix typos that could cause some sync actions to fail (Bug #12548 and
      #12523, Thomas Jarosch <>).
[mjr] Ensure proper failure codes are returned when a client addition fails to
      be added to the backend during a PARTIAL sync.
[mjr] Fix obtaining the timestamp of the last successful sync when backend uses
      modification sequences (Bug #12529).
[mjr] Fix broken Email sync due to clients that send unsolicited SMS data (Bug
[mjr] Fix returning incorrect syncstamp when adding, editing, or deleting
      messages and backend uses modification sequences (Bug #12523).
[mjr] Fix bug that could cause a sync loop if history data is removed or a
      collection is empty and therefore has no history data (Bug #12531).
[mjr] Fix filtering out changes due to incoming client email requests in
      certain cases.
[mjr] Send empty POOMMAIL_CATEGORIES tag as Exchange does.
[mjr] Fix sending deletion commands to clients when an item is created on one
      EAS client, but deleted on another EAS client.

[mjr] Add X509 authentication driver.

[mms] Improved error handling/logging when system temporary directory is not
[mms] Don't cache missing class paths.
[mms] Purging the autoloader cache no longer requires knowledge of the various
      SERVER_NAME settings used on a given system.

[mms] Detect stock N900 browser as mobile browser (Request #12613; Thomas
      Jarosch <>).

[jan] Fix certain sizes reduced by factor ten (Bug #12462).

[mjr] Always honor activesync_replyposition pref (Bug #12636, Thomas Jarosch
[rla] Add support for external links in topbar (Request #11977).
[mms] Fix active session counting from CLI script (Bug #12628).
[mms] Fix regression in authenticating to an application when a session is
[mms] Update session data stored with secret key if session ID changed and we
      are using non-cookie based sessions.
[mms] Horde_Session now handles resetting the secret key on login.
[mms] Add Horde_Session::ENCRYPT flag for session data.
[mms] The Horde_Mail factory now uses Horde_Smtp as the underlying SMTP driver
      instead of Net_SMTP.
[mms] Don't redirect to current page's URL when logging out with a custom
      message (Bug #12538).
[mjr] Ensure modseq values are always integers which prevents sync loops when
      no history data is available (Bug #12531).
[mms] Ensure Registry exists in error handler before attempting to access it
      (Bug #12540).
[jan] Remove text overlaying menu icon (Bug #12496).
[mms] Log unexpected authentication errors at a NOTICE level instead of EMERG.
[mms] SessionHandler should not use HashTable wrapper, as it explicitly can't
      be serialized.

[jan] Fix detecting bad PGP signatures on some systems with non-English locales
      (Bug #10273).

[jan] Fix installation path for translations.

[jan] Fix schema version table names when using horde-db-migrate-component.

[jan] Update Ukrainian translation.

[mms] Add read-only property indicating whether driver supports locking.

[mjr] Add method to get the most recent history entry for any given id (Thomas
      Jarosch <>, Request #12558).
[mjr] Further fixes for database migration issues, very index name and
      existence before removing (Bug #12498).
[mjr] Correctly remove unused index, readd erroneously removed indexes.
[mms] Fix usage of removeIndex().
[mms] Fix migrations nos. 4 & 5.
[mjr] Add index for better modseq query performance in sql driver (Bug #12476).
[mjr] Fix expiring the log cache when logging a new entry.

[jan] Provide more useful messages when throwing exceptions.

[mms] Added the 'statuscache' property to Horde_Imap_Client_Base (Request
[mms] The 'xoauth2_token' parameter now accepts a
      Horde_Imap_Client_Base_Password object.
[mms] Deprecated the 'encryptKey' parameter and instead support passing a
      Horde_Imap_Client_Base_Password object into the 'password' parameter.
[mms] Added the Horde_Imap_Client::STATUS_FORCE_REFRESH flag.
[mms] Fix regression in setting CAPABILITY for IMAP servers that don't
      automatically send this information after login.
[mms] Fix regression in POP3 SASL PLAIN authentication command.
[mms] Fix regression in mapping message sequence numbers to UIDs when doing an
      'all' activity in POP3.
[mms] Added support for the Google XOAUTH2 authentication mechanism for the
      IMAP Socket driver.
[mms] Fix regression in retrieving CAPABILITY information after we login.
[mms] Fix regression in caching for POP3 servers.
[mms] Cache any data returned from POP3 capability sniffing.
[mms] Add remote POP3 server test.
[mms] Fix sniffing capabilities for POP3 servers that don't support the CAPA
[mms] Fix returning list of expunged UIDs when expunging all messages in a
      mailbox that doesn't support CONDSTORE (Bug #12559).
[mms] Translate mailbox names from UTF7-IMAP -> UTF-8 in return from
      Horde_Imap_Client_Base#getMetadata() (Bug #12541).
[mms] Added the Horde_Imap_Client::STATUS_RECENT_TOTAL return option to
[mms] More graceful handling of servers that return broken FETCH information
      (Request #12441).

[jan] Fix saving all day events when the end date is on the next day (Thomas
      Jarosch <>, Bug #12627).

[jan] Catch errors in Kolab_Storage_Driver_Imap#fetchComplete() (Thomas Jarosch
      <>, Bug #12584).
[jan] Retrieve status changes during running requests (Thomas Jarosch
      <>, Bug #12589).

[mms] Workaround broken Net_SMTP handling regarding the end of message data
      (Bug #12614).
[mms] Added the Horde_Mail_Transport_Smtphorde driver.
[mms] Added the 'bare_addresses_idn' property to Horde_Mail_Rfc822_List.
[mms] Added the 'bare_address_idn' property to Horde_Mail_Rfc822_Address.

[jan] Fixed connection to Memcache servers.
[mms] Immediately throw exception when no servers can be connected to.
[mms] No need to serialize logging object twice.

[mms] Remove stream filters before returning stream to calling code.
[mms] Support Horde_Mail_Transport_Smtphorde when sending messages.
[mms] Net_SMTP does not support sending via BINARYMIME.
[mms] Fix parsing broken multipart messages (Bug #12536).
[mms] Use the correct EOL string when transfer encoding content (Bug #12452).

[jan] Fix unserialization notices in SQL driver.

[jan] Don't set default value for TEXT column.
[rla] Add Db backend for Queues.
[cjh] Add Horde_Queue_Runner#runTask().
[cjh] Allow RequestShutdown runner to handle tasks that spawn other tasks.

[jan] Try to parse error message from json-formated error response.

[mms] Fix session ID tracking for the Hashtable driver.
[mms] Fix rare race condition when creating file-based session data for the
      first time (Thomas Jarosch <; Bug #12557).
[mms] More robust way of checking for locking in a HashTable instance.

[mms] Transparently handle required TLS connection when no security was
[mms] Change default security to use TLS, if available.
[mms] Fix storing password object in the Horde_Smtp object.
[mms] Deprecated the 'password_encrypt' parameter and instead support passing a
      Horde_Smtp_Password object into the 'password' parameter.
[mms] Fix DIGEST-MD5 authentication method.
[mms] Added support for the Google XOAuth2 authentication mechanism.
[jan] Fix detecting if connection to SMTP server fails.
[mms] Initial release.

[mms] Add Horde_Stream#getEOL().

[mms] Horde_Support_Stub now handles array-like accesses.

[jan] Define missing Horde_Test_Stub_Registry property.

[mms] Use strpos() instead of preg_match() for simple string searches (Thomas
      Jarosch <>, Request #12603).

[jan] Allow collections with arbitrary keys when rendering partials.

[mms] Update LZ4 source to r99.


[mjr] Add API methods for using history modification sequences.

Horde Changes
[jan] Set Basic Authentication HTTP headers if running PHP as CGI.
[jan] Return to original URL after logging in.
[jan] Fix login icon.
[jan] Enable Turkish translation on PHP 5.5.
[rla] Add a cli script for running queue tasks.
[jan] Create parent permissions too if automatically creating permissions (Bug
[mjr] Update Twitter block layout to honor Twitter's API version 1.1 display
      requirements, and add support for updating favorites.

Address Book Changes
[jan] Import and export UID vCard attributes (Bug #12427).
[mjr] Honor the 'browse' setting when attempting empty searches.
[jan] Set generic 'phone' attribute when importing from vCard (Bug #12329).

Calendar Changes
[jan] Display CalDAV URL of system calendars and tasklists (Bug #12342).
[jan] Fix system calendar listing via WebDAV.
[rla] Add system calendar support for Kronolith CalDAV access (Request #12342).
[mjr] Fix automatically adding organizer as attendee in dynamic view.
[mjr] Prompt for sending cancellation iTip when deleting an event (Bug #12415).
[rla] Properly display system-owned calendars when browsing DAV (Bug #12325).
[mjr] Fix setting RECURRENCE-ID field when exporting ics file (Bug #12368).
[jan] Fix propagating calendar URLs if import/export is turned off.

Tasks Changes
[jan] Display CalDAV URL of system tasklists (Bug #12342).
[mjr] Only query Horde_History when it's required.
[jan] Fix system tasklist listing via WebDAV.
[rla] Add system tasklist support for Nag CalDAV access (Request #12342).
[jan] Fix task description tooltip (Bug #12421).
[mjr] Persist the tasklist and parent when creating a new task and using "Save
      and New" (Bug #12400).
[mjr] Fix tag browsing of shared tasklists (Bug #12405).
[mjr] Fix importing VTODOs containing RELATED-TO fields (Bug #12355).

Bookmarks Changes
[mjr] Fix some minor issues with crawling bookmarks.
[mjr] Show recently used tags on-demand (Bug #11712).

Tagging Changes
[mjr] Fix obtaining tag cloud information when filtering by objectIds.

Library Changes
[mjr] Fix off by one error when checking WINDOWSIZE, which breaks syncing with
      clients that have broken WINDOWSIZE implementations (Bug #12443).
[mjr] Fix bug that causes incorrect MIME truncation when the client requests no
      MIME truncation (Bug #12437).
[mjr] Fix returning proper values for the
      Horde_ActiveSync_Message_SendMail::replacemime property. The could cause
      replying to email with some EAS 14+ clients to fail.
[mjr] Fix SmartReply/SmartForward commands when the client does not send Wbxml.
[mjr] Fix some fringe cases where client initiated message deletion may fail.
[mjr] Work around some broken behavior in Blackberry clients (Bug #12370).
[mjr] Fix regression that caused MEETINGRESPONSE requests to fail (Bug #12403).
[mjr] Fix ITEMOPERATIONS requests under 14.1.
[mjr] Fix issue the could cause sync to fail if an incorrectly formatted email
      date header is encountered.
[mjr] Filter out email that falls outside of FILTERTYPE on CONDSTORE servers as
      well (Bug #12360).
[mjr] Fix detecting changes for servers without CONDSTORE and a non-zero
      FILTERTYPE (Bug #12316).
[mjr] Fix fetching email messages from search results using ITEMOPERATIONS
      command (Bug #12212).
[jan] Add Spanish translation (Manuel P. Ayala <>).
[mjr] Add support for SyncStamps - either timestamps or backend controlled
      modification sequences.

[jan] Add password policy for minimum number of non-alphabetic characters
      (Friedrich Haubensak <>, Request #12243).
[jan] Fix resetting passwords with LDAP driver (Bug #12317).
[mms] Fix authentication with the Http auth driver.

[mms] Fix explicit key expiration (João Machado <>).

[jan] Print additional error details in fatal errors if available.

[jan] Fix Dbx and Tar unpacking on PHP 5.5+.

[mms] Silence decompression warnings.

[mjr] Fix sending s/mime signed email from EAS clients (Bug #12445).
[mms] Correctly logout when a Horde_Exception_AuthenticationFailure is handled
      by the default Horde error handler.
[mms] Don't convert image data URLs already contained within a CSS file when
      compressing (João Machado <>).
[mms] Prevent endless loop when checkExistingAuth() test fails when
      initializing an application.
[mjr] Fix issue with replying to emails using EAS 14+ that was causing
      duplicated original message bodies for some clients.
[mjr] Performance improvements to Horde_Core_TagBrowser when fetching related
[mjr] Fix bug in TagBrowser causing shared resources to be ignored (Bug
[jan] Fix returning the default from address from a different user without
[jan] Fix inactive email fields with multiple addresses if disabling linking
      (Bug #12051).
[mms] Use built-in ISO 639 mapping in LanguageDetect factory if the underlying
      library supports it.
[jan] Fix rendering of email addresses in inactive forms.
[jan] Fixed displaying photos in rendered vCard files.
[jan] Fix CalDAV/CardDAV access from iOS devices.
[mjr] Fix obtaining IMSP objects from Horde_Core_Factory_Imsp_Auth.
[mjr] Fix ActiveSync folder generation when email support is disabled (Bug
[mms] Fix language selection at login (Bug #12338).
[mjr] Add support for history modification sequences in ActiveSync driver.
[mjr] Fix incorrect offsets when generating free/busy data for ActiveSync
[mms] Add Horde_HashTable to dependency list (Bug #12314).
[jan] Don't overwrite host part of parsed email addresses (Bug #12302).

[mms] SECURITY: Fix XSS vulnerability in Horde_Crypt_Smime#certToHTML() (João
      Machado <>).

[jan] Fix installation path of \Sabre\VObject\Document.
[rla] Add system share support for CalDAV (Request #12342).
[jan] Fix PUTing content from the input stream to the backend.
[jan] Update to SabreDAV 1.8.6.

[mms] Use changed behavior of '_formvars' in Horde_Variables.

[mms] Workaround broken redis installations that don't support the keys()
      command (Bug #12416).

[jan] Use Horde_Cache instead of Horde_HashTable for caching.
[mjr] Add support for modification sequences.
[mms] Abstract history query caching to use Horde_HashTable.
[cjh] Add ability to cache history queries.

[jan] Fix generating DATE-TIME attributes with timezone information (Bug
[jan] Fix returning multiple attribute properties of the same name (Bug
[jan] Remove group identifiers from attribute types (Bug #12329).

[mjr] Fix generating center image crops on Solaris systems that still use older
      Bourne shell.

[mms] Fix regression in handling response codes in POP3 driver.
[mms] Fix clearing data from the MongoDB cache.
[mms] So many IMAP servers have issues with BINARY, that we should not send
      literal8 data unless we absolutely have to.
[mms] Remove read/write buffering from stream connection to remote server.
[mms] Ensure we only use literal8's in APPEND commands.
[mms] Abstract connection code into separate library, to better handle output
      buffering and error handling.
[mms] Fix regression in throwing exceptions when parsing POP3 server responses.

[mjr] Fix some undefined constant errors.

[jan] Re-throw ReflectionExceptions as Horde_Injector_Exceptions.

[mms] Honor 'pipelining' configuration option in SMTP transport driver.

[mms] Fix handling of large items (João Machado <>).

[jan] Fix setting a different body if reusing a Horde_Mime_Mail object.
[mms] Update MIME extension mapping.
[mms] Fix Horde_Mime_Part::getRawPartText() when obtaining the first body part
      of a single part message.

[mms] Fix checking/creating indices when a MongoCollection object is passed to
      checkIndices()/createIndices() (Bug #12353).

[mms] Add ability to override locked pref status when setting value via

[mjr] Fix fetching user mentions.
[mjr] Use API version 1.1
[mjr] Add support for favorites.

[mjr] Fix setting permissions while saving shares when using the sqlng driver
      (Bug #12413).

[mms] SECURITY: '_formvars' form input must now be JSON encoded, not PHP

[jan] Return more detailed error messages from File driver.

[mms] Change license from PHP -> MIT.


Address Book Changes
[jan] Fix searching in LDAP address books (Bug #12297).

Calendar Changes
[jan] Add help text for CalDAV usage.

Library Changes
[mjr] Fix some issues caused by broken non-mime part truncation.
[mjr] Fix handling MIMETRUNCATION for emails with attachments (Bug #12289).
[mjr] Fix missing email body data for certain clients (Bug #12203).
[mjr] Fix requesting email data via ITEMOPERATION command (Bug #12292).
[mjr] Fix a BC break that was causing FOLDERSYNC requests to f fail.
[mjr] Fixes for broken clients like the S3 that request SMS sync even when told
      there is no SMS collection.

[mms] Fix return from get() when using the Hashtable driver.
[mms] Fix hashtable driver name.
[mms] Horde_Memcache cache driver is now deprecated in favor of the
      Horde_HashTable driver.
[mms] Add Horde_HashTable cache driver.

[jan] Don't break existing unchanged sources in the preferences.

[mms] Be more lenient about mailboxes containing null characters in
      Horde_Imap_Client 2.x for BC reasons.
[mms] Fix flushing debug buffer when unexpected data is returned from the
      remote server.
[mms] Improved detection of client-side command errors before sending to the
      remote IMAP server.
[mms] Better sanity checking that we don't send binary data for mailbox

[mms] Horde_Memcache driver is now deprecated in favor of the Horde_HashTable
[mms] Added Horde_HashTable driver.
[mms] Implement logging for all storage drivers.


[jan] Add file manager and bookmarks manager.

Horde Changes
[mms] Add 'ajaxaction_handle' hook and deprecate 'ajaxaction' hook.
[mms] Add configuration option to configure the e-mail address reset password
      confirmation messages should be sent from.
[mms] Treat an AJAX session token failure as a session timeout.
[mms] Add ability to update/create NoSQL indices from the admin config page.
[mjr] Add activesync device hooks.
[mms] Add a global default NoSQL driver configuration.
[mms] Allow MongoDB to be used as a cache backend.
[jan] Check all installed PEAR packages when checking for updates.
[mms] Add 'ajaxaction_data' hook.

Address Book Changes
[mms] Back button in smartmobile view for group member returns to group entry,
      not browse list.
[mms] Fix resetting smartmobile entry page when viewing more than 1 contact.
[mjr] Update the default SQL schema.
[jan] Fix incorrect dependencies.
[jan] Add CardDAV server support.
[mjr] Update the default SQL source schema (Request #11993).
[mms] Add links to group members on smartmobile entry page.
[mms] Add group icon to group contacts in smartmobile browse view.
[jan] Allow to search all search fields at once in basic searching.

Calendar Changes
[jan] Fix editing of events per CalDAV if client sends LAST-MODIFIED attribute
      (Bug #12244).
[jan] Fix incorrect dependencies.
[jan] Add CalDAV server support (Request #4267).
[jan] Use Horde_Dav for accessing remote calendars.
[mjr] Expose Kronolith_FreeBusy::get() via the external API.

Tasks Changes
[jan] Don't include external tasks in listTasks() API results.
[jan] Fix incorrect dependencies.
[jan] Add CalDAV server support (Request #4267).
[jan] Update design to closer match the Horde 5 UI.

Notes Changes
[jan] Fix incorrect dependencies.
[jan] Add Ukrainian translation (Andriy Kopystyansky <>).
[mjr] Add support for ActiveSync synchronization of notes.

Library Changes
[mjr] Improvements to synchronizing reply/forward state and maillog entries
      when using Outlook.
[mjr] Improvements and various fixes to detecting client originated changes.
[mjr] Fix numerous issues related to incoming changes with GETCHANGES
      explicitly set to false.
[mjr] Fix mirroring back changes when an object created on the client is edited
      on the same client within 1 sync cycle.
[mjr] Fix mirroring new entries created on certain clients back to the client.
[mjr] Fix creating new objects from Outlook clients.
[mjr] Fix setting incoming heartbeat value.
[mjr] Fix sending updated heartbeat interval when requested heartbeat is out of
[mjr] Fix building initial message state in certain cases for email collections
      when IMAP server does not support per mailbox MODSEQ values.
[mjr] Fix fatal error when using the deviceCallback functionality (Bug #12236).
[mjr] Fix creating/deleting mailboxes with non-empty default namespaces (Bug
[mjr] Fix non-BC change in abstract method signature.
[mjr] Flag changes will now trigger a positive PING/SYNC if the IMAP server
      supports per-mailbox MODSEQ and CONDSTORE.
[mjr] Add support for EAS 14.0 and 14.1 (see for complete feature list).
[mjr] Fix synchronizing certain recurring tasks (Bug #12223, Thomas Jarosch
[mjr] Fix issue that could cause some attachments to become corrupt on the

[mms] SECURITY: Fix token validation of AJAX actions.
[mms] Added Horde_Core_Factory_Mail factory to allow for alternative mailer
[mms] Fix honoring the sendmail_eol configuration option.
[mms] Make sure we are not using a SQL Cache driver in the DB object itself.
[mms] Horde_Memcache usage is deprecated in favor of Horde_HashTable.
[mms] Add factory for Horde_HashTable drivers.
[jan] Fix dependencies.
[mjr] Workaround some limitations with maillog and answered flag syncing in
      Outlook 2013
[mms] Add the Horde_Registry_Application#nosqlDrivers() method.
[mms] Add the Horde_Core_Nosql library.
[jan] Fix setting configuration for timezone lookups.
[mms] Add a NoSQL factory.
[mms] Allow MongoDB to be used as a cache backend.
[mms] Regenerate session IDs during an active session to protect against
      session fixation attacks.
[mms] Re-enable support for $conf['session']['timeout'] to allow for
      non-session based cookie lifetimes.
[jan] Add menu entry to show the notification log.
[mms] Dynamic javascript framework now has support for audio notification
[mjr] Add support for EAS 14.0 and 14.1 (see for complete feature list).
[mms] Add ability to submit form data to AJAX action in smartmobile view.
[mms] Upgrade jQuery Mobile to v1.2.1/jQuery Core to v1.8.3.
[mms] Smartmobile view now honors the current CSS caching configuration.
[mms] Add Horde_Core_Ajax_Application#callAction().
[mjr] Close growler notification when alarms are dismissed (Bug #12122).
[mms] CSS parsing now uses the CSS3 compatible Horde_Css_Parser package instead
      of Horde_Text_Filter_Csstidy.
[mms] Fire before/after events in core AJAX javascript code when processing
      data returned from the server.
[mjr] Fix sending encrypted emails while locating recipient's public key via
      the GAL.
[jan] Use PEAR package information to retrieve packages names in
[jan] Get version list from when checking for updates.
[mms] Add support for 'ajaxaction_data' hook (won't be documented in Horde
      until 5.1+).

[jan] Fix empty collections if applications don't provide DAV methods (Bug
[jan] First beta release.

[mms] Add initial unit tests.
[mms] Add memory driver.
[mms] Actually have HashTable return results for get() and exists().
[mms] Add stats() method to the Memcache driver (Bug #12263).
[jan] Fix fatal errors.
[mms] First beta release

[mms] Add Horde_Mongo_Client#checkIndices() and
[mms] Add Horde_Mongo_Collection_Index interface.
[mms] First beta release.

[jan] Use Horde_Dav for DAV RPC backends.


[jan] Update Ukrainian translation (Andriy Kopystyansky
[jan] Update Basque translation (Ibon Igartua <>).
[jan/mms] Improve/fix unit tests.
[jan] Improve dependency detection.

Horde Changes
[mms] SECURITY: Fix XSS vulnerability on smartmobile portal page (João Machado
[jan] Fix changing expired passwords.
[jan] Fix form to reset passwords.
[mjr] Fix displaying activesync devices when a username hook is being used
      (Bug #12186).
[jan] Hide navigation elements from print layout (Bug #12163).
[cjh] Add support for New Relic real-user monitoring (RUM) if New Relic is
[mms] Login screen now hides the mode input if javascript is not available, as
      minimal view is the only supported mode (Request #12093).
[jan] Fix searching from topbar if search URL contains parameters.

Address Book Changes
[mms] SECURITY: Fix XSS vulnerability on smartmobile contacts details page
      (João Machado <>).
[jan] Fix importing certain phone fields from vCard (Bug #12178).
[mjr] Fix issues with importing contacts via ActiveSync when no default_dir
      pref is set (Thomas Jarosch <>, Bug #12188)
[mjr] Fix ActiveSync global address book searches when using LDAP as backend
      (Bug #12089).

Calendar Changes
[jan] Don't throw error on importing events with unknown timezones (Bug
[jan] Don't send notifications for all recurrence exceptions when deleting
[jan] Only send update notifications for local calendars.
[jan] Re-enable users in drop-down list after revoking permissions (Bug
[jan] Fix exporting events of a certain time span (,
      Bug #12074).
[mjr] Always populate the meetingstatus property in ActiveSync requests  to
      avoid issues with some versions of iOS (Bug #12056).
[mjr] Fix deletion of resource events after deleting resource (Bug #12034).

Tasks Changes
[jan] Fix recurring tasks in Kolab driver (Thomas Jarosch
      <>, Bug #12222).
[mjr] Fix setting alarm time when syncing (Bug #12201,
[mjr] Fix issue causing due dates to be offset when syncing (Bug #12200,
[jan] Fix listing alarms of recurring tasks.
[jan] Fix default task list in portal block (Bug #12133).
[jan] Fix displaying of due dates of recurring events in some views.
[jan] Update broken rows due to migration bug in PostgreSQL (Bug #12101).
[mjr] Fix uncompleting tasks from task view in smartmobile view
      (, Bug #12098).
[jan] Include parent tasks in cost object labels.
[jan] Only return completed tasks up to a week old as cost objects.
[mjr] Set correct timezone on incoming ActiveSync tasks (Bug #12053).
[jan] Update French translation (Paul De Vlieger

Library Changes
[mjr] Fix returning message property values when the value is defined, but
      empty (Bug #12197).
[mjr] Fix saving IMAP folder state when CONDSTORE is available but no
      per-mailbox MODSEQ.
[mjr] Fix mail synch failure due to messages being deleted on server during
      initial synch.
[mjr] Fix issue with importing messages due to bad merge (Bug #12185).
[mjr] Fix typo that could cause device information to not be saved correctly.
[mjr] Fix authentication clean up during certain request types.
[mjr] Work around broken HTC clients when creating appointments with no
      reminders (Bug #12155).
[mjr] Fix setting User Agent value for certain clients in EAS 12.1 or greater
      (Bug #12154).
[mjr] Properly set disposition and content-id properties when building
      attachments from multipart/related parts (Bug #12123).
[mjr] Various improvements and code cleanup.
[mjr] Some fixes to GETITEMESTIMATE requests.
[mjr] Logging improvements.
[mjr] Fix regression introduced in 2.2.1 caused by fix for Bug #12056.
[mjr] Fix synchronizing email messages containing ICalendar attachments with no
      METHOD parameter (Bug #12083).
[mjr] Fix updating state when a PING detected changed has been removed before
      SYNC runs (Bug #12075).
[mjr] Always output the optional POOMCAL_MEETINGSTATUS property to avoid issues
      with some versions of iOS (Bug #12056).

[jan] Fix documentation formatting.
[jan] Add extensive documention.

[jan] Improve documentation.

[mms] Additional sanity checking when trying to load from cache.
[mms] Add support for horde_lz4 for compressing cache data.
[mms] Better error-checking when uncompressing cache data.

[mms] Add MongoDB cache driver.
[mms] Make Horde_Compress_Fast a required package (Bug #12166).
[mms] Fix serialization of all storage drivers.
[mms] Fix regression preventing compression of Horde_Cache data (Bug #12088).
[mms] Abstract data compression out into Horde_Compress_Fast package.

[mms] Silence decompression warnings.
[mms] Add horde_lz4 compression driver.
[mms] Initial release of package.

[jan] Fix error handler in some PHP versions (Bug #12103).
[mms] Queue log entries issued before framework is initialized and log them
      once that occurs.
[mjr] Fix authentication issue when using Horde_Session_Null and expiring
      sessions (Bug #12078).
[mjr] Fix logger creation during RPC access (Bug #12094).
[mms] Add logging wrapper class to reduce serialized size of factory-created
[mms] Always compress cache data, if possible.
[mms] Abstract data compression out into Horde_Compress_Fast package.
[mjr] Fix fatal error synchronizing an ActiveSync meeting response (Bug
[mms] Added Horde_Shutdown - global Horde shutdown function handler.
[mjr] Horde_Registry::getServiceLink() can now return full URLs.
[mms] Allow graphics/sounds to be loaded from view-specific theme directories.
[mms] Add Horde_Themes::viewDir().
[mms] Use csstidy library to parse CSS files when creating static CSS (Bug
[mms] Add Horde_Url#selfUrlParams().
[mjr] Fix determination of ActiveSync sent-mail folder in certain cases (Bug
[mms] Fix order of adding URL parameters in HordeCore.addURLParam (Bug #12058).
[mms] Ensure that session IDs are always 32 bytes long (Bug #12041).
[mjr] Fix saving ActiveSync sent mail when the message contains MIME parts (Bug
[mms] Fix replacing spellchecker elements within tables (Bug #12028).
[mms] Fix encoding of JSON parameters to Horde::popupJs() (Bug #12037).
[mms] Fix destroying session data when the null session driver is used.

[mms] Fix Horde_Crypt_Pgp#encryptedSymmetrically() from entering an infinite
      loop when using GnuPg v2.
[mms] Improve security in PGP key generation (Request #12099).
[jan] Change default keyserver to
[jan] Fix finding key ID for an email address on a keyserver (

[mms] First release for Horde 5.

[jan] Don't use /e modifier with preg_replace() calls (Remi Collet
[jan] Fix parsing yearly recurrences on the same day from Kolab data (Bug
[jan] Fix recurring dates on the 5th weekday of a month (Bug #11181).

[mjr] Fix several parsing bugs (Bug #12006).

[mms] Fix storing schema information in Horde_Cache.
[jan] Use LONGBLOB columns in MySQL when creating binary fields
      (, Bug #12195).
[jan] Fix updating existing rows with default values when adding columns in
      PostgreSQL (Bug #12101).

[rla] Add license file.

[jan] Add configuration option to set User-Agent.
[jan] Allow self-signed certificates when using the fopen driver.

[jan] Fix exporting of base64-encoded attribute values.

[mms] Fix regression in Socket driver when moving messages without UIDPLUS.
[mms] Fix caching MIME structure data in POP3 driver.
[mms] Enhanced parsing of POP3 data from the remote server.
[mms] Workaround broken IMAP servers and prevent infinite loops (Bug #12265).
[mms] Add support for the DOWNGRADED IMAP response code (RFC 6858).
[mms] Fix returning the list of deleted messages in the POP3 driver.
[mms] Handle all additional namespace queries in a single call.
[mms] Pipeline multiple IMAP LIST/LSUB calls.
[mms] Fix login methods that require server continutation responses.
[mms] Correctly handle enabled cached status when not using imapproxy.
[mms] Fix caching of CAPABILITY information when not using imapproxy.
[mms] Support pipelining of STORE + EXPUNGE if UIDPLUS is available.
[mms] Pipeline multiple STATUS commands if LIST-STATUS is not available.
[mms] Fold statusMultiple() functionality into base status() command.
[mms] Pipeline multiple IMAP FETCH calls.
[mms] Delay sending LANGUAGE command until we send another command to save a
[mms] Delay sending ENABLE command until we send another command to save a
[mms] Add internal support for IMAP command pipelining.
[jan] Fix dependency.
[mms] Support UID EXPUNGE command for large UID lists (Bug #12228).
[mms] Don't attempt to expunge messages if the list of UIDs to expunge is empty
      (Bug #12226).
[mms] Correctly use limit parameter to Horde_Imap_Client_Ids#split() (Bug
[mms] Add a MongoDB based backend for storing cached IMAP/POP data.
[mms] Add Horde_Imap_Client_Cache#clear().
[mms] Add a Horde_Db based backend for storing cached IMAP/POP data.
[mms] Abstract the backend storage into a separate driver for the
      Horde_Imap_Client_Cache class.
[mms] Correctly parse message/rfc822 BODYSTRUCTURE responses if the server does
      not provide any envelope information (Bug #12190).
[mms] Fix regression in storing cached flags if not using debug mode.
[mms] Add properties to Sync object to allow retrieval of previous sync state
[mms] Only do UNCHANGEDSINCE check when storing flags if the user explicitly
      passes the 'unchangedsince' parameter.
[mms] Add the 'nocache' option to Horde_Imap_Client_Base#fetch().
[mms] Always return UID information for FETCH queries if cache is active, so we
      ensure that mappings are updated and any cacheable data can be cached.
[mms] Don't cache FETCH data if it does not contain UID information (Bug
[mms] Fix SETQUOTA, GETQUOTA, and GETQUOTAROOT commands on mailboxes that
      contain non-7bit characters (Bug #12059).
[mms] Fix returning UID data from the Horde_Imap_Client_Data_Sync object (Bug
[mms] More efficient implementation of Horde_Imap_Client_Ids#range_string.
[mms] Fix APPENDs on IMAP servers that do not support CATENATE.
[mms] Fix from/to searches on servers that support SORT=DISPLAY when using the
      *_FALLBACK sort criteria.
[mms] Ensure that a FETCH and/or SELECT/EXAMINE (w/QRESYNC) will not exceed
      maximum allowed command length on the IMAP server (Bug #12001).
[mms] Add Horde_Imap_Client_ids#split().
[mms] Fix regression in the replace argument, and multiple arguments to
      add/delete, for the store() command.
[mms] Make sure the modseq given to the vanished() command is always at least 1
      (Bug #12031).

[mms] Add MongoDB driver.
[jan] Fix retrieving lock list if permanent locks exist
      (, Bug #12077).
[jan] Deny exclusive lock if shared locks exist.
[jan] Don't make lock non-permanent when resetting a permanent lock.
[jan] Fix retrieving information for permanent locks.
[jan] Add unit tests.

[mms] Correctly encode IDN domains when sending mail (Bug #12116).

[mms] Add 'no_body' parameter to Horde_Mime_Part#parseMessage().
[mms] Fix parsing wrapped header lines that contain no atom data (Bug #12189).
[mms] Allow a Horde_Domhtml object to be directly passed in to
[mms] Content-Type parameters are case-insensitive (Bug #12161).
[mms] Sanity checking: ignore empty values for Content-Transfer-Encoding MIME
      header (Bug #12146).
[mms] Null characters are no longer allowed in e-mail headers as of RFC 2822.
[mms] More accurate/comprehensive Horde_Mime::is8bit() check (Bug #12127).
[mms] Only use non-ASCII in MIME parameters when absolutely necessary.
[mms] Need to always add charset information to MIME encoded parameters if they
      are not displayable in pure US-ASCII (Bug #12127).
[mms] Correctly quote forbidden characters in MIME parameter data (Bug #12127).
[mms] Round up size output in Horde_Mime_Part#getSize().

[mms] Spreadsheet conversion now works without using temporary files.

[jan] Add Horde_Perms_Permission_Kolab#getOwnerPermissions().

[mms] Fix removing prefs from storage backends (Bug #12208).
[mms] Fix fatal error in Horde_Prefs_Scope#valid().
[mms] Add MongoDB storage driver.
[mms] Fix removing preference from backend (Bug #12207).
[mms] More compact internal/serialized representation of data in
[mms] Simplify Horde_Prefs_Scope iterator.
[mms] Fix regression that broke Horde_Prefs_Identity#getDefaultFromAddress() in

[jan] First stable release for Horde 5.

[jan] Fix examples location.

[mjr] Fix initial authentication for recently changed Twitter API requirements
      (Bug #12165).
[jan] Fix examples location.

[mjr] Update WWO API endpoints.

[mms] Add MongoDB driver.

[jan] Fix testing for owner and user permissions in Kolab shares.

[mms] Add Horde_Support_CaseInsensitiveArray class.
[mms] Add missing magic methods to Horde_Support_Stub.
[mms] Simplify Horde_Support_Array iterator.

[jan] Improve documentation.

[mms] Add test factory for MongoDB.
[jan] Return to old directory after running all tests.

[jan] Improve performance.

[mms] Yet more sanity checking in the Text2html filter to workaround incorrect
      charset information.
[mms] Handle non-supported htmlspecialchars() charsets in the Text2html filter
      (Bug #12253).
[mms] If a preg call exceeds the backtrack limit, fallback to the original text
      (Bug #12152).
[mms] Add 'words' option to the Words filter.

[jan] Fix caching of parsed timezone information.

[mms] Add MongoDB token backend.

[mms] Fix licensing documentation; Horde_Tree has been released under LGPL 2.1
      since 2004 (Bug #12070).

[mms] Add Horde_Url_Data::isData().

[mms] Fix Horde_Domhtml#returnBody().
[mms] Simplify Horde_Variables iterator.
[mms] Can't add charset directly to HTML document or else DOM will alter
      document when generating HTML.
[mms] Added Horde_Domhtml#getBody().

[mms] Add MongoDB storage driver.
[jan] Use ssh2_sftp_chmod() if available (ssh2 0.12).

[jan] Correctly detect sequences when dumping and be more strict when loading

[mms] First stable release.


[jan] Update French translation (Paul De Vlieger
[jan] Update Slovak translation (Jozef Sudolský <>).

Address Book Changes
[jan] Fix emptying shared address books.
[jan] Fix importing of LDIF data (Bug #11972).

Calendar Changes
[jan] Update alarms, resources, and tags when deleting Kolab events (Bug
[jan] Fix some issues with workweek views if first day of week is Sunday (Bug
[jan] Fix adding holiday calendars if not using English locale (Bug #11961).
[jan] More robust date parsing during event importing (Bug #11916).
[jan] Always export year numbers with four digits to CSV (Request #11917).
[jan] Fix JavaScript error if Nag is not installed.

Notes Changes
[jan] Fix exporting bodies of encrypted notes (Bug #11960).

Tagging Changes
[mjr] Fix logic that could possibly lead to incorrect content types being
      applied to objects (Bug #12016).

Library Changes
[mjr] Fix handling of deleting or moving messages from the client that no
      longer exist on the server (Bug #12013).
[mjr] Fix setting flags on messages marked for deletion (Bug #12007).
[mjr] Fix existence checking, again.
[mjr] Fix behavior when attempting to fetch attachment of a vanished message.
[mjr] Fix multiple accounts on a single client (Bug #11963).
[mjr] Fix setting PINGable collections on non-empty PING requests.
[mjr] Fix handling missing state when processing COMMANDS.
[mjr] Fix loading state for FOLDERSYNC requests for certain clients.

[jan] Fix argument reading in Samba drivers (Bug #11926).
[mms] Remove call-time pass-by-reference, which was causing PAM authentication
      driver to fail in PHP 5.4+ (Bug #10965).

[mms] Upgrade jQuery Mobile to v1.2/jQuery Core to v1.8.2.
[mjr] Fix bug in OpenLayers that caused Prototype's Event object to be
      overwritten (Bug #12019).
[jan] Fix notifications while authenticating transparently.
[mms] Add a configurable delay to the jQuery Mobile autocomplete plugin.
[mjr] Fix handling of moving or deleting messages that have been removed from
      the server (Bug #12013).
[mms] Be sure tasks are passed to any derivative of the HordeCore AJAX response
[mms] Fix spellchecking on HTML data (Bug #11986).
[jan] Fix fatal error in signup and password reset forms (Bug #11952).

[jan] Fix error: DateTime::__construct(): Failed to parse time string
[jan] Catch DateTime exception in Horde_Date_Utils:daysInMonth() (Bug #11916).

[mms] Update CKEditor to v3.6.6.
[mms] Move ckeditor javascript files into a separate ckeditor directory
      (Request #11950).

[jan] Don't set METHOD property unconditionally (Bug #10741).
[jan] Convert test suite to PHPUnit.

[mjr] Fix image watermarking for Imagick and ImageMagick drivers.

[mms] Fix regression in parsing LISTRIGHTS results (Bug #11994).
[mms] Workaround QRESYNC errata that allows FETCH FLAGS results to be returned
      without UID information.
[mms] More robust handling of split FETCH responses.
[mms] Some IMAP servers require a mailbox to be unselected before it can be
[mms] Ignore fetch data returned from an UID FETCH command if it doesn't
      include UID information (Bug #11946).
[mms] Add exists option to Horde_Imap_Client_Base#fetch().

[jan] Don't depend on an IMP identity object.

[jan] Replace preg_replace() /e modifier.

[mms] Fix regression in outputting Content-Disposition 'size' parameter if no
      other Content-Disposition parameter is present.
[mms] Never return decimal values from Horde_Mime_Part#getSize().
[mms] Added parsing limit for deeply nested MIME parts.

[jan] Fix getFormatHeight() and getFormatWidth() in landscape mode.

[jan] Add Horde_Prefs_Identity#getFromAddress().
[jan] Fix LDAP driver and use Horde_Ldap (Heinz Schweiger
      <>, Request #11697).
[mms] Horde_Prefs_Identity#getDefaultFromAddress() now returns a
      Horde_Mail_Rfc822_Address object.

[mms] Fix detection of sys_getloadavg() on Windows (Bug #11972).

[jan] Add test/ directory to include_path to allow autoloading of test classes.

[mms] Html2text filter now has improved handling of extra whitespace.
[mms] Fix XSS filter removing control characters that cause certain charsets
      (ISO-2022-JP) to break (Bug #12015).

[jan] Add license file.

[mms] Add Horde_Url_Data class.

[mms] Added 'charset' and 'metacharset' parameters to returnHtml().
[mms] Added Horde_Domhtml#getCharset() to get best-guess charset of current
      encoding within the DOM object.
[mms] Fix inserting HEAD into HTML document with Horde_Domhtml#getHead() if it
      doesn't already exist in the document.

[jan] Fix generating form tags.


[jan] Update Basque translation (Ibon Igartua <>).
[jan] Use default Kolab folders for default share preferences.
[jan] Mark Kolab folders as default when changing default share preferences.

Horde Changes
[jan] Fix setting menu refresh rate to none (Bug #11867).
[jan] Fix JavaScript errors after updating the top menu.

Address Book Changes
[mjr] Avoid sending broken datetime values to ActiveSync.
[jan] Update French translation (Laurent Foucher

Calendar Changes
[jan] Fix setting default start time in new event dialog of basic view (Bug
[jan] Fix saving alarm methods to Kolab backend (Thomas Jarosch
      <>, Bug #11880).
[jan] Fix moving events between calendars (Bug #11830).
[jan] Fix fatal error on recurring events with custom timezone (Bug #11587).
[jan] Fix double owner name on shared calendars.
[jan] Defer navigation in dynamic view until environment has been initialized.
[jan] Fix receiving resource calendars in dynamic view (Bug #11776).

Tasks Changes
[mjr] Fix closing the quick task dialog when cancel is pressed (Bug #11848).
[mjr] Fix displaying and editing tasks from search results (Bug #11847).
[mjr] Fix incoming task sync with certain combinations of due date values.
[mjr] Fix quick task addition without session cookies enabled (Bug #11875,
      Thomas Jarosch <>).
[jan] Fix editing tasks from the merged list view in smartmobile mode (Bug

Notes Changes
[mjr] Fix importing notepads (Bug #11849).

Library Changes
[mjr] Fix regression caused by fixing some logging in the sync cache.
[mjr] Fix some possible character set related issues with HTML email.
[mjr] Fix sending boolean policy values.
[mjr] Fix DB migration for some RDBMS (Bug #11877).
[mjr] Fix authentication related errors.
[mjr] Fix regression caused by incorrectly named variable (,
      Bug #11919)
[mjr] Fix non empty PING requests with empty FOLDERS element.
[mjr] Fix exporting folder deletions (Bug #11918).
[mjr] Improvements to fetching and sending message body.
[mjr] Fix searching mailboxes on certain devices that send MIMESUPPORT flag,
      like iOS (Bug #11900).
[mjr] Fix updating the read flag on iOS.
[mjr] Set the importance flag on mail messages.
[mjr] Fix detecting mailbox changes on IMAP servers that support CONDSTORE but
      not per mailbox MODSEQ (Bug #11754).
[mjr] Check for invalid UTF-8 data before sending to client.
[mjr] Improve loop detection logic, preventing unnecessary state resets.
[mjr] Fix charset issues with certain broken emails which can cause iOS to
[mjr] Fix issue causing SYNC/PING loop in empty mail folders (Bug #11823).
[mjr] Fix importing message read flag (Bug #11741).
[mjr] Fix charset conversion of HTML messages when original body is plaintext
      (Bug #11745).
[mjr] Use integer column for message_uid field for IMAP messages (Bug #11742)

[jan] Fix updating users in LDAP driver (Bug #11791).

[mjr] Properly detect mobile Chrome on iOS (Bug #11868).

[jan] Fix sourceselect preferences UI that includes multiple sources.
[mms] Fix multiple AJAX submits to same hidden IFRAME on the same page (Bug
[mjr] Fix some MIME related issues when sending email via ActiveSync (Bug
[mjr] Fix detecting non-default ActiveSync policies.
[mjr] Improvements to ActiveSync authentication failure handling.
[mjr] Fix issue with Null session driver that could cause authentication to be
[mms] Fix restoring cached theme data (Bug #11906).
[mjr] Fix dismissing reminders without session cookies enabled (Thomas Jarosch
      <>, Bug #11875).
[mjr] Improve logging in ActiveSync drivers to better track down issues.
[jan] Fix returning complete groups with auto-completer.
[mjr] Fix various issues with charset encoding when sending ActiveSync email.
[jan] Link back to application from preference screen.
[mjr] Fix GAL searching via ActiveSync (, Bug #11808).
[mjr] Fix saving sent mail when using ActiveSync (, Bug
[jan] Reset NLS information when changing languages.
[jan] Fix downloading files with special characters in Gollem (Bug #11770).
[mms] Added Horde_Core_Factory_SpellChecker.
[mms] Don't log backtrace for E_STRICT errors.

[mms] Fix Openssl driver for PHP 5.3.0-5.3.2 (Bug #11797).

[jan] Fix more strftime() formatting of certain locale-specific format
      specifiers (Bug #11831).

[mms] Fix multipart APPENDs when IMAP server does not support CATENATE.
[mms] Fix harmless PHP warning issued when IMAP server supports SORT but not
[mms] Fix bodystructure parsing for IMAP servers that do not return full
      extension data (Bug #11907).
[mms] Re-add optimizations to IMAP token parser.
[mms] Additional workarounds for IMAP servers with broken BINARY
      implementations (Bug #11855).
      criteria to Horde_Imap_Client_Base#search().
[mms] Revert valid PHP changes that caused errors in broken old versions of
[mms] Fix client-side address sorting (Bug #11820).
[mms] Optimizations to IMAP token parser.
[mms] Fix setting language value when language is returned in an IMAP list.
[mms] Fix sending literal mailbox data to an IMAP server (Bug #11800).
[mms] Add Horde_Imap_Client_Data_Format_String#getStream().
[jan] Fix Dutch translation (Arjen de Korte <>).
[mms] Fix regression in POP3 driver for servers that don't support the
      RESP-CODES extension.
[mms] Another workaround for broken Cyrus APPEND behavior (Bug #11769).

[jan] Return date-only values as floating dates (Bug #11767).
[jan] Correctly format all-day events (Bug #11767).

[mms] Fix behavior of 'persist' option in SMTP transport driver.
[mms] Fix default_domain parameter to Horde_Mail_Rfc822 (Bug #11804).

[mjr] Fix issue where parsing multipart/alternative messages would turn the
      parts into attachments.

[jan] Update XSLT processor for OpenDocument files.

[jan] Fix swapped getFormatHeight() and getFormatWidth() methods (Bug #11762).

[jan] Remove creator permission mapping from Kolab backend (Bug #11713).

[mms] When removing a pref, reset its value in the cached scope to the default
      (Bug #11895).
[mms] Delete preference from storage backend when calling Horde_Prefs#remove().
[mms] Add throw parameter to Horde_Prefs#store().
[jan] Fix creating storage folder for Kolab/IMAP backends (Bug #11751).

[jan] Fix generating cache key for generated URLs (, Bug

[mms] Honor the 'path' configuration parameter in Aspell driver (Bug #11778).
[mms] Minimum length configuration was not being honored in the Aspell driver.
[mms] Deprecated Horde_SpellChecker::factory().
[mms] Add Horde_SpellChecker_Exception.
[mms] Convert test suite to PHPUnit.

[mms] Fix validating certain strings of UTF-8 data (Bug #11930).
[mms] Convert Horde_String#validUtf8() from a preg-regex to a string iterator
      to eliminate PCRE issues relating to stack sizes (Bug #11899).

[jan] Don't rely on PEAR to determine Windows OS in Samba backend.
[jan] Implement vfsroot parameter in Samba backend.


[jan] Re-packaged some 2.0.0 releases.
[mms] Use new Horde_Test layout.

Horde Changes
[jan] Fix adding user in admin actions (Bug #11690).
[mms] Fix removing user in admin actions (Bug #11690).
[jan] Allow to set custom search field label.

Address Book Changes
[jan] Add free-text country attributes and use them in default Kolab backend
      (Request #11692).
[gwr] Fix handling empty dates in the Kolab driver (Bug #11691).
[jan] Use encoded UIDs as IDs in Kolab driver.
[jan] Fix searching shares for duplicates.
[mjr] Fix calling decode_attribute hook when exporting to ActiveSync
      (, Bug #11678).
[jan] Update Slovak translation (Jozef Sudolský <>).

Calendar Changes
[jan] Try to translate holiday drivers (Request #11755).
[jan] Fix timezone when reading events from Kolab (Bug #11695).
[jan] Use encoded UIDs as IDs in Kolab driver.
[jan] Fix saving of events if no calendar has been loaded yet.
[mjr] Fix importing events from ActiveSync with empty descriptions in EAS
      version 2.5

Tasks Changes
[gwr] Ignore empty dates (Bug #11736).
[jan] Use encoded UIDs as IDs in Kolab driver.
[mjr] Fix support for due/start dates for certain ActiveSync clients (Bug
[jan] Fix importing tasks from iCalendar (Bug #11681).
[jan] Fix listing of recurring tasks via timeobjects API.

Notes Changes
[jan] Use modification and creation dates from backend if available (Request
[jan] Use encoded UIDs as IDs in Kolab driver.

Tagging Changes
[jan] Add missing optional dependency on Horde_ElasticSearch.
[jan] Catch exceptions from Horde_ElasticSearch.

Library Changes
[jan] Use binary column for serialized sync state (Bug #11743).
[jan] Fix boolean table columns (Bug #11742).
[mms] Use new Horde_Test layout.
[jan] Add Dutch translation (Arjen de Korte <>).
[mjr] Answer Microsoft Outlook Autodiscover requests (Request # 11639).
[mjr] Fix fatal error due to abstract serialize methods.
[mjr] Fix issue causing a loop during FETCH requests caused by the
      non-incrementing syncKey.
[mjr] Reduce number of IMAP server calls required when syncronizing email data.
[mjr] Fix issue causing iOS Mail to crash when receiving truncated body data.
[mjr] Improvements to detecting expunged messages.
[mjr] Fix detecting mailbox changes on servers that don't return UIDNEXT data.
[mjr] Fix issue in detecting certain text attachments.

[mms] Compress cached data with LZF, if the PECL module is available.

[mms] Add tablet detection/reporting.

[jan] Fix class name when using the Kolab group backend (Bug #11737).
[mjr] Fix synchronizing device message flag changes over ActiveSync (Bug
[mms] Fix returning session start time if session has been closed (read-only)
      in the current page access (Bug #11685).

[mms] Mask harmless warning messages when using openssl_encrypt() on
      out-of-date PHP versions.
[mms] Initial release of package.

[mms] Complete workaround for broken BINARY extension on Cyrus servers.
[mms] Workaround broken BINARY extension on Cyrus servers.
[mms] Fix returning UIDNEXT when using UIDNEXT_FORCE and the server does not
      automatically return this information.
[mms] Significant optimization to append() command.
[mms] Add abstracted syncing methods to Horde_Imap_Client_Base.
[mms] Fix parsing PARSE response code associated with an OK response.
[mms] Workaround broken BINARY implementation on UW-IMAP servers.
[mms] If we have binary data, and server doesn't support BINARY extension, send
      data anyway since we don't have any other option.
[mms] Correctly increment UIDNEXT when an EXISTS response is issued after the
      mailbox is opened (Bug #11679).
[mms] Fix regression that may have caused message flags to have been improperly
      cached if debugging was disabled (Bug #11665).

[jan] Deprecate timezone parameters, always write UTC datetime values (Bug

[gwr] Add a time based snychronization strategy (Bug #11590).
[gwr] Correct cache update after move (Bug #11305).
[gwr] Remove deleted objects from the cache (Bug #11674).

[mms] Ensure bare address is output to SMTP MAIL command.

[jan] Fix package.xml.
[mms] Use Horde_Crypt_Blowfish instead of Crypt_Blowfish.

[mms] Add Horde_Stream_Existing class.

[mms] Better generation of random IDs.

[mms] Refactor Horde_Test_AllTests.
[mms] Add Horde_Test_Bootstrap.

[jan] Improve HTML-to-Text filter.
[mms] Jsmin fixes merged from upstream C source.

[jan] Fix deleting folders from absolute path in FTP backend (Bug #11761).
[jan] Fix old folder not being removed when moving a folder (Bug #11703).
[jan] Fix checking source and destination paths being the same (Bug #11702).


[jan] Update Dutch translation (Arjen de Korte <>).
[jan] Update Slovak translation (Jozef Sudolský <>).
[jan] Update Japanese translation (Hiromi Kimura <>).

Horde Changes
[jan] Fix form for editing and removing of users.
[mjr] Workaround for broken iOS ActiveSync AUTODISCOVER requests (Bug #11624).
[mms] Fix topbar javascript on IE8 (Bug #11614).
[jan] Fix LDAP example for authusername hook.

Calendar Changes
[jan] Fix migration of exceptionoriginaldate field (Bug #11654).
[jan] Fix generating calendar names when exporting non-internal calendars to
[jan] Fix authentication to remote calendars (Bug #11643).
[jan] Fix incorrect nesting of VTIMEZONE components when exporting to iCalendar
      (Bug #11636).
[jan] Fix fatal error when moving non-recurring events with resources (Bug

Library Changes
[mjr] Increase size of cache_data field.
[mjr] Add more complete error and debug output when saving syncCache.
[mjr] Attempt to detect infinite sync loops caused by server side errors.
[mjr] Fix moving/deleting messages on some devices.

[jan] Fix translations (Bug #11606).
[mjr] Fix detected email changes on certain IMAP servers.
[mjr] Fix determining special mailboxes and generating folder hierarchy on some
      ActiveSync clients (Bug #11626).
[mjr] Limit the length of ActiveSync folder serverids to 64 per ActiveSync
[mjr] Fix displaying maps in Chrome while using SSL connections (Bug #11618).

[mms] Add Horde_Crypt_Pgp#getPublicKeyFromPrivateKey().

[jan] Fix strftime() formatting of certain locale-specific format specifiers.

[mms] Correctly workaround servers that incorrectly implement the LIST-EXTENDED
[mms] Fix determining subscribed mailbox list when not using LIST-EXTENDED (Bug
[mms] Work around servers that incorrectly implement the LIST-EXTENDED command.
[mms] Allow Horde_Imap_Client_Base#vanished() to work with non-QRESYNC servers
      if the 'ids' option is given.
[mms] Always map UIDs to sequence numbers if resolving an all UIDs search.
[mms] Ignore empty ID search queries.
[mms] Fix parsing empty ACL responses.
[mms] Massive performance increase for cached FETCH queries.
[mms] Split debugging code from Base driver into separate object.
[mms] Fix double encoding of non-ASCII elements in listMailboxes() (Bug
[mms] Fix regression for non-cached Socket objects (Bug #11605).
[mms] Improved handling of server write errors in the Socket driver.
[mms] Add support for IMAP MOVE command.
[mms] Correctly handle FETCH results intermingled with EXPUNGE/VANISHED
      requests within a single request.
[mms] Correctly handle EXISTS/EXPUNGE/VANISHED untagged responses which may
      appear at any time.
[mms] Fix handling message sequence number actions returned from server when

[mjr] Workaround for broken iOS ActiveSync AUTODISCOVER requests (Bug #11624).

[mjr] Remove support for Google's dead weather API.

[mms] Only specify maxmemory argument when creating temp stream if it was
[mms] Allow Horde_Stream object to be cloned.
[mms] Allow Horde_Stream object to be serialized (Bug #11598).
[mms] Add Horde_Stream#__toString().

[jan] Support uuid extension from OSSP (, Request

[jan] Fix notice when parsing Etc/UTC rules.


[jan] Update Polish translation (Krzysztof Kozera <>).
[jan] Update Dutch translation (Arjen de Korte <>).

Library Changes
[mms] Confirmation link for new identity requires the full URL as it is
      intended to be accessed outside of the Horde application (Bug #11593).
[mms] Need to unescape JSON data returned in a text/html response.

[mms] Fix regression in Horde_Imap_Client_Base#listMailboxes() return when both
      the 'flat' and 'sort' options are active.
      return options to Horde_Imap_Client_Base#status().
[mms] Fix invalid class name usage (Bug #11586).
[mms] Remove STATUS_LASTMODSEQ and STATUS_LASTMODSEQUIDS return options from


[jan] Remove optional dependency on Horde_DataTree.
[jan] Remove DataTree support.

Horde Changes
[jan] Port VAT identification block to use SOAP extension.
[jan] Fix dynamic updating of portal blocks.
[mms] Allow view-specific help files to inherit from base application help
[mms] Allow application basic/dynamic views to have different help source
[mms] Show non-javascript enhanced login screen for non-smartmobile mobile
      browsers (Bug #11215).
[mms] Add version parameter to CSS/javascript file URLs to help with cache
      busting when these files change between releases.
[mms] Add configuration option for maximum allowed session times.
[jan] Fix cancelling problem report.
[jan] Fix audio notification path printed in page output.
[jan] Fix logging in without JavaScript (Bug #11328).
[mms] Fix sidebar element wrapping.
[mms] Better handling of backend authentication errors when returning AJAX data
      (Bug #11297).
[mjr] Fix autocompletion of tags in ajax views.
[jan] Fix dependency on Horde_Service_Weather.
[mjr] Request SSL connection from map providers if using SSL (Bug #11193).
[jan] Allow to configure encryption in global IMAP configuration (Request
[jan] Update icon set.
[rla] Retrieve more detailed message from Horde_Auth when a user is temporarily
      or permanently locked out (Request #11254).
[jan] Implement new user interface.
[mms] Add 'suppress' option to prefs.php group entries.
[mms] Add 'on_change', 'on_init', 'requires', 'requires_nolock', and
      'suppress' options to prefs.php preference entries.
[mms] Remove support for IE 6.
[mms] Token protect all AJAX actions.
[jan] Allow to use IMAP storage for shares and groupware data without a
      complete Kolab server.
[mms] Implement growler-like notifications for smartmobile view.
[mms] Modified pushapp hook behavior.
[mms] Removed pushapp_post hook.
[mms] AJAX core features now contained within Horde_Core.
[mms] E-mail sending charset now defaults to UTF-8.
[mms] Add post-install script for the Horde application
[mms] Portal blocks can now load just the CSS necessary to display an
      application's blocks.
[jan] Show notifications during logging into Smartphone mode.

Address Book Changes
[jan] Allow searching for 'emails' attributes (Bug #11185).
[jan] Fix LIKE matching of attributes in Kolab driver.
[mms] Convert turba minisearch block to the Horde AJAX framework.
[jan] Support 'emails' attribute in smartphone view (Bug #11544).
[jan] Attach share owner to all address book titles (Bug #11528).
[jan] Fix exporting from browse view (Bug #11526).
[jan] Return to the same page after running actions from the browse view.
[jan] Support importing contacts via API if using 'emails' attributes (Bug
[jan] Support 'emails' attribute with ActiveSync.
[jan] Fix marking contacts as deleted in the history if deleting shared address
      books (Bug #11480).
[jan] Set gender field values literally to 'male' or 'female'.
[jan] Drop preference which address books to display.
[gwr] Mark the initial default share as such with the Kolab backend.
[gwr] Always mark the initial share as default addressbook.
[mms] Initial implementation of smartmobile view.
[jan] Use Horde 5 action bar.
[jan] Add configuration example for Kolab/IMAP address books.
[jan] Update icon set.
[jan] Fix searching multiple names via the API.
[jan] Fix searching and listing clients via the API.
[mms] Import API call now throws an ObjectExists exception when a duplicate is
[jan] Add parameters to specify field size of phone and email fields.

Calendar Changes
[jan] Show completed future tasks in complete category, not in future category
      (Bug #11562).
[jan] Fix exporting of recurring events with exceptions from Kolab backends.
[jan] Fix export links for calendars (Bug #11576).
[jan] Fix broken Apple iCal behavior with exception dates (Evert Pot
[jan] Use more compatible message format for iTip notifications (Bug #9854).
[jan] Fix free/busy retrieval on Kolab.
[jan] Synchronize tags with Kolab categories.
[mjr] Improvements to resource calendar handling.
[gwr] Mark the initial default share as such with the Kolab backend.
[gwr] Always mark the initial share as default calendar.
[jan] Fix attendees button in traditional view.
[jan] Fix sending alarm emails.
[jan] Add quick task adding to dynamic view.
[rla] Fix sender of appointment notification (Bug #11198)
[mjr] Fix tagging in traditional interface.
[rla] Make system shares browseable in WebDAV (Request #10998).
[jan] Make calendar lists collapsible (Request #10865).
[jan] Delay calendar list loading to speed up initial display.
[mjr] Implement resource scheduling in dynamic view (Request #9774).
[mjr] Fix issue that could cause incorrect freebusy data to be displayed in
      certain circumstances.
[mjr] Prompt to send updates when modifying an event with attendees (Request
[mjr] Add heatmap to year view (Request #10658).
[mjr] Implement proper editing and deleting of recurrence series and exceptions
      in ajax view (Request #9926).
[jan] Remove print buttons.
[jan] Add work week view to dynamic interface (, Request
[jan] Support importing of iCalendar events with non-local timezones (Request
[jan] Include timezone information when exporting events to iCalendar (Request
[jan] Allow to set individual timezones for each event (Request #10727).

Tasks Changes
[jan] Fix export links for tasklists (Bug #11576).
[mjr] Fix various issues with importing CSV files.
[mjr] Format datetime fields when exporting a task as a hash (Bug #11537).
[jan] Fix retrieving tasks from Kolab backend by UID (Bug #11532).
[jan] Fix toggling tasklists (Bug #11511).
[jan] Fix listing tasks from Kolab backends.
[jan] Fix sending alarm e-mail messages.
[jan] Synchronize tags with Kolab categories.
[mjr] Fix deleting tasks from the task form.
[mjr] Implement Purge Completed Tasks LoginTask (Request #2520).
[gwr] Mark the initial default share as such with the Kolab backend.
[gwr] Always mark the initial share as default tasklist.
[jan] Move complete task list management into the sidebar.
[jan] Allow to edit task list color in traditional view.
[mjr] Tweak display of smartlist links in list view.
[mjr] Fix fatal recursion error when searching with smartlists were present.
[mjr] Add support for smart tasklists.
[mjr] Migrate categories to tags.
[jan] Fix fatal error if the task form doesn't validate.
[jan] Add recurring tasks (Request #2150).

Notes Changes
[jan] Fix client-side sorting by date.
[jan] Fix exporting (Bug #11507).
[gwr] Always mark the initial share as default notepad.
[gwr] Mark the initial default share as such with the Kolab backend.
[gwr] Fixed deletion of shares with the Kolab driver.
[jan] Fix display of note title (Bug #11275).

Library Changes
[mjr] Fix issue causing FOLDERSYNC to fail on postgres.
[mjr] Fix erroneous truncation of CC addresses (Bug #11446).
[mjr] SyncKey is no longer incremented when there are no imported or exported
      changes after the initial SYNC.
[mjr] No longer send unnecessary SYNC_COMMANDS tag.
[mjr] Build a proper nested folder hierarchy when appropriate.
[mjr] Properly send 401 responses in certain circumstances.
[mjr] Improvements to autoconfigure support.
[mjr] Fix some issues that were causing infinite loops on iOS
[jan] Fix finding locale directory if installed with PEAR.
[mjr] Fix issue where FILTERTYPE parameter was not being honored on some
[mjr] Add support for ActiveSync native meeting requests and responses.
[mjr] Security policy support now allows for per user configuration.
[mjr] Add basic Autoconfigure support.
[mjr] Add EAS version 12.1 support.
[mjr] Add EAS version 12.0 support.
[mjr] Add email support.

[mjr] Fix a bug that broke Desktop Notifications.
[jan] Fix Desktop notifications (Bug #10810).

[jan] Fix setting IMAP ACLs in IMAP and Cyrsql drivers.
[mms] Fix user management in Passwd driver.
[mms] Fix setting soft expiration in SQL driver.
[rla] Use constant for permanent lock and provide more verbose feedback
      (Request #11254).
[mms] Removed charset parameter for Imap and Cyrsql drivers.

[mms] Fix error message displaying the maximimum allowed file upload size.
[mms] Improved detection of mobile browsers (, Request

[mms] Correctly invalidate cache when write error occurs while using the stack
[mms] Add Horde_Cache#testReadWrite().

[jan] Include file and line when calling Horde_Cli#fatal() with an exception.
[jan] Use late static binding in init() for easier extension of Horde_Cli.

[mms] Fix parsing UTF-16 data in TNEF driver (Bug #11390)

[jan] Fix superglobals access (Bug #11277).

[jan] Fix dynamic updating of portal blocks.
[mms] Allow AJAX handler methods to be marked externally accessible (i.e. no
      session token checking) (Bug #11538).
[mjr] Fix copying ActiveSync email to sent folder in certain cases (Bug
[jan] Catch exceptions from Horde_Crypt (Bug #11530).
[jan] Support non-padding operators in JavaScript date formatting (Bug #10435).
[mms] Add generic CSS class insertion to Help system.
[mms] Fix handling active error reporting codes in Horde_ErrorHandler.
[mms] Send spellcheck parameters using AJAX object, not in URL (Bug #11467).
[mms] Add View helpers to provide access to accesskey methods, Horde::img(),
      Horde::label(), and Horde_Help::link().
[mjr] Fix adding Bcc recipients when sending mail from ActiveSync.
[mjr] Fix issue saving sent mail from ActiveSync (Bug #11410).
[mms] Added Horde_Core_Smartmobile_Url class.
[jan] Make Horde::widget() take a single hash parameter.
[mms] Allow application API interface to dynamically alter properties (Bug
[mms] Force IE <= 7 to minimal view (Bug #11327).
[mms] Add loading triggers to HordeCore JS framework.
[mjr] Send dummy INBOX, Sent, and Trash folders to client when email sync
      support is not enabled.
[mjr] Fix broken ActiveSync behaviour when Email sync is not enabled.
[mjr] Only subscribed mailboxes are returned by the ActiveSync imap factory.
[jan] Set HTML 5 "multiple" attribute on email fields if necessary (Bug
[mms] Add a no authentication AJAX handler (Bug #11297).
[mms] Fix HordeCore javascript download action (Bug #11294).
[mms] Fix upgrade logintasks for pre-release major releases.
[mjr] Add Horde_Core_Tagger.
[mjr] Fix autocompletion of tags in ajax views.
[jan] Fix dependency on Horde_Routes.
[jan] Fix dependency on Horde_ElasticSearch.
[jan] Fix default values for LDAP and SQL configuration.
[jan] Fix hiding empty top menu entries in multi-level hierarchies.
[jan] Allow to override configuration details of meta-configuration tags like
      <configsql> in custom configuration XML files.
[jan] Allow to configure encryption in global IMAP configuration (Request
[mms] Upgrade jQuery Mobile to v1.1.1 RC1.
[mms] Fix browser-based AJAX autocompletion (Bug #11233).
[jan] Update classes for the new user interface.
[mms] Move output compression code into Horde_PageOutput.
[mms] Removed Horde::ajaxAvailable().
[mms] Move Horde::getServiceLink() to Horde_Registry#getServiceLink().
[jan] Allow to use IMAP storage for shares and groupware data without a
      complete Kolab server.
[mms] Moved smartmobile core javascript from the Horde application.
[mms] Added Horde_PageOutput.
[mms] Added Horde_Core_Ajax_Imple_ContactAutoCompleter.
[mjr] Use local member storage when no session is available (Bug #9733).
[mms] Added AJAX core features.
[mms] Added view determination to Horde_Registry.
[mms] Performance improvements when initializing Alarm system.
[mms] Performance improvements to Alarm checking.
[mms] Performance improvements when initializing Notification system.
[mjr] Allow restricting pretty autocompleter to available choices.
[mms] Add language detection to AJAX spellchecker if no language is selected by
      the user (Request #7137).
[mms] Add Horde_Core_Block_Layout_View::getStylesheets().

[jan] Throw exception if parsing of S/MIME certificates fails (Bug #11530).
[mms] Improvements in obtaining GPG keys from a keyserver (Bug #11380)

[mms] Implement new 2.0 API. See UPGRADING for full details of changes.

[jan] Support non-padding operators in strftime() formatting (Bug #10435).
[mjr] Fix adding completed recurrence exceptions.
[jan] Include time when parsing recurrence end date from vCalendar/iCalendar.
[jan] Rename fromHash()/toHash() to fromKolab()/toKolab().

[mms] Fix resetting postgresql error reporting.
[mms] Fix Horde_Db_Adapter_Base_Table#offsetExists().
[mms] Fix addLock() command.
[jan] Allow for nested transactions.

[mms] Update CKEditor to v2.6.5.

[cjh] First release.

[mms] Added log level setting to Horde_Exception.
[mms] Added $logged property to Horde_Exception class.

[mjr] Fixed autoloading of some field actions.
[jan] Allow to pass button attribute hashes to setButtons().
[jan] Allow to set CSS class for 'link' form fields.
[jan] Add Horde_Form_Type_email#allowMultiple().

[mms] Remove Contactlists driver.

[jan] Add verifyPeer request option to disable verification of certification
      peers during SSL request.
[jan] Fix error handling in Fopen driver if a custom error handler is

[jan] Fix parsing of VTIMEZONE components that use RDATE properties.

[mms] Fix CONDSTORE synchronization of deleted messages since last mailbox
[mms] Need to immediately synchronize mailbox on mailbox load with CONDSTORE or
      else we may lose flag change information.
[mms] Fixes/improvements to CONDSTORE capability sniffing and enabling.
[mms] Remove statuscache configuration option.
[mms] Optimize generation of POP3 sequence string.
[mms] Abstract forced determination of UIDNEXT value from cache method to a
      status() flag.
[mms] Remove Horde_Imap_Client_Base#fetchFromSectionString().
[mms] Horde_Imap_Client_Base#listMailboxes() now supports 'status' return even
      if server does not server LIST-STATUS.
[mms] Remove Horde_Imap_Client_Base#fetchCacheIgnore().
[mms] Move IMAP/POP URL parsing to new Horde_Imap_Client_Url object.
[mms] Move base subject parsing to new Horde_Imap_Client_Data_BaseSubject
[mms] Move IMAP sequence string generation/parsing to the Horde_Imap_Client_Ids
[mms] Remove Horde_Imap_Client_Utils#escape().
[mms] Remove Horde_Imap_Client_Utils#removeBareNewlines().
[mms] Move IMAP mailboxes sorting into new Horde_Imap_Client_Mailbox_List
[mms] Correctly handle determination of highestmodseq in currently selected
      mailbox if CONDSTORE, but not QRESYNC, is active.
[mms] Optimize APPEND so that we don't send large amounts of data to server if
      the server is not going to accept the data.
[mms] Don't expunge mailbox when it is labeled as read-only.
[mms] Fix regression in FETCH/COPY with sequence numbers (Bug #11521).
[mms] Fix quoting empty astrings (Bug #11505).
[jan] Fix Horde_Stream dependency.
[jan] Add deleteACL().
[jan] Make setACL() work more similar to the SETACL IMAP command.
[mms] Fix determination of HIGHESTMODSEQ value from FETCH data.
[mms] Store command that caused NO/BAD error in Exception, if it can be
[mms] Limit FETCH ENVELOPE data sizes.
[mms] Improved parsing of incoming IMAP server stream.
[mms] Improved parsing of IMAP threading data.
[mms] Improved IMAP tokenizer of server response data using PHP temporary
[mms] Add standalone IMAP command tokenizer.
[mms] Rewritten handling for processing outgoing IMAP commands.
[mms] Improved debugging efficiency.
[mms] Added data objects for the various IMAP data types.
[mms] Added the Horde_Imap_Client_Data_Format objects.
[mms] Correctly handle any resource key supported by the QUOTA extension.
[mms] Allow auto-escaping of mailbox names in listMailboxes().
[mms] Add list_escape property to Horde_Imap_Client_Mailbox.
[mms] Remove public cache variable from IMAP driver.
[mms] Internally workaround IMAP servers that don't support text searches other
      than US-ASCII.
[mms] Horde_Imap_Client_DateTime is now a wrapper around the native PHP
      DateTime object (Request #11074).
[mms] Implement new 2.0 API. See UPGRADING for full details of changes.

[jan] Fix finding locale directory if installed with PEAR.

[jan] Write custom Horde attributes to task objects.
[jan] Categories attributes are returned and passed as an array now.

[jan] Reduce logging level of debug messages.

[jan] Reduce logging level of debug messages.

[gwr] Corrected fix for modifying Kolab objects.
[gwr] Allow setting the default folder.
[gwr] Reactivate folder list caching.
[gwr] Avoid overwriting unknown XML elements (Bug #11309)
[jan] Fix renaming of shares (Bug #11281).
[jan] Fix moving objects to a different folder (Bug #11280).
[jan] Fix listing and loading data from IMAP server (Bug #11273).

[rla] Add handling of permanent locks.

[mms] Add Horde_Mail_Rfc822_Address#matchDomain().
[mms] Add Horde_Mail_Rfc822_Address#matchInsensitive().
[mms] Fix parsing Return-Path header when using sendmail driver (Bug #11361).
[mms] Implement new 2.0 API. See UPGRADING for full details of changes.

[mjr] Add method for returning the message's base MIME part.
[mms] Update MIME mapping file.
[mms] Catch/fix malformed undisclosed-recipients address headers.
[mjr] Fix issue that could cause outputting of duplicate data from a parsed
      mulitpart mime message.
[mms] Added Horde_Mime_Related class.
[mms] Implement new 2.0 API. See UPGRADING for full details of changes.

[mms] Don't log permission not exists errors.
[jan] Use new Horde_Tree API.

[jan] Use Horde's temporary directory for SyncML logs.
[mjr] Allow autodiscover requests sent as OPTIONS requests.

[mms] If secret key is changed, change the associated  key or else key change
      may not be recognized in the current page access (Bug #11570).
[mms] Limit decryption/encryption key to 56 bytes (Bug #11566).
[mms] Mark secret cookie data as HttpOnly.
[mms] Add Exception code constants.
[mms] Use Horde_Support_Randomid class to generate secret key.

[jan] Fix parsing JSON responses with PHP 5.4.
[mjr] Remove fields from FQL statement that are no longer available.
[mjr] Update API to use the Graph API wherever possible.
[mjr] Removed the deprecated OFFLINE permission.

[mjr] Catch XML parsing errors.

[jan] Fix track_lifetime setting for Memcache driver (Bug #11444).

[jan] Fix sorting of Kolab shares (Bug #11509).
[gwr] Propagate setting the default attribute to the Kolab backend.

[mms] First release for Horde 5.

[jan] Add htmlspecialchars() filter.

[jan] If creating Horde_Support_Backtrace from an Exception, include any
      previous exceptions.
[jan] Make Horde_Support_Backtrace#backtrace a public property.
[mms] Add Horde_Support_ObjectStub.

[jan] Fix session handling (Bug #11242).
[jan] Fix finding locale directory if installed with PEAR.

[mms] Merge upstream changes to jsmin filter that caused broken compression of
      jQuery Mobile file.

[mms] Fix cloning of csstidy objects.

[jan] First release for Horde 5.

[jan] Tweak CSS names.
[jan] Separate tree object from tree renderers.

[mms] Fix copying all parameters when cloning a Horde_Url object in the
[mms] Make parameter generation extendable.
[mms] Add Horde_Url::setScheme().
[jan] Make constructor parameters optional for empty URLs.

[mms] Remove Horde_Util::addParameter() and Horde_Util::removeParameter().
[mms] Remove Horde_Util::cloneObject().
[mms] Removed e-mail array manipulation methods (Horde_Mail package now
      provides this feature).
[mms] Removed Horde_Util::getCsv() (moved to Horde_Data package).
[mms] Add iteration to Horde_Domhtml object.
[jan] Remove Horde_Util::getTempDir().
[jan] Remove Horde_Array::replaceRecursive().

[jan] Fix check whether quota limit is set (Bug #11455).
[jan] Fix sending and reading files in SSH2 driver if vfsroot is not set (Bug
[jan] Fix finding locale directory if installed with PEAR.
[jan] Add hasFeature().
[jan] Drop listFolders() method.
[jan] Remove Horde_Vfs_Browser, Horde_Vfs_ListItem, Horde_Vfs_Object classes.

[mms] Added Horde_View_Helper_FormTag#optionTag().


[jan] Update Swedish translation (Per Olof Ljungmark <>, Jakob
      Alvermark <>).
[jan] Update Italian translation (Emilien <>, Massimo
      Malabotta <>).
[jan] Update Slovak translation (Marika Schvarczova
[jan] Update Czech translation (Michal Foist <>).
[jan] Update Hungarian translation (Zoltán Németh <>).

Horde Changes
[jan] Update Lybian flag (Request #11169).
[jan] Fix horde-set-perms script (Arjen de Korte, Bug #11048).

Address Book Changes
[jan] Fix number of contacts in a list that cannot be displayed.

Calendar Changes
[jan] SECURITY: Fix XSS vulnerabilities in tasks view and search view (Bug
[jan] Improve print styles.
[jan] Catch if external client doesn't send LAST-MODIFIED attributes (Bug
[jan] Don't stop agenda script if there is an error with a single user (Bug
[jan] Show round corners only on the start and end of multi-day events
      (Request #11067).

Library Changes
[jan] Fix class name (, Bug #11164).

[mms] Added the 'ajax' browser feature.

[mms] Check for damaged ZIP data.

[gwr] Fixed session based preferences.

[jan] Fix HTML rendering of S/MIME certificates with multi-value attributes.

[mms] Fix regression in caching code (Bug #11143).
[mms] Fixed PHP 5.2 incompatibility (Bug #11137).

[jan] Throw exception if LDAP extension is missing.

[mms] Increase lock timeout to 30 seconds.
[mms] Fix typo preventing unlock at exit from working correctly.
[mms] Automatically expire locks when the PHP process exits.

[jan] Update ISO list of countries (Bug #11169).

[jan] Support authentication via CGI.

[jan] Don't corrupt binary data like images if sent in several messages
      (Jonathan Westerholt <>, Bug #10864).

[jan] Support definition lists in HTML-to-text filter (Nathan Barhorst).

[mms] Don't encode anchor string if raw mode is enabled.

[mms] Fix Horde_String::validUtf8() to workaround PHP/PCRE bug where segfault
      will occur on input strings > ~5000 characters.


[rla] Add missing license files.
[jan] Update Hungarian translation (Zoltán Németh <>).
[jan] Update Brazilian Portuguese translation (Luis Felipe Marzagao
[jan] Update Finnish translation (Leena Heino <>).
[jan] Update German translation.
[jan] Update Spanish translation (Manuel P. Ayala <>).

Horde Changes
[mjr] Add more atomic control over ActiveSync security policies for better
      device compatibility.
[mms] Add 'sendmail_eol' configuration parameter.
[jan] Fix horde-set-perms (, Bug #10923).
[jan] Sort user and group names in permission screen (Request #10896).

Address Book Changes
[jan] Fix decode_attribute hook when exporting to vCard (, Bug
[jan] Only connect to LDAP driver for read/write requests (Dominique Lalot
      <>, Request #11082).
[mjr] Fix bug that caused time shifting of contact birthday and anniversary
      values from ActiveSync devices for users in certain timezones.
[mjr] Ensure contact lists are always populated with their members (Bug
[jan] Fix SyncML compatibility with work/home phone numbers and newer Funambol
      clients (Bug #10912).
[mjr] Implement more flexible ActiveSync synchronization of names and
[jan] Fix address book sorting in preferences (Bug #10897).
[mms] Improve navigation when editing group entries.

Calendar Changes
[jan] Use preferred date format in week and agenda views (Bug #11089).
[jan] Fix fatal error if no external calendars are available (Bug #11079).
[jan] Fix positioning of events on DST changing dates (Bug #11070).
[mjr] Fix bug that caused time shift of all day events when imported from
      ActiveSync devices for users in certain timezones (Bug #10991).
[mjr] Correctly deal with deleted calendars in sync clients (Bug #10969).
[jan] Search complete names and addresses when auto-completing attendees.
[jan] Fix syntax error in migration script (Bug #10902).

Notes Changes
[mjr] Add missing getChanges API method.

Timeobject Changes
[mjr] Always provide the longest forecast length available for weather
      forecast data.
[mjr] No longer attempt to create a Horde_Service_Weather provider if we do not
      have one configured.

Library Changes
[mjr] Fix parsing incoming timezones under certain conditions (Bug #11068).
[mjr] Added WP7 devices to the list of devices with broken provisioning.
[mjr] Fix issue that could cause improper timezone handling in events passed
      from device to server in the beginning of a calendar year (Bug #10960).
[mjr] More improvements to security policies and device compatibility.
[mjr] Tweak policy defaults. Minor compatibility improvements for
      WAP-Provisioning-XML strings.
[mjr] Allow disabling of certain policies.
[mjr] Honor PROVISIONING_LOOSE if the device supports PROVISIONING, but not all
      of our requested policies.
[mjr] Fix issue that could cause PING failure in certain server environments.

[jan] Add optimized exists() implementation to LDAP driver (Marco Ferrante
      <>, Request #10944).

[jan] Fix horde-autoloader-cache-prune script.

[mms] Fix upload_tmp_dir checking (Bug #10976).
[mms] Update dataurl and cite capabilities for Internet Explorer.
[jan] Update utf capability for Firefox 10+.
[jan] Update capabilities for recent Blackberry devices.

[jan] Add parameters to specify field size of phone and email fields.
[jan] Log details too, if logging an exception.
[jan] Fix showing applications with 'admin' status in the sidebar.
[jan] Fix setting default values for HTML signatures.
[mjr] Throw exception if no weather service configured (Bug #11005).
[mms] Fix viewable prefs when toggling from Hide->Show Advanced.
[mms] Better error message when missing required parameters (Bug #10979).
[mms] Add Horde_Core_Alarm_Handler_Notify class.
[mjr] Fix issue with autocompletion that would cause it to fail in certain
      circumstances (Bug #10904).
[mms] Remove trailing semicolon when replacing @import statements.
[mjr] Fix issue that could cause failure of ActiveSync due to incorrect packing
      of binary data.
[jan] Use separate database connection for SQL session handler (Bug #10906).
[mms] Fix parsing DB config when using splitread database setup.

[mms] Improved parsing of S/MIME certificate information (Bug #10956).
[mms] Silently ignore unknown data when parsing S/MIME certificates.

[mms] Translate all user-directed exception messages.

[jan] Fix escaping of binary values in SQLite.

[jan] Inherit details from wrapped exception.

[jan] Add parameters to specify field size of phone and email fields.

[jan] Use configured filter when listing groups (Jesse Sandberg
      <>, Bug #10975).

[cjh] Fix infinite loop on unknown parameters being set.
[cjh] Return real data for HTTP 4xx and 5xx responses when using fopen().
[cjh] Fix setting PUT data in the Peclhttp Horde_Http_Request class.

[mms] Fix CHANGEDSINCE search if no FETCH attributes were specified (Bug
[mms] Fix search charset detection for servers that do not send the BADCHARSET
      response code (Bug #11117).
[mms] Workaround IMAP servers with broken CATENATE implementations (Bug #11111).
[jan] Fix sending ID requests.
[mms] Rewrite of caching system. Fixes a few bugs, and should be more efficient.
[mms] Clear imapproxy status when logging out.
[mms] Workaround PHP bug when using serialized Envelope data created by
      Horde_Imap_Client < 1.5.0 (Bug #11026).
[mms] Fix accessing STATUS information for mailboxes with non 7-bit characters.
[mms] Fix 'vanished' return from fetch().
[mms] Add Horde_Imap_Client_Base#setParam() (Bug #10680).
[mms] Return correct authentication error if authentication fails after the
      original login (Bug #11007).
[mms] Do case-insensitive check for NIL in IMAP data.
[mms] Correctly support RFC 822 groups in envelope data.
[mms] Envelope address data now returned as Horde_Mail_Rfc822_Address objects.
[mms] Other places where bodystructure may return literals.
[mms] Workaround non-ASCII data in bodystructure return from IMAP server.
[mms] Fix several faulty translation strings (Bug #10958).
[mms] Fix objects where the password is not being encrypted (Bug #10950).
[jan] Fix translations when installed through PEAR.
[mms] Implement more efficient serialization for Thread data objects.
[mms] Move server debug information from exception error message to 'details'
      property of exception object.
[mms] Fix METADATA_TOOMANY and METADATA_NOPRIVATE exception codes.
[mms] All user-directed exception messages are now translated.
[mms] Added Horde_Imap_Client_Exception_NoSupportExtension.
[mms] Incorrect method calls now throw SPL errors instead of

[jan] Fix line breaks of iTip responses when using quoted-printable encoding
      (Bug #10888).

[mms] Added Horde_Mail_Rfc822_Address#encoded property.
[mms] Better support for IDN hosts in non-validate address parsing mode (Bug
[mms] Added Horde_Mail_Rfc822#trimAddress().
[mms] Add optional arguments to the Horde_Mail_Rfc822_Group constructor.
[mms] Horde_Mail_Rfc822#parseAddressList() now accepts
      Horde_Mail_Rfc822_Objects within the first argument.
[mms] The address and group objects now extend the base
      Horde_Mail_Rfc822_Object class.
[mms] Add optional arguments to the Horde_Mail_Rfc822_Group constructor.
[mms] First argument to Horde_Mail_Rfc822#parseAddressList() can now be an
      array of addresses.
[mms] Add Horde_Mail_Rfc822#encode().
[mms] Workaround unexpected return from PHP_EOL in Mail transport drivers.
[mms] Created Horde_Mail_Rfc822_Address and Horde_Mail_Rfc822_Group objects to
      represent e-mail addresses.
[mms] Improved parser for e-mail addresses (Request #10949).

[mms] Bump lock retry from 0.005s -> 0.1s.

[jan] Work around broken messages with multiple address headers.
[mms] Add option to allow encoding options to be defined for
      Horde_Mime_Part#send() (Bug #11058).
[mms] Add MIME headers to the list of single-value headers.
[mms] Don't add personal part to e-mail address if it is identical to the
      address itself.
[mms] Support Horde_Mail_Rfc822_Address objects.
[mms] A false value for 'idn' in Horde_Mime_Address#writeAddress() now causes
      the domain name to be converted TO punycode, if necessary.

[jan] Implement ArrayAccess in Horde_Rdo_Base.
[jan] Fix Horde_Rdo_Exception not extending Horde_Exception.
[rla] Fix issue with retrieving lazy fields (Bug #11012).

[jan] Fix WebDAV access to application resources.

[mjr] WeatherUnderground had done away with the 5 day forecast. Emulate it with
      a 7 day forecast and limitLength call.
[mjr] Allow setting a limit to the number of forecast days that are returned,
      regardless of the reqested forecast length.
[mjr] Fix requesting different forecast lengths for the same location in the
      same request.
[mjr] Add 10 day forecast support for WeatherUnderground.

[jan] Fix SQL driver with PostgreSQL.
[jan] Fix reading sessions with the External driver.
[jan] Add test suite.
[jan] Don't start transaction more than once in SQL driver (Bug #10978).
[jan] Fix transaction error when reconnecting to database during session
      writing (Bug #10906).

[jan] Add renameShare().
[mjr] Properly cache empty listShares results (Bug #11045).

[mms] Fix failing unit tests.

[mms] Fix preg backtrack issue in the Linkurls filter (Bug #11116).
[mms] Merge upstream updates to JsMin filter.

[mms] Don't do regex matching for data that can never match.

[jan] Implement ArrayAccess in Horde_Variables.

[jan] Fix inconsistent behavior of the different backend drivers.
[jan] Fix double unlink() of temporary files.
[jan] Fix ignored $dotfolder argument for listFolders() in SQL driver.
[jan] Fix several issues with quota calculation.
[jan] Fix recursive listFolder() on base directory.
[jan] Fix calculating folder sizes with similar folder names in SQL driver.


Address Book Changes
[jan] Set VOICE parameter when exporting phone numbers to vCard (Request
[jan] Fix importing vCards with empty X-ANNIVERSARY attributes (Bug #10557).
[jan] Update Japanese translation (Hiromi Kimura <>).

Calendar Changes
[mjr] Fix bug that could cause incorrect event exceptions to be created when
      drag and dropping events in month view.
[jan] Fix page titles not always updating correctly.
[jan] Display event time in dynamic view if requested (Request #9866).
[jan] Only show end time if different from start time.
[jan] Fix day sorting in agenda view.
[jan] Sort user and group names in permission screen (Request #10896).

Library Changes
[mjr] Fix REMOTEWIPE functionality for a number of android and iOS devices.
[mjr] Fix sending meeting request emails when creating a meeting.
[mjr] Fix retrieving the body of SENDMAIL requests.
[mjr] Fix parsing birthday strings on certain android 2.2 clients.
[mjr] Improve support for Android device provisioning.
[mjr] Improve support for timezones in appointments originating on the client.
[mjr] Improve performance when working with timezones on PHP 5.3+

[mjr] Fix implementation of SENDMAIL ActiveSync command. Fixes sending of
      meeting requests from device.
[mjr] Fix issue that caused ActiveSync failure when using device specific
      logging in certain cases.
[mms] Fix merging config data (Bug #10381).

[mjr] Fix creating recurrence objects with a timezone other than the current

[mms] SECURITY: Fix XSS vulnerability in email validation.

[jan] Fix compatibility with Horde_SyncMl (Bug #10908).
[jan] Allow to pass multiple parameter values in setAttribute() (Bug #7248).

[mms] Allow multiple date searches to be specified in a single AND search query.
[mms] Fix deleting cached mailbox when mailbox name is given as an object.
[mms] Fix 'changedsince' and 'vanished' parameters' in the fetch() command (Bug
[mms] LIST-STATUS does not depend on LIST-EXTENDED.
[mms] Add dependency checking for capabilities.

[gwr] Fixed datatype for birthday and anniversary contact attributes.
[gwr] Completed missing data API v1 support.

[mms] Fix line-endings for transport drivers that send messages using local

[jan] Improve compatibility with some broken text MIME parts (Bug #10925).

[mjr] Add snow and rain totals to wunderground driver.
[mjr] Fix using IP addresses for determining forecast location (Bug #10857)

[jan] Fix undefined method while synchronizing events with Funambol (Bug
[jan] Catch exceptions when changing or retrieving objects from the

[mms] Need to cache gettext-enabled templates with language information in the
      cache ID (Bug #10872).

[mms] Add Horde_Variables#filter().


[jan] Update Dutch translation (Arjen de Korte <>,
      Pieterjan Heyse <>).
[jan] Update Japanese translation (Hiromi Kimura <>).

Horde Changes
[jan] Make the lifetime of cached weather information configurable (Arjen de
      Korte, Request #10848).
[mjr] Improve layout of weather block.

Calendar Changes
[jan] Hide disabled calendar sections (Bug #9815).
[gwr] Fixed recurrence handling with the Kolab backend.
[gwr] Fixed naming of the default calendar for the Kolab backend.
[gwr] Fixed deleting events with the Kolab backend.
[gwr] Fixed migrations for SQLite as database backend.
[mjr] Fix keyboard navigation of time entry fields in dynamic view (Bug
[mjr] Fix parsing display_cal variables for internal calendar links on various
      blocks and embedded imples (Bug #10767).
[mjr] Fix adding events directly to a resource's calendar (Bug #10827).
[mjr] Fix regression introduced in 3.0.12 that broke checking a Resource's
      availability in certain cases (Bug #10806).
[jan] Don't fail on empty CalDAV calendars (, Bug
[jan] Check permissions when building application drop down
      (, Bug #10811).
[gwr] Fix saving Kolab events.

Tasks Changes
[jan] Fix setting custom alarm methods (Bug #9543).

Notes Changes
[jan] Use locale based sorting.
[jan] Fix remembering the expansion state of the notepads panel (Bug #10797).

Library Changes

[mjr] Increase field length for sync_data to support syncing large collections
      (Bug #10822).
[jan] Fix tests to work with PHPUnit 3.6.

[jan] Catch exceptions from Horde_Mime when sending alarm messages (Bug #10388).

[jan] Add Latvian translation (Jānis Eisaks <>).

[mjr] Allow separate ActiveSync logs per device.
[jan] Make the lifetime of cached weather information configurable (Arjen de
      Korte, Request #10848).
[gwr] Fixed hiding menu entries that should not be displayed to admin.
[gwr] Fixed Kolab anonymous bind.

[mms] Provide signature information when decrypting a message, rather than just
      a boolean result.
[mms] Fix displaying PGP key expiration information.
[mms] Allow expiration date to be given to Horde_Crypt_Pgp#generateKey()
      (Request #5754).

[mjr] Allow applications to extend Horde_Data_Base objects.

[mjr] Fix issue with creating Horde_Date from DateTime object with explicit
      timezone set.
[gwr] Fix the parsing of recurrence hash data.

[jan] Correctly parse "nacht" in German (Bug #10511).

[gwr] Alternative API to support modified dates with SQLite as well.
[mjr] Add support for mediumtext and longtext field types.

[mms] Work around broken headers in IMAP envelope data.
[mms] Remove Cclient drivers.

[mms] Allow Horde_Mime_Part::getRawPartText() to accept stream input.
[mms] Workaround incoming message data to Horde_Mime_Part::getRawPartText()
      that contains varying EOL characters (Bug #10809).
[mms] Fix detection of MIME boundaries at beginning of string (Bug #10809).
[mms] Abstract charset detection code out into
[mms] Improved detection of charsets in broken (8-bit) MIME headers.
[mms] Fix for broken 8BITMIME/BINARYMIME SMTP capability detection
      (, Bug #10820).

[jan] Catch exceptions from storage writing during shutdown.
[jan] Use binary column type for preference values (Bug #10803).

[mjr] Use longer cache lifetime for non-changing values (Request #10851).
[mjr] Export available detailed forecast fields for each driver (Bug #10813).
[mjr] Fix returning correct units when requesting the same location twice, but
      with different units (Bug #10804).
[mjr] Fix returning localized text from Wwo driver (Bug #10804).
[mjr] Fix obtaining forecast periods individually..
[mjr] Fix obtaining certain properties from Google driver.
[mjr] Fix making requests when not using a cache.
[mjr] Fix path to locale directory.
[mjr] Fix setting units (Bug #10792).

[mms] Fix unnecessary use of POSIX collating element in Linkurls filter
      (, Bug #10828).

[jan] Fix translation (Bug #10831).

[mms] Add Horde_String::validUtf8().


[mjr] Add support for Horde_Service_Weather.
[mjr] Remove support for the now non-existent weatherdotcom API.
[jan] Update Croatian translation (Valentin Vidic <>).
[jan] Update Latvian translation (Jānis Eisaks <>).
[jan] Update Estonian translation (Alar Sing <>).
[mjr] Fix removeUserData implementations.
[gwr] Avoid including the owner name into the default shares (Kolab backends).

Horde Changes
[jan] Add configuration option to disable password resets (Request #10640).
[cjh] Add Hordevetica theme.
[mjr] Fix issue with ajax uploader and file sizes over 1mb (Bug #10641).
[mjr] Do not show results in the tag cloud block owned by other users.
[mjr] Update javascript map library.
[mms] Allow in-page base64 image encoding to be disabled via configuration.
[jan] Add administration page to list and clear locks.

Address Book Changes
[mjr] Add the ability to specify the fields to return from contacts/search.
[jan] Fix importing contacts with composite fields.
[jan] Fix LDAP connection test (Bug #10554).

Calendar Changes
[jan] Show status of events in agenda messages (Request #10517).
[mjr] Fix selecting custom time from time selection drop down (Bug #10737).
[jan] Always use fresh Horde_Http_Client instances for remote calendars (Bug
[jan] Add confirmation screen when deleting events in dynamic view (Request
[jan] Fix holidays disappearing from month view if deleting another event.
[jan] Fix resetting attendee response status when saving events in dynamic
      view (Bug #10620).
[jan] Support CalDAV servers that don't use DAV: as the default namespace
      (, Bug #10716).
[jan] Allow to view and create copies of holiday events (Bug #10650).
[jan] Don't show import/export tabs in dynamic view if disabled (Bug #10705).
[jan] Don't show option to share with everyone in basic permissions if disabled
      (, Bug #10706).
[mjr] Only set ORGANIZER field if the event is a group meeting (Bug #10697).
[mjr] Fix alarms for recurring events (Bug #10678).
[mjr] Allow filtering listTagInfo results by user.
[jan] Fix uncompleting tasks in dynamic view (Carlos Timóteo, Bug #10653).
[cjh/jan] Improve design.
[mjr] Fix displaying resources when no attendees are present (Bug #10507).

Tasks Changes
[jan] Don't display task details of private tasks via the API (Bug #10712).
[jan] Use correct locale when parsing quick tasks (, Bug
[cjh] Nicer date/time input with fewer input fields and helper javascript.
[mjr] Add ability to choose which tasklists to synchronize.
[mjr] Fix task export to ActiveSync for tasks with no due dates or reminders.
[jan] Add missing parameters when PUTing tasks (Bug #10545).
[gwr] Fix Kolab object attribute handling for tasks.

Library Changes
[jan] Fix tests to work with PHPUnit 3.6.
[jan] Make unit tests Windows compatible.
[jan] Skip Kolab tests if Horde_Kolab_Storage is not installed.
[jan] Allow to run unit tests from installed package.

[mjr] Fix issue with timezones caused by buggy PHP timezone data (Bug #10760).
[mjr] Fix duplicate entries being sent to client when client does not issue
      GETCHANGES request (Bug #10731).
[mjr] Prevent duplicate incoming message additions (Bug #10644).

[jan] Catch exceptions from imap library (Bug #10272).
[jan] Fix detecting locale directory from PEAR installation (Bug #10589).
[jan] Add missing locale directory (Bug #10589).
[jan] Add checkPasswordPolicy() and checkPasswordSimilarity() methods.

[jan] Fix empty_file_input_value quirk for Chrome browsers (Bug #8438).

[jan] Don't overwrite $_SERVER superglobals unconditionally, to allow setting
      them through environment variables (Bug #10758).

[mjr] Add Horde_Service_Weather factory.
[mms] Fix importing CSS data in cache files.
[mms] Detect @import tags in CSS and add to compressed data.
[mjr] Add ability to remove temporary files at session shutdown.
[jan] Fix resetting authentication credentials (Bug #10228).
[jan] Correctly render keyval_multienum form field contents.
[jan] Don't use Xcache in CLI scripts (Bug #10288).
[jan] Fix PostgreSQL DSN when using SQL authentication (Bug #10538).
[mjr] Add factory for Horde_Service_UrlShortener.
[mms] Fix minChars behavior in autocomplete javascript code.
[mms] Allow in-page base64 image encoding to be disabled via Horde
[jan] Allow both application and interface names in <configspecial>.

[mms] Upgrade signed S/MIME output to comply with S/MIME version 3.2.

[jan] Add missing dependency on PEAR's DB package.

[mjr] Fix timezone bug that could cause an incorrect timezone from being set
      when creating Horde_Date objects from other Horde_Date or DateTime
[mjr] Fix timezone bug that caused some date strings to be parsed as an
      incorrect timezone.

[mms] Greatly reduce memory usage when working with binary data in PostgreSQL
      9.0+ (Bug #10774).
[mms] Cache postgresql version.
[jan] Improve API documentation.
[jan] More flexible conversion of charset names to native MySQL names.
[jan] Correctly escape binding characters in buildClause() (Bug #10610).
[jan] Fix transactions with MySQLi driver (Bug #10578).
[jan] Fix DISTINCT clause generation on PostgreSQL (Bug #10543).
[mms] Fix escaping binary data on Postgresql 9.1+ servers (Bug #10602).

[gwr] Support multiple mock responses with the mock request.
[gwr] Fixed setting response headers for the mock response.
[gwr] Added SOCKS proxy support where available.

[jan] Fix generating VTIMEZONE components.

[mjr] Add a version of the convert command for center cropping with ImageMagick
      versions less than 6.3.8 (Bug #10687).
[mjr] Fix parsing GPS values for locales that do not use the decimal separator
      (Bug #10643).
[mjr] Added support for Lens and LensID EXIF fields)
[mjr] Ensure string values are parsed as strings (Bug #10646).
[mjr] Add basic unit tests for EXIF data

[mms] Workaround missing search charset support in the Socket driver (Bug
[mms] Only add CHARSET data to SEARCH queries if necessary (Bug #10726).
[mms] Fix deletion of cached message entries.
[mms] Fixed setting data for several POP3 fetch results.
[mms] Parsing/generating sequence strings for POP3 servers has been fixed.
[mms] Removed unmaintained Mock driver.
[mms] API CHANGE: Added Horde_Imap_Client_Mailbox to provide way to accurately
      switch between UTF7-IMAP and UTF-8 mailbox representations.
[mms] API CHANGE: Deprecate Horde_Imap_Client_Base::parseCommandArray() - use
      Horde_Imap_Client_Utils::parseCommandArray() instead.
[mms] API CHANGE: Added a required parameter ('baseob') to
      Horde_Imap_Client_Cache constructor.
[mms] API CHANGE: Added Horde_Imap_Client_Base::writeDebug().
[mms] API CHANGE: Added Horde_Imap_Client_Base::getIdsOb().
[mms] API CHANGE: Deprecate Horde_Imap_Client_Cache::singleton().
[mms] Fix client-side Cc/From/To sorting (Bug #10503).
[mms] Improved IMAP debug logging.
[mms] Fix search charset determination for servers that support SORT & ESORT
      (Bug #10479).
[mms] Improved phpdoc documentation.
[mms] API CHANGE: Add shortcuts to get MIME decoded envelope information.
[mms] Automatically authenticate to server when using a command that requires
      an authenticated/selected state (Bug #10473).

[jan] Make unit tests locale independent.

[gwr] Move Horde specific functionality out of the events parser.
[gwr] Move Horde specific functionality out of the contacts parser.
[gwr] Improve data validation.
[gwr] KEP2 support.
[gwr] Allow adding XML attributes on the fly.
[gwr] Avoid overwriting data from other Kolab clients.
[gwr] Add improved root node handler (version checking, avoids overwriting
      other data).

[gwr] Readd support for updating Horde_History.
[gwr] Fix support for multiple namespaces of the same type.
[jan] Update Latvian translation.
[gwr] Add support for retrieving objects by backend id.
[gwr] Add a handler for active sync settings.
[gwr] Add preference data query.
[gwr] Add support for storing data query results in the cache.
[gwr] Add support for deleting messages by backend UID.
[jan] Update Spanish translation.
[gwr] Add logging for data handlers.

[jan] Add missing test autoloader.

[jan] Expand width of lock_owner column (Bug #10608).

[gwr] Fix installation paths (Bug #10588)

[mms] Fix advancing tasks pointer if system tasks also exist for an application
      (Bug #9767).
[mms] Prevent unnecessary URL redirection if no logintasks need to be confirmed.

[mms] Always use canonical line endings in sendmail driver (Bug #10696).

[mms] Work around broken number_format() in PHP < 5.4.0.
[jan] Make unit tests locale independent.
[mms] Added 'canonical' parameter to Horde_Mime_Headers#toArray() and
      Horde_Mime_Headers#toString() (Bug #10696).
[mms] Horde_Mime_Part::getRawPartText() was incorrectly returning a trailing
      EOL for body data.
[jan] Add Horde_Mime_Mail#clearParts().

[mms] Fix iteration through child HTML nodes in the HTML viewer so that
      extended viewers can do things like remove nodes outright.
[jan] Fix configuration of syntaxhighlighter viewer.

[jan] Update German translation.
[jan] Update Brazilian Portuguese translation.
[mms] Added ISO 639 language code lookup.

[gwr] Add missing font files.

[jan] Don't allow to create sub permissions of non-existant parent permissions
      (Bug #10688).

[jan] Add Horde_Rdo_Query#distinct() (Request #10535).

[jan] Make Horde_Routes_Utils::controllerScan() Windows compatible.
[gwr] Only remove the "_controller" suffix if it exists.

[gwr] Fixed posting tweets.
[mjr] Fix generating OAuth request when multiple URL parameters are passed.
[mjr] Fix oauth endpoints to reflect Twitter's new requirements for https

[mjr] Initial release.

[jan] Use portable queries in SQL session handler (Bug #10574).

[mms] Add Bin2hex filter.

[jan] Fix encoding of CDATA (, Bug #10692).

[jan] Require PHPUnit 3.5 due to BC breaking changes in 3.6.
[gwr] Added Horde_Test_Stub_Factory as a simple factory stub.
[gwr] Add Horde_Test_Setup for complex test suite setups.

[jan] Fix class names in Horde_Text_Diff_ThreeWay merger (Bug #10548).

[mms] Add some more questionable tags/attributes to strip in the XSS filter.

[jan] Fix skipping tests if PDO driver is not available.

[jan] Speed up Horde_String::substr() (Evert Pot, Request #8627).

[gwr] Make unit tests timezone independent.
[jan] Fix reading file sizes from Samba backends.
[jan] Catch output from smbclient during error conditions (Bug #10638).
[jan] Implement size() method in Samba driver.
[jan] Fix setting permissions with File driver (Bug #10630).
[mms] Fix using File driver if vfsroot directory already exists (Bug #10584).
[mms] Fix internal reference to QUOTA_METRIC_* constants (Bug #10585).
[jan] Fix parsing of directory listings on /dev file systems in the SSH driver.

[jan] Complete fix for incorrect syncml:metinf and syncml:devinf URNs (Bug


[jan] Fix German title of tasks portal block (Bug #10486).

Horde Changes
[rla] Add account locking similar to the former kolab-specific option.
[jan] Add missing configuration for LDAP groups write support.
[rla] Show a warning when resetting password and no security question is set
      (Request #10430).
[mjr] Update jQuery Mobile to version 1.0 Beta 2.
[jan] Update hordeweb theme to match new website layout.

Address Book Changes
[rla] Turba LDAP Driver now only rewrites changed attributes (Bug #9343).
[mjr] Run attribute values through decode_attribute hook when exporting.
[mjr] Ensure encode_attribute hook is called on imported objects
[mjr] Improve handling of removeUserData.
[mjr] Honor auto_create configuration setting (Bug #10452,
[jan] Don't allow to search binary fields.
[jan] Fix attribute name for assistant phone (Bug #10449).
[jan] Add missing migration script (Bug #10436).
[mjr] Fix issue with synchronizing deleted contacts (Bug #10422).
[jan] Fix searching for duplicates on some databases (Bug #10383).
[mjr] Add and support more attributes by default.

Calendar Changes
[jan] Fix opening events from agenda view.
[mjr] Always included the current default calendar in the sync_calendars
[mjr] Ensure exception gets start and end times when created from month view
      (Bug #10496)
[jan] Update group permission when changing group down list in basic
      permissions (Bug #10482).
[jan] Fix race condition when editing group permission in basic permission
      screen (Bug #10482).
[mjr] Fix removeUserData API (Bug #10241).
[jan] Fix deleting events with a WebDAV client (Bug #10478).
[jan] Fix fatal error while searching if hitting certain recurring events.
[jan] Fix exporting events with snoozed alarms (Bug #10438).
[jan] Fix deleting resources (Bug #10427)
[jan] Support snoozing alarms with Sundbird/Lightning (Request #7470).
[jan] Import VALARM components from iCalendar 2.0 data (Request #6665).
[jan] Fix exporting all-day events to Funambol clients (Thomas Ilsche
      <>, Bug #10349).
[jan] Fix creating events from dynamic view on Windows (Bug #9916).
[mjr] Fix displaying of freebusy data in dynamic view (,
      Bug #10347).
[mjr] Fix updating attendees (Bug #10411).
[jan] Fix error if Nag is not installed (Bug #10406).

Tagging Changes
[mjr] Fix broken tag cloud queries due to missing GROUP BY fields (Bug #10419)
[mjr] Prevent tagging with empty strings.
[mjr] Enforce that object and type names are always taken as a string (Bug
[mjr] Updated unit tests to new test structure.
[mjr] Prevent tagging with empty tags.

Library Changes

[mjr] Fix syncing daily recurrence types.
[mjr] Support additional GAL fields (Bug #10504).
[mjr] Prevent broken clients from sending incoming changes with initial SYNC
      request (Bug #10461).
[mjr] Fix sending MONTHLY_NTH and YEARLY_NTH recurrence types (Bug# 10416).
[mjr] Fix synchronization loop due to messages being deleted on server then
      attempting a change from the client.
[mjr] Fix bug with certain recurrence types due to erroneously outputting a
      zero as an empty tag (Bug# 10416).
[mjr] Support POOMCONTACTS2 schema in AS 2.5 clients also.
[mjr] Fix sending unnecessary FOLDERSYNC changes.
[mjr] Fix issue with FOLDERSYNC requests that was causing Android clients to
      PING and SYNC the same collection an unlimited number of times.

[jan] Dynamically disable capabilities of Customsql authentication driver if
      queries are empty (Michael Gröne, Request #10510).
[jan] Fix updating users in LDAP while using preauthenticate hooks.
[jan] Add support for resetting passwords to LDAP driver.
[rla] Add bad login blocking and account locking to the base driver.
[rla] Fix SQL driver when using soft_expiration and hard_expiration features.
[rla] No longer enforce lowercase fieldnames.

[mms] Detect broken RAR data so it does not cause an infinite loop.

[jan] Fix generating of URLs if both the webroot and the original URL are full
[mjr] Support additional GAL fields (Bug #10504).
[jan] Allow to pass a configuration array to the LDAP factory.
[mms] Revamp and fix Horde_Registry#removeUserData(); this method should now be
      the sole access point to delete user data for any/all apps (Bug #10241).
[mms] Correctly apply value of $conf['session']['timeout'] to PHP environment.
[mms] Fix cookie timeouts.
[rla] Add locking routines to Horde_Core_Auth_Application.
[rla] Add support for Horde_Auth's new locking feature.
[rla] Display permissions of hidden apps too
[gwr] Do not fail when no basedn is set for the Horde_Kolab_Server
[mms] When reopening sessions, ensure that we don't alter session information
      if the authentication status changed (Bug #10403).
[jan] Use 'ident' option of Horde_Log handlers to prefix log messages (Gonçalo
      Queirós <>, Request #9322).
[jan] Check applications' authValidate() method if present.
[mms] Add Horde_Session::isActive().
[mjr] Add remove button to image fields (Request #9870).

[mms] Encrypted data is already base64 encoded (Bug #10285).

[jan] Fix exporting recurrence end date to iCalendar.

[jan] Add methods to add and drop primary keys (Request #10469).
[gwr] Fix usage of Horde_Exception_Wrapped.
[jan] Fix setting unix socket in PostgreSQL DSN (, Bug
[jan] Fix determination of last insert id on PostgreSQL up to 8.1.
[jan] Fix migrations from primary keys that have not been created with Horde_Db
      in PostgreSQL.
[jan] Fix autoincrementKey sequences not incrementing after manually inserting
      key values in PostgreSQL.
[jan] Fix changeColumn() migration to autoincrementKey if no primary key exists

[gwr] Ensure correct message and code type.
[jan] Don't include backtrace in Horde_Exception_Pear messages.

[mjr] Add remove button to image fields (Request #9870).

[jan] Fix bind for modifying existing LDAP groups.

[mjr] Fix version access (Bug #10425).
[jan] Avoid infinite loop when importing certain vCalendar 1.0/vCard 2.1 data.
[mjr] Fix fetching the version from an Icalendar object (Bug #10411).

[mms] Remove dependency on Auth_SASL.
[mms] Add support for CRAM-SHA1 and CRAM-SHA256 authentication (available in
      Courier SASL library).
[mms] Remove dependency on Auth_SASL for CRAM-MD5 authentication.
[mms] Ignore unknown authentication methods; otherwise, they give false
      positive when authenticating (Bug #10453).
[mms] Fix rare race condition that may cause FETCH requests in the IMAP Socket
      driver to return empty results (Bug #10434).
[mms] Fix typo that prevented deletion of messages on POP3 servers (Bug #10424).
[mms] Fix regression in POP3 Socket driver that caused incorrect parsing of
      server data (Bug #10417).
[mms] Fix OR search if first search element contains more than one search
      criteria (Bug #10404).
[mms] Fix invalid IMAP command being sent if a changedsince search was empty.

[jan] Fix file names for plaintext and imtest authentication drivers.

[gwr] Removed stray kolab-format script which was moved to Horde_Kolab_Cli.
[gwr] Fixed detecting parse errors in subsequent parse attempts.

[gwr] Fix reading the user name.

[gwr] Added a backend that avoids querying LDAP.

[jan] Speed up Horde_Ldap_Search#shiftEntry() on large result sets.

[jan] Add 'ident' option to all handlers (Gonçalo Queirós
      <>, Request #9322).

[mms] Fix parseAddressList() for empty address strings (Bug #10534).
[mms] Fix SMTP error codes/messages (Bug #10498).

[mms] Silence undefined errors when a search key is not found on the server.

[mms] Provide method to return approximate size of parts if it contains base64
      encoded data (Request #9783).
[mms] Support Content-Duration MIME header (RFC 3803).
[mms] MIME body part can not have disposition of 'attachment' (Bug #10458).
[mms] Fix quoted-printable encoding for message parts contained in a multipart
      that do not share the same EOLs as the parent part (Bug #10324).

[jan] Fix setting Courier fonts with font style (PEAR Bug #18550).

[gwr] Accept either d or t IMAP ACL as deletion right.

[mms] Fix identities when default_identity is locked (Bug #10098).

[mjr] Added Horde_Routes_Matcher helper class.

[mjr] Use FQL to obtain event list and add rsvp_status

[mms] Call garbage collection before grabbing list of active sessions.
[mms] Fix obtaining session information from more than one session.

[gwr] Fix usage of Horde_Exception_Wrapped.
[gwr] Fixed support for share parents in the Kolab driver.
[gwr] Fixed support for multiple namespaces of the same type in the Kolab

[jan] Fix logging errors while retrieving server changes.

[jan] Fix renaming and catching errors while reading sizes in SQL driver.
[jan] Fix reading file contents from FTP.

[jan] Fix incorrect syncml:metinf and syncml:devinf URNs (Bug #10229).
[jan] Mark Xml_Wbxml:: methods as static.


[jan] Don't load all shares with requested permissions from the backend if
      $conf['share']['hidden'] is enabled.

Horde Changes
[mjr] Add remove button to image fields (Request #9870).
[mjr] Fix sending unnecessary FOLDERSYNC changes.
[mjr] Fix issue with FOLDERSYNC requests that was causing Android clients to
      PING and SYNC the same collection an unlimited number of times.
[mjr] Use FQL to obtain event list and add rsvp_status.
[cjh] Add mobile maintenance screens.
[jan] Fix exporting multiline attributes to vCard 2.1 and vCalendar 1.0.
[cjh] New log filter for exact level matching (Bryan Alves
[jan] Don't set optional integer fields to 0 when automatically updating
[mjr] ActiveSync policykey is now per user, not per device.
[mjr] Fix recurring event exception handling for ActiveSync.
[mjr] Use AS in column aliases to make PostgreSQL happy (Bug #10346).
[jan] Don't show mobile login page if users are forced to traditional or
      dynamic views (Request #10358).
[mjr] Improve calendar PING for iOS devices.
[mjr] Prevent an ActiveSync sync loop in some fringe cases.
[jan] Update PGP key server list and add SKS pool.

Address Book Changes
[mjr] Fix obtaining default share via Turba's API (, Bug #10393).
[mjr] Force ActiveSync device reset after sync_books pref is changed
      (Request #10342).

Calendar Changes
[jan] Display event time in dynamic agenda/search view.
[jan] Improve exporting all-day events to Funambol clients.
[mjr] Fix removing an exception from a recurrence series (Bug # 10365).
[jan] Close session while listing events to speed up parallel loading from
      different calendars.
[jan] Share list of displayed task lists with Nag (requires Nag 3.0.3).
[jan] Don't show import/export link in preferences if using the dynamic view.
[mjr] Force ActiveSync device reset after sync_calendars pref is changed
      (Request #10342).
[jan] Try to work with remote servers even if they don't support a recent
      WebDAV protocol version.
[jan] Support updating attendees from vCalendar 1.0 iTip responses.
[jan] Fix sending invitations to attendees from traditional view.
[jan] Fix organizer attribute when exporting to vCalendar 1.0.
[mjr] Fix issue that prevented synching when no sync_calendar pref was set
      (Bug #10329).


Horde Changes
[mjr] Fix returning shares in the proper order when fetching multiple shares
      by id.
[mjr] Fix incorrect method name in Pop3 Socket driver.
[jan] Don't use CSS cache in mobile interfaces because it breaks jQuery Mobile
[mjr] Fix race conditions caused by broken clients sending an inappropriate
      PING request.
[jan] Fix duplication of objects during synchronization (, Bug
[Jan] Don't allow to click disabled login button (Bug #10267).
[jan] Allow configuration of split read databases for PostgreSQL (Request
[mjr] Honor initial_application setting for mobile view (Bug #10264).
[mjr] Fix issue with initial Android ActiveSync pairing.
[gwr] Support restricting the HTML tidy post processing by the message size
      (Request #10266).
[gwr] Disabled the timeout on the logout token.
[mjr] Fix integer overflow issue in Facebook code (Bug #9889).
[mms] Fix adding users with Cyrsql driver (, Bug #10239).

Address Book Changes
[jan] Pass contact object to decode_attribute hook (, Bug
[jan] Complete fix for importing LDIF files (Bug #10139).

Calendar Changes
[jan] Update task due date in interface after dragging a task (Bug #10001).
[jan] Correctly sort events in portal block or widget if only displaying a
      single calendar (Bug #10099).
[mjr] Allow syncing of multiple owner-owned calendars (Request #8734).
[jan] Don't show calendar drop down in event form without delete permissions
      (Bug #10201).
[jan] Don't change event creator when saving events.
[jan] Fetch events immediately after saving remote calendar.

Tasks Changes
[jan] Add Ukrainian translation (Andriy Kopystyansky <>).


[jan] Fix installation script when not using a custom PEAR install.

Horde Changes
[jan] Fix extracting of translation strings in a release.
[rla] Add user-specific admin permissions (Request #9350).
[jan] Don't strip domain from user name in account block.
[jan] Fix account block with empty configuration parameters.
[gwr] Added a script for exporting/importing preferences from/to a backend.
[mms] Fix regression with UTF7-IMAP encoding of non-ascii folder names (Bug
[mms] Allow numbers to be zero in certain preferences (Bug #10120).
[mms] Fix running Horde login tasks (Bug #9767).
[mms] Fix authenticating as several users in the same request (Bug #10027).
[mms] Fix colorpicker on categories preferences screen (Bug #10118).
[jan] Update Spanish translation.
[jan] Update Slovak translation.
[mjr] Fix Metar portal block.
[gwr] Add support for the Kolab IMAP based preferences backend.
[mms] Complete fix for issue causing slow syncs only (Bug #10008).
[jan] Add button to update all configurations with default values at once.
[jan] Update DataTree conversion scripts for Horde 4.
[jan] Fix rendering of DataTree browse tree.
[mjr] Fix issue with deleting identities (Bug #9997).
[mjr] Fix issue causing credentials to be lost when accessing the API during
      ActiveSync requests (Bug #9733).
[jan] Store preferences for guests in the session.
[jan] SECURITY: Fix permission checks of guest users on system shares.
[mms] SECURITY: Fix deletion of unwanted HTML nodes in XSS filter.
[mms] Fix authentication failure when TOS is not accepted.
[jan] Don't show IMP compose link if user doesn't have permissions to IMP (Bug
[mms] Fix issue causing slow syncs only in SyncML (Bug #10008).
[jan] Fix adding categories.
[jan] Fix listing users in Customsql driver (Bug #9963).
[jan] Fix calculation of last password change in LDAP account portal block (Bug
[jan] Don't check for outdated DB schemas if database support is disabled (Bug
[mjr] Fix editing settings of fixed portal blocks (Bug #9910).
[mjr] Fix the blockTitle and blockContent API methods.
[jan] Fix creating folders with SQL VFS driver (Bug #9894).
[jan] Fix LDAP parameters of account portal block (Klaus Steinberger, Bug
[jan] Fix migration detection on Windows.
[mjr] Correctly sanitize DSN when using custom cyrus auth driver (Bug #9879).
[mjr] Fix some display issues when geocoding with HordeMap (Bug #9883).
[mms] Don't load sidebar content if not expanded.
[jan] Fix deleting groups.
[jan] Fix adding new groups (Bug #9881).
[jan] Fix displaying the Facebook preference group.
[mms] Add appinitialized hook.
[cjh] Fix cyrsql configuration, rename cyrus host and port parameters to not
      clash with Horde_Db parameters (Bug #9864).
[cjh] Fix signups, and update style on signup and reset password pages to
      match the login page (Bug #9856, partially from Ian Roth
[cjh] Show an unknown app icon rather than a broken image if an application
      doesn't have an icon (Bug #9867).
[jan] Fix setting incorrect database charset in PDO drivers.
[mms] Add pushapp_post hook.
[jan] Fix application-specific permission checks (Bug #9786).
[jan] Fix resetting passwords (Vilius Sumskas <>, Bug #9800).
[jan] Fix Cyrsql authentication driver (Vilius Sumskas <>, Bug
[mjr] Fix ActiveSync provisioning.
[mjr] Fix for broken Nokia MfE clients (Bug #9757).
[jan] Delete object mappings too when deleting SyncML anchors (Request #9377).
[jan] Delay sidebar creation if the sidebar is generated through JavaScript.
[jan] Fix incorrect lowercasing of objectClasses in LDAP groups driver.
[jan] Fix fatal error in desktop notifications (Bug #9727).
[jan] Rename all scripts in bin/ to be prefixed with horde- and installed in
      PEAR's bin_dir (Request #9647).
[jan] Don't throw exception when setting port number while using localhost in
      MySQL configuration (Bug #9738).
[jan] Fix building LDAP filter for groups from configuration (Bug #9739).
[jan] Fix loading of Horde's vhost conf.php file (Bug #9704).
[jan] Fix OpenOffice MIME viewer.
[jan] Fire access keys on hidden elements in Internet Explorer (Bug #8057).
[jan] Don't fire access keys twice in Chrome browsers.
[jan] Fix JavaScript date calculations across DST boundaries.
[jan] Sort applications in preference menu by name.
[jan] Add translations for file upload error messages.
[mms] Fix identities pref UI when default_identity is locked (Bug #9701).
[mms] Added Horde::debug().
[jan] Update installation and upgrade instructions.
[jan] Fix converting identities with non-ascii characters to new format.
[jan] Fix passing arguments to sendmail binary (Gonçalo Queirós, Bug #9693).
[mjr] Service_Facebook refactored for OAuth2 authentication (Bug #9122).
[mjr] IMSP drivers refactored for Horde 4.
[gwr] Allow disabling applications for administrators.
[jan] Don't show sub-permissions for adding that exist already.
[jan] Fix listing more than one sub-permission (Bug #9671).
[jan] Fix calendar synchronization with certain Nokia phones (Bug #9646).
[jan] Catch fatal errors about missing tables during initial configuration.
[mms] Fix client-side IMAP sorting using envelope data.
[mms] Workaround PHP < 5.2.6 (broken stream handling) (Bug #9644).
[mjr] Fix updating schema for individual libraries.
[mjr] Improved control over which application view to load.
[jan] Find translateable strings in configuration files.
[mms] Fix clearing expanded state for javascript trees (Bug #9659).
[jan] Only show advanced preferences link if there are some.
[mms] Fix updates for refreshing Blocks (Bug #9655).
[mjr] Fix viewing applications with no mobile view from mobile devices.
[jan] Fix error when not using a Group backend. (Bug #9642).
[jan] Provide default configuration files instead of .dist versions.
[jan] Add a new Share SQL driver with better performance.
[cjh] Drop Log SQL driver.
[mms] Update prototypejs to v1.7.
[mms] Add theme caching.
[mms] Add hook to allow browser capabilities to be modified.
[jan] Add a configuration switch for automatic creation of default shares.
[cjh] Move from Net_DNS to Net_DNS2.
[jan] Translations for the framework packages are now bundled with those
[bak] Remove LDAP driver from Horde_SessionHandler
[jan] Require mandatory UTF-8 support for both servers and clients.
[jan] Renamed Setup to Configuration and Options to Preferences.
[mms] Moved sidebar code out of block/portal code (Request #9160).
[cjh] Remove fckeditor, standardizing on ckeditor.
[jan] Move all translations from po/ to locale/ and use short locale
      identifiers where possible.
[jan] Remove frameset.
[jan] Remove dhtmlHistory library.
[mms] Removed support for krb5 authentication driver.
[jan] Allow to specify the URL parameter name for the alternate login setting.
[mms] Remove reliance on PEAR Mail library.
[jan] Send alarm emails again if the alarm has changed (Bug #8717).
[mms] Add advanced preferences options screen.
[mms] Complete rewrite of preferences UI display.
[mjr] Horde_Image can now act as an Iterator for multi-page images.
[mms] Remove Horde_Cipher library.
[mms] Add 'cssfiles' hook to add custom CSS files to a page.
[jan] Add configuration to not automatically show all available shares.
[jan] Add configuration to disallow world permissions for user shares.
[jan] Store alarm dates in UTC (Bug #8381).
[mms] Add abstracted AJAX interface (Request #4561).
[mms] Update scriptaculous to v1.8.3.
[mjr] Add Horde_Image_Exif (ported from Ansel) and add a exiftool driver.
[mjr] Horde_Image now has a native Imagick driver (removed proxy code).
[mms] All Horde login/authentication handled by single login page.
[mms] Move imple processing to a Horde service.
[mms] Refactor Maintenance:: -> Horde_LoginTasks::.
[mms] In Postgres, horde_prefs table now stores data in BYTEA instead of
      TEXT (Bug #8130).
[mms] Improved caching of Registry data significantly reduces session sizes
      and total session storage requirements (Request #8024).
[mms] IMAP auth driver now uses Horde_Imap_Client library.
[mms] Use Gnumeric package to render MS Excel files.
[mms] Use AbiWord package to render MS Word files.
[cjh] Remove sapdb session handler backend.
[jan] Add share locking (Alfonso Marín Marín <>).
[cjh] Remove javascript popup alarms.
[cjh] Update the Auth_passwd driver's add/update/remove user
      implementations (Bug #7810).
[cjh] Add a Horde_Routes dispatcher for Rampage applications.
[mjr] Fix a possible infinite loop with certain recurring events in Horde_Date.
[jan] Use DateTime internally in Horde_Date.

Address Book Changes
[rla] Support multiple address books in search portal block (Request #8786).
[mjr] Fix importing LDIF files (Bug #10139).
[mjr] Fix issue introduced in 3.0.1 that caused contact images to not display
      (Bug #10050).
[jan] Fix editing of multiple contacts at once (Bug #10085).
[jan] Enable homeAdress and workAdress composite fields by default.
[jan] Fix exporting department attribute over ActiveSync.
[mjr] Fix adding contacts with a category selected.
[jan] Fix LDAP schema checking (Bug #9826).
[jan] Fix creating temporary files with open_basedir restrictions.
[mjr] Fix importing objects with categories (Bug #9841).
[mjr] Fix merging duplicate contacts (Bug #9828).
[mjr] Allow unsetting the GAL and Client Address Book settings (Bug #9843).
[mjr] Fix deletion of virtual address books (Bug #9779).
[jan] Fix saving searches to virtual address books (Bug #9776).
[mjr] Datatree share to SQL upgrade script refactored for Horde 4.
[jan] Move all executable scripts to bin/ and prefix with turba-.
[jan] Add fields to all addresses if multiple passed to addField() API method
      (Request #3482).
[mjr] Fix issue that caused the inability to preview contact images while
      uploading (Bug #9702).
[jan] Update installation and upgrade instructions.
[gwr] Adapted the Kolab driver to Horde 4.
[mjr] Fix issue that caused erroneous file listings for objects in sources
      without a __uid value.
[cjh] Fix storing of binary fields.
[mjr] Fix/refactor IMSP driver.
[mjr] Fix the listTimeObjects API for shared sources (Bug #9649).
[jan] Fix importing contacts with SyncML (Simon Bühler, Bug #9641).
[jan] Provide default configuration files instead of .dist versions.
[jan] Create a default address book if the user doesn't own any yet.
[jan] Rename sources.php to backends.php.
[mjr] If default addressbook is not browsable, try one from the addressbook pref
      (Request: 6536).
[jan] Add duplicate search and merging.
[mjr] The listTimeObjects API now returns categories for each source
      individually instead of returning only the categories available
      (Request #8504).

Calendar Changes
[jan] Fix holidays being off with certain system timezones (Bug #9989).
[jan] Only highlight days in the mini calendar that are currently displayed
      (Bug #10048).
[jan] Fix advanced search with empty search criteria (Bug #10038).
[jan] Add header for timeobjects calendars.
[jan] Fix date picker in advanced search form (Bug #10039).
[mjr] Remove visible exceptions when deleting recurring events (Bug #10013).
[mjr] Fix issue causing listTimeObject calendars to not appear (Bug #10012).
[jan] Don't show event edit links if user doesn't have edit permissions on any
[jan] Fix parsing of recurrence end date in dynamic view (Bug #10025).
[jan] Fix displaying of new tasks in new task lists.
[jan] Fix displaying colors of task lists.
[jan] Delete tasks from tasks view when deleting tasks lists.
[jan] Don't export multi-day events as multiple events to iCalendar data (Bug
[jan] Fix dragging tasks in the dynamic view.
[mjr] Fix calendar embedding.
[jan] Don't store all task lists in the session.
[jan] Fix new task lists not showing up until next login (Bug #9814).
[mjr] Fix broken event alarm links in sidebar (Bug #9897).
[mjr] Fix drag/drop editing of recurring events (Bug #9880).
[jan] Fix undefined function on Windows (Bug #9916).
[jan] Support adding and editing of CalDAV events in dynamic view (Bug #9865).
[mjr] Allow migrations to complete despite of missing shares.
[jan] Remove debug code in Ajax library (Bug #9818).
[jan] Fix application-specific permission checks (Bug #9786).
[jan] Fix fatal error when using the max_events permission (Bug #9784).
[mjr] Datatree share to SQL upgrade script refactored for Horde 4.
[mjr] Add migration for mysql specific geospatial fields (Bug #9758).
[jan] Set default alarm in dynamic view (Bug #9752).
[jan] Move all executable scripts to bin/ and prefix with kronolith-.
[jan] Fix javascript error when viewing events with desktop notifications
      (Bug #9727).
[jan] Update installation and upgrade instructions.
[jan] Fix custom event alarm settings in traditional view (Bug #9154).
[jan] Only load external events in IFRAME if configured.
[jan] Fix retrieving event UIDs without date limit (Simon Bühler, Bug #9651).
[jan] Fix saving display status of other applications' calendars (Bug #9636).
[mjr] Add migration for converting existing event categories to tags.
[jan] Add configuration whether to load other applications in an IFRAME.
[jan] Provide default configuration files instead of .dist versions.
[jan] Send a subscription link with the notification about shared
      calendars if necessary.
[jan] Default calendars no longer have the user name as the ID.
[jan] Create a default calendar if the user doesn't own any yet.
[jan] Add CalDAV client support (Request #8525).
[jan] Send agenda emails with HTML part and convert to Horde_View.
[mjr] More complete handling of recurring event exceptions when dealing with the
      iCalendar format (Request #9091).
[jan] Add remote calendars to the possible list of calendars for free/busy
[jan] Send alarm and iTip notifications with HTML part and convert to
[jan] Add option to notify users about calendar permission changes.
[mjr] listTimeObject calendars are now viewable independently in the calendar
      portal blocks (Request #8530).
[mjr] Recurring event exceptions are now indicated as such in the UI.
[mjr] Deleting a recurring event now also deletes all exceptions to that event.
[mjr] Add support for inline maps to the Ajax interface.
[jan] Add preference to limit the events per day in the month view.
[jan] Add system calendars (Request #2059).
[jan] Add URL field to events.
[jan] Add task management capabilities to the Ajax interface.
[jan] Manage holidays like any other calendar driver.
[mjr] Add resource scheduling.
[jan] Integrate tasks into Ajax interface (Gonçalo Queirós
[mjr] Extend listTimeObjects API to include optional links and icons.
[jan] Allow searching of any type of calendar and improve searching of
      recurring events.
[cjh] With only SHOW permissions, display event titles as "busy".
[mjr] Replace categories and keywords by tags.
[jan] Set colors per calendar (Request #7480).
[jan] Add individual notification methods for single events (Alfonso Marín
      Marín <>).
[jan] Add Ajax interface.
[jan] Store events in UTC and convert to the user's timezone on the fly.
[jan] Remove alarm reminder code.
[jan] Change listEvents API method to return keys as dates instead of

Tasks Changes
[jan] Fix reversed logic of displaying sub-task tree icons depending on the
      text direction (Bug #10033).
[jan] Fix encoding of non-ascii characters in parent task drop-down.
[mjr] Fix editing tasklists (Bug #9965).
[jan] Fix application-specific permission checks (Bug #9786).
[mjr] Datatree share to SQL upgrade script refactored for Horde 4.
[jan] Fix creating new tasks through WebDAV (Bug #9675).
[jan] Move all executable scripts to bin/ and prefix with nag-.
[jan] Update installation and upgrade instructions.
[gwr] Adapted the Kolab driver to Horde 4.
[mjr] Fix saving tasks via PUT method.
[mjr] Fix deleting task lists.
[mjr] Fix hiding the External prefs group (Bug #9643).
[jan] Provide default configuration files instead of .dist versions.
[jan] Send alarm notifications with HTML part and convert to Horde_View.
[jan] Default task lists no longer have the user name as the ID.
[jan] Create a default task list if the user doesn't own any yet.
[jan] Add start date to possible colums in task list (Joel Smith
      <>, Request #9083).
[jan] Add system task lists (Request #2059).
[jan] Set colors per task list (Request #7480).
[cjh] Quick Add support: there is a javascript UI element for quickly adding
      tasks, and an API method (tasks/quickAdd) that provides the same
[jan] Add individual notification methods for single tasks (Alfonso Marín
      Marín <>).

Notes Changes
[jan] Fix generating tooltip previews of encrypted notes.
[jan] Fix application-specific permission checks (Bug #9786).
[mjr] Datatree share to SQL upgrade script refactored for Horde 4.
[mjr] Default sorting criteria by creation date (Bug #7332).
[jan] Move all executable scripts to bin/ and prefix with mnemo-.
[jan] Update installation and upgrade instructions.
[gwr] Adapted the Kolab driver to Horde 4.
[jan] Fix PDF generation.
[jan] Fix encrypting and decrypting of notes.
[jan] Provide default configuration files instead of .dist versions.
[jan] Default notepads no longer have the user name as the ID.
[jan] Create a default notepad if the user doesn't own any yet.
[jan] Try to create ISO-8859-1 encoded PDFs if this matches the user's language.
[jan] Add script to convert notes to UTF-8 in the backend.


[jan] Add holiday drivers for Australia, Croatia, Finland, Portugal, San
      Marino, and Spain.

Horde Changes
[jan] Convert charset of group names in SQL driver (Bug #9611).
[jan] Fix deleting of SyncML anchors if PHP short_open_tag is off (Bug #9349).
[jan] Add an experimental new Share SQL driver with better performance.
[jan] Fix integer overflow in ASN.1 parser for S/MIME messages.
[jan] Fix splitread database usage in VFS (Bug #9467).
[jan] Fix invalidating permission cache in SQL driver (Bug #9392).

Address Book Changes
[mjr] Fix issue that caused erroneous file listings for objects in sources
      without a __uid value.
[jan] Allow to export photo/logo fields to vCard without MIME type.
[jan] Support X-EPOCSECONDNAME fields of Nokia phones.
[jan] Add upgrade scripts for next-generation SQL share driver.
[jan] Fix splitting up names when exporting to N properties of vCards.
[jan] Only set the encoding parameter for binary data in vCards, if data is not
      empty (Bug #9413).
[jan] Fix searching for fields matching an email address if using 'emails'
      attribute instead of 'email' (Bug #9472).
[jan] Use personal address books first if determining the default one (Valentin
      Vidic, Request #9367).
[jan] Use name format preference not only for paging, but for sorting too
      (Request #8806).
[jan] Fix photo corruption when exporting to vCard 3.0 (Bug #9100).

Calendar Changes
[jan] Add upgrade scripts for next-generation SQL share driver.
[jan] Export recurrence exceptions in a more portable way.

Tasks Changes
[jan] Add upgrade scripts for next-generation SQL share driver.

Notes Changes
[jan] Add upgrade scripts for next-generation SQL share driver.


Horde Changes
[mms] SECURITY: Fix XSS when viewing details of a vCard (Bug #9357).
[jan] Fix exporting recurrence exceptions to vCalendar 1.0.
[jan] Skip event status synchronization with Outlook, which is broken.
[jan] Don't send SIF data to recent Funambol clients, unless requested.
[jan] Log all queries and errors by the history library.


[jan] Add holiday drivers for Italy and Japan.

Horde Changes
[jan] Fix searching DataTree elements (groups) if backend charset is different
      from interface charset (Bug #9323).
[mms] Fix accessing IMAP ACLs that contain non-alphanumeric characters
      (Bug #9299).
[jan] Avoid fatal errors when using DateTime with not properly configured
      PHP 5.3+ (Bug #9312).
[jan] Fix importing recurrence exceptions from vCalendar 1.0.
[mms] Fix preferences management regression (Bug #9289).
[jan] Fix conversion of all-day events and certain yearly recurring events for
      Funambol clients.
[mms] Fix memcache cache regression (Bug #9279).
[jan] Fix SyncML page sometimes deleting more anchors than selected.


[mjr] Do not remove history entries when removing user data (Bug #8755).

Horde Changes
[jan] SECURITY: Add token protection to preference forms.
[mms] SECURITY: Fix XSS in util/icon_browser.php.
[mms] Fix generating RFC 2231 parameters with charset information (Bug #9212).
[mms] On invalid token during logout, redirect to initial page (Bug #7669).
[mjr] Don't allow fixed blocks to be changed to another type (Bug #9141).
[jan] Show future alarms in the alarm management screen too.
[mjr] Fix bug in Horde_Cache that would prevent cache entries from being
      expired in certain cases, and prevent cache key collisions.

Address Book Changes
[jan] Correctly export FN vCard property if 'alternative_name' is set, but not
      'name' (Bug #9207).
[jan] Fix import of addresses from LDIF (Axel Jurak, Bug #9215).
[jan] Speed up browsing of long address books.

Calendar Changes
[gwr] Fix moving events between calendars for the Kolab driver (Bug #7932)
[jan] Import and export the privacy field in CSV data (Request #9139).
[mjr] Send an iTip REQUEST, not ADD, when updating an existing event
      (Bug #9131).
[jan] Fix all-day events sometimes showing up an day early too (Bug #9012).
[mjr] Sort exception list before displaying (Request #7688).

Tasks Changes
[jan] Remove stray closing tag when displaying the date of completion.


[jan] Fix certain configuration items getting lost during upgrades (Bug #8793).
[jan] Use TLS for SMTP connections if supported.

Horde Changes
[mjr] Fix issue in Horde_Image that would cause generated images to lose
      transparency in certain situations.
[jan] Allow to update existing identities while requiring email confirmation
      (Sebastian Radish, Bug #8877).
[jan] Fix casting errors when using SQL shares and groups on PostgreSQL
      (Bug #8899).
[gwr] Allow conf.d style directory configuration overriding (Request #8172).
[jan] Fix sending alarms to multiple users (Bug #8821).
[mms] Fix display of S/MIME certificate data (Bug #8826).
[mjr] Fix bug in Horde_Image that caused polaroid effect to fail on really old
      ImageMagick versions (earlier then 6.3.2).
[jan] Work around Funambol clients requiring a "configuration" database
      (Bug #8621).
[jan] Add support for synchronizing only those fields that are supported by
      the client.
[jan] Workaround broken PHP number formatting with some locales (Bug #8780).

Address Book Changes
[jan] Remove deleted contacts from distribution lists in the same address book.
[mjr] Allow creation of default, personal address book when other read-only
      sources are present.
[mjr] Log in history when deleting all of a user's contacts (Bug #8755).
[jan] Only export non-empty fields if exporting manually.
[jan] Add export to vCard 3.0.
[jan] Only synchronize those fields that are supported by the client
      (Request #6658, requires Horde 3.3.7).

Calendar Changes
[jan] Delete Horde alarms when resetting an event alarm.
[jan] Set an alarm to one minute, if users try to set an alarm without time.
[gwr] Fix editing the start date of recurring events (kolab/issue3885).

Tasks Changes
[jan] Set an alarm to one minute, if users try to set an alarm without time.
[jan] Add missing preference for not sending update notifications to yourself
      (Joel Smith <>, Request #8978).
[gwr] Fix organizer field not saved in tasks (kolab/issue3888).


[jan] Add Croatian translation (Matej Vela <>,
      Iva Rumora <>).
[jan] Add and fix Oracle SQL scripts.

Horde Changes
[mms] SECURITY: Workaround XSS vulnerability in Firefox for data URLs
      (Bug #8715).
[jan] SECURITY: Fix XSS in administrator section.
[jan] Fix alarm system with Oracle backends.
[mjr] Fix using the removeUserDataFromAllApplications method (Valentin Vidic
      <>, Bug #8754).
[mjr] Fix checking existing signup requests in the Auth_Signup_datatree driver.
[jan] Fix syntax of MSSQL scripts (Bug #8664).
[jan] Export task alarms to Funambol clients (Request #8426).
[jan] Fix not catching Alt key combinations for access keys on Mac OS.
[jan] Close popup window after saving categories.
[jan] Check quota when copying files with VFS (Valentin Vidic
      <>, Bug #8643).
[jan] Fix detecting SyncML message sizes.
[jan] Fix mapping of elements during synchronization (Bug #8386).
[mms] Fix potential session writing issues using PHP 5.0.5+.
[jan] Fix error in PHP 5 SOAP server implementation.
[mms] Fix updating memcache tracking info upon session destruction
      (, Bug #8626).
[mjr] Various improvements and fixes to the Net_IMSP driver
      (; Bug #8532, #8533, #8534, and #8535).
[jan] Export all email addresses to Funambol clients (,
      Request #8571).
[jan] Export all fax numbers to Funambol clients (,
      Request #8618).
[jan] Fix detecting device information of certain synchronization devices.
[jan] Fix warnings when listing sessions with Oracle or PEAR DB session
      handlers (Bug #8601).
[mas] Fix SessionHandler_sql::getSessionIDs() SQL syntax (,
      Bug #8600).
[mas] Fix Horde_SQL::readBlob() on MSSQL (, Bug #8599).
[mms] Fix prototypejs regression on Internet Explorer (Bug #6590).

Address Book Changes
[jan] Fix syntax of MSSQL scripts (Bug #8664).
[jan] Add preference for the name format to use for sorting (Request #6721).
[jan] Condense whitespace in composite fields (Request #8654).
[mjr] Fix permission checking for virtual address books.
[jan] Update deleted attributes during synchronization (,
      Request #6658).
[jan] Support X-ANNIVERSARY, X-CHILDREN, and X-SPOUSE vCard fields
      (Request #8074).
[jan] Fix copying and moving of image fields (Ryu <>, Bug #8523).
[jan] Don't return an error on empty LDAP search results (Bug #8595).
[jan] Replace PHP5-only code from the LDIF exporter (Bug #8586).

Calendar Changes
[jan] Fix editing URLs of remote calendars.
[gwr] Fix recurring weekly events with fixed number of occurences but multiple
      incidences per week (kolab/issue3846).
[gwr] Fix recurring weekly events with intervals > 1 (Bug #8546).
[jan] Optimize event link generation (
[jan] Fix charset of ajax responses.
[jan] Speed up listing alarms (, Request #8638).
[jan] Simplify and improve portability of listing events without date limits
      in the SQL driver (Bug #8590).
[mjr] Fix issue that caused the default alarm time to be applied to
      listTimeObjects events (Bug #8588).

Tasks Changes
[jan] Fix importing due date attribute from iCalendar (Bug #8644).
[jan] Fix charset when exporting tasks to iCalendar 2.0 (Bug #8637).


[jan] Create table with METAR weather stations (Request #8302).
[jan] Bundle a complete, working PEAR installation (Bug #7902).
[jan] Bundle Net_DNS, Net_IMAP and Net_LDAP2 PEAR packages.
[mms] Upgrade prototype.js to v1.6.1.
[jan] Fix synchronization with output compression enabled (Bug #7769).

Horde Changes
[jan] SECURITY: Fix vulnerability in image form fields that allows overwriting
      of arbitrary local files.
[cjh] SECURITY: Fix validation of "number" type preferences (Bug #8399).
[mms] SECURITY: Don't display unknown text parts inline (Bug #8311).
[jan] Use system timezone for timestamps in the logs (Bug #8496).
[jan] Fix exporting certain weekday recurrence rules to iCalendar
      (, Bug #8510).
[jan] Work around crash bug in Funambol clients when synchronizing all-day
      events (Bug #8474).
[jan] Fix synchronizing tasks with certain devices (Bug #8506).
[jan] Workaround synchronizing of messed up categories in Nokia E phones
      (Bug #7824).
[jan] Fix synchronizing photos with broken Nokia phones (,
      Bug #7407).
[jan] Fix fatal error during synchronization if using certain session handlers
      (Bug #8443).
[jan] Improve synchronizing yearly events with Funambol clients
      (, Request #7790).
[jan] Destroy session when a CLI script ends (Request #8482).
[jan] Fix data casting when caching permissions with the DataTree backend (Bug
[jan] Pass user's password to the signup_addextra hook.
[jan] Add removeUserDataFromAllApplications API method
      (, Request #8454).
[jan] Catch errors when resetting passwords.
[jan] Support resetting passwords with composite authentication.
[mms] Fix memcache issue where it took 1 second to release a lock.
[mjr] Fix weatherdotcom block always displaying a 5 day forecast (Bug #8357).
[cjh] Use streams for file transfers in VFS_ssh2 (,
      Request #8323).
[jan] Send notification messages about new signups with confirmation links.
[jan] Drop signup_email column from sign-up table.
[jan] Show photo in vCard viewer if provided as inline vCard data.
[mjr] Fix issue where pref hooks would not be called for preferences marked as
      shared and defined outside of the Horde scope.
[jan] Add configuration whether to show user drop down list or text field in
      permissions dialog.
[jan] Export current locale to the environment.
[jan] Fix unfolding of vCard 2.1/vCalendar 1.0 data.

Address Book Changes
[mjr] Fix contacts being deleted during synchronization when moved from one
      address book to another (, Bug #8487).
[mjr] Add new API method for retrieving the default share for a source.
[jan] Don't overwrite the compositing fields, when importing composite fields.
[cjh] Fix searches for multiple strict fields and at least one non-strict field
      (, Bug #7876).
[mjr] Specific timeobject categories are now only advertised when they are
      present in a configured source.

Calendar Changes
[jan] Allow to add address lists as attendees through the address book popup
      (Bug #7834).
[jan] Fix exporting certain weekday recurrence rules to iCalendar
      (, Bug #8501).
[jan] Export recurrence end dates as date-time values in iCalendar data to
      improve compatibility with external clients (Bug #7846).
[jan] Fix synchronization with output compression enabled (Bug #7769).
[jan] Add configuration whether to show user drop down list or text field in
      permissions dialog (requires Horde 3.3.5).
[jan] Propagate the 'modified' API method (Request #8274).
[cjh] Fix the signature of the kronolith/import API method
      (, Bug #8309).
[jan] Correctly create all-day events if using the all-day link in the day
      view (, Bug #8220).
[jan] Fix rendering of all-day events (Bug #8176).

Tasks Changes
[jan] Display application name as task list name when listing external tasks.
[jan] Fix importing vTodo data including more iCalendar components.

Notes Changes
[jan] Add passphrase confirmation field (Bug #7379).
[cjh] Work around BC break with Horde versions before 3.2 (Bug #7820).
[cjh] Add URL access to notes by "starts-with" search on the note title.
[cjh] Add hooks for altering the displayed note body and showing help text next
      to the note entry field.
[cjh] Explicitly load DB library (Bug #7648).
[jan] Fix "replace" API method (Alfonso Marín Marín <>, Bug #7436).
[cjh] Add a PostgreSQL-specific upgrade script.
[jan] Change group field in shares table to work with LDAP groups (Bug #6883).
[jan] Fix user name conversion with user hooks in the notepad panel (Bug #7366).


[jan] Bundle Text_Figlet package to enable the captcha form field.

Horde Changes
[jan] Fix rendering of addresslink form fields (Bug #8053).
[mjr] Fix a botched merge in Horde_Image_gd that was causing an undefined
      variable notice to be output in the image data.


[jan] Use improved Date_Holidays package.
[mms] Upgrade prototype.js to v1.6.0.3.

Horde Changes
[mjr] Fix an issue that causing users with expired passwords to be allowed to
      log in with the LDAP Auth driver.
[jan] Properly handle synchronization requests to non-existant databases.
[jan] Fix exporting all-day events to Funambol clients (Bugs #4487, #6847).
[jan] Quote parameter values in iCalendar data if necessary (Gunnar Wrobel,
      Bug #7758).
[jan] Detect base64 encoded synchronization data from Blackberry devices
      (Bugs #6995, #6949).
[jan] Optionally use Net_DNS for host name lookups (,
      Request #7374).
[jan] Add TLS support to LDAP drivers (, Request #7958).
[jan] Add scope and sizelimit parameters to LDAP authentication driver
      (, Request #7839).
[jan] Further improve HTML-to-text filter.
[jan] Export recurrence end dates as date-time values in iCalendar data to
      improve compatibility with external clients (Bug #7846).
[jan] Silence errors messages from iconv_substr() (, Bug #8128).
[jan] Don't catch Alt key combinations for access keys on Mac OS.
[mjr] Fix bitwise clause generation in the sql and hierarchical sql driver. This
      fixes issues with Oracle and possibly other RDBMS.
[mjr] Correct numerous bugs in Horde_Image dealing with ImageMagick version
[jan] Fix charset conversion in preference hooks (Bug #7489).
[cjh] Proactively disable allow_url_include in core.php.
[cjh] Add an index on session_lastmodified to the Horde sessionhandler tables.
[mjr] Force the use of REQUEST_URI instead of PATH_INFO in Util::getPathInfo()
      when being served by lighttpd due to issues with case insensitive
      file systems.
[cjh] Add support for SSL connections to MySQL databases (,
      Request #7972).
[cjh] Fix storing of unlocked preferences set by hooks (,
      Bug #6822).
[jan] Highlight color input fields with the color from the picker.
[jan] Fix importing vCards that have the charset specified in a MIME part
      (Bug #7816).
[mms] Ensure all input array entries in String::convertCharset() are properly
      iterated through (Bug #7828,

Calendar Changes
[jan] Render contact autocompletion list on top of free/busy blocks (Bug #7273).
[jan] Save recurrence exceptions when copying events (Bug #7689).
[jan] Prevent warnings if trying to add address lists as attendees (Bug #7834).
[jan] Fix start and end time calculation of multi-day events (Bug #7788).
[jan] Wrap URL in calendar information in IE7 (, Bug #8043).
[jan] Fix "Date-string has wrong format" error with holidays (Bug #7961).
[jan] Use improved translation support in Date_Holidays (requires 0.21.0 now,
      Bug #7272).
[jan] Empty view cache when changing calendar selection
      (, Bug #7879).
[mjr] Fix category CSS being included on embedded widgets.
[jan] Allow to manually change attendee responses (,
      Request #7443).
[jan] Fix linking to last week across certain year boundaries (Bug #7827).
[jan] Add script to import events from SquirrelMail database.
[cjh] Add private-***.png graphics to Tango and Silver themes (Bug #7531).
[cjh] Fix listing of users in the calendar/browse API call.
[jan] Set timezone per user preference and fix recurring events when sending
      reminders through Kronolith (, Bug #7038).
[cjh] Add a PostgreSQL-specific upgrade script for 2.2 to 2.3
      (, Bug #7454).

Tasks Changes
[jan] Don't allow to set alarms if no due date has been set.
[cjh] Add URL access to tasks by "starts-with" search on the task name.
[cjh] Add hooks for altering the displayed task description and showing help
      text next to the task description entry field.
[cjh] Add estimated time to the fields available in the task list.
[jan] Fix link escaping in notification messages (Alfonso Marín Marín
      <>, Bug #7509).
[cjh] Add a PostgreSQL-specific upgrade script for 2.2 to 2.3.
[cjh] Fix fatal error when completing tasks (Bug #7400).


[jan] Update broken Date_Holidays package (Bug #7784).

Horde Changes
[cjh] SECURITY: Escape output in the tag cloud block
      (found by Gunnar Wrobel <>).
[cjh] SECURITY: Validate the Horde_Image driver name
      (found by Gunnar Wrobel <>).
[cjh] Allow "." in phone number fields (Request #7858).
[cjh] Restore backwards compatibility in MIME::_rfc822Encode calls,
      used in Kronolith and Whups FW3 calls (Bug #7862).
[cjh] Fix the SQL Share driver closing the global database connection
      improperly when using PostgreSQL (Bug #7825).
[jan] Add support for Mozilla Sunbirds snooze properties (Request #7470).
[cjh] Try iconv_substr() in String::substr() if it's available
      (, Request #7826).
[cjh] Avoid warnings in Perms::getPermissionId with PostgreSQL
      (Marcus Ryan <>, Bug #7750).
[jan] Fix parsing of LABEL attributes in the vCard viewer.


[jan] Patch broken Date_Holidays package (Bug #7413).
[jan] Fix updating of preferences and other configuration files (Bugs #7439,
[jan] Fix creating the alarm tables on PostgreSQL (Bug #7409).
[mms] Upgrade prototype.js to v1.6.0.3.

Horde Changes
[cjh] SECURITY: Add another check to the XSS filter.
[jan] Add script to import preferences from SquirrelMail database.
[cjh] Allow the password file Auth driver to require a specific group.
[jan] Add XPath wrapper to Horde_DOM library.
[cjh] Don't use executeMultiple in the SQL Share driver when we might
      reset the connection in between queries (Bug #7542).
[jan] Fix database XML schema to create all lock table fields (Bug #7433).
[jan] Fix showing two sidebars after saving the display preference group for
      the first time (Bug #7475).
[jan] Fix sharing with LDAP groups (Bug #6883).
[jan] Add javascript event handler for access keys.
[cjh] Remove UNSIGNED from PostgreSQL scripts.
[cjh] Call preference hooks in the scope of the preference
      (vlukashov (at) parallels (dot) com, Bug #7445).
[jan] Fix resuming synchronization session on server farms
      (, Bug #7394).
[jan] Fix synchronization of tasks with many items (,
      Bug #7395).
[jwm] Fix regression: SOAP wsdl/disco shouldn't require authorization.

Address Book Changes
[jan] SECURITY: Escape output in test.php.
[jan] Add script to import contacts from SquirrelMail database.
[gwr] Correct support for the freebusy URL in Kolab.
[gwr] Add photo support for the Kolab driver.
[jan] Import broken vCards from Synthesis clients (Bug #7407).
[cjh] Add two retries to find a contact after adding it (Bug #7478).
[cjh] Add a PostgreSQL-specific upgrade script for 2.2.1 to 2.3
      (, Bug #7462).
[jan] Don't overwrite empty address books preference when creating new shares
      (Bug #7399).


[jan] Change group field in shares table to work with LDAP groups (Bug #6883).

Horde Changes
[jan] Fix synchronization issues with Blackberry clients (Bug #6949).
[mms] Fix setting the horde user when using application authentication with
      realms (Bug #6749).
[jan] Fix user name conversion with user hooks in the permissions interfaces
      (Bug #6371).
[jan] Provide all settings for the read server in split SQL configuration
      (Request #7024).
[jan] Improve HTML to text filter.
[mjr] Hierarchical SQL Share driver now correctly removes all children when
      removing a share (Bug: 7347).
[mjr] Fix an issue with various date/time fields in horde form that was causing
      erroneous validation errors.
[cjh] Sign parameters to go.php with an HMAC based on a new secret key
      configuration value, to prevent using go.php as an open referrer.
[cjh] Make logout tokens only valid for a configurable length of time.

Address Book Changes
[jan] Fix exporting address books with country fields as vCards (Bug #7372).
[mjr] Make sure we use all address books when searching via the api and the
      user's addressbooks pref is empty (Bug #7357).
[mjr] Correctly calculate the age of time objects (Bug #7330).

Calendar Changes
[jan] Fix user name conversion with user hooks in the calendar panel
      (Bug #7366).
[gwr] Fixed handling of free events in the Kolab driver
      (, Bug #7192).
[jan] Differentiate between days with events and days with busy events in the
      year view.

Tasks Changes
[jan] Log completion date if adding a completed task (Bug #7275).
[jan] Fix user name conversion with user hooks in the task list panel
      (Bug #7366).
[jan] Fix displayed WebDAV subscription URLs in the task list manager.


[jan] Fix upgrading from 1.1.x releases.
[jan] Improved SOAP interface.

Horde Changes
[mms] Fix garbage collection handling on SQL session handler backends.
[mjr] Change MDB2 sequence names to 'id' in SQL share driver (Bug #7240).
[cjh] When a URL is supplied for pass-through after logging in, go to that URL
      in mobile browsers instead of going to the mobile portal (Bug #6332).
[mms] Memcache session handler no longer writes data with a lifetime.
[cjh] Add DIMP to the horde LDAP OIDs and hordePerson objectclass (Bug #7243).
[mms] Update FCKeditor to v2.6.3.
[jan] Use global mailer configuration when sending alarm emails
      (, Bug #7058).
[jan] Reset background colors when resetting the category form (Bug #7226).
[jan] Improve Funambol contacts support (Requests #7099, #7100).
[jan] Correctly parse GEO tags in vCard 2.1 data (Bug #6563).
[jan] Remove Horde portal link from application menus (Bug #7221).
[cjh] Create a driver for signups, allowing backends other than DataTree
      (Duck <>, Request #7161).
[jan] Fix displaying images with the image form field.
[mjr] Fix issue with hierarchical SQL share driver that caused permissons to
      erroneously be denied when the share contained group permissions and was
      instantiated by a listShares call.
[mjr] Fix issue with hierarchical SQL share driver that caused any child shares
      to be orphaned when the parent share was moved in the hierarchy.
[mjr] Fix issue with SQL share drivers that was causing permission checks to
      fail under certain conditions by no longer explicitly storing owner
      permissions in the Perms backend.
[cjh] Fix overwriting a variable in the tableset_html VarRenderer
      (Paul Roy <>, Bug #7120).
[mms] Fix MIME encoding when using the ISO-2022-JP charset (Bug #1621).
[jan] Fix SQL Share driver not using the correct database when using different
      databases in Horde applications (Bug #6997).
[cjh] Fix SQL portability in Share_sql driver (Bug #7084).
[jan] Fix synchronizing large amounts of data split across several SyncML
[jan] Add Basque translation (Euskal Herriko Unibertsitatea EHU/UPV
[cjh] Fix Horde_Lock::getLockInfo (, Bub #7046).
[cjh] Fix SQL portability in Group_sql driver (Bug #7075).
[jan] Fix PAM authentication driver, but also mark it as deprecated (Bug #6982).
[mjr] Fix issue with native SQL Share driver that caused filtering shares by
      attributes to fail.
[jan] Fix synchronization of event alarms with Funambol clients (Bug #7003).
[jan] Correctly detect Funambol clients on Blackberry devices (Bug #6995).
[mjr] Remove all user application permissions and group memberships from storage
      when removing the user from the system (Bug: 6999)
[cjh] Call the postauthenticate hook in Auth::setAuth(), and allow the
      postauthenticate hook to cause setAuth() to fail. Allows postauthenticate
      to fire on any event, including transparent authentication, that could
      result in a user being successfully logged in.
[jan] Improve attribute support and charset conversion in vCard viewer.
[jan] Show photos in vCard object if provided with an URL.
[mjr] Remove permissions from storage also when removing a share.
[jan] Add Horde_Form fields for string arrays and PGP and S/MIME keys.
[jan] Only show Add Permission icons in permissions interface where adding
      them is possible.
[mjr] Fix issue in Horde_Image that was causing erratic results when cropping
[jan] Fix validation of phone fields marked as required (Bug #6948).
[mms] Fix quoting periods in display part of e-mail address (Bug #6899).
[mms] Fix error checking when parsing an undisclosed recipients mail header
      and using an older version of PEAR::Mail (Bug #6930).
[jan] Return to portal after editing or deleting blocks directly from there.

Address Book Changes
[jan] Improve vCard EMAIL field parsing (Bug #7281).
[jan] Correctly import and export address extensions (Bug #7279).
[jan] Export full country names to vCard addresses.
[jan] Respect precedence of multiple vCard properties (Request #7122).
[jan] Remove deleted address books from address book preference (Request #6938).
[jan] Export LABEL properties to vCard if address fields are available.
[gwr] Add support for storing public PGP keys when using Kolab.
[gwr] Add support for adding addresses from IMP when using Kolab.
[jan] Add configuration option for an alternative name field.
[jan] Add support for image fields to SQL driver (requires Horde 3.3).
[jan] Add more default field mappings for CSV import (Request #6901).
[jan] Update field names for Outlook 2003 export (Request #6901).
[jan] Improve logic which entries to show in the sidebar menu.
[jan] Add support for the category form field (Request #6884).
[jan] Fix sorting so that sort order is always reflected correctly,
      independent of name format.
[jan] Add Basque translation (Euskal Herriko Unibertsitatea EHU/UPV
[jan] Add ability to mark a contact as your own and API method to export it.
[jan] Fix importing phone numbers from Synthesis clients (Bug #7011).
[mjr] Fix issue with searching composite fields when the number of search terms
      is less than the number of composed fields (Bug #6796)
[cjh] Allow importing multiple address into an email field if allow_multi
      is set to true on the field in attributes.php (Bug #6897).
[mjr] Remove user permissions on all shares when deleting a user.
[jan] Fix searching of client address books that have been disabled in the
      preferences (Bug #6961).
[mjr] Fix issue with removeUserData api that caused the deleted user's
      address books to not be deleted as well as remove an erroneous error
      notification (Bug #6969).
[cjh] Fix the column selector/sorter in IE (Bug #6912).

Calendar Changes
[jan] Send correct iTip notifications when deleting recurring event instances
      (Bug #6636).
[mjr] Add support for embedding calendar widgets on external websites.
[jan] Log moving of events in the history backend (Bug #3207).
[jan] Fix listing alarms of recurring events crossing day boundaries
      (Bug #7035).
[jan] Fix deleting all events over WebDAV (Bug #7005).
[jan] Add Atom feeds.
[jan] Fix encoding of holiday names.
[jan] Add Estonian translation (Alar Sing <>).
[jan] Consider RECURRENCE-ID attributes in iCalendar data.
[cjh] Fix a problem with the put() API call and events that already exist
      (, Bug #7088).
[jan] Fix importing iCalendar events with only a single recurrence exception
      (, Bug #7068).
[jan] Add Basque translation (Euskal Herriko Unibertsitatea EHU/UPV
[mjr] Add support for maintenance tasks and add a task for purging old events.
[jan] Fix future events not being received under certain circumstances
      (Bugs #6946, #6966).
[jan] Correctly sort recurring events (, Bug #7037).
[jan] Fix display of recurring events crossing midnight in the portal block
      (, Bug #7036).
[jan] Fix agenda emails containing wrong events.
[mjr] Remove user permissions on all shares when deleting a user.
[jan] Fix warning when importing events through the API (Bug #6865).
[cjh] Be case insensitive when comparing attendees
      (, Bug #6833).
[jan] Use smaller icons for private events.

Tasks Changes
[jan] Log moving of tasks in the history backend (Bug #3207).
[jan] Fix deleting all tasks over WebDAV (Bug #7004).
[jan] Add Estonian translation (Alar Sing <>).
[jan] Send a more detailed notification message and use the recipient's
      preferred language and date/time format after a task has changed.
[jan] Add Basque translation (Euskal Herriko Unibertsitatea EHU/UPV
[jan] Fix task relationship getting lost when importing tasks
      (,, Bug #6770).
[jan] Add preference to set columns for the list view.
[jan] Allow to set task assignee.
[jan] Add options to export screen for choosing task lists and task states.
[mjr] Remove user permissions on all shares when deleting a user.
[mjr] Fix issue with removeUserData api that caused the deleted user's task list
      to not be deleted.

Notes Changes
[jan] Log moving of memos in the history backend (Bug #3207).
[jan] Add Basque translation (Euskal Herriko Unibertsitatea EHU/UPV
[mjr] Remove user permissions on all shares when deleting a user.
[mjr] Fix issue with removeUserData api that caused the deleted user's task list
      to not be deleted (Bug #6969).


Horde Changes
[jan] SECURITY: Fix vulnerability in image form fields that allows overwriting
      of arbitrary local files.
[cjh] SECURITY: Fix validation of "number" type preferences (Bug #8399).
[mms] SECURITY: Don't display unknown text parts inline (Bug #8311).


[jan] Patch broken Date_Holidays package (Bug #7784).

Horde Changes
[cjh] SECURITY: Escape output in the tag cloud block
      (found by Gunnar Wrobel <>).
[cjh] SECURITY: Validate the Horde_Image driver name
      (found by Gunnar Wrobel <>).


[jan] Patch broken Date_Holidays package (Bug #7413).
[jan] Fix updating of preferences and other configuration files (Bugs #7439,
[jan] Fix creating the alarm tables on PostgreSQL (Bug #7409).

Horde Changes
[cjh] SECURITY: Add another check to the XSS filter.

Address Book Changes
[jan] SECURITY: Escape output in test.php.


Horde Changes
[jan] SECURITY: Fix unescaped output in the MIME attachment linking.
[jan] SECURITY: Add another check to the XSS filter.


[jan] Add upgrade functionality to the setup script.


[jan] Include missing MDB2 drivers.

Horde Changes
[cjh] SECURITY: Escape item names in the object browser (Bug #6906).
[cjh] Select db before queries in MySQL SessionHandler (Bug #6673).
[jan] Format messages sent through MIME_Mail in flowed text format.
[cjh] Catch errors if the Cache_file backend doesn't have permission to
      garbage collect (Bug #6895).
[cjh] Fix deletion of SQL shares when using split read/write databases
      (, Bug #6870).
[mms] Workaround broken IE behavior when downloading files with 8-bit
      filenames (, Bug #129).
[cjh] Fix storing of unlocked preferences set by hooks
      (, Bug #6822).
[mms] Allow Horde memcache driver to use UNIX sockets (Bug #6848).
[mjr] Various fixes for hierarchical SQL Share driver involving share names,
      better error checking and logging.
[cjh] Fix order of checks in String::convertCharset (Bug #6794).
[mms] Fix parsing of addresses in headers when the RFC 2047-encoded personal
      part of the address contains address list delimiters (Bug #6747).
[cjh] Fix generation of unique keys in configuration for machines too fast for
      microtime() (, Bug #6762).
[gwr] Added group driver for Kolab.
[gwr] Added IMAP based preferences driver for Kolab.
[mms] Fix missing timestamp variable in Horde SQL cache driver
      (, Bug #6839).
[cjh] Fix over-zealous preference caching when preferences are requested for a
      different user (Bug #6820).
[mjr] Fix issue in Horde_Image that caused errors when performing certain image
      operations immediately after an image had been cropped when using the
      ImageMagick driver.

Address Book Changes
[cjh] SECURITY: Escape contact names in the contact display view.
[jan] Fix importing of certain phone numbers from vCard (Bug #6744).
[mjr] Correct a function declaration in the 2.1_to_2.2_sql_schema.php upgrade
      script that was causing fatal errors.


[cjh] Improve resource usage in datatree_to_sql share migration scripts
      (Bug #6740).
[jan] Update Services_Weather package to fix changes in the API.

Horde Changes
[jan] Fix synchronization of contacts with some SyncML clients (Bug #6706).
[mjr] Fix SQL bitwise comparison issue in native SQL share drivers that affected
      PostgresSQL (Bug #6751).
[cjh] Ensure users' email addresses are well-formed (Bug #6654).
[jan] Remove About... link from help viewer.
[mms] Update Xinha editor to support Safari 3.

Address Book Changes
[mjr] Fix importing email addresses from CSV files to be consistent with what
      we allow to be entered via the UI. (Bug #6725)

Calendar Changes
[jan] Identify the correct event when using attend.php to update invitations
      (Bug #6606).
[jan] Decode user names and passwords when editing remote calendars.
[cjh] Ensure that event_category is always a string (Bug #6696).

Tasks Changes
[jan] Allow to import all fields that can be exported.
[cjh] Fix displayed WebDAV subscription URLs in the panel (Bug #6709).

Notes Changes
[jan] Fix exporting and synchronization of encrypted notes.


[cjh] Apply fix for to prototype.js
      (Request #6590).
[cjh] Add upgrade scripts for the new SQL share driver (Request #6109).

Horde Changes
[bak] Improvements to WebDAV return codes and implement WebDAV locks
[bak] Add Horde_Lock subsystem
[mms] Add memcache caching support to all session backends.
[cjh] Add a files-based Preferences backend (,
      Request #6653).
[cjh] Correct line-folding of encoded lines in iCalendar data
      (Gunnar Wrobel <>, Bug #6555).
[cjh] Add a configuration option for whether users can share with groups
      they aren't members of (, Request #6619).
[cjh] Ensure that alarms are created with a NULL alarm_snooze value
      (, Bug #6183).
[cjh] Add an admintools script for creating PEAR::DB sequences manually.
[cjh] Improved support for PGP fingerprints (Bug #6363).
[jan] Add rpc/ directory for prettified RPC URLs.
[jan] Move SyncML anchors out of the DataTree into a separate database table.
[cjh] Add beta SQL Permissions driver (, Request #6150).
[cjh] Add beta SQL Group driver (, Request #6175).
[jan] Use wider columns for the SyncML database table to correctly store long
      UIDs (Bug #5025).
[jan] Add "hordeweb" theme.
[jan] Add MIME::parseAddressList().
[jan] Add icons to edit and delete blocks directly from the portal.
[jan] Allow users to specify login credentials for Horde applications in the
[jan] Add NLS::setLanguageEnvironment() and NLS::setCharsetEnvironment().
[cjh] Fix LDAP authentication (Bug #6450).
[jan] Improve synchronization with Funambol clients.
[mas] Fix false positive verification of S/MIME messages (Bug #6323).

Address Book Changes
[cjh] Fix editing contacts that were accessed by UID (Bug #6672).
[cjh] Include composite fields in data exports (Bug #6517).
[gwr] Add distribution list support to the Kolab driver.
[cjh] Add vCard/syncing support for a large number of additional attributes
      (, Request #6573).
[cjh] Update composite fields in LDAP DNs (, Bug #6575).
[mjr] Fix paging in search results.
[cjh] Allow setting default values for attributes.
[cjh] Show a browse link in the address book list for each address book
      (, Request #6613).
[mjr] Fixed a bug that caused field values to get mismatched with the column
      names when a single DB field is mapped to multiple Turba fields.
[mjr] Fix changing sort order on the search view.
[jan] Add preference to choose address books for synchronization.
[jan] Improved importing of names from vCards (Bug #6568).
[jan] Fix incomplete copying and moving of attributes to composite fields
      (Bug #6565).
[gwr] Fix the relation of key/uid within the Kolab driver.
[gwr] Export/import of the emails attribute (Bug #6504).
[mas] Encode DN correctly when exporting to LDIF. (Bug #6518).
[gwr] Fix virtual address books when using shares.
[gwr] Fix searching for the Kolab driver.
[cjh] Replace the address book column sorter with a Scriptaculous-based one;
      fixes re-ordering columns in some cases (Bug #6444).
[jan] Always return to the last view after saving a contact.
[jan] Correctly determine default address books in the API (SyncML, WebDAV).
[jan] Add categories imported through the API (SyncML, WebDAV).
[jan] Store categories as strings.
[cjh] Show who created or made the last change to a contact along with the date
      (Request #6305).
[mjr] Prevent overwriting contact entries with the upgrade script (Bug #6308).

Calendar Changes
[cjh] In WebDAV PUT operations, only look for existing events on the calendar
      being uploaded (Bug #6617).
[cjh] Use json_encode and json_decode if they are available (Bug #6457).
[cjh] Use the first matching free/busy URL if more than one is found
      (, Request #6638).
[cjh] Allow subscribing/unsubscribing from external calendars through the API
      (, Request #6626).
[jan] Add another directory level for calendar owners to the WebDAV interface.
[jan] Cut off categories at 80 characters to save them correctly (Bug #5211).
[gwr] Fixed removal of recurrence in the Kolab driver.
[jan] Show full title in email alarms (Bug #6510).
[jan] Add export of single events.
[gwr] Fixed History support in the Kolab driver.
[cjh] Don't report cancelled events as busy (,
      Bug #6376).
[cjh] Show who created or made the last change to an event along with the date
      (Request #6305).
[cjh] Make sure event time and location are shown in the day and week views
      (Bug #6158).
[cjh] Include Location and Attendee information in the plain-text portion
      of iTip messages (, Request #6271).
[cjh] Use the Free/Busy default domain on the attendee entry page as well
      (Bug #6146).
[jan] Add Turkish translation (METU <>).

Tasks Changes
[cjh] Add an upgrade script for the new SQL share driver (Request #6109).
[jan] Correctly determine default task list in the API (SyncML, WebDAV).
[cjh] Show who created or made the last change to a task along with the date
      (Request #6305).
[jan] Add Turkish translation (METU <>).

Notes Changes
[gwr] Added History support in the Kolab driver.
[cjh] Avoid errors when trying to export an empty notepad (Bug #6409).
[cjh] Show who created or made the last change to a note along with the date
      (Request #6305).
[jan] Add Turkish translation (METU <>).


[jan] SECURITY: Fix privilege escalation in Horde API.
[cjh] SECURITY: Fix missing ownership validation on share changes.

Horde Changes
[jan] SECURITY: Filter out FRAME tags from HTML messages (CVE-2007-6018).
[jan] SECURITY: The XSS filter passes the complete XSS cheat sheet
      ( now.
[cjh] Add a PHP 5-only block for putting syndicated feeds on the Horde Portal
      (, Request #6107).
[cjh] Automate detection of which themes/app combinations have custom icons
      (Bug #6105).
[cjh] Fix listing of current session ids in the memcache SessionHandler
      (Bug #6083).
[cjh] Correct handling of cache misses from the Horde_Cache_sql driver
      (Bug #6060).
[mas] Add support for PGP revocation certificates to Crypt library.
[cjh] Provide specific validation errors when datetime Horde_Form fields have
      a date but not a time, or vice-versa (Bug #5992).
[cjh] Read email addresses from subjectAltName property of S/MIME certs
      (Bug #5986).
[cjh] Catch Horde_Block errors when doing ajax updates.
[cjh] Allow Horde_Mobile_select to take already-encoded options (Bug #5849).
[jwm] Add support in Horde_RPC_soap for handling SOAP endpoints that only
      expose certain types and/or methods.
[jwm] Make the SOAP service name in Horde_RPC_soap configurable.
[jwm] Add basic logging of SOAP calls (method name and args, elapsed
      time, bytes sent in response).
[cjh] Support LDAP password expiration when using Sun/Fedora Directory Server
      (, Request #6012).
[cjh] Remove the wrap attribute from preference textarea tags (Bug #6024).
[cjh] Recommend and default to SSHA hashed passwords.
[jan] Fix rendering of messages in some charsets that are only supported by
      iconv (Bug #5962).
[jan] Display WYSIWYG editor with correct language.
[jan] Fix creating of sub groups (Bug #5970).
[jan] Fix linking of URLs encapsulated in angle brackets (Bug #4946).
[jan] Fix edge cases of CSV file imports (Bugs #3839, #4025).
[mms] For SessionHandler drivers, don't write to backend if the session data
      did not change while loading the current page.
[cjh] The Auth:: package no longer depends on the PHP mhash extension
      for some encryption types.
[cjh] Add stream support to some VFS backends (Request #5913).
[jan] Add client code to JSON-RPC class and implement JSON-RPC 1.1.

Address Book Changes
[mjr] Degrade gracefuly when no VFS is configured.
[cjh] Fixed the share flattening upgrade script.
[mjr] Fixed issue that caused mangling of composite fields when moving or
      copying contacts from one address book to another (Bug #6058).
[mjr] Fixed issue that caused listTimeObjects to only return objects from a
      single address book when using a shared SQL source.
[cjh] Update address book management UI to match other groupware apps.
[jan] Trim composite field values before saving to the backend (Bug #5979).
[mjr] Fixed issue where composite fields with 'attribute' value set were not
      getting set in the backend when being imported via the API. (Bug #5978)
[mjr] Time object categories are now automatically detected.
[mjr] Fix issue that caused listTimeObjects API to miss returning objects when
      the date range crosses over into the next year.
[jan] Improved portability of the upgrade script (Bug #5949).
[mjr] Added anniversary support to the listTimeObjects API.

Calendar Changes
[jan] Fix importing of events with an existing UID (Bug #6122).
[cjh] Fix timestamps in portal block event links.
[mjr] Fix issue that caused recurring events on 2/29 to appear on 3/1 when
      recurrence type is HORDE_DATE_RECUR_YEARLY_DATE.
[cjh] If JavaScript is available, open the Attendees window set to the current
      event's date (Request #5813).
[cjh] Fix display of events that end at 00:00 at a non-zero second (Bug #6047).
[cjh] Fix handling of local names in attendees.php
      (, Bug #6041).
[cjh] Fix inline calendar search in the calendar panel.
[cjh] New share management UI that doesn't require JavaScript.

Tasks Changes
[jan] Fix tasks losing their parent task when being completed (Bug #6035).
[cjh] Add the ability to filter the list of task lists in the panel.
[cjh] New share management UI that doesn't require JavaScript.
[jan] Fix 2006-04-18_add_creator_and_assignee_fields.php upgrade script.

Notes Changes
[cjh] Add the ability to filter the list of notepads in the panel.
[cjh] New share management UI that doesn't require JavaScript.
[cjh] Add support for split read/write databases (<>,
      Request #5936).


[jan] Add performance tuning instructions.

Horde Changes
[jan] Apply user name hooks when editing share permissions
      (, Bug #5844).
[jan] Fix some date handling with dates outside the unix epoch (Bug #5893).
[jan] Fix fixed portal blocks (Bug #5853).
[jan] Fix Share caching (Bug #5748).
[cjh] Fix deleting categories (Gunnar Wrobel <>, Bug #5873).
[cjh] Import dhtmlHistory.js from DIMP into Horde core.
[cjh] UTF-8-encode DNs in the LDAP Groups driver (,
      Bugs #4692 and #4918).
[mjr] Addition of an Effects API to the Horde_Image package, including a
      number of image effect plugins.
[jan] Add country list form field.
[cjh] Add example logrotate configuration (Martin Fraer <>).
[cjh] Add LDAP ACL definition for preferences (Martin Fraer
[cjh] Add an index on horde_datatree_attribute.attribute_value to improve
      DataTree performance (Andrew Morgan <>).
[jan] Add SQL upgrade scripts.
[jan] Fix escaping of parenthesis in PDF documents (PEAR Bug #12092).
[jan] Fix alarm notification script (Bug #5660).
[jan] Fix PDF generation with some locales (Gunnar Wrobel, Bug #4094).
[jan] Move all application-specific hook examples to the applications' config/
[jan] Fix SMTP configuration being set to "Best available authentication"
      (Bug #5679).
[jan] Add bind parameters to LDAP account portal block configuration (Request
[cjh] Fix login screen enter key behavior in some circumstances (Bug #5696).
[mjr] Add a new block for displaying a tag cloud that works across all Horde
      applications implementing a searchTag api.
[cjh] Use the Silk flag icons from
      for all flag sets (Bug #5681).
[cjh] Fix generation of UIDs with PHP 5.2+.
[cjh] Add a JSON-RPC Horde_RPC backend (
[cjh] Allow selecting any available sound when creating alarms as an
      administrator (Request #5619).
[cjh] Fix updating of last_maintenance preference with PHP 4 (Bug #5111).
[cjh] Allow considering all IPs to be "safe" for encryption operations,
      passphrase entry, etc., when using SSL hardware or other secure
      environments (, Request #5568).
[cjh] Fix CSRF protection with Horde_Form objects submitted with preserve().
[cjh] Centralize sounds for audio alarms in Horde.
[cjh] Include CSRF protection when using Horde_Form Tokens (Request #4492).
[cjh] Add first_week_day preference and use it in the calendar widget (Bug
[cjh] Cache permissions with Horde_Cache (
[jan] Add configuration option for safe IP subnets.
[cjh] Allow turning off a user's ability to edit share permissions (Request
[cjh] Consolidate color pickers used for Labels and in Horde_Form (Bug #5112).
[cjh] Log sending of problem report emails (,
      Request #5461).
[cjh] Improve support for dates before 1970 and after 2038 (Bug #3741).
[mms] Add option to send MIME messages in a format that may allow broken MUAs
      to handle 8-bit filename data.
[cjh] Add Tango Blue (xconspirisist <>,, Request #2795) and Silver Surfer (Daniel
      Dembach <>) themes.
[mms] Created a Horde-wide object to access a singlet memcache configuration.
[cjh] Test for PCRE UTF-8 support with extension tests
      (, Bug #1052).
[jan] Add category field to Horde_Form.
[cjh] Better detection of Konqueror JavaScript features
      (, Request #5372).
[cjh] Support the allow_multi parameter when displaying email address form
      types (, Request #5356).
[cjh] Add Scriptaculous and RedBox to Horde.
[mms] Added sql driver for Horde_Cache::.
[mms] Prevent tooltips from scrolling off screen (,
      Request #3958).
[jan] Add portal block to verify EU VAT identification numbers.
[mms] Preserve URL anchor information when performing login.
[jan] Add method to fetch public key by email address from key server.
[jan] Add parameter for a temporary directory to the VC svn driver
      (, Request #5051).
[jan] Change VC library to support open_basedir restrictions (,
      Request #5051).
[cjh] Added a query for checking existance of a user to the custom SQL
      Auth driver (Request #5151).
[jan] Add button to the setup screen to check for newer versions.
[mas] Add MIME Viewer for WordPerfect documents.
[mms] Use lzf compression to compress Horde_SessionObjects:: data in the
[cjh] Replace google popup javascript searching with Google Ajax Search.
[jan] Add datetime variable type to Horde_Form.
[jan] Add Horde_Alarm library for reminders, alarms and notifications across
      all applications with pluggable notification methods.
[jan] Add context renderer to Text_Diff package.
[jan] Add MIME_Mail class to simplify creation and sending of MIME messages.
[cjh] Horde_Share now has a driver system with DataTree and Kolab backends
      (Gunnar Wrobel <>, Request #4263).
[cjh] Remove RPC_rest backend.
[cjh] Add DELETE support to the webdav RPC implementation
      (Håvard Wigtil <>, Request #4721).
[cjh] Add a Horde-wide HTTP proxy config setting (Request #1039).
[mms] Use the geoip PECL extension if available.
[cjh] Add preferences change hooks that are called when preferences are set
      to new values (Request #4343).
[cjh] Add Active Directory support to the LDAP account information driver
      (, Request #3512).
[cjh] Add a finger driver to the account information block
      (, Request #3546).
[cjh] Rewrite the Prefs code to keep the same Prefs object through multiple
      scope changes, instead of re-loading the Horde prefs, or prefs for
      a scope that had already been loaded. Fixes bugs when making changes
      to preferences and then switching scopes again (Bug #2838).
[cjh] Switch from hook functions for every group to a single hook function
      for all groups, allowing more dynamic Group_hooks implementations
      (, Request #4324).
[jan] Allow Kolab users to login with both, UID or mail address
      (, Bug #1317).
[cjh] Switch between 'icon' and 'iconopen' images when toggling Horde_Tree
      sections (Bug #2576).
[cjh] Add a Horde_Form_Action for setting the cursor position in any
      text field (Request #4431).
[cjh] Provide a link for dialing phone numbers if the "telephony/dial"
      API method is present (, Request #3241).
[jan] Add support for PUT method to WebDAV server
      (, Request #3032).
[jan] Add PHP 5 support for Kolab (, Bug #4062).
[jan] Rewrite PAM authentication driver to use PAM extension from PECL.
[mas] Implement IMAP_ACL_rfc2086::canEdit() for cases when the user is
      asking about their own rights.
[mms] Correctly encode MIME parameter values via RFC 2231.
[mms] Add method to do RFC 2231 encoding.
[jan] Allow to set link target for "link" preference types.
[cjh] Move developer and administrator tools into seperate PEAR
      packages that will be available from
[mas] Conform to WCAG 1.0 Priority 2/Section 508 accessibility guidelines.
      (Request #4080)
[jan] Add SMIL MIME viewer.
[jan] Add support for virtual host based configuration.
[jan] Add File_PDF::setTextColor() (PEAR Request #1767).
[jan] Add File_PDF::setFontStyle() (, PEAR Request #5230).
[jan] Add encoding parameter to XML_SVG_Document (PEAR Request #7461).
[jan] Add SMPP driver to Net_SMS package (Ian Eure <>, PEAR
      Request #5101).
[jan] Add support for symmetric PGP encryption to Crypt library.
[jan] Add option to limit file sizes in file and image form fields (Request
[jan] Add caching for shares.
[cjh] Add an audio MIME_Viewer so that audio files are clickable and
      handled immediately by the browser.
[cjh] Add Horde_Form_Type_phone as a parent for Horde_Form_Type_cellphone.
[jan] Add caching for groups.
[cjh] Allow dropping application (or other custom-purpose) configuration
      files into config/registry.d/.
[cjh] Help now has a tree view of topics and is searchable (Request #2452).
[cjh] translation.php now works with PHP 5 (Bug #3539).
[jan] Highlight new configuration items in the configuration interface
      (Request #3868).
[cjh] Add Shibboleth transparent authentication driver
      (Cassio Nishiguchi <>).
[cjh] Add native email address validation to Horde_Form_Type_email
      based on
[jan] Add multidomain support for Kolab servers (, Request #3579).
[cjh] Deprecate htmlarea in favor of xinha.
[mms] Add VFS SSH2/SFTP driver (Cliff Green <>).
[mjr] Move the Horde_Config_Node and related classes out of Horde_Config and
      into it's own Horde_DOM package.
[mjr] Add support for Horde_Share to the Net_IMSP package.
[jan] Add connection pooling support with memcache extension 2.0.0
      (, Request #3213).
[jan] Add memcached driver to the Horde_Cache package (Duck <>).
[cjh] Add phpGroupWare/eGroupWare compatibility driver to Horde_RPC that
      allows mapping xml-rpc methods into Horde applications (Request #2886).
[cjh] Add _horde_hook_post_pushapp for doing actions directly after
      $registry->pushApp() succeeds.
[jan] Update portal block content in the background instead of reloading the
      whole portal periodically.
[mdj] Add support for split read/write databases.
[mdj] Add failover support for database backends.
[jan] Add configuration option to require users to confirm email addresses
      added to their identities.
[cjh] Add a SpellChecker package.
[cjh] Have Horde::addScriptFile() check for a non-PHP version of scripts
      to avoid javascript.php whenever possible.
[cjh] Add SERIALIZE_JSON mode with code from PEAR's Services_JSON.

Address Book Changes
[jan] Fix birthday calculation on years before 1970 with DST (Bug #5791).
[jan] Implement WebDAV DELETE.
[jan] Change default SQL scheme to match with RFC 2426 (vCard 3.0) as closely
      as possible.
[cjh] Add $matchBegin to the clientSearch API method (,
      Request #5860).
[cjh] Avoid variable names that might interfere with function variables in
      sources.php.dist examples (Bug #5840).
[jan] Add clientFields() API method.
[mjr] More efficient fetching of entries when using the listTimeObjects api.
[jan] Move all Turba-specific hook examples from Horde's config/ directory.
[cjh] Fix generation of UIDs with PHP 5.2+.
[cjh] Handle categories when converting to and from vCards
      (, Bug #5648).
[cjh] Catch searches that seem non-empty but really aren't (Bug #5612).
[mjr] Fix fatal errors when no share enabled sources are present.
[mjr] Fix issue with naming new contact lists that was causing database errors,
      missing part of the contact list name, and other oddities.
[cjh] Add support for approximate searches, if the underlying backend and Horde
      code support them (Request #2901).
[cjh] Add a print link for contacts (Request #2800).
[cjh] Shared Address Books are now stored in a flat namespace so that they
      do not rely on the hierarchical (i.e. DataTree) properties of the
      Horde_Share API (Bug #4960).
[cjh] If names are displayed "Lastname, Firstname", sort composite name
      fields by lastname (Request #3909).
[cjh] Show an overlay while running a search (Request #3154).
[cjh] Add Anniversary, Spouse, and Children fields and support them in
      vCard import/export (, Request #5059).
[cjh] Add LDIF import/export support (, Request #2506).
[jan] Provide birthdays as events to external calendars (Request #723).
[mjr] Add driver to create address books from current user's Horde_Group
[jan] Allow to search through API for matches at word boundaries only
      (requires Horde 3.2).
[cjh] Phase out old ObjectView class in favor of proper forms in
      lib/Forms and views in lib/Views.
[cjh] Support for dereferencing LDAP aliases (,
      Request #4532).
[mas] Conform to WCAG 1.0 Priority 2/Section 508 accessibility guidelines.
      (Request #4080)
[cjh] Support vCard initials and salutation fields if present in the Turba
      backend (, Request #4248).
[cjh] Don't show empty tabs if a contact does not have a full name (Bug #4243).
[mjr] Add support for removing user data from backend storage when user is
      removed from Horde.
[jmf] Sort listings on multiple columns.
[cjh] Show numeric and alpha pagers at the top of listings, not the bottom
      (Bug #1312).
[jan] Add multidomain support for Kolab servers (, Request #3579).
[jan] Use the same rendering code for contact details in the list views like
      in the contact views.
[jan] Allow editing of composite fields (,, Request #2529).
[mjr] IMSP driver now has Horde_Share support.
[cjh] Add dynamic filtering of lists of contacts.
[mdj] Add support for split read/write database.
[mdj] Add failover support for SQL backend.
[mjr] Add virtual address book support.
[jan] Add driver to list most favourite recipients.

Calendar Changes
[jan] Don't allow to modify private events throught the API (Bug #5736).
[jan] Don't overwrite event owner when changing events over WebDAV (Bug #5736).
[jan] Implement WebDAV DELETE.
[cjh] Event exceptions are now correctly reflected when subscribing to
      Kronolith calendars from Apple iCal.
[cjh] When adding attendees, parse email groups and add each member
      individually (Bug #5812).
[cjh] External events are now enabled/disabled by individual category, such
      as showing a particular tasklist on your calendar, but not all tasks
      (Request #4581).
[jan] Add SQL upgrade script.
[cjh] Let the "show" URL of a calendar always show that calendar, instead of
      toggling whether or not it is displayed.
[cjh] Fix permissions granted to remote calendar subscribers on calendars
      that do not have guest permissions.
[cjh] Fix generation of UIDs with PHP 5.2+.
[cjh] Add preferences for showing event times and locations in screen
      views, print views, both, or neither (Request #1982).
[cjh] Run attendee email address through MIME::encodeAddress() before
      validating them (Bug #5670).
[cjh] Add vCalendar 2.0 alarm export (, Bug #4851).
[jan] Add Ukrainian translation (Andriy Kopystyansky <>).
[cjh] Inline PHP-generated javascript to avoid cross-domain leaking
      (Bug #5307).
[cjh] Add a preference to not send notifications to the person who is
      adding/updating/deleting the event (,
      Request #4770).
[cjh] Add calendar/subscribe and calendar/unsubscribe methods for adding/
      removing calendars to the currently displayed calendars
[cjh] Remove unneeded Kronolith_Driver::close method.
[cjh] Fix error handling when moving events
      (, Bug #5401).
[jan] Show icon for private events (Request #5190).
[jan] Allow to edit existing event attendees.
[jan] Add links to delete exceptions from recurring events.
[jan] Add recurrence types by day of year and weekday of year.
[jan] Add recurrence durations by number of recurrences.
[jan] Allow to edit exceptions from recurring events.
[jan] Allow to specify attendees without email addresses.
[jan] Allow to specify attendee names with the email addresses.
[cjh] Link to remote URLs in iCalendar events, if present (Duck).
[jan] Hide less important event settings in the edit form by default.
[jan] Add support for the Horde_Alarm framework (requires Horde 3.2).
[cjh] Add ContactAutoCompleter javascript to the attendees screen
      (Request #1635).
[jan] Add month tab to free/busy view (Gunnar Wrobel <>,
      Request #4896).
[cjh] Use extended Free/Busy information from Kolab (,
      Request #4869).
[ben] Add daily agenda reminder (Request #4655).
[cjh] Include event location in reminders (,
      Request #4771).
[cjh] Use global proxy configuration for HTTP requests (Request #1039).
[jan] Display holidays generated with the Date_Holiday package (Stephan
      Hohmann <>, Request #3862).
[cjh] Consider failing to find any attendees to update an error
      (Bug #4588).
[cjh] Include a summary of which calendars were printed in print views
      (Request #3263).
[jan] Add support for reading and saving events through external clients
      (requires Horde 3.2,, Request #3032).
[jan] Limit number of events in portal summary block (Duck <>).
[cjh] Add a live search to the calendar panel (Request #4607).
[mas] Conform to WCAG 1.0 Priority 2/Section 508 accessibility guidelines.
      (Request #4080)
[cjh] Fix Day and Week display of events that overlap with an event that
      doesn't start all the way to the left (Bug #2967).
[cjh] Move calendar selection/deselection to a collapsible panel.
[jan] Allow to set user name and password for remote calendars
      (, Request #3696).
[jan] Allow to edit remote calendars (, Request #3696).
[cjh] Move almost all hiding of elements during printing to CSS classes.
[cjh] Allow the listEvents api call to list events from multiple calendars,
      and filter by whether or not events have an alarm
      (Ben Klang <>, Bug #4104).
[mjr] Support for removing user data from backend when user is removed from
[jan] Add private flag.
[cjh] Add a default alarm preference.
[cjh] Always include X-WR-CALNAME in iCalendar exports (Request #3618).
[jan] Add multidomain support for Kolab servers (, Request #3579).
[jan] Allow delegation of events.
[cjh] Dynamic switching between Display, Edit, and Delete screens.
[jan] Add preference to force day and week views to selected hours.
[cjh] Make the duration input a text field instead of a 365-day dropdown.
[mdj] Add support for split read/write database.
[mdj] Add failover support for SQL backend.
[cjh] Use partial page fetches to update the main "page" div if the browser
      supports the necessary JavaScript.

Tasks Changes
[jan] Implement WebDAV access.
[jan] Add exportTasklist() API method.
[jan] Add SQL upgrade script.
[jan] Show estimated time including sub-tasks.
[cjh] Fix generation of UIDs with PHP 5.2+.
[cjh] Add preferences for turning due dates on by default, setting the
      default due date's number of days in the future, and setting the
      default due date's time.
[cjh] Add vCalendar 2.0 alarm export (, Bug #4851).
[jan] Add sub-tasks.
[jan] Add start dates for tasks.
[jan] Add support for the Horde_Alarm framework (requires Horde 3.2).
[cjh] Default to a javascript quick search, if available, with options
      for the full search and a direct link to full search if javascript
      is unavailable.
[cjh] Allow explicitly searching All, Incomplete, or Completed tasks
      (Request #4222).
[cjh] Allow configuring the tasklists that the task summary block shows,
      and let the user set a title for the block to differentiate multiple
      instances (Request #2388).
[cjh] Show task description tooltips in the task summary block (Request #3444).
[cjh] Store completion date and add history entries for task completion.
[cjh] Move tasklist selection/deselection to a collapsible panel.
[mas] Conform to WCAG 1.0 Priority 2/Section 508 accessibility guidelines.
      (Request #4080)
[cjh] Allow using the checkboxes to mark tasks as incomplete as well
      as complete (, Request #4250).
[cjh] Sort date fields correctly with JS table sorting.
[jan] Add private flag.
[jan] Add a field for estimated time being spent on a task.
[mdj] Add support for split read/write database.
[mdj] Add failover support for SQL backend.
[cjh] Add a tree block for showing current alarms.

Notes Changes
[jan] Implement WebDAV DELETE.
[cjh] Add quick links to the sidebar block for adding notes to a specific
      notepad (Gunnar Wrobel <>, Request #5716).
[cjh] Fix generation of UIDs with PHP 5.2+.
[cjh] Show tooltips in the summary block, and restrict tooltips to 20 lines
      (Request #3443).
[cjh] Optionally show a note's notepad in the list view (Request #2317).
[cjh] Add quick (inline) note searching.
[cjh] Add the ability to save a note as a PDF.
[jan] Add support for encrypted notes.
[cjh] Move notepad selection/deselection to a collapsible panel.
[mas] Conform to WCAG 1.0 Priority 2/Section 508 accessibility guidelines.
      (Request #4080)
[cjh] Notes search should be either title or full text (Request #4277).
[cjh] Make the note edit view the full page width.


Horde Changes
[jan] SECURITY: Add another check to the XSS filter.


[jan] Update Services_Weather package to fix changes in the API.

Horde Changes
[cjh] SECURITY: Escape item names in the object browser (Bug #6906).
[jan] Fix large messages being rendered empty with PHP 5.2 (Bug #5792).

Calendar Changes
[cjh] SECURITY: Fix XSS in the add event screen.
[jan] Add Turkish translation (Altay Ozaygen <>).


Horde Changes

[cjh] SECURITY: Fix arbitrary file inclusion through abuse of the theme


Address Book Changes
[cjh] SECURITY: Fix unchecked access to contacts in the same SQL table
      (Bug #6208).


[jan] SECURITY: Fix privilege escalation in Horde API.
[cjh] SECURITY: Fix missing ownership validation on share changes.

Horde Changes
[jan] SECURITY: Filter out FRAME tags from HTML messages (CVE-2007-6018).
[jan] SECURITY: The XSS filter passes the complete XSS cheat sheet
      ( now.
[jan] Apply user name hooks when editing share permissions
      (, Bug #5844).
[jan] Fix fixed portal blocks (Bug #5853).

Calendar Changes
[jan] Set the user's timezone in the free/busy information.
[jan] Fix redirection after editing an event from the sidebar menu (Bug #5769).

Tasks Changes
[cjh] Send iCalendar data as UTF-8.


Horde Changes
[cjh] Fix identity javascript when some fields are disabled
      (, Bug #5595).
[cjh] Disable the Turkish locale if using PHP 5 (see
[jan] Improved webroot detection (Request #4126).
[jan] Fix selecting the language on the login screen (Bug #5098).
[jan] Fix searching for single quotes in email headers (, Bug
[jan] Fix portal layouts with more than one horizontally expanded block per

Address Book Changes
[mjr] Fix some fatal errors caused by the IMSP driver when deleting certain
      contacts and while adding contacts to lists in certain cases.
[mjr] Fix adding contacts to a new contact list in a source other than the
      source the contacts being added are from.
[jan] Fix paging through search results from another than the default address
      book (Bug #5137).
[cjh] Fix copy/moving contacts to a new contact list (Bug #5144).

Calendar Changes
[cjh] Display attendees list correctly without a mail/compose method (Bug
[cjh] Send iCalendar data as UTF-8 (Bug #5427).
[jan] Fix duration of remote and imported full-day events (Bugs #4617, #4794).
[jan] Fix recurring multiday events crossing a month border (Bug #5205).
[jan] Fix duration calculation in edit form for events covering more than a
      month (Bug #5120).


[jan] Add instructions for manually installing database tables.

Horde Changes
[jan] SECURITY: Correctly quote file names in cleanup script for temporary
[jan] SECURITY: Fix an XSS vulnerability in the language selection.
[jan] Fix RPC authentication on CGI SAPIs.
[jan] Detect unencrypted PGP messages.
[jan] Complete Cyrus virtual domain support in cyrsql driver (Vilius Sumskas
      <>, Request #4967).
[jan] Add option whether to strip domains from usernames in the account block
      (Request #4955).
[jan] Fix email lists not being validated under certain conditions (Bug #4834).
[cjh] Add a REST-ful preferences interface.
[cjh] Faster DataTree-to-SQL History migration script
      (, Request #4732).
[cjh] Improved automatic webroot detection (Ben Klang, Request #4126).
[cjh] Rewrite and fix the OCI8 SessionHandler (Bug #3452).
[cjh] Allow signup hooks to override the user_name and password fields
      (, Request #2904).
[cjh] Fix creation of mailbox quotas by the Auth_cyrus driver
      (, Bug #4678).
[cjh] Add "Save and Finish" to the share edit window (,
      Request #4307).
[cjh] Let mailto: and anchor (#) links through Horde::externalUrl (Bug #3079).
[cjh] Add smbclient version of the SMB Auth class (,
      Request #4338).
[cjh] Remove problematic "data descriptor" segment from generated ZIP files
      (, Bug #4670).
[cjh] Strip accesskeys from menu tooltips when only showing icons (Bug #4667).
[jan] Fix saving files in the root directory of an SQL VFS backend (Bug #4652,
      Ben Klang <>).
[jan] Fix displaying all maintenance tasks to be confirmed at once (Bug #4377).
[cjh] Fix return format of DataTree_null::getByAttributes()
      (, Bug #4651).
[jan] Support departments in vCard's ORG properties (,
      Request #4285).
[cjh] Rename Auth_sasl backend to Auth_peclsasl to avoid conflicts with PEAR's
      Auth_SASL (Bug #4547).
[cjh] Implement handling of vTimezones in iCalendar data
      (Carl Thompson <>, Bug #4399).
[cjh] keybindings.js now works with Safari/KHTML.
[jan] Avoid recursive folder creation when sharing Kolab folders
      (, Bug #4325).
[jan] Add Kolab specific account block driver to support special Kolab users
      (, Request: #4119).
[mms] Only dim below the last signature line of input text in the dimsignature
      Text_Filter driver.

Address Book Changes
[jan] Fix character set encoding of exported vCards.
[mjr] Fix fatal error when exporting to vCard.
[cjh] Organize basic search form from left to right (Request #4914).
[jan] Fix links to only show contacts or lists, or both.
[mjr] Don't remember the lastly selected address book in the session, if it
      was not browseable.
[mjr] Fix bug that caused counting the number of contacts in a shared SQL
      source to return the count of the user's default address book instead.
[mjr] Fix bug that caused the wrong address book to be deleted when replacing
      an address book during import.

Calendar Changes
[jan] Fix character set encoding of exported vCalendar/iCalendar data.
[jan] Fixed MS-SQL driver (Bug #5088).
[jan] Add Catalan translation (Jordi Giralt <>).
[jan] Fix searching for non-ascii strings (Bug #4773).
[cjh] Display partial hours in free/busy view (,
      Request #4755).
[cjh] Honor date_format preference in reminders and notifications (Bug #4726).

Tasks Changes
[jan] Show alarms for overdue tasks too.
[jan] Add Catalan translation (Jordi Giralt <>).


[jan] Fix problems with CGI versions of PHP and the setup script.
[jan] Fix email lists not being validated under certain conditions (Bug #4834).

Calendar Changes
[cjh] SECURITY: Close arbitrary file inclusion in free/busy views.


[jan] Remove duplicate directories.


[jan] Prompt for webroot in the setup script to avoid cookie problems.
[jan] Fix creation of primary keys for SQLite and PostgreSQL databases.
[jan] Add Console_Table and File_Find from PEAR for the translation script.

Calendar Changes
[cjh] Set vEvent ORGANIZER to the event creator, not the calendar owner
      (, Bug #4527).
[jan] Fix importing of events without end date and duration (Bug #4519).
[jan] Correctly display recurring events spanning multiple days (Bug #4438).
[jan] Fix recurrence end dates with SQLite backends (Bug #4219).
[jan] Fix calculation of recurrence ends with imported and remote events
      (Bug #2813).
[cjh] Consolidate the check for whether or not users can add events in
      the day and month views (Bug #4373).
[jan] Fix alarms for recurring events in Kolab driver
      (, Bug #4326).
[jan] Show error message if imported file didn't contain events.
[cjh] Fix the SQL types of several recurrence fields.
[jan] Add categories from imported events to the user's categories.
[jan] Add Slovenian translation (Duck <>).
[jan] Deal with attendee email addresses case insensitively.
[jan] Don't consider events from remote calendars as busy time.
[jan] Always try to return the correct event instance if requesting an event
      by its UID (Thorsten Schaub, Bug #1994).
[cjh] Fix permissions for the calendar list in advanced search (Bug #4093).

Address Book Changes
[jan] Support departments in vCard's ORG properties (,
      Request #4285).
[cjh] Fix LDAP driver check for whether objects need to be renamed (Bug #4468).
[jan] Fix generation of mailto: links if IMP is not installed (Bug #4334).
[jan] Show error message if imported file didn't contain contacts (Bug #4260).
[jan] Remember the lastly selected address book during the session.
[jan] Add categories from imported contacts to the user's categories.

Tasks Changes
[jan] Show error message if imported file didn't contain tasks.
[jan] Add categories from imported contacts to the user's categories.
[jan] Fix import of CSV data.
[jan] Add Slovenian translation (Duck <>).
[jan] Show personal tasklist by default with disabled preferences (Bug #4078).

Notes Changes
[jan] Show error message if imported file didn't contain notes.
[jan] Add Slovenian translation (Duck <>).
[jan] Add categories from imported contacts to the user's categories.
[jan] Show personal notepad by default with disabled preferences (Bug #4078).


[jan] First release candidate.