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

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

users:gh:install [2007/04/27 17:45] (current)
gh created
Line 1: Line 1:
 +====== 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
 +