#
# This file and its contents are supplied under the terms of the
# Common Development and Distribution License ("CDDL"). You may
# only use this file in accordance with the terms of the CDDL.
#
# A full copy of the text of the CDDL should have accompanied this
# source. A copy of the CDDL is also available via the Internet at
# http://www.illumos.org/license/CDDL.
#

#
# Copyright 2022-2026 Friedrich Kink
# Copyright 2023 Niklas Poslovski
# Copyright 2025 Klaus Ziegler
#

include ../../../make-rules/shared-macros.mk

COMPONENT_NAME=         dovecot
COMPONENT_VERSION=      2.4.3
COMPONENT_REVISION=     2
COMPONENT_SUMMARY=      DOVECOT - The Secure IMAP server
COMPONENT_DESCRIPTION=	Dovecot is an open source IMAP and POP3 email server for \
		Linux/UNIX-like systems, written with security primarily in mind. \
		Dovecot is an excellent choice for both small and large installations. \
		It's fast, simple to set up, requires no special administration \
		and it uses very little memory.
COMPONENT_PROJECT_URL=  https://dovecot.org/
COMPONENT_SRC=          $(COMPONENT_NAME)-$(COMPONENT_VERSION)
COMPONENT_ARCHIVE=      $(COMPONENT_SRC).tar.gz
COMPONENT_ARCHIVE_URL=  $(COMPONENT_PROJECT_URL)/releases/2.4/$(COMPONENT_ARCHIVE)
COMPONENT_ARCHIVE_HASH= sha256:e0b30330fe51e47ecfcf641bc16041184d91bdd0ac3db789b7cef54e3a75ac9b
COMPONENT_FMRI=         mail/dovecot
COMPONENT_CLASSIFICATION= Applications/Internet
COMPONENT_LICENSE=      MIT,LGPLv2.1
COMPONENT_LICENSE_FILE= COPYING

include $(WS_MAKE_RULES)/common.mk

CONFIGURE_ENV += PANDOC=false
CONFIGURE_ENV += CPPFLAGS="-I$(OPENSSL_INCDIR)"

PATH = $(PATH.gnu):$(MYSQL_BINDIR)

COMPONENT_POST_CONFIGURE_ACTION = ( $(GSED) -i -e 's|^\#IMAP_HIBERNATE|IMAP_HIBERNATE|' $(@D)/src/Makefile )

CONFIGURE_OPTIONS += --sysconfdir=/etc
CONFIGURE_OPTIONS += --localstatedir=/var
CONFIGURE_OPTIONS += --libexecdir=/usr/lib
CONFIGURE_OPTIONS += --without-gssapi
CONFIGURE_OPTIONS += --with-ldap=plugin
CONFIGURE_OPTIONS += --with-sql=plugin
CONFIGURE_OPTIONS += --with-lua=plugin
CONFIGURE_OPTIONS += --with-ioloop=poll
CONFIGURE_OPTIONS += --with-notify=none
CONFIGURE_OPTIONS += --with-sodium
CONFIGURE_OPTIONS += --with-ssldir=$(OPENSSL_PREFIX)
CONFIGURE_OPTIONS += --with-sql=plugin
CONFIGURE_OPTIONS += --with-mysql
CONFIGURE_OPTIONS += --with-pgsql
CONFIGURE_OPTIONS += --with-sqlite
CONFIGURE_OPTIONS += --enable-static=no
CONFIGURE_OPTIONS += --without-systemd
CONFIGURE_OPTIONS += LDAP_LIBS="-lldap_r"
CONFIGURE_OPTIONS += CPPFLAGS="-I/usr/include/kerberosv5 -I/usr/include/openldap"
CONFIGURE_OPTIONS += CFLAGS="-Wno-incompatible-pointer-types -D__EXTENSIONS__ -DBUILD_IMAP_HIBERNATE"
CONFIGURE_OPTIONS += PGSQL_LIBS="-L$(PG_LIBDIR) -lpq"
CONFIGURE_OPTIONS += PGSQL_CFLAGS="-I$(PG_INCDIR)"
CONFIGURE_OPTIONS += MARIADB_LIBS="-L$(MYSQL_LIBDIR) -lmariadb"
CONFIGURE_OPTIONS += MARIADB_CFLAGS="-I$(MYSQL_INCDIR)"

# python interpreter
COMPONENT_POST_INSTALL_ACTION += ( \
        $(GSED) -i -e '1 s:\#!/usr/bin/env python[0-9.]*:\#!/usr/bin/python$(PYTHON_VERSION):' \
        $(PROTOUSRLIBDIR)/dovecot/settings-history.py ; \
        /usr/bin/elfedit -e 'dyn:value -s  RUNPATH "$(MYSQL_LIBDIR)"' $(PROTOUSRDIR)/lib/$(MACH64)/dovecot/libdriver_mysql.so ; \
        /usr/bin/elfedit -e 'dyn:value -s  RPATH "$(MYSQL_LIBDIR)"' $(PROTOUSRDIR)/lib/$(MACH64)/dovecot/libdriver_mysql.so; \
        /usr/bin/elfedit -e 'dyn:value -s  RUNPATH "$(PG_LIBDIR)"' $(PROTOUSRDIR)/lib/$(MACH64)/dovecot/libdriver_pgsql.so ; \
        /usr/bin/elfedit -e 'dyn:value -s  RPATH "$(PG_LIBDIR)"' $(PROTOUSRDIR)/lib/$(MACH64)/dovecot/libdriver_pgsql.so; )

COMPONENT_TEST_ARGS+=   -k
COMPONENT_TEST_TRANSFORMS = \
	'-n ' \
	'-e "/: ok$$/p" ' \
	'-e "/tests failed$$/p" ' \
	'-e "/: FAILED$$/p" '

# Auto-generated dependencies
REQUIRED_PACKAGES += $(GCC_RUNTIME_PKG)
REQUIRED_PACKAGES += $(GXX_RUNTIME_PKG)
REQUIRED_PACKAGES += $(ICU_LIBRARY_PKG)
REQUIRED_PACKAGES += $(MYSQL_LIBRARY_PKG)
REQUIRED_PACKAGES += $(OPENSSL_PKG)
REQUIRED_PACKAGES += $(PG_LIBRARY_PKG)
REQUIRED_PACKAGES += SUNWcs
REQUIRED_PACKAGES += compress/bzip2
REQUIRED_PACKAGES += compress/zstd
REQUIRED_PACKAGES += database/sqlite-3
REQUIRED_PACKAGES += developer/icu
REQUIRED_PACKAGES += library/lz4
REQUIRED_PACKAGES += library/openldap
REQUIRED_PACKAGES += library/pcre2
REQUIRED_PACKAGES += library/security/libsodium
REQUIRED_PACKAGES += library/xapian
REQUIRED_PACKAGES += library/zlib
REQUIRED_PACKAGES += runtime/lua-54
REQUIRED_PACKAGES += shell/ksh93
REQUIRED_PACKAGES += system/library
REQUIRED_PACKAGES += system/library/math
REQUIRED_PACKAGES.python += runtime/python
