Patchwork libtool-cross/native: Force usage of bash due to sstate inconsistencies

login
register
mail settings
Submitter Richard Purdie
Date Jan. 23, 2014, 12:19 p.m.
Message ID <1390479566.17424.99.camel@ted>
Download mbox | patch
Permalink /patch/65617/
State New
Headers show

Comments

Richard Purdie - Jan. 23, 2014, 12:19 p.m.
Scenario:
a) libtool script is built on system with bash as /bin/sh
b) machine B installs sstate from build a)
c) machine B has dash as /bin/sh

In this scenario, the script fails to work properly since its expecting
/bin/sh to have bash like syntax and it no longer does have it.

This patch forces the configure process to use /bin/bash, not /bin/sh
and hence allows the scripts to work correctly when used from sstate.

(From OE-Core rev: 2c66aa0fc98b092ebb37baee94e92d1965afd76b)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
---
Otavio Salvador - Jan. 23, 2014, 12:37 p.m.
On Thu, Jan 23, 2014 at 10:19 AM, Richard Purdie
<richard.purdie@linuxfoundation.org> wrote:
> Scenario:
> a) libtool script is built on system with bash as /bin/sh
> b) machine B installs sstate from build a)
> c) machine B has dash as /bin/sh
>
> In this scenario, the script fails to work properly since its expecting
> /bin/sh to have bash like syntax and it no longer does have it.
>
> This patch forces the configure process to use /bin/bash, not /bin/sh
> and hence allows the scripts to work correctly when used from sstate.
>
> (From OE-Core rev: 2c66aa0fc98b092ebb37baee94e92d1965afd76b)
>
> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>

Does this work for Fedora, using bash in /usr/bin/bash?
Robert Yang - Jan. 23, 2014, 12:42 p.m.
On 01/23/2014 08:37 PM, Otavio Salvador wrote:
> On Thu, Jan 23, 2014 at 10:19 AM, Richard Purdie
> <richard.purdie@linuxfoundation.org> wrote:
>> Scenario:
>> a) libtool script is built on system with bash as /bin/sh
>> b) machine B installs sstate from build a)
>> c) machine B has dash as /bin/sh
>>
>> In this scenario, the script fails to work properly since its expecting
>> /bin/sh to have bash like syntax and it no longer does have it.
>>
>> This patch forces the configure process to use /bin/bash, not /bin/sh
>> and hence allows the scripts to work correctly when used from sstate.
>>
>> (From OE-Core rev: 2c66aa0fc98b092ebb37baee94e92d1965afd76b)
>>
>> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
>
> Does this work for Fedora, using bash in /usr/bin/bash?
>

Yes, I think so, on Fedora:

$ readlink -f /bin/
/usr/bin


/bin is a symlink which points to /usr/bin.

// Robert
Otavio Salvador - Jan. 23, 2014, 12:44 p.m.
On Thu, Jan 23, 2014 at 10:42 AM, Robert Yang <liezhi.yang@windriver.com> wrote:
>
>
> On 01/23/2014 08:37 PM, Otavio Salvador wrote:
>>
>> On Thu, Jan 23, 2014 at 10:19 AM, Richard Purdie
>> <richard.purdie@linuxfoundation.org> wrote:
>>>
>>> Scenario:
>>> a) libtool script is built on system with bash as /bin/sh
>>> b) machine B installs sstate from build a)
>>> c) machine B has dash as /bin/sh
>>>
>>> In this scenario, the script fails to work properly since its expecting
>>> /bin/sh to have bash like syntax and it no longer does have it.
>>>
>>> This patch forces the configure process to use /bin/bash, not /bin/sh
>>> and hence allows the scripts to work correctly when used from sstate.
>>>
>>> (From OE-Core rev: 2c66aa0fc98b092ebb37baee94e92d1965afd76b)
>>>
>>> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
>>
>>
>> Does this work for Fedora, using bash in /usr/bin/bash?
>>
>
> Yes, I think so, on Fedora:
>
> $ readlink -f /bin/
> /usr/bin
>
>
> /bin is a symlink which points to /usr/bin.

Thanks for checking.
Martin Jansa - Jan. 23, 2014, 12:48 p.m.
On Thu, Jan 23, 2014 at 12:19:26PM +0000, Richard Purdie wrote:
> Scenario:
> a) libtool script is built on system with bash as /bin/sh
> b) machine B installs sstate from build a)
> c) machine B has dash as /bin/sh
> 
> In this scenario, the script fails to work properly since its expecting
> /bin/sh to have bash like syntax and it no longer does have it.
> 
> This patch forces the configure process to use /bin/bash, not /bin/sh
> and hence allows the scripts to work correctly when used from sstate.

Shouldn't oe-core commit 367a19aaf31bcf997f10d045e7954cc800189052 fix
that already? I don't see this issue on our builders since
367a19aaf31bcf997f10d045e7954cc800189052 was merged.

> (From OE-Core rev: 2c66aa0fc98b092ebb37baee94e92d1965afd76b)

This is sent from poky repo, right?

> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
> ---
> diff --git a/meta/recipes-devtools/libtool/libtool-cross_2.4.2.bb b/meta/recipes-devtools/libtool/libtool-cross_2.4.2.bb
> index 34aae0b..72fad37 100644
> --- a/meta/recipes-devtools/libtool/libtool-cross_2.4.2.bb
> +++ b/meta/recipes-devtools/libtool/libtool-cross_2.4.2.bb
> @@ -39,3 +39,5 @@ libtoolcross_sysroot_preprocess () {
>  }
>  
>  SSTATE_SCAN_FILES += "libtoolize *-libtool"
> +
> +export CONFIG_SHELL="/bin/bash"
> diff --git a/meta/recipes-devtools/libtool/libtool-native_2.4.2.bb b/meta/recipes-devtools/libtool/libtool-native_2.4.2.bb
> index df73f08..f1051d8 100644
> --- a/meta/recipes-devtools/libtool/libtool-native_2.4.2.bb
> +++ b/meta/recipes-devtools/libtool/libtool-native_2.4.2.bb
> @@ -22,3 +22,4 @@ do_install () {
>  	install -m 0755 ${HOST_SYS}-libtool ${D}${bindir}/${HOST_SYS}-libtool
>  }
>  
> +export CONFIG_SHELL="/bin/bash"
> 
> 
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core

Patch

diff --git a/meta/recipes-devtools/libtool/libtool-cross_2.4.2.bb b/meta/recipes-devtools/libtool/libtool-cross_2.4.2.bb
index 34aae0b..72fad37 100644
--- a/meta/recipes-devtools/libtool/libtool-cross_2.4.2.bb
+++ b/meta/recipes-devtools/libtool/libtool-cross_2.4.2.bb
@@ -39,3 +39,5 @@  libtoolcross_sysroot_preprocess () {
 }
 
 SSTATE_SCAN_FILES += "libtoolize *-libtool"
+
+export CONFIG_SHELL="/bin/bash"
diff --git a/meta/recipes-devtools/libtool/libtool-native_2.4.2.bb b/meta/recipes-devtools/libtool/libtool-native_2.4.2.bb
index df73f08..f1051d8 100644
--- a/meta/recipes-devtools/libtool/libtool-native_2.4.2.bb
+++ b/meta/recipes-devtools/libtool/libtool-native_2.4.2.bb
@@ -22,3 +22,4 @@  do_install () {
 	install -m 0755 ${HOST_SYS}-libtool ${D}${bindir}/${HOST_SYS}-libtool
 }
 
+export CONFIG_SHELL="/bin/bash"