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

LEDE Commits lede-commits at lists.infradead.org
Sat Nov 25 09:17:49 PST 2017


dedeckeh pushed a commit to source.git, branch master:
https://git.lede-project.org/99ea749d37e5362aa587146df617fecf4e4daced

commit 99ea749d37e5362aa587146df617fecf4e4daced
Author: Hans Dedecker <dedeckeh at gmail.com>
AuthorDate: Sat Nov 25 17:56:01 2017 +0100

    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 at gmail.com>
---
 package/network/services/odhcpd/Makefile | 85 ++++++++++++++++++++++----------
 1 file changed, 58 insertions(+), 27 deletions(-)

diff --git a/package/network/services/odhcpd/Makefile b/package/network/services/odhcpd/Makefile
index 7ff9eb7..9ae6db2 100644
--- a/package/network/services/odhcpd/Makefile
+++ b/package/network/services/odhcpd/Makefile
@@ -9,6 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=odhcpd
 PKG_RELEASE:=1
+PKG_VERSION:=1.0
 
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL=$(LEDE_GIT)/project/odhcpd.git
@@ -19,56 +20,83 @@ PKG_MIRROR_HASH:=20ca7c78a38555b125337538f33a1cf0e79f0062259d387f3ada57019086e8e
 PKG_MAINTAINER:=Hans Dedecker <dedeckeh at gmail.com>
 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)/cmake.mk
 
-CMAKE_OPTIONS += -DUBUS=1
-
-define Package/odhcpd
+define Package/odhcpd/default
   SECTION:=net
   CATEGORY:=Network
-  TITLE:=OpenWrt DHCP/DHCPv6(-PD)/RA Server & Relay
+  TITLE:=OpenWrt DHCPv6(-PD)/RA Server & Relay
   DEPENDS:=+libubox +libuci +libubus +libnl-tiny
 endef
 
-define Package/odhcpd/config
+define Package/odhcpd/default/description
+ odhcpd is a daemon for serving and relaying IP management protocols to
+ configure clients and downstream routers. It tries to follow the RFC 6204
+ requirements for IPv6 home routers.
+endef
+
+define Package/odhcpd/default/config
 menu "Configuration"
-	depends on PACKAGE_odhcpd
+	depends on PACKAGE_$(1)
 
-config PACKAGE_odhcpd_ext_cer_id
+config PACKAGE_odhcpd_$(2)_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
+  $(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
- odhcpd is a daemon for serving and relaying IP management protocols to
- configure clients and downstream routers. It tries to follow the RFC 6204
- 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.
+ $(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
 	$(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_DIR) $(1)/etc/init.d
 	$(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
 endef
 
+Package/odhcpd-ipv6only/install = $(Package/odhcpd/install)
+
 $(eval $(call BuildPackage,odhcpd))
+$(eval $(call BuildPackage,odhcpd-ipv6only))



More information about the lede-commits mailing list