openbsd-ports/mail/postfix/pkg/INSTALL
jakob 96685d819f Now non-interactive.
Better instructions for install/deinstall.
Cleanup.
ok espie@.
1999-10-07 20:58:03 +00:00

165 lines
4.6 KiB
Plaintext

#!/bin/sh
# $OpenBSD: INSTALL,v 1.6 1999/10/07 20:58:04 jakob Exp $
#
# Pre/post-installation setup of postfix
PATH=/bin:/usr/bin:/sbin:/usr/sbin
PREFIX=${PKG_PREFIX:-/usr/local}
CONFIG_DIR=/etc/postfix
SPOOL_DIR=/var/spool/postfix
POSTFIXUID=6
POSTFIXGID=6
MAILDROPGID=12
# Function: set up postfix user/group accounts.
#
do_accts()
{
# Create postfix user and group.
line=`egrep '^postfix:' /etc/group`
if [ "$line" != "" ]; then
POSTFIXGID=`echo $line | cut -f3 -d:`
else
echo "-> Creating postfix group, gid $POSTFIXGID"
echo "postfix:*:${POSTFIXGID}:" >> /etc/group
fi
line=`egrep '^postfix:' /etc/passwd`
if [ "$line" != "" ]; then
POSTFIXUID=`echo $line | cut -f3 -d:`
else
echo "-> Creating postfix user, uid $POSTFIXUID"
chpass -l -a "postfix:*:${POSTFIXUID}:${POSTFIXGID}::::Disgruntled Postal Worker:/nonexistent:/sbin/nologin"
fi
echo "-> Using account 'postfix' for postfix, uid $POSTFIXUID, gid $POSTFIXGID"
# Create Postfix maildrop group.
line=`egrep '^maildrop:' /etc/group`
if [ "$line" != "" ]; then
MAILDROPGID=`echo $line | cut -f3 -d:`
else
echo "-> Creating maildrop group, gid $MAILDROPGID"
echo "maildrop:*:${MAILDROPGID}:" >> /etc/group
fi
echo "-> Using group 'maildrop' for postdrop, gid $MAILDROPGID"
}
# Function: set up the postfix spool dir / chroot area
#
do_spooldir()
{
echo "-> Creating Postfix spool directory and chroot area under $SPOOL_DIR"
[ -d $SPOOL_DIR ] || mkdir -p -m 755 $SPOOL_DIR
[ -d ${SPOOL_DIR}/etc ] || mkdir -p -m 755 ${SPOOL_DIR}/etc
for file in localtime services resolv.conf ; do
install -c -m 755 /etc/$file ${SPOOL_DIR}/etc
done
}
# Function: replace sendmail binaries with postfix
#
do_mailwrapper()
{
echo "-> Creating /etc/mailer.conf.postfix"
cat <<MAILER >/tmp/mailer.conf.$$
sendmail y0y0y0/sbin/sendmail
send-mail y0y0y0/sbin/sendmail
mailq y0y0y0/sbin/sendmail
newaliases y0y0y0/sbin/sendmail
MAILER
sed "s@y0y0y0@${PREFIX}@g" /tmp/mailer.conf.$$ >/etc/mailer.conf.postfix
rm -f /tmp/mailer.conf.$$
chown root:wheel /etc/mailer.conf.postfix
chmod 644 /etc/mailer.conf.postfix
}
# Function: install the postfix configuration files from the samples
#
do_configs()
{
if [ -d $CONFIG_DIR ]; then
echo ""
echo "+---------------"
echo "| The existing $1 configuration files in ${CONFIG_DIR},"
echo "| have NOT been changed. You may want to compare them to the"
echo "| current sample files, ${PREFIX}/lib/postfix,"
echo "| and update your configuration as needed."
echo "|"
echo "| Existing ${CONFIG_DIR}/postfix-script, however, will be"
echo "| updated to the latest version."
echo "+---------------"
echo ""
else
# Install config files.
mkdir -p -m 755 $CONFIG_DIR
install -m 644 -c ${PREFIX}/lib/postfix/* $CONFIG_DIR
sed "s@y0y0y0@${PREFIX}@g" ${CONFIG_DIR}/main.cf > ${CONFIG_DIR}/main.cf.$$
install -m 644 ${CONFIG_DIR}/main.cf.$$ ${CONFIG_DIR}/main.cf
rm -f ${CONFIG_DIR}/main.cf.$$
# The correct postfix-script will be installed later.
rm -f ${CONFIG_DIR}/postfix-script*
echo ""
echo "+---------------"
echo "| The $1 configuration files in ${CONFIG_DIR},"
echo "| have been installed. Please view these files and change"
echo "| the configuration to meet your needs."
echo "+---------------"
echo ""
fi
# Configure setgid maildrop
install -m 755 -c ${PREFIX}/lib/postfix/postfix-script-sgid ${CONFIG_DIR}/postfix-script
chgrp maildrop ${PREFIX}/sbin/postdrop
chmod 2755 ${PREFIX}/sbin/postdrop
}
# Function: tell the user what s/he needs to do to use the port just installed
#
do_notice()
{
echo ""
echo "+---------------"
echo "| Postfix can be set up to replace sendmail entirely. Please read the"
echo "| documentation at file:$PREFIX/share/doc/postfix/index.html or"
echo "| http://www.postfix.org/ carefully before you decide to do this!"
echo "|"
echo "| To replace sendmail with postfix you have to install a new mailer.conf"
echo "| using the following command:"
echo "|"
echo "| $PREFIX/sbin/postfix-enable"
echo "|"
echo "| If you want to restore sendmail, this is done using the following command:"
echo "|"
echo "| $PREFIX/sbin/postfix-disable"
echo "+---------------"
echo ""
}
# verify proper execution
#
if [ $# -ne 2 ]; then
echo "usage: $0 distname { PRE-INSTALL | POST-INSTALL }" >&2
exit 1
fi
# Verify/process the command
#
case $2 in
PRE-INSTALL)
do_accts
;;
POST-INSTALL)
do_spooldir
do_configs $1
do_mailwrapper
do_notice
;;
*)
echo "Usage: `basename $0` distname <PRE-INSTALL|POST-INSTALL>" >&2
exit 1
;;
esac
exit 0