(This is mostly for me to remember for the other boxes, but maybe it helps someone)
When I boldly updated one of our SMTP/POP3/IMAP boxes (running qmail/vpopmail for MTA and POP3(s) and courier for imap) to Etch the other day, I ran into a number of issues. First, tcpserver and a lot of other DJB binaries errored out on me after the upgrade, downing the MTA:
./tcpserver.old: relocation error: ./tcpserver.old: symbol errno, version GLIBC_2.0 not defined in file libc.so.6 with link time reference
This is due to the glibc having been updated to 2.3.x with Etch - qmail 1.03 without patches and all associated tools are used to older glibc. The errno.h header is pretty much the only incompatible change and requires patch + recompile for all qmail stuff. You can get errno.h patches here:
http://djbware.csi.hu/patches/qmail-1.03.errno.patch (qmail 1.03)
http://djbware.csi.hu/patches/daemontools-0.76.errno.patch (daemontools)
http://djbware.csi.hu/patches/ucspi-tcp-0.88.errno.patch (ucspi-tcp)
Apply with patch -p 0 < patchfile.patch, make && make check install and triple-check the locations! On my box, all binaries were in three (!) different locations.
After that, at least the services started again. Kinda. All spam filtering (done with a maildrop script on our machines) failed, though - “Error 0x06”. Googling yields a number of possible solutions, I (think I) fixed it by downloading the latest version and recompiling maildrop as well as setuid’ing the binary.
The last thing that bugged me was the fact that the stunnel-based pop3s service didn’t work anymore (and there was no error message to be found in log/pop3s/current). This is due to the fact that stunnel now expects a DH exchange parameter in each certificate PEM file. Thanks for pointing that out, infodrom! The remedy goes like this:
dd if=/dev/urandom count=2 | openssl dhparam -rand - 512
This creates 3 lines similar to
-----BEGIN DH PARAMETERS-----
MEYCQQDHTfl6goJPFIK2sxcWSiafimFflKfs3m7GqTLblahblahblahblahblah
-----END DH PARAMETERS-----
Prepend those to your certificate PEM file, yielding this:
-----BEGIN DH PARAMETERS-----
[some blah blah]
-----END DH PARAMETERS-----
-----BEGIN RSA PRIVATE KEY-----
[a lot of blah blah blah]
-----END RSA PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
[an even bigger lot of blah blah blah]
-----END CERTIFICATE-----
Also, you might wanna use the run file from my extended entry instead, since I think stunnel has been updated to version 3 (from 2) in Etch.
That’s it, after this ordeal your qmail/vpopmail machine should run again.