#
# Copyright (C) 2016 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#

include $(TOPDIR)/rules.mk

PKG_NAME:=dhcp-forwarder
PKG_VERSION:=0.11
PKG_RELEASE:=1

PKG_SOURCE_URL:=@SAVANNAH/dhcp-fwd/
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_HASH:=6abf8e6a72ad01df90efba543c9a18c149b24d50d000e66ce55209780dc04cd5

PKG_LICENSE:=GPL-2.0
PKG_LICENSE_FILES:=COPYING

PKG_MAINTAINER:=Scott K Logan <logans@cottsay.net>

PKG_BUILD_PARALLEL:=1
PKG_INSTALL:=1

include $(INCLUDE_DIR)/package.mk

define Package/dhcp-forwarder
  SECTION:=net
  CATEGORY:=Network
  SUBMENU:=IP Addresses and Names
  TITLE:=DHCP relay agent
  URL:=http://www.nongnu.org/dhcp-fwd/
  USERID:=dhcp-fwd=375:dhcp-fwd=375
endef

define Package/dhcp-forwarder/description
  This program forwards DHCP messages between subnets with different sublayer
  broadcast domains. It is similarly to the DHCP relay agent dhcrelay of ISC's
  DHCP, but has the following features which are important for me:

  - Runs as non-root in a chroot-jail
  - Uses "normal" AF_INET sockets; this allows to uses packetfilters to filter
    incoming messages.
  - The DHCP agent IDs can be defined freely
  - Has a small memory footprint when using dietlibc

  It tries to be RFC 2131/2132 and 3046 compliant. Probably it works with BOOTP
  (RFC 951) also, but since the handling of the giaddr field is described
  misleading (see RFC 1542), there may occur problems.
endef

define Package/dhcp-forwarder/conffiles
/etc/dhcp-fwd.conf
endef

CONFIGURE_ARGS += \
	--disable-dietlibc \

define Build/Compile
	$(MAKE) -C $(PKG_BUILD_DIR) \
	  DESTDIR="$(PKG_INSTALL_DIR)" \
	  cfg_filename="/etc/dhcp-fwd.conf" \
	  all install
endef

define Package/dhcp-forwarder/install
	$(INSTALL_DIR) $(1)/usr/bin $(1)/etc $(1)/etc/init.d
	$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/dhcp-fwd $(1)/usr/bin/
	$(INSTALL_CONF) $(PKG_BUILD_DIR)/contrib/dhcp-fwd.conf $(1)/etc/
	$(INSTALL_BIN) ./files/dhcp-fwd.init $(1)/etc/init.d/dhcp-fwd
endef

$(eval $(call BuildPackage,dhcp-forwarder))