[Buildroot] [git commit] package/dovecot: New package

Thomas Petazzoni thomas.petazzoni at free-electrons.com
Thu Oct 30 21:18:52 UTC 2014


commit: http://git.buildroot.net/buildroot/commit/?id=b94e18ecda66cd8b280a1fb5d1a060fd4e635658
branch: http://git.buildroot.net/buildroot/commit/?id=refs/heads/master

[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 at free-electrons.com>
---
 package/Config.in          |    1 +
 package/dovecot/Config.in  |   56 +++++++++++++++++++++++++
 package/dovecot/dovecot.mk |   97 ++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 154 insertions(+), 0 deletions(-)

diff --git a/package/Config.in b/package/Config.in
index 5de4df9..5d5a9ee 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -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
index 0000000..43a0bbf
--- /dev/null
+++ b/package/dovecot/Config.in
@@ -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
index 0000000..fd597ee
--- /dev/null
+++ b/package/dovecot/dovecot.mk
@@ -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))


More information about the buildroot mailing list