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.

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.

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.

root@host:~# psql mailsys vmm -W -h localhost

In the PostgreSQL interactive terminal you have to run the following commands to perform the update.

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

When you are already using Dovecot v1.2.x, you have to perform one or two additional database updates.

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

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.

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

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.

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.

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.

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: