tomclegg.net |
Install ezmlm on linux Posted December 6, 2008 Here's how to install ezmlm on a modern linux system (tested on ubuntu "hardy"). ( set -e cd /tmp wget http://cr.yp.to/software/ezmlm-0.53.tar.gz tar xzf ezmlm-0.53.tar.gz cd ezmlm-0.53 perl -pi~ -e 's{([^\"]log)}{${1}_}g; s{extern int errno;}{\#include Why?The point of the above recipe is to avoid the following problems. If you compile ezmlm-0.53 out of the box, you get this: (As far as I know, this is the most obscure known way of telling you to include "errno.h" instead of just declaring "extern int errno"...)./load auto-str substdio.a error.a str.a /usr/bin/ld: errno: TLS definition in /lib/libc.so.6 section .tbss mismatches non-TLS reference in substdio.a(substdo.o) /lib/libc.so.6: could not read symbols: Bad value collect2: ld returned 1 exit status make: *** [auto-str] Error 1 If you fix errno, you find that log is now a built-in function in gcc. ./compile ezmlm-manage.c ezmlm-manage.c: In function 'main': ezmlm-manage.c:320: warning: incompatible implicit declaration of built-in function 'log' ezmlm-manage.c:320: error: incompatible type for argument 1 of 'log' ezmlm-manage.c:320: error: too many arguments to function 'log' ezmlm-manage.c:331: warning: incompatible implicit declaration of built-in function 'log' ezmlm-manage.c:331: error: incompatible type for argument 1 of 'log' ezmlm-manage.c:331: error: too many arguments to function 'log' ezmlm-manage.c:135: warning: return type of 'main' is not 'int' make: *** [ezmlm-manage.o] Error 1 Finally, if you don't make the symlinks, .qmail files might not find the ezmlm-* programs. |