package/dovecot: New package
authorBernd Kuhls <bernd.kuhls@t-online.de>
Wed, 29 Oct 2014 20:14:04 +0000 (21:14 +0100)
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Thu, 30 Oct 2014 21:18:52 +0000 (22:18 +0100)
[Thomas:
 - slightly adjust the prompt of options in the Config.in file
 - fix license: it's just LGPLv2.1, no exceptions. Parts of the code
   are under public domain, or under the MIT license, but the
   combination is under LGPLv2.1.
 - rewrap one comment in the .mk file.]

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
package/Config.in
package/dovecot/Config.in [new file with mode: 0644]
package/dovecot/dovecot.mk [new file with mode: 0644]

index 5de4df9fefbb6e3e5a54b96a7984faabfc547233..5d5a9eeab6cdd7c9b5406307cf0e6d28e617cef2 100644 (file)
@@ -955,6 +955,7 @@ menu "Miscellaneous"
 endmenu
 
 menu "Mail"
+       source "package/dovecot/Config.in"
        source "package/exim/Config.in"
        source "package/fetchmail/Config.in"
        source "package/heirloom-mailx/Config.in"
diff --git a/package/dovecot/Config.in b/package/dovecot/Config.in
new file mode 100644 (file)
index 0000000..43a0bbf
--- /dev/null
@@ -0,0 +1,56 @@
+config BR2_PACKAGE_DOVECOT
+       bool "dovecot"
+       depends on BR2_INET_IPV6
+       depends on BR2_USE_MMU # fork()
+       help
+         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.
+
+         http://www.dovecot.org
+
+if BR2_PACKAGE_DOVECOT
+
+config BR2_PACKAGE_DOVECOT_BZIP2
+       bool "bzip2 support"
+       select BR2_PACKAGE_BZIP2
+       help
+         Enable bzip2 support.
+
+config BR2_PACKAGE_DOVECOT_MYSQL
+       bool "mysql support"
+       select BR2_PACKAGE_MYSQL
+       depends on BR2_INSTALL_LIBSTDCPP
+       depends on BR2_TOOLCHAIN_HAS_THREADS
+       help
+         Enable MySQL support.
+
+comment "mysql support needs a toolchain w/ C++, threads"
+       depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS
+
+config BR2_PACKAGE_DOVECOT_OPENSSL
+       bool "openssl support"
+       select BR2_PACKAGE_OPENSSL
+       select BR2_PACKAGE_ZLIB
+       help
+         Enable OpenSSL support.
+
+config BR2_PACKAGE_DOVECOT_SQLITE
+       bool "sqlite support"
+       select BR2_PACKAGE_SQLITE
+       help
+         Enable SQLite support.
+
+config BR2_PACKAGE_DOVECOT_ZLIB
+       bool "zlib support"
+       select BR2_PACKAGE_ZLIB
+       help
+         Enable zlib support.
+
+endif # BR2_PACKAGE_DOVECOT
+
+comment "dovecot needs a toolchain w/ IPv6"
+       depends on BR2_USE_MMU
+       depends on !BR2_INET_IPV6
diff --git a/package/dovecot/dovecot.mk b/package/dovecot/dovecot.mk
new file mode 100644 (file)
index 0000000..fd597ee
--- /dev/null
@@ -0,0 +1,97 @@
+################################################################################
+#
+# dovecot
+#
+################################################################################
+
+DOVECOT_VERSION_MAJOR = 2.2
+DOVECOT_VERSION = $(DOVECOT_VERSION_MAJOR).15
+DOVECOT_SITE = http://www.dovecot.org/releases/$(DOVECOT_VERSION_MAJOR)
+DOVECOT_INSTALL_STAGING = YES
+DOVECOT_LICENSE = LGPLv2.1
+DOVECOT_LICENSE_FILES = COPYING COPYING.LGPL COPYING.MIT
+DOVECOT_DEPENDENCIES = host-pkgconf $(if $(BR2_PACKAGE_LIBICONV),libiconv)
+
+DOVECOT_CONF_ENV = \
+       RPCGEN=__disable_RPCGEN_rquota \
+       i_cv_epoll_works=yes \
+       i_cv_inotify_works=yes \
+       i_cv_posix_fallocate_works=no \
+       i_cv_signed_size_t=no \
+       i_cv_gmtime_max_time_t=32 \
+       i_cv_signed_time_t=yes \
+       i_cv_mmap_plays_with_write=yes \
+       i_cv_fd_passing=yes \
+       i_cv_c99_vsnprintf=yes \
+       lib_cv_va_copy=yes \
+       lib_cv___va_copy=yes \
+       lib_cv_va_val_copy=yes
+
+DOVECOT_CONF_OPTS = --without-docs
+
+ifeq ($(BR2_PACKAGE_DOVECOT_MYSQL)$(BR2_PACKAGE_DOVECOT_SQLITE),)
+DOVECOT_CONF_OPTS += --without-sql
+endif
+
+ifeq ($(BR2_PACKAGE_DOVECOT_BZIP2),y)
+DOVECOT_CONF_OPTS += --with-bzlib
+DOVECOT_DEPENDENCIES += bzip2
+else
+DOVECOT_CONF_OPTS += --without-bzlib
+endif
+
+ifeq ($(BR2_PACKAGE_LIBCAP),y)
+DOVECOT_CONF_OPTS += --with-libcap
+DOVECOT_DEPENDENCIES += libcap
+else
+DOVECOT_CONF_OPTS += --without-libcap
+endif
+
+ifeq ($(BR2_PACKAGE_DOVECOT_MYSQL),y)
+DOVECOT_CONF_ENV += MYSQL_CONFIG="$(STAGING_DIR)/usr/bin/mysql_config"
+DOVECOT_CONF_OPTS += --with-mysql
+DOVECOT_DEPENDENCIES += mysql
+else
+DOVECOT_CONF_OPTS += --without-mysql
+endif
+
+ifeq ($(BR2_PACKAGE_DOVECOT_OPENSSL),y)
+DOVECOT_CONF_OPTS += --with-ssl=openssl
+DOVECOT_DEPENDENCIES += openssl
+else
+DOVECOT_CONF_OPTS += --with-ssl=no
+endif
+
+ifeq ($(BR2_PACKAGE_DOVECOT_SQLITE),y)
+DOVECOT_CONF_OPTS += --with-sqlite
+DOVECOT_DEPENDENCIES += sqlite
+else
+DOVECOT_CONF_OPTS += --without-sqlite
+endif
+
+ifeq ($(BR2_PACKAGE_DOVECOT_ZLIB),y)
+DOVECOT_CONF_OPTS += --with-zlib
+DOVECOT_DEPENDENCIES += zlib
+else
+DOVECOT_CONF_OPTS += --without-zlib
+endif
+
+# fix paths to avoid using /usr/lib/dovecot
+define DOVECOT_POST_CONFIGURE
+       for i in $$(find $(@D) -name "Makefile"); do \
+               $(SED) 's%^pkglibdir =.*%pkglibdir = \$$(libdir)%' $$i; \
+               $(SED) 's%^pkglibexecdir =.*%pkglibexecdir = \$$(libexecdir)%' $$i; \
+       done
+endef
+
+DOVECOT_POST_CONFIGURE_HOOKS += DOVECOT_POST_CONFIGURE
+
+# dovecot installs dovecot-config in usr/lib/, therefore
+# DOVECOT_CONFIG_SCRIPTS can not be used to rewrite paths
+define DOVECOT_FIX_STAGING_DOVECOT_CONFIG
+       $(SED) 's,^LIBDOVECOT_INCLUDE=.*$$,LIBDOVECOT_INCLUDE=\"-I$(STAGING_DIR)/usr/include/dovecot\",' $(STAGING_DIR)/usr/lib/dovecot-config
+endef
+
+DOVECOT_POST_INSTALL_STAGING_HOOKS += DOVECOT_FIX_STAGING_DOVECOT_CONFIG
+
+$(eval $(autotools-package))