Patchwork busybox: fix a sh link wrong

login
register
mail settings
Submitter Wenlin Kang
Date April 8, 2014, 7:16 a.m.
Message ID <1396941362-27622-1-git-send-email-wenlin.kang@windriver.com>
Download mbox | patch
Permalink /patch/70239/
State Accepted
Commit 467b19efbaa9c0cb04d2665e8cd9a0919849a5ed
Headers show

Comments

Wenlin Kang - April 8, 2014, 7:16 a.m.
When both bash and busybox be installed, without ash support
in busybox,if bash is installed before busybox in the final stage,
even if ALTERNATIVE_PRIORITY of bash > ALTERNATIVE_PRIORITY of busybox,
the symlink from /bin/sh to bash can be yet overwritten by busybox.

Signed-off-by: Wenlin Kang <wenlin.kang@windriver.com>
---
 meta/recipes-core/busybox/busybox.inc |    8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)
Wenlin Kang - Aug. 28, 2014, 9:37 a.m.
On 2014?04?08? 15:16, Wenlin Kang wrote:
> When both bash and busybox be installed, without ash support
> in busybox,if bash is installed before busybox in the final stage,
> even if ALTERNATIVE_PRIORITY of bash > ALTERNATIVE_PRIORITY of busybox,
> the symlink from /bin/sh to bash can be yet overwritten by busybox.
>
> Signed-off-by: Wenlin Kang <wenlin.kang@windriver.com>
> ---
>   meta/recipes-core/busybox/busybox.inc |    8 ++++++--
>   1 file changed, 6 insertions(+), 2 deletions(-)
>
> diff --git a/meta/recipes-core/busybox/busybox.inc b/meta/recipes-core/busybox/busybox.inc
> index 69b9b0c..bf2ddc1 100644
> --- a/meta/recipes-core/busybox/busybox.inc
> +++ b/meta/recipes-core/busybox/busybox.inc
> @@ -188,7 +188,9 @@ do_install () {
>   			install -m 0755 ${B}/busybox.nosuid ${D}${base_bindir}
>   			install -m 0644 ${S}/busybox.links.suid ${D}${sysconfdir}
>   			install -m 0644 ${S}/busybox.links.nosuid ${D}${sysconfdir}
> -			ln -sf busybox.nosuid ${D}${base_bindir}/sh
> +			if grep -q "CONFIG_FEATURE_SH_IS_ASH=y" ${B}/.config; then
> +				ln -sf busybox.nosuid ${D}${base_bindir}/sh
> +			fi
>   			# Keep a default busybox for people who want to invoke busybox directly.
>   			# This is also useful for the on device upgrade. Because we want
>   			# to use the busybox command in postinst.
> @@ -200,7 +202,9 @@ do_install () {
>   				install -m 0755 ${B}/busybox ${D}${base_bindir}
>   			fi
>   			install -m 0644 ${S}/busybox.links ${D}${sysconfdir}
> -			ln -sf busybox ${D}${base_bindir}/sh
> +			if grep -q "CONFIG_FEATURE_SH_IS_ASH=y" ${B}/.config; then
> +				ln -sf busybox ${D}${base_bindir}/sh
> +			fi
>   			# We make this symlink here to eliminate the error when upgrading together
>   			# with busybox-syslog. Without this symlink, the opkg may think of the
>   			# busybox.nosuid as obsolete and remove it, resulting in dead links like


ping ...
Bernhard Reutner-Fischer - Aug. 28, 2014, 12:12 p.m.
On 28 August 2014 11:37:26 CEST, Wenlin Kang <wenlin.kang@windriver.com> wrote:
>On 2014?04?08? 15:16, Wenlin Kang wrote:
>> When both bash and busybox be installed, without ash support
>> in busybox,if bash is installed before busybox in the final stage,
>> even if ALTERNATIVE_PRIORITY of bash > ALTERNATIVE_PRIORITY of
>busybox,
>> the symlink from /bin/sh to bash can be yet overwritten by busybox.
>>
>> Signed-off-by: Wenlin Kang <wenlin.kang@windriver.com>
>> ---
>>   meta/recipes-core/busybox/busybox.inc |    8 ++++++--
>>   1 file changed, 6 insertions(+), 2 deletions(-)
>>
>> diff --git a/meta/recipes-core/busybox/busybox.inc
>b/meta/recipes-core/busybox/busybox.inc
>> index 69b9b0c..bf2ddc1 100644
>> --- a/meta/recipes-core/busybox/busybox.inc
>> +++ b/meta/recipes-core/busybox/busybox.inc
>> @@ -188,7 +188,9 @@ do_install () {
>>   			install -m 0755 ${B}/busybox.nosuid ${D}${base_bindir}
>>   			install -m 0644 ${S}/busybox.links.suid ${D}${sysconfdir}
>>   			install -m 0644 ${S}/busybox.links.nosuid ${D}${sysconfdir}
>> -			ln -sf busybox.nosuid ${D}${base_bindir}/sh
>> +			if grep -q "CONFIG_FEATURE_SH_IS_ASH=y" ${B}/.config; then

Better
egrep -q "^CONFIG_FEATURE_SH_IS_[^=]*=y"

Thanks,

Patch

diff --git a/meta/recipes-core/busybox/busybox.inc b/meta/recipes-core/busybox/busybox.inc
index 69b9b0c..bf2ddc1 100644
--- a/meta/recipes-core/busybox/busybox.inc
+++ b/meta/recipes-core/busybox/busybox.inc
@@ -188,7 +188,9 @@  do_install () {
 			install -m 0755 ${B}/busybox.nosuid ${D}${base_bindir}
 			install -m 0644 ${S}/busybox.links.suid ${D}${sysconfdir}
 			install -m 0644 ${S}/busybox.links.nosuid ${D}${sysconfdir}
-			ln -sf busybox.nosuid ${D}${base_bindir}/sh
+			if grep -q "CONFIG_FEATURE_SH_IS_ASH=y" ${B}/.config; then
+				ln -sf busybox.nosuid ${D}${base_bindir}/sh
+			fi
 			# Keep a default busybox for people who want to invoke busybox directly.
 			# This is also useful for the on device upgrade. Because we want
 			# to use the busybox command in postinst.
@@ -200,7 +202,9 @@  do_install () {
 				install -m 0755 ${B}/busybox ${D}${base_bindir}
 			fi
 			install -m 0644 ${S}/busybox.links ${D}${sysconfdir}
-			ln -sf busybox ${D}${base_bindir}/sh
+			if grep -q "CONFIG_FEATURE_SH_IS_ASH=y" ${B}/.config; then
+				ln -sf busybox ${D}${base_bindir}/sh
+			fi
 			# We make this symlink here to eliminate the error when upgrading together
 			# with busybox-syslog. Without this symlink, the opkg may think of the
 			# busybox.nosuid as obsolete and remove it, resulting in dead links like