Stewart Dean wrote:
Alas, when I actually tried to run dovecot, it was asking for its resource /in the original build tree/ location, which wasn't there. Is there some way I can do what I want?
While I haven't done this specifically with Dovecot, you should be able to manage everything in a simple manner like you want; I currently do this with Exim and Courier-IMAP on the old production server solely with switches to ./configure. Here's how it basically works, maybe it'll help you get dovecot working:
Source: /opt/build/courer-imap-1.2.3
$ ./configure --prefix=/opt/courier-imap-1.2.3 --with-authchangepwdir=${exec_prefix}/libexec/authlib --with-makedatprog=${exec_prefix}/libexec/makedatprog (more and more switches that don't matter for this)
After building, a simple "make install" places everything in /opt/courier-1.2.3. Then there's a symlink like so:
/opt/courier-imap -> /opt/courier-1.2.3
...and finally the /etc/init.d/ script loads the actual courier processes using /opt/courier-imap, not the "standard" /usr based things (so you'll need to customize to fit the default dovecot init.d script).
When I upgrade (or downgrade) it's as simple as running the same scenario on the new code (which means a new make install does not overwrite the old), migrate the config files as needed, stop the old daemon, switch the symlink, then start the new daemon up. Users don't see interruption in their email experience and I'm confident of a backup plan in an emergency.
This has been working great for many years upgrading Courier and Exim on the same machine; rarely do I have to fall back but when it does happen it's been as simple as pie.
-te
-- Troy Engel | Systems Engineer Fluid, Inc | http://www.fluid.com