aports/main/dovecot/APKBUILD
Channing Bellamy 5425a3cdd7 main/dovecot: upgrade pigeonhole to 2.4.1-4
Fixes sievec script compilation failure.
The setting-types-pigeonhole patch has already been incorporated upstream in upstream commit b52a412394c1f47b22363f8fd1752aaeaaa01953.

Signed-off-by: Channing Bellamy <bllcha013@myuct.ac.za>
2025-05-31 23:32:37 +00:00

376 lines
9 KiB
Text

# Contributor: Valery Kartel <valery.kartel@gmail.com>
# Contributor: Łukasz Jendrysik <scadu@yandex.com>
# Contributor: Michael Mason <ms13sp@gmail.com>
# Contributor: Jakub Jirutka <jakub@jirutka.cz>
# Contributor: Martin Uddén <martin.udden@gmail.com>
# Contributor: Niklas Meyer <derlinkman@gmail.com>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=dovecot
pkgver=2.4.1
_pkgver=$pkgver-4
# rebuild community/dovecot-fts-xapian on version changes
case "$pkgver" in
*.*.*.*) _pkgverminor=${pkgver%.*.*};;
*.*.*) _pkgverminor=${pkgver%.*};;
esac
pkgrel=2
_pigeonholever=2.4.1-4
pkgdesc="IMAP and POP3 server"
url="https://www.dovecot.org/"
arch="all"
license="MIT AND LGPL-2.1-or-later"
depends="openssl>3"
pkgusers="dovecot dovenull"
pkggroups="dovecot dovenull"
makedepends="
autoconf
automake
bzip2-dev
clucene-dev
expat-dev
gettext-dev
heimdal-dev
icu-dev
libcap-dev
libpq-dev
libsodium-dev
libstemmer-dev
libtool
linux-headers
lua5.3-dev
lz4-dev
mariadb-connector-c-dev
openldap-dev
openssl-dev>3
sqlite-dev
xapian-core-dev
zlib-dev
zstd-dev
"
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
$pkgname-pgsql
$pkgname-mysql
$pkgname-sqlite
$pkgname-gssapi
$pkgname-ldap
$pkgname-lua
$pkgname-fts-solr:_fts_solr \
$pkgname-fts-flatcurve:_fts_flatcurve
"
source="https://www.dovecot.org/releases/$_pkgverminor/dovecot-$_pkgver.tar.gz
$pkgname-pigeonhole-$_pigeonholever.tar.gz::https://pigeonhole.dovecot.org/releases/$_pkgverminor/dovecot-pigeonhole-$_pigeonholever.tar.gz
$pkgname-config-Fix-config-filter-sorting-order.patch::https://github.com/dovecot/core/commit/9f3430be9133efe74e6f0c4943abc52b5a0ef789.patch
skip-iconv-check.patch
headers.patch
dovecot.logrotate
dovecot.initd
"
builddir="$srcdir/$pkgname-$_pkgver"
_builddir_pigeonhole="$srcdir/$pkgname-pigeonhole-$_pigeonholever"
options="!check" # tests being weird
# secfixes:
# 2.3.21.1-r0:
# - CVE-2024-23184
# - CVE-2024-23185
# 2.3.19.1-r5:
# - CVE-2022-30550
# 2.3.15-r0:
# - CVE-2021-29157
# - CVE-2021-33515
# 2.3.13-r0:
# - CVE-2020-24386
# - CVE-2020-25275
# 2.3.11.3-r0:
# - CVE-2020-12100
# - CVE-2020-12673
# - CVE-2020-12674
# 2.3.10.1-r0:
# - CVE-2020-10957
# - CVE-2020-10958
# - CVE-2020-10967
# 2.3.9.3-r0:
# - CVE-2020-7046
# - CVE-2020-7957
# 2.3.9.2-r0:
# - CVE-2019-19722
# 2.3.7.2-r0:
# - CVE-2019-11500
# 2.3.6-r0:
# - CVE-2019-11499
# - CVE-2019-11494
# - CVE-2019-10691
# 2.3.5.1-r0:
# - CVE-2019-7524
# 2.3.4.1-r0:
# - CVE-2019-3814
# 2.3.1-r0:
# - CVE-2017-15130
# - CVE-2017-14461
# - CVE-2017-15132
prepare() {
default_prepare
update_config_sub
cd "$_builddir_pigeonhole"
update_config_sub
}
_configure() {
./configure \
--build=$CBUILD \
--host=$CHOST \
--prefix=/usr \
--localstatedir=/var \
--sysconfdir=/etc \
--mandir=/usr/share/man \
--infodir=/usr/share/info \
--disable-static \
"$@"
}
build() {
_configure \
--with-gssapi=plugin \
--with-ldap=plugin \
--with-sql=plugin \
--with-lua=plugin \
--with-flatcurve \
--with-mysql \
--with-sqlite \
--with-pgsql \
--with-solr \
--with-bzlib \
--with-icu \
--with-lz4 \
--with-sodium \
--with-stemmer \
--with-zstd \
--with-ssldir=/etc/ssl/dovecot \
--with-rundir=/run/dovecot
make
# Build pigeonhole plugin
cd "$_builddir_pigeonhole"
_configure \
--with-dovecot="$builddir" \
--with-ldap=plugin
make
}
check() {
make check
# https://gitlab.alpinelinux.org/alpine/aports/-/issues/17050
./src/config/doveconf -d
}
package() {
make DESTDIR="$pkgdir" install
cd "$pkgdir"
install -d ./etc/ssl/dovecot
install -D -m 755 "$srcdir"/dovecot.initd ./etc/init.d/dovecot
install -D -m 644 "$srcdir"/dovecot.logrotate ./etc/logrotate.d/dovecot
# default config
rm ./etc/dovecot/*
rm ./usr/share/doc/dovecot/mkcert.sh
mv ./usr/share/doc/dovecot/dovecot-openssl.cnf ./etc/dovecot/
# mv ./usr/share/doc/dovecot/example-config/dovecot* \
# ./usr/share/doc/dovecot/example-config/conf.d \
# ./etc/dovecot/
# rm -fr ./usr/share/doc/dovecot/example-config
# Fix SSL dirs in default config.
# sed -i -e 's,^ssl_cert =.*,ssl_cert = </etc/ssl/dovecot/server.pem,' \
# -e 's,^ssl_key =.*,ssl_key = </etc/ssl/dovecot/server.key,' \
# ./etc/dovecot/conf.d/10-ssl.conf
# Set default passdb to passwd and create appropriate 'users' file.
# install -m 640 -o dovecot -g mail /dev/null ./etc/dovecot/users
# sed -i -e 's,!include auth-system.conf.ext,!include auth-passwdfile.conf.ext,' \
# -e 's,#!include auth-passwdfile.conf.ext,#!include auth-system.conf.ext,' \
# ./etc/dovecot/conf.d/10-auth.conf
# Installing pigeonhole plugin.
cd "$_builddir_pigeonhole"
make install DESTDIR="$pkgdir"
# Moving config in the correct place
# mv "$pkgdir"/usr/share/doc/dovecot/example-config/conf.d/* \
# "$pkgdir"/etc/dovecot/conf.d
# Remove libtool archives.
find "$pkgdir" -name '*.la' -exec rm -f {} +
}
dev() {
default_dev
mkdir -p "$subpkgdir"/usr/lib/dovecot
mv "$pkgdir"/usr/lib/dovecot/dovecot-config \
"$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 = \$protocols $name" \
> "$protocolsd"/${subpkgname#"$pkgname"-}.conf
}
_sieve() {
pkgdesc="Sieve and managesieve plugin for Dovecot"
depends="$pkgname=$pkgver-r$pkgrel"
cd "$pkgdir"
_find usr/lib/dovecot sieve_extprograms
_find usr/lib/dovecot sieve_imapsieve
_find usr/bin sieve
_find usr/lib/dovecot sieve
_find usr/lib/dovecot pigeonhole
_find usr/libexec/dovecot managesieve
_find etc/dovecot/ sieve
}
_sieve_ldap() {
pkgdesc="Sieve and managesieve plugin for Dovecot (LDAP support)"
depends="$pkgname-pigeonhole-plugin=$pkgver-r$pkgrel $pkgname-ldap=$pkgver-r$pkgrel"
cd "$pkgdir"
_find usr/lib/dovecot _sieve_storage_ldap_
}
pgsql() {
pkgdesc="PostgreSQL driver for Dovecot"
depends="$pkgname-sql=$pkgver-r$pkgrel"
cd "$pkgdir"
_find usr/lib/dovecot _pgsql
}
lua() {
pkgdesc="Lua plugins for Dovecot"
depends="$pkgname=$pkgver-r$pkgrel"
cd "$pkgdir"
_find usr/lib/dovecot lua
}
mysql() {
pkgdesc="MySQL driver for Dovecot"
depends="$pkgname-sql=$pkgver-r$pkgrel"
cd "$pkgdir"
_find usr/lib/dovecot _mysql
}
sqlite() {
pkgdesc="SQLite driver for Dovecot"
depends="$pkgname-sql=$pkgver-r$pkgrel"
cd "$pkgdir"
_find usr/lib/dovecot _sqlite
}
gssapi() {
pkgdesc="GSSAPI auth plugin for Dovecot"
depends="$pkgname=$pkgver-r$pkgrel"
cd "$pkgdir"
_find usr/lib/dovecot _gssapi
}
ldap() {
pkgdesc="LDAP auth plugin for Dovecot"
depends="$pkgname=$pkgver-r$pkgrel"
cd "$pkgdir"
_find usr/lib/dovecot ldap.so
_find etc/dovecot -ldap.conf
}
sql() {
pkgdesc="SQL plugin for dovecot"
depends="$pkgname=$pkgver-r$pkgrel"
cd "$pkgdir"
_find usr/lib/dovecot -sql.
_find etc/dovecot -sql.conf
}
_fts_solr() {
pkgdesc="FTS-Solr plugin for dovecot"
depends="$pkgname=$pkgver-r$pkgrel"
cd "$pkgdir"
_find usr/lib/dovecot fts\*solr
}
_fts_flatcurve() {
pkgdesc="FTS-flatcurve plugin for dovecot"
depends="$pkgname=$pkgver-r$pkgrel"
cd "$pkgdir"
_find usr/lib/dovecot fts\*flatcurve
}
_find() {
local _f
local _ff="$(find "$1" -name \*"$2"\*)"
for _f in $_ff
do
_submv "$_f"
done
}
_submv() {
local dir="$(dirname $1)"
mkdir -p "$subpkgdir"/"$dir"
mv "$pkgdir/$1" "$subpkgdir/$dir/"
[ "$(ls -A "$pkgdir/$dir")" ] || rmdir "$pkgdir"/"$dir"
}
sha512sums="
4915e9282898a4bce4dc3c9781f9aa849e8a2d5bb89dffc2222b417560eaa0135d66342ef342098a86dd5e9b4e76d41145381b7264144411cf45a6f88ca36698 dovecot-2.4.1-4.tar.gz
47b9cc62b13d710123389c47d13c104e70b815d683dc6b957e86b57b2f175101d07f462d0fdb0488d6dcdcfbbc137c926825ba9a0d798551576aa7f3c9082100 dovecot-pigeonhole-2.4.1-4.tar.gz
0d2b22fa22c439e51b96a5aa0c21b164dd1178746a1f2d58803040d19c1c9ae253710acfdae64cc0aabb8d9068f71c891f4c672bc42438a7dc26fa07517290fd dovecot-config-Fix-config-filter-sorting-order.patch
fe4fbeaedb377d809f105d9dbaf7c1b961aa99f246b77189a73b491dc1ae0aa9c68678dde90420ec53ec877c08f735b42d23edb13117d7268420e001aa30967a skip-iconv-check.patch
043620ea5d89d561f8f4ebb725368eba5133f1a4e2ff6d682a4abef9d15e04d638a56f4322d34645b1a7e6db0fdd7bf73692771012de903401b9ea25353c354c headers.patch
9f19698ab45969f1f94dc4bddf6de59317daee93c9421c81f2dbf8a7efe6acf89689f1d30f60f536737bb9526c315215d2bce694db27e7b8d7896036a59c31f0 dovecot.logrotate
d91951b81150d7a3ef6a674c0dc7b012f538164dac4b9d27a6801d31da6813b764995a438f69b6a680463e1b60a3b4f2959654f68e565fe116ea60312d5e5e70 dovecot.initd
"