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           file://1ccd5b54a408d12fce0c94ab0bbaedbb5ef69830.patch \
15           "
16SRC_URI[sha256sum] = "2d90a178c4297611088bf7daae5492a3bc3d5ab6328c3a032eb425d2c249097e"
17
18DEPENDS = "openssl xz zlib bzip2 libcap icu libtirpc bison-native"
19CFLAGS += "-I${STAGING_INCDIR}/tirpc"
20LDFLAGS += "-ltirpc"
21
22inherit autotools pkgconfig systemd useradd gettext multilib_header
23
24PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ldap pam systemd', d)}"
25
26PACKAGECONFIG[pam] = "--with-pam,--without-pam,libpam,"
27PACKAGECONFIG[systemd] = "--with-systemd,--without-systemd,systemd,"
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
47SYSTEMD_PACKAGES = "${PN}"
48SYSTEMD_SERVICE:${PN} = "dovecot.service dovecot.socket"
49SYSTEMD_AUTO_ENABLE = "disable"
50
51do_install:append () {
52    rm -rf ${D}${libdir}/dovecot/dovecot-config
53    install -d 755 ${D}/etc/dovecot
54    touch ${D}/etc/dovecot/dovecot.conf
55    chmod 644 ${D}/etc/dovecot/dovecot.conf
56    if [ "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}" ]; then
57        install -m 0644 ${UNPACKDIR}/dovecot.service ${D}${systemd_unitdir}/system
58        sed -i -e 's#@SYSCONFDIR@#${sysconfdir}#g' ${D}${systemd_unitdir}/system/dovecot.service
59        sed -i -e 's#@SBINDIR@#${sbindir}#g' ${D}${systemd_unitdir}/system/dovecot.service
60    fi
61    oe_multilib_header dovecot/config.h
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
76CVE_STATUS[CVE-2016-4983] = "not-applicable-platform: Affects only postinstall script on specific distribution."
77