odhcpd: add a full and ipv6only variant (FS#1188)

Add an ipv6only variant providing server services for RA, stateful and stateless
DHCPv6, prefix delegation and relay support for DHCPv6, NDP and RA.

The full variant called odhcpd supports DHCPv4 server as before.

Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
This commit is contained in:
Hans Dedecker 2017-11-25 17:56:01 +01:00
parent 9fe59abef8
commit 99ea749d37

View file

@ -9,6 +9,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=odhcpd PKG_NAME:=odhcpd
PKG_RELEASE:=1 PKG_RELEASE:=1
PKG_VERSION:=1.0
PKG_SOURCE_PROTO:=git PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL=$(LEDE_GIT)/project/odhcpd.git PKG_SOURCE_URL=$(LEDE_GIT)/project/odhcpd.git
@ -19,56 +20,83 @@ PKG_MIRROR_HASH:=20ca7c78a38555b125337538f33a1cf0e79f0062259d387f3ada57019086e8e
PKG_MAINTAINER:=Hans Dedecker <dedeckeh@gmail.com> PKG_MAINTAINER:=Hans Dedecker <dedeckeh@gmail.com>
PKG_LICENSE:=GPL-2.0 PKG_LICENSE:=GPL-2.0
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION)
PKG_INSTALL:=1
PKG_CONFIG_DEPENDS:=CONFIG_PACKAGE_odhcpd_$(BUILD_VARIANT)_ext_cer_id
include $(INCLUDE_DIR)/package.mk include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/cmake.mk include $(INCLUDE_DIR)/cmake.mk
CMAKE_OPTIONS += -DUBUS=1 define Package/odhcpd/default
define Package/odhcpd
SECTION:=net SECTION:=net
CATEGORY:=Network CATEGORY:=Network
TITLE:=OpenWrt DHCP/DHCPv6(-PD)/RA Server & Relay TITLE:=OpenWrt DHCPv6(-PD)/RA Server & Relay
DEPENDS:=+libubox +libuci +libubus +libnl-tiny DEPENDS:=+libubox +libuci +libubus +libnl-tiny
endef endef
define Package/odhcpd/config define Package/odhcpd/default/description
menu "Configuration"
depends on PACKAGE_odhcpd
config PACKAGE_odhcpd_ext_cer_id
int
default 0
prompt "CER-ID Extension ID (0 = disabled)"
config PACKAGE_odhcpd_dhcpv4_support
bool
default n
prompt "Enable DHCPv4 server support"
endmenu
endef
ifneq ($(CONFIG_PACKAGE_odhcpd_ext_cer_id),0)
CMAKE_OPTIONS += -DEXT_CER_ID=$(CONFIG_PACKAGE_odhcpd_ext_cer_id)
endif
ifeq ($(CONFIG_PACKAGE_odhcpd_dhcpv4_support),y)
CMAKE_OPTIONS += -DDHCPV4_SUPPORT=1
endif
define Package/odhcpd/description
odhcpd is a daemon for serving and relaying IP management protocols to odhcpd is a daemon for serving and relaying IP management protocols to
configure clients and downstream routers. It tries to follow the RFC 6204 configure clients and downstream routers. It tries to follow the RFC 6204
requirements for IPv6 home routers. requirements for IPv6 home routers.
odhcpd provides server services for DHCP, RA, stateless and stateful DHCPv6,
prefix delegation and can be used to relay RA, DHCPv6 and NDP between routed
(non-bridged) interfaces in case no delegated prefixes are available.
endef endef
define Package/odhcpd/default/config
menu "Configuration"
depends on PACKAGE_$(1)
config PACKAGE_odhcpd_$(2)_ext_cer_id
int
default 0
prompt "CER-ID Extension ID (0 = disabled)"
endmenu
endef
define Package/odhcpd
$(call Package/odhcpd/default)
TITLE += and DHCPv4 server
VARIANT:=full
endef
Package/odhcpd/config=$(call Package/odhcpd/default/config,odhcpd,full)
define Package/odhcpd/description
$(call Package/odhcpd/default/description)
This is a variant providing server services for DHCPv4, RA, stateless and
stateful DHCPv6, prefix delegation and can be used to relay RA, DHCPv6 and
NDP between routed (non-bridged) interfaces in case no delegated prefixes
are available.
endef
define Package/odhcpd-ipv6only
$(call Package/odhcpd/default)
VARIANT:=ipv6only
endef
Package/odhcpd-ipv6only/config=$(call Package/odhcpd/default/config,odhcpd-ipv6only,ipv6only)
define Package/odhcpd-ipv6only/description
$(call Package/odhcpd/default/description)
This is a variant providing server services for RA, stateless and stateful
DHCPv6, prefix delegation and can be used to relay RA, DHCPv6 and NDP between
routed (non-bridged) interfaces in case no delegated prefixes are available.
endef
CMAKE_OPTIONS += -DUBUS=1
ifeq ($(BUILD_VARIANT),full)
CMAKE_OPTIONS += -DDHCPV4_SUPPORT=1
endif
ifneq ($(CONFIG_PACKAGE_odhcpd_$(BUILD_VARIANT)_ext_cer_id),0)
CMAKE_OPTIONS += -DEXT_CER_ID=$(CONFIG_PACKAGE_odhcpd_$(BUILD_VARIANT)_ext_cer_id)
endif
define Package/odhcpd/install define Package/odhcpd/install
$(INSTALL_DIR) $(1)/usr/sbin/ $(INSTALL_DIR) $(1)/usr/sbin/
$(INSTALL_BIN) $(PKG_BUILD_DIR)/odhcpd $(1)/usr/sbin/ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/odhcpd $(1)/usr/sbin/
$(INSTALL_BIN) ./files/odhcpd-update $(1)/usr/sbin/ $(INSTALL_BIN) ./files/odhcpd-update $(1)/usr/sbin/
$(INSTALL_DIR) $(1)/etc/init.d $(INSTALL_DIR) $(1)/etc/init.d
$(INSTALL_BIN) ./files/odhcpd.init $(1)/etc/init.d/odhcpd $(INSTALL_BIN) ./files/odhcpd.init $(1)/etc/init.d/odhcpd
@ -76,4 +104,7 @@ define Package/odhcpd/install
$(INSTALL_BIN) ./files/odhcpd.defaults $(1)/etc/uci-defaults $(INSTALL_BIN) ./files/odhcpd.defaults $(1)/etc/uci-defaults
endef endef
Package/odhcpd-ipv6only/install = $(Package/odhcpd/install)
$(eval $(call BuildPackage,odhcpd)) $(eval $(call BuildPackage,odhcpd))
$(eval $(call BuildPackage,odhcpd-ipv6only))