All of lore.kernel.org
 help / color / mirror / Atom feed
From: ChenQi <Qi.Chen@windriver.com>
To: Saul Wold <sgw@linux.intel.com>
Cc: qingtao.cao@windriver.com, openembedded-core@lists.openembedded.org
Subject: Re: [PATCH 1/1] busybox: fix to support FEATURE_INDIVIDUAL
Date: Mon, 3 Jun 2013 12:34:17 +0800	[thread overview]
Message-ID: <51AC1CC9.5050008@windriver.com> (raw)
In-Reply-To: <51AC1753.6010905@linux.intel.com>

On 06/03/2013 12:10 PM, Saul Wold wrote:
> 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.
>
This is a different bug.
(busybox in Yocto/OE doesn't support FEATURE_INDIVIDUAL 
https://bugzilla.yoctoproject.org/show_bug.cgi?id=4570)
I encountered this bug when I was exploring busybox.

I won't use this 'FEATURE_INDIVIDUAL' approach to fix bug#4207, as you 
said above, it increases image size, and that's not what we want.
(Switch to using busybox instead of tinylogin 
https://bugzilla.yoctoproject.org/show_bug.cgi?id=4207).

Best Regards,
Chen Qi

> 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
>>>>
>>>
>>>
>>
>>
>>
>
>



      reply	other threads:[~2013-06-03  4:33 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
2013-06-03  4:34         ` ChenQi [this message]

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=51AC1CC9.5050008@windriver.com \
    --to=qi.chen@windriver.com \
    --cc=openembedded-core@lists.openembedded.org \
    --cc=qingtao.cao@windriver.com \
    --cc=sgw@linux.intel.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.