Skip to contentSkip to conversation

Fix the way busybox splits

PATCH Applied Mark Hatle 4 participants 6 messages Feb 11, 2011 – Feb 12, 2011

lore
Share & tools
lore

Mark Hatle

author
#0 lore raw

cover Fix the way busybox splits

In order to resolve the issue of more then one initscript per split package, change the way busybox splits. We have added two additional packages busybox-udhcpc and busybox-syslog.. Both of which are now "recommended" to ensure that if available, they are installed.

Pull URL: git://git.pokylinux.org/poky-contrib.git
Branch: mhatle/busybox
Browse: http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=mhatle/busybox

Thanks,
Mark Hatle <[email protected]>
---

Mark Hatle (1):
busybox: Rework busybox to fix limitations in initscripts

 meta/recipes-core/busybox/busybox.inc |   21 ++++++++++++++-------
 1 files changed, 14 insertions(+), 7 deletions(-)
Signature · 1 line
1.7.3.4
author
#1 lore raw

PATCH 1/1 busybox: Rework busybox to fix limitations in initscripts

A recent busybox change added a "second" initscript to the main busybox package. This however is not supported by the update-rc.d.bbclass. Instead we split the package so that each initscript gets it's own split.

---
 meta/recipes-core/busybox/busybox.inc |   21 ++++++++++++++-------
 1 files changed, 14 insertions(+), 7 deletions(-)
meta/recipes-core/busybox/busybox.inc +14 -7
index 55f056c..9f2d64c 100644
@@ -12,22 +12,25 @@ SECTION = "base"
 PRIORITY = "required"
 
 export EXTRA_CFLAGS = "${CFLAGS}"
-PACKAGES =+ "${PN}-httpd ${PN}-udhcpd"
+PACKAGES =+ "${PN}-httpd ${PN}-udhcpd ${PN}-udhcpc ${PN}-syslog"
 
 FILES_${PN}-httpd = "${sysconfdir}/init.d/busybox-httpd /srv/www"
+FILES_${PN}-syslog = "${sysconfdir}/init.d/syslog* ${sysconfdir}/syslog.conf*"
 FILES_${PN}-udhcpd = "${sysconfdir}/init.d/busybox-udhcpd"
+FILES_${PN}-udhcpc = "${sysconfdir}/udhcpc.d ${datadir}/udhcpc ${sysconfdir}/init.d/busybox-udhcpc"
 
-FILES_${PN} += "${datadir}/udhcpc"
-FILES_${PN} += "${sysconfdir}/init.d/busybox-udhcpc"
+INITSCRIPT_PACKAGES = "${PN}-httpd ${PN}-syslog ${PN}-udhcpd ${PN}-udhcpc"
 
-INITSCRIPT_PACKAGES = "${PN} ${PN}-httpd ${PN}-udhcpd"
 INITSCRIPT_NAME_${PN}-httpd = "busybox-httpd"
+INITSCRIPT_NAME_${PN}-syslog = "syslog"
 INITSCRIPT_NAME_${PN}-udhcpd = "busybox-udhcpd" 
-INITSCRIPT_NAME_${PN} = "syslog busybox-udhcpc"
-CONFFILES_${PN} = "${sysconfdir}/syslog.conf.${PN}"
+INITSCRIPT_NAME_${PN}-udhcpc = "busybox-udhcpc" 
+CONFFILES_${PN}-syslog = "${sysconfdir}/syslog.conf.${PN}"
+
+RRECOMMENDS_${PN} = "${PN}-syslog ${PN}-udhcpc"
 
 # This disables the syslog startup links in slugos (see slugos-init)
-INITSCRIPT_PARAMS_${PN}_slugos = "start 20 ."
+INITSCRIPT_PARAMS_${PN}-syslog_slugos = "start 20 ."
 
 inherit cml1 update-rc.d
 
@@ -116,7 +119,9 @@ pkg_postinst_${PN} () {
 	
 	# This adds the links, remember that this has to work when building an image too, hence the $D
 	while read link; do case "$link" in /*/*/*) to="../../bin/busybox";; /bin/*) to="busybox";; /*/*) to="../bin/busybox";; esac; bn=`basename $link`; update-alternatives --install $link $bn $to 50; done <$D/etc/busybox.links
+}
 
+pkg_postinst_${PN}-syslog () {
 	update-alternatives --install ${sysconfdir}/init.d/syslog syslog-init syslog.${PN} 50
 	update-alternatives --install ${sysconfdir}/syslog.conf syslog-conf syslog.conf.${PN} 50
 }
@@ -150,7 +155,9 @@ pkg_prerm_${PN} () {
 		bn=`basename $link`
 		sh /usr/bin/update-alternatives --remove $bn $to
 	done </etc/busybox.links
+}
 
+pkg_prerm_${PN}-syslog () {
 	# remove syslog
 	if test "x$D" = "x"; then
 		if test "$1" = "upgrade" -o "$1" = "remove"; then
Signature · 1 line
1.7.3.4
#2 lore raw

Re: [PATCH 1/1] busybox: Rework busybox to fix limitations in initscripts

Quoted 3 lines · Mark Hatle

A recent busybox change added a "second" initscript to the main busybox package. This however is not supported by the update-rc.d.bbclass. Instead we split the package so that each initscript gets it's own split.

Does this address:

http://bugzilla.pokylinux.org/show_bug.cgi?id=706

--
Darren

Quoted 62 lines
---
  meta/recipes-core/busybox/busybox.inc |   21 ++++++++++++++-------
  1 files changed, 14 insertions(+), 7 deletions(-)
meta/recipes-core/busybox/busybox.inc +14 -7
index 55f056c..9f2d64c 100644
@@ -12,22 +12,25 @@ SECTION = "base"
  PRIORITY = "required"
 
  export EXTRA_CFLAGS = "${CFLAGS}"
-PACKAGES =+ "${PN}-httpd ${PN}-udhcpd"
+PACKAGES =+ "${PN}-httpd ${PN}-udhcpd ${PN}-udhcpc ${PN}-syslog"
 
  FILES_${PN}-httpd = "${sysconfdir}/init.d/busybox-httpd /srv/www"
+FILES_${PN}-syslog = "${sysconfdir}/init.d/syslog* ${sysconfdir}/syslog.conf*"
  FILES_${PN}-udhcpd = "${sysconfdir}/init.d/busybox-udhcpd"
+FILES_${PN}-udhcpc = "${sysconfdir}/udhcpc.d ${datadir}/udhcpc ${sysconfdir}/init.d/busybox-udhcpc"
 
-FILES_${PN} += "${datadir}/udhcpc"
-FILES_${PN} += "${sysconfdir}/init.d/busybox-udhcpc"
+INITSCRIPT_PACKAGES = "${PN}-httpd ${PN}-syslog ${PN}-udhcpd ${PN}-udhcpc"
 
-INITSCRIPT_PACKAGES = "${PN} ${PN}-httpd ${PN}-udhcpd"
  INITSCRIPT_NAME_${PN}-httpd = "busybox-httpd"
+INITSCRIPT_NAME_${PN}-syslog = "syslog"
  INITSCRIPT_NAME_${PN}-udhcpd = "busybox-udhcpd"
-INITSCRIPT_NAME_${PN} = "syslog busybox-udhcpc"
-CONFFILES_${PN} = "${sysconfdir}/syslog.conf.${PN}"
+INITSCRIPT_NAME_${PN}-udhcpc = "busybox-udhcpc"
+CONFFILES_${PN}-syslog = "${sysconfdir}/syslog.conf.${PN}"
+
+RRECOMMENDS_${PN} = "${PN}-syslog ${PN}-udhcpc"
 
  # This disables the syslog startup links in slugos (see slugos-init)
-INITSCRIPT_PARAMS_${PN}_slugos = "start 20 ."
+INITSCRIPT_PARAMS_${PN}-syslog_slugos = "start 20 ."
 
  inherit cml1 update-rc.d
 
@@ -116,7 +119,9 @@ pkg_postinst_${PN} () {
 
  	# This adds the links, remember that this has to work when building an image too, hence the $D
  	while read link; do case "$link" in /*/*/*) to="../../bin/busybox";; /bin/*) to="busybox";; /*/*) to="../bin/busybox";; esac; bn=`basename $link`; update-alternatives --install $link $bn $to 50; done<$D/etc/busybox.links
+}
 
+pkg_postinst_${PN}-syslog () {
  	update-alternatives --install ${sysconfdir}/init.d/syslog syslog-init syslog.${PN} 50
  	update-alternatives --install ${sysconfdir}/syslog.conf syslog-conf syslog.conf.${PN} 50
  }
@@ -150,7 +155,9 @@ pkg_prerm_${PN} () {
  		bn=`basename $link`
  		sh /usr/bin/update-alternatives --remove $bn $to
  	done</etc/busybox.links
+}
 
+pkg_prerm_${PN}-syslog () {
  	# remove syslog
  	if test "x$D" = "x"; then
  		if test "$1" = "upgrade" -o "$1" = "remove"; then
Signature · 3 lines
Darren Hart
Intel Open Source Technology Center
Yocto Project - Linux Kernel
author
#3 lore raw

Re: [PATCH 1/1] busybox: Rework busybox to fix limitations in initscripts

Quoted 8 lines · Darren Hart
Quoted 3 lines · Mark Hatle

A recent busybox change added a "second" initscript to the main busybox package. This however is not supported by the update-rc.d.bbclass. Instead we split the package so that each initscript gets it's own split.

Does this address:

http://bugzilla.pokylinux.org/show_bug.cgi?id=706

Yes this fixes that issue.

--Mark

Quoted 67 lines

--
Darren

Quoted 62 lines
---
  meta/recipes-core/busybox/busybox.inc |   21 ++++++++++++++-------
  1 files changed, 14 insertions(+), 7 deletions(-)
meta/recipes-core/busybox/busybox.inc +14 -7
index 55f056c..9f2d64c 100644
@@ -12,22 +12,25 @@ SECTION = "base"
  PRIORITY = "required"
 
  export EXTRA_CFLAGS = "${CFLAGS}"
-PACKAGES =+ "${PN}-httpd ${PN}-udhcpd"
+PACKAGES =+ "${PN}-httpd ${PN}-udhcpd ${PN}-udhcpc ${PN}-syslog"
 
  FILES_${PN}-httpd = "${sysconfdir}/init.d/busybox-httpd /srv/www"
+FILES_${PN}-syslog = "${sysconfdir}/init.d/syslog* ${sysconfdir}/syslog.conf*"
  FILES_${PN}-udhcpd = "${sysconfdir}/init.d/busybox-udhcpd"
+FILES_${PN}-udhcpc = "${sysconfdir}/udhcpc.d ${datadir}/udhcpc ${sysconfdir}/init.d/busybox-udhcpc"
 
-FILES_${PN} += "${datadir}/udhcpc"
-FILES_${PN} += "${sysconfdir}/init.d/busybox-udhcpc"
+INITSCRIPT_PACKAGES = "${PN}-httpd ${PN}-syslog ${PN}-udhcpd ${PN}-udhcpc"
 
-INITSCRIPT_PACKAGES = "${PN} ${PN}-httpd ${PN}-udhcpd"
  INITSCRIPT_NAME_${PN}-httpd = "busybox-httpd"
+INITSCRIPT_NAME_${PN}-syslog = "syslog"
  INITSCRIPT_NAME_${PN}-udhcpd = "busybox-udhcpd"
-INITSCRIPT_NAME_${PN} = "syslog busybox-udhcpc"
-CONFFILES_${PN} = "${sysconfdir}/syslog.conf.${PN}"
+INITSCRIPT_NAME_${PN}-udhcpc = "busybox-udhcpc"
+CONFFILES_${PN}-syslog = "${sysconfdir}/syslog.conf.${PN}"
+
+RRECOMMENDS_${PN} = "${PN}-syslog ${PN}-udhcpc"
 
  # This disables the syslog startup links in slugos (see slugos-init)
-INITSCRIPT_PARAMS_${PN}_slugos = "start 20 ."
+INITSCRIPT_PARAMS_${PN}-syslog_slugos = "start 20 ."
 
  inherit cml1 update-rc.d
 
@@ -116,7 +119,9 @@ pkg_postinst_${PN} () {
 
  	# This adds the links, remember that this has to work when building an image too, hence the $D
  	while read link; do case "$link" in /*/*/*) to="../../bin/busybox";; /bin/*) to="busybox";; /*/*) to="../bin/busybox";; esac; bn=`basename $link`; update-alternatives --install $link $bn $to 50; done<$D/etc/busybox.links
+}
 
+pkg_postinst_${PN}-syslog () {
  	update-alternatives --install ${sysconfdir}/init.d/syslog syslog-init syslog.${PN} 50
  	update-alternatives --install ${sysconfdir}/syslog.conf syslog-conf syslog.conf.${PN} 50
  }
@@ -150,7 +155,9 @@ pkg_prerm_${PN} () {
  		bn=`basename $link`
  		sh /usr/bin/update-alternatives --remove $bn $to
  	done</etc/busybox.links
+}
 
+pkg_prerm_${PN}-syslog () {
  	# remove syslog
  	if test "x$D" = "x"; then
  		if test "$1" = "upgrade" -o "$1" = "remove"; then
#5 lore raw
In reply to Mark Hatle
Quoted 11 lines · Mark Hatle

In order to resolve the issue of more then one initscript per split package, change the way busybox splits. We have added two additional packages busybox-udhcpc and busybox-syslog.. Both of which are now "recommended" to ensure that if available, they are installed.

Pull URL: git://git.pokylinux.org/poky-contrib.git
Branch: mhatle/busybox
Browse: http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=mhatle/busybox

Thanks,
Mark Hatle <[email protected]>

Merged into master, thanks.

Richard

#4 lore raw

Re: [PATCH 1/1] busybox: Rework busybox to fix limitations in initscripts

In reply to Darren Hart
Quoted 8 lines · Darren Hart
Quoted 3 lines · Mark Hatle

A recent busybox change added a "second" initscript to the main busybox package. This however is not supported by the update-rc.d.bbclass. Instead we split the package so that each initscript gets it's own split.

Does this address:

http://bugzilla.pokylinux.org/show_bug.cgi?id=706

Should do - it's exactly the problem I was working with Mark about.

Quoted 69 lines

--
Darren

Quoted 63 lines

---
meta/recipes-core/busybox/busybox.inc | 21 ++++++++++++++-------

1 files changed, 14 insertions(+), 7 deletions(-)
meta/recipes-core/busybox/busybox.inc +0 -0
index 55f056c..9f2d64c 100644
@@ -12,22 +12,25 @@ SECTION = "base"

PRIORITY = "required"

export EXTRA_CFLAGS = "${CFLAGS}"

meta/recipes-core/busybox/busybox.inc +1 -1
-PACKAGES =+ "${PN}-httpd ${PN}-udhcpd"
+PACKAGES =+ "${PN}-httpd ${PN}-udhcpd ${PN}-udhcpc ${PN}-syslog"

FILES_${PN}-httpd = "${sysconfdir}/init.d/busybox-httpd /srv/www" +FILES_${PN}-syslog = "${sysconfdir}/init.d/syslog* ${sysconfdir}/syslog.conf*" FILES_${PN}-udhcpd = "${sysconfdir}/init.d/busybox-udhcpd"

meta/recipes-core/busybox/busybox.inc +2 -3
+FILES_${PN}-udhcpc = "${sysconfdir}/udhcpc.d ${datadir}/udhcpc ${sysconfdir}/init.d/busybox-udhcpc"
 
-FILES_${PN} += "${datadir}/udhcpc"
-FILES_${PN} += "${sysconfdir}/init.d/busybox-udhcpc"
+INITSCRIPT_PACKAGES = "${PN}-httpd ${PN}-syslog ${PN}-udhcpd ${PN}-udhcpc"
 
-INITSCRIPT_PACKAGES = "${PN} ${PN}-httpd ${PN}-udhcpd"

INITSCRIPT_NAME_${PN}-httpd = "busybox-httpd"
+INITSCRIPT_NAME_${PN}-syslog = "syslog"
INITSCRIPT_NAME_${PN}-udhcpd = "busybox-udhcpd"

meta/recipes-core/busybox/busybox.inc +4 -2
-INITSCRIPT_NAME_${PN} = "syslog busybox-udhcpc"
-CONFFILES_${PN} = "${sysconfdir}/syslog.conf.${PN}"
+INITSCRIPT_NAME_${PN}-udhcpc = "busybox-udhcpc"
+CONFFILES_${PN}-syslog = "${sysconfdir}/syslog.conf.${PN}"
+
+RRECOMMENDS_${PN} = "${PN}-syslog ${PN}-udhcpc"

# This disables the syslog startup links in slugos (see slugos-init)

meta/recipes-core/busybox/busybox.inc +1 -1
-INITSCRIPT_PARAMS_${PN}_slugos = "start 20 ."
+INITSCRIPT_PARAMS_${PN}-syslog_slugos = "start 20 ."

inherit cml1 update-rc.d

meta/recipes-core/busybox/busybox.inc +0 -0
@@ -116,7 +119,9 @@ pkg_postinst_${PN} () {
 
 # This adds the links, remember that this has to work when building an image too, hence the $D

while read link; do case "$link" in /*/*/*) to="../../bin/busybox";; /bin/*) to="busybox";; /*/*) to="../bin/busybox";; esac; bn=basename $link; update-alternatives --install $link $bn $to 50; done<$D/etc/busybox.links

meta/recipes-core/busybox/busybox.inc +2 -0
+}
 
+pkg_postinst_${PN}-syslog () {

update-alternatives --install ${sysconfdir}/init.d/syslog syslog-init syslog.${PN} 50 update-alternatives --install ${sysconfdir}/syslog.conf syslog-conf syslog.conf.${PN} 50 }

meta/recipes-core/busybox/busybox.inc +0 -0
@@ -150,7 +155,9 @@ pkg_prerm_${PN} () {

bn=basename $link
sh /usr/bin/update-alternatives --remove $bn $to
done</etc/busybox.links

meta/recipes-core/busybox/busybox.inc +2 -0
+}
 
+pkg_prerm_${PN}-syslog () {
# remove syslog
if test "x$D" = "x"; then
if test "$1" = "upgrade" -o "$1" = "remove"; then
Signature · 4 lines
------------------------------------------------------------
Gary Thomas                 |  Consulting for the
MLB Associates              |    Embedded world
------------------------------------------------------------