openbsd-ports/mail/qmail/pkg/INSTALL
2000-09-15 12:08:20 +00:00

153 lines
3.9 KiB
Plaintext

#!/bin/sh
# $OpenBSD: INSTALL,v 1.4 2000/09/15 12:08:20 camield Exp $
#
# Written by Camiel Dobbelaar <cd@sentia.nl>, 2000
# This file is in the public domain.
PATH=/bin:/usr/bin:/sbin:/usr/sbin
QMAILDIR=${PREFIX:-$PKG_PREFIX}
NOSHELL=/sbin/nologin
# These may clash with already installed uids/gids.
# They MUST be fixed though, because qmail hardwires them.
QMAILGID=2850
NOFILESGID=32750
ALIASUID=2849
QMAILDUID=2850
QMAILLUID=2851
QMAILPUID=2852
QMAILQUID=2853
QMAILRUID=2854
QMAILSUID=2855
confirm() {
set -o noglob
echo -n "[Y] "
read resp
case "$resp" in
y*|Y*|"")
return
;;
*)
echo "Aborting"
exit 1
;;
esac
set +o noglob
}
create_group()
{
GROUP=$1
GID=$2
echo -n "Checking group '$GROUP' with gid '$GID': "
groupinfo -e $GROUP && {
echo "OK, group already exists, but gid not checked." >&2
return
}
groupinfo -e $GID && {
echo "ERR, gid taken." >&2
exit 1
}
echo -n "group does not exist. Create? "
confirm
groupadd -g $GID $GROUP || {
echo "ERR, cannot append to /etc/group" >&2
exit 1
}
echo "OK, created succesfully." >&2
return
}
create_user()
{
NAME=$1; UID=$2; GID=$3
GECOS=$4; HOME=$5; SHELL=$6
echo -n "Checking user '$NAME' with uid '$UID': "
userinfo -e $NAME && {
echo "OK, user already exists, but uid not checked." >&2
return
}
userinfo -e $UID && {
echo "ERR, uid taken." >&2
exit 1
}
echo -n "user does not exist. Create? "
confirm
useradd -c $GECOS -d $HOME -g $GID -s $SHELL -u $UID $NAME || {
echo "ERR, cannot add user to database" >&2
exit 1
}
echo "OK, created successfully." >&2
return
}
do_advice()
{
echo "----------------"
echo "qmail is installed"
echo "----------------"
echo
echo "qmail does NOT automatically work yet at this point."
echo
echo "To activate qmail, please read $QMAILDIR/doc/INSTALL"
echo "Steps 1, 2, 3 and 5 have been done by this port/package."
echo "The config command from step 4 can be found in $QMAILDIR/setup"
echo
echo "It is recommended to use tcpserver instead of inetd for qmail-smtpd"
echo "and/or qmail-pop3d. It is installed as a dependency."
echo
echo "If you want to replace Sendmail on your system, be sure to look"
echo "at mailwrapper(8). Here's a sample /etc/mailer.conf:"
echo
echo "sendmail $QMAILDIR/bin/sendmail"
echo "send-mail $QMAILDIR/bin/sendmail"
echo "mailq $QMAILDIR/bin/qmail-qread"
echo " # you will need fastforward for newaliases to work"
echo "newaliases $QMAILDIR/bin/newaliases"
echo "hoststat /usr/bin/true"
echo "purgestat /usr/bin/true"
echo
echo "Enjoy qmail!"
}
do_aliases()
{
cd $QMAILDIR/alias
touch .qmail-postmaster .qmail-mailer-daemon .qmail-root
chmod 644 .qmail-postmaster .qmail-mailer-daemon .qmail-root
}
case $2 in
PRE-INSTALL)
create_group qmail $QMAILGID
create_group nofiles $NOFILESGID
create_user alias $ALIASUID $NOFILESGID qmail $QMAILDIR/alias $NOSHELL
create_user qmaild $QMAILDUID $NOFILESGID qmail $QMAILDIR $NOSHELL
create_user qmaill $QMAILLUID $NOFILESGID qmail $QMAILDIR $NOSHELL
create_user qmailp $QMAILPUID $NOFILESGID qmail $QMAILDIR $NOSHELL
create_user qmailq $QMAILQUID $QMAILGID qmail $QMAILDIR $NOSHELL
create_user qmailr $QMAILRUID $QMAILGID qmail $QMAILDIR $NOSHELL
create_user qmails $QMAILSUID $QMAILGID qmail $QMAILDIR $NOSHELL
;;
POST-INSTALL)
# Install will abort because it cannot install all files.
# It will make qmail/queue though, which is what we want.
sh -c "$QMAILDIR/setup/install >/dev/null 2>&1"
do_aliases
do_advice
;;
*)
echo "Usage: `basename $0` distname <PRE-INSTALL|POST-INSTALL>" >&2
exit 1
;;
esac
exit 0