User Tools

Site Tools


programming:python:installpymilter

Installing Python Milter

Intro

Since I ran into a couple of minor hangups with this, I figured I would pass along a little info to help out anyone who also ran into snags getting this working. I have to say, the Python Milter module put together by Jim Niemira and Stuart D. Gathman is really quite good once you get it up and running.

Note: This is geared towards people out there who are not running Sendmail. Personally, I would rather run my hands through a wood chipper than use Sendmail, so this is for those of you running Postfix, like I do.

Install libmilter

This was a straightforward process on my Gentoo machine. There is a libmilter package in Portage, albeit masked, so it was just a matter of:

# ACCEPT_KEYWORDS="~x86" emerge libmilter

That was easy.

Installing Python Milter

First, download a copy of Python Milter from sourceforge: http://sourceforge.net/project/showfiles.php?group_id=139894&package_id=243476&release_id=688263

I downloaded the source, and that's what I'm going to be dealing with here. Once you have it downloaded, untar it and move into that directory:

# tar -xvzf pymilter-<version>.tar.gz
# cd pymilter-<version>

Now, here is where I ran into problems. When I ran the installer, I got the following error:

# python setup.py install
running install
running build
running build_py
running build_ext
building 'milter' extension
i686-pc-linux-gnu-gcc -pthread -shared build/temp.linux-i686-2.4/miltermodule.o -lmilter -lsmutil -o build/lib.linux-i686-2.4/milter.so
/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/../../../../i686-pc-linux-gnu/bin/ld: cannot find -lsmutil
collect2: ld returned 1 exit status
error: command 'i686-pc-linux-gnu-gcc' failed with exit status 1

Taking a look at it reveals that gcc can't find the smutil library. I took a guess and figured that smutil was probably “Sendmail Utilities”. The fix is next.

The Fix

The fix for me was quite simple. I just downloaded the source for Sendmail itself matching the version of libmilter that I had installed (in this case, it was 8.14.3). Once I had it downloaded, I just built it and added libsmutil.a to to my lib directory, /usr/lib.

# tar -xvzf sendmail.8.14.3.tar.gz
# cd sendmail-8.14.3
# ./Build
# cp obj.Linux.2.6.19-gentoo-r5.i686/libsmutil/libsmutil.a /usr/lib

After that, I reran the install for Python Milter and it installed and worked without a hitch.

Hope this helps someone else out there because the Python Milter library works really well.

programming/python/installpymilter.txt · Last modified: 2009/06/11 15:25 by crustymonkey