qpsmtpd Wiki

[[users:gh:install]]

You are here: start » users » gh » install

Login

You are currently not logged in! Enter your authentication credentials below to log in. You need to have cookies enabled to log in.

Login

You don't have an account yet? Just get one: Register

Forgotten your password? Get a new one: Set new password

Development Notes

I am using Debian Sarge but will upgrade to Etch very soon. These notes are Debian-agnostic but do assume that the perl version is at least 5.8.0. If not then there are three additional perl modules required as documented in the README file (use 'perldoc README' to read it) of the source directory.

Pre-requisites

You will need to install the following perl modules:

Net::DNS
MIME::Base64
Mail::Header
Danga::Socket
IO::Socket::SSL

The last two are required only for the -async server and the tls plugin, respectively. I am not running -async yet but I do need tls and auth*.

Installing From Subversion

Check out the code from the subversion repository. I started out on the 0.3x branch, hence the funny name.

svn co http://svn.perl.org/qpsmtpd/trunk qpsmtpd-0.4x

I export from the subversion checkout before building via:

svn export qpsmtpd-0.4x 0.4x-r###

where ### is the revision number (presently 733 - latest as of April 26, 2007) but it is not necessary for what follows (this just makes it easier for me to keep track of files I might modify).

Choose a clean location to which you can write via:

PREFIX=/path/to/installation

I never do anything as root unless I have to. Another unnecessary command (I do this from a script and the following is safe):

if [ -f Makefile ] ; then make distclean; fi

The usual perl installation will do things:

perl Makefile.PL PREFIX=$PREFIX LIB=$PREFIX/lib
make test

If the output from make test is ok, then:

make install
make distclean

I run 'make distclean' to keep things tidy.

Here is the part which perl won't do for you:

cp -rp config.sample $PREFIX/config
cp -rp plugins $PREFIX/plugins

At this point, if you installed into the home directory of the 'smtpd' user, I think things will probably run but I want to do some testing with 'swaks' first.

Patching

At this point I am going to cut-and-paste from my notes and post to the list. I will return to this later (today, I hope):

FIXME: N.B. I have NOT tested the details below. These are notes to reproduce what I did manually and I will edit them once they've been run from a script.

Fixes:

Run 'qpsmtpd-forkserver' as yourself:

1. Run with -u `whoami`
2. Setup the following:
  .profile
      export QPSMTPD_CONFIG=$PREFIX/config
      export PATH=/usr/bin:/bin:$PREFIX/bin

The 'smtpd' user will not need this only if you place qpsmtpd-forkserver in his home directory. He will not need 3 or 7 either.

3. cat > config/plugin_dir <<EOF_PD
   $PREFIX/plugins
   EOF_PD
4. cat > config/logging <<EOF_LOG
   file loglevel 4 ./log/qpsmtpd.log
   EOF_LOG

As user 'smtpd':

5. mkdir ~/log
6. mkdir ~/tmp
  chmod 0700 tmp

If not 'smtpd' then you'll need:

7. cat > config/spool_dir
   $PREFIX/tmp