summaryrefslogtreecommitdiffstats
path: root/main/dovecot/APKBUILD
blob: c386c6514239440f49421b6c05ee3373347361ca (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
# Contributor: Michael Mason <ms13sp@gmail.com>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=dovecot
pkgver=2.1.10
pkgrel=1
pkgdesc="IMAP and POP3 server"
url="http://www.dovecot.org/"
arch="all"
license="LGPL-2.1"
depends="openssl logrotate"
pkgusers="dovecot dovenull"
pkggroups="dovecot dovenull"
makedepends="libcap-dev zlib-dev openssl-dev bzip2-dev postgresql-dev
	mysql-dev sqlite-dev heimdal-dev openldap-dev"
install="dovecot.pre-install dovecot.post-install"
subpackages="$pkgname-sample-config:config $pkgname-doc $pkgname-dev
	$pkgname-pgsql $pkgname-mysql $pkgname-sqlite $pkgname-gssapi
	$pkgname-ldap"
patches="
	hide-dl-errors.patch
	"
source="http://www.dovecot.org/releases/${pkgver%.*}/$pkgname-$pkgver.tar.gz
	$patches
	dovecot.logrotate
	dovecot.initd
	dovecot-sample-config.post-install
	"

prepare() {
	cd "$srcdir"/$pkgname-$pkgver
	for i in $patches; do
		msg $i
		patch -p1 -i "$srcdir"/$i || return 1
	done
}

build() {
	cd "$srcdir/$pkgname-$pkgver"

	./configure --prefix=/usr \
		--localstatedir=/var \
		--sysconfdir=/etc \
		--mandir=/usr/share/man \
		--infodir=/usr/share/info \
		--with-gssapi=plugin \
		--with-ldap=plugin \
		--with-sql=plugin \
		--with-mysql \
		--with-sqlite \
		--with-pgsql \
		--with-ssl=openssl || return 1

	make || return 1
}

package() {
	cd "$srcdir/$pkgname-$pkgver"
	make DESTDIR="$pkgdir" install || return 1
	rm "$pkgdir"/usr/lib/dovecot/*.la \
		"$pkgdir"/usr/lib/dovecot/*/*.la || return 1

	install -d "$pkgdir"/var/run/dovecot \
		"$pkgdir"/etc/ssl/dovecot
	install -m755 -D "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname
	install -D "$srcdir"/dovecot.logrotate "$pkgdir"/etc/logrotate.d/dovecot

	# default config
	install doc/dovecot-openssl.cnf "$pkgdir"/etc/dovecot/
	cp "$pkgdir"/usr/share/doc/dovecot/example-config/dovecot.conf \
		"$pkgdir"/etc/dovecot/dovecot.conf || return 1
	mkdir -p "$pkgdir"/etc/dovecot/conf.d

	# fix ssl dirs in default config and set defautl passdb to passwd
	sed -i -e 's,^ssl_cert =.*,ssl_cert = </etc/ssl/dovecot/server.pem,' \
		-e 's,^ssl_key =.*,ssl_key = </etc/ssl/dovecot/server.key,' \
		"$pkgdir"/usr/share/doc/dovecot/example-config/conf.d/10-ssl.conf\
		|| return 1

	# install ssl config by default
	cp "$pkgdir"/usr/share/doc/dovecot/example-config/conf.d/10-ssl.conf\
		"$pkgdir"/etc/dovecot/conf.d/ || return 1
}

_mv() {
	local i
	while [ $# -gt 0 ]; do
		local dir=${1%/*}
		mkdir -p "$subpkgdir"/$dir
		mv "$pkgdir/$1" "$subpkgdir/$dir/"
		shift
	done
}


pgsql() {
	pkgdesc="postgresql driver for dovecot"
	_mv $(cd "$pkgdir" && find usr -name '*pgsql.so')
}

mysql() {
	pkgdesc="mysql driver for dovecot"
	_mv $(cd "$pkgdir" && find usr -name '*mysql.so')
}

sqlite() {
	pkgdesc="sqlite driver for dovecot"
	_mv $(cd "$pkgdir" && find usr -name '*sqlite.so')
}

gssapi() {
	pkgdesc="GSSAPI auth plugin for dovecot"
	_mv $(cd "$pkgdir" && find usr -name '*gssapi.so')
}

ldap() {
	pkgdesc="LDAP plugin for dovecot"
	_mv $(cd "$pkgdir" && find usr -name '*ldap.so')
}

config() {
	pkgdesc="Sample configuration files for dovecot"
	install="dovecot-sample-config.post-install"
	_mv usr/share/doc/dovecot/example-config
	mkdir -p "$subpkgdir"/etc/dovecot/conf.d
}

md5sums="a5a4b3c444cf37e2c6bb6df3af87e18e  dovecot-2.1.10.tar.gz
49f7a03284cc657857fe2ae22b8c82a0  hide-dl-errors.patch
aec5cc797ab2acf72ce3b6bb1030345f  dovecot.logrotate
59f210c712284a82e3a65b4126ddd99c  dovecot.initd
95cf57ecc835882228bbbb019ce3abf8  dovecot-sample-config.post-install"