include $(TOPDIR)/rules.mk
PKG_NAME:=odhcpd
-PKG_RELEASE:=1
+PKG_RELEASE:=3
PKG_SOURCE_PROTO:=git
-PKG_SOURCE_URL=$(LEDE_GIT)/project/odhcpd.git
-PKG_SOURCE_DATE:=2017-11-21
-PKG_SOURCE_VERSION:=057342245c79fbec788ac9873a85de77d0c0a5b8
-PKG_MIRROR_HASH:=20ca7c78a38555b125337538f33a1cf0e79f0062259d387f3ada57019086e8e7
+PKG_SOURCE_URL=$(PROJECT_GIT)/project/odhcpd.git
+PKG_SOURCE_DATE:=2020-05-03
+PKG_SOURCE_VERSION:=49e4949c6dee4a7e528e9bc51e9813228c3c16d8
+PKG_MIRROR_HASH:=a4e64ad959a9d3fe45614c45800dddc9c4dffcf20a308968a9c7f1a9886cd281
PKG_MAINTAINER:=Hans Dedecker <dedeckeh@gmail.com>
PKG_LICENSE:=GPL-2.0
+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
+ DEPENDS+= @IPV6
+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
$(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))