summaryrefslogtreecommitdiff
path: root/user/openldap/APKBUILD
blob: fd39451bc2be2e88e883837eb1a61a43f71f5f8d (plain) (blame)
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
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
# Maintainer: A. Wilcox <awilfox@adelielinux.org>
#
# secfixes:
#   2.4.50-r0:
#     - CVE-2020-12243
#   2.4.48-r0:
#     - CVE-2019-13057
#     - CVE-2019-13565
#   2.4.46:
#     - CVE-2017-14159
#     - CVE-2017-17740
#   2.4.44-r5:
#     - CVE-2017-9287
#
pkgname=openldap
pkgver=2.6.10
pkgrel=0
pkgdesc="LDAP Server"
url="https://www.openldap.org/"
arch="all"
license="OLDAP-2.8"
depends=""
depends_dev="openssl-dev cyrus-sasl-dev util-linux-dev"
makedepends="$depends_dev groff icu-dev unixodbc-dev libtool"
subpackages="$pkgname-dev $pkgname-doc libldap $pkgname-openrc
	$pkgname-clients $pkgname-passwd-pbkdf2:passwd_pbkdf2
	$pkgname-backend-all:_backend_all:noarch
	$pkgname-overlay-all:_overlay_all:noarch"
pkgusers="ldap"
pkggroups="ldap"
install="$pkgname.pre-install $pkgname.post-install $pkgname.post-upgrade"
source="https://www.$pkgname.org/software/download/OpenLDAP/$pkgname-release/$pkgname-$pkgver.tgz
	fix-manpages.patch
	configs.patch
	test063.patch
	time64.patch

	slapd.initd
	slapd.confd
	"

# SLAPD backends
_backends=""
for _name in dnssrv ldap mdb meta null passwd relay sock
do
	subpackages="$subpackages $pkgname-back-$_name:_backend"
	_backends="$_backends $pkgname-back-$_name"
done

# SLAPD overlays
_overlays=""
for _name in accesslog auditlog collect constraint dds deref dyngroup \
	dynlist memberof ppolicy proxycache refint retcode rwm seqmod \
	sssvlv syncprov translucent unique valsort
do
	subpackages="$subpackages $pkgname-overlay-$_name:_overlay"
	_overlays="$_overlays $pkgname-overlay-$_name"
done

build() {
	./configure \
		--build=$CBUILD \
		--host=$CHOST \
		--prefix=/usr \
		--libexecdir=/usr/lib \
		--sysconfdir=/etc \
		--mandir=/usr/share/man \
		--localstatedir=/var/lib/openldap \
		--enable-slapd \
		--enable-crypt \
		--enable-modules \
		--enable-dynamic \
		--enable-dnssrv=mod \
		--enable-ldap=mod \
		--enable-mdb=mod \
		--enable-meta=mod \
		--enable-null=mod \
		--enable-passwd=mod \
		--enable-relay=mod \
		--enable-sock=mod \
		--enable-overlays=mod \
		--with-tls=openssl \
		--with-cyrus-sasl
	make depend
	make

	# Build passwd pbkdf2.
	make prefix=/usr libexecdir=/usr/lib \
		-C contrib/slapd-modules/passwd/pbkdf2
}

check() {
	make check
}

package() {
	make DESTDIR="$pkgdir" install

	# Install passwd pbkdf2.
	make DESTDIR="$pkgdir" prefix=/usr libexecdir=/usr/lib \
		-C contrib/slapd-modules/passwd/pbkdf2 install

	cd "$pkgdir"

	rmdir var/lib/openldap/run

	# Fix tools symlinks to slapd.
	for _path in $(find usr/sbin/ -type l); do
		ln -sf slapd $_path
	done

	# Move executable from lib to sbin.
	mv usr/lib/slapd usr/sbin/

	# Move *.default configs to docs.
	mkdir -p usr/share/doc/$pkgname
	mv etc/openldap/*.default usr/share/doc/$pkgname/

	chgrp ldap etc/openldap/slapd.*
	chmod g+r etc/openldap/slapd.*

	install -d -m 700 -o ldap -g ldap \
		var/lib/openldap \
		var/lib/openldap/openldap-data

	install -D -m 755 "$srcdir"/slapd.initd etc/init.d/slapd
	install -D -m 644 "$srcdir"/slapd.confd etc/conf.d/slapd
}

libldap() {
	pkgdesc="OpenLDAP libraries"
	depends=""

	_submv "usr/lib/*.so*" etc/openldap/ldap.conf
}

clients() {
	pkgdesc="LDAP client utilities"

	_submv usr/bin
}

passwd_pbkdf2() {
	pkgdesc="PBKDF2 OpenLDAP support"
	depends="$pkgname"

	_submv "usr/lib/openldap/pw-pbkdf2.*"
}

_backend_all() {
	pkgdesc="Virtual package that installs all OpenLDAP backends"
	depends="$_backends"

	mkdir -p "$subpkgdir"
}

_overlay_all() {
	pkgdesc="Virtual package that installs all OpenLDAP overlays"
	depends="$_overlays"

	mkdir -p "$subpkgdir"
}

_backend() {
	backend_name="${subpkgname#openldap-back-}"
	pkgdesc="OpenLDAP $backend_name backend"

	_submv "usr/lib/openldap/back_$backend_name*"
}

_overlay() {
	overlay_name="${subpkgname#openldap-overlay-}"
	pkgdesc="OpenLDAP $backend_name overlay"

	case "$overlay_name" in
		proxycache) overlay_name=pcache;;
	esac
	_submv "usr/lib/openldap/$overlay_name*"
}

_submv() {
	for path in "$@"; do
		mkdir -p "$subpkgdir"/${path%/*}
		mv "$pkgdir"/$path "$subpkgdir"/${path%/*}/
	done
}

sha512sums="18129ad9a385457941e3203de5f130fe2571701abf24592c5beffb01361aae3182c196b2cd48ffeecb792b9b0e5f82c8d92445a7ec63819084757bdedba63b20  openldap-2.6.10.tgz
5de64a172da10a5d02d4f2d91dfd0d959a12db0ed2d14133e3186a2b4d3d9e4e3bbe8eb800821dfcfb79fb808a69d44253a4cae1e37b6d2477bc11062734d41e  fix-manpages.patch
1a1f669db968061eb8c9fb5e42768d0f12075d4eb4d8ae7085533276775027c56760c2f7413494deebec4d78b053f674661236e6e1506ecffadf510985c393c0  configs.patch
30e59a3ff14cf612ef299f7b9f8ffcee172b4693f8a77548eab64def3d0d7e374da1bffd546f36e076e8f3431134ce7b8a9ccb3a173c728b37b6ec8148c31463  test063.patch
fd45360ae9631a8e0481809dfc809bccb0f933e01d724a9c4c541faed966f046e142589719ef558a80bedba63eefa8225852d71127139bc105d48415a31fa17a  time64.patch
0c3606e4dad1b32f1c4b62f2bc1990a4c9f7ccd10c7b50e623309ba9df98064e68fc42a7242450f32fb6e5fa2203609d3d069871b5ae994cd4b227a078c93532  slapd.initd
64dc4c0aa0abe3d9f7d2aef25fe4c8e23c53df2421067947ac4d096c9e942b26356cb8577ebc41b52d88d0b0a03b2a3e435fe86242671f9b36555a5f82ee0e3a  slapd.confd"