doc/web/source/upgrade/0.4.x-0.5.rst
author "martin f. krafft" <madduck@debian.org>
Tue, 07 Aug 2012 21:53:41 +0000
changeset 582 605f8c115711
parent 579 be0906181a10
permissions -rw-r--r--
Due to the UNION query in address_list, the assumption that the list of gids received from the database would be continuous does not hold. To prevent addresses for domains with multiple entry types from being listed, it is necessary to check the list of domain gids for every entry. Signed-off-by: martin f. krafft <madduck@debian.org> --- VirtualMailManager/common.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-)

======================
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 <https://sourceforge.net/projects/vmm/files/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 up date it also:
mailsys=> \i /path/to/vmm-0.5.2/update_types_and_funct ions_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