From 12f0caf3b4f7a79b0e6d93a5e0d0abe705008232 Mon Sep 17 00:00:00 2001 From: Val Kulkov Date: Tue, 28 Nov 2017 00:50:43 -0500 Subject: [PATCH] dovecot: prepare for runtime dependency by plugins Add ABI_VERSION declaration in order to tell dovecot plugins that are runtime-dependent on dovecot's Application Binary Interface (ABI) version, such as the pigeonhole mail filter, that they need to be rebuilt each time the dovecot's ABI version changes. This PR is not yet closing issue #5062. A forthcoming PR for pigeonhole package will close the issue. Introduce a new configuration parameter to enable ICU (i18n) support. Make the ICU disabled by default. Introduce PKG_CONFIG_DEPENDS with the list of configuration parameters triggering rebuild of dovecot. Declare the conffiles section to save dovecot's configuration files and its init.d script on sysupgrade. Introduce a new package, dovecot-utils, to contain doveadm and dsync utilities: closes #4912. Correct the destination directory for the installation of example-config files. At present, the example files are installed into /usr/share/doc/dovecot/example-config/example-config. Signed-off-by: Val Kulkov --- mail/dovecot/Makefile | 45 ++++++++++++++++++++++++++++++++++++------- 1 file changed, 38 insertions(+), 7 deletions(-) diff --git a/mail/dovecot/Makefile b/mail/dovecot/Makefile index 381087b0c7..5fc3f8218e 100644 --- a/mail/dovecot/Makefile +++ b/mail/dovecot/Makefile @@ -9,15 +9,22 @@ include $(TOPDIR)/rules.mk PKG_NAME:=dovecot PKG_VERSION:=2.2.33.2 -PKG_RELEASE:=1 +PKG_RELEASE:=2 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=http://www.dovecot.org/releases/2.2 PKG_HASH:=fe1e3b78609a56ee22fc209077e4b75348fa1bbd54c46f52bde2472a4c4cee84 PKG_LICENSE:=LGPL-2.1 MIT BSD-3-Clause Unique PKG_LICENSE_FILES:=COPYING COPYING.LGPL COPYING.MIT +PKG_MAINTAINER:=Lucian Cristian PKG_BUILD_DEPENDS:=libiconv +PKG_CONFIG_DEPENDS:= \ + CONFIG_DOVECOT_LDAP \ + CONFIG_DOVECOT_MYSQL \ + CONFIG_DOVECOT_PGSQL \ + CONFIG_DOVECOT_SQLITE \ + CONFIG_DOVECOT_ICU PKG_FIXUP:=autoreconf PKG_INSTALL:=1 @@ -27,11 +34,11 @@ include $(INCLUDE_DIR)/package.mk define Package/dovecot SECTION:=mail CATEGORY:=Mail - DEPENDS:=+DOVECOT_LDAP:libopenldap +DOVECOT_MYSQL:libmysqlclient +DOVECOT_PGSQL:libpq +DOVECOT_SQLITE:libsqlite3 +libopenssl +librt +zlib +libbz2 +libcap + DEPENDS:=+DOVECOT_LDAP:libopenldap +DOVECOT_MYSQL:libmysqlclient +DOVECOT_PGSQL:libpq +DOVECOT_SQLITE:libsqlite3 +libopenssl +librt +zlib +libbz2 +libcap +DOVECOT_ICU:icu TITLE:=An IMAP and POP3 daemon - MAINTAINER:=Lucian Cristian URL:=http://www.dovecot.org/ USERID:=dovecot=59:dovecot=59 + ABI_VERSION:=$(PKG_VERSION) endef define Package/dovecot/description @@ -61,9 +68,26 @@ define Package/dovecot/config default n help Implements SQLite DB support in dovecot. + config DOVECOT_ICU + bool "Enable i18n features" + default n + help + Enable ICU (International Components for Unicode) support. endmenu endef +define Package/dovecot/conffiles +/etc/init.d/dovecot +/etc/dovecot/ +endef + +define Package/dovecot-utils + SECTION:=mail + CATEGORY:=Mail + DEPENDS:=+dovecot + TITLE:=doveadm and dsync utilities for Dovecot +endef + CONFIGURE_ARGS += \ --without-gssapi \ --without-pam \ @@ -71,11 +95,11 @@ CONFIGURE_ARGS += \ --with-notify=dnotify \ --without-lzma \ --without-lz4 \ - --with-icu=no \ $(if $(CONFIG_DOVECOT_LDAP),--with-ldap=yes,--with-ldap=no) \ $(if $(CONFIG_DOVECOT_MYSQL),--with-mysql=yes,--with-mysql=no) \ $(if $(CONFIG_DOVECOT_PGSQL),--with-pgsql=yes,--with-pgsql=no) \ - $(if $(CONFIG_DOVECOT_SQLITE),--with-sqlite=yes,--with-sqlite=no) + $(if $(CONFIG_DOVECOT_SQLITE),--with-sqlite=yes,--with-sqlite=no) \ + $(if $(CONFIG_DOVECOT_ICU),--with-icu=yes,--with-icu=no) CONFIGURE_VARS += \ RPCGEN= \ @@ -101,13 +125,13 @@ endef define Package/dovecot/install $(INSTALL_DIR) $(1)/etc/init.d \ $(1)/etc/dovecot \ - $(1)/usr/share/doc/dovecot/example-config \ + $(1)/usr/share/doc/dovecot \ $(1)/usr/lib/dovecot \ $(1)/usr/bin \ $(1)/usr/sbin $(CP) $(PKG_INSTALL_DIR)/etc/dovecot/* $(1)/etc/dovecot/ $(CP) $(PKG_INSTALL_DIR)/usr/lib/dovecot/* $(1)/usr/lib/dovecot/ - $(CP) $(PKG_INSTALL_DIR)/usr/share/doc/dovecot/example-config $(1)/usr/share/doc/dovecot/example-config + $(CP) $(PKG_INSTALL_DIR)/usr/share/doc/dovecot/example-config $(1)/usr/share/doc/dovecot/ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/doveconf $(1)/usr/bin/ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/* $(1)/usr/sbin/ $(INSTALL_BIN) ./files/dovecot.init $(1)/etc/init.d/dovecot @@ -115,4 +139,11 @@ define Package/dovecot/install find $(1)/usr/lib/dovecot/ -name "*.a" -o -name "*.la" | xargs rm endef +define Package/dovecot-utils/install + $(INSTALL_DIR) $(1)/usr/bin + $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/doveadm $(1)/usr/bin/ + $(CP) $(PKG_INSTALL_DIR)/usr/bin/dsync $(1)/usr/bin/ +endef + $(eval $(call BuildPackage,dovecot)) +$(eval $(call BuildPackage,dovecot-utils))