Community » Applications » Webmail
Upgrading Horde Groupware Webmail Edition
- 1 Introduction
- 2 Upgrading a Horde Groupware Webmail Edition 4 or later
- 3 Upgrading Horde Groupware Webmail Edition from 4.0.x to 4.0.4
- 4 Upgrading Horde Groupware Webmail Edition from 4.0.x to 4.0.3
- 5 Upgrading a Horde Groupware Webmail Edition 1.x
- 6 Upgrading Horde Groupware Webmail Edition from 1.1.x to 22.214.171.124
- 7 Upgrading Horde Groupware Webmail Edition from 1.0.x to 1.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.
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 to the Mail module.
The 'reply_lang' preference has been added to the Mail module.
The 'allow_resume_all' option has been removed from the Mail module. Only messages specifically marked as drafts can be resumed; however, all messages are given the option to "Edit As New".
The 'allthumbs' option has been removed from the Mail module's HTML driver. Image thumbnail previews are now always shown if an image conversion utility is present on the system.
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:
Choose the update option in the setup menu and answer the questions from the setup script.
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.
An address book which lists the users' most favourite recipients had been added in version 1.1 already but has only been activated with this version. But for the address book to properly work, you also have to enable sent mail tracking in the configuration.
Log in as an administrator, go to Administration -> Setup -> Webmail (imp), then choose the Other Settings tab and set the $conf[sentmail][driver] setting to SQL.
All memcache configuration has been moved to the $conf['memcache'] parameter.
All hooks that are specific to a single application have been moved to that application's config/hooks.php file. Split up your existing Hooks from horde/config/hooks.php and move them to the correct application.
The format for group hook functions has changed from _group_hook_groupName($username) to _group_hook($groupName, $userName). So you will need to modify any existing group hook functions in config/hooks.php for the new interface.
Alternatively, an example _group_hook() function is provided in config/hooks.php that will call the old style hook functions for you.
Themes no longer have info.php files. If you have any custom themes that provide their own images, you must add a themed_graphics file to the theme's directory (for all applications the theme provides images for) in order for Horde to know to use the custom images. The file can be empty or contain whatever you wish; it simply needs to exist.
Separate quota drivers for Cyrus and Courier servers are no longer necessary. These drivers have been replaced by a generic IMAP driver that should also be suitable for other IMAP servers that support the QUOTA extension. Update config/servers.php and change the 'quota' => 'driver' setting to 'imap'.
The usage of the hook _imp_hook_mbox_icons() has changed. If you use this hook, make sure you change your implementation so it returns the correct value.
The new hook _imp_hook_msglist_format() has been added which allows the formatting of a message entry in the mailbox message list to be altered at the time the list is created. This hook has made the following configuration options obsolete:
If you wish to continue using the functionality previously provided by these options, you should activate the msglist_format hook in config/conf.php. The sample hook contained in config/hooks.php contains the code necessary to replicate the previous behavior.
The pspell driver is no longer supported since it does not work with HTML messages. If using pspell, you must upgrade to aspell version 0.60+.
An SQL table has been added than can optionally be used as a storage backend for the filter rules. Using this backend no longer limits the number and size of rules.
You have to execute the provided PHP script to migrate the existing rules from the preferences backend to the new database table:
php ingo/scripts/upgrades/convert_prefs_to_sql.php < filename
filename is a file that contains a list of users, one username per line. The username should be the same as how the preferences are stored in the preferences backend (e.g. usernames may have to be in the form email@example.com). You can create such a list with the following MySQL command:
mysql --user=root --password=<MySQL-root-password> --skip-column-names --batch --execute='SELECT DISTINCT pref_uid FROM horde_prefs' <db name>