freebsd-ports/mail/postfix-current/pkg-install
Erwin Lansing 1eed776397 Update postfix-current port to the latest release of the experimental line
of postfix.  Brings configurable feature set up to same level as postfix port,
except that IPv6 patches do not apply (patch author needs to update them).

PR:		54767
Submitted by:	maintainer
2003-07-23 06:30:11 +00:00

181 lines
5.3 KiB
Bash

#!/bin/sh
#
# $FreeBSD$
#
# If the POSTFIX_DEFAULT_MTA environment variable is set to YES, it
# will make the port/package use defaults which makes postfix replaces
# sendmail as much as possible.
PKG_PREFIX=${PKG_PREFIX:=/usr/local}
BATCH=${BATCH:=no}
POSTFIX_DEFAULT_MTA=${POSTFIX_DEFAULT_MTA:=no}
if [ x${POSTFIX_DEFAULT_MTA} = xno ]; then
DEFAULT_REPLACE_MAILERCONF=n
else
DEFAULT_REPLACE_MAILERCONF=y
fi
ask() {
local question default answer
question=$1
default=$2
if [ -z "${PACKAGE_BUILDING}" -a x${BATCH} = xno ]; then
read -p "${question} [${default}]? " answer
fi
if [ x${answer} = x ]; then
answer=${default}
fi
echo ${answer}
}
yesno() {
local question default answer
question=$1
default=$2
while :; do
answer=$(ask "${question}" "${default}")
case "${answer}" in
[Yy]*) return 0;;
[Nn]*) return 1;;
esac
echo "Please answer yes or no."
done
}
if [ x"$2" = xPRE-INSTALL ]; then
USER=postfix
GROUP=postfix
GROUP2=maildrop
if /usr/sbin/pw groupshow "${GROUP}" 2>/dev/null; then
echo "You already have a group \"${GROUP}\", so I will use it."
else
if /usr/sbin/pw groupadd ${GROUP} -h -
then
echo "Added group \"${GROUP}\"."
else
echo "Adding group \"${GROUP}\" failed..."
echo "Please create it, and try again."
exit 1
fi
fi
if /usr/sbin/pw groupshow "${GROUP2}" 2>/dev/null; then
echo "You already have a group \"${GROUP2}\", so I will use it."
else
if /usr/sbin/pw groupadd ${GROUP2} -h -
then
echo "Added group \"${GROUP2}\"."
else
echo "Adding group \"${GROUP2}\" failed..."
echo "Please create it, and try again."
exit 1
fi
fi
if /usr/sbin/pw user show "${USER}" 2>/dev/null; then
echo "You already have a user \"${USER}\", so I will use it."
else
if /usr/sbin/pw useradd ${USER} -g ${GROUP} -h - \
-d /var/spool/postfix \
-s /sbin/nologin \
-c "Postfix Mail System"
then
echo "Added user \"${USER}\"."
else
echo "Adding user \"${USER}\" failed..."
echo "Please create it, and try again."
exit 1
fi
fi
if /usr/sbin/pw show group mail | grep -q "${USER}" 2>/dev/null; then
echo "You already have user \"${USER}\" in group \"mail\", so I will use it."
else
echo "You need user \"${USER}\" added to group \"mail\"."
if yesno "Would you like me to add it" y; then
/usr/sbin/pw groupmod mail -m ${USER} || exit
echo "Done."
else
echo "Please create it, and try again."
exit 1
fi
fi
fi
if [ x"$2" = xPOST-INSTALL ]; then
CONF1="main.cf master.cf access aliases canonical cidr_table \
pcre_table regexp_table relocated tcp_table transport virtual"
for file in $CONF1
do
if [ ! -f ${PKG_PREFIX}/etc/postfix/$file ]; then
cp ${PKG_PREFIX}/etc/postfix/sample-$file ${PKG_PREFIX}/etc/postfix/$file
fi
done
sh ${PKG_PREFIX}/etc/postfix/post-install tempdir=/tmp \
config_directory=${PKG_PREFIX}/etc/postfix \
daemon_directory=${PKG_PREFIX}/libexec/postfix \
command_directory=${PKG_PREFIX}/sbin \
queue_directory=/var/spool/postfix \
sendmail_path=${PKG_PREFIX}/sbin/sendmail \
newaliases_path=${PKG_PREFIX}/bin/newaliases \
mailq_path=${PKG_PREFIX}/bin/mailq \
mail_owner=postfix \
setgid_group=maildrop \
manpage_directory=${PKG_PREFIX}/man \
sample_directory=${PKG_PREFIX}/etc/postfix \
readme_directory=no \
upgrade-package
# readme_directory is "no" above since the package will have correct perms
# already, and we don't know if they had PORTDOCS.
fi
replace() {
local orig repl
orig=$1
repl=$2
if [ -e ${orig} ]; then
mv -f ${orig} ${orig}.OFF
chmod 0 ${orig}.OFF
fi
if [ -e ${repl} ]; then
ln -s ${repl} ${orig}
fi
}
if [ x"$2" = xPOST-INSTALL -a -z "${PACKAGE_BUILDING}" ]; then
if [ -x /sbin/sysctl ]; then
OSVERSION=`/sbin/sysctl -n kern.osreldate`
else
OSVERSION=`/usr/sbin/sysctl -n kern.osreldate`
fi
if [ ${OSVERSION} -ge 400014 ]; then
if yesno "Would you like to activate Postfix in /etc/mail/mailer.conf" \
${DEFAULT_REPLACE_MAILERCONF}; then
mv -f /etc/mail/mailer.conf /etc/mail/mailer.conf.old
echo "#" > /etc/mail/mailer.conf
echo -n "# Execute the Postfix sendmail program" >> /etc/mail/mailer.conf
echo ", named ${PKG_PREFIX}/sbin/sendmail" >> /etc/mail/mailer.conf
echo "#" >> /etc/mail/mailer.conf
echo "sendmail ${PKG_PREFIX}/sbin/sendmail" >> /etc/mail/mailer.conf
echo "send-mail ${PKG_PREFIX}/sbin/sendmail" >> /etc/mail/mailer.conf
echo "mailq ${PKG_PREFIX}/sbin/sendmail" >> /etc/mail/mailer.conf
echo "newaliases ${PKG_PREFIX}/sbin/sendmail" >> /etc/mail/mailer.conf
fi
else
if yesno "Would you like to replace {sendmail,mailq,newaliases} with Postfix versions" n; then
replace /usr/sbin/sendmail ${PKG_PREFIX}/sbin/sendmail
replace /usr/bin/mailq ${PKG_PREFIX}/sbin/sendmail
replace /usr/bin/newaliases ${PKG_PREFIX}/sbin/sendmail
echo "Done."
fi
fi
fi