Includes DHCPv6 support. Has received minimal testing.

Also available as a branch on github:
http://github.com/ChoHag/openwrt-packages

Signed-off-by: Matthew King <[email protected]>

-- 
I must take issue with the term "a mere child", for it has been my
invariable experience that the company of a mere child is infinitely
preferable to that of a mere adult.
                                           --  Fran Lebowitz
diff --git a/net/dhcp/Makefile b/net/dhcp/Makefile
index 079e311..4b203ba 100644
--- a/net/dhcp/Makefile
+++ b/net/dhcp/Makefile
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=dhcp
-PKG_VERSION:=3.1.0
+PKG_VERSION:=4.1.0p1
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=ftp://ftp.isc.org/isc/dhcp/
-PKG_MD5SUM:=27d179a3c3fbef576566b456a1168246
+PKG_MD5SUM:=325ff8338c5a21f89d5304ac13ffebdf
 
 include $(INCLUDE_DIR)/package.mk
 
@@ -24,6 +24,11 @@ define Package/dhcp/Default
   URL:=https://www.isc.org/software/dhcp
 endef
 
+define Package/dhcp-client
+  $(call Package/dhcp/Default)
+  TITLE+= client
+endef
+
 define Package/dhcp-relay
   $(call Package/dhcp/Default)
   TITLE+= relay
@@ -34,29 +39,26 @@ define Package/dhcp-server
   TITLE+= server
 endef
 
+CONFIGULE_ARGS += \
+	--localstatedir=/var \
+	--with-srv-lease-file=/etc/dhcpd.leases \
+	--with-srv6-lease-file=/etc/dhcpd6.leases
 
-define Build/Configure
-	# it's not GNU autoconf stuff
-	(cd $(PKG_BUILD_DIR) ; \
-		UNAME_S=Linux \
-		UNAME_M=$(ARCH) \
-		UNAME_R=2.6.23 \
-		./configure \
-			--copts "$(TARGET_CFLAGS)" \
-	);
-endef
+CONFIGURE_VARS += ac_cv_file__dev_random=set
 
 define Build/Compile
-	UNAME_S=Linux \
-	UNAME_M=$(ARCH) \
-	UNAME_R=2.6.23 \
 	$(MAKE) -C $(PKG_BUILD_DIR) \
-		$(TARGET_CONFIGURE_OPTS) \
 		DESTDIR="$(PKG_INSTALL_DIR)" \
+		CFLAGS=-D_GNU_SOURCE \
 		all install
 endef
 
 
+define Package/dhcp-client/install
+	$(INSTALL_DIR) $(1)/usr/sbin
+	$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/dhclient $(1)/usr/sbin/
+endef
+
 define Package/dhcp-relay/install
 	$(INSTALL_DIR) $(1)/usr/sbin
 	$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/dhcrelay $(1)/usr/sbin/
@@ -65,13 +67,13 @@ endef
 define Package/dhcp-server/install
 	$(INSTALL_DIR) $(1)/usr/sbin
 	$(INSTALL_DIR) $(1)/usr/bin
-	$(INSTALL_DIR) $(1)/usr/local/lib
 	$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/dhcpd $(1)/usr/sbin/
 	$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/omshell $(1)/usr/bin/
-	$(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/local/lib/*.a $(1)/usr/local/lib
 	$(INSTALL_DIR) $(1)/etc/init.d
 	$(INSTALL_BIN) ./files/dhcpd.init $(1)/etc/init.d/dhcpd
+	$(INSTALL_BIN) ./files/dhcpd6.init $(1)/etc/init.d/dhcpd6
 endef
 
+$(eval $(call BuildPackage,dhcp-client))
 $(eval $(call BuildPackage,dhcp-relay))
 $(eval $(call BuildPackage,dhcp-server))
diff --git a/net/dhcp/files/dhcpd.init b/net/dhcp/files/dhcpd.init
index c874552..4fa586a 100644
--- a/net/dhcp/files/dhcpd.init
+++ b/net/dhcp/files/dhcpd.init
@@ -1,7 +1,7 @@
 #!/bin/sh /etc/rc.common
 START=60
 
-lease_file=/tmp/dhcpd.leases
+lease_file=/etc/dhcpd.leases
 config_file=/etc/dhcpd.conf
 pid_file=/var/run/dhcpd.pid
 
@@ -13,7 +13,7 @@ start() {
 		touch $lease_file
 	fi
 	
-	/usr/sbin/dhcpd -q -cf $config_file -lf $lease_file
+	/usr/sbin/dhcpd -4 -q -cf $config_file -lf $lease_file
 	
 	if [ $? -ne 0 ]; then
 		echo "  isc-dhcpd failed to start"
diff --git a/net/dhcp/files/dhcpd6.init b/net/dhcp/files/dhcpd6.init
new file mode 100644
index 0000000..c72e18c
--- /dev/null
+++ b/net/dhcp/files/dhcpd6.init
@@ -0,0 +1,37 @@
+#!/bin/sh /etc/rc.common
+START=60
+
+lease_file=/etc/dhcpd6.leases
+config_file=/etc/dhcpd6.conf
+pid_file=/var/run/dhcpd6.pid
+
+start() {
+	echo Starting isc-dhcpd6
+
+	if [ ! -e $lease_file ]; then
+		echo "  Creating $lease_file"
+		touch $lease_file
+	fi
+	
+	/usr/sbin/dhcpd -6 -q -cf $config_file -lf $lease_file
+	
+	if [ $? -ne 0 ]; then
+		echo "  isc-dhcpd failed to start"
+	fi
+}
+
+stop() {
+	echo "Stopping isc-dhcpd6"
+	if [ -e $pid_file ]; then
+		kill `cat $pid_file`
+
+		if [ $? -ne 0 ]; then
+			echo "  PID " `cat $pid_file` not found
+			echo "  Is the DHCPv6 server running?"
+		fi
+	
+		rm $pid_file
+	else
+		echo "  $pid_file not found"
+	fi
+}
diff --git a/net/dhcp/patches/100-portability.patch b/net/dhcp/patches/100-portability.patch
deleted file mode 100644
index f768143..0000000
--- a/net/dhcp/patches/100-portability.patch
+++ /dev/null
@@ -1,22 +0,0 @@
---- dhcp.old/configure	2007-04-01 17:16:14.000000000 +0200
-+++ dhcp.dev/configure	2007-04-01 17:16:54.000000000 +0200
-@@ -26,8 +26,8 @@
-   shift
- done
- 
--uname=`uname -s`
--machine=`uname -m`
-+uname=${UNAME_S:-`uname -s`}
-+machine=${UNAME_M:-`uname -m`}
- 
- if [ "$sysname" = "" ]; then
-   case $uname in
-@@ -92,7 +92,7 @@
- 	fi
-       fi;;
-     Linux)
--      release=`uname -r`
-+      release=${UNAME_R:-`uname -r`}
-       minor=`echo $release |sed -e 's/[0-9]*\.\([0-9][0-9]*\)\(\..*\)*$/\1/'`
-       major=`echo $release |sed -e 's/\([0-9][0-9]*\)\..*$/\1/'`
-       
diff --git a/net/dhcp/patches/110-omit-docs.patch b/net/dhcp/patches/110-omit-docs.patch
deleted file mode 100644
index be078c0..0000000
--- a/net/dhcp/patches/110-omit-docs.patch
+++ /dev/null
@@ -1,159 +0,0 @@
-diff -urN dhcp-3.1.0.orig/client/Makefile.dist dhcp-3.1.0/client/Makefile.dist
---- dhcp-3.1.0.orig/client/Makefile.dist	2005-03-17 12:14:55.000000000 -0800
-+++ dhcp-3.1.0/client/Makefile.dist	2008-06-12 01:12:58.000000000 -0700
-@@ -35,7 +35,7 @@
- CFLAGS = $(DEBUG) $(PREDEFINES) $(INCLUDES) $(COPTS) \
- 		-DCLIENT_PATH=${CLIENT_PATH}
- 
--all:	$(PROG) $(CATMANPAGES)
-+all:	$(PROG)
- 
- install: all
- 	for dir in $(CLIENTBINDIR) $(ETC) $(FFMANDIR) $(ADMMANDIR) $(VARDB); \
-@@ -58,14 +58,6 @@
- 				$(DESTDIR)$(CLIENTBINDIR)/dhclient-script; \
- 	  $(CHMOD) 700 $(DESTDIR)$(CLIENTBINDIR)/dhclient-script; \
- 	fi
--	$(MANINSTALL) $(MANFROM) dhclient.$(MANCAT)8 $(MANTO) \
--			$(DESTDIR)$(ADMMANDIR)/dhclient$(ADMMANEXT)
--	$(MANINSTALL) $(MANFROM) dhclient-script.$(MANCAT)8 $(MANTO) \
--			$(DESTDIR)$(ADMMANDIR)/dhclient-script$(ADMMANEXT)
--	$(MANINSTALL) $(MANFROM) dhclient.conf.$(MANCAT)5 $(MANTO) \
--			$(DESTDIR)$(FFMANDIR)/dhclient.conf$(FFMANEXT)
--	$(MANINSTALL) $(MANFROM) dhclient.leases.$(MANCAT)5 $(MANTO) \
--			$(DESTDIR)$(FFMANDIR)/dhclient.leases$(FFMANEXT)
- 
- depend:
- 	$(MKDEP) $(INCLUDES) $(PREDEFINES) $(SRCS)
-diff -urN dhcp-3.1.0.orig/common/Makefile.dist dhcp-3.1.0/common/Makefile.dist
---- dhcp-3.1.0.orig/common/Makefile.dist	2005-03-17 12:14:56.000000000 -0800
-+++ dhcp-3.1.0/common/Makefile.dist	2008-06-12 01:12:58.000000000 -0700
-@@ -35,7 +35,7 @@
- INCLUDES = -I$(TOP) $(BINDINC) -I$(TOP)/includes
- CFLAGS = $(DEBUG) $(PREDEFINES) $(INCLUDES) $(COPTS)
- 
--all:	libdhcp.a $(CATMANPAGES)
-+all:	libdhcp.a
- 
- libdhcp.a:	$(OBJ)
- 	rm -f libdhcp.a
-@@ -53,10 +53,6 @@
- 	    fi; \
- 	  done; \
- 	done
--	$(MANINSTALL) $(MANFROM) dhcp-options.$(MANCAT)5 $(MANTO) \
--				$(DESTDIR)$(FFMANDIR)/dhcp-options$(FFMANEXT)
--	$(MANINSTALL) $(MANFROM) dhcp-eval.$(MANCAT)5 $(MANTO) \
--				$(DESTDIR)$(FFMANDIR)/dhcp-eval$(FFMANEXT)
- 
- depend:
- 	$(MKDEP) $(INCLUDES) $(PREDEFINES) $(SRC)
-diff -urN dhcp-3.1.0.orig/dhcpctl/Makefile.dist dhcp-3.1.0/dhcpctl/Makefile.dist
---- dhcp-3.1.0.orig/dhcpctl/Makefile.dist	2005-03-17 12:15:02.000000000 -0800
-+++ dhcp-3.1.0/dhcpctl/Makefile.dist	2008-06-12 01:13:51.000000000 -0700
-@@ -34,7 +34,7 @@
- DHCPCTLLIBS = libdhcpctl.a ../common/libdhcp.a $(BINDLIB) \
- 		../omapip/libomapi.a ../dst/libdst.a
- 
--all:	libdhcpctl.a omshell cltest $(CATMANPAGES)
-+all:	libdhcpctl.a omshell cltest
- 
- omshell:	omshell.o $(DHCPCTLLIBS)
- 	$(CC) $(DEBUG) $(LFLAGS) -o omshell omshell.o $(DHCPCTLLIBS) $(LIBS)
-@@ -47,7 +47,7 @@
- 	ar cruv libdhcpctl.a $(OBJ)
- 	$(RANLIB) libdhcpctl.a
- 
--install: all $(CATMANPAGES)
-+install: all
- 	for dir in $(LIBDIR) $(LIBMANDIR) $(INCDIR) $(USRMANDIR) \
- 		$(USERBINDIR); do \
- 	  foo=""; \
-@@ -63,16 +63,8 @@
- 	$(CHMOD) 644 $(DESTDIR)$(LIBDIR)/libdhcpctl.a
- 	$(INSTALL) dhcpctl.h $(DESTDIR)$(INCDIR)
- 	$(CHMOD) 644 $(DESTDIR)$(INCDIR)/dhcpctl.h
--	for man in $(MAN); do \
--	  prefix=`echo $$man |sed -e 's/\.[0-9]$$//'`; \
--	  suffix=`echo $$man |sed -e 's/.*\.\([0-9]\)$$/\1/'`; \
--	  $(MANINSTALL) $(MANFROM) $${prefix}.$(MANCAT)$${suffix} $(MANTO) \
--			$(DESTDIR)$(LIBMANDIR)/$${prefix}$(LIBMANEXT); \
--	done
- 	$(INSTALL) omshell $(DESTDIR)$(USERBINDIR)
- 	$(CHMOD) 755 $(DESTDIR)$(USERBINDIR)/omshell
--	$(MANINSTALL) $(MANFROM) omshell.$(MANCAT)1 $(MANTO) \
--				$(DESTDIR)$(USRMANDIR)/omshell$(USRMANEXT)
- 
- depend:
- 	$(MKDEP) $(INCLUDES) $(PREDEFINES) $(SRC)
-diff -urN dhcp-3.1.0.orig/omapip/Makefile.dist dhcp-3.1.0/omapip/Makefile.dist
---- dhcp-3.1.0.orig/omapip/Makefile.dist	2005-03-17 12:15:20.000000000 -0800
-+++ dhcp-3.1.0/omapip/Makefile.dist	2008-06-12 01:12:58.000000000 -0700
-@@ -40,7 +40,7 @@
- INCLUDES = $(BINDINC) -I$(TOP)/includes
- CFLAGS = $(DEBUG) $(PREDEFINES) $(INCLUDES) $(COPTS)
- 
--all:	libomapi.a svtest $(CATMANPAGES)
-+all:	libomapi.a svtest
- 
- svtest:	test.o libomapi.a $(BINDLIB) ../dst/libdst.a
- 	$(CC) $(DEBUG) $(LFLAGS) -o svtest test.o $(BINDLIB) \
-@@ -75,12 +75,6 @@
- 						$(DESTDIR)$(INCDIR)/isc-dhcp; \
- 	  $(CHMOD) 644 $(DESTDIR)$(INCDIR)/isc-dhcp/$$file; \
- 	done
--	for man in $(MAN); do \
--	  prefix=`echo $$man |sed -e 's/\.[0-9]$$//'`; \
--	  suffix=`echo $$man |sed -e 's/.*\.\([0-9]\)$$/\1/'`; \
--	  $(MANINSTALL) $(MANFROM) $${prefix}.$(MANCAT)$${suffix} $(MANTO) \
--			$(DESTDIR)$(LIBMANDIR)/$${prefix}$(LIBMANEXT); \
--	done
- 
- depend:
- 	$(MKDEP) $(INCLUDES) $(PREDEFINES) $(SRC)
-diff -urN dhcp-3.1.0.orig/relay/Makefile.dist dhcp-3.1.0/relay/Makefile.dist
---- dhcp-3.1.0.orig/relay/Makefile.dist	2005-03-17 12:15:24.000000000 -0800
-+++ dhcp-3.1.0/relay/Makefile.dist	2008-06-12 01:12:58.000000000 -0700
-@@ -33,7 +33,7 @@
- DHCPLIB = ../common/libdhcp.a $(BINDLIB) ../omapip/libomapi.a ../dst/libdst.a
- CFLAGS = $(DEBUG) $(PREDEFINES) $(INCLUDES) $(COPTS)
- 
--all:	$(PROG) $(CATMANPAGES)
-+all:	$(PROG)
- 
- install: all
- 	for dir in $(BINDIR) $(ADMMANDIR); do \
-@@ -48,8 +48,6 @@
- 	done
- 	$(INSTALL) dhcrelay $(DESTDIR)$(BINDIR)
- 	$(CHMOD) 755 $(DESTDIR)$(BINDIR)/dhcrelay
--	$(MANINSTALL) $(MANFROM) dhcrelay.$(MANCAT)8 $(MANTO) \
--				$(DESTDIR)$(ADMMANDIR)/dhcrelay$(ADMMANEXT)
- 
- depend:
- 	$(MKDEP) $(INCLUDES) $(PREDEFINES) $(SRCS)
-diff -urN dhcp-3.1.0.orig/server/Makefile.dist dhcp-3.1.0/server/Makefile.dist
---- dhcp-3.1.0.orig/server/Makefile.dist	2006-07-25 06:26:00.000000000 -0700
-+++ dhcp-3.1.0/server/Makefile.dist	2008-06-12 01:12:58.000000000 -0700
-@@ -35,7 +35,7 @@
- DHCPLIB = ../common/libdhcp.a $(BINDLIB) ../omapip/libomapi.a ../dst/libdst.a
- CFLAGS = $(DEBUG) $(PREDEFINES) $(INCLUDES) $(COPTS)
- 
--all:	$(PROG) $(CATMANPAGES)
-+all:	$(PROG)
- 
- install: all
- 	for dir in $(BINDIR) $(ADMMANDIR) $(FFMANDIR) $(VARDB); do \
-@@ -50,12 +50,6 @@
- 	done
- 	$(INSTALL) dhcpd $(DESTDIR)$(BINDIR)
- 	$(CHMOD) 755 $(DESTDIR)$(BINDIR)/dhcpd
--	$(MANINSTALL) $(MANFROM) dhcpd.$(MANCAT)8 $(MANTO) \
--			$(DESTDIR)$(ADMMANDIR)/dhcpd$(ADMMANEXT)
--	$(MANINSTALL) $(MANFROM) dhcpd.conf.$(MANCAT)5 $(MANTO) \
--			$(DESTDIR)$(FFMANDIR)/dhcpd.conf$(FFMANEXT)
--	$(MANINSTALL) $(MANFROM) dhcpd.leases.$(MANCAT)5 $(MANTO) \
--			$(DESTDIR)$(FFMANDIR)/dhcpd.leases$(FFMANEXT)
- 	$(TOUCH) $(DESTDIR)$(VARDB)/dhcpd.leases
- 	# Note file mode is hardcoded to mode 0664 in server/db.c (889).
- 	$(CHMOD) 664 $(DESTDIR)$(VARDB)/dhcpd.leases
_______________________________________________
openwrt-devel mailing list
[email protected]
https://lists.openwrt.org/mailman/listinfo/openwrt-devel

Reply via email to