freebsd-ports/security/cyrus-sasl/Makefile
Tilman Keskinoz aaeff08d60 * Fix some problems with building the Kerberos IV and 5 mechs.
* Made the port to optionally not build the mechs, define
WITHOUT_[ANONYMOUS,CRAM,DIGEST,LOGIN,OTP,GSSAPI,PLAIN].

* The Kerberos IV case is special, as we can use the base kerberos 4x
(<=5.0-RELEASE), or use the security/krb4 port.
    WITH_KERBEROS4 - use security/krb4 port
        if <=5.0-RELEASE, use krb4 port only if /usr/lib/libkrb.a
	doesn't exist
    WITHOUT_KERBEROS4 - disables using the base systems /usr/lib/libkrb.a
	(<=5.0), if it exists and MAKE_KERBEROS4 defined in /etc/make.conf

* Changed the combined rcNG/rcOG scripts, so that the defaults are at the top
of the rc.d script and not in an external file to the script.

PR:		51505
Submitted by:	maintainer
2003-05-09 12:41:21 +00:00

281 lines
8.4 KiB
Makefile

# New ports collection makefile for: cyrus-sasl
# Date created: Nov 1 1999
# Whom: hetzels@westbend.net
#
# $FreeBSD$
#
PORTNAME= cyrus-sasl
PORTVERSION= 1.5.28
PORTREVISION= 1
CATEGORIES= security ipv6
MASTER_SITES= ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/%SUBDIR%/ \
ftp://ftp.westbend.net/pub/cyrus-mail/%SUBDIR%/ \
ftp://ftp.hanse.de/sites/transit/mirror/ftp.andrew.cmu.edu/pub/cyrus-mail/ \
http://www.surf.org.uk/downloads/:ldap_mysql \
ftp://ftp.westbend.net/pub/cyrus-mail/%SUBDIR%/:ldap_mysql \
${MASTER_SITE_SOURCEFORGE:S/$/:ldap_mysql/} \
MASTER_SITE_SUBDIR= . OLD-VERSIONS/sasl cyrus-utils:ldap_mysql
DISTFILES= ${DISTNAME}${EXTRACT_SUFX} \
sasl-${PORTVERSION}-ldap-ssl-filter-mysql-patch.tgz:ldap_mysql
PATCH_SITES= ftp://ftp.westbend.net/pub/cyrus-mail/contrib/:apop \
http://www.imasy.or.jp/~ume/ipv6/
PATCHFILES= sasl_apop_patch.gz:apop \
${DISTNAME}-ipv6-${IPV6_VER}.diff.gz
MAINTAINER= hetzels@westbend.net
COMMENT= RFC 2222 SASL (Simple Authentication and Security Layer)
USE_SUBMAKE= yes
USE_OPENSSL= yes
INSTALLS_SHLIB= yes
# IPv6 Patch provided by Hajimu UMEMOTO <ume@mahoroba.org>
IPV6_VER= 20020106
MAN3= sasl.3 sasl_authorize_t.3 sasl_callbacks.3 sasl_checkpass.3 \
sasl_client_init.3 sasl_client_new.3 sasl_client_start.3 \
sasl_client_step.3 sasl_decode.3 sasl_done.3 sasl_encode.3 \
sasl_errstring.3 sasl_getopt_t.3 sasl_getpath_t.3 \
sasl_getprop.3 sasl_getsecret_t.3 sasl_getsimple_t.3 \
sasl_listmech.3 sasl_log_t.3 sasl_server_init.3 \
sasl_server_new.3 sasl_server_start.3 sasl_server_step.3 \
sasl_setprop.3 sasl_usererr.3
MAN8= sasldblistusers.8 saslpasswd.8 saslauthd1.8
USE_AUTOMAKE_VER=14
USE_LIBTOOL= YES
AUTOMAKE_ARGS= --add-missing --include-deps
CONFIGURE_ARGS= --sysconfdir=${PREFIX}/etc \
--with-plugindir=${PREFIX}/lib/sasl \
--with-dbpath=${PREFIX}/etc/sasldb \
--includedir=${PREFIX}/include/sasl1 \
--enable-static \
--with-saslauthd=/var/state/saslauthd1 \
--enable-auth-sasldb \
--with-pwcheck=/var/pwcheck \
--with-rc4=openssl
SCRIPTS_ENV= WRKDIRPREFIX="${WRKDIRPREFIX}" \
PREFIX="${PREFIX}" \
TOUCH="${TOUCH}" \
MKDIR="${MKDIR}" \
REALCURDIR="${.CURDIR}" \
WITH_DB3="${WITH_DB3}" \
WITH_JAVA="${WITH_JAVA}" \
WITH_MYSQL="${WITH_MYSQL}" \
WITH_LDAP1="${WITH_LDAP1}" \
WITH_LDAP2="${WITH_LDAP2}"
JAVADIR?= jdk1.3.1
JAVALIBDIR?= ${PREFIX}/${JAVADIR}/lib/i386/green_threads/
.if defined(WITHOUT_ANONYMOUS)
CONFIGURE_ARGS+= --disable-anon
ANON= "@comment "
.endif
.if defined(WITHOUT_CRAM)
CONFIGURE_ARGS+= --disable-cram
CRAM= "@comment "
.endif
.if defined(WITHOUT_DIGEST)
CONFIGURE_ARGS+= --disable-digest
DIGEST= "@comment "
.endif
# Outlook and Outlook Express requires the LOGIN mech
.if defined(WITHOUT_LOGIN)
CONFIGURE_ARGS+= --disable-login
LOGIN= "@comment "
.else
CONFIGURE_ARGS+= --enable-login
.endif
.if defined(WITHOUT_OTP)
CONFIGURE_ARGS+= --disable-otp
OTP= "@comment "
.endif
# Netscape requires the PLAIN mech
.if defined(WITHOUT_PLAIN)
CONFIGURE_ARGS+= --disable-plain
PLAIN= "@comment "
.endif
.if !defined(WITHOUT_GSSAPI) && defined(KRB5_HOME) && exists(${KRB5_HOME}/lib/libgssapi_krb5.a)
CONFIGURE_ARGS+= --enable-gssapi=${KRB5_HOME}
.elif !defined(WITHOUT_GSSAPI) && defined(HEIMDAL_HOME) && exists(${HEIMDAL_HOME}/lib/libgssapi.a)
CONFIGURE_ARGS+= --enable-gssapi=${HEIMDAL_HOME}
.elif !defined(WITHOUT_GSSAPI) && defined(MAKE_KERBEROS5) && exists(/usr/lib/libkrb5.a)
CONFIGURE_ARGS+= --enable-gssapi
.else
CONFIGURE_ARGS+= --disable-gssapi
GSSAPI= "@comment "
.endif
.include <bsd.port.pre.mk>
# KERBEROS 4 was removed in FreeBSD 5.0-CURRENT
.if ${OSVERSION} > 500105
.if defined(WITH_KERBEROS4)
LIB_DEPENDS+= krb.2:${PORTSDIR}/security/krb4
CONFIGURE_ARGS+= --enable-krb4=${LOCALBASE}/krb4
.else
CONFIGURE_ARGS+= --disable-krb4
EBONES= "@comment "
.endif
.elif exists(/usr/lib/libkrb.a) && defined(MAKE_KERBEROS4) && !defined(WITHOUT_KERBEROS4)
CONFIGURE_ARGS+= --enable-krb4
.elif !exists(/usr/lib/libkrb.a) && defined(WITH_KERBEROS4)
LIB_DEPENDS+= krb.2:${PORTSDIR}/security/krb4
CONFIGURE_ARGS+= --enable-krb4=${LOCALBASE}/krb4
.else
CONFIGURE_ARGS+= --disable-krb4
EBONES= "@comment "
.endif
CONFIGURE_ENV+= LOCALBASE=${LOCALBASE} \
OPENSSLINC=${OPENSSLINC} \
OPENSSLLIB=${OPENSSLLIB}
CYRUS_USER?= cyrus
CYRUS_GROUP?= cyrus
DOCS= AUTHORS COPYING ChangeLog INSTALL NEWS README TODO
PLIST_SUB= PREFIX=${PREFIX} \
ANON=${ANON} \
OTP=${OTP} \
CRAM=${CRAM} \
DIGEST=${DIGEST} \
LOGIN=${LOGIN} \
PLAIN=${PLAIN} \
GSSAPI=${GSSAPI} \
EBONES=${EBONES} \
DOCSDIR=${DOCSDIR:S/^${PREFIX}\///} \
EXAMPLESDIR=${EXAMPLESDIR:S/^${PREFIX}\///}
LDAP_MYSQL_PATCH= ldap-mysql_sasl-${PORTVERSION}/sasl-ldap+mysql.patch
PKGDEINSTALL= ${WRKDIR}/pkg-deinstall
PKGINSTALL= ${WRKDIR}/pkg-install
PKGMESSAGE= ${WRKDIR}/pkg-message
.if ${OSVERSION} < 450000
FMT= /usr/bin/fmt
.else
FMT= /usr/bin/fmt -w 67
.endif
pre-fetch:
@${SETENV} ${SCRIPTS_ENV} ${SH} ${SCRIPTDIR}/configure.sasl
.if exists(${WRKDIRPREFIX}${.CURDIR}/Makefile.inc)
.include "${WRKDIRPREFIX}${.CURDIR}/Makefile.inc"
.endif
RC_SCRIPTS_SUB= PREFIX=${PREFIX} \
PWCHECK=${PWCHECK} \
ENABLE_PWCHECK=${ENABLE_PWCHECK} \
ENABLE_SASLAUTHD=${ENABLE_SASLAUTHD} \
MYSQL_REQ=${MYSQL_REQ}
PKG_SCRIPTS_SUB= PREFIX=${PREFIX} \
CYRUS_USER=${CYRUS_USER} \
CYRUS_GROUP=${CYRUS_GROUP} \
ENABLE_PWCHECK=${ENABLE_PWCHECK} \
ENABLE_SASLAUTHD=${ENABLE_SASLAUTHD} \
PWCHECK=${PWCHECK} \
PWCHECK_METHOD=${PWCHECK_METHOD} \
SASLDB=${SASLDB_NAME}
post-extract:
@${CP} ${FILESDIR}/pwcheck_pam.c ${WRKSRC}/pwcheck
pre-patch:
@(cd ${WRKSRC} && ${PATCH} -p1 < ${WRKDIR}/${LDAP_MYSQL_PATCH})
# Fix pkg-{install/deinstall/messages}
post-patch:
@${SED} ${PKG_SCRIPTS_SUB:S/$/!g/:S/^/ -e s!%%/:S/=/%%!/} \
${.CURDIR}/pkg-install > ${PKGINSTALL}
@${SED} ${PKG_SCRIPTS_SUB:S/$/!g/:S/^/ -e s!%%/:S/=/%%!/} \
${.CURDIR}/pkg-deinstall > ${PKGDEINSTALL}
@${SED} -e "s;%%PWCHECK_METHOD%%;${PWCHECK_METHOD};g" \
-e "s;%%PREFIX%%;${PREFIX};g" \
${.CURDIR}/pkg-message > ${PKGMESSAGE}
.ifdef LDAP_MYSQL_MSG
@${ECHO_CMD} ${LDAP_MYSQL_MSG} | ${FMT} >> ${PKGMESSAGE}
@${ECHO_CMD} >> ${PKGMESSAGE}
.endif
pre-configure:
@(cd ${WRKSRC} && ${AUTOHEADER})
# Create Cyrus user and group
pre-install:
@${SH} ${PKGINSTALL} ${PKGNAME} PRE-INSTALL
@if [ -f ${PREFIX}/sbin/saslauthd ]; then \
mv ${PREFIX}/sbin/saslauthd ${PREFIX}/sbin/saslauthd2; \
if [ -f ${PREFIX}/man/man8/saslauthd.8 ]; then \
mv ${PREFIX}/man/man8/saslauthd.8 \
${PREFIX}/man/man8/saslauthd2.8; \
elif [ -f ${PREFIX}/man/man8/saslauthd.8.gz ]; then \
mv ${PREFIX}/man/man8/saslauthd.8.gz \
${PREFIX}/man/man8/saslauthd2.8.gz; \
fi; \
fi
post-install:
@${MKDIR} ${EXAMPLESDIR}
@${SED} -e 's;%%PREFIX%%;${PREFIX};g' \
${FILESDIR}/cyrus.pam > ${EXAMPLESDIR}/cyrus.pam
@${SED} ${RC_SCRIPTS_SUB:S/$/!g/:S/^/ -e s!%%/:S/=/%%!/} \
${FILESDIR}/pwcheck.sh > ${PREFIX}/etc/rc.d/cyrus_pwcheck.sh
@${CHMOD} 755 ${PREFIX}/etc/rc.d/cyrus_pwcheck.sh
@${SED} ${RC_SCRIPTS_SUB:S/$/!g/:S/^/ -e s!%%/:S/=/%%!/} \
${FILESDIR}/saslauthd.sh > ${PREFIX}/etc/rc.d/saslauthd1.sh
@${CHMOD} 755 ${PREFIX}/etc/rc.d/saslauthd1.sh
@${SED} ${RC_SCRIPTS_SUB:S/$/!g/:S/^/ -e s!%%/:S/=/%%!/} \
${FILESDIR}/cyrus_sasl1 > ${PREFIX}/etc/rc.d/cyrus_sasl1
@${CHMOD} 755 ${PREFIX}/etc/rc.d/cyrus_sasl1
${INSTALL} -d -m 770 -o ${CYRUS_USER} -g ${CYRUS_GROUP} /var/pwcheck
${INSTALL} -d -m 770 -o ${CYRUS_USER} -g ${CYRUS_GROUP} /var/state/saslauthd1
.if !defined(NOPORTDOCS)
@${MKDIR} ${DOCSDIR}
.for file in ${DOCS}
@${INSTALL_DATA} ${WRKSRC}/${file} ${DOCSDIR}
.endfor
(cd ${WRKSRC}/doc ; \
for file in `make -V EXTRA_DIST` ; do \
${INSTALL_DATA} ${WRKSRC}/doc/$${file} ${DOCSDIR} ; \
done)
@${INSTALL_DATA} ${WRKSRC}/java/doc/draft-weltman-java-sasl-02.txt ${DOCSDIR}
@${INSTALL_DATA} ${FILESDIR}/Sendmail.README ${DOCSDIR}
.endif
@mv ${PREFIX}/sbin/saslauthd ${PREFIX}/sbin/saslauthd1
@mv ${PREFIX}/man/man8/saslauthd.8 ${PREFIX}/man/man8/saslauthd1.8
@if [ -f ${PREFIX}/sbin/saslauthd2 ]; then \
mv ${PREFIX}/sbin/saslauthd2 ${PREFIX}/sbin/saslauthd; \
if [ -f ${PREFIX}/man/man8/saslauthd2.8 ]; then \
mv ${PREFIX}/man/man8/saslauthd2.8 \
${PREFIX}/man/man8/saslauthd.8; \
elif [ -f ${PREFIX}/man/man8/saslauthd2.8.gz ]; then \
mv ${PREFIX}/man/man8/saslauthd2.8.gz \
${PREFIX}/man/man8/saslauthd.8.gz; \
fi; \
fi
@PKG_PREFIX=${PREFIX} BATCH=${BATCH} ${SH} ${PKGINSTALL} ${PKGNAME} POST-INSTALL
@${CAT} ${PKGMESSAGE}
post-clean:
@${RM} -f ${WRKDIRPREFIX}${.CURDIR}/Makefile.inc
.include <bsd.port.post.mk>