Patchwork [1/1] busybox: fix to support FEATURE_INDIVIDUAL

login
register
mail settings
Submitter Qi.Chen@windriver.com
Date May 30, 2013, 8:51 a.m.
Message ID <61b6db5766ad5f6690aa059ffd26f0b00834e433.1369895527.git.Qi.Chen@windriver.com>
Download mbox | patch
Permalink /patch/50803/
State New
Headers show

Comments

Qi.Chen@windriver.com - May 30, 2013, 8:51 a.m.
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'.

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(-)
Saul Wold - May 30, 2013, 12:26 p.m.
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!


> 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
>
Qi.Chen@windriver.com - June 3, 2013, 2:19 a.m.
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.

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
>>
>
>
Saul Wold - June 3, 2013, 4:10 a.m.
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
>>>
>>
>>
>
>
>
Qi.Chen@windriver.com - June 3, 2013, 4:34 a.m.
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
>>>>
>>>
>>>
>>
>>
>>
>
>

Patch

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