Commit 9009f964 authored by Nico Schottelius's avatar Nico Schottelius

++qmail script

Signed-off-by: default avatarNico Schottelius <>
parent 12236805
# (c) Nico Schottelius 2003
# Last Modified: So Okt 2 17:07:44 CEST 2005
# install qmail
# - now with netqmail patch
# - tls/ssl
# - "errno patch"
##export DIETLIBC_HOME=/usr/packages/dietlibc
TMP=/tmp/qmail-build # where to build, download
WGET="wget -c"
# qmail
export RELAYHOSTS=""
set -e # exit on error
mkdir -p "${TMP}"; cd "${TMP}"
##echo "========= installing dietlibc ============="
##echo retrieving dietlibc..
##cvs -d -z9 co dietlibc
##cd dietlibc
##make prefix=${DIETLIBC_HOME}
##make prefix=${DIETLIBC_HOME} install
##ln -fs ${DIETLIBC_HOME}/bin/diet /usr/bin
##cd ..
echo "========= installing qmail ============="
# cleanup, double patching is bad!
rm -rf qmail-1.03
echo retrieving qmail..
echo unpacking...
tar xfz qmail-1.03.tar.gz
echo retrieving netqmail-patch..
echo patching...
cd qmail-1.03
bunzip2 -c ../$NETQMAILPATCH | patch -p1
echo '#include <time.h>' > TMPFILE
cat qmail-smtpd.c >> TMPFILE
mv TMPFILE qmail-smtpd.c
echo setting up dir...
mkdir -p "$QMAIL_HOME"
echo install qmail users/groups..
# may already exist
set +e
groupadd nofiles
useradd -g nofiles -d $QMAIL_HOME/alias alias
useradd -g nofiles -d $QMAIL_HOME qmaild
useradd -g nofiles -d $QMAIL_HOME qmaill
useradd -g nofiles -d $QMAIL_HOME qmailp
groupadd qmail
useradd -g qmail -d $QMAIL_HOME qmailq
useradd -g qmail -d $QMAIL_HOME qmailr
useradd -g qmail -d $QMAIL_HOME qmails
set -e
echo preparing qmail..
##echo 'diet -Os gcc -O2 -I/usr/include/openssl' > conf-cc
echo 'gcc -O2 -I/usr/include/openssl -include /usr/include/errno.h' > conf-cc
echo 'gcc -s' > conf-ld
echo "$QMAIL_HOME" > conf-qmail
echo building qmail..
make setup check
echo configuring qmail..
./config-fast $HOSTNAME
echo "&$POSTMASTER" > ~alias/.qmail-postmaster
echo "&$POSTMASTER" > ~alias/.qmail-root
echo "&$POSTMASTER" > ~alias/.qmail-mailer-daemon
chmod 644 ~alias/.qmail*
echo "PATH=\"$QMAIL_HOME/bin:\$PATH\" qmail-start ./Maildir/ splogger qmail &" > $QMAIL_HOME/rc
chmod 750 $QMAIL_HOME/rc
echo creating defaults for new users..
for dir in tmp cur new; do
mkdir -p /etc/skel/Maildir/$dir
echo "./Maildir/" > /etc/skel/.qmail
echo done with setting up ucspi-tcp
cd ..
# ucspi
echo "========= installing ucspi-tcp ============="
echo retrieving ucspi-tcp..
echo unpacking ucspi-tcp..
tar xfz ucspi-tcp-0.88.tar.gz
echo building ucspi-tcp..
cd ucspi-tcp-0.88
echo "$UCSPI_TCP_HOME" > conf-home
echo 'gcc -O2 -include /usr/include/errno.h' > conf-cc
make setup check
for bin in $UCSPI_TCP_HOME/bin/*; do
ln -sf "$UCSPI_TCP_HOME/bin/$bin" /usr/bin
echo configurinc ucspi-tcp..
for hosts in $RELAYHOSTS; do
echo "$hosts:allow,RELAYCLIENT=\"\"" >> /etc/tcp.smtp
tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp
# init script
# header
cat << EOF > /etc/init.d/qmail
# qmail init: autogenerated by install-qmail by Nico Schottelius
echo MAILHOST="$HOSTNAME" >> /etc/init.d/qmail
echo "QMAILD=`cat /etc/passwd|grep qmaild | awk -F':' '{ print $3 }'`" >> /etc/init.d/qmail
echo "NOFILES=`cat /etc/group|grep nofiles | awk -F':' '{ print $3 }'`" >> /etc/init.d/qmail
cat << EOF >> /etc/init.d/qmail
case "\$1" in
# ferne
tcpserver -x /etc/tcp.smtp.cdb -v -u \$QMAILD -g \$NOFILES 0 smtp $QMAIL_HOME/bin/qmail-smtpd 2>&1 | $QMAIL_HOME/bin/splogger smtpd 3 &
# lokal
# pop3
tcpserver 0 110 $QMAIL_HOME/bin/qmail-popup \$MAILHOST /bin/checkpassword $QMAIL_HOME/bin/qmail-pop3d Maildir &
killall qmail-send tcpserver
chmod 750 /etc/init.d/qmail
echo "Installation done."
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment