diff --git a/mail/dk-milter/Makefile b/mail/dk-milter/Makefile index 8108bb90b4d2..a441e5fec925 100644 --- a/mail/dk-milter/Makefile +++ b/mail/dk-milter/Makefile @@ -1,83 +1,95 @@ # New ports collection makefile for: dk-milter # Date created: 22 May 2005 # Whom: ache # # $FreeBSD$ # PORTNAME= dk-milter PORTVERSION= 0.4.1 PORTREVISION= 2 CATEGORIES= mail MASTER_SITES= ${MASTER_SITE_SOURCEFORGE} MASTER_SITE_SUBDIR= dk-milter MAINTAINER= ports@FreeBSD.org COMMENT= Domainkeys milter for Sendmail USE_RC_SUBR= milter-dk.sh -.if defined(WITH_POSTFIX_MILTER) +.if defined(WITH_POSTFIX_MILTER) || defined(WITH_POSTFIX) || defined(WITH_POSTFIX_CURRENT) SENDMAIL_MILTER_IN_BASE= yes -RUN_DEPENDS+= postfix>=2[3-9]*:${PORTSDIR}/mail/postfix PKGMESSAGE= pkg-message.postfix + +.if defined(WITH_POSTFIX_CURRENT) +RUN_DEPENDS+= ${LOCALBASE}/libexec/postfix/smtpd:${PORTSDIR}/mail/postfix-current +.else +RUN_DEPENDS+= ${LOCALBASE}/libexec/postfix/smtpd:${PORTSDIR}/mail/postfix +.endif .endif .if !defined(SENDMAIL_MILTER_IN_BASE) .if defined(SENDMAIL_WITH_SHARED_MILTER) LIB_DEPENDS+= milter.3:${PORTSDIR}/mail/${SENDMAIL_MILTER_PORT} .else BUILD_DEPENDS+= ${LOCALBASE}/lib/libmilter.a:${PORTSDIR}/mail/${SENDMAIL_MILTER_PORT} .endif .endif SENDMAIL_MILTER_PORT?= sendmail SUB_FILES= milter-dk.sh WCONF= ${WRKSRC}/devtools/Site MAN8= dk-filter.8 DOCSFILES= FEATURES INSTALL KNOWNBUGS LICENSE README RELEASE_NOTES \ dk-filter/autorespond.csh SITE+= ${FILESDIR}/site.config.m4 .if !defined(SENDMAIL_MILTER_IN_BASE) SITE+= ${FILESDIR}/site.config.m4.milter .endif .include +# .sh suffix is stripped in recent releases. +.if (${OSVERSION} >= 700007 || ( ${OSVERSION} < 700000 && ${OSVERSION} >= 600101 )) +SUB_LIST= "RC_SCRIPT=${PREFIX}/etc/rc.d/${USE_RC_SUBR:S/.sh$//}" +.else +SUB_LIST= "RC_SCRIPT=${PREFIX}/etc/rc.d/${USE_RC_SUBR}" +.endif + .if defined(SENDMAIL_WITHOUT_MILTER) pre-fetch: @${ECHO_MSG} @${ECHO_MSG} You must unset variable SENDMAIL_WITHOUT_MILTER, @${ECHO_MSG} and rebuild sendmail in the ports @${FALSE} .endif pre-configure: ${REINPLACE_CMD} -e 's|-pthread|${PTHREAD_LIBS}|' \ -e 's|-D_THREAD_SAFE|${PTHREAD_CFLAGS}|' \ -e 's|%%LOCALBASE%%|${LOCALBASE}|g' \ -e "s|\`-O'|\`${CFLAGS}'|g" \ ${WRKSRC}/devtools/OS/FreeBSD ${SED} -e "s|%%PREFIX%%|${PREFIX}|g" \ -e "s|%%LOCALBASE%%|${LOCALBASE}|g" \ ${SITE} > ${WCONF}/site.config.m4 post-install: -${STRIP_CMD} ${PREFIX}/libexec/dk-filter ${INSTALL_SCRIPT} ${WRKSRC}/dk-filter/gentxt.csh \ ${PREFIX}/sbin/gentxt .for i in ${MAN8} @${RM} -f ${MANPREFIX}/man/cat8/${i} ${MANPREFIX}/man/cat8/${i}.gz ${INSTALL_MAN} ${WRKSRC}/*/${i} ${MANPREFIX}/man/man8/ .endfor .if !defined(NOPORTDOCS) ${MKDIR} ${DOCSDIR} .for i in ${DOCSFILES} ${INSTALL_DATA} ${WRKSRC}/${i} ${DOCSDIR}/ .endfor .endif @${SH} ${PKGINSTALL} ${PKGNAME} POST-INSTALL @${CAT} ${PKGMESSAGE} .include diff --git a/mail/dk-milter/files/milter-dk.sh.in b/mail/dk-milter/files/milter-dk.sh.in index 25d103de5847..0f7ded3b6d7b 100644 --- a/mail/dk-milter/files/milter-dk.sh.in +++ b/mail/dk-milter/files/milter-dk.sh.in @@ -1,123 +1,123 @@ #!/bin/sh # # $FreeBSD$ # # PROVIDE: milter-dk # REQUIRE: DAEMON # BEFORE: mail # KEYWORD: shutdown # Define these milterdk_* variables in one of these files: # /etc/rc.conf # /etc/rc.conf.local # /etc/rc.conf.d/milterdk # # milterdk_enable (bool): Set to "NO" by default. # Set it to "YES" to enable dk-milter # milterdk_uid (str): Set username to run milter. # milterdk_profiles (list): Set to "" by default. # Define your profiles here. # milterdk_socket (str): Path to the milter socket. # milterdk_domain (str): Domainpart of From: in mails to sign. # milterdk_key (str): Path to the private key file to sign with. # milterdk_flags (str): Flags passed to start command. # milterdk_selector (str): Selector from which the receiving side should # obtain the public key. # # milterdk_${profile}_* : Variables per profile. # Sockets must be different from each other. # . %%RC_SUBR%% name="milterdk" rcvar=`set_rcvar` load_rc_config $name # DO NOT CHANGE THESE DEFAULT VALUES HERE # milterdk_enable=${milterdk_enable:-"NO"} milterdk_uid=${milterdk_uid:-"dkfilter"} milterdk_profiles=${milterdk_profiles:-} milterdk_socket=${milterdk_socket:-"local:/var/run/dk-filter"} milterdk_domain=${milterdk_domain:-"example.com"} milterdk_key=${milterdk_key:-"/var/db/domainkeys/default.key.pem"} milterdk_selector=${milterdk_selector:-"default"} ## milterdk_flags expands escaped variables later. milterdk_flags=${milterdk_flags:-'-d ${milterdk_domain} -c nofws -H -m MSA -s ${milterdk_key} -S ${milterdk_selector}'} start_precmd="dk_prepcmd" stop_postcmd="dk_postcmd" command="%%PREFIX%%/libexec/dk-filter" _piddir="/var/run/milterdk" pidfile="${_piddir}/pid" if [ -n "$2" ]; then profile="$2" if [ "x${milterdk_profiles}" != "x" ]; then pidfile="${_piddir}/${profile}.pid" eval milterdk_enable="\${milterdk_${profile}_enable:-${milterdk_enable}}" eval milterdk_socket="\${milterdk_${profile}_socket:-}" if [ "x${milterdk_socket}" = "x" ];then echo "You must define a socket (milterdk_${profile}_socket)" exit 1 fi eval milterdk_domain="\${milterdk_${profile}_domain:-${milterdk_domain}}" eval milterdk_key="\${milterdk_${profile}_key:-${milterdk_key}}" eval milterdk_flags="\${milterdk_${profile}_flags:-${milterdk_flags}}" command_args="-l -p ${milterdk_socket} -u ${milterdk_uid} -P ${pidfile}" else echo "$0: extra argument ignored" fi else if [ "x${milterdk_profiles}" != "x" -a "x$1" != "x" ]; then if [ "x$1" != "xrestart" ]; then for profile in ${milterdk_profiles}; do echo "===> milterdk profile: ${profile}" - $0 $1 ${profile} + %%RC_SCRIPT%% $1 ${profile} retcode="$?" if [ "0${retcode}" -ne 0 ]; then failed="${profile} (${retcode}) ${failed:-}" else success="${profile} ${success:-}" fi done exit 0 else restart_precmd="" fi else milterdk_flags=${milterdk_flags} command_args="-l -p ${milterdk_socket} -u ${milterdk_uid} -P ${pidfile}" fi fi dk_prepcmd () { if [ -S ${milterdk_socket##local:} ] ; then rm -f ${milterdk_socket##local:} elif [ -S ${milterdk_socket##unix:} ] ; then rm -f ${milterdk_socket##unix:} fi if [ -d ${_piddir} ] ; then return; fi mkdir -p ${_piddir} if [ -n "${milterdk_uid}" ] ; then chown ${milterdk_uid} ${_piddir} fi } dk_postcmd() { if [ -S ${milterdk_socket##local:} ] ; then rm -f ${milterdk_socket##local:} elif [ -S ${milterdk_socket##unix:} ] ; then rm -f ${milterdk_socket##unix:} fi # just if the directory is empty rmdir ${_piddir} > /dev/null 2>&1 } run_rc_command "$1"