Fixing fetchmail NLS breakage


To address the recent vulnerabilities with fetchmail, I wanted to upgrade to the latest secure version. Having performed this operation numerous times in the past, I used the following process to download and compile the source code:

$ wget http://download.berlios.de/fetchmail/fetchmail-6.2.5.2.tar.gz

$ configure --with-ssl=/usr/local/ssl

$ make

[ ...... ]
cd intl; make
make: Fatal error in reader: Makefile, line 210: Badly formed macro
assignment
Current working directory /tmp/fetchmail-6.2.5.2/intl
Error code 1
make: Fatal error: Command failed for target `@INTLDEPS@'

Gak! The make process failed when attempting to include the NLS (Native Language Support) dependencies. I checked through the fetchmail FAQ, and they recommend disabling native language support with the “–disable-nls” option to fix this issue. Armed with this information I once again attempted to build fetchmail from source:

$ make cleanup

$ configure --with-ssl=/usr/local/ssl --disable-nls

$ make

[ ...... ]
cd intl; make
make: Fatal error in reader: Makefile, line 210: Badly formed macro
assignment
Current working directory /tmp/fetchmail-6.2.5.2/intl
Error code 1
make: Fatal error: Command failed for target `@INTLDEPS@'

Oh good grief! Not being one to give up, I read through the Makefile and located the NLS dependencies referenced by INTLDEPS. Since I don’t need NLS support, I removed* the NLS dependencies from the Makefile, and once again attempted to compile from source code:

$ make cleanup

$ configure --with-ssl=/usr/local/ssl --disable-nls

$ grep INTLDEPS Makefile
fetchmail: $(objs) @INTLDEPS@

$ vi Makefile

$ grep INTLDEPS Makefile
fetchmail: $(objs)

$ make

[ ..... ]
gcc -DHAVE_CONFIG_H -DLOCALEDIR="/usr/local/share/locale" -c -I. -I.
-I./intl -I./intl -I/usr/local/ssl/include -I/usr/ kerberos/include -O
md5c.c
gcc -L/usr/local/ssl/lib rcfile_y.o rcfile_l.o socket.o getpass.o
pop2.o pop3.o imap.o etrn.o odmr.o fetchmail.o idle.o env.o options.o
daemon.o driver.o transact.o sink.o rfc822.o smtp.o xmalloc.o uid.o
mxget.o md5ify.o cram.o kerberos.o gssapi.o opie.o rpa.o interface.o
netrc.o base64.o report.o unmime.o conf.o checkalias.o smbdes.o
smbencrypt.o smbmd4.o smbutil.o ipv6-connect.o lock.o md5c.o -lnsl
-lsocket -lintl -lresolv -lssl -lcrypto -ll -o fetchmail
cd po; make

Success! Don’t you love it when a software package comes together! :)

The fetchmail archives indicated that this issue may be attributable to a bug in the native Solaris make utility, and might be fixed by installing GNU make. I don’t want to support another software package, so disabling NLS was my best option.

This article was posted by Matty on 2005-08-30 20:35:00 -0400 EDT