1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-10-22 20:41:26 +00:00

o Almost Dump-safe

o Completely package-safe (with evil tricks)
o Bump PORTREVISION

Because I haven't invented any convenient dialog script to ask people
what protocol (smtp/qmqp) and what address of their mail server, there
still one comment left in pkg-message.

If there's any, please tell me where to steal^h^h^hudy.

Reviewed by: Sybolt de Boer <bolt@xs4all.nl>
This commit is contained in:
Clive Lin 2001-03-04 13:13:42 +00:00
parent c5691fd640
commit f3a4a2b0be
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=39032
5 changed files with 171 additions and 26 deletions

View File

@ -8,6 +8,7 @@
PORTNAME= nullmailer
# PORTVERSION= 1.00RC5
PORTVERSION= 1.00r5
PORTREVISION= 1
CATEGORIES= mail
MASTER_SITES= http://www.em.ca/~bruceg/nullmailer/archive/%SUBDIR%/
# MASTER_SITE_SUBDIR= ${PORTVERSION}
@ -17,22 +18,34 @@ DISTNAME= ${PORTNAME}-1.00RC5
MAINTAINER= clive@FreeBSD.org
HAS_CONFIGURE= yes
IS_INTERACTIVE= yes
NO_PACKAGE= yes
MAN1= nullmailer-inject.1 sendmail.1
MAN7= nullmailer.7
MAN8= nullmailer-queue.8 nullmailer-send.8
PKGMESSAGE= ${WRKDIR}/pkg-message
.if defined(BATCH)
PLIST_SUB= LOCALSTATEDIR="${PREFIX}"
PLIST_SUB+= LOCALSTATEDIR_RM="@dirrm "
NMH_PREFIX= ${PREFIX}
.else
PLIST_SUB= LOCALSTATEDIR=""
PLIST_SUB+= LOCALSTATEDIR_RM="@comment "
CONFIGURE_ARGS+= '--localstatedir=/var/'
.endif
# Pass BATCH to pkg-install for Evil Things(tm)
pre-install:
@PKG_PREFIX="${PREFIX}" ${SH} ${PKGINSTALL} ${PKGNAME} PRE-INSTALL
@BATCH="${BATCH}" NMH_PREFIX="${NMH_PREFIX}" PKG_PREFIX="${PREFIX}" ${SH} ${PKGINSTALL} ${PKGNAME} PRE-INSTALL
do-install:
@cd ${WRKSRC} && make install && make install-root
post-install:
@${INSTALL} -c files/nullmail.sh ${PREFIX}/etc/rc.d/
@${INSTALL} -c files/remotes.sample ${PREFIX}/etc/nullmailer/
@${CAT} ${PKGMESSAGE} | ${SED} -e 's,%%PREFIX%%,${PREFIX},'
@${INSTALL_SCRIPT} -c files/nullmail.sh ${PREFIX}/etc/rc.d/
@${INSTALL_DATA} -c files/remotes.sample ${PREFIX}/etc/nullmailer/
@${CAT} ${.CURDIR}/pkg-message | ${SED} -e 's,%%PREFIX%%,${PREFIX},' > ${PKGMESSAGE}
@${CAT} ${PKGMESSAGE}
.include <bsd.port.mk>

View File

@ -0,0 +1,93 @@
#!/bin/sh
user=nullmail
group=nullmail
ask() {
local question default answer
question=$1
default=$2
if [ -z "${PACKAGE_BUILDING}" ]; then
read -p "${question} [${default}]? " answer
fi
if [ x${answer} = x ]; then
answer=${default}
fi
echo ${answer}
}
yesno() {
local dflt question answer
question=$1
dflt=$2
while :; do
answer=$(ask "${question}" "${dflt}")
case "${answer}" in
[Yy]*) return 0;;
[Nn]*) return 1;;
esac
echo "Please answer yes or no."
done
}
delete_account() {
local u g home
u=$1
g=$2
if yesno "Do you want me to remove group \"${g}\"" y; then
pw groupdel -n ${g}
echo "Done."
fi
if yesno "Do you want me to remove user \"${u}\"" y; then
eval home=~${u}
pw userdel -n ${u}
echo "Done."
if [ -d "${home}" ]; then
echo "Please remember to check if there's any unsent mail left"
echo "in the home directory \"${home}\""
fi
fi
}
if [ x"$2" = xDEINSTALL ]; then
if [ ! -n "$BATCH" ]; then
if /bin/ps -axc | /usr/bin/grep -q nullmailer-send; then
if yesno "There are some nullmailer processes running. Shall I kill them" y; then
${PKG_PREFIX}/etc/rc.d/nullmail.sh stop
sleep 2
else
echo "OK ... I hope you know what you are doing."
fi
fi
fi
fi
if [ x"$2" = xPOST-DEINSTALL ]; then
tmp="/etc/#nullmailer$$"
if [ ! -n "$BATCH" ]; then
if yesno "Do you want me to remove the nullmail logging from \"/etc/syslog.conf\"" y; then
sed "/nullmail\.log\$/d" /etc/syslog.conf >${tmp} || exit
chmod 644 ${tmp}
mv ${tmp} /etc/syslog.conf || exit
if [ -f /var/run/syslog.pid ]; then
echo "Giving syslogd a kick in the pants."
kill -HUP `cat /var/run/syslog.pid`
fi
fi
if yesno "Do you want me to remove the nullmail log entry from \"/etc/newsyslog.conf\"" y; then
sed "/nullmail\.log/d" /etc/newsyslog.conf >${tmp} || exit
chmod 644 ${tmp}
mv ${tmp} /etc/newsyslog.conf || exit
echo "Done."
fi
delete_account ${user} ${group}
fi
fi

View File

@ -37,7 +37,7 @@ if [ x"$2" = xPRE-INSTALL ]; then
echo "You already have a group \"${group}\", so I will use it."
else
echo "You need a group \"${group}\"."
if yesno "Would you like me to create it" y; then
if ([ -n "$BATCH" ] || yesno "Would you like me to create it" y); then
/usr/sbin/pw groupadd ${group} -g 522 -h - || exit
echo "Done."
else
@ -50,8 +50,8 @@ if [ x"$2" = xPRE-INSTALL ]; then
echo "You already have a user \"${user}\", so I will use it."
else
echo "You need a user \"${user}\"."
if yesno "Would you like me to create it" y; then
/usr/sbin/pw useradd ${user} -u 522 -g ${group} -h - -d ${PKG_PREFIX}/var/nullmailer \
if ([ -n "$BATCH" ] || yesno "Would you like me to create it" y); then
/usr/sbin/pw useradd ${user} -u 522 -g ${group} -h - -d ${NMH_PREFIX}/var/nullmailer \
-s /bin/sh -c "Nullmailer Mail System" || exit
echo "Done."
else
@ -60,4 +60,38 @@ if [ x"$2" = xPRE-INSTALL ]; then
fi
fi
if [ ! -n "$BATCH" ]; then
if grep -q "^[^#]*local5.*/var/log/nullmail.log" /etc/syslog.conf; then
echo -n "It looks like you already have some logging set up, so I "
echo "will use it."
elif yesno "Would you like me to set up the syslog logging" y; then
echo "Setting up nullmailer logging in \"/etc/syslog.conf\"."
cat <<EOF | ex -s
e /etc/syslog.conf
/\*\.\*/
-1
insert
local5.info /var/log/nullmail.log
.
wq
EOF
if [ ! -f /var/log/nullmail.log ]; then
echo "Creating \"/var/log/nullmail.log\"."
cp /dev/null /var/log/nullmail.log
fi
if [ -f /var/run/syslog.pid ]; then
echo "Giving syslogd a kick in the pants."
kill -HUP `cat /var/run/syslog.pid`
fi
echo "Adding nullmail log entry to \"/etc/newsyslog.conf\"."
cat <<EOF >>/etc/newsyslog.conf
/var/log/nullmail.log 644 7 * @T00 Z
EOF
echo "Done."
fi
fi
fi

View File

@ -1,15 +1,9 @@
==================================================================
1) Add the following line into your /etc/syslog.conf and
killall -1 syslogd:
local5.info /var/log/nullmail
NOTICE: This entry must be before
*.* /var/log/all.log
Please take %%PREFIX%%/etc/nullmailer/remotes.sample
as an example and edit your own
%%PREFIX%%/etc/nullmailer/remotes
2) Touch /var/log/nullmail as root.
Also man nullmailer-send(8) for more details
3) Add this line into your /etc/newsyslog.conf:
/var/log/nullmail 644 7 * @T00 Z
4) Edit %%PREFIX%%/etc/nullmailer/remotes
==================================================================

View File

@ -7,11 +7,22 @@ sbin/nullmailer-send
sbin/sendmail
etc/nullmailer/remotes.sample
etc/rc.d/nullmail.sh
@dirrm var/nullmailer/queue
@dirrm var/nullmailer/tmp
@unexec rm -f %D/var/nullmailer/trigger
@exec mkdir -p %%LOCALSTATEDIR%%/var/nullmailer/queue
@exec chmod 700 %%LOCALSTATEDIR%%/var/nullmailer/queue
@exec mkdir -p %%LOCALSTATEDIR%%/var/nullmailer/tmp
@exec chmod 700 %%LOCALSTATEDIR%%/var/nullmailer/tmp
@exec rm -f %%LOCALSTATEDIR%%/var/nullmailer/trigger
@exec mkfifo %%LOCALSTATEDIR%%/var/nullmailer/trigger
@exec chmod 600 %%LOCALSTATEDIR%%/var/nullmailer/trigger
@exec chown -R nullmail %%LOCALSTATEDIR%%/var/nullmailer/*
@exec chown nullmail %D/sbin/nullmailer-queue
@exec chmod u+s %D/sbin/nullmailer-queue
@exec chown nullmail %D/bin/mailq
@exec chmod u+s %D/bin/mailq
%%LOCALSTATEDIR_RM%%var/nullmailer/queue
%%LOCALSTATEDIR_RM%%var/nullmailer/tmp
@unexec rm -f %%LOCALSTATEDIR%%/var/nullmailer/trigger
@dirrm etc/nullmailer
@dirrm var/nullmailer
@unexec echo "Warning: If you will *NOT* use nullmailer anymore, please remove"
@unexec echo " 1) nullmail user and its group."
@unexec echo " 2) its relative entry in /etc/syslog.conf and /etc/newsyslog.conf"
%%LOCALSTATEDIR_RM%%var/nullmailer
%%LOCALSTATEDIR_RM%%var
@unexec if [ -n "$BATCH" ]; then echo "Warning: In batch mode, I will do 'rmuser -y nullmail'"; rmuser -y nullmail; fi