# Template file for 'dovecot'
# revbump dovecot-plugin-pigeonhole when updating dovecot!
pkgname=dovecot
version=2.4.4
revision=1
build_style=gnu-configure
configure_args="--with-moduledir=/usr/lib/dovecot/modules --with-sql=plugin
 --disable-static --with-pam --with-mysql --with-pgsql
 --with-sqlite --with-ssl=openssl --with-ssldir=/etc/dovecot/ssl
 --with-gssapi --with-ldap=plugin --with-bzlib --with-lz4 --with-libcap
 --with-stemmer --with-solr --with-flatcurve --sbindir=/usr/bin"
hostmakedepends="pkg-config perl libmariadbclient-devel pcre2-devel"
makedepends=" liblz4-devel zlib-devel bzip2-devel liblzma-devel openssl-devel
 mit-krb5-devel libmariadbclient-devel postgresql-libs-devel sqlite-devel
 libldap-devel libcap-devel pam-devel libcurl-devel expat-devel
 libsodium-devel xapian-core-devel libstemmer-devel pcre2-devel
 lua54-devel"
short_desc="IMAP and POP3 server written with security primarily in mind"
maintainer="Leah Neukirchen <leah@vuxu.org>"
license="LGPL-2.1-or-later"
homepage="https://dovecot.org/"
distfiles="https://dovecot.org/releases/2.4/dovecot-${version//r/-}.tar.gz"
checksum=670f98d55a29b02ae6a97281e51374e553b94496480ab0a07439571ab30ca8c3
keep_libtool_archives=yes

if [ "$XBPS_TARGET_LIBC" = "glibc" ]; then
	makedepends+=" libxcrypt-devel"
fi

if [ "$CROSS_BUILD" ]; then
	_tsize=${XBPS_TARGET_WORDSIZE}
	# FIXME: remove for time64 rebuild
	#[ "$XBPS_TARGET_LIBC" = "musl" ] && _tsize=64
	configure_args+="
		i_cv_epoll_works=yes
		i_cv_inotify_works=yes
		i_cv_posix_fallocate_works=yes
		i_cv_signed_size_t=no
		i_cv_gmtime_max_time_t=${_tsize}
		i_cv_signed_time_t=yes
		i_cv_mmap_plays_with_write=yes
		i_cv_fd_passing=yes
		i_cv_c99_vsnprintf=yes
		i_cv_gssapi_spnego=yes
		lib_cv_va_copy=yes
		lib_cv___va_copy=yes
		lib_cv_va_val_copy=yes"
fi

# For SSL support.
depends="ca-certificates"
system_accounts="_dovecot _dovenull"

post_install() {
	rm -f ${DESTDIR}/etc/dovecot/dovecot.conf

	vsconf doc/dovecot.conf
	vsconf doc/dovecot-openssl.cnf
	vsconf doc/mkcert.sh

	vsv dovecot
}

dovecot-devel_package() {
	depends="dovecot>=${version} pcre2-devel"
	short_desc+=" - development files"
	pkg_install() {
		vmove usr/include
		vmove usr/share/aclocal
		vmove usr/lib/dovecot/dovecot-config
	}
}
dovecot-plugin-flatcurve_package() {
	depends="dovecot>=${version}"
	short_desc+=" - Full Text Search plugin (Xapian)"
	pkg_install() {
		vmove usr/lib/dovecot/modules/doveadm/libdoveadm_fts_flatcurve_plugin.*
		vmove usr/lib/dovecot/modules/lib21_fts_flatcurve_plugin.*
	}
}
dovecot-plugin-ldap_package() {
	depends="dovecot>=${version}"
	short_desc+=" - LDAP plugin"
	pkg_install() {
		vmove usr/lib/dovecot/libdovecot-ldap.*
		vmove usr/lib/dovecot/modules/dict/libdict_ldap.so
		vmove usr/lib/dovecot/modules/auth/libauthdb_ldap.so
		#vmove usr/share/examples/dovecot/conf.d/auth-ldap.conf.ext
		#vmove usr/share/examples/dovecot/conf.d/dovecot-ldap.conf.ext
	}
}
dovecot-plugin-mysql_package() {
	depends="dovecot>=${version}"
	short_desc+=" - MySQL plugin"
	pkg_install() {
		vmove usr/lib/dovecot/modules/auth/libdriver_mysql.so
		vmove usr/lib/dovecot/modules/dict/libdriver_mysql.so
		vmove usr/lib/dovecot/modules/libdriver_mysql.so
	}
}
dovecot-plugin-pgsql_package() {
	depends="dovecot>=${version}"
	short_desc+=" - PostgreSQL plugin"
	pkg_install() {
		vmove usr/lib/dovecot/modules/auth/libdriver_pgsql.so
		vmove usr/lib/dovecot/modules/dict/libdriver_pgsql.so
		vmove usr/lib/dovecot/modules/libdriver_pgsql.so
	}
}
dovecot-plugin-sqlite_package() {
	depends="dovecot>=${version}"
	short_desc+=" - SQLite plugin"
	pkg_install() {
		vmove usr/lib/dovecot/modules/auth/libdriver_sqlite.so
		vmove usr/lib/dovecot/modules/dict/libdriver_sqlite.so
		vmove usr/lib/dovecot/modules/libdriver_sqlite.so
	}
}
