From: Saul Wold <sgw@linux.intel.com>
To: ChenQi <Qi.Chen@windriver.com>
Cc: qingtao.cao@windriver.com, openembedded-core@lists.openembedded.org
Subject: Re: [PATCH 1/1] busybox: fix to support FEATURE_INDIVIDUAL
Date: Sun, 02 Jun 2013 21:10:59 -0700 [thread overview]
Message-ID: <51AC1753.6010905@linux.intel.com> (raw)
In-Reply-To: <51ABFD47.80205@windriver.com>
On 06/02/2013 07:19 PM, ChenQi wrote:
> On 05/30/2013 08:26 PM, Saul Wold wrote:
>> On 05/30/2013 05:51 PM, Qi.Chen@windriver.com wrote:
>>> From: Chen Qi <Qi.Chen@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.
>
That's NOT ok, we are looking to reduce the image size especially for
core-image-minimal, I believe the static test I did with building a
busybox with only a tinylogin config was actually smaller that the
current tinylogin binary!
Please investigate this route, we also need to understand what other
parts of busybox are using SetUID.
Thanks
Sau!
> 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@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
>>>
>>
>>
>
>
>
next prev parent reply other threads:[~2013-06-03 4:10 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-05-30 8:51 [PATCH 0/1] busybox: fix to support FEATURE_INDIVIDUAL Qi.Chen
2013-05-30 8:51 ` [PATCH 1/1] " Qi.Chen
2013-05-30 12:26 ` Saul Wold
2013-06-03 2:19 ` ChenQi
2013-06-03 4:10 ` Saul Wold [this message]
2013-06-03 4:34 ` ChenQi
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=51AC1753.6010905@linux.intel.com \
--to=sgw@linux.intel.com \
--cc=Qi.Chen@windriver.com \
--cc=openembedded-core@lists.openembedded.org \
--cc=qingtao.cao@windriver.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox