freebsd-ports/mail/sendmail/Makefile
Dirk Meyer 773e46a4dc - Added new option SENDMAIL_WITH_SMTPS=yes
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
2003-04-16 14:39:22 +00:00

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>