diff --git a/recipes/dhcpcd/dhcpcd.inc b/recipes/dhcpcd/dhcpcd.inc index 75aa72764..3b006648d 100644 --- a/recipes/dhcpcd/dhcpcd.inc +++ b/recipes/dhcpcd/dhcpcd.inc @@ -26,6 +26,7 @@ DHCPCD_UDEV:USE_dhcpcd_udev = "" DEPENDS:>dhcpcd_udev = " libudev libdl" DEPENDS_${PN}:>dhcpcd_udev = " libudev libdl" RDEPENDS_${PN}:>dhcpcd_udev = " libudev libdl" +PROVIDES_${PN} += "dhcp-client" EXTRA_OECONF += "${DHCPCD_UDEV}" @@ -67,3 +68,14 @@ do_install_initscript() { sysvinit_install_script ${SRCDIR}/init dhcpcd } do_install[prefuncs] += "do_install_initscript" + +RECIPE_FLAGS += "dhcpcd_args" +DEFAULT_USE_dhcpcd_args = " " +do_install_config() { + install -d ${D}/${sysconfdir}/default + echo 'ARGS="${USE_dhcpcd_args}"' > ${D}/${sysconfdir}/default/dhcpcd +} +do_install[prefuncs] += "do_install_config" +PACKAGES =+ "${PN}-conf" +FILES_${PN}-conf = "${sysconfdir}/default/dhcpcd ${sysconfdir}/dhcpcd.conf" +RDEPENDS_${PN} += "${PN}-conf" diff --git a/recipes/dhcpcd/files/init b/recipes/dhcpcd/files/init index 8124b501e..7cc4b3c7c 100644 --- a/recipes/dhcpcd/files/init +++ b/recipes/dhcpcd/files/init @@ -16,7 +16,12 @@ do_start() { } do_stop() { - start-stop-daemon -K --pidfile $PIDFILE --exec $DAEMON + # only try to stop the daemon if there is actually something + # running. Otherwise a restart before a start will fail + start-stop-daemon -K -o --pidfile $PIDFILE --exec $DAEMON + if [ "$?" != "0" ] ; then + start-stop-daemon -K --pidfile $PIDFILE --exec $DAEMON + fi } do_status() {