[OE-core] [PATCH 1/1] busybox: fix to support FEATURE_INDIVIDUAL

ChenQi Qi.Chen at windriver.com
Mon Jun 3 02:19:51 UTC 2013


On 05/30/2013 08:26 PM, Saul Wold wrote:
> On 05/30/2013 05:51 PM, Qi.Chen at windriver.com wrote:
>> From: Chen Qi <Qi.Chen at windriver.com>
>>
>> Previously, if CONFIG_FEATURE_INDIVIDUAL was enabled for busybox,
>> yocto-based systems could start correctly.
>>
>> This is because if busybox is built as individual apps, '/bin/busybox'
>> may not be present, so setting the default ALTERNATIVE_TARGET to
>> '/bin/busybox' is not appropriate and could lead to errors.
>>
>> This patch fixes this problem by checking the existence of 
>> '/bin/busybox'
>> before setting the ALTERNATIVE_TARGET to '/bin/busybox'.
>>
>> After this change, if busybox is built as individual apps, we'll have
>> links like '/bin/ls -> /bin/ls.busybox', otherwise, we'll have links
>> like '/bin/ls -> /bin/busybox'.
>>
> Does this add size to the image?  In this example does ls.busybox link 
> to something else or is it a binary on it's own?
>
> Sau!
>
>
It increases about 1M of the whole image size.
ls.busybox, for example, is a binary.

Best Regards,
Chen Qi

>> Besides, this patch removes the pkg_postinst part in the busybox recipe,
>> because it's redundant.
>>
>> [YOCTO #4570]
>>
>> Signed-off-by: Chen Qi <Qi.Chen at windriver.com>
>> ---
>>   meta/recipes-core/busybox/busybox.inc |   16 +++++-----------
>>   1 file changed, 5 insertions(+), 11 deletions(-)
>>
>> diff --git a/meta/recipes-core/busybox/busybox.inc 
>> b/meta/recipes-core/busybox/busybox.inc
>> index c8908b0..6abe167 100644
>> --- a/meta/recipes-core/busybox/busybox.inc
>> +++ b/meta/recipes-core/busybox/busybox.inc
>> @@ -171,7 +171,7 @@ do_install () {
>>               install -m 0755 "0_lib/$NAME" "${D}$FILE.${BPN}"
>>           done
>>           # add suid bit where needed
>> -        for i in `grep -E "APPLET.*_BB_SUID_((MAYBE|REQUIRE))" 
>> include/applets.h | grep -v _BB_SUID_DROP | cut -f 3 -d '(' | cut -f 
>> 1 -d ','`; do
>> +        for i in `grep -E "APPLET.*BB_SUID_((MAYBE|REQUIRE))" 
>> include/applets.h | grep -v _BB_SUID_DROP | cut -f 3 -d '(' | cut -f 
>> 1 -d ','`; do
>>               find ${D} -name $i.${BPN} -exec chmod a+s {} \;
>>           done
>>           install -m 0755 0_lib/libbusybox.so.${PV} 
>> ${D}${libdir}/libbusybox.so.${PV}
>> @@ -242,14 +242,16 @@ ALTERNATIVE_TARGET[syslog-init] = 
>> "${sysconfdir}/init.d/syslog.${BPN}"
>>   ALTERNATIVE_LINK_NAME[syslog-startup-conf] = 
>> "${sysconfdir}/syslog-startup.conf"
>>   ALTERNATIVE_TARGET[syslog-startup-conf] = 
>> "${sysconfdir}/syslog-startup.conf.${BPN}"
>>
>> -ALTERNATIVE_TARGET = "/bin/busybox"
>> -
>>   python do_package_prepend () {
>>       # We need to load the full set of busybox provides from the 
>> /etc/busybox.links
>>       # Use this to see the update-alternatives with the right 
>> information
>>
>>       dvar = d.getVar('D', True)
>>       pn = d.getVar('PN', True)
>> +
>> +    if os.path.exists('%s/bin/busybox' % (dvar)):
>> +        d.setVar('ALTERNATIVE_TARGET', "/bin/busybox")
>> +
>>       f = open('%s/etc/busybox.links' % (dvar), 'r')
>>
>>       for alt_link_name in f:
>> @@ -265,14 +267,6 @@ python do_package_prepend () {
>>       f.close()
>>   }
>>
>> -pkg_postinst_${PN} () {
>> -    # If we are not making an image we create links for the 
>> utilities that doesn't exist
>> -    # so the update-alternatives script will get the utilities it needs
>> -    # (update-alternatives have no problem replacing links later 
>> anyway)
>> -    test -n 2> /dev/null || alias test='busybox test'
>> -    if test "x$D" = "x"; then while read link; do if test ! -h 
>> "$link"; then case "$link" in /*/*/*) to="../../bin/busybox";; 
>> /bin/*) to="busybox";; /*/*) to="../bin/busybox";; esac; busybox ln 
>> -s $to $link; fi; done </etc/busybox.links; fi
>> -}
>> -
>>   pkg_prerm_${PN} () {
>>       # This is so you can make busybox commit suicide - removing 
>> busybox with no other packages
>>       # providing its files, this will make update-alternatives work, 
>> but the update-rc.d part
>>
>
>




More information about the Openembedded-core mailing list