aboutsummaryrefslogtreecommitdiffstats
path: root/mail/cyrus-imapd23/pkg-install
diff options
context:
space:
mode:
Diffstat (limited to 'mail/cyrus-imapd23/pkg-install')
-rw-r--r--mail/cyrus-imapd23/pkg-install38
1 files changed, 36 insertions, 2 deletions
diff --git a/mail/cyrus-imapd23/pkg-install b/mail/cyrus-imapd23/pkg-install
index 1b0ea1ddecc8..93e91ebc4dae 100644
--- a/mail/cyrus-imapd23/pkg-install
+++ b/mail/cyrus-imapd23/pkg-install
@@ -27,13 +27,18 @@ create() {
gid=`pw show group cyrus 2>/dev/null | cut -d: -f3`
fi
+ if [ -x /sbin/nologin ]; then
+ shell=/sbin/nologin
+ else
+ shell=/nonexistent
+ fi
if ! pw show user cyrus -q >/dev/null; then
uid=60
while pw show user -u ${uid} -q >/dev/null; do
uid=`expr ${uid} + 1`
done
if ! pw add user cyrus -u ${uid} -g ${gid} -d "/nonexistent" \
- -c "the cyrus mail server" -s "/nonexistent" -p "*" \
+ -c "the cyrus mail server" -s "${shell}" -p "*" \
; then
e=$?
echo "*** Failed to add user \`cyrus'. Please add it manually."
@@ -42,7 +47,7 @@ create() {
echo "*** Added user \`cyrus' (id ${uid})"
else
if ! pw mod user cyrus -g ${gid} -d "/nonexistent" \
- -c "the cyrus mail server" -s "/nonexistent" -p "*" \
+ -c "the cyrus mail server" -s "${shell}" -p "*" \
; then
e=$?
echo "*** Failed to update user \`cyrus'."
@@ -55,8 +60,37 @@ create() {
fi
}
+
+checkfile() {
+ diff -bBqw $1 $1.dist >/dev/null 2>&1
+ case $? in
+ 0) # config file exists, but is the same
+ ;;
+ 1) # config file exists and differs
+ echo "** Make sure $1 is in sync with this version";
+ echo " of the port. See $1.dist for details.";
+ ;;
+ *) # no config file exists, copy it
+ install -c -m 644 $1.dist $1
+ ;;
+ esac
+}
+
+
case $2 in
PRE-INSTALL)
create
;;
+
+ POST-INSTALL)
+ cd ${PKG_PREFIX}
+ checkfile ${PKG_PREFIX}/etc/imapd.conf
+ if grep '^imap4' /etc/inetd.conf; then
+ echo "** Please check that your /etc/inetd.conf entry for \`imap4'"
+ echo " is suitable for the Cyrus IMAP server."
+ else
+ echo "** Please add an entry for the imap4 protocol to /etc/inetd.conf."
+ fi
+ echo " An example can be found in ${PKG_PREFIX}/etc/inetd.conf.cyrus."
+ ;;
esac