doc/web/source/upgrade/0.4.x-0.5.rst
author "martin f. krafft" <madduck@debian.org>
Tue, 07 Aug 2012 21:54:39 +0000
changeset 583 a479c38931c4
parent 579 be0906181a10
permissions -rw-r--r--
If an alias has multiple destinations, multiple records exist, due to the nature of the database. address_list would then return the same alias multiple times, which does not add any information, eats screen space and is potentially confusing. Therefore, we SELECT DISTINCTly from the alias table. Signed-off-by: martin f. krafft <madduck@debian.org> --- VirtualMailManager/common.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)

======================
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