Contact: | [email protected] |
---|
Contents
- 1 Introduction
- 2 Upgrading any Horde Groupware Webmail Edition 4 or later
- 3 Upgrading Horde Groupware Webmail Edition from 5.1.x to 5.2
- 4 Upgrading Horde Groupware Webmail Edition from 5.1.x to 5.1.2
- 5 Upgrading Horde Groupware Webmail Edition from 5.0.x to 5.1
- 6 Upgrading Horde Groupware Webmail Edition from 5.0 to 5.0.1
- 7 Upgrading Horde Groupware Webmail Edition from 4.x to 5.x
- 8 Upgrading Horde Groupware Webmail Edition from 4.0.x to 4.0.9
- 9 Upgrading Horde Groupware Webmail Edition from 4.0.x to 4.0.7
- 10 Upgrading Horde Groupware Webmail Edition from 4.0.x to 4.0.4
- 11 Upgrading Horde Groupware Webmail Edition from 4.0.x to 4.0.3
- 12 Upgrading a Horde Groupware Webmail Edition 1.x
These are instructions to upgrade from earlier Horde Groupware Webmail Edition versions. Please backup your existing data before running any of the steps described below, you need the backups in case anything goes wrong with the upgrade process, which cannot be reverted automatically. You can't use the updated data with your old Horde Groupware Webmail Edition version anymore.
Please see below for changes between certain Horde Groupware versions that are not covered by the update script.
Upgrading Horde Groupware Webmail Edition is as easy as running:
pear upgrade -a -B horde/webmail
If you want to upgrade from a Horde Groupware Webmail Edition version prior to 4.0, please follow the instructions in INSTALL to install the most recent Horde Groupware Webmail Edition version using the PEAR installer.
After updating to a newer Horde Groupware Webmail Edition version, you always need to update configurations and database schemes. Log in as an administrator, go to Administration => Configuration and update anything that's highlighted as outdated.
New logging options for ActiveSync logging have been added. It is now possible to log all devices to a single log file or to device specific files. Additionally, it is also possible to select between including the raw wbxml stream in the output, or prune tag content greater than 50 bytes. The ActiveSync configuration section should be revisited.
It is now possible to use X509 certificates either in addition to, or in place of traditional HTTP Basic authentication for ActiveSync. Refer to the ActiveSync configuration section for more details.
An additional option is now available for the SMTP Mailer driver: 'lmtp'.
A new NoSQL driver is now available for storing ActiveSync device state. Refer to the ActiveSync configuration section for more details.
The History driver can now be explicitly defined in the configuration (and a new NoSQL driver has been added).
Additional options are now available for the Predis HashTable driver: 'password', 'persistent', and 'protocol'. Additionally, the 'hostspec' and 'port' options now accept multiple values (separated by commas).
The following options were added:
$conf['activesync']['logging']['level'] $conf['activesync']['auth']['type'] $conf['activesync']['auth']['params'] $conf['activesync']['storage'] $conf['activesync']['params']['driverconfig'] $conf['cachecssparams']['filemtime'] $conf['history']['driver'] $conf['history']['params']['driverconfig'] $conf['mailer']['params']['password_auth'] $conf['mailer']['params']['username_auth']
The available options for the following options were changed:
$conf['activesync']['logging']['type'] $conf['mailer']['params']['password'] (for SMTP) $conf['mailer']['params']['username'] (for SMTP)
The default value for the following options were changed:
$conf['prefs']['maxsize']
The following options were removed:
$conf['mailformat']['brokenrfc2231']
New ActiveSync related hooks have been added:
activesync_create_device activesync_device_check activesync_device_modify
Read the comments at the top of the hooks.php file for descriptions of each hook.
The 'staticfs' and 'staticuri' configuration options were added to the 'horde' configuration.
The 'format' quota option has been removed.
The 'cache_lifetime' option is now honored for the 'cache' and 'hashtable' caching backends.
The 'interval' parameter has been added to the quota configuration.
The 'lmtp' parameter has been added to the smtp configuration.
The following options have been added:
$conf['compose']['htmlsig_img_size'] $conf['compose']['link_attach_size_hard'] $conf['contactsimage']['backends'] $conf['maillog']['driver']
The following options have been removed:
$conf['compose']['ac_threshold'] $conf['compose']['convert_to_related'] $conf['maillog']['use_maillog']
The default value for the following options have been changed:
$conf['pgp']['keylength']
The following hooks have been added:
compose_addr
The 'pgp_inline' config parameter has been added to the plaintext driver. The 'thumbnails_dataurl' config parameter has been added to the images driver.
The 'max_bodysize' permission has been added.
The following preferences have been added:
signature_show_compose
The following preferences have been removed:
default_msg_charset mail_domain mimp_download_confirm mimp_inline_all mimp_preview_msg pgp_scan_body
The default value for the following preferences have been changed:
ckeditor_buttons
These API calls have been changed:
- mailboxList Added the 'subscribed' return value.
Added the 'newEmailFilter' API link. Takes one argument: 'email', the e-mail address to pre-populate into a new rule.
The Sieve driver now uses the 'enotify' extension by default. If using an old version of Sieve that only supports the deprecated 'notify' setting, set 'notify' to true in the sieve script parameters (see backends.php).
The Sieve driver now uses 'imap4flags' by default to set flags. If using an old version of Sieve that only supports the deprecated 'imapflags' setting, set 'imapflags' to true in the sieve script parameters (see backends.php).
The following options have been removed (see Permissions section for replacement functionality):
$conf['storage']['maxblacklist'] $conf['storage']['maxwhitelist']
Ingo permissions are now applied per backend. To upgrade existing permissions, an admin needs to run the following script:
bin/ingo-admin-upgrade --task=backend_perms
The following permissions have been added:
max_blacklist max_forward max_whitelist
The following permissions have been removed:
allow_rules (replacement: set max_rules permission to 0)
- Categories have been replaced by Tags. As such, you must update any local source definitions and remove the "Category" attribute.
The following options have been added:
$conf['tags']['enabled']
The 'trailer' hook now has two additional parameters in addition to the previously existing $html parameter: $identity and $to. Further details on the content of these parameters can be found in hooks.php.dist.
It is now possible to configure Horde-wide settings for a NoSQL database backend. Addtionally, several Horde packages now allow a NoSQL backend driver to be used.
The Memcache configuration options have been deprecated and have been replaced by the generic Horde_HashTable package (which supports both Memcache and Redis servers). Although the previous memcache configuration will continue to work in Horde 5.x, it is recommended to upgrade to the new 'hashtable' configuration setup.
The following options were added:
$conf['auth']['resetpassword_from']
The following options were removed:
$conf['cache']['compress'] $conf['cachecssparams']['compress']
The 'ajaxaction' hook has been deprecated and replaced with the 'ajaxaction_handle' hook (new hook needed in order to allow, e.g., adding tasks to the outgoing response).
The following hooks were added:
ajaxaction_data
Sorting on non-IMAP servers, or IMAP servers that do not support the SORT
extension, has been disabled by default in IMP 6.1. To restore the old
behavior (NOT RECOMMENDED), see the 'sort_force' option in
config/backends.local.php
.
The 'debug' option has been added to the SMTP configuration.
IMAP/POP caching can now be done using database backends (see documentation for the 'cache' parameter).
The following quota drivers have been removed:
Command Maildir Mdaemon Mercury32 Sql
The $conf['user']['allow_folders'] option has been removed. This can now be set per-backend using the Horde permissions system.
The $conf['server']['fixed_folders'] option has been removed. Preventing actions on a specific mailbox can be controlled via native IMAP ACLs or, alternatively, by the 'mbox_acl' hook.
The $conf['user']['autocreate_special'] option has been removed. This can now
be set on a per-backend basis in config/backends.local.php
('autocreate_special' option).
The $conf['msgsettings']['filtering'] and $conf['msgsettings']['replacement'] options have been removed. This feature has been moved to the 'msg_filter' hook.
The following spam-reporting options have been removed and can now be
configured per-backend in config/backends.local.php
:
$conf['notspam']['email'] $conf['notspam']['email_format'] $conf['notspam']['program'] $conf['notspam']['reporting'] $conf['notspam']['spamfolder'] $conf['spam']['email'] $conf['spam']['email_format'] $conf['spam']['program'] $conf['spam']['reporting'] $conf['spam']['spamfolder']
The following options have been added:
$conf['pgp']['keylength']
The following options have been removed:
$conf['compose']['link_all_attachments']
The 'attach_body_check' hook has been added. This hook handles the attachment word checking code that previously was provided as an example in the 'pre_sent' hook.
The 'compose_attach' hook has been removed and replaced by the 'compose_attachment' hook. Both hooks are designed for the same purpose; however, the arguments have been completely changed so it is safest to entirely deprecate usage of the previous hook.
The 'mbox_readonly' hook has been removed. Mailbox permissions can instead be controlled via native IMAP ACLs or, alternatively, by the 'mbox_acl' hook.
The 'mbox_special' hook has been removed. Additional special mailboxes can
now be defined per-backend in config/backends.local.php
.
The 'mailboxarray' and 'msglist_flags' hooks have been altered to remove the second argument ($mode). If the current view mode is needed, it can be obtained via a call to $GLOBALS['registry']->getView().
The 'spam_email' hook has been removed. This configuration can now be defined
per-backend in config/backends.local.php
.
The $html argument to the 'trailer' hook has been added.
The following hooks have been added:
mbox_acl msg_filter
The following hooks have been removed:
dimp_messageview dimp_previewview mimp_advanced signature
Thumbnails can now be disabled for images and PDF attachments.
Thumbnails are now automatically generated for video attachments if the ffmpeg binary is present on your system. This is enabled by default.
IMP permissions are now applied per backend. To upgrade existing permissions, an admin needs to run the following script:
bin/imp-admin-upgrade --task=backend_perms
The default values for these preferences have been changed:
request_mdn
The following preferences are no longer used and may be safely removed from your preference backend (only after all users have logged in - these preferences MAY be used to automatically upgrade to new preferences when a user logs into IMP 6 for the first time):
compose_bcc compose_cc link_attach
These API calls have been added:
- getMaillog - getMaillogChanges - logMaillog
The 'script' and 'transport' settings of the backend configuration have been changed from strings to arrays, to allow different backends for different filter rules.
The applyFilters() no longer returns a value.
- The "instantMessenger" attribute has been replaced by the "imaddress", "imaddress2", and "imaddress3" attributes.
- The default SQL schema has been updated, as well as the out of the box field definitions for the 'localsql' source. You must execute the database migrations for Turba to ensure you have the latest schema.
Google no longer provides a weather API. Support for this has therefore been removed from Horde. If you were using Google as a source for weather, you will need to pick a new provider and update the Horde configuration.
The $conf['session']['max_time'] option was added. The default is no maximum session time, the same behavior as in Horde Groupware Webmail Edition 4.
The $conf['cachecssparams']['url_version_param'] option was added. This option is only used if no CSScaching is selected (a configuration that is NOT recommended for production servers). The new default is to add version information to CSS server URLs, which is altered behavior from Horde Groupware Webmail Edition 4.
The $conf['cachejsparams']['url_version_param'] option was added. This option is only used if no javascript caching is selected (a configuration that is NOT recommended for production servers). The new default is to add version information to javascript server URLs, which is altered behavior from Horde Groupware Webmail Edition 4.
The 'appauthenticated' hook has been added.
The behavior of the 'pushapp' hook has changed - it is now called a maximum of one time per page access for an application.
The 'appinitialized' hook was removed (replaced by the 'appauthenticated' hook).
The 'pushapp_post' hook was removed.
See config/hooks.php.dist
for further details.
The 'sending_charset' preference now defaults to 'UTF-8'.
The 'menu_view' and 'show_sidebar' preferences have been removed.
Email support has been added, along with support for the EAS 12.0 and 12.1 protocol versions. New configuration options have been added to support this. You MUST update Horde Groupware Webmail Edition's ActiveSync configuration.
The Custom logging option has been changed to ALWAYS be a path to a directory, and not a specific filename.
The security policy settings have been moved out of the global configuration and into the permissions system for greater per user control over policies.
New database migrations have been added, you MUST run these migrations for ActiveSync to work.
The basic view now requires javascript support on the browser. If not available, the user will automatically be redirected to the minimal view.
The 'namespace' option now requires the namespaces to be in the UTF-8 charset, not UTF7-IMAP.
The 'smtphost' and 'smtpport' options have been removed. They have been replaced by the 'smtp' option, which allows ALL available SMTP configuration options to be overriden.
The 'admin' option has been changed: optional configuration parameters should live within the base 'admin' array rather than a 'params' array within the base.
The $conf['fixed_folders'] option now requires the mailboxes to be in the UTF-8 charset, not UTF7-IMAP.
The $conf['compose']['link_attach_size_limit'] option was added.
The $conf['print']['add_printedby'] option was removed and replaced by the 'add_printedby' preference.
The $conf['user']['select_sentmail_folder'] option was removed. To prevent changing the sentmail mailbox, the 'sent_mail_folder' preference should be locked instead.
The following configuration options were removed:
$conf['dimp']['viewport']['buffer_pages'] $conf['dimp']['viewport']['viewport_wait']
The 'safe_addrs' option has been removed from the Images driver config. To set the default list of e-mail addresses that should be considered "safe", the 'image_replacement_addrs' preference can now be used.
The 'mbox_sort' and 'mbox_special' hooks have been added.
The 'dimp_addressformatting' hook has been removed.
The $action parameter for reporting not spam message to the 'spam_email' and 'post_spam' hooks has been changed from 'ham' to 'innocent'.
The default values for these preferences have been changed:
drafts_folder sent_mail_folder spam_folder trash_folder
The following preferences are no longer used and may be safely removed from your preference backend (only after all users have logged in - these preferences MAY be used to automatically upgrade to new preferences when a user logs into Horde Groupware Webmail Edition 5 for the first time):
dimp_qsearch_field dimp_show_preview dimp_splitbar dimp_splitbar_vert dimp_toggle_headers dynamic_view image_addrbook move_ham_after_report sig_first stationery
The 'cursor_compose' preference removed the 'sig' option. Existing preferences will automatically be converted to 'bottom'.
The 'save_attachments' preference removed the 'prompt_yes' and 'prompt_no' options. Existing preferences will automatically be converted.
The 'add_printedby', 'image_replacement_addrs', 'reply_charset', and 'reply_strip_sig' preferences were added.
The 'forward_default' preference now contains the 'editasnew' option.
copyMessages
The $mailbox and $target parameters are now required to be UTF-8 strings.
createFolder
This call has been removed (replaced with 'createMailbox').
deleteMessages
The $mailbox parameter is now required to be a UTF-8 string.
flagMessages
The $mailbox parameter is now required to be a UTF-8 string.
folderlist
This call has been removed (replaced with 'mailboxList').
moveMessages
The $mailbox and $target parameters are now required to be UTF-8 strings.
searchMailbox
The $mailbox parameter is now required to be a UTF-8 string.
The 'hordeauth' parameter and the 'password' and 'username' parameters have been removed. By default, the transport backend will use Horde Groupware Webmail Edition authentication credentials to access. To set a different username and/or password, you should use the 'transport_auth' hook.
- The "gender" attribute sets values of (literally) "male" or "female" now, and no longer 0 or 1.
- The "addressbooks" preference has been removed.
search
The $sources, $fields, $matchBegin, $forceSource and $returnFields parameters have been removed and replaced by the $opts parameter.
Added a 'rfc822Return' option to return a Horde_Mail_Rfc822_List object instead of the search results array (which remains the default).
The $conf['spam']['email_format'] and $conf['notspam']['email_format'] configuration options have been added.
The 'delhide_trash' preference has been added.
The weather.com website has dropped their API to retrieve weather forecasts with a very short notice. The weather.com portal block has been removed and will be automatically removed from the users' portal configurations too.
A new portal block for weather forecasts is available, powered by the new Horde_Service_Weather library that supports a number of free weather services. To provide this block to the end users, install the Horde_Service_Weather library from Horde's PEAR server, and configure a weather service in Horde Groupware's configuration:
pear install horde/horde_service_weather-alpha
The 'nobase64_img' option was added.
The 'delete_mark_seen' preference has been added.
The 'reply_lang' preference has been added.
The 'allthumbs' option has been removed from the HTML driver. Image thumbnail previews are now always shown if an image conversion utility is present on the system.
The 'allow_resume_all' option has been removed. Only messages specifically marked as drafts can be resumed; however, all messages are given the option to "Edit As New".
For upgrading from a Horde Groupware Webmail Edition version 1.x to 4.0 or later, see the section `Upgrading a Horde Groupware Webmail Edition 4 or later`_.
The update script will automatically migrate database backends and update configuration files. It will add new and changed configurations at the end of existing configuration files, any changes done to old configuration files won't get lost, but might get overridden by new settings. You might want to check the updated configuration files after the update script has finished to make sure that any customizations that you did to the old version still work as expected.
The .dist
versions of the configuration files alway contain the most
recent reference settings and the settings documentation. If you experience
any problems with the configuration files after an update, or if you want
cleaner configuration files without all the updating code, you can create
fresh versions from the .dist
files.
These instructions are supposed to be used with a complete tarball of the new Horde Groupware Webmail Edition version. They don't work if you use a patch file to upgrade your installation, because the patch already contains all configuration file changes that the update script is going to add.
Extract the tarball of the new version in parallel to the old version. See the INSTALL file details how to unpack a tarball.
If you want to replace the old version with the new version eventually, you should move the old version to a different place now and put the new version in the place of the old one. You can still do this later, if you want to, but you have to edit the configuration file then.
Start the setup script:
./scripts/setup.php
Choose the update option in the setup menu and answer the questions from the setup script.
Pray.
If everything went fine and without any error messages, point your browser to the URL of the new version and log in as an administrator. Go to the
Administration -> Setup
screen and update all configurations that are marked as being outdated.If you want to replace the old version with the new one, and if you didn't do this already in step 1, you can do it now. But you have to edit the configuration file
config/conf.php
manually and change the setting$conf['cookie']['path']
to match the new URL path. Otherwise you won't be able to login after you moved Horde Groupware Webmail Edition to a different directory.