Aleksander Machniak
2016-03-28 46f7b7096450939fe03c95aa81ce06ae4bfca89d
UPGRADING
@@ -1,126 +1,79 @@
UPGRADING instructions
======================
First you should remove all subfolders from /program/localization/
because most language codes have changed in 0.2-alpha. This way you
can make sure that no old localization files remain on your disk.
Follow these instructions if upgrading from a previous version
of Roundcube Webmail. We recommend to carefully backup the existing
installation as well as the database before going through the following steps.
Then follow these instructions if upgrading from a previous version
of RoundCube Webmail.
Using the update script
-----------------------
There is a shell script (for unix based systems) that does the job for you.
To use it, unpack the archive of the new Roundcube version to a temporary location
(don't replace the Roundcube installation you want to update)
and cd into that directory. From there, run the following command in a shell:
  ./bin/installto.sh <TARGET-FOLDER>
For <TARGET-FOLDER> you specify the path to the Roundcube installation
which should be updated. The update script will then copy all new files to the
target location and check and update the configuration and database schema.
After all is done, the temporary folder with the new Roundcube files can be
removed again.
WARNING: See Post-Upgrade Activities section below.
Updating manually
-----------------
If you don't have shell access to the Roundcube installation or if not running
it on a unix system, you need to do the following operations by hand:
1. Replace index.php and all files in
   - ./bin/
   - ./SQL/
   - ./program/
   - ./installer/
   - ./skins/default/
   - ./plugins/
2. Run ./bin/update.sh from the commandline OR
   open http://url-to-roundcube/installer/ in a browser. To enable
   the latter one, you have to temporary set 'enable_installer' to true
   in your local config/main.inc.php file.
3. Let the update script/installer check your configuration and
   update your config files as suggested by the updater.
4. If suggested by the update script, run all commands in
   ./SQL/[yourdbtype].update.sql that are superscribed with the
   currently installed version number.
5. Make sure 'enable_installer' is set to false again.
2. Replace the configuration defaults files:
   - config/defaults.inc.php
   - config/mimetypes.php
3. rsync the contents of the following folders from your installation
   directory into the target folder:
   ./skins/
   ./plugins/
   ./vendor/
4a. If you previously installed plugins through composer, update dependencies
   by running `php composer.phar update --no-dev`
4b. Install/update dependencies using composer:
   - get composer from https://getcomposer.org/download/
   - rename the composer.json-dist file into composer.json
   - if you want to use LDAP address books, enable the LDAP libraries in your
     composer.json file by moving the items from "suggest" to the "require"
     section (remove the explanation texts after the version!).
   - run `php composer.phar install --no-dev`
5. Run `./bin/update.sh` from the commandline OR
   open http://url-to-roundcube/installer/ in a browser and choose "3 Test config".
   To enable the latter one, you have to temporary set 'enable_installer'
   to true in your local config/config.inc.php file.
   WARNING: See SQLite database upgrade below.
6. Let the update script/installer check your configuration and
   update your config files and database schema as suggested by the updater.
7. Make sure 'enable_installer' is set to false again.
8. See Post-Upgrade Activities section.
For manually upgrading your RoundCube installation follow the instructions
that match the currently installed version:
Post-Upgrade Activities
-----------------------
1. Check .htaccess settings (some php settings could become required)
2. If you're using build-in addressbook, run indexing script /bin/indexcontacts.sh.
3. When upgrading from version older than 0.6-beta you should make sure
   your folder settings contain namespace prefix. For example Courier users
   should add INBOX. prefix to folder names in main configuration file.
4. Check system requirements in INSTALL file.
from version 0.2-alpha
----------------------------------------
* replace index.php
* replace all files in folder /bin/
* replace all files in folder /program/
* replace all files in folder /installer/
* replace all files in folder /skins/default/
* run all commands in SQL/[yourdbtype].update.sql
  below the line "-- Updates from version 0.2-alpha"
* check the config/main.inc.php.dist for new configuration
  options and add them to your config
  WARNING: 'skin_path' option was replaced by 'skin' option
* WARNING: 'db_backend' option has been removed, now only
  PEAR::MDB2 driver is supported
SQLite database upgrade
-----------------------
Versions older than 0.9 were supporting SQLite v2 only. Newer versions require
database in v3 format. The best what you can do is to convert database file
to the new format using command line tools:
from version 0.1.1
----------------------------------------
* replace index.php
* replace all files in folder /bin/
* replace all files in folder /program/
* replace all files in folder /skins/default/
* run all commands in SQL/[yourdbtype].update.sql
  below the line "-- Updates from version 0.1.1"
* check the config/main.inc.php.dist for new configuration
  options and add them to your config
from version 0.1-stable
----------------------------------------
* replace index.php
* replace all files in folder /bin/
* replace all files in folder /program/
* replace all files in folder /skins/default/
* run all commands in SQL/[yourdbtype].update.sql
* check the config/main.inc.php.dist for new configuration options
  and add them to your config
from version 0.1-rc2
----------------------------------------
* replace index.php
* replace all files in folder /bin/
* replace all files in folder /program/
* replace all files in folder /skins/default/
* run all commands in SQL/[yourdbtype].update.sql
from version 0.1-rc1
----------------------------------------
* replace index.php
* replace all files in folder /bin/
* replace all files in folder /program/
* replace all files in folder /skins/default/
* If you have LDAP servers configured you should re-configure
  the config entries using the template given in /config/main.inc.php.dist
from version 0.1-beta2
----------------------------------------
* replace index.php
* replace all files in folder /bin/
* replace all files in folder /program/
* replace all files in folder /skins/default/
* run all commands in SQL/[yourdbtype].update.sql or
  re-initalize the database with [yourdbtype].initial.sql
* add these lines to /config/main.inc.php
   $rcmail_config['draft_autosave'] = 300;
   $rcmail_config['date_today'] = 'H:i';
* If you have LDAP servers configured you should re-configure
  the config entries using the template given in /config/main.inc.php.dist
form version 0.1-beta
----------------------------------------
* replace index.php
* replace all files in folder /bin/
* replace all files in folder /program/
* replace all files in folder /skins/default/
* run all commands in SQL/[yourdbtype].update.sql or
  re-initalize the database with [yourdbtype].initial.sql
* add this line to /config/db.inc.php
   $rcmail_config['db_persistent'] = false;
* add these lines to /config/main.inc.php
   $rcmail_config['drafts_mbox'] = 'Drafts';
   $rcmail_config['junk_mbox'] = 'Junk';
   $rcmail_config['product_name'] = 'RoundCube Webmail';
   $rcmail_config['read_when_deleted'] = false;
   $rcmail_config['enable_spellcheck'] = false;
   $rcmail_config['protect_default_folders'] = false;
* replace the following line from /config/main.inc.php
   @include($_SERVER['HTTP_HOST'].'.inc.php');
  with
   $rcmail_config['include_host_config'] = false;
sqlite OLD.DB .dump | sqlite3 NEW.DB