blob: 5674b666a479e7be234c5dfc6b6a3f8e588f5317 (
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
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
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
|
# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
# Contributor: Steve Holweg <skytep@gmail.com>
# Contributor: Baptiste Jonglez <baptiste--aur@jonglez.org>
# Contributor: Jakub Jirutka <jakub@jirutka.cz>
pkgname=kea
pkgver=1.7.5
pkgrel=0
pkgdesc="DHCPv4 and DHCPv6 server from ISC"
url="http://kea.isc.org"
# armhf, armv7: limited by log4cplus
# s390x: tests fail
arch="all !armhf !armv7 !s390x"
license="MPL2"
depends="kea-dhcp4 kea-dhcp6"
depends_dev="boost-dev log4cplus-dev"
checkdepends="procps"
makedepends="
$depends_dev
bison
botan-dev
flex
libcap
mariadb-dev
postgresql-dev
python3-dev
"
pkgusers="kea"
pkggroups="kea"
install="$pkgname-common.pre-install"
subpackages="
$pkgname-doc
$pkgname-static
$pkgname-dev
$pkgname-admin::noarch
$pkgname-ctrl-agent:ctrlagent
$pkgname-dhcp-ddns:dhcpddns
$pkgname-dhcp4
$pkgname-dhcp6
$pkgname-http
$pkgname-shell::noarch
$pkgname-hook-mysql-cb:hook_mysql_cb
$pkgname-hook-ha:hook_ha
$pkgname-hook-stat-cmds:hook_stat_cmds
$pkgname-hook-lease-cmds:hook_lease_cmds
$pkgname-hook-flex-option:hook_flex_option
$pkgname-common
"
source="https://ftp.isc.org/isc/$pkgname/$pkgver/$pkgname-$pkgver.tar.gz
disable-db-tests.patch
configs-fix-paths.patch
use-runstatedir-for-pid-file-location.patch
put-LOCKFILE_DIR-to-runstatedir.patch
kea-admin-remove-builddir.patch
kea.initd.in
"
validpgpkeys="BE0E9748B718253A28BB89FFF1B11BF05CF02E57" # Internet Systems Consortium, Inc. (Signing key, 2017-2018) <codesign@isc.org>
# secfixes:
# 1.7.2-r0:
# - CVE-2019-6472
# - CVE-2019-6473
# - CVE-2019-6474
prepare() {
default_prepare
# Remove the builddir path from the scripts.
# NOTE: There's a new script each release, so using patch file would be
# very inconvenient.
find src/share/database/scripts/ \
-name '*.sh.in' \
-exec sed -i 's|^\s*. @abs_top_builddir@/src/bin/admin/admin-utils.sh.*|echo "admin-utils.sh not found!"; exit 1|' {} \;
}
build() {
# Complete build for dev and doc
./configure \
--build=$CBUILD \
--host=$CHOST \
--prefix=/usr \
--sysconfdir=/etc \
--localstatedir=/var \
--libexecdir=/usr/lib \
--runstatedir=/run \
--with-mysql \
--with-pgsql \
--disable-rpath \
--enable-generate-messages \
--enable-generate-parser \
--enable-shell
make
}
check() {
make check
}
package() {
make DESTDIR="$pkgdir" install
cd "$pkgdir"
# Allow kea to run under unpriviliged user.
local name; for name in kea-dhcp-ddns kea-dhcp6; do
setcap 'cap_net_bind_service=+ep' ./usr/sbin/$name
done
setcap 'cap_net_bind_service,cap_net_raw=+ep' ./usr/sbin/kea-dhcp4
install -d -m 0750 -o kea -g kea ./var/log/kea ./var/lib/kea
# keactrl is unnecessary since we provide OpenRC init scripts.
rm ./usr/sbin/keactrl ./etc/kea/keactrl.conf
rm -Rf ./run
}
dev() {
default_dev
amove ./usr/bin/kea-msg-compiler
}
admin() {
pkgdesc="Databases administration tools for Kea DHCP server"
depends="$pkgname-common=$pkgver-r$pkgrel"
amove ./usr/sbin/kea-admin
amove ./usr/share/kea/
}
ctrlagent() {
pkgdesc="Kea Control Agent - REST service for controlling Kea DHCP server"
depends="$pkgname-common=$pkgver-r$pkgrel"
amove usr/sbin/kea-ctrl-agent
amove ./etc/kea/kea-ctrl-agent.conf
_install_initd kea-ctrl-agent
}
dhcpddns() {
pkgdesc="Kea DHCP Dynamic DNS Server"
depends="$pkgname-common=$pkgver-r$pkgrel"
amove ./usr/sbin/kea-dhcp-ddns
amove ./etc/kea/kea-dhcp-ddns.conf
amove ./usr/lib/libkea-asiodns.so.*
_install_initd kea-dhcp-ddns
}
dhcp4() {
pkgdesc="Kea IPv4 DHCP Server"
depends="$pkgname-common=$pkgver-r$pkgrel"
amove ./usr/sbin/kea-dhcp4
amove ./etc/kea/kea-dhcp4.conf
_install_initd kea-dhcp4
}
dhcp6() {
pkgdesc="Kea IPv6 DHCP Server"
depends="$pkgname-common=$pkgver-r$pkgrel"
amove ./usr/sbin/kea-dhcp6
amove ./etc/kea/kea-dhcp6.conf
_install_initd kea-dhcp6
}
hooks() {
pkgdesc="Hooks libraries for Kea DHCP server"
depends=""
amove ./usr/lib/kea/hooks/
}
# Needed only by ctrl-agent and hooks.
http() {
depends=""
amove ./usr/lib/libkea-http.so*
}
shell() {
pkgdesc="Text client for Kea DHCP Control Agent"
depends="python3"
amove ./usr/sbin/kea-shell
amove ./usr/lib/python3*
}
hook_mysql_cb() {
pkgdesc="Kea MySQL Configuration Backend hooks library"
depends=""
amove ./usr/lib/kea/hooks/libdhcp_mysql_cb.so
}
hook_ha() {
pkgdesc="Kea High Availability hooks library"
depends="$pkgname-hook-lease-cmds"
amove ./usr/lib/kea/hooks/libdhcp_ha.so
}
hook_stat_cmds() {
pkgdesc="Kea Statistics Commands hooks library"
depends=""
amove ./usr/lib/kea/hooks/libdhcp_stat_cmds.so
}
hook_lease_cmds() {
pkgdesc="Kea Lease Commands hooks library"
depends=""
amove ./usr/lib/kea/hooks/libdhcp_lease_cmds.so
}
hook_flex_option() {
pkgdesc="Kea Flexible Option hooks library"
depends=""
amove ./usr/lib/kea/hooks/libdhcp_flex_option.so
}
common() {
pkgdesc="Common files and libraries for Kea DHCP Server"
replaces="kea-utils" # for backward compatibility
provides="kea-utils=$pkgver-r$pkgrel" # for backward compatibility
depends=""
mkdir -p "$subpkgdir"
mv "$pkgdir"/* "$subpkgdir"/
}
_install_initd() {
local name="$1"
install -Dm755 "$srcdir"/kea.initd.in "$subpkgdir"/etc/init.d/$name
sed -i "s|@@NAME@@|$name|g" "$subpkgdir"/etc/init.d/$name
}
sha512sums="1e31a9b2031d5dfdef18178abcdc30c1fe20ac4013c070cf01e2a2af56d4594fc8ae1edcc9e98483cd8feb8d9d916b893e42cfdd41e195c2d79d0c8800040034 kea-1.7.5.tar.gz
55780bbcbd79b81d55bdccd46da6ca6babe8b7894aa82948308dc4f8a0e2b5d33fad633276696c8ba7bd063026bb11ae529a096375d0572833c66e2132888775 disable-db-tests.patch
6d142d7ede2bd29a9133fe4e4a3ca6bab2b51a56926b268fab218921edd49250b240c0f59efa8a389b49a5478db5bda95acf531382b14cdf9327dddddcdb2d4d configs-fix-paths.patch
574b4aacef03c2d4a556b4ff8b152b66efd6fdc27ad09373d41c72df15f8a2cd2386e0bbe7e07f1370d9cd11e0954fc679f3d57e6b647d601cc06e0c63bc8712 use-runstatedir-for-pid-file-location.patch
062e6eb88c49aeeac5d78c37c43cda1ff753e19f833aaa1525e37f66eede819910d4849bd954f3ef8ceb1b13e747953c99e2a9a4d9755b6da8d82c4e08b2b55c put-LOCKFILE_DIR-to-runstatedir.patch
5b93d96f2cbdce327ffceef5ace19ba5327a0c7d0d61714e35a0d72912ecbbec6a1864249612b48f8db20dffc3622170c3e21b1a67297fd834f47b94db85b9d7 kea-admin-remove-builddir.patch
4029a526a210cb49ca480fea728dfae5933371244df6348411081db1e8b23924cbbdde5fa745ab4c14552a95451953a18a65d7660227bc0bb1d51be708fab92f kea.initd.in"
|