diff options
Diffstat (limited to 'meta/recipes-connectivity/dhcp')
21 files changed, 731 insertions, 246 deletions
diff --git a/meta/recipes-connectivity/dhcp/dhcp.inc b/meta/recipes-connectivity/dhcp/dhcp.inc index ad82b57669..aafdd0a13d 100644 --- a/meta/recipes-connectivity/dhcp/dhcp.inc +++ b/meta/recipes-connectivity/dhcp/dhcp.inc @@ -8,17 +8,37 @@ easier to administer devices." HOMEPAGE = "http://www.isc.org/" LICENSE = "ISC" -LIC_FILES_CHKSUM = "file://LICENSE;beginline=4;md5=bb6fd41f5895b67088ebea61ad365e74" +LIC_FILES_CHKSUM = "file://LICENSE;beginline=4;md5=c5c64d696107f84b56fe337d14da1753" DEPENDS = "openssl bind" SRC_URI = "ftp://ftp.isc.org/isc/dhcp/${PV}/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" + file://define-macro-_PATH_DHCPD_CONF-and-_PATH_DHCLIENT_CON.patch \ + file://init-relay file://default-relay \ + file://init-server file://default-server \ + file://dhclient.conf file://dhcpd.conf \ + file://dhcpd.service file://dhcrelay.service \ + file://dhcpd6.service \ + file://search-for-libxml2.patch " -inherit autotools +UPSTREAM_CHECK_URI = "ftp://ftp.isc.org/isc/dhcp/" +UPSTREAM_CHECK_REGEX = "(?P<pver>\d+\.\d+\.(\d+?))/" + +inherit autotools systemd useradd update-rc.d + +USERADD_PACKAGES = "${PN}-server" +USERADD_PARAM_${PN}-server = "--system --no-create-home --home-dir /var/run/${PN} --shell /bin/false --user-group ${PN}" + +SYSTEMD_PACKAGES = "${PN}-server ${PN}-relay" +SYSTEMD_SERVICE_${PN}-server = "dhcpd.service dhcpd6.service" +SYSTEMD_AUTO_ENABLE_${PN}-server = "disable" + +SYSTEMD_SERVICE_${PN}-relay = "dhcrelay.service" +SYSTEMD_AUTO_ENABLE_${PN}-relay = "disable" + +INITSCRIPT_PACKAGES = "dhcp-server" +INITSCRIPT_NAME_dhcp-server = "dhcp-server" +INITSCRIPT_PARAMS_dhcp-server = "defaults" TARGET_CFLAGS += "-D_GNU_SOURCE" EXTRA_OECONF = "--with-srv-lease-file=${localstatedir}/lib/dhcp/dhcpd.leases \ @@ -26,12 +46,10 @@ EXTRA_OECONF = "--with-srv-lease-file=${localstatedir}/lib/dhcp/dhcpd.leases \ --with-cli-lease-file=${localstatedir}/lib/dhcp/dhclient.leases \ --with-cli6-lease-file=${localstatedir}/lib/dhcp/dhclient6.leases \ --with-libbind=${STAGING_LIBDIR}/ \ + --enable-paranoia \ + --with-randomdev=/dev/random \ " -do_compile_prepend () { - cp -f ${WORKDIR}/site.h ${S}/includes -} - do_install_append () { install -d ${D}${sysconfdir}/init.d install -d ${D}${sysconfdir}/default @@ -51,6 +69,17 @@ do_install_append () { mv ${D}${sbindir}/dhclient ${D}${base_sbindir}/ fi install -m 0755 ${S}/client/scripts/linux ${D}${base_sbindir}/dhclient-script + + # Install systemd unit files + install -d ${D}${systemd_unitdir}/system + install -m 0644 ${WORKDIR}/dhcpd.service ${D}${systemd_unitdir}/system + install -m 0644 ${WORKDIR}/dhcpd6.service ${D}${systemd_unitdir}/system + install -m 0644 ${WORKDIR}/dhcrelay.service ${D}${systemd_unitdir}/system + sed -i -e 's,@SBINDIR@,${sbindir},g' ${D}${systemd_unitdir}/system/dhcpd*.service ${D}${systemd_unitdir}/system/dhcrelay.service + sed -i -e 's,@SYSCONFDIR@,${sysconfdir},g' ${D}${systemd_unitdir}/system/dhcpd*.service + sed -i -e 's,@base_bindir@,${base_bindir},g' ${D}${systemd_unitdir}/system/dhcpd*.service + sed -i -e 's,@localstatedir@,${localstatedir},g' ${D}${systemd_unitdir}/system/dhcpd*.service + sed -i -e 's,@SYSCONFDIR@,${sysconfdir},g' ${D}${systemd_unitdir}/system/dhcrelay.service } PACKAGES += "dhcp-server dhcp-server-config dhcp-client dhcp-relay dhcp-omshell" @@ -59,17 +88,16 @@ FILES_${PN} = "" RDEPENDS_${PN}-dev = "" RDEPENDS_${PN}-staticdev = "" -FILES_dhcp-server = "${sbindir}/dhcpd ${sysconfdir}/init.d/dhcp-server" -RRECOMMENDS_dhcp-server = "dhcp-server-config" +FILES_${PN}-server = "${sbindir}/dhcpd ${sysconfdir}/init.d/dhcp-server" +RRECOMMENDS_${PN}-server = "dhcp-server-config" -FILES_dhcp-server-config = "${sysconfdir}/default/dhcp-server ${sysconfdir}/dhcp/dhcpd.conf" +FILES_${PN}-server-config = "${sysconfdir}/default/dhcp-server ${sysconfdir}/dhcp/dhcpd.conf" -FILES_dhcp-relay = "${sbindir}/dhcrelay ${sysconfdir}/init.d/dhcp-relay ${sysconfdir}/default/dhcp-relay" +FILES_${PN}-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_${PN}-client = "${base_sbindir}/dhclient ${base_sbindir}/dhclient-script ${sysconfdir}/dhcp/dhclient.conf" -FILES_dhcp-omshell = "${bindir}/omshell" +FILES_${PN}-omshell = "${bindir}/omshell" pkg_postinst_dhcp-server() { mkdir -p $D/${localstatedir}/lib/dhcp diff --git a/meta/recipes-connectivity/dhcp/dhcp/0001-site.h-enable-gentle-shutdown.patch b/meta/recipes-connectivity/dhcp/dhcp/0001-site.h-enable-gentle-shutdown.patch new file mode 100644 index 0000000000..47443a50ef --- /dev/null +++ b/meta/recipes-connectivity/dhcp/dhcp/0001-site.h-enable-gentle-shutdown.patch @@ -0,0 +1,25 @@ +Upstream-Status: Inappropriate [configuration] + +Subject: [PATCH] site.h: enable gentle shutdown + +Signed-off-by: Chen Qi <Qi.Chen@windriver.com> +--- + includes/site.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/includes/site.h b/includes/site.h +index 1dd1251..abb66e4 100644 +--- a/includes/site.h ++++ b/includes/site.h +@@ -289,7 +289,7 @@ + situations. We plan to revisit this feature and may + make non-backwards compatible changes including the + removal of this define. Use at your own risk. */ +-/* #define ENABLE_GENTLE_SHUTDOWN */ ++#define ENABLE_GENTLE_SHUTDOWN + + /* Include old error codes. This is provided in case you + are building an external program similar to omshell for +-- +2.8.1 + diff --git a/meta/recipes-connectivity/dhcp/dhcp/define-macro-_PATH_DHCPD_CONF-and-_PATH_DHCLIENT_CON.patch b/meta/recipes-connectivity/dhcp/dhcp/define-macro-_PATH_DHCPD_CONF-and-_PATH_DHCLIENT_CON.patch new file mode 100644 index 0000000000..32bdaf08e7 --- /dev/null +++ b/meta/recipes-connectivity/dhcp/dhcp/define-macro-_PATH_DHCPD_CONF-and-_PATH_DHCLIENT_CON.patch @@ -0,0 +1,26 @@ +define macro _PATH_DHCPD_CONF and _PATH_DHCLIENT_CONF + +Upstream-Status: Inappropriate [OE specific] + +Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> +--- + includes/site.h | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/includes/site.h b/includes/site.h +index d87b309..17bc40d 100644 +--- a/includes/site.h ++++ b/includes/site.h +@@ -139,7 +139,8 @@ + /* Define this if you want the dhcpd.conf file to go somewhere other than + the default location. By default, it goes in /etc/dhcpd.conf. */ + +-/* #define _PATH_DHCPD_CONF "/etc/dhcpd.conf" */ ++#define _PATH_DHCPD_CONF "/etc/dhcp/dhcpd.conf" ++#define _PATH_DHCLIENT_CONF "/etc/dhcp/dhclient.conf" + + /* Network API definitions. You do not need to choose one of these - if + you don't choose, one will be chosen for you in your system's config +-- +1.9.1 + diff --git a/meta/recipes-connectivity/dhcp/dhcp/dhclient-script-drop-resolv.conf.dhclient.patch b/meta/recipes-connectivity/dhcp/dhcp/dhclient-script-drop-resolv.conf.dhclient.patch new file mode 100644 index 0000000000..96095a5e08 --- /dev/null +++ b/meta/recipes-connectivity/dhcp/dhcp/dhclient-script-drop-resolv.conf.dhclient.patch @@ -0,0 +1,70 @@ +dhcp-client: fix invoke dhclient-script failed on Read-only file system + +In read-only file system, '/etc' is on the readonly partition, +and '/etc/resolv.conf' is symlinked to a separate writable +partition. + +In this situation, we should use shell variable to instead of +temp files '/etc/resolv.conf.dhclient' and '/etc/resolv.conf.dhclient6'. + +Upstream-Status: Pending +Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> +--- + client/scripts/linux | 20 +++++++++----------- + 1 file changed, 9 insertions(+), 11 deletions(-) + +diff --git a/client/scripts/linux b/client/scripts/linux +--- a/client/scripts/linux ++++ b/client/scripts/linux +@@ -27,27 +27,25 @@ ip=/sbin/ip + + make_resolv_conf() { + if [ x"$new_domain_name_servers" != x ]; then +- cat /dev/null > /etc/resolv.conf.dhclient +- chmod 644 /etc/resolv.conf.dhclient ++ resolv_conf="" + if [ x"$new_domain_search" != x ]; then +- echo search $new_domain_search >> /etc/resolv.conf.dhclient ++ resolv_conf="search ${new_domain_search}\n" + elif [ x"$new_domain_name" != x ]; then + # Note that the DHCP 'Domain Name Option' is really just a domain + # name, and that this practice of using the domain name option as + # a search path is both nonstandard and deprecated. +- echo search $new_domain_name >> /etc/resolv.conf.dhclient ++ resolv_conf="search ${new_domain_name}\n" + fi + for nameserver in $new_domain_name_servers; do +- echo nameserver $nameserver >>/etc/resolv.conf.dhclient ++ resolv_conf="${resolv_conf}nameserver ${nameserver}\n" + done + +- mv /etc/resolv.conf.dhclient /etc/resolv.conf ++ echo -e "${resolv_conf}" > /etc/resolv.conf + elif [ "x${new_dhcp6_name_servers}" != x ] ; then +- cat /dev/null > /etc/resolv.conf.dhclient6 +- chmod 644 /etc/resolv.conf.dhclient6 ++ resolv_conf="" + + if [ "x${new_dhcp6_domain_search}" != x ] ; then +- echo search ${new_dhcp6_domain_search} >> /etc/resolv.conf.dhclient6 ++ resolv_conf="search ${new_dhcp6_domain_search}\n" + fi + shopt -s nocasematch + for nameserver in ${new_dhcp6_name_servers} ; do +@@ -59,11 +57,11 @@ make_resolv_conf() { + else + zone_id= + fi +- echo nameserver ${nameserver}$zone_id >> /etc/resolv.conf.dhclient6 ++ resolv_conf="${resolv_conf}nameserver ${nameserver}$zone_id\n" + done + shopt -u nocasematch + +- mv /etc/resolv.conf.dhclient6 /etc/resolv.conf ++ echo -e "${resolv_conf}" > /etc/resolv.conf + fi + } + +-- +2.8.1 + diff --git a/meta/recipes-connectivity/dhcp/dhcp/fix-client-path.patch b/meta/recipes-connectivity/dhcp/dhcp/fix-client-path.patch deleted file mode 100644 index 97ed0d9322..0000000000 --- a/meta/recipes-connectivity/dhcp/dhcp/fix-client-path.patch +++ /dev/null @@ -1,23 +0,0 @@ -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 - -Upstream-Status: Inappropriate [configuration] - -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/meta/recipes-connectivity/dhcp/dhcp/fix-external-bind.patch b/meta/recipes-connectivity/dhcp/dhcp/fix-external-bind.patch deleted file mode 100644 index 4f11655812..0000000000 --- a/meta/recipes-connectivity/dhcp/dhcp/fix-external-bind.patch +++ /dev/null @@ -1,103 +0,0 @@ -Upstream-Status: Pending - -11/30/2010 ---with-libbind=PATH is available but not used by Makefile, -this patch is to allow building with external bind - -Signed-off-by: Qing He <qing.he@intel.com> - -diff --git a/Makefile.am b/Makefile.am -index 928d926..cd17af8 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -21,7 +21,7 @@ EXTRA_DIST = RELNOTES LICENSE \ - util/bindvar.sh \ - bind/Makefile bind/bind.tar.gz bind/version.tmp - --SUBDIRS = bind includes tests common dst omapip client dhcpctl relay server -+SUBDIRS = includes tests common dst omapip client dhcpctl relay server - - nobase_include_HEADERS = dhcpctl/dhcpctl.h - -diff --git a/client/Makefile.am b/client/Makefile.am -index 77ed055..5a77f2d 100644 ---- a/client/Makefile.am -+++ b/client/Makefile.am -@@ -5,7 +5,7 @@ dhclient_SOURCES = clparse.c dhclient.c dhc6.c \ - scripts/netbsd scripts/nextstep scripts/openbsd \ - scripts/solaris scripts/openwrt - dhclient_LDADD = ../common/libdhcp.a ../omapip/libomapi.a \ -- ../bind/lib/libdns.a ../bind/lib/libisc.a -+ $(libbind)/libdns.a $(libbind)/libisc.a - man_MANS = dhclient.8 dhclient-script.8 dhclient.conf.5 dhclient.leases.5 - EXTRA_DIST = $(man_MANS) - -diff --git a/configure.ac b/configure.ac -index ff832aa..60d342c 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -500,6 +500,7 @@ no) - libbind="$use_libbind" - ;; - esac -+AC_SUBST([libbind]) - - # OpenLDAP support. - AC_ARG_WITH(ldap, -diff --git a/dhcpctl/Makefile.am b/dhcpctl/Makefile.am -index 61049be..85aefa3 100644 ---- a/dhcpctl/Makefile.am -+++ b/dhcpctl/Makefile.am -@@ -6,10 +6,10 @@ EXTRA_DIST = $(man_MANS) - - omshell_SOURCES = omshell.c - omshell_LDADD = libdhcpctl.a ../common/libdhcp.a ../omapip/libomapi.a \ -- ../bind/lib/libdns.a ../bind/lib/libisc.a -+ $(libbind)/libdns.a $(libbind)/libisc.a - - libdhcpctl_a_SOURCES = dhcpctl.c callback.c remote.c - - cltest_SOURCES = cltest.c - cltest_LDADD = libdhcpctl.a ../common/libdhcp.a ../omapip/libomapi.a \ -- ../bind/lib/libdns.a ../bind/lib/libisc.a -\ No newline at end of file -+ $(libbind)/libdns.a $(libbind)/libisc.a -diff --git a/omapip/Makefile.am b/omapip/Makefile.am -index 595950a..17f2233 100644 ---- a/omapip/Makefile.am -+++ b/omapip/Makefile.am -@@ -10,5 +10,5 @@ man_MANS = omapi.3 - EXTRA_DIST = $(man_MANS) - - svtest_SOURCES = test.c --svtest_LDADD = libomapi.a ../bind/lib/libdns.a ../bind/lib/libisc.a -+svtest_LDADD = libomapi.a $(libbind)/libdns.a $(libbind)/libisc.a - -diff --git a/relay/Makefile.am b/relay/Makefile.am -index d8757ca..a7885da 100644 ---- a/relay/Makefile.am -+++ b/relay/Makefile.am -@@ -3,7 +3,7 @@ AM_CPPFLAGS = -DLOCALSTATEDIR='"@localstatedir@"' - sbin_PROGRAMS = dhcrelay - dhcrelay_SOURCES = dhcrelay.c - dhcrelay_LDADD = ../common/libdhcp.a ../omapip/libomapi.a \ -- ../bind/lib/libdns.a ../bind/lib/libisc.a -+ $(libbind)/libdns.a $(libbind)/libisc.a - man_MANS = dhcrelay.8 - EXTRA_DIST = $(man_MANS) - -diff --git a/server/Makefile.am b/server/Makefile.am -index cdfaf47..d2c254b 100644 ---- a/server/Makefile.am -+++ b/server/Makefile.am -@@ -8,8 +8,8 @@ dhcpd_SOURCES = dhcpd.c dhcp.c bootp.c confpars.c db.c class.c failover.c \ - - dhcpd_CFLAGS = $(LDAP_CFLAGS) - dhcpd_LDADD = ../common/libdhcp.a ../omapip/libomapi.a \ -- ../dhcpctl/libdhcpctl.a ../bind/lib/libdns.a \ -- ../bind/lib/libisc.a -+ ../dhcpctl/libdhcpctl.a $(libbind)/libdns.a \ -+ $(libbind)/libisc.a - - man_MANS = dhcpd.8 dhcpd.conf.5 dhcpd.leases.5 - EXTRA_DIST = $(man_MANS) diff --git a/meta/recipes-connectivity/dhcp/dhcp/fixsepbuild.patch b/meta/recipes-connectivity/dhcp/dhcp/fixsepbuild.patch index e686afd2d2..2f44147ad6 100644 --- a/meta/recipes-connectivity/dhcp/dhcp/fixsepbuild.patch +++ b/meta/recipes-connectivity/dhcp/dhcp/fixsepbuild.patch @@ -4,87 +4,94 @@ Upstream-Status: Pending RP 2013/03/21 -Index: dhcp-4.2.5/common/Makefile.am -=================================================================== ---- dhcp-4.2.5.orig/common/Makefile.am 2013-03-21 12:54:11.345063519 +0000 -+++ dhcp-4.2.5/common/Makefile.am 2013-03-21 12:54:11.805063510 +0000 -@@ -1,4 +1,4 @@ --AM_CPPFLAGS = -I.. -DLOCALSTATEDIR='"@localstatedir@"' -+AM_CPPFLAGS = -I$(top_srcdir)/includes -I$(top_srcdir) -DLOCALSTATEDIR='"@localstatedir@"' - AM_CFLAGS = $(LDAP_CFLAGS) - - noinst_LIBRARIES = libdhcp.a -Index: dhcp-4.2.5/dst/Makefile.am -=================================================================== ---- dhcp-4.2.5.orig/dst/Makefile.am 2013-03-21 12:54:11.345063519 +0000 -+++ dhcp-4.2.5/dst/Makefile.am 2013-03-21 12:54:11.805063510 +0000 -@@ -1,4 +1,4 @@ --AM_CPPFLAGS = -DMINIRES_LIB -DHMAC_MD5 -+AM_CPPFLAGS = -DMINIRES_LIB -DHMAC_MD5 -I$(top_srcdir)/includes - - lib_LIBRARIES = libdst.a +Rebase to 4.3.4 + +Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> +--- + client/Makefile.am | 4 ++-- + common/Makefile.am | 3 ++- + dhcpctl/Makefile.am | 2 ++ + omapip/Makefile.am | 1 + + relay/Makefile.am | 2 +- + server/Makefile.am | 2 +- + 6 files changed, 9 insertions(+), 5 deletions(-) + +diff --git a/client/Makefile.am b/client/Makefile.am +index 2cb83d8..4730bb3 100644 +--- a/client/Makefile.am ++++ b/client/Makefile.am +@@ -7,11 +7,11 @@ SUBDIRS = . tests + BINDLIBDIR = @BINDDIR@/lib -Index: dhcp-4.2.5/omapip/Makefile.am -=================================================================== ---- dhcp-4.2.5.orig/omapip/Makefile.am 2013-03-21 12:54:11.677063511 +0000 -+++ dhcp-4.2.5/omapip/Makefile.am 2013-03-21 12:54:11.809063510 +0000 -@@ -1,3 +1,5 @@ -+AM_CPPFLAGS = -I$(top_srcdir)/includes -+ - lib_LIBRARIES = libomapi.a - noinst_PROGRAMS = svtest + AM_CPPFLAGS = -DCLIENT_PATH='"PATH=$(sbindir):/sbin:/bin:/usr/sbin:/usr/bin"' \ +- -DLOCALSTATEDIR='"$(localstatedir)"' ++ -DLOCALSTATEDIR='"$(localstatedir)"' -I$(top_srcdir)/includes -Index: dhcp-4.2.5/client/Makefile.am -=================================================================== ---- dhcp-4.2.5.orig/client/Makefile.am 2013-03-21 12:54:11.677063511 +0000 -+++ dhcp-4.2.5/client/Makefile.am 2013-03-21 12:54:11.809063510 +0000 -@@ -1,3 +1,5 @@ -+AM_CPPFLAGS = -I$(top_srcdir)/includes -+ dist_sysconf_DATA = dhclient.conf.example sbin_PROGRAMS = dhclient - dhclient_SOURCES = clparse.c dhclient.c dhc6.c \ -@@ -11,8 +13,8 @@ +-dhclient_SOURCES = clparse.c dhclient.c dhc6.c \ ++dhclient_SOURCES = $(srcdir)/clparse.c $(srcdir)/dhclient.c $(srcdir)/dhc6.c \ + scripts/bsdos scripts/freebsd scripts/linux scripts/macos \ + scripts/netbsd scripts/nextstep scripts/openbsd \ + scripts/solaris scripts/openwrt +diff --git a/common/Makefile.am b/common/Makefile.am +index 113aee8..0f24fbb 100644 +--- a/common/Makefile.am ++++ b/common/Makefile.am +@@ -1,4 +1,5 @@ +-AM_CPPFLAGS = -I$(top_srcdir) -DLOCALSTATEDIR='"@localstatedir@"' ++AM_CPPFLAGS = -I$(top_srcdir)/includes -I$(top_srcdir) -DLOCALSTATEDIR='"@localstatedir@"' ++ + AM_CFLAGS = $(LDAP_CFLAGS) - dhclient.o: dhclient.c - $(COMPILE) -DCLIENT_PATH='"PATH=$(sbindir):/sbin:/bin:/usr/sbin:/usr/bin"' \ -- -DLOCALSTATEDIR='"$(localstatedir)"' -c dhclient.c -+ -DLOCALSTATEDIR='"$(localstatedir)"' -c $(srcdir)/dhclient.c + noinst_LIBRARIES = libdhcp.a +diff --git a/dhcpctl/Makefile.am b/dhcpctl/Makefile.am +index ceb0de1..ba8dd8b 100644 +--- a/dhcpctl/Makefile.am ++++ b/dhcpctl/Makefile.am +@@ -1,5 +1,7 @@ + BINDLIBDIR = @BINDDIR@/lib - dhc6.o: dhc6.c - $(COMPILE) -DCLIENT_PATH='"PATH=$(sbindir):/sbin:/bin:/usr/sbin:/usr/bin"' \ -- -DLOCALSTATEDIR='"$(localstatedir)"' -c dhc6.c -+ -DLOCALSTATEDIR='"$(localstatedir)"' -c $(srcdir)/dhc6.c -Index: dhcp-4.2.5/dhcpctl/Makefile.am -=================================================================== ---- dhcp-4.2.5.orig/dhcpctl/Makefile.am 2013-03-21 12:54:11.677063511 +0000 -+++ dhcp-4.2.5/dhcpctl/Makefile.am 2013-03-21 12:54:11.809063510 +0000 -@@ -1,3 +1,5 @@ +AM_CPPFLAGS = -I$(top_srcdir)/includes -I$(top_srcdir) + bin_PROGRAMS = omshell lib_LIBRARIES = libdhcpctl.a noinst_PROGRAMS = cltest -Index: dhcp-4.2.5/relay/Makefile.am -=================================================================== ---- dhcp-4.2.5.orig/relay/Makefile.am 2013-03-21 12:54:11.677063511 +0000 -+++ dhcp-4.2.5/relay/Makefile.am 2013-03-21 12:54:11.809063510 +0000 -@@ -1,4 +1,4 @@ +diff --git a/omapip/Makefile.am b/omapip/Makefile.am +index 446a594..dd1afa0 100644 +--- a/omapip/Makefile.am ++++ b/omapip/Makefile.am +@@ -1,4 +1,5 @@ + BINDLIBDIR = @BINDDIR@/lib ++AM_CPPFLAGS = -I$(top_srcdir)/includes + + lib_LIBRARIES = libomapi.a + noinst_PROGRAMS = svtest +diff --git a/relay/Makefile.am b/relay/Makefile.am +index 3060eca..6d652f6 100644 +--- a/relay/Makefile.am ++++ b/relay/Makefile.am +@@ -1,6 +1,6 @@ + BINDLIBDIR = @BINDDIR@/lib + -AM_CPPFLAGS = -DLOCALSTATEDIR='"@localstatedir@"' +AM_CPPFLAGS = -DLOCALSTATEDIR='"@localstatedir@"' -I$(top_srcdir)/includes sbin_PROGRAMS = dhcrelay dhcrelay_SOURCES = dhcrelay.c -Index: dhcp-4.2.5/server/Makefile.am -=================================================================== ---- dhcp-4.2.5.orig/server/Makefile.am 2013-03-21 12:54:11.677063511 +0000 -+++ dhcp-4.2.5/server/Makefile.am 2013-03-21 12:55:01.509062081 +0000 -@@ -4,7 +4,7 @@ - # production code. Sadly, we are not there yet. - SUBDIRS = . tests +diff --git a/server/Makefile.am b/server/Makefile.am +index 54feedf..3990b9c 100644 +--- a/server/Makefile.am ++++ b/server/Makefile.am +@@ -6,7 +6,7 @@ SUBDIRS = . tests + + BINDLIBDIR = @BINDDIR@/lib -AM_CPPFLAGS = -I.. -DLOCALSTATEDIR='"@localstatedir@"' +AM_CPPFLAGS = -I$(top_srcdir) -DLOCALSTATEDIR='"@localstatedir@"' -I$(top_srcdir)/includes dist_sysconf_DATA = dhcpd.conf.example sbin_PROGRAMS = dhcpd +-- +2.8.1 + diff --git a/meta/recipes-connectivity/dhcp/dhcp/libxml2-configure-argument.patch b/meta/recipes-connectivity/dhcp/dhcp/libxml2-configure-argument.patch new file mode 100644 index 0000000000..14356621c0 --- /dev/null +++ b/meta/recipes-connectivity/dhcp/dhcp/libxml2-configure-argument.patch @@ -0,0 +1,38 @@ +Add configure argument to make the libxml2 dependency explicit and +determinisitic. + +Upstream-Status: Pending + +Signed-off-by: Christopher Larson <chris_larson@mentor.com> + +Rebase to 4.3.4 +Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> +--- + configure.ac | 11 ++++++++++- + 1 file changed, 10 insertions(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index 726c88e..1684df1 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -718,7 +718,16 @@ AC_SUBST(BINDSRCDIR) + + # We need to find libxml2 if bind was built with support enabled + # otherwise we'll fail to build omapip/test.c +-AC_SEARCH_LIBS(xmlTextWriterStartElement, [xml2],) ++AC_ARG_WITH(libxml2, ++ AS_HELP_STRING([--with-libxml2], [link against libxml2. this is needed if bind was built with xml2 support enabled]), ++ with_libxml2="$withval", with_libxml2="no") ++ ++if test x$with_libxml2 != xno; then ++ AC_SEARCH_LIBS(xmlTextWriterStartElement, [xml2], ++ [if test x$with_libxml2 != xauto; then ++ AC_MSG_FAILURE([*** Cannot find xmlTextWriterStartElement with -lxml2 and libxml2 was requested]) ++ fi]) ++fi + + # OpenLDAP support. + AC_ARG_WITH(ldap, +-- +2.8.1 + diff --git a/meta/recipes-connectivity/dhcp/dhcp/link-with-lcrypto.patch b/meta/recipes-connectivity/dhcp/dhcp/link-with-lcrypto.patch index 57e10b0297..0d0e0dd08e 100644 --- a/meta/recipes-connectivity/dhcp/dhcp/link-with-lcrypto.patch +++ b/meta/recipes-connectivity/dhcp/dhcp/link-with-lcrypto.patch @@ -5,14 +5,20 @@ From 4.2.0 final release, -lcrypto check was removed and we compile static libra from bind that are linked to libcrypto. This is why i added a patch in order to add -lcrypto to LIBS. -Signed-off-by: Andrei Gherzan <andrei@gherzan.ro> Upstream-Status: Pending +Signed-off-by: Andrei Gherzan <andrei@gherzan.ro> -Index: dhcp-4.2.3-P2-r0/dhcp-4.2.3-P2/configure.ac -=================================================================== ---- dhcp-4.2.3-P2.orig/configure.ac 2012-02-02 18:04:20.843023196 +0200 -+++ dhcp-4.2.3-P2/configure.ac 2012-02-02 17:58:16.000000000 +0200 -@@ -456,6 +456,10 @@ +Rebase to 4.3.4 +Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> +--- + configure.ac | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/configure.ac b/configure.ac +index 097b0c3..726c88e 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -584,6 +584,10 @@ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[void foo() __attribute__((noreturn)); # Look for optional headers. AC_CHECK_HEADERS(sys/socket.h net/if_dl.h net/if6.h regex.h) @@ -23,3 +29,6 @@ Index: dhcp-4.2.3-P2-r0/dhcp-4.2.3-P2/configure.ac # Solaris needs some libraries for functions AC_SEARCH_LIBS(socket, [socket]) AC_SEARCH_LIBS(inet_ntoa, [nsl]) +-- +2.8.1 + diff --git a/meta/recipes-connectivity/dhcp/dhcp/remove-dhclient-script-bash-dependency.patch b/meta/recipes-connectivity/dhcp/dhcp/remove-dhclient-script-bash-dependency.patch new file mode 100644 index 0000000000..997b9f6ba9 --- /dev/null +++ b/meta/recipes-connectivity/dhcp/dhcp/remove-dhclient-script-bash-dependency.patch @@ -0,0 +1,55 @@ +From 8aed2a9ff09cb0d584ad0a7340fe3a596879d9b1 Mon Sep 17 00:00:00 2001 +From: Andre McCurdy <armccurdy@gmail.com> +Date: Thu, 21 Jul 2016 19:07:02 -0700 +Subject: [PATCH] remove dhclient-script bash dependency + +Take the dash compatible IPv6 link-local address test from the Debian +version of dhclient-script. + +Note that although "echo -e" in the OE version of dhclient-script is +technically bash specific too, it is supported by Busybox echo when +Busybox is configured with CONFIG_FEATURE_FANCY_ECHO enabled (which +is the default in the OE Busybox defconfig) therefore leave as-is. + +Upstream-Status: Inappropriate [OE specific] + +Signed-off-by: Andre McCurdy <armccurdy@gmail.com> +--- + client/scripts/linux | 7 +++---- + 1 file changed, 3 insertions(+), 4 deletions(-) + +diff --git a/client/scripts/linux b/client/scripts/linux +index 232a0aa..1383f46 100755 +--- a/client/scripts/linux ++++ b/client/scripts/linux +@@ -1,4 +1,4 @@ +-#!/bin/bash ++#!/bin/sh + # dhclient-script for Linux. Dan Halbert, March, 1997. + # Updated for Linux 2.[12] by Brian J. Murrell, January 1999. + # No guarantees about this. I'm a novice at the details of Linux +@@ -47,11 +47,11 @@ make_resolv_conf() { + if [ "x${new_dhcp6_domain_search}" != x ] ; then + resolv_conf="search ${new_dhcp6_domain_search}\n" + fi +- shopt -s nocasematch + for nameserver in ${new_dhcp6_name_servers} ; do + # If the nameserver has a link-local address + # add a <zone_id> (interface name) to it. +- if [[ "$nameserver" =~ ^fe80:: ]] ++ if [ "${nameserver##fe80::}" != "$nameserver" ] || ++ [ "${nameserver##FE80::}" != "$nameserver" ] + then + zone_id="%$interface" + else +@@ -59,7 +59,6 @@ make_resolv_conf() { + fi + resolv_conf="${resolv_conf}nameserver ${nameserver}$zone_id\n" + done +- shopt -u nocasematch + + echo -e "${resolv_conf}" > /etc/resolv.conf + fi +-- +1.9.1 + diff --git a/meta/recipes-connectivity/dhcp/dhcp/replace-ifconfig-route.patch b/meta/recipes-connectivity/dhcp/dhcp/replace-ifconfig-route.patch new file mode 100644 index 0000000000..d84df5cd34 --- /dev/null +++ b/meta/recipes-connectivity/dhcp/dhcp/replace-ifconfig-route.patch @@ -0,0 +1,188 @@ +Found this patch here: +https://lists.isc.org/pipermail/dhcp-users/2011-January/012910.html + +and made some adjustments/updates to make it work with this version. +Wasn't able to find that why this patch was not accepted by ISC DHCP developers. + +Upstream-Status: Pending + +Signed-off-by: Muhammad Shakeel <muhammad_shakeel@mentor.com> + +Rebase to 4.3.4 + +Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> +--- + client/scripts/linux | 82 ++++++++++++++++++++++++++++------------------------ + 1 file changed, 45 insertions(+), 37 deletions(-) + +diff --git a/client/scripts/linux b/client/scripts/linux +index a02cfd9..232a0aa 100755 +--- a/client/scripts/linux ++++ b/client/scripts/linux +@@ -101,17 +101,11 @@ fi + if [ x$old_broadcast_address != x ]; then + old_broadcast_arg="broadcast $old_broadcast_address" + fi +-if [ x$new_subnet_mask != x ]; then +- new_subnet_arg="netmask $new_subnet_mask" ++if [ -n "$new_subnet_mask" ]; then ++ new_mask="/$new_subnet_mask" + fi +-if [ x$old_subnet_mask != x ]; then +- old_subnet_arg="netmask $old_subnet_mask" +-fi +-if [ x$alias_subnet_mask != x ]; then +- alias_subnet_arg="netmask $alias_subnet_mask" +-fi +-if [ x$new_interface_mtu != x ]; then +- mtu_arg="mtu $new_interface_mtu" ++if [ -n "$alias_subnet_mask" ]; then ++ alias_mask="/$alias_subnet_mask" + fi + if [ x$IF_METRIC != x ]; then + metric_arg="metric $IF_METRIC" +@@ -125,9 +119,9 @@ fi + if [ x$reason = xPREINIT ]; then + if [ x$alias_ip_address != x ]; then + # Bring down alias interface. Its routes will disappear too. +- ifconfig $interface:0- inet 0 ++ ${ip} -4 addr flush dev ${interface} label ${interface}:0 + fi +- ifconfig $interface 0 up ++ ${ip} link set dev ${interface} up + + # We need to give the kernel some time to get the interface up. + sleep 1 +@@ -154,25 +148,30 @@ if [ x$reason = xBOUND ] || [ x$reason = xRENEW ] || \ + if [ x$old_ip_address != x ] && [ x$alias_ip_address != x ] && \ + [ x$alias_ip_address != x$old_ip_address ]; then + # Possible new alias. Remove old alias. +- ifconfig $interface:0- inet 0 ++ ${ip} -4 addr flush dev ${interface} label ${interface}:0 + fi + if [ x$old_ip_address != x ] && [ x$old_ip_address != x$new_ip_address ]; then + # IP address changed. Bringing down the interface will delete all routes, + # and clear the ARP cache. +- ifconfig $interface inet 0 down ++ ${ip} -4 addr flush dev ${interface} label ${interface} + + fi + if [ x$old_ip_address = x ] || [ x$old_ip_address != x$new_ip_address ] || \ + [ x$reason = xBOUND ] || [ x$reason = xREBOOT ]; then + +- ifconfig $interface inet $new_ip_address $new_subnet_arg \ +- $new_broadcast_arg $mtu_arg ++ ${ip} -4 addr add ${new_ip_address}${new_mask} ${new_broadcast_arg} \ ++ dev ${interface} label ${interface} ++ if [ -n "$new_interface_mtu" ]; then ++ # set MTU ++ ${ip} link set dev ${interface} mtu ${new_interface_mtu} ++ fi + # Add a network route to the computed network address. + for router in $new_routers; do + if [ "x$new_subnet_mask" = "x255.255.255.255" ] ; then +- route add -host $router dev $interface ++ ${ip} -4 route add ${router} dev $interface >/dev/null 2>&1 + fi +- route add default gw $router $metric_arg dev $interface ++ ${ip} -4 route add default via ${router} dev ${interface} \ ++ ${metric_arg} >/dev/null 2>&1 + done + else + # we haven't changed the address, have we changed other options +@@ -180,21 +179,23 @@ if [ x$reason = xBOUND ] || [ x$reason = xRENEW ] || \ + if |
