Browse Source

kea: add kea-uci package with basic init script

This init script allows to start the Kea Control Agent, the DHCPv4
server, the DHCPv6 server, and the DHCP-DDNS server. It expects the
config files to be where the packages install them.

As this is a single init script that can start 4 different binaries that
are each in their own package, these files cannot be included in any of
these other package, so create a dedicated package for it.

Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
lilik-openwrt-22.03
Stijn Tintel 3 years ago
parent
commit
3649ed721d
3 changed files with 70 additions and 0 deletions
  1. +18
    -0
      net/kea/Makefile
  2. +11
    -0
      net/kea/files/kea.config
  3. +41
    -0
      net/kea/files/kea.init

+ 18
- 0
net/kea/Makefile View File

@ -182,6 +182,17 @@ define Package/kea-shell/description
Control Agent. Control Agent.
endef endef
###### *************************************************************************
define Package/kea-uci
$(call Package/kea/Default)
TITLE+=UCI support
DEPENDS:=@(PACKAGE_kea-ctrl||PACKAGE_kea-dhcp4||PACKAGE_kea-dhcp6||PACKAGE_kea-dhcp-ddns)
endef
define Package/kea-uci/description
Kea PROCD/UCI support. This package installs a UCI config file and
a PROCD service file.
endef
###### ************************************************************************* ###### *************************************************************************
HOST_CONFIGURE_ARGS += \ HOST_CONFIGURE_ARGS += \
--with-boost-include="$(STAGING_DIR_HOSTPKG)" \ --with-boost-include="$(STAGING_DIR_HOSTPKG)" \
@ -296,6 +307,12 @@ define Package/kea-shell/install
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/kea-shell $(1)/usr/sbin/kea-shell $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/kea-shell $(1)/usr/sbin/kea-shell
endef endef
define Package/kea-uci/install
$(INSTALL_DIR) $(1)/etc/config $(1)/etc/init.d
$(INSTALL_CONF) ./files/kea.config $(1)/etc/config/kea
$(INSTALL_BIN) ./files/kea.init $(1)/etc/init.d/kea
endef
$(eval $(call HostBuild)) $(eval $(call HostBuild))
$(eval $(call BuildPackage,kea-libs)) $(eval $(call BuildPackage,kea-libs))
$(eval $(call BuildPackage,kea-ctrl)) $(eval $(call BuildPackage,kea-ctrl))
@ -308,3 +325,4 @@ $(eval $(call BuildPackage,kea-hook-lease-cmds))
$(eval $(call BuildPackage,kea-lfc)) $(eval $(call BuildPackage,kea-lfc))
$(eval $(call BuildPackage,kea-perfdhcp)) $(eval $(call BuildPackage,kea-perfdhcp))
$(eval $(call BuildPackage,kea-shell)) $(eval $(call BuildPackage,kea-shell))
$(eval $(call BuildPackage,kea-uci))

+ 11
- 0
net/kea/files/kea.config View File

@ -0,0 +1,11 @@
config service 'ctrl_agent'
option disabled '1'
config service 'dhcp4'
option disabled '1'
config service 'dhcp6'
option disabled '1'
config service 'dhcp_ddns'
option disabled '1'

+ 41
- 0
net/kea/files/kea.init View File

@ -0,0 +1,41 @@
#!/bin/sh /etc/rc.common
USE_PROCD=1
START=25
STOP=85
BIN_PATH="/usr/sbin"
CONF_PATH="/etc/kea"
start_service() {
config_load "kea"
config_foreach start_kea "service"
}
start_kea() {
local cfg="$1"
config_get_bool disabled "$cfg" disabled 0
[ "$disabled" = "0" ] || return
config_get name "$cfg" name "$cfg"
case "$name" in
ctrl_agent|dhcp4|dhcp6|dhcp_ddns)
name="${name/_/-}"
cmd="${BIN_PATH}/kea-${name}"
cnf="${CONF_PATH}/kea-${name}.conf"
;;
*)
return 0
esac
procd_open_instance "$name"
procd_set_param command "$cmd" -c "$cnf"
procd_set_param env KEA_LOCKFILE_DIR=/tmp
procd_append_param env KEA_PIDFILE_DIR=/tmp
procd_set_param file "$cnf"
procd_set_param stderr 1
procd_set_param stdout 1
procd_close_instance ctrl_agent
}

Loading…
Cancel
Save