diff options
Diffstat (limited to 'mail/cyrus-imapd312/Makefile')
-rw-r--r-- | mail/cyrus-imapd312/Makefile | 273 |
1 files changed, 273 insertions, 0 deletions
diff --git a/mail/cyrus-imapd312/Makefile b/mail/cyrus-imapd312/Makefile new file mode 100644 index 000000000000..cecb7675c9b3 --- /dev/null +++ b/mail/cyrus-imapd312/Makefile @@ -0,0 +1,273 @@ +PORTNAME= cyrus-imapd +DISTVERSION= 3.12.1 +PORTREVISION= 2 +CATEGORIES= mail +MASTER_SITES= https://github.com/cyrusimap/cyrus-imapd/releases/download/${PORTNAME}-${DISTVERSION}/ +PKGNAMESUFFIX= ${CYRUS_IMAPD_VER} + +MAINTAINER= ume@FreeBSD.org +COMMENT= Cyrus mail server, supporting POP3 and IMAP4 protocols ${COMMENT_${FLAVOR}} +WWW= https://www.cyrusimap.org/ +COMMENT_http= (with HTTP) + +LICENSE= BSD4CLAUSE +LICENSE_FILE= ${WRKSRC}/COPYING + +BROKEN_riscv64= fails to build: lib/chartable.c: Error 1 + +FLAVORS= basic http +http_PKGNAMESUFFIX= ${CYRUS_IMAPD_VER}-http + +CYRUS_IMAPD_VER= 312 + +LIB_DEPENDS= libsasl2.so:security/cyrus-sasl2 \ + libicuuc.so:devel/icu \ + libjansson.so:devel/jansson \ + libuuid.so:misc/libuuid \ + libical.so:devel/libical + +CONFLICTS_INSTALL= cyrus-imapd2? cyrus-imapd3[0-9] cyrus-imapd3[0-9]-http + +USES= compiler:c11 cpe gmake libtool perl5 pkgconfig ssl +USE_RC_SUBR= imapd +CYRUS_PREFIX= ${PREFIX}/cyrus +GNU_CONFIGURE= yes +CONFIGURE_ARGS= --libexecdir=${CYRUS_PREFIX}/libexec \ + --sbindir=${CYRUS_PREFIX}/sbin \ + --sysconfdir=${PREFIX}/etc \ + --with-cyrus-user=${CYRUS_USER} \ + --with-sasl=${LOCALBASE} \ + --with-com_err \ + --with-openssl=${OPENSSLBASE} \ + --with-perl=${PERL} +CONFIGURE_ENV+= LIBS="-L${LOCALBASE}/lib" +CPPFLAGS+= -I${LOCALBASE}/include +MAKE_JOBS_UNSAFE= yes + +USES+= shebangfix +SHEBANG_FILES= imap/cyr_cd.sh imap/promdatagen tools/config2header \ + tools/masssievec tools/mkimap tools/translatesieve \ + perl/sieve/scripts/*.pl + +CPE_VENDOR= cmu +CPE_PRODUCT= cyrus_imap_server + +OPTIONS_DEFINE= AUTOCREATE CLAMAV CLD2 HTTP IDLED JMAP LDAP MURDER \ + MYSQL NNTP PCRE2 PGSQL REPLICATION SQLITE SQUAT SRS \ + XAPIAN DOCS +OPTIONS_DEFAULT= AUTOCREATE IDLED PCRE2 READLINE_GNU REPLICATION SQLITE \ + SQUAT SRS +.if ${FLAVOR:U} == http +OPTIONS_DEFAULT+= HTTP +.endif +OPTIONS_SUB= yes +AUTOCREATE_DESC= Enable autocreate support +AUTOCREATE_CONFIGURE_ENABLE= autocreate +CLAMAV_DESC= Use ClamAV +CLAMAV_CONFIGURE_WITH= clamav +CLAMAV_LIB_DEPENDS= libclamav.so:security/clamav +CLD2_DESC= Use CLD2 +CLD2_CONFIGURE_WITH= cld2 +CLD2_CONFIGURE_ENV= CLD2_CFLAGS="-I${LOCALBASE}/include" \ + CLD2_LIBS="-L${LOCALBASE}/lib -lcld2" +CLD2_LIB_DEPENDS= libcld2.so:devel/cld2 +HTTP_DESC= Enable HTTP support +HTTP_IMPLIES= SQLITE +HTTP_CONFIGURE_ENABLE= http +HTTP_LIB_DEPENDS= libnghttp2.so:www/libnghttp2 \ + libshp.so:devel/shapelib \ + libbrotlidec.so:archivers/brotli \ + libwslay_shared.so:www/wslay \ + libzstd.so:archivers/zstd +HTTP_BUILD_DEPENDS= xxd:sysutils/xxd +HTTP_RUN_DEPENDS= ${HTTP_BUILD_DEPENDS} +HTTP_CONFIGURE_ENV= WSLAY_CFLAGS="-I${LOCALBASE}/include" \ + WSLAY_LIBS="-L${LOCALBASE}/lib -lwslay_shared" +# Need additional patch to opendkim +#HTTP_LIB_DEPENDS+= libopendkim.so:mail/opendkim +#HTTP_CPPFLAGS+= -I${LOCALBASE}/include/opendkim +HTTP_USES= gnome +HTTP_USE= GNOME=libxml2 +# XXX: HTTP requires JMAP +HTTP_IMPLIES= JMAP +IDLED_DESC= Enable IMAP idled support +IDLED_CONFIGURE_ENABLE= idled +JMAP_DESC= Enable JMAP support +JMAP_CONFIGURE_ENABLE= jmap +JMAP_IMPLIES= HTTP XAPIAN +LDAP_DESC= Enable LDAP support (experimental) +LDAP_USES= ldap +LDAP_CONFIGURE_ON= --with-ldap=${LOCALBASE} +LDAP_CONFIGURE_OFF= --without-ldap +MURDER_DESC= Enable IMAP Murder support +MURDER_CONFIGURE_ENABLE=murder +MURDER_MAKE_ENV= PTHREAD_LIBS="-lpthread" +MYSQL_USES= mysql +MYSQL_CONFIGURE_WITH= mysql +NNTP_DESC= Enable NNTP support +NNTP_CONFIGURE_ENABLE= nntp +PCRE2_DESC= Use PCRE2 rather than PCRE +PCRE2_LIB_DEPENDS= libpcre2-posix.so:devel/pcre2 +PCRE2_LIB_DEPENDS_OFF= libpcre.so:devel/pcre +PCRE2_CONFIGURE_ON= --disable-pcre +PCRE2_CONFIGURE_OFF= --disable-pcre2 +PGSQL_USES= pgsql +PGSQL_CONFIGURE_ON= --with-pgsql=${LOCALBASE} +PGSQL_CONFIGURE_OFF= --without-pgsql +REPLICATION_DESC= Enable replication +REPLICATION_CONFIGURE_ENABLE=replication +SRS_DESC= Enable Sender Rewriting Scheme support +SRS_CONFIGURE_ENABLE= srs +SRS_LIB_DEPENDS= libsrs2.so:mail/libsrs2 +SQLITE_USES= sqlite +SQLITE_CONFIGURE_ON= --with-sqlite=${LOCALBASE} +SQLITE_CONFIGURE_OFF= --without-sqlite +SQLITE_BROKEN_OFF= SQLITE is required +SQUAT_DESC= Enable Squat support +SQUAT_CONFIGURE_OFF= --disable-squat +XAPIAN_DESC= Enable Xapian support +XAPIAN_CONFIGURE_ENABLE=xapian +XAPIAN_LIB_DEPENDS= libxapian.so:databases/xapian-core +XAPIAN_BUILD_DEPENDS= rsync:net/rsync +XAPIAN_RUN_DEPENDS= ${XAPIAN_BUILD_DEPENDS} + +OPTIONS_RADIO= GSSAPI READLINE +OPTIONS_RADIO_GSSAPI= GSSAPI_HEIMDAL GSSAPI_MIT +.if exists(/usr/lib/libkrb5.a) +OPTIONS_RADIO_GSSAPI+= GSSAPI_BASE +OPTIONS_DEFAULT+= GSSAPI_BASE +.endif +GSSAPI_BASE_USES= gssapi +GSSAPI_BASE_CONFIGURE_ON= --enable-gssapi="${GSSAPIBASEDIR}" +.if exists(/usr/libexec/krb5kdc) +GSSAPI_BASE_CONFIGURE_ON+= --with-gss_impl=mit +.else +GSSAPI_BASE_CONFIGURE_ON+= --with-gss_impl=heimdal +.endif +GSSAPI_HEIMDAL_USES= gssapi:heimdal,flags +GSSAPI_HEIMDAL_CONFIGURE_ON= --enable-gssapi="${GSSAPIBASEDIR}" \ + --with-gss_impl=heimdal +GSSAPI_MIT_USES= gssapi:mit +GSSAPI_MIT_CONFIGURE_ON= --enable-gssapi="${GSSAPIBASEDIR}" \ + --with-gss_impl=mit + +OPTIONS_RADIO_READLINE= READLINE_GNU READLINE_PERL +READLINE_GNU_DESC= Use Term::Readline::GNU for cyradm +READLINE_GNU_RUN_DEPENDS= p5-Term-ReadLine-Gnu>=0:devel/p5-Term-ReadLine-Gnu +READLINE_PERL_DESC= Use Term::Readline::Perl for cyradm +READLINE_PERL_RUN_DEPENDS= p5-Term-ReadLine-Perl>=0:devel/p5-Term-ReadLine-Perl + +MANDIRS= ${CYRUS_PREFIX}/man + +PORTDOCS= * + +SUB_FILES= pkg-message pkg-install pkg-deinstall cyrus-imapd-man.conf + +SUB_LIST= CYRUS_USER=${CYRUS_USER} CYRUS_GROUP=${CYRUS_GROUP} + +CYRUS_USER?= cyrus +CYRUS_GROUP?= cyrus + +MAN_MAN1= dav_reconstruct httptest imtest installsieve lmtptest \ + mupdatetest nntptest pop3test sieveshell sivtest smtptest \ + synctest +MAN_MAN3= imclient +MAN_MAN5= cyrus.conf imapd.conf + +CYRUS_MAN8= arbitron calalarmd chk_cyrus ctl_conversationsdb ctl_cyrusdb \ + ctl_deliver ctl_mboxlist ctl_zoneinfo cvt_cyrusdb \ + cvt_xlist_specialuse cyr_buildinfo cyr_dbtool cyr_deny cyr_df \ + cyr_expire cyr_info cyr_ls cyr_synclog cyr_userseen \ + cyr_virusscan cyr_withlock_run cyradm cyrdump deliver \ + fetchnews fud httpd idled imapd ipurge lmtpd lmtpproxyd \ + master mbexamine mbpath mbtool mupdate nntpd notifyd pop3d \ + pop3proxyd promstatsd proxyd ptdump ptexpire ptloader quota \ + reconstruct relocate_by_id sievec sieved smmapd timsieved \ + tls_prune unexpunge +CYRUS_PERL_MAN1=cyradm +CYRUS_PERL_MAN3=Cyrus::Annotator::Daemon Cyrus::Annotator::Message \ + Cyrus::IMAP Cyrus::IMAP::Admin Cyrus::IMAP::Shell \ + Cyrus::SIEVE::managesieve + +INSTALL_TARGET= install-strip + +REINPLACE_ARGS= -i '' + +.include <bsd.port.options.mk> + +.if !${PORT_OPTIONS:MGSSAPI_BASE} && !${PORT_OPTIONS:MGSSAPI_HEIMDAL} && \ + !${PORT_OPTIONS:MGSSAPI_MIT} +CONFIGURE_ARGS+=--disable-gssapi +.endif + +.if ${PORT_OPTIONS:MNNTP} +CYRUS_MAN8+= fetchnews nntpd +.endif +.if ${PORT_OPTIONS:MMURDER} +CYRUS_MAN8+= mupdate +.endif +.if ${PORT_OPTIONS:MREPLICATION} +CYRUS_MAN8+= sync_client sync_reset sync_server +.endif +.if ${PORT_OPTIONS:MSQUAT} || ${PORT_OPTIONS:MXAPIAN} +CYRUS_MAN8+= squatter +PLIST_SUB+= SQUATTER="" +.else +PLIST_SUB+= SQUATTER="@comment " +.endif + +post-patch: + @${REINPLACE_CMD} -e "s|/etc/|${PREFIX}/etc/|" \ + -e "s|%%CYRUS_USER%%|${CYRUS_USER}|g" \ + -e "s|%%CYRUS_GROUP%%|${CYRUS_GROUP}|g" \ + ${WRKSRC}/tools/mkimap +.for f in masssievec translatesieve + @${REINPLACE_CMD} -e "s|/etc/|${PREFIX}/etc/|g" \ + -e "s|/usr/sieve|/var/imap/sieve|g" \ + ${WRKSRC}/tools/${f} +.endfor + @${REINPLACE_CMD} \ + -e 's|$$(libdir)/\(pkgconfig\)|${PREFIX}/libdata/\1|g' \ + -e 's|$$(mandir)/\(man[8]\)|${PREFIX}/cyrus/man/\1|g' \ + ${WRKSRC}/Makefile.in + +post-install: + ${STRIP_CMD} ${STAGEDIR}${PREFIX}/${SITE_ARCH_REL}/auto/Cyrus/IMAP/IMAP.so + ${STRIP_CMD} ${STAGEDIR}${PREFIX}/${SITE_ARCH_REL}/auto/Cyrus/SIEVE/managesieve/managesieve.so + ${MKDIR} ${STAGEDIR}${EXAMPLESDIR} + ${INSTALL_DATA} ${FILESDIR}/imapd.conf \ + ${STAGEDIR}${EXAMPLESDIR} + ${SED} -e 's,/run/cyrus/socket,/var/imap/socket,' \ + ${WRKSRC}/doc/examples/cyrus_conf/normal.conf \ + > ${STAGEDIR}${EXAMPLESDIR}/cyrus.conf +.if !${PORT_OPTIONS:MHTTP} + ${REINPLACE_CMD} -e 's/^\( http\)/#\1/' \ + ${STAGEDIR}${EXAMPLESDIR}/cyrus.conf +.endif +.for f in mkimap masssievec translatesieve + ${INSTALL_SCRIPT} ${WRKSRC}/tools/${f} \ + ${STAGEDIR}${CYRUS_PREFIX}/sbin/${f} +.endfor + ${INSTALL_DATA} ${WRKDIR}/cyrus-imapd-man.conf \ + ${STAGEDIR}${PREFIX}/etc/man.d/cyrus-imapd.conf +.for s in 1 3 5 +. for m in ${MAN_MAN${s}} + @${ECHO_CMD} share/man/man${s}/${m}.${s}.gz >> ${TMPPLIST} +. endfor +.endfor +.for s in 1 3 +. for m in ${CYRUS_PERL_MAN${s}} + @${ECHO_CMD} ${SITE_MAN${s}}/${m}.${s}.gz >> ${TMPPLIST} +. endfor +.endfor +.for m in ${CYRUS_MAN8} + @${ECHO_CMD} ${CYRUS_PREFIX}/man/man8/${m}.8.gz >> ${TMPPLIST} +.endfor + +post-install-DOCS-on: + ${MKDIR} ${STAGEDIR}${DOCSDIR} + cd ${WRKSRC}/doc && ${COPYTREE_SHARE} . ${STAGEDIR}${DOCSDIR} \ + "! ( -path */html/_sources* -o -name .buildinfo )" + ${RM} -r ${STAGEDIR}${DOCSDIR}/rst ${STAGEDIR}${DOCSDIR}/source + +.include <bsd.port.mk> |