aboutsummaryrefslogtreecommitdiffstats
path: root/mail/dovecot/Makefile
blob: 3e483772be98a63e943756da1075d8fe6b051dc6 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
######################################################################
# Anytime PORTVERSION changes please bump PORTREVISION of:           #
# - mail/dovecot-pigeonhole. See ports/146029 for an explanation.    #
# - mail/dovecot-fts-flatcurve.                                      #
# - mail/dovecot-fts-xapian.                                         #
# - mail/dovecot-fts-elastic.                                        #
# - mail/dovecot-coi.                                                #
# - mail/dovecot-xaps.                                               #
######################################################################

PORTNAME=	dovecot
DISTVERSION=	2.3.21.1
PORTREVISION=	3
CATEGORIES=	mail
MASTER_SITES=	https://dovecot.org/releases/2.3/

MAINTAINER=	ler@FreeBSD.org
COMMENT=	Secure, fast and powerful IMAP and POP3 server
WWW=		https://www.dovecot.org/

LICENSE=	LGPL21 MIT
LICENSE_COMB=	dual

FLAVORS=	default mysql pgsql
FLAVOR?=	${FLAVORS[1]}
mysql_PKGNAMESUFFIX=	-mysql
pgsql_PKGNAMESUFFIX=	-pgsql

LIB_DEPENDS=	libzstd.so:archivers/zstd

USES=		cpe iconv libtool pkgconfig ssl
USE_LDCONFIG=	${PREFIX}/lib/${PORTNAME}
USE_RC_SUBR=	${PORTNAME}

GNU_CONFIGURE=	yes
CONFIGURE_ARGS=	--localstatedir=/var \
		--with-docs \
		--with-ssl=openssl \
		--with-statedir=/var/db/${PORTNAME} \
		--with-shadow=no \
		--with-systemd=no

INSTALL_TARGET=	install-strip

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

SUB_FILES+=	pkg-message
SUB_LIST+=	REQUIRE="${_REQUIRE}"
# Default requirement for dovecot rc script
_REQUIRE=	LOGIN

USERS=		${PORTNAME} dovenull
GROUPS=		${USERS}

DOCS=		AUTHORS COPYING INSTALL NEWS TODO README
PORTDOCS=	*
PORTEXAMPLES=	*

OPTIONS_DEFINE=		LIBSODIUM LIBUNWIND LIBWRAP LUA LZ4 DOCS EXAMPLES
OPTIONS_DEFAULT=	GSSAPI_NONE LDAP LIBWRAP

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_BASE GSSAPI_HEIMDAL GSSAPI_MIT GSSAPI_NONE

OPTIONS_SUB=		yes

CDB_DESC=		CDB database support
DB_DESC=		Database support
FTS_DESC=		Full text search plugins
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
GSSAPI_NONE_DESC=	Build without GSSAPI support
ICU_DESC=		Use libicu for FTS unicode normalization
LIBSODIUM_DESC=		Support libsodium based crypts (ARGON2I/ARGON2ID)
LIBUNWIND_DESC=		Get backtraces using libunwind
LUCENE_DESC=		CLucene FTS support
SOLR_DESC=		Solr FTS support
TEXTCAT_DESC=		Libexttextcat FTS support

CDB_LIB_DEPENDS=		libcdb.so:databases/tinycdb
CDB_CONFIGURE_WITH=		cdb

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

ICU_LIB_DEPENDS=		libicui18n.so:devel/icu \
				libicuuc.so:devel/icu
ICU_CONFIGURE_WITH=		icu
ICU_LDFLAGS=			-licuuc

LDAP_USES=			ldap
LDAP_CONFIGURE_WITH=		ldap
LDAP_VARS=			_REQUIRE+=slapd

LIBSODIUM_LIB_DEPENDS=		libsodium.so:security/libsodium
LIBSODIUM_CONFIGURE_WITH=	sodium

LIBUNWIND_LIB_DEPENDS=		libunwind.so:devel/libunwind
LIBUNWIND_CONFIGURE_ON=		--with-libunwind=yes
LIBUNWIND_CONFIGURE_OFF=	--with-libunwind=no

LIBWRAP_CONFIGURE_WITH=		libwrap

LUA_USES=			lua:51,53
LUA_CONFIGURE_WITH=		lua

LUCENE_LIB_DEPENDS=		libclucene-core.so:textproc/clucene
LUCENE_CONFIGURE_WITH=		lucene stemmer

LZ4_LIB_DEPENDS=		liblz4.so:archivers/liblz4
LZ4_CONFIGURE_WITH=		lz4

.if ${FLAVOR:U} == mysql
OPTIONS_DEFAULT+=	MYSQL
.endif

MYSQL_USES=			mysql
MYSQL_CONFIGURE_WITH=		mysql
MYSQL_VARS=			_REQUIRE+=mysql

.if ${FLAVOR:U} == pgsql
OPTIONS_DEFAULT+=	PGSQL
.endif

PGSQL_USES=			pgsql
PGSQL_CONFIGURE_WITH=		pgsql
PGSQL_VARS=			_REQUIRE+=postgresql

SOLR_LIB_DEPENDS=		libcurl.so:ftp/curl \
				libexpat.so:textproc/expat2
SOLR_CONFIGURE_WITH=		solr

SQLITE_USES=			sqlite
SQLITE_CONFIGURE_WITH=		sqlite

TEXTCAT_LIB_DEPENDS=		libexttextcat-2.0.so:textproc/libexttextcat
TEXTCAT_CONFIGURE_WITH=		textcat

post-patch:
	@${REINPLACE_CMD} -e 's,/etc/dovecot,${ETCDIR},g; \
		s,sysconfdir=/etc,sysconfdir=${PREFIX}/etc,g' \
		${WRKSRC}/doc/example-config/*.conf ${WRKSRC}/doc/example-config/conf.d/* \
		${WRKSRC}/doc/example-config/*.conf.ext
	@${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-patch-LUA-on:
	@${REINPLACE_CMD} -e '/^libdovecot_lua_la_DEPENDENCIES =/ s|LUA_LIBS|true|' \
		${WRKSRC}/src/lib-lua/Makefile.in

post-install:
	@${MKDIR} ${STAGEDIR}${EXAMPLESDIR}
	${MV} ${STAGEDIR}${DOCSDIR}/dovecot-openssl.cnf ${STAGEDIR}${EXAMPLESDIR}
	${MV} ${STAGEDIR}${DOCSDIR}/mkcert.sh ${STAGEDIR}${EXAMPLESDIR}

post-install-DOCS-on:
	@${MKDIR} ${STAGEDIR}${DOCSDIR}
	(cd ${WRKSRC} && ${INSTALL_DATA} ${DOCS} ${STAGEDIR}${DOCSDIR})

.include <bsd.port.mk>