- Use USERS and GROUPS
- Use @stopdaemon PR: ports/157606 Approved by: rene (mentor, implicit), Attila Nagy <bra@fsn.hu> (maintainer)
This commit is contained in:
parent
cf7487013e
commit
94d06f4efb
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=277125
4 changed files with 7 additions and 160 deletions
|
@ -51,10 +51,8 @@ PORTDOCS= *
|
|||
PORTEXAMPLES= *
|
||||
.endif
|
||||
|
||||
DOVECOT_UID?= 143
|
||||
DOVECOT_GID?= 143
|
||||
DOVENULL_UID?= 144
|
||||
DOVENULL_GID?= 144
|
||||
USERS= ${PORTNAME} dovenull
|
||||
GROUPS= ${USERS}
|
||||
|
||||
PROTOCOLS= imap pop3
|
||||
|
||||
|
@ -159,8 +157,8 @@ CONFIGURE_ARGS+=--without-sqlite
|
|||
PLIST_SUB+= SQL="@comment "
|
||||
.endif
|
||||
|
||||
SUB_LIST= REQUIRE="${_REQUIRE}" DOVECOT_UID=${DOVECOT_UID} DOVECOT_GID=${DOVECOT_GID} DOVENULL_UID=${DOVENULL_UID} DOVENULL_GID=${DOVENULL_GID}
|
||||
SUB_FILES= pkg-install pkg-deinstall pkg-message
|
||||
SUB_LIST= REQUIRE="${_REQUIRE}"
|
||||
SUB_FILES= pkg-deinstall pkg-message
|
||||
|
||||
MAN1= deliver.1 \
|
||||
doveadm-altmove.1 \
|
||||
|
@ -205,9 +203,6 @@ post-patch:
|
|||
' ${WRKSRC}/src/auth/mech-gssapi.c ${WRKSRC}/configure
|
||||
.endif
|
||||
|
||||
pre-su-install:
|
||||
@${SETENV} ${SCRIPTS_ENV} ${SH} ${PKGINSTALL} ${PKGNAME} PRE-INSTALL
|
||||
|
||||
post-install:
|
||||
.if !defined(NOPORTEXAMPLES)
|
||||
@${MKDIR} ${EXAMPLESDIR}
|
||||
|
@ -216,7 +211,6 @@ post-install:
|
|||
.if !defined(NOPORTDOCS)
|
||||
cd ${WRKSRC} && ${INSTALL_DATA} ${DOCS} ${DOCSDIR}
|
||||
.endif
|
||||
@${SETENV} ${SCRIPTS_ENV} ${SH} ${PKGINSTALL} ${PKGNAME} POST-INSTALL
|
||||
@${CAT} ${PKGMESSAGE}
|
||||
|
||||
.include <bsd.port.post.mk>
|
||||
|
|
|
@ -1,65 +1,10 @@
|
|||
#! /bin/sh
|
||||
#
|
||||
# $FreeBSD: /tmp/pcvs/ports/mail/dovecot2/files/pkg-deinstall.in,v 1.1 2010-11-27 05:53:35 glewis Exp $
|
||||
# $FreeBSD: /tmp/pcvs/ports/mail/dovecot2/files/pkg-deinstall.in,v 1.2 2011-07-05 16:35:02 crees Exp $
|
||||
#
|
||||
|
||||
PKG_PREFIX=${PKG_PREFIX:=/usr/local}
|
||||
|
||||
ask() {
|
||||
local question default answer
|
||||
|
||||
question=$1
|
||||
default=$2
|
||||
if [ -z "${PACKAGE_BUILDING}" -a -z "${BATCH}" ]; then
|
||||
read -p "${question} [${default}]? " answer
|
||||
fi
|
||||
echo ${answer:-${default}}
|
||||
}
|
||||
|
||||
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
|
||||
}
|
||||
|
||||
delete_account() {
|
||||
local port user uid group gid
|
||||
|
||||
port=$1
|
||||
user=${2%:*}
|
||||
uid=${2#*:}
|
||||
group=${3%:*}
|
||||
gid=${3#*:}
|
||||
|
||||
echo "If you do not intend to reinstall ${port}, you should manually"
|
||||
echo "remove user '${user}' (uid='${uid}') and group '${group}' (gid='${gid}')."
|
||||
}
|
||||
|
||||
case $2 in
|
||||
|
||||
DEINSTALL)
|
||||
if ps -axc | grep -qw dovecot; then
|
||||
if yesno "Dovecot is still running. Shall I stop it?" y; then
|
||||
${PKG_PREFIX}/etc/rc.d/dovecot stop
|
||||
sleep 2
|
||||
else
|
||||
echo "OK ... I hope you know what you are doing."
|
||||
fi
|
||||
fi
|
||||
|
||||
delete_account Dovecot dovecot:${DOVECOT_UID:-%%DOVECOT_UID%%} dovecot:${DOVECOT_GID:-%%DOVECOT_GID%%}
|
||||
delete_account Dovecot dovenull:${DOVENULL_UID:-%%DOVENULL_UID%%} dovenull:${DOVENULL_GID:-%%DOVENULL_GID%%}
|
||||
|
||||
echo "Also manually 'rm -rf /var/db/dovecot' if anything was stored there."
|
||||
echo "If you don't intend on reinstalling this port you should manually 'rm -rf /var/db/dovecot' if anything was stored there."
|
||||
;;
|
||||
|
||||
esac
|
||||
|
|
|
@ -1,93 +0,0 @@
|
|||
#!/bin/sh
|
||||
#
|
||||
# $FreeBSD: /tmp/pcvs/ports/mail/dovecot2/files/Attic/pkg-install.in,v 1.1 2010-11-27 05:53:35 glewis Exp $
|
||||
#
|
||||
|
||||
PKG_PREFIX=${PKG_PREFIX:=/usr/local}
|
||||
|
||||
ask() {
|
||||
local question default answer
|
||||
|
||||
question=$1
|
||||
default=$2
|
||||
if [ -z "${PACKAGE_BUILDING}" -a -z "${BATCH}" ]; then
|
||||
read -p "${question} [${default}]? " answer
|
||||
fi
|
||||
echo ${answer:-${default}}
|
||||
}
|
||||
|
||||
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
|
||||
}
|
||||
|
||||
create_account() {
|
||||
local port user uid group gid gcos home shell
|
||||
|
||||
port=$1
|
||||
user=${2%:*}
|
||||
uid=${2#*:}
|
||||
group=${3%:*}
|
||||
gid=${3#*:}
|
||||
gcos=$4
|
||||
home=$5
|
||||
shell=$6
|
||||
|
||||
pw_user_uid=$(pw usershow -n "${user}" 2>/dev/null | cut -d: -f3)
|
||||
pw_uid_user=$(pw usershow -u "${uid}" 2>/dev/null | cut -d: -f1)
|
||||
pw_group_gid=$(pw groupshow -n "${group}" 2>/dev/null | cut -d: -f3)
|
||||
pw_gid_group=$(pw groupshow -g "${gid}" 2>/dev/null | cut -d: -f1)
|
||||
|
||||
if [ -z "${pw_group_gid}" -a -z "${pw_gid_group}" ]; then
|
||||
echo "You need a ${group} group; creating it..."
|
||||
pw groupadd "${group}" -g "${gid}" || exit
|
||||
echo "Done."
|
||||
elif [ "${gid}" = "${pw_group_gid}" -a "${group}" = "${pw_gid_group}" ]; then
|
||||
echo "Using existing ${group} group."
|
||||
else
|
||||
echo "${port} has reserved the groupname '${group}' and gid '${gid}':"
|
||||
[ -n "${pw_group_gid}" -a "${gid}" != "${pw_group_gid}" ] \
|
||||
&& echo "ERROR: groupname '${group}' already in use by gid '${pw_group_gid}'"
|
||||
[ -n "${pw_gid_group}" -a "${group}" != "${pw_gid_group}" ] \
|
||||
&& echo "ERROR: gid '${gid}' already in use by group '${pw_gid_group}'"
|
||||
echo "Please resolve these issues and try again:"
|
||||
echo "Either remove the conflicting group or if you wish to continue using a legacy group override DOVECOT_GID."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ -z "${pw_user_uid}" -a -z "${pw_uid_user}" ]; then
|
||||
echo "You need a ${user} user; creating it..."
|
||||
pw useradd "${user}" -u "${uid}" -g "${group}" -c "${gcos}" -d "${home}" -s "${shell}"
|
||||
echo "Done."
|
||||
elif [ "${uid}" = "${pw_user_uid}" -a "${user}" = "${pw_uid_user}" ]; then
|
||||
echo "Using existing ${user} user."
|
||||
else
|
||||
echo "${port} has reserved the username '${user}' and uid '${uid}':"
|
||||
[ -n "${pw_user_uid}" -a "${uid}" != "${pw_user_uid}" ] \
|
||||
&& echo "ERROR: username '${user}' already in use by uid '${pw_user_uid}'"
|
||||
[ -n "${pw_uid_user}" -a "${user}" != "${pw_uid_user}" ] \
|
||||
&& echo "ERROR: uid '${uid}' already in use by user '${pw_uid_user}'"
|
||||
echo "Please resolve these issues and try again:"
|
||||
echo "Either remove the conflicting user or if you wish to continue using a legacy user override DOVECOT_UID."
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
case $2 in
|
||||
|
||||
PRE-INSTALL)
|
||||
create_account Dovecot dovecot:${DOVECOT_UID:-%%DOVECOT_UID%%} dovecot:${DOVECOT_GID:-%%DOVECOT_GID%%} "Dovecot User" /var/empty /usr/sbin/nologin
|
||||
create_account Dovecot dovenull:${DOVENULL_UID:-%%DOVENULL_UID%%} dovenull:${DOVENULL_GID:-%%DOVENULL_GID%%} "Dovecot login User" /var/empty /usr/sbin/nologin
|
||||
;;
|
||||
|
||||
esac
|
|
@ -1,3 +1,4 @@
|
|||
@stopdaemon dovecot
|
||||
bin/doveadm
|
||||
bin/doveconf
|
||||
bin/dsync
|
||||
|
|
Loading…
Reference in a new issue