# Maintainer: Jakub Jirutka # Contributor: Steve Holweg # Contributor: Baptiste Jonglez # Contributor: Jakub Jirutka pkgname=kea # NOTE: Upgrade only to even-numbered versions (e.g. 1.8.x, 1.10.x)! # Odd-numbered versions are development versions. # NOTE: When bumping, always rebuild all kea hooks (kea-* aports)! pkgver=2.0.0 pkgrel=0 pkgdesc="DHCPv4 and DHCPv6 server from ISC" url="https://kea.isc.org/" arch="all" license="MPL2" depends="kea-dhcp4 kea-dhcp6" depends_dev="boost-dev log4cplus-dev" checkdepends="procps" makedepends=" $depends_dev autoconf automake bison botan-dev flex libcap libtool mariadb-dev postgresql-dev python3-dev " pkgusers="kea" pkggroups="kea" install="$pkgname-common.pre-install $pkgname-common.post-upgrade" 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-hook-bootp:hook_bootp $pkgname-hook-run-script:hook_run_script $pkgname-common " source="https://ftp.isc.org/isc/$pkgname/$pkgver/$pkgname-$pkgver.tar.gz disable-db-tests.patch tests-fix-missing-libco.patch configs-fix-paths.patch use-runstatedir-for-pid-file-location.patch put-LOCKFILE_DIR-to-runstatedir.patch move-api-files-to-doc.patch kea-admin-remove-builddir.patch kea.initd.in " validpgpkeys="BE0E9748B718253A28BB89FFF1B11BF05CF02E57" # Internet Systems Consortium, Inc. (Signing key, 2017-2018) # secfixes: # 1.7.2-r0: # - CVE-2019-6472 # - CVE-2019-6473 # - CVE-2019-6474 # NOTE: libkea-dhcpsrv.so depends on libkea-{mysql,pgsql}, that's why # kea-common depends on libpq and libmariadb. :( prepare() { default_prepare autoreconf -fv # 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.* amove ./usr/lib/libkea-d2srv.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 } # 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 } hook_bootp() { pkgdesc="Kea BOOTP hooks library" depends="" amove ./usr/lib/kea/hooks/libdhcp_bootp.so } hook_run_script() { pkgdesc="Kea Run Script hooks library" depends="" amove ./usr/lib/kea/hooks/libdhcp_run_script.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=" 9b5f520b75bbe72dfb209737958e90f337c78b3a4bf4662581d4a816bf9325ed1f277f1a593449044ef483375948006490a572eb50469842c5f56e69c8b105c3 kea-2.0.0.tar.gz b467fd19bb64a5d59d12c8d4aeec519321bec9aa91eee3975d52be5d141464ce327ad8073ba1e238c134f359b2fac420b0eb39fa9b4d334e612305ecaabba01c disable-db-tests.patch 97c49d45b12d1a0fe727f46d4d140cf50676cb83b25f41e7e01007d0d6000f5ecd25e900737a1e36e27e84c4eaf799378d35e9d36ffbf3fdeadad4e035e8316e tests-fix-missing-libco.patch 3439046a80de33b31bf3f12e3c9728e47119e245fb888a1e4484a443b20e7b364f0e15e10fa96b4fcfcec29e6d2828ba9ab728a83028546a9c28f30fc404512d configs-fix-paths.patch e22be00f74b30de0ff035de38a4b159231dbd6b248572cdb1c65dfc789f86630b4a03a22d2686607ccc5893305043526c3463bdd1fc43fdd2bf6138864ab16e0 use-runstatedir-for-pid-file-location.patch 52de95e9b4de3e518b4fbbce19799230684a2924433e666c24b866e537ffeaea9cd16b0b41499a17dd3ed528be1f899e94e67f6e464d551149b850cdbf29c1b2 put-LOCKFILE_DIR-to-runstatedir.patch 100b70f3ccecb46b98e9fd599ab6f0c3aa191d862d914ed84f4d34efea0cc119817d1e14b967c0f5024614af1ef6841a8d12e789945cad147d943965f194ece1 move-api-files-to-doc.patch 982751601d89c091d0aecf535862ad505ebf4e5f64af5f3fcfe9f791cc717aafc72915828eb467b984f8270a1e653b49968f76b39f51389ba4b69d806e1f717e kea-admin-remove-builddir.patch 4029a526a210cb49ca480fea728dfae5933371244df6348411081db1e8b23924cbbdde5fa745ab4c14552a95451953a18a65d7660227bc0bb1d51be708fab92f kea.initd.in "