[oe-commits] Koen Kooi : dhcp: add 4.x from poky

git version control git at git.openembedded.org
Fri Sep 24 16:04:54 UTC 2010


Module: openembedded.git
Branch: org.openembedded.dev
Commit: 4bb71df326a82bd6d7fe24ae3be66ec0b2298f12
URL:    http://gitweb.openembedded.net/?p=openembedded.git&a=commit;h=4bb71df326a82bd6d7fe24ae3be66ec0b2298f12

Author: Koen Kooi <koen at openembedded.org>
Date:   Fri Sep 24 17:46:42 2010 +0200

dhcp: add 4.x from poky

---

 .../dhcp-4.1.1-P1/dhcp-3.0.3-dhclient-dbus.patch   |   84 ++++++++++++++++++++
 recipes/dhcp/dhcp-4.1.1-P1/fix-client-path.patch   |   21 +++++
 recipes/dhcp/dhcp-4.1.1-P1/fixincludes.patch       |   10 +++
 recipes/dhcp/dhcp-4.1.1-P1/noattrmode.patch        |   20 +++++
 recipes/dhcp/dhcp-4.1.1-P1/site.h                  |   21 +++++
 recipes/dhcp/dhcp4.inc                             |   57 +++++++++++++
 recipes/dhcp/dhcp_4.1.1-P1.bb                      |   11 +++
 7 files changed, 224 insertions(+), 0 deletions(-)

diff --git a/recipes/dhcp/dhcp-4.1.1-P1/dhcp-3.0.3-dhclient-dbus.patch b/recipes/dhcp/dhcp-4.1.1-P1/dhcp-3.0.3-dhclient-dbus.patch
new file mode 100644
index 0000000..579d72f
--- /dev/null
+++ b/recipes/dhcp/dhcp-4.1.1-P1/dhcp-3.0.3-dhclient-dbus.patch
@@ -0,0 +1,84 @@
+--- client/scripts/bsdos
++++ client/scripts/bsdos
+@@ -47,6 +47,11 @@
+     . /etc/dhcp/dhclient-exit-hooks
+   fi
+ # probably should do something with exit status of the local script
++  if [ x$dhc_dbus != x -a $exit_status -eq 0 ]; then
++    dbus-send --system --dest=com.redhat.dhcp \
++      --type=method_call /com/redhat/dhcp/$interface com.redhat.dhcp.set \
++      'string:'"`env | grep -Ev '^(PATH|SHLVL|_|PWD|dhc_dbus)\='`"
++  fi
+   exit $exit_status
+ }
+ 
+--- client/scripts/freebsd
++++ client/scripts/freebsd
+@@ -57,6 +57,11 @@
+     . /etc/dhcp/dhclient-exit-hooks
+   fi
+ # probably should do something with exit status of the local script
++  if [ x$dhc_dbus != x -a $exit_status -eq 0 ]; then
++    dbus-send --system --dest=com.redhat.dhcp \
++      --type=method_call /com/redhat/dhcp/$interface com.redhat.dhcp.set \
++      'string:'"`env | grep -Ev '^(PATH|SHLVL|_|PWD|dhc_dbus)\='`"
++  fi
+   exit $exit_status
+ }
+ 
+--- client/scripts/linux
++++ client/scripts/linux
+@@ -69,6 +69,11 @@
+     . /etc/dhcp/dhclient-exit-hooks
+   fi
+ # probably should do something with exit status of the local script
++  if [ x$dhc_dbus != x -a $exit_status -eq 0 ]; then
++    dbus-send --system --dest=com.redhat.dhcp \
++      --type=method_call /com/redhat/dhcp/$interface com.redhat.dhcp.set \
++      'string:'"`env | grep -Ev '^(PATH|SHLVL|_|PWD|dhc_dbus)\='`"
++  fi
+   exit $exit_status
+ }
+ 
+--- client/scripts/netbsd
++++ client/scripts/netbsd
+@@ -47,6 +47,11 @@
+     . /etc/dhcp/dhclient-exit-hooks
+   fi
+ # probably should do something with exit status of the local script
++  if [ x$dhc_dbus != x -a $exit_status -eq 0 ]; then
++    dbus-send --system --dest=com.redhat.dhcp \
++      --type=method_call /com/redhat/dhcp/$interface com.redhat.dhcp.set \
++      'string:'"`env | grep -Ev '^(PATH|SHLVL|_|PWD|dhc_dbus)\='`"
++  fi
+   exit $exit_status
+ }
+ 
+--- client/scripts/openbsd
++++ client/scripts/openbsd
+@@ -47,6 +47,11 @@
+     . /etc/dhcp/dhclient-exit-hooks
+   fi
+ # probably should do something with exit status of the local script
++  if [ x$dhc_dbus != x -a $exit_status -eq 0 ]; then
++    dbus-send --system --dest=com.redhat.dhcp \
++      --type=method_call /com/redhat/dhcp/$interface com.redhat.dhcp.set \
++      'string:'"`env | grep -Ev '^(PATH|SHLVL|_|PWD|dhc_dbus)\='`"
++  fi
+   exit $exit_status
+ }
+ 
+--- client/scripts/solaris
++++ client/scripts/solaris
+@@ -47,6 +47,11 @@
+     . /etc/dhcp/dhclient-exit-hooks
+   fi
+ # probably should do something with exit status of the local script
++  if [ x$dhc_dbus != x -a $exit_status -eq 0 ]; then
++    dbus-send --system --dest=com.redhat.dhcp \
++      --type=method_call /com/redhat/dhcp/$interface com.redhat.dhcp.set \
++      'string:'"`env | grep -Ev '^(PATH|SHLVL|_|PWD|dhc_dbus)\='`"
++  fi
+   exit $exit_status
+ }
+ 
diff --git a/recipes/dhcp/dhcp-4.1.1-P1/fix-client-path.patch b/recipes/dhcp/dhcp-4.1.1-P1/fix-client-path.patch
new file mode 100644
index 0000000..f6a7be1
--- /dev/null
+++ b/recipes/dhcp/dhcp-4.1.1-P1/fix-client-path.patch
@@ -0,0 +1,21 @@
+CLIENT_PATH is the only environment when executing dhclient-script,
+without this patch, dhclient-script won't run properly because it
+invokes ifconfig and route
+
+7/28/2010 - qhe
+
+diff -ru dhcp-4.1.1-P1.orig//client/Makefile.am dhcp-4.1.1-P1/client/Makefile.am
+--- dhcp-4.1.1-P1.orig//client/Makefile.am	2010-07-29 13:20:05.000000000 +0800
++++ dhcp-4.1.1-P1/client/Makefile.am	2010-07-29 13:28:14.000000000 +0800
+@@ -10,9 +10,9 @@
+ EXTRA_DIST = $(man_MANS)
+ 
+ dhclient.o: dhclient.c
+-	$(COMPILE) -DCLIENT_PATH='"$(sbindir)"' \
++	$(COMPILE) -DCLIENT_PATH='"PATH=$(sbindir):$(base_sbindir):$(bindir):$(base_bindir)"' \
+ 		   -DLOCALSTATEDIR='"$(localstatedir)"' -c dhclient.c
+ 
+ dhc6.o: dhc6.c
+-	$(COMPILE) -DCLIENT_PATH='"$(sbindir)"' \
++	$(COMPILE) -DCLIENT_PATH='"PATH=$(sbindir):$(base_sbindir):$(bindir):$(base_bindir)"' \
+ 		   -DLOCALSTATEDIR='"$(localstatedir)"' -c dhc6.c
diff --git a/recipes/dhcp/dhcp-4.1.1-P1/fixincludes.patch b/recipes/dhcp/dhcp-4.1.1-P1/fixincludes.patch
new file mode 100644
index 0000000..91d99cc
--- /dev/null
+++ b/recipes/dhcp/dhcp-4.1.1-P1/fixincludes.patch
@@ -0,0 +1,10 @@
+--- dhcp-3.0.2/common/tr.c~compile	2005-10-13 14:23:37.000000000 +0200
++++ dhcp-3.0.2/common/tr.c	2005-10-13 14:23:45.000000000 +0200
+@@ -39,6 +39,7 @@
+ #include "includes/netinet/udp.h"
+ #include "includes/netinet/if_ether.h"
+ #include "netinet/if_tr.h"
++#include <asm/types.h>
+ #include <sys/time.h>
+ 
+ /*
diff --git a/recipes/dhcp/dhcp-4.1.1-P1/noattrmode.patch b/recipes/dhcp/dhcp-4.1.1-P1/noattrmode.patch
new file mode 100644
index 0000000..5c766d6
--- /dev/null
+++ b/recipes/dhcp/dhcp-4.1.1-P1/noattrmode.patch
@@ -0,0 +1,20 @@
+
+#
+# Patch managed by http://www.holgerschurig.de/patcher.html
+#
+
+--- dhcp-3.0.1/includes/dhcpd.h~compile
++++ dhcp-3.0.1/includes/dhcpd.h
+@@ -306,9 +306,9 @@
+ #	define EPHEMERAL_FLAGS		(MS_NULL_TERMINATION | \
+ 					 UNICAST_BROADCAST_HACK)
+ 
+-	binding_state_t __attribute__ ((mode (__byte__))) binding_state;
+-	binding_state_t __attribute__ ((mode (__byte__))) next_binding_state;
+-	binding_state_t __attribute__ ((mode (__byte__))) desired_binding_state;
++	binding_state_t binding_state;
++	binding_state_t next_binding_state;
++	binding_state_t desired_binding_state;
+ 	
+ 	struct lease_state *state;
+ 
diff --git a/recipes/dhcp/dhcp-4.1.1-P1/site.h b/recipes/dhcp/dhcp-4.1.1-P1/site.h
new file mode 100644
index 0000000..2289554
--- /dev/null
+++ b/recipes/dhcp/dhcp-4.1.1-P1/site.h
@@ -0,0 +1,21 @@
+/*
+ * define config file location in ${S}/includes/site.h
+ * still need to take care of installation path (${sysconfdir}/dhcpd.conf)
+ *
+ * 7/22/2010 - qhe
+ */
+
+/* Define this if you want DNS update functionality to be available. */
+
+#define NSUPDATE
+
+/* Define this if you aren't debugging and you want to save memory
+   (potentially a _lot_ of memory) by allocating leases in chunks rather
+   than one at a time. */
+
+#define COMPACT_LEASES
+
+
+/* local */
+#define _PATH_DHCPD_CONF     "/etc/dhcp/dhcpd.conf"
+#define _PATH_DHCLIENT_CONF  "/etc/dhcp/dhclient.conf"
diff --git a/recipes/dhcp/dhcp4.inc b/recipes/dhcp/dhcp4.inc
new file mode 100644
index 0000000..7652b94
--- /dev/null
+++ b/recipes/dhcp/dhcp4.inc
@@ -0,0 +1,57 @@
+SECTION = "console/network"
+DESCRIPTION = "Internet Software Consortium DHCP package"
+HOMEPAGE = "http://www.isc.org/"
+
+LICENSE = "ISC"
+LIC_FILES_CHKSUM = "file://LICENSE;beginline=4;md5=bb6fd41f5895b67088ebea61ad365e74"
+
+SRC_URI = "ftp://ftp.isc.org/isc/dhcp/dhcp-${PV}.tar.gz \
+           file://site.h \
+	   file://init-relay file://default-relay \
+	   file://init-server file://default-server \
+	   file://dhclient.conf file://dhcpd.conf"
+
+inherit autotools
+
+TARGET_CFLAGS += "-D_GNU_SOURCE"
+EXTRA_OECONF = "--with-srv-lease-file=${localstatedir}/lib/dhcp/dhcpd.leases \
+                --with-srv6-lease-file=${localstatedir}/lib/dhcp/dhcpd6.leases \
+                --with-cli-lease-file=${localstatedir}/lib/dhcp/dhclient.leases \
+                --with-cli6-lease-file=${localstatedir}/lib/dhcp/dhclient6.leases"
+
+do_compile_prepend () {
+	cp -f ${WORKDIR}/site.h ${S}/includes
+}
+
+do_install_append () {
+	install -d ${D}${sysconfdir}/init.d
+	install -d ${D}${sysconfdir}/default
+	install -d ${D}${sysconfdir}/dhcp
+	install -m 0755 ${WORKDIR}/init-relay ${D}${sysconfdir}/init.d/dhcp-relay
+	install -m 0644 ${WORKDIR}/default-relay ${D}${sysconfdir}/default/dhcp-relay
+	install -m 0755 ${WORKDIR}/init-server ${D}${sysconfdir}/init.d/dhcp-server
+	install -m 0644 ${WORKDIR}/default-server ${D}${sysconfdir}/default/dhcp-server
+
+	rm -f ${D}${sysconfdir}/dhclient.conf
+	rm -f ${D}${sysconfdir}/dhcpd.conf
+	install -m 0644 ${WORKDIR}/dhclient.conf ${D}${sysconfdir}/dhcp/dhclient.conf
+	install -m 0644 ${WORKDIR}/dhcpd.conf ${D}${sysconfdir}/dhcp/dhcpd.conf
+
+	install -d ${D}${base_sbindir}/
+	mv ${D}${sbindir}/dhclient ${D}${base_sbindir}/
+	install -m 0755 ${S}/client/scripts/linux ${D}${base_sbindir}/dhclient-script
+}
+
+PACKAGES += "dhcp-server dhcp-client dhcp-relay dhcp-omshell"
+FILES_${PN} = ""
+FILES_dhcp-server = "${sbindir}/dhcpd ${sysconfdir}/init.d/dhcp-server ${sysconfdir}/default/dhcp-server ${sysconfdir}/dhcp/dhcpd.conf"
+FILES_dhcp-relay = "${sbindir}/dhcrelay ${sysconfdir}/init.d/dhcp-relay ${sysconfdir}/default/dhcp-relay"
+
+FILES_dhcp-client = "${base_sbindir}/dhclient ${base_sbindir}/dhclient-script ${sysconfdir}/dhcp/dhclient.conf"
+RDEPENDS_dhcp-client = "bash"
+
+FILES_dhcp-omshell = "${bindir}/omshell"
+
+CONFFILES_dhcp-server_nylon = "/etc/dhcp/dhcpd.conf"
+CONFFILES_dhcp-relay_nylon = "/etc/default/dhcp-relay"
+CONFFILES_dhcp-client_nylon = "/etc/dhcp/dhclient.conf"
diff --git a/recipes/dhcp/dhcp_4.1.1-P1.bb b/recipes/dhcp/dhcp_4.1.1-P1.bb
new file mode 100644
index 0000000..ed5a31b
--- /dev/null
+++ b/recipes/dhcp/dhcp_4.1.1-P1.bb
@@ -0,0 +1,11 @@
+require dhcp4.inc
+
+PR = "r1"
+
+SRC_URI += "file://fixincludes.patch \
+            file://dhcp-3.0.3-dhclient-dbus.patch;striplevel=0 \
+            file://fix-client-path.patch"
+
+SRC_URI[md5sum] = "ee390a35687dd75dbfc32c856c0938d1"
+SRC_URI[sha256sum] = "2f640350cbb1966ec3090198c3f128d649a3655f747f96ce910a477fe63263da"
+





More information about the Openembedded-commits mailing list