freebsd-ports/security/cyrus-sasl/Makefile
Joe Marcus Clarke 9e5632dd66 Apply a big libtool patch to allow porters to use the libtool installed by
the libtoolX ports instead of the one included with each port.  Ports that
set USE_LIBTOOL_VER=X will now use the ports version of libtool instead of
the included version.  To restore previous behavior, use the new macro,
USE_INC_LIBTOOL_VER.  Both macros accept the same argument: a libtool version.

For example, to use the ports version of libtool-1.5, add the following to
your Makefile:

USE_LIBTOOL_VER=        15

To use the included version of libtool with extra hacks provided by
libtool-1.5, add the following to your Makefile:

USE_INC_LIBTOOL_VER=    15

With this change, ports that had to add additional libtool hacks to prevent
.la files from being installed or to fix certain threading issues can now
delete those hacks (after appropriate testing, of course).

PR:		63944
Based on work by:eik and marcus
Approved by:	ade (autotools maintainer)
Tested by:	kris on pointyhat
Bound to be hidden problems:	You bet
2004-07-09 17:43:11 +00:00

284 lines
8.5 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= 3
CATEGORIES= security ipv6
MAINTAINER= ports@FreeBSD.org
COMMENT= RFC 2222 SASL (Simple Authentication and Security Layer)
DISTFILES= ${DISTNAME}${EXTRACT_SUFX} \
sasl-${PORTVERSION}-ldap-ssl-filter-mysql-patch.tgz:ldap_mysql
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
PATCHFILES= sasl_apop_patch.gz:apop \
${DISTNAME}-ipv6-${IPV6_VER}.diff.gz
PATCH_SITES= ftp://ftp.westbend.net/pub/cyrus-mail/contrib/:apop \
http://www.imasy.or.jp/~ume/ipv6/
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_RC_SUBR= YES
USE_AUTOMAKE_VER=14
USE_AUTOCONF_VER=213
USE_INC_LIBTOOL_VER=13
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} \
RC_SUBR=${RC_SUBR} \
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 docfile in ${DOCS}
@${INSTALL_DATA} ${WRKSRC}/${docfile} ${DOCSDIR}
.endfor
(cd ${WRKSRC}/doc ; \
for extrafile in `make -V EXTRA_DIST` ; do \
${INSTALL_DATA} ${WRKSRC}/doc/$${extrafile} ${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>