1SUMMARY = "Dovecot is an open source IMAP and POP3 email server"
2HOMEPAGE = "https://www.dovecot.org/"
3DESCRIPTION = "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."
4SECTION = "mail"
5LICENSE = "LGPL-2.1-only & MIT"
6LIC_FILES_CHKSUM = "file://COPYING;md5=2956560272e5b31d9d64f03111732048"
7
8SRC_URI = "http://dovecot.org/releases/2.3/dovecot-${PV}.tar.gz \
9           file://0001-configure.ac-convert-AC_TRY_RUN-to-AC_TRY_LINK-state.patch \
10           file://dovecot.service \
11           file://dovecot.socket \
12           file://0001-not-check-pandoc.patch \
13           file://0001-m4-Check-for-libunwind-instead-of-libunwind-generic.patch \
14           "
15
16SRC_URI[md5sum] = "2f03532cec3280ae45a101a7a55ccef5"
17SRC_URI[sha256sum] = "c8b3d7f3af1e558a3ff0f970309d4013a4d3ce136f8c02a53a3b05f345b9a34a"
18
19DEPENDS = "openssl xz zlib bzip2 libcap icu libtirpc bison-native"
20CFLAGS += "-I${STAGING_INCDIR}/tirpc"
21LDFLAGS += "-ltirpc"
22
23inherit autotools pkgconfig systemd useradd gettext
24
25PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ldap pam', d)}"
26
27PACKAGECONFIG[pam] = "--with-pam,--without-pam,libpam,"
28PACKAGECONFIG[ldap] = "--with-ldap=plugin,--without-ldap,openldap,"
29PACKAGECONFIG[lz4] = "--with-lz4,--without-lz4,lz4,"
30
31# From native build in armv7a-hf/eglibc
32CACHED_CONFIGUREVARS += "i_cv_signed_size_t=no \
33                         i_cv_gmtime_max_time_t=32 \
34                         i_cv_signed_time_t=yes \
35                         i_cv_mmap_plays_with_write=yes \
36                         i_cv_fd_passing=yes \
37                         i_cv_c99_vsnprintf=yes \
38                         lib_cv___va_copy=yes \
39                         lib_cv_va_copy=yes \
40                         lib_cv_va_val_copy=yes \
41                        "
42
43# hardcode epoll() to avoid running unsafe tests
44# BSD needs kqueue and uclibc poll()
45EXTRA_OECONF = " --with-ioloop=epoll \
46                 --with-systemdsystemunitdir=${systemd_unitdir}/system"
47
48# Uses hidden symbols
49# libssl_iostream_openssl.so: undefined reference to `ssl_iostream_handshake'
50LTO = ""
51
52SYSTEMD_PACKAGES = "${PN}"
53SYSTEMD_SERVICE:${PN} = "dovecot.service dovecot.socket"
54SYSTEMD_AUTO_ENABLE = "disable"
55
56do_install:append () {
57    install -d 755 ${D}/etc/dovecot
58    touch 644 ${D}/etc/dovecot/dovecot.conf
59    install -m 0644 ${WORKDIR}/dovecot.service ${D}${systemd_unitdir}/system
60    sed -i -e 's#@SYSCONFDIR@#${sysconfdir}#g' ${D}${systemd_unitdir}/system/dovecot.service
61    sed -i -e 's#@SBINDIR@#${sbindir}#g' ${D}${systemd_unitdir}/system/dovecot.service
62}
63
64USERADD_PACKAGES = "${PN}"
65USERADD_PARAM:${PN} = "-r -d ${libexecdir} -M -s ${base_sbindir}/nologin -g dovecot dovecot; \
66                      -r -d ${libexecdir} -M -s ${base_sbindir}/nologin -g dovenull dovenull"
67GROUPADD_PARAM:${PN} = "-f -r dovecot;-f -r dovenull"
68
69FILES:${PN} += "${libdir}/dovecot/*plugin.so \
70                ${libdir}/dovecot/libfs_compress.so \
71                ${libdir}/dovecot/libssl_iostream_openssl.so"
72FILES:${PN}-staticdev += "${libdir}/dovecot/*/*.a"
73FILES:${PN}-dev += "${libdir}/dovecot/libdovecot*.so"
74FILES:${PN}-dbg += "${libdir}/dovecot/*/.debug"
75
76# CVE-2016-4983 affects only postinstall script on specific distribution
77CVE_CHECK_IGNORE += "CVE-2016-4983"
78