#!/bin/bash

# Daniel A. Snapp ~ 02/06/2010

umask 022
mkdir -p /usr/local/src
cd /usr/local/src
wget http://www.qmail.org/netqmail-1.06.tar.gz
wget http://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz
wget http://cr.yp.to/daemontools/daemontools-0.76.tar.gz
wget http://www.ephewe.net/qmail/pre-made.scripts-fe.tar.gz
wget http://cr.yp.to/checkpwd/checkpassword-0.90.tar.gz
gunzip netqmail-1.06.tar.gz
tar xpf netqmail-1.06.tar
wget http://www.ephewe.net/qmail/qmail-tarpit.patch
mv qmail-tarpit.patch /usr/local/src/netqmail-1.06/
patch < /usr/local/src/netqmail-1.06/qmail-tarpit.patch
gunzip ucspi-tcp-0.88.tar.gz
tar xpf ucspi-tcp-0.88.tar
gunzip pre-made.scripts-fe.tar.gz
tar xpf pre-made.scripts-fe.tar
gunzip checkpassword-0.90.tar.gz
tar xpf checkpassword-0.90.tar
rm *.tar
mkdir -p /package
chmod 1755 /package
mv daemontools-0.76.tar.gz /package
cd /package
gunzip daemontools-0.76.tar.gz
tar xpf daemontools-0.76.tar
rm *.tar

mkdir /var/qmail
mkdir /etc/qmail
ln -s /etc/qmail /var/qmail/control

groupadd nofiles
useradd -g nofiles -d /var/qmail/alias alias
useradd -g nofiles -d /var/qmail qmaild
useradd -g nofiles -d /var/qmail qmaill
useradd -g nofiles -d /var/qmail qmailp
groupadd qmail
useradd -g qmail -d /var/qmail qmailq
useradd -g qmail -d /var/qmail qmailr
useradd -g qmail -d /var/qmail qmails

cd /usr/local/src/netqmail-1.06
./collate.sh
cd netqmail-1.06
patch -p0 < ../../netqmail-1.05-tls-smtpauth-20070417.patch
cd netqmail-1.06

make
make setup check
make cert
make tmprsadh
./config-fast $1
cd /usr/local/src/ucspi-tcp-0.88
patch < /usr/local/src/netqmail-1.06/other-patches/ucspi-tcp-0.88.errno.patch
make
make setup check
cd /package/admin/daemontools-0.76
cd src
patch < /usr/local/src/netqmail-1.06/other-patches/daemontools-0.76.errno.patch
cd ..
package/install

cd /usr/local/src
mv qmail.rc /var/qmail/rc
chmod 755 /var/qmail/rc
mkdir /var/log/qmail
echo ./Maildir/ >/var/qmail/control/defaultdelivery
mv qmailctl-fe /var/qmail/bin/qmailctl
chmod 755 /var/qmail/bin/qmailctl
ln -s /var/qmail/bin/qmailctl /usr/bin
mkdir -p /var/qmail/supervise/qmail-send/log
mkdir -p /var/qmail/supervise/qmail-smtpd/log
mv qmail-send.run /var/qmail/supervise/qmail-send/run
mv qmail-send-log.run /var/qmail/supervise/qmail-send/log/run
mv qmail-smtpd.run /var/qmail/supervise/qmail-smtpd/run
echo 20 > /var/qmail/control/concurrencyincoming
chmod 644 /var/qmail/control/concurrencyincoming
mv qmail-smtpd-log.run /var/qmail/supervise/qmail-smtpd/log/run
chmod 755 /var/qmail/supervise/qmail-send/run
chmod 755 /var/qmail/supervise/qmail-send/log/run
chmod 755 /var/qmail/supervise/qmail-smtpd/run
chmod 755 /var/qmail/supervise/qmail-smtpd/log/run
mkdir -p /var/log/qmail/smtpd
chown qmaill /var/log/qmail /var/log/qmail/smtpd
ln -s /var/qmail/supervise/qmail-send /var/qmail/supervise/qmail-smtpd /service

qmailctl stop
echo '127.:allow,RELAYCLIENT=""' >>/etc/tcp.smtp
qmailctl cdb

mv /usr/lib/sendmail /usr/lib/sendmail.old
mv /usr/sbin/sendmail /usr/sbin/sendmail.old
chmod 0 /usr/lib/sendmail.old /usr/sbin/sendmail.old
ln -s /var/qmail/bin/sendmail /usr/lib
ln -s /var/qmail/bin/sendmail /usr/sbin

echo root > /var/qmail/alias/.qmail-root
echo root > /var/qmail/alias/.qmail-postmaster
ln -s .qmail-postmaster /var/qmail/alias/.qmail-mailer-daemon
ln -s .qmail-postmaster /var/qmail/alias/.qmail-abuse
chmod 644 /var/qmail/alias/.qmail-root /var/qmail/alias/.qmail-postmaster

cd /usr/local/src/checkpassword-0.90
patch < /usr/local/src/netqmail-1.06/other-patches/checkpassword-0.90.errno.patch
make
make setup check

mkdir /var/qmail/supervise/qmail-pop3d
cd /usr/local/src
sed "s/FQDN/$1/g" qmail-pop3d.run > qmail-pop3d.tmp && mv qmail-pop3d.tmp qmail-pop3d.run
mv qmail-pop3d.run /var/qmail/supervise/qmail-pop3d/run 
mkdir /var/qmail/supervise/qmail-pop3d/log
mv qmail-pop3d-log.run /var/qmail/supervise/qmail-pop3d/log/run
chmod +t /var/qmail/supervise/qmail-pop3d
mkdir /var/log/qmail/pop3d
chown qmaill /var/log/qmail/pop3d
chmod 755 /var/qmail/supervise/qmail-pop3d/run
chmod 755 /var/qmail/supervise/qmail-pop3d/log/run
ln -s /var/qmail/supervise/qmail-pop3d /service

echo "**************************************";
echo "*         STARTING QMAIL NOW         *";
echo "**************************************";

qmailctl start

