# $MidnightBSD: trunk/mail/dovecot2/Makefile 21375 2016-05-15 15:05:19Z laffer1 $

PORTNAME=	dovecot
PORTVERSION=	2.2.24
PORTREVISION=	0
CATEGORIES=	mail ipv6
MASTER_SITES=	http://www.dovecot.org/releases/${PORTVERSION:R}/
PKGNAMESUFFIX=	2

MAINTAINER=	ports@MidnightBSD.org
COMMENT=	Secure, fast and powerful IMAP and POP3 server

LICENSE=	lgpl2.1 mit
LICENSE_COMB=	dual

CONFLICTS=	dovecot-1.[0-9]*

USES=		cpe iconv libtool
USE_RC_SUBR=	dovecot
USE_OPENSSL=	yes

GNU_CONFIGURE=	yes
CONFIGURE_TARGET=--build=${MACHINE_ARCH}-portbld-freebsd9.1 \
		 --host=${MACHINE_ARCH}-portbld-freebsd9.1
CONFIGURE_ARGS=	--localstatedir=/var \
		--with-statedir=/var/db/dovecot \
		--without-shadow \
		--with-docs

USE_LDCONFIG=	${PREFIX}/lib/dovecot
INSTALL_TARGET=	install-strip

USERS=		dovecot dovenull
GROUPS=		${USERS}

OPTIONS_DEFINE=	KQUEUE LIBWRAP LZ4 SSL VPOPMAIL DOCS EXAMPLES
OPTIONS_DEFAULT=KQUEUE SSL GSSAPI_NONE
OPTIONS_SUB=	yes

OPTIONS_GROUP=		DB FTS
OPTIONS_GROUP_DB=	CDB LDAP MYSQL PGSQL SQLITE
OPTIONS_GROUP_FTS=	ICU LUCENE SOLR TEXTCAT

OPTIONS_SINGLE=		GSSAPI
OPTIONS_SINGLE_GSSAPI=	GSSAPI_NONE GSSAPI_BASE GSSAPI_HEIMDAL GSSAPI_MIT

KQUEUE_DESC=	kqueue(2) support
LZ4_DESC=	LZ4 compression support
VPOPMAIL_DESC=	vpopmail support

DB_DESC=	Database support
CDB_DESC=	CDB database support

FTS_DESC=	Full text search plugins
ICU_DESC=	Use libicu for FTS unicode normalization
LUCENE_DESC=	CLucene FTS support
SOLR_DESC=	Solr FTS support
TEXTCAT_DESC=	Libtextcat FTS support

GSSAPI_NONE_DESC=	Build without GSSAPI support
GSSAPI_BASE_DESC=	Use GSSAPI from base
GSSAPI_HEIMDAL_DESC=	Use Heimdal GSSAPI from security/heimdal
GSSAPI_MIT_DESC=	Use MIT GSSAPI from security/krb5

CDB_CONFIGURE_WITH=	cdb
CDB_LIB_DEPENDS=	libcdb.so:${PORTSDIR}/databases/tinycdb

GSSAPI_NONE_CONFIGURE_ON=	--without-gssapi
GSSAPI_BASE_USES=		gssapi
GSSAPI_BASE_CONFIGURE_ON=	--with-gssapi ${GSSAPI_CONFIGURE_ARGS}
GSSAPI_HEIMDAL_USES=		gssapi:heimdal
GSSAPI_HEIMDAL_CONFIGURE_ON=	--with-gssapi ${GSSAPI_CONFIGURE_ARGS}
GSSAPI_MIT_USES=		gssapi:mit
GSSAPI_MIT_CONFIGURE_ON=	--with-gssapi ${GSSAPI_CONFIGURE_ARGS}

ICU_CONFIGURE_WITH=	icu
ICU_LIB_DEPENDS=	libicui18n.so:${PORTSDIR}/devel/icu
ICU_USES=		pkgconfig

KQUEUE_CONFIGURE_OFF=	--with-ioloop=poll --with-notify=none
KQUEUE_CONFIGURE_ON=	--with-ioloop=kqueue --with-notify=kqueue

LDAP_USE=		OPENLDAP=yes
LDAP_CONFIGURE_WITH=	ldap

LIBWRAP_CONFIGURE_WITH=	libwrap

LUCENE_CONFIGURE_WITH=	lucene
LUCENE_LIB_DEPENDS=	libclucene-core.so:${PORTSDIR}/textproc/clucene

LZ4_LIB_DEPENDS=	liblz4.so:${PORTSDIR}/archivers/liblz4

MYSQL_USE=		MYSQL=yes
MYSQL_CONFIGURE_WITH=	mysql

PGSQL_USES=		pgsql
PGSQL_CONFIGURE_WITH=	pgsql

SOLR_CONFIGURE_WITH=	solr
SOLR_BUILD_DEPENDS=	curl:${PORTSDIR}/ftp/curl
SOLR_LIB_DEPENDS=	libexpat.so:${PORTSDIR}/textproc/expat2

SQLITE_USE=		SQLITE=3
SQLITE_CONFIGURE_WITH=	sqlite

SSL_CONFIGURE_WITH=	ssl=openssl

TEXTCAT_CONFIGURE_WITH=	textcat
TEXTCAT_LIB_DEPENDS=	libtextcat.so:${PORTSDIR}/textproc/libtextcat

VPOPMAIL_BUILD_DEPENDS=	${LOCALBASE}/vpopmail/bin/vchkpw:${PORTSDIR}/mail/vpopmail
VPOPMAIL_CONFIGURE_WITH=vpopmail

DOCS=		AUTHORS COPYING COPYING.LGPL COPYING.MIT INSTALL NEWS TODO README
PORTDOCS=	*
PORTEXAMPLES=	*

# Default requirement for dovecot rc script
_REQUIRE=	LOGIN

LDAP_VARS=	_REQUIRE+=slapd
MYSQL_VARS=	_REQUIRE+=mysql
PGSQL_VARS=	_REQUIRE+=postgresql

.include <bsd.mport.options.mk>

SUB_LIST+=	REQUIRE="${_REQUIRE}"
SUB_FILES+=	pkg-message

CPPFLAGS+=	-I${LOCALBASE}/include -I${OPENSSLINC}
LDFLAGS+=	-L${LOCALBASE}/lib -I${OPENSSLLIB}

post-patch:
	@${REINPLACE_CMD} -e 's,/etc/dovecot,${PREFIX}/etc/dovecot,g; \
		s,sysconfdir=/etc,sysconfdir=${PREFIX}/etc,g' \
		${WRKSRC}/doc/example-config/*.conf ${WRKSRC}/doc/example-config/conf.d/*
	@${REINPLACE_CMD} -e '/^LIBS =/s/$$/ @LTLIBICONV@/' \
		${WRKSRC}/src/lib-mail/Makefile.in
	# Install the sample config files into ETCDIR/example-config/
	@${REINPLACE_CMD} -e '/^exampledir =/s|\$$(docdir)|${ETCDIR}|' \
		${WRKSRC}/doc/example-config/Makefile.in \
		${WRKSRC}/doc/example-config/conf.d/Makefile.in

post-configure:
	${REINPLACE_CMD} 's|#define HAVE_CLEARENV 1||g' ${WRKSRC}/config.h
	@${REINPLACE_CMD} -e '/^[^#]/s|/usr|${LOCALBASE}|' \
		${WRKSRC}/src/plugins/fts/decode2text.sh

post-install:
	@${MKDIR} ${STAGEDIR}${EXAMPLESDIR} ${STAGEDIR}${DOCSDIR}
	${MV} ${STAGEDIR}${DOCSDIR}/dovecot-openssl.cnf ${STAGEDIR}${EXAMPLESDIR}
	${MV} ${STAGEDIR}${DOCSDIR}/mkcert.sh ${STAGEDIR}${EXAMPLESDIR}
	(cd ${WRKSRC} && ${INSTALL_DATA} ${DOCS} ${STAGEDIR}${DOCSDIR})

.include <bsd.port.mk>
