From e02aad8c475a7413777e720103c1694f0d5e8487 Mon Sep 17 00:00:00 2001 From: Jakub Jirutka Date: Sun, 22 Jul 2018 17:47:21 +0200 Subject: main/dovecot: split pop3, lmtp and submission protocols to subpkgs I left imap in the base package, because most users expect Dovecot to provide IMAP, so moving it into a subpackage would probably confuse too many users. --- main/dovecot/APKBUILD | 38 +++++++++++++++++++++++++++++++++++++- main/dovecot/dovecot.post-upgrade | 16 ++++++++++++++++ main/dovecot/split-protocols.patch | 30 ++++++++++++++++++++++++++++++ 3 files changed, 83 insertions(+), 1 deletion(-) create mode 100644 main/dovecot/dovecot.post-upgrade create mode 100644 main/dovecot/split-protocols.patch (limited to 'main') diff --git a/main/dovecot/APKBUILD b/main/dovecot/APKBUILD index 57232f6672..c6284b5261 100644 --- a/main/dovecot/APKBUILD +++ b/main/dovecot/APKBUILD @@ -1,6 +1,7 @@ # Contributor: Valery Kartel # Contributor: Ɓukasz Jendrysik # Contributor: Michael Mason +# Contributor: Jakub Jirutka # Maintainer: Natanael Copa pkgname=dovecot pkgver=2.3.2.1 @@ -33,11 +34,14 @@ makedepends=" sqlite-dev zlib-dev " -install="$pkgname.pre-install $pkgname.post-install" +install="$pkgname.pre-install $pkgname.post-install $pkgname.post-upgrade" subpackages=" $pkgname-doc $pkgname-dev $pkgname-openrc + $pkgname-lmtpd + $pkgname-pop3d + $pkgname-submissiond $pkgname-pigeonhole-plugin-ldap:_sieve_ldap $pkgname-pigeonhole-plugin:_sieve $pkgname-sql @@ -52,6 +56,7 @@ subpackages=" source="https://www.dovecot.org/releases/$_pkgvermajor/$pkgname-$pkgver.tar.gz https://pigeonhole.dovecot.org/releases/$_pkgvermajor/$pkgname-$_pkgvermajor-pigeonhole-$_pigeonholever.tar.gz skip-iconv-check.patch + split-protocols.patch default-config.patch dovecot.logrotate dovecot.initd @@ -158,6 +163,36 @@ dev() { "$subpkgdir"/usr/lib/dovecot/ } +lmtpd() { + pkgdesc="$pkgdesc (LMTP server)" + _protocol lmtp +} + +pop3d() { + pkgdesc="$pkgdesc (POP3 daemon)" + _protocol pop3 +} + +submissiond() { + pkgdesc="$pkgdesc (mail submission agent)" + _protocol submission +} + +_protocol() { + depends="$pkgname=$pkgver-r$pkgrel" + replaces="$pkgname" # for backward compatibility + local name="$1" + local protocolsd="$subpkgdir/usr/share/dovecot/protocols.d" + + cd "$pkgdir" + _submv usr/libexec/dovecot/$name* + _submv etc/dovecot/conf.d/*-$name.conf + + mkdir -p "$protocolsd" + echo "protocols = \$protocol $name" \ + > "$protocolsd"/${subpkgname#$pkgname-}.conf +} + _sieve() { pkgdesc="Sieve and managesieve plugin for Dovecot" depends="$pkgname=$pkgver-r$pkgrel" @@ -258,6 +293,7 @@ _submv() { sha512sums="c085a0d04925485423086736a3c7d919ad0ca9efeff005890382da5333edb68c7d23ccb89fbe2ac44f8f016fc993bf2c669e450794c3ab13463676cbb47c7bf7 dovecot-2.3.2.1.tar.gz 6bc24d9241f94db795a012346d9bc94b5cc7d7ce0175c03213c2b5d179d80dec95e9bdbd50bed628c8f9f7c51639e692ba5e429212a3b4a654c1e4764ac4f11c dovecot-2.3-pigeonhole-0.5.2.tar.gz fe4fbeaedb377d809f105d9dbaf7c1b961aa99f246b77189a73b491dc1ae0aa9c68678dde90420ec53ec877c08f735b42d23edb13117d7268420e001aa30967a skip-iconv-check.patch +794875dbf0ded1e82c5c3823660cf6996a7920079149cd8eed54231a53580d931b966dfb17185ab65e565e108545ecf6591bae82f935ab1b6ff65bb8ee93d7d5 split-protocols.patch ba76394aac0dc16209855f7a9a66d6828e7cb198400d199cbb129a787f8037c2979eed1cb460bd9ed0914d084d8913959c0293c6dd29ea6b1c12c277fd643df0 default-config.patch 9f19698ab45969f1f94dc4bddf6de59317daee93c9421c81f2dbf8a7efe6acf89689f1d30f60f536737bb9526c315215d2bce694db27e7b8d7896036a59c31f0 dovecot.logrotate d2758a22e5b3d1d1be867fd237466a1b5fe7ecd4355fdc51fa9e5ceab48a862f8a5d83992d2ae17a3e0b2c611ff92d0de833d7e1c5f00c6f4bfb94403dbda8e4 dovecot.initd" diff --git a/main/dovecot/dovecot.post-upgrade b/main/dovecot/dovecot.post-upgrade new file mode 100644 index 0000000000..2bdd73d967 --- /dev/null +++ b/main/dovecot/dovecot.post-upgrade @@ -0,0 +1,16 @@ +#!/bin/sh + +ver_new="$1" +ver_old="$2" + +if [ "$(apk version -t "$ver_old" "2.3.2.1-r1")" = "<" ]; then + cat >&2 <<-EOF + * + * POP3, LMTP and Submission protocols were moved into subpackages: + * dovecot-pop3d, dovecot-lmtpd and dovecot-submissiond. If you use + * some of these protocols, you have to install particular subpackage. + * + EOF +fi + +exit 0 diff --git a/main/dovecot/split-protocols.patch b/main/dovecot/split-protocols.patch new file mode 100644 index 0000000000..b4bed2ccbe --- /dev/null +++ b/main/dovecot/split-protocols.patch @@ -0,0 +1,30 @@ +For each protocol $prot, which is moved into subpackage $subname, +is installed file /usr/share/dovecot/protocols.d/$subname.conf with: + + protocols = $protocols $prot + +--- a/doc/example-config/dovecot.conf ++++ b/doc/example-config/dovecot.conf +@@ -20,8 +20,9 @@ + # options. The paths listed here are for configure --prefix=/usr + # --sysconfdir=/etc --localstatedir=/var + +-# Protocols we want to be serving. +-#protocols = imap pop3 lmtp submission ++# Enable installed protocols. ++#protocols = imap ++!include_try /usr/share/dovecot/protocols.d/*.conf + + # A comma separated list of IPs or hosts where to listen in for connections. + # "*" listens in all IPv4 interfaces, "::" listens in all IPv6 interfaces. +--- a/src/master/master-settings.c.orig ++++ b/src/master/master-settings.c +@@ -206,7 +206,7 @@ + .state_dir = PKG_STATEDIR, + .libexec_dir = PKG_LIBEXECDIR, + .instance_name = PACKAGE, +- .protocols = "imap pop3 lmtp", ++ .protocols = "imap", + .listen = "*, ::", + .ssl = "yes:no:required", + .default_internal_user = "dovecot", -- cgit v1.2.3