diff -r 20141b967c0b -r be0906181a10 doc/web/source/upgrade/0.4.x-0.5.rst --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/web/source/upgrade/0.4.x-0.5.rst Sun Jul 29 14:46:52 2012 +0000 @@ -0,0 +1,140 @@ +====================== +Upgrading to vmm 0.5.x +====================== +This page is valid only for vmm-0.4/vmm-0.4-r41 and vmm-0.5/vmm-0.5.1. +If you are using vmm-0.3.x please upgrade first to +`vmm-0.4-r41 `_. + +Upgrading from vmm-0.4.x +------------------------ +Database backup +^^^^^^^^^^^^^^^ +It is always wise to back up your database from time to time. +Particularly with regard to an impending structure modification. + +Example: Backing up the `mailsys` database with pg_dump_. + +.. code-block:: console + + root@host:~# pg_dump -h localhost -U vmm -W mailsys > mailsys-0.4.sql + +Stopping Postfix and Dovecot +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Before updating the database you have to stop Postfix and Dovecot. + +.. code-block:: console + + root@host:~# /etc/init.d/postfix stop + Stopping Postfix Mail Transport Agent: postfix. + root@host:~# /etc/init.d/dovecot stop + Stopping IMAP/POP3 mail server: dovecot. + +Database update +^^^^^^^^^^^^^^^ +Connect as your `vmm` database user to your database. + +.. code-block:: console + + root@host:~# psql mailsys vmm -W -h localhost + +In the PostgreSQL interactive terminal you have to run the following +commands to perform the update. + +.. code-block:: postgresql-console + + mailsys=> \i /path/to/vmm-0.5.2/update_tables_0.4.x-0.5.pgsql + mailsys=> GRANT SELECT ON postfix_alias TO postfix; + mailsys=> \q + +.. _database-update-for-dovecot-v1-2-x: + +Database update for Dovecot v1.2.x +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +When you are already using Dovecot v1.2.x, you have to perform one or two +**additional** database updates. + +.. code-block:: postgresql-console + + mailsys=> \i /path/to/vmm-0.5.2/update_tables_0.5.x_for_dovecot-1.2.x.pgsql + mailsys=> GRANT SELECT ON dovecot_password TO dovecot; + mailsys=> -- If you are using the function dovecotpassword() in the + mailsys=> -- password_query setting of your dovecot-sql.conf update it also: + mailsys=> \i /path/to/vmm-0.5.2/update_types_and_functions_0.5.x_for_dovecot-1.2.x.pgsql + mailsys=> \q + +.. _adjusting-permissions-of-the-setuid-root-deliver-copy: + +Adjusting permissions of the setuid root deliver copy +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Starting with Dovecot version 1.2.0 the LDA ``deliver`` will no longer +work, if the binary has the setuid-root bit set **and** it's executable +for everyone. +Independent of the directory permissions, where the ``deliver`` binary +is located. +For this reason you have to adjust the permission of the ``deliver`` binary. + +.. code-block:: console + + root@host:~# chown root:`id -g nobody` /usr/local/lib/dovecot/deliver + root@host:~# chmod u+s,o-rwx /usr/local/lib/dovecot/deliver + +.. _check-update-postfix-master-cf: + +Check/update Postfix' master.cf +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +In prior setups the service *dovecot* was configured slightly different. +If you have set the command attribute user to ``nobody:mail``, either +remove the group *mail* or replace it with the group *nobody* or *nogroup*. +The second line of the service *dovecot* entry should look similar to this:: + + flags=DORhu user=nobody argv=/usr/local/lib/dovecot/deliver … + +Start Dovecot and Postfix again +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +After a successfully update start Dovecot and Postfix again. + +.. code-block:: console + + root@host:~# /etc/init.d/dovecot start + Starting IMAP/POP3 mail server: dovecot. + root@host:~# /etc/init.d/postfix start + Starting Postfix Mail Transport Agent: postfix. + +Upgrade vmm +^^^^^^^^^^^ +Finally execute the ``upgrade.sh`` script to install the new code and +update your ``/usr/local/etc/vmm.cfg``. + +.. code-block:: console + + root@host:~# cd /path/to/vmm-0.5.2 + root@host:/path/to/vmm-0.5.2# ./upgrade.sh + + Please have a look at your /usr/local/etc/vmm.cfg + and verify the value from option 'postconf' in section 'bin'. + + root@host:/path/to/vmm-0.5.2# + +Upgrading from vmm-0.5.x +------------------------ +Upgrade vmm +^^^^^^^^^^^ +When you have already installed vmm-0.5 or vmm-0.5.1 only a single step is +necessary to update your vmm installation. +cd in the source directory and execute the ``upgrade.sh`` script. +That's it. + +.. code-block:: console + + root@host:~# cd /path/to/vmm-0.5.2 + root@host:/path/to/vmm-0.5.2# ./upgrade.sh + root@host:/path/to/vmm-0.5.2# + +When you are already using Dovecot ≧ v1.2.0, you should also respect +following points: + + ‣ :ref:`database-update-for-dovecot-v1-2-x` + ‣ :ref:`adjusting-permissions-of-the-setuid-root-deliver-copy` + ‣ :ref:`check-update-postfix-master-cf` + +.. include:: ../ext_references.rst