Patchwork [1/1] USE_busybox_udhcpc_scripts will enable/disable installing udhcpc-scripts. Use this when providing your own script

login
register
mail settings
Submitter Kim Bøndergaard
Date June 24, 2013, 12:04 p.m.
Message ID <314472b4736e63eca96f60fc37875d18d0634a7f.1372075399.git.kibo@prevas.dk>
Download mbox | patch
Permalink /patch/253809/
State Changes Requested
Delegated to: Esben Haabendal
Headers show

Comments

Kim Bøndergaard - June 24, 2013, 12:04 p.m.
From: Christian Rasmussen <chor@prevas.dk>

---
 recipes/busybox/busybox-install.inc | 25 ++++++++++++++++---------
 1 file changed, 16 insertions(+), 9 deletions(-)
Esben Haabendal - July 3, 2013, 7:26 a.m.
Kim Bøndergaard <kibo@prevas.dk> writes:

> From: Christian Rasmussen <chor@prevas.dk>
>
> ---
>  recipes/busybox/busybox-install.inc | 25 ++++++++++++++++---------
>  1 file changed, 16 insertions(+), 9 deletions(-)
>
> diff --git a/recipes/busybox/busybox-install.inc b/recipes/busybox/busybox-install.inc
> index bfb0c11..27e1ab4 100644
> --- a/recipes/busybox/busybox-install.inc
> +++ b/recipes/busybox/busybox-install.inc
> @@ -8,6 +8,22 @@ INETD_CONF_FILES = "${SRCDIR}/inetd.conf.d"
>  #
>  busybox_suid_root = ""
>  
> +RECIPE_FLAGS += "busybox_udhcpc_scripts"
> +DEFAULT_USE_busybox_udhcpc_scripts = "1"
> +DO_INSTALL_POSTFUNCS:>USE_busybox_udhcpc_scripts = " do_install_busybox_udhcpc_scripts"
> +do_install[postfuncs] += "${DO_INSTALL_POSTFUNCS}"
> +
> +do_install_busybox_udhcpc_scripts () {
> +	if grep "CONFIG_UDHCPC=y" ${S}/.config; then
> +		install -d ${D}${sysconfdir}/udhcpc.d
> +		install -d ${D}${datadir}/udhcpc
> +		install -m 0755 ${S}/examples/udhcp/simple.script \
> +			${D}${sysconfdir}/udhcpc.d/50default
> +		install -m 0755 ${SRCDIR}/default.script \
> +			${D}${datadir}/udhcpc/default.script
> +	fi
> +}
> +
>  do_install () {
>  	if grep "CONFIG_INIT=y" ${S}/.config; then
>  		install -d ${D}${sysconfdir}/init.d
> @@ -37,15 +53,6 @@ do_install () {
>  		install -m 0644 ${SRCDIR}/mdev.conf ${D}${sysconfdir}/
>  	fi
>  
> -	if grep "CONFIG_UDHCPC=y" ${S}/.config; then
> -		install -d ${D}${sysconfdir}/udhcpc.d
> -		install -d ${D}${datadir}/udhcpc
> -		install -m 0755 ${S}/examples/udhcp/simple.script \
> -			${D}${sysconfdir}/udhcpc.d/50default
> -		install -m 0755 ${SRCDIR}/default.script \
> -			${D}${datadir}/udhcpc/default.script
> -	fi
> -
>  	if grep "CONFIG_INETD=y" ${S}/.config; then
>  		install -m 0644 ${SRCDIR}/inetd.conf ${D}${sysconfdir}/
>  	fi

This is different from the approach usually taken.

For recipes where you might want to replace part of the result with your
own configuration files, scripts, or whatever, the parts should be
packaged in separate packages, with proper dependencies in place, and
then you can simply add a custom recipe which builds a package providing
this, and give it a higher DEFAULT_PREFERENCE, so it is used instead of
the package from the original recipe.

Take a look at fx. vsftpd-config and vsftpd-init in the vsftpd recipe,
and netbase-init, netbase-hosts and so on in the netbase recipe.

So, add a busybox-udhcpc-scripts package, package all the scripts in it,
and add it to RDEPENDS_${PN}.  The busybox-udhcpc-scripts packages
should probably be conditionally appended to PACKAGES, like

PACKAGES:>USE_busybox_udhcpc = " ${PN}-udhcpc-scripts"

/Esben

Patch

diff --git a/recipes/busybox/busybox-install.inc b/recipes/busybox/busybox-install.inc
index bfb0c11..27e1ab4 100644
--- a/recipes/busybox/busybox-install.inc
+++ b/recipes/busybox/busybox-install.inc
@@ -8,6 +8,22 @@  INETD_CONF_FILES = "${SRCDIR}/inetd.conf.d"
 #
 busybox_suid_root = ""
 
+RECIPE_FLAGS += "busybox_udhcpc_scripts"
+DEFAULT_USE_busybox_udhcpc_scripts = "1"
+DO_INSTALL_POSTFUNCS:>USE_busybox_udhcpc_scripts = " do_install_busybox_udhcpc_scripts"
+do_install[postfuncs] += "${DO_INSTALL_POSTFUNCS}"
+
+do_install_busybox_udhcpc_scripts () {
+	if grep "CONFIG_UDHCPC=y" ${S}/.config; then
+		install -d ${D}${sysconfdir}/udhcpc.d
+		install -d ${D}${datadir}/udhcpc
+		install -m 0755 ${S}/examples/udhcp/simple.script \
+			${D}${sysconfdir}/udhcpc.d/50default
+		install -m 0755 ${SRCDIR}/default.script \
+			${D}${datadir}/udhcpc/default.script
+	fi
+}
+
 do_install () {
 	if grep "CONFIG_INIT=y" ${S}/.config; then
 		install -d ${D}${sysconfdir}/init.d
@@ -37,15 +53,6 @@  do_install () {
 		install -m 0644 ${SRCDIR}/mdev.conf ${D}${sysconfdir}/
 	fi
 
-	if grep "CONFIG_UDHCPC=y" ${S}/.config; then
-		install -d ${D}${sysconfdir}/udhcpc.d
-		install -d ${D}${datadir}/udhcpc
-		install -m 0755 ${S}/examples/udhcp/simple.script \
-			${D}${sysconfdir}/udhcpc.d/50default
-		install -m 0755 ${SRCDIR}/default.script \
-			${D}${datadir}/udhcpc/default.script
-	fi
-
 	if grep "CONFIG_INETD=y" ${S}/.config; then
 		install -m 0644 ${SRCDIR}/inetd.conf ${D}${sysconfdir}/
 	fi