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.