aboutsummaryrefslogtreecommitdiffstats
path: root/recipes/dhcp
diff options
context:
space:
mode:
authorKoen Kooi <koen@openembedded.org>2010-09-24 17:46:42 +0200
committerKoen Kooi <koen@openembedded.org>2010-09-24 17:46:42 +0200
commit4bb71df326a82bd6d7fe24ae3be66ec0b2298f12 (patch)
tree516f42e5ea68d8713dc36d6b55f954fec5169741 /recipes/dhcp
parente06553979d23531397af3dd71870abb80718c681 (diff)
downloadopenembedded-4bb71df326a82bd6d7fe24ae3be66ec0b2298f12.tar.gz
dhcp: add 4.x from poky
Diffstat (limited to 'recipes/dhcp')
-rw-r--r--recipes/dhcp/dhcp-4.1.1-P1/dhcp-3.0.3-dhclient-dbus.patch84
-rw-r--r--recipes/dhcp/dhcp-4.1.1-P1/fix-client-path.patch21
-rw-r--r--recipes/dhcp/dhcp-4.1.1-P1/fixincludes.patch10
-rw-r--r--recipes/dhcp/dhcp-4.1.1-P1/noattrmode.patch20
-rw-r--r--recipes/dhcp/dhcp-4.1.1-P1/site.h21
-rw-r--r--recipes/dhcp/dhcp4.inc57
-rw-r--r--recipes/dhcp/dhcp_4.1.1-P1.bb11
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 0000000000..579d72f484
--- /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 0000000000..f6a7be1d81
--- /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 0000000000..91d99cce22
--- /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 0000000000..5c766d6c06
--- /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 0000000000..2289554ef3
--- /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 0000000000..7652b948f0
--- /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 0000000000..ed5a31b7f2
--- /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"
+