Browse Source

pigeonhole: fix runtime dependency on dovecot's ABI

Closes #5062. With ABI_VERSION declaration in dovecot's Makefile
introduced in PR #5182, pigeonhole plugin will now be rebuilt on every
dovecot upgrade. To announce the rebuilt pigeonhole plugin to opkg,
introduce a different model of version numbering. The new version
numbering now includes both dovecot and pigeonhole plugin version
numbers. Therefore, the rebuilt pigeonhole plugin will be visible to
opkg whenever dovecot or pigeonhole plugin version changes.

Rename "pigeonhole" to "dovecot-pigeonhole". There are several reasons
for renaming the package:

1. pigeonhole is a plugin. There seems to be a convention to name
plugins by adding corresponding suffixes to the parent package name,
such as lua-*, luci-*, php7-mod-*, perlbase-*, transmission-* etc.

2. When named as "dovecot-pigeonhole", the pigeonhole plugin is
displayed right next to dovecot in config manager ("make menuconfig")
and is therefore highly visible to anyone who explores the available
modules for dovecot.

3. When named as "dovecot-pigeonhole", the package version number
consisting of both dovecot and pigeonhole version numbers makes more
sense: "dovecot-pigeonhole_2.2.33.2-0.4.20-2" looks more comprehensible
than "pigeonhole_2.2.33.2-0.4.20-2", however admittedly both variants
look rather ugly.

Add ManageSieve to the package. Adding managesieve-login and its
libraries increases the size of the package by about 11% from 702061
bytes to 781294 bytes on the bcm53xx platform. As dovecot is unlikely
to be used on a low-end LEDE/OpenWrt box, the addition of ~80KB to
the package size is not likely to make a noticeable difference but it
will add the capability to use pigeonhole plugin for dovecot with
systems that talk ManageSieve, such as the RoundCube.

Signed-off-by: Val Kulkov <val.kulkov@gmail.com>
lilik-openwrt-22.03
Val Kulkov 7 years ago
parent
commit
6c6a40ab57
1 changed files with 13 additions and 11 deletions
  1. +13
    -11
      mail/pigeonhole/Makefile

+ 13
- 11
mail/pigeonhole/Makefile View File

@ -7,50 +7,52 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=pigeonhole
PKG_VERSION:=0.4.20
PKG_RELEASE:=1
PKG_NAME:=dovecot-pigeonhole
PKG_VERSION_PLUGIN:=0.4.20
PKG_VERSION_DOVECOT:=$(shell make --no-print-directory -C ../dovecot/ val.PKG_VERSION V=s)
PKG_VERSION:=$(PKG_VERSION_DOVECOT)-$(PKG_VERSION_PLUGIN)
PKG_RELEASE:=2
DOVECOT_VERSION:=2.2 DOVECOT_VERSION:=2.2
PKG_SOURCE:=dovecot-$(DOVECOT_VERSION)-$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE:=dovecot-$(DOVECOT_VERSION)-pigeonhole-$(PKG_VERSION_PLUGIN).tar.gz
PKG_SOURCE_URL:=https://pigeonhole.dovecot.org/releases/$(DOVECOT_VERSION) PKG_SOURCE_URL:=https://pigeonhole.dovecot.org/releases/$(DOVECOT_VERSION)
PKG_HASH:=6fe17d0b8f25f2ad580e01ad81ce47a9e965255e383a1f80e455f9ca0f00be5b PKG_HASH:=6fe17d0b8f25f2ad580e01ad81ce47a9e965255e383a1f80e455f9ca0f00be5b
PKG_LICENSE:=LGPL-2.1 PKG_LICENSE:=LGPL-2.1
PKG_LICENSE_FILES:=COPYING COPYING.LGPL PKG_LICENSE_FILES:=COPYING COPYING.LGPL
PKG_BUILD_DIR:=$(BUILD_DIR)/dovecot-$(DOVECOT_VERSION)-$(PKG_NAME)-$(PKG_VERSION)
PKG_BUILD_DIR:=$(BUILD_DIR)/dovecot-$(DOVECOT_VERSION)-pigeonhole-$(PKG_VERSION_PLUGIN)
PKG_INSTALL:=1 PKG_INSTALL:=1
include $(INCLUDE_DIR)/package.mk include $(INCLUDE_DIR)/package.mk
define Package/pigeonhole
define Package/dovecot-pigeonhole
SECTION:=mail SECTION:=mail
CATEGORY:=Mail CATEGORY:=Mail
DEPENDS:=+dovecot DEPENDS:=+dovecot
EXTRA_DEPENDS:=dovecot (>= $(PKG_VERSION_DOVECOT))
TITLE:=Mail filtering facilities for Dovecot TITLE:=Mail filtering facilities for Dovecot
MAINTAINER:=W. Michael Petullo <mike@flyn.org> MAINTAINER:=W. Michael Petullo <mike@flyn.org>
URL:=https://wiki2.dovecot.org/Pigeonhole URL:=https://wiki2.dovecot.org/Pigeonhole
endef endef
define Package/pigeonhole/description
define Package/dovecot-pigeonhole/description
Pigeonhole provides mail filtering facilities for Dovecot using the Sieve Pigeonhole provides mail filtering facilities for Dovecot using the Sieve
(RFC 5228) language. (RFC 5228) language.
endef endef
CONFIGURE_ARGS += \ CONFIGURE_ARGS += \
--with-dovecot=$(STAGING_DIR)/usr/lib/dovecot/ \
--without-managesieve
--with-dovecot=$(STAGING_DIR)/usr/lib/dovecot/
CONFIGURE_VARS += \ CONFIGURE_VARS += \
LDFLAGS="$(TARGET_LDFLAGS) -L$(STAGING_DIR)/usr/lib/dovecot/" \ LDFLAGS="$(TARGET_LDFLAGS) -L$(STAGING_DIR)/usr/lib/dovecot/" \
CPPFLAGS="$(TARGET_CPPFLAGS) -I$(STAGING_DIR)/usr/include/dovecot/" CPPFLAGS="$(TARGET_CPPFLAGS) -I$(STAGING_DIR)/usr/include/dovecot/"
define Package/pigeonhole/install
define Package/dovecot-pigeonhole/install
$(INSTALL_DIR) $(1)/usr/bin $(1)/usr/lib/dovecot/ $(INSTALL_DIR) $(1)/usr/bin $(1)/usr/lib/dovecot/
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/* $(1)/usr/bin/ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/* $(1)/usr/bin/
$(CP) $(PKG_INSTALL_DIR)/usr/lib/dovecot/* $(1)/usr/lib/dovecot/ $(CP) $(PKG_INSTALL_DIR)/usr/lib/dovecot/* $(1)/usr/lib/dovecot/
find $(1)/usr/lib/dovecot/ -name "*.a" -o -name "*.la" | xargs rm find $(1)/usr/lib/dovecot/ -name "*.a" -o -name "*.la" | xargs rm
endef endef
$(eval $(call BuildPackage,pigeonhole))
$(eval $(call BuildPackage,dovecot-pigeonhole))

Loading…
Cancel
Save