Patchwork Update intltool to set perl shebang correctly for installed tools

login
register
mail settings
Submitter Matthew McClintock
Date Aug. 3, 2011, 4:33 p.m.
Message ID <1312389206-15422-1-git-send-email-msm@freescale.com>
Download mbox | patch
Permalink /patch/9135/
State New, archived
Headers show

Comments

Matthew McClintock - Aug. 3, 2011, 4:33 p.m.
Several installed scripts set the perl shebang that is too long
which can cause failures on certian older bash versions.

Signed-off-by: Matthew McClintock <msm@freescale.com>
---
 meta/recipes-devtools/intltool/intltool.inc       |    2 +-
 meta/recipes-devtools/intltool/intltool_0.40.6.bb |    2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)
Gary Thomas - Aug. 3, 2011, 4:44 p.m.
On 2011-08-03 10:33, Matthew McClintock wrote:
> Several installed scripts set the perl shebang that is too long
> which can cause failures on certian older bash versions.

How does the change below correspond to this comment?  It's not
clear [at least to me] how changing that environment variable
affects shebang constructs.  Can you give a more thorough explanation?

>
> Signed-off-by: Matthew McClintock<msm@freescale.com>
> ---
>   meta/recipes-devtools/intltool/intltool.inc       |    2 +-
>   meta/recipes-devtools/intltool/intltool_0.40.6.bb |    2 +-
>   2 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/meta/recipes-devtools/intltool/intltool.inc b/meta/recipes-devtools/intltool/intltool.inc
> index c934654..d8917ad 100644
> --- a/meta/recipes-devtools/intltool/intltool.inc
> +++ b/meta/recipes-devtools/intltool/intltool.inc
> @@ -12,5 +12,5 @@ RRECOMMENDS_${PN} = "perl-modules"
>
>   inherit autotools pkgconfig perlnative
>
> -export PERL_virtclass-native = "/usr/bin/env perl"
> +export PERL = "/usr/bin/env perl"
>   BBCLASSEXTEND = "native"
> diff --git a/meta/recipes-devtools/intltool/intltool_0.40.6.bb b/meta/recipes-devtools/intltool/intltool_0.40.6.bb
> index c7938e5..8b52cf8 100644
> --- a/meta/recipes-devtools/intltool/intltool_0.40.6.bb
> +++ b/meta/recipes-devtools/intltool/intltool_0.40.6.bb
> @@ -1,7 +1,7 @@
>   require intltool.inc
>   LICENSE="GPLv2"
>   LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
> -PR = "r3"
> +PR = "r4"
>
>   SRC_URI_append = " file://intltool-nowarn-0.40.0.patch"
>
Gary Thomas - Aug. 3, 2011, 8:01 p.m.
On 2011-08-03 13:52, McClintock Matthew-B29882 wrote:
> (Sorry if this get sent twice...)
>
> On Wed, Aug 3, 2011 at 11:44 AM, Gary Thomas<gary@mlbassoc.com>  wrote:
>> On 2011-08-03 10:33, Matthew McClintock wrote:
>>>
>>> Several installed scripts set the perl shebang that is too long
>>> which can cause failures on certian older bash versions.
>>
>> How does the change below correspond to this comment?  It's not
>> clear [at least to me] how changing that environment variable
>> affects shebang constructs.  Can you give a more thorough explanation?
>
> The scripts intltool-{update,etc} installed in sysroot end up having
> *really* long shebangs without this change. On older distros this
> causes the intltool scripts to just fail usually during the configure
> task. intltools recipe itself will
> build and install fine. However, when a package that requires
> intltool's is being configured they will all fail withing invoking
> intltools.

This much was already clear from your explanation - the "what happens and
why it needs fixing" part.

What I don't see is the "why" - why does defining PERL vs PERL_virtclass-native
have this effect?
Phil Blundell - Aug. 3, 2011, 8:08 p.m.
[ Removed yocto@ from Cc.  Please don't crosspost between oe-core and
yocto. ]

On Wed, 2011-08-03 at 14:01 -0600, Gary Thomas wrote:
> On 2011-08-03 13:52, McClintock Matthew-B29882 wrote:
> > (Sorry if this get sent twice...)
> >
> > On Wed, Aug 3, 2011 at 11:44 AM, Gary Thomas<gary@mlbassoc.com>  wrote:
> >> On 2011-08-03 10:33, Matthew McClintock wrote:
> >>>
> >>> Several installed scripts set the perl shebang that is too long
> >>> which can cause failures on certian older bash versions.
> >>
> >> How does the change below correspond to this comment?  It's not
> >> clear [at least to me] how changing that environment variable
> >> affects shebang constructs.  Can you give a more thorough explanation?
> >
> > The scripts intltool-{update,etc} installed in sysroot end up having
> > *really* long shebangs without this change. On older distros this
> > causes the intltool scripts to just fail usually during the configure
> > task. intltools recipe itself will
> > build and install fine. However, when a package that requires
> > intltool's is being configured they will all fail withing invoking
> > intltools.
> 
> This much was already clear from your explanation - the "what happens and
> why it needs fixing" part.
> 
> What I don't see is the "why" - why does defining PERL vs PERL_virtclass-native
> have this effect?

Agreed, that seems weird and bogus.  Surely the scripts which go into
the sysroot (and later get executed on the build host) are going to be
the ones that were built with virtclass-native, in which case this would
be a no-op.  

And for scripts that are going to be packaged for installation on the
target, I'm not sure it is safe to assume that env is installed at all
and, even if it is guaranteed to be there, it is certainly not safe to
hardcode "/usr/bin" as the path to find it.  So I'm pretty sure that
this patch is the wrong thing.

p.

Patch

diff --git a/meta/recipes-devtools/intltool/intltool.inc b/meta/recipes-devtools/intltool/intltool.inc
index c934654..d8917ad 100644
--- a/meta/recipes-devtools/intltool/intltool.inc
+++ b/meta/recipes-devtools/intltool/intltool.inc
@@ -12,5 +12,5 @@  RRECOMMENDS_${PN} = "perl-modules"
 
 inherit autotools pkgconfig perlnative
 
-export PERL_virtclass-native = "/usr/bin/env perl"
+export PERL = "/usr/bin/env perl"
 BBCLASSEXTEND = "native"
diff --git a/meta/recipes-devtools/intltool/intltool_0.40.6.bb b/meta/recipes-devtools/intltool/intltool_0.40.6.bb
index c7938e5..8b52cf8 100644
--- a/meta/recipes-devtools/intltool/intltool_0.40.6.bb
+++ b/meta/recipes-devtools/intltool/intltool_0.40.6.bb
@@ -1,7 +1,7 @@ 
 require intltool.inc
 LICENSE="GPLv2"
 LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
-PR = "r3"
+PR = "r4"
 
 SRC_URI_append = " file://intltool-nowarn-0.40.0.patch"