aports/main/kea/APKBUILD

283 lines
7 KiB
Text

# 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
# 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.6.2
pkgrel=0
pkgdesc="DHCPv4 and DHCPv6 server from ISC"
url="https://kea.isc.org/"
arch="all"
license="MPL-2.0"
depends="kea-dhcp4 kea-dhcp6"
depends_dev="boost-dev log4cplus-dev"
checkdepends="procps"
makedepends="
$depends_dev
autoconf
automake
bison
botan-dev
flex
libcap-utils
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-shell-pyc
$pkgname-shell::noarch
$pkgname-hook-mysql-cb:hook_mysql_cb
$pkgname-hook-pgsql-cb:hook_pgsql_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/kea/$pkgver/kea-$pkgver.tar.gz
disable-db-tests.patch
configs-fix-paths.patch
put-LOCKFILE_DIR-to-runstatedir.patch
move-api-files-to-doc.patch
kea.initd.in
kea.confd.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
# NOTE: libkea-dhcpsrv.so depends on libkea-{mysql,pgsql}, that's why
# kea-common depends on libpq and libmariadb. :(
prepare() {
default_prepare
update_config_sub
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"
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
}
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_pgsql_cb() {
pkgdesc="Kea PostgreSQL Configuration Backend hooks library"
depends=""
amove ./usr/lib/kea/hooks/libdhcp_pgsql_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 kea-http=$pkgver-r$pkgrel" # for backward compatibility
depends=""
mkdir -p "$subpkgdir"
mv "$pkgdir"/* "$subpkgdir"/
}
_install_initd() {
local name="$1"
local caps='^cap_net_bind_service'
case "$name" in
kea-dhcp4) caps="$caps,^cap_net_raw";;
kea-ctrl-agent) caps='';;
esac
install -Dm755 "$srcdir"/kea.initd.in "$subpkgdir"/etc/init.d/$name
install -Dm644 "$srcdir"/kea.confd.in "$subpkgdir"/etc/conf.d/$name
# /^capabilities... is to remove this variable when it's rendered empty (see #15048).
sed -i \
-e "s|@@NAME@@|$name|g" \
-e "s|@@CAPABILITIES@@|$caps|" \
-e '/^capabilities=""/d' \
"$subpkgdir"/etc/init.d/$name \
"$subpkgdir"/etc/conf.d/$name
}
sha512sums="
95b59e76492c9ab3e667831671d5a04f58da850e079cef88a589072dfd734e45e458e0ed8718e37f202118d9b6daba2ebb661bcf1be2c70a6ee151bf9d6dbb51 kea-2.6.2.tar.gz
8e24478e237f4e46cc186666dc071ecec1c5eb898ce3c092cda49cfb43c54f18b34400e5896b9d9733f7db61892f8883bda6a73f837257e156fa71414557ea05 disable-db-tests.patch
3439046a80de33b31bf3f12e3c9728e47119e245fb888a1e4484a443b20e7b364f0e15e10fa96b4fcfcec29e6d2828ba9ab728a83028546a9c28f30fc404512d configs-fix-paths.patch
52de95e9b4de3e518b4fbbce19799230684a2924433e666c24b866e537ffeaea9cd16b0b41499a17dd3ed528be1f899e94e67f6e464d551149b850cdbf29c1b2 put-LOCKFILE_DIR-to-runstatedir.patch
100b70f3ccecb46b98e9fd599ab6f0c3aa191d862d914ed84f4d34efea0cc119817d1e14b967c0f5024614af1ef6841a8d12e789945cad147d943965f194ece1 move-api-files-to-doc.patch
e2f77a403b1c84918c92acf8c22d4bd3ea3662d109c334aebb4f55f1821901fbf287f0c1ac03f5de56227e888edc63667f54a0ee51fa4b654479f4e14841d11a kea.initd.in
eb45671073174e319cd4fedb61c5f8664370f701856569c675a5aaa280bde974bdabbc30e733379b2e61b32dc2e1e94808b79f141de7c209109e874b2b4b5e8f kea.confd.in
"