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