9009f9646d
Signed-off-by: Nico Schottelius <nico@brief.schottelius.org>
160 lines
3.9 KiB
Bash
Executable file
160 lines
3.9 KiB
Bash
Executable file
#!/bin/sh
|
|
# (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
|
|
QMAIL_HOME=/usr/packages/qmail-1.03-ssl
|
|
UCSPI_TCP_HOME=/usr/packages/ucspi-tcp-0.88
|
|
|
|
TMP=/tmp/qmail-build # where to build, download
|
|
WGET="wget -c"
|
|
|
|
# qmail
|
|
export HOSTNAME=creme.schottelius.org
|
|
export POSTMASTER=nico-root@creme.schottelius.org
|
|
export RELAYHOSTS="213.146.113.242"
|
|
|
|
|
|
set -e # exit on error
|
|
|
|
mkdir -p "${TMP}"; cd "${TMP}"
|
|
|
|
##echo "========= installing dietlibc ============="
|
|
##echo retrieving dietlibc..
|
|
##cvs -d :pserver:cvs@cvs.fefe.de:/cvs -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..
|
|
$WGET ftp://ftp.jp.qmail.org/qmail/qmail-1.03.tar.gz
|
|
echo unpacking...
|
|
tar xfz qmail-1.03.tar.gz
|
|
|
|
echo retrieving netqmail-patch..
|
|
NETQMAILPATCH=qmail-1.03-netqmail-1.05-fefe3.diff.bz2
|
|
$WGET http://www.fefe.de/qmail/$NETQMAILPATCH
|
|
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
|
|
done
|
|
echo "./Maildir/" > /etc/skel/.qmail
|
|
|
|
echo done with qmail...now setting up ucspi-tcp
|
|
cd ..
|
|
|
|
# ucspi
|
|
echo "========= installing ucspi-tcp ============="
|
|
echo retrieving ucspi-tcp..
|
|
$WGET http://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz
|
|
|
|
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
|
|
done
|
|
|
|
echo configurinc ucspi-tcp..
|
|
for hosts in $RELAYHOSTS; do
|
|
echo "$hosts:allow,RELAYCLIENT=\"\"" >> /etc/tcp.smtp
|
|
done
|
|
|
|
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
|
|
#
|
|
|
|
EOF
|
|
|
|
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
|
|
start)
|
|
# 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
|
|
$QMAIL_HOME/rc
|
|
|
|
# pop3
|
|
tcpserver 0 110 $QMAIL_HOME/bin/qmail-popup \$MAILHOST /bin/checkpassword $QMAIL_HOME/bin/qmail-pop3d Maildir &
|
|
;;
|
|
stop)
|
|
killall qmail-send tcpserver
|
|
;;
|
|
esac
|
|
|
|
EOF
|
|
|
|
chmod 750 /etc/init.d/qmail
|
|
|
|
echo "Installation done."
|