From 21ed9fa0c18c76a05136fb4b9964616b4fea7728 Mon Sep 17 00:00:00 2001 From: Phil Sutter Date: Sun, 11 Apr 2010 23:37:35 +0200 Subject: add proper infrastructure for udhcpd This is a bit hacky, as it creates a meta-package with no prompt and boolean value of the busybox internal udhcpd config symbol. It's use is only to get the required files into the image. I guess there is probably a more elegant way of doing this. --- package/busybox/Config.in.manual | 3 +++ package/busybox/Makefile | 8 ++++++++ package/busybox/files/udhcpd.conf | 28 ++++++++++++++++++++++++++++ package/busybox/files/udhcpd.conffiles | 1 + package/busybox/files/udhcpd.init | 28 ++++++++++++++++++++++++++++ package/busybox/files/udhcpd.postinst | 3 +++ 6 files changed, 71 insertions(+) create mode 100644 package/busybox/files/udhcpd.conf create mode 100644 package/busybox/files/udhcpd.conffiles create mode 100644 package/busybox/files/udhcpd.init create mode 100644 package/busybox/files/udhcpd.postinst (limited to 'package/busybox') diff --git a/package/busybox/Config.in.manual b/package/busybox/Config.in.manual index 84c1bde40..4e7251520 100644 --- a/package/busybox/Config.in.manual +++ b/package/busybox/Config.in.manual @@ -17,3 +17,6 @@ menu "Busybox Configuration" source "package/busybox/config/Config.in" endmenu +config ADK_PACKAGE_UDHCPD + boolean + default BUSYBOX_APP_UDHCPD diff --git a/package/busybox/Makefile b/package/busybox/Makefile index 400be01e6..5d6826986 100644 --- a/package/busybox/Makefile +++ b/package/busybox/Makefile @@ -12,9 +12,13 @@ PKG_SECTION:= base PKG_URL:= http://www.busybox.net PKG_SITES:= http://www.busybox.net/downloads/ +PKG_DESCR_UDHCPD:= uDHCPD meta package +PKG_SECTION_UDHCPD:= net + include $(TOPDIR)/mk/package.mk $(eval $(call PKG_template,BUSYBOX,${PKG_NAME},${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION})) +$(eval $(call PKG_template,UDHCPD,udhcpd,${PKG_VERSION}-${PKG_RELEASE},busybox,${PKG_DESCR_UDHCPD},${PKG_SECTION_UDHCPD})) CONFIG_STYLE:= manual BUILD_STYLE:= manual @@ -63,6 +67,10 @@ ifeq ($(ADK_DEBUG),y) ${INSTALL_BIN} $(WRKBUILD)/busybox_unstripped \ $(IDIR_BUSYBOX)/bin/busybox endif +ifeq ($(ADK_PACKAGE_UDHCPD),y) + ${INSTALL_DIR} ${IDIR_UDHCPD}/etc/ + ${INSTALL_DATA} ./files/udhcpd.conf ${IDIR_UDHCPD}/etc/ +endif fake: $(TOPDIR)/.busyboxcfg do-configure do-install diff --git a/package/busybox/files/udhcpd.conf b/package/busybox/files/udhcpd.conf new file mode 100644 index 000000000..6c8104dfa --- /dev/null +++ b/package/busybox/files/udhcpd.conf @@ -0,0 +1,28 @@ +# interface to bind to +interface eth0 + +# iprange to choose from +start 192.168.1.100 +end 192.168.1.200 + +# max number of leases +#max_leases 100 + +# period of auto lease file updates (in seconds) +auto_time 7200 + +# some timeouts +#decline_time 3600 +#conflict_time 3600 +#offer_time 60 +#min_lease 60 + +# do not change the path here +leases_file /var/udhcpd.leases + +# call this script upon lease file write +# (dumpleases may be useful for debugging) +#notify_file dumpleases + +# static leases +#static_lease 00:fe:ed:ba:be:00 192.168.1.2 diff --git a/package/busybox/files/udhcpd.conffiles b/package/busybox/files/udhcpd.conffiles new file mode 100644 index 000000000..c0b2aeea6 --- /dev/null +++ b/package/busybox/files/udhcpd.conffiles @@ -0,0 +1 @@ +/etc/udhcpd.conf diff --git a/package/busybox/files/udhcpd.init b/package/busybox/files/udhcpd.init new file mode 100644 index 000000000..d9627aa9d --- /dev/null +++ b/package/busybox/files/udhcpd.init @@ -0,0 +1,28 @@ +#!/bin/sh +#PKG udhcpd +#INIT 50 +. /etc/rc.conf + +case $1 in +autostop) ;; +autostart) + [[ $udhcpd = NO ]] && exit 0 + exec sh $0 start + ;; +start) + touch /var/udhcp.leases + udhcpd -S + ;; +stop) + pkill udhcpd + ;; +restart) + sh $0 stop + sh $0 start + ;; +*) + echo "Usage: $0 {start | stop | restart}" + exit 1 + ;; +esac +exit $? diff --git a/package/busybox/files/udhcpd.postinst b/package/busybox/files/udhcpd.postinst new file mode 100644 index 000000000..f90718c58 --- /dev/null +++ b/package/busybox/files/udhcpd.postinst @@ -0,0 +1,3 @@ +#!/bin/sh +. $IPKG_INSTROOT/etc/functions.sh +add_rcconf udhcpd udhcpd 'NO' -- cgit v1.2.3