1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-12-14 03:10:47 +00:00
freebsd-ports/mail/postfix27/pkg-install
Pav Lucistnik 13f0c0b491 - Update postfix to 2.2.2
- Update VDA patch to 2.2.2
- Fix mailer.conf activation *)

PR:		ports/79207
Submitted by:	Marcus Grando <marcus@corp.grupos.com.br>
Approved by:	Vivek Khera <vivek@khera.org> (maintainer)

		*)
PR:		ports/79447
Submitted by:	bz
Patch by:	Christian Kratzer <ck at cksoft dot de>
2005-04-05 22:03:14 +00:00

182 lines
5.0 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 make postfix replace
# 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
if [ -x /usr/sbin/nologin ]; then
NOLOGIN=/usr/sbin/nologin
else
NOLOGIN=/sbin/nologin
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
/bin/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
/bin/echo "Please answer yes or no."
done
}
if [ x"$2" = xPRE-INSTALL ]; then
USER=postfix
UID=125
GROUP=postfix
GID=125
GROUP2=maildrop
GID2=126
if /usr/sbin/pw groupshow "${GROUP}" 2>/dev/null; then
/bin/echo "You already have a group \"${GROUP}\", so I will use it."
else
if /usr/sbin/pw groupadd ${GROUP} -g ${GID}
then
/bin/echo "Added group \"${GROUP}\"."
else
/bin/echo "Adding group \"${GROUP}\" failed..."
/bin/echo "Please create it, and try again."
exit 1
fi
fi
if /usr/sbin/pw groupshow "${GROUP2}" 2>/dev/null; then
/bin/echo "You already have a group \"${GROUP2}\", so I will use it."
else
if /usr/sbin/pw groupadd ${GROUP2} -g ${GID2}; then
/bin/echo "Added group \"${GROUP2}\"."
else
/bin/echo "Adding group \"${GROUP2}\" failed..."
/bin/echo "Please create it, and try again."
exit 1
fi
fi
if /usr/sbin/pw user show "${USER}" 2>/dev/null; then
/bin/echo "You already have a user \"${USER}\", so I will use it."
else
if /usr/sbin/pw useradd ${USER} -u ${UID} -g ${GROUP} -h - -d /var/spool/postfix -s ${NOLOGIN} -c "Postfix Mail System"; then
/bin/echo "Added user \"${USER}\"."
else
/bin/echo "Adding user \"${USER}\" failed..."
/bin/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
/bin/echo "You already have user \"${USER}\" in group \"mail\", so I will use it."
else
/bin/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
/bin/echo "Done."
else
/bin/echo "Please create it, and try again."
exit 1
fi
fi
fi
if [ x"$2" = xPOST-INSTALL ]; then
if [ -d ${PKG_PREFIX}/etc/postfix/dist ]; then
for file in ${PKG_PREFIX}/etc/postfix/dist/*; do
if [ ! -f ${PKG_PREFIX}/etc/postfix/${file#${PKG_PREFIX}/etc/postfix/dist} ]; then
cp $file ${PKG_PREFIX}/etc/postfix/
fi
done
fi
/bin/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
fi
# readme_directory is "no" above since the package will have correct perms
# already, and we don't know if they had PORTDOCS.
replace() {
local orig repl
orig=$1
repl=$2
if [ -e ${orig} ]; then
/bin/mv -f ${orig} ${orig}.OFF
/bin/chmod 0 ${orig}.OFF
fi
if [ -e ${repl} ]; then
/bin/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
/bin/echo "#" > /etc/mail/mailer.conf
/bin/echo -n "# Execute the Postfix sendmail program" >> /etc/mail/mailer.conf
/bin/echo ", named ${PKG_PREFIX}/sbin/sendmail" >> /etc/mail/mailer.conf
/bin/echo "#" >> /etc/mail/mailer.conf
/bin/echo "sendmail ${PKG_PREFIX}/sbin/sendmail" >> /etc/mail/mailer.conf
/bin/echo "send-mail ${PKG_PREFIX}/sbin/sendmail" >> /etc/mail/mailer.conf
/bin/echo "mailq ${PKG_PREFIX}/sbin/sendmail" >> /etc/mail/mailer.conf
/bin/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
/bin/echo "Done."
fi
fi
fi