773e46a4dc
The current sendmail port (mail/sendmail) does not allow to build build sendmail with smtps support (SSL but not STARTTLS). This mode is required by some MUA (ex. the only way to enable encryption in MS Outlook Express is to use smtps). PR: 51029 Submitted by: and@rsu.ru
260 lines
8.1 KiB
Makefile
260 lines
8.1 KiB
Makefile
# New ports collection makefile for: sendmail
|
|
# Date created: 20 Apr 2000
|
|
# Whom: dirk.meyer@dinoex.sub.org
|
|
#
|
|
# $FreeBSD$
|
|
#
|
|
|
|
PORTNAME= sendmail
|
|
PORTVERSION= 8.12.9
|
|
CATEGORIES= mail ipv6
|
|
MASTER_SITES= ftp://ftp.sendmail.org/pub/sendmail/ \
|
|
${MASTER_SITE_RINGSERVER:S,%SUBDIR%,net/mail/sendmail/&,}
|
|
DISTNAME= ${PORTNAME}.${PORTVERSION}
|
|
|
|
MAINTAINER= dinoex@FreeBSD.org
|
|
COMMENT= Reliable, highly configurable mail transfer agent with utilities
|
|
|
|
WRKSRC= ${WRKDIR}/${PORTNAME}-${PORTVERSION}
|
|
WCONF= ${WRKSRC}/devtools/Site
|
|
SITE= ${FILESDIR}/site.config.m4.pre4
|
|
PLIST= ${WRKDIR}/.PLIST.more
|
|
DOCS= KNOWNBUGS LICENSE PGPKEYS README RELEASE_NOTES \
|
|
sendmail/TRACEFLAGS sendmail/SECURITY sendmail/TUNING
|
|
MAN1= mailq.1 newaliases.1 vacation.1
|
|
MAN5= aliases.5
|
|
MAN8= sendmail.8 mailstats.8 makemap.8 praliases.8 smrsh.8 \
|
|
mail.local.8 rmail.8 editmap.8
|
|
SENDMAIL= ${PREFIX}/sbin/sendmail
|
|
PLIST_SUB+= PREFIX=${PREFIX:S=${PREFIX}/==}
|
|
|
|
# Options to define Features:
|
|
# SENDMAIL_WITHOUT_IPV6=yes
|
|
# SENDMAIL_WITHOUT_MILTER=yes
|
|
# SENDMAIL_WITH_TLS=yes
|
|
# SENDMAIL_WITH_SMTPS=yes
|
|
# SENDMAIL_WITH_SASL=yes
|
|
# SENDMAIL_WITH_SASL2=yes
|
|
# SENDMAIL_WITH_LDAP=yes
|
|
# SENDMAIL_WITH_PICKY_HELO_CHECK=yes
|
|
|
|
.if defined(SENDMAIL_WITH_SMTPS)
|
|
.if !defined(SENDMAIL_WITH_TLS) && !defined(WITH_TLS)
|
|
.BEGIN:
|
|
@${ECHO_CMD} "DEPENDENCY NOTE: SENDMAIL_WITH_TLS will be enabled to support SENDMAIL_WITH_SMTPS"
|
|
SENDMAIL_WITH_TLS=yes
|
|
.endif
|
|
.endif
|
|
|
|
.if defined(SENDMAIL_WITH_LDAP)
|
|
PKGNAMESUFFIX?= -ldap
|
|
LIB_DEPENDS+= ldap.2:${PORTSDIR}/net/openldap20
|
|
LIB_DEPENDS+= lber.2:${PORTSDIR}/net/openldap20
|
|
.endif
|
|
.if defined(SENDMAIL_WITH_SASL)
|
|
LIB_DEPENDS+= sasl.8:${PORTSDIR}/security/cyrus-sasl
|
|
PKGNAMESUFFIX?= -sasl
|
|
.endif
|
|
.if defined(SENDMAIL_WITH_SASL2)
|
|
LIB_DEPENDS+= sasl2.2:${PORTSDIR}/security/cyrus-sasl2
|
|
PKGNAMESUFFIX?= -sasl2
|
|
.endif
|
|
.if defined(SENDMAIL_WITH_TLS) || defined(WITH_TLS)
|
|
PKGNAMESUFFIX?= -tls
|
|
.endif
|
|
|
|
# Build site.config.m4
|
|
.if exists(${DESTDIR}/etc/mail/mailer.conf)
|
|
SITE+= ${FILESDIR}/site.config.m4
|
|
.if ! defined(SENDMAIL_WITHOUT_IPV6)
|
|
SITE+= ${FILESDIR}/site.config.m4.ipv6
|
|
.endif
|
|
.endif
|
|
.if defined(SENDMAIL_WITH_SASL)
|
|
SITE+= ${FILESDIR}/site.config.m4.sasl
|
|
.endif
|
|
.if defined(SENDMAIL_WITH_SASL2)
|
|
SITE+= ${FILESDIR}/site.config.m4.sasl2
|
|
.endif
|
|
.if defined(SENDMAIL_WITH_LDAP)
|
|
SITE+= ${FILESDIR}/site.config.m4.ldap
|
|
.endif
|
|
.if ! defined(SENDMAIL_WITHOUT_MILTER)
|
|
SITE+= ${FILESDIR}/site.config.m4.milter
|
|
.endif
|
|
|
|
# install directly if no mailwrapper support
|
|
.if ! exists(${DESTDIR}/etc/mail/mailer.conf)
|
|
PREFIX?= ${DESTDIR}/usr
|
|
MANPREFIX?= ${DESTDIR}/usr/share
|
|
PLIST_SUB+= ETCPORT="@comment "
|
|
.else
|
|
PLIST_SUB+= ETCPORT=""
|
|
.endif
|
|
|
|
post-extract:
|
|
@${SED} -e "s=%%PREFIX%%=${PREFIX}=" ${FILESDIR}/sm-client.sh \
|
|
> ${WRKSRC}/sm-client.sh
|
|
@${SED} -e "s=%%PREFIX%%=${PREFIX}=" ${FILESDIR}/sendmail.sh \
|
|
> ${WRKSRC}/sendmail.sh
|
|
|
|
do-configure:
|
|
@${MV} ${WRKSRC}/devtools/OS/FreeBSD ${WRKSRC}/devtools/OS/FreeBSD.sed
|
|
${SED} -e "s;\`-pthread\';\`${PTHREAD_LIBS}\';" \
|
|
-e "s;\`-O\';\`${CFLAGS}\';" \
|
|
${WRKSRC}/devtools/OS/FreeBSD.sed \
|
|
> ${WRKSRC}/devtools/OS/FreeBSD
|
|
${SED} -e "s=%%PREFIX%%=${PREFIX}=g" \
|
|
-e "s=%%LOCALBASE%%=${LOCALBASE}=g" \
|
|
${SITE} > ${WCONF}/site.config.m4
|
|
.if defined(SENDMAIL_WITH_PICKY_HELO_CHECK)
|
|
${ECHO_CMD} \
|
|
'APPENDDEF(`conf_sendmail_ENVDEF'\'', `-DPICKY_HELO_CHECK'\'')' \
|
|
>> ${WCONF}/site.config.m4
|
|
.endif
|
|
|
|
post-build:
|
|
( cd ${WRKSRC}/doc/op && ${MAKE} op.txt )
|
|
.if ! defined(SENDMAIL_WITHOUT_MILTER)
|
|
( cd ${WRKSRC}/libmilter && ${MAKE} )
|
|
.endif
|
|
|
|
pre-install:
|
|
@${CAT} ${PKGDIR}/pkg-plist >${PLIST}
|
|
.if ! defined(SENDMAIL_WITHOUT_MILTER)
|
|
@${CAT} ${FILESDIR}/pkg-milter >>${PLIST}
|
|
.endif
|
|
if ! pw groupshow smmsp; then pw groupadd smmsp -g 25; fi
|
|
if ! pw usershow smmsp; then pw useradd smmsp -g smmsp -u 25 \
|
|
-h - -d /nonexistent -s /nonexistent -c "Sendmail Queue"; fi
|
|
.if !defined(NOPORTDOCS)
|
|
@cd ${WRKSRC} && find cf -type f | \
|
|
${AWK} '{print "share/sendmail/" $$1}' >>${PLIST}
|
|
@cd ${WRKSRC} && find -d cf -type d | \
|
|
${AWK} '{print "@dirrm share/sendmail/" $$1}' >>${PLIST}
|
|
@${ECHO_CMD} "@dirrm share/sendmail" >>${PLIST}
|
|
.for i in ${DOCS}
|
|
@${ECHO_CMD} `${BASENAME} ${i}` | \
|
|
${AWK} '{print "share/doc/sendmail/" $$1}' >>${PLIST}
|
|
.endfor
|
|
@${ECHO_CMD} "@dirrm share/doc/sendmail" >>${PLIST}
|
|
.endif
|
|
|
|
# We want mail.local and rmail for our system.
|
|
# the build install catmans only, we have to fix this.
|
|
post-install:
|
|
( cd ${WRKSRC}/mail.local && ${MAKE} force-install )
|
|
( cd ${WRKSRC}/rmail && ${MAKE} force-install )
|
|
.if ! defined(SENDMAIL_WITHOUT_MILTER)
|
|
${MKDIR} ${PREFIX}/include/libmilter
|
|
${INSTALL_DATA} ${WRKSRC}/include/libmilter/mfapi.h \
|
|
${WRKSRC}/include/libmilter/mfdef.h \
|
|
${PREFIX}/include/libmilter/
|
|
${INSTALL_DATA} \
|
|
${WRKSRC}/obj.`${WRKSRC}/devtools/bin/Build -A`/libmilter/libmilter.a \
|
|
${PREFIX}/lib/
|
|
.endif
|
|
.if exists(${DESTDIR}/etc/mail/mailer.conf)
|
|
${INSTALL_SCRIPT} ${WRKSRC}/sm-client.sh \
|
|
${LOCALBASE}/etc/rc.d/sm-client.sh.sample
|
|
${INSTALL_SCRIPT} ${WRKSRC}/sendmail.sh \
|
|
${LOCALBASE}/etc/rc.d/sendmail.sh.sample
|
|
.endif
|
|
${CHOWN} smmsp:smmsp /var/spool/clientmqueue
|
|
${CHMOD} 770 /var/spool/clientmqueue
|
|
.for i in ${MAN8}
|
|
@${RM} -f ${MANPREFIX}/man/cat8/${i} ${MANPREFIX}/man/cat8/${i}.gz
|
|
${INSTALL_MAN} ${WRKSRC}/*/${i} ${MANPREFIX}/man/man8
|
|
.endfor
|
|
.for i in ${MAN5}
|
|
@${RM} -f ${MANPREFIX}/man/cat5/${i} ${MANPREFIX}/man/cat5/${i}.gz
|
|
${INSTALL_MAN} ${WRKSRC}/*/${i} ${MANPREFIX}/man/man5
|
|
.endfor
|
|
.for i in ${MAN1}
|
|
@${RM} -f ${MANPREFIX}/man/cat1/${i} ${MANPREFIX}/man/cat1/${i}.gz
|
|
${INSTALL_MAN} ${WRKSRC}/*/${i} ${MANPREFIX}/man/man1
|
|
.endfor
|
|
.if !defined(NOPORTDOCS)
|
|
${MKDIR} ${PREFIX}/share/sendmail ${DOCSDIR}
|
|
@${TAR} -C ${WRKSRC} -cf - cf | \
|
|
${TAR} -C ${PREFIX}/share/sendmail -xf -
|
|
@cd ${WRKSRC} && ${INSTALL_DATA} ${DOCS} ${DOCSDIR}/
|
|
${INSTALL_DATA} ${WRKSRC}/doc/op/op.ps ${DOCSDIR}/op.ps
|
|
${INSTALL_DATA} ${WRKSRC}/doc/op/op.txt ${DOCSDIR}/op.txt
|
|
${INSTALL_DATA} ${WRKSRC}/devtools/README ${DOCSDIR}/DEVTOOLS
|
|
${INSTALL_DATA} ${WRKSRC}/sendmail/README ${DOCSDIR}/SENDMAIL
|
|
${INSTALL_DATA} ${WRKSRC}/mail.local/README ${DOCSDIR}/MAIL.LOCAL
|
|
${INSTALL_DATA} ${WRKSRC}/smrsh/README ${DOCSDIR}/SMRSH
|
|
.if ! defined(SENDMAIL_WITHOUT_MILTER)
|
|
${INSTALL_DATA} ${WRKSRC}/libmilter/README ${DOCSDIR}/MILTER
|
|
${MKDIR} ${DOCSDIR}/libmilter
|
|
@${TAR} -C ${WRKSRC}/libmilter/docs -cf - . | \
|
|
${TAR} -C ${DOCSDIR}/libmilter -xf -
|
|
.endif
|
|
.endif
|
|
.if exists(${DESTDIR}/etc/mail/mailer.conf)
|
|
@${SED} s!%%PREFIX%%!${PREFIX}!g ${PKGMESSAGE}
|
|
|
|
mailer.conf:
|
|
@${SED} \
|
|
-e "s=^sendmail[ ]*/.*$$=sendmail ${SENDMAIL}=" \
|
|
-e "s=^send-mail[ ]*/.*$$=send-mail ${SENDMAIL}=" \
|
|
-e "s=^mailq[ ]*/.*$$=mailq ${SENDMAIL}=" \
|
|
-e "s=^newaliases[ ]*/.*$$=newaliases ${SENDMAIL}=" \
|
|
-e "s=^hoststat[ ]*/.*$$=hoststat ${SENDMAIL}=" \
|
|
-e "s=^purgestat[ ]*/.*$$=purgestat ${SENDMAIL}=" \
|
|
${DESTDIR}/etc/mail/mailer.conf > ${DESTDIR}/etc/mail/mailer.conf.new
|
|
${MV} ${DESTDIR}/etc/mail/mailer.conf.new \
|
|
${DESTDIR}/etc/mail/mailer.conf
|
|
.endif
|
|
|
|
# create sumbit.cf on older systems
|
|
#
|
|
submit.cf: ${DESTDIR}/etc/mail/submit.cf
|
|
|
|
${DESTDIR}/etc/mail/submit.mc:
|
|
${INSTALL_DATA} ${PREFIX}/share/sendmail/cf/cf/submit.mc \
|
|
${DESTDIR}/etc/mail/submit.mc
|
|
|
|
${DESTDIR}/etc/mail/submit.cf: ${DESTDIR}/etc/mail/submit.mc
|
|
@( cd ${DESTDIR}/etc/mail && ${MAKE} \
|
|
SENDMAIL_CF_DIR=${PREFIX}/share/sendmail/cf \
|
|
SENDMAIL_MC=submit )
|
|
|
|
# create basics for smtp-auth
|
|
#
|
|
install-sasldb:
|
|
@${ECHO_CMD} "# Links:"
|
|
@${ECHO_CMD} "#"
|
|
@${ECHO_CMD} "# http://www.sendmail.org/~gshapiro/"
|
|
@${ECHO_CMD} "# http://www.sendmail.org/~ca/email/auth.html"
|
|
@${ECHO_CMD} "# http://www.asp.ogi.edu/people/paja/linux/sendmail/"
|
|
@${ECHO_CMD} "# http://blue-labs.org/clue/sendmail.php"
|
|
@${ECHO_CMD} "# http://www.digitalanswers.org/sendmail/"
|
|
@${ECHO_CMD} "#"
|
|
|
|
# create certificates for TLS/SSL
|
|
#
|
|
tls-install:
|
|
${SETENV} DESTDIR=${DESTDIR} FILESDIR=${FILESDIR} \
|
|
${SH} ${FILESDIR}/tls-install.sh
|
|
|
|
.include <bsd.port.pre.mk>
|
|
|
|
.if defined(SENDMAIL_WITH_TLS) || defined(WITH_TLS)
|
|
.include "${PORTSDIR}/security/openssl/bsd.openssl.mk"
|
|
.if ! defined(WITH_OPENSSL_BASE)
|
|
SITE+= ${FILESDIR}/site.config.m4.ssl
|
|
.endif
|
|
SITE+= ${FILESDIR}/site.config.m4.tls
|
|
.if defined(SENDMAIL_WITH_SMTPS)
|
|
SITE+= ${FILESDIR}/site.config.m4.smtps
|
|
.endif
|
|
.endif
|
|
|
|
.if exists(${FILESDIR}/site.config.m4.local)
|
|
SITE+= ${FILESDIR}/site.config.m4.local
|
|
.endif
|
|
|
|
.include <bsd.port.post.mk>
|