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 clean

$ 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 clean

$ 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.

Leave a Reply

Your email address will not be published. Required fields are marked *