Patchwork [v2,1/4] eglibc: fix builds on fedora 17 alpha

login
register
mail settings
Submitter Nitin A Kamble
Date April 14, 2012, 8:59 a.m.
Message ID <b903308f5d95b5c7987c251cbf9da62682363149.1334390876.git.nitin.a.kamble@intel.com>
Download mbox | patch
Permalink /patch/25799/
State New
Headers show

Comments

Nitin A Kamble - April 14, 2012, 8:59 a.m.
From: Nitin A Kamble <nitin.a.kamble@intel.com>

Generally distros keep perl at /sur/bin/perl
Fedora 17 alpha also has /bin/perl

this causes eglibc build on such distros to put perl interpreter path in
the perl scripts as /bin/perl

But we set perl location for target as /usr/bin/perl

This mismatch of perl path causes failure of rootfs image creation
like this:

| error: Failed dependencies:
|       /bin/perl is needed by eglibc-utils-2.13-r23+svnr15508.i586
NOTE: package core-image-sato-1.0-r0: task do_rootfs: Failed
ERROR: Task 8
(/home/nitin/prj/poky.git/meta/recipes-sato/images/core-image-sato.bb,
do_rootfs) failed with exit code '1'

This Fixes bug : [YOCTO #2286]

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
---
 meta/recipes-core/eglibc/eglibc-package.inc |    5 +++++
 meta/recipes-core/eglibc/eglibc_2.13.bb     |    2 +-
 meta/recipes-core/eglibc/eglibc_2.15.bb     |    2 +-
 3 files changed, 7 insertions(+), 2 deletions(-)
Richard Purdie - April 14, 2012, 10:14 a.m.
On Sat, 2012-04-14 at 01:59 -0700, nitin.a.kamble@intel.com wrote:
> From: Nitin A Kamble <nitin.a.kamble@intel.com>
> 
> Generally distros keep perl at /sur/bin/perl
> Fedora 17 alpha also has /bin/perl
> 
> this causes eglibc build on such distros to put perl interpreter path in
> the perl scripts as /bin/perl
> 
> But we set perl location for target as /usr/bin/perl
> 
> This mismatch of perl path causes failure of rootfs image creation
> like this:
> 
> | error: Failed dependencies:
> |       /bin/perl is needed by eglibc-utils-2.13-r23+svnr15508.i586
> NOTE: package core-image-sato-1.0-r0: task do_rootfs: Failed
> ERROR: Task 8
> (/home/nitin/prj/poky.git/meta/recipes-sato/images/core-image-sato.bb,
> do_rootfs) failed with exit code '1'
> 
> This Fixes bug : [YOCTO #2286]
> 
> Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
> ---
>  meta/recipes-core/eglibc/eglibc-package.inc |    5 +++++
>  meta/recipes-core/eglibc/eglibc_2.13.bb     |    2 +-
>  meta/recipes-core/eglibc/eglibc_2.15.bb     |    2 +-
>  3 files changed, 7 insertions(+), 2 deletions(-)
> 
> diff --git a/meta/recipes-core/eglibc/eglibc-package.inc b/meta/recipes-core/eglibc/eglibc-package.inc
> index 9e45fc1..d13cb35 100644
> --- a/meta/recipes-core/eglibc/eglibc-package.inc
> +++ b/meta/recipes-core/eglibc/eglibc-package.inc
> @@ -76,6 +76,11 @@ do_install_append () {
>  	rm -f ${D}${sysconfdir}/localtime
>  
>  	oe_multilib_header bits/syscall.h
> +	
> +	if [ -f ${D}${bindir}/mtrace ]
> +	then
> +		sed -e "s# /bin/perl# ${bindir}/perl#" -i ${D}${bindir}/mtrace 
> +	fi
>  }

I'd recommend something like:

sed -i -e '1s,#!.*perl,#! ${bindir}/perl,' ${D}${bindir}/mtrace 

which will only match on the first line and matches .*perl rather
than /bin/perl.

Cheers,

Richard
Richard Purdie - April 14, 2012, 12:27 p.m.
On Sat, 2012-04-14 at 11:14 +0100, Richard Purdie wrote:
> On Sat, 2012-04-14 at 01:59 -0700, nitin.a.kamble@intel.com wrote:
> > From: Nitin A Kamble <nitin.a.kamble@intel.com>
> > 
> > Generally distros keep perl at /sur/bin/perl
> > Fedora 17 alpha also has /bin/perl
> > 
> > this causes eglibc build on such distros to put perl interpreter path in
> > the perl scripts as /bin/perl
> > 
> > But we set perl location for target as /usr/bin/perl
> > 
> > This mismatch of perl path causes failure of rootfs image creation
> > like this:
> > 
> > | error: Failed dependencies:
> > |       /bin/perl is needed by eglibc-utils-2.13-r23+svnr15508.i586
> > NOTE: package core-image-sato-1.0-r0: task do_rootfs: Failed
> > ERROR: Task 8
> > (/home/nitin/prj/poky.git/meta/recipes-sato/images/core-image-sato.bb,
> > do_rootfs) failed with exit code '1'
> > 
> > This Fixes bug : [YOCTO #2286]
> > 
> > Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
> > ---
> >  meta/recipes-core/eglibc/eglibc-package.inc |    5 +++++
> >  meta/recipes-core/eglibc/eglibc_2.13.bb     |    2 +-
> >  meta/recipes-core/eglibc/eglibc_2.15.bb     |    2 +-
> >  3 files changed, 7 insertions(+), 2 deletions(-)
> > 
> > diff --git a/meta/recipes-core/eglibc/eglibc-package.inc b/meta/recipes-core/eglibc/eglibc-package.inc
> > index 9e45fc1..d13cb35 100644
> > --- a/meta/recipes-core/eglibc/eglibc-package.inc
> > +++ b/meta/recipes-core/eglibc/eglibc-package.inc
> > @@ -76,6 +76,11 @@ do_install_append () {
> >  	rm -f ${D}${sysconfdir}/localtime
> >  
> >  	oe_multilib_header bits/syscall.h
> > +	
> > +	if [ -f ${D}${bindir}/mtrace ]
> > +	then
> > +		sed -e "s# /bin/perl# ${bindir}/perl#" -i ${D}${bindir}/mtrace 
> > +	fi
> >  }
> 
> I'd recommend something like:
> 
> sed -i -e '1s,#!.*perl,#! ${bindir}/perl,' ${D}${bindir}/mtrace 
> 
> which will only match on the first line and matches .*perl rather
> than /bin/perl.

I found some other issues with this and the contents of the -nativesdk
eglibc-utils package. I've merged an updated version which uses
${bindir}/env perl and hardcodes /usr/bin/env in the -nativesdk case
(which is an assumption nativesdk makes in general).

Cheers,

Richard

Patch

diff --git a/meta/recipes-core/eglibc/eglibc-package.inc b/meta/recipes-core/eglibc/eglibc-package.inc
index 9e45fc1..d13cb35 100644
--- a/meta/recipes-core/eglibc/eglibc-package.inc
+++ b/meta/recipes-core/eglibc/eglibc-package.inc
@@ -76,6 +76,11 @@  do_install_append () {
 	rm -f ${D}${sysconfdir}/localtime
 
 	oe_multilib_header bits/syscall.h
+	
+	if [ -f ${D}${bindir}/mtrace ]
+	then
+		sed -e "s# /bin/perl# ${bindir}/perl#" -i ${D}${bindir}/mtrace 
+	fi
 }
 
 do_install_locale () {
diff --git a/meta/recipes-core/eglibc/eglibc_2.13.bb b/meta/recipes-core/eglibc/eglibc_2.13.bb
index ec06261..d8a41dc 100644
--- a/meta/recipes-core/eglibc/eglibc_2.13.bb
+++ b/meta/recipes-core/eglibc/eglibc_2.13.bb
@@ -3,7 +3,7 @@  require eglibc.inc
 SRCREV = "15508"
 
 DEPENDS += "gperf-native"
-PR = "r25"
+PR = "r26"
 PR_append = "+svnr${SRCPV}"
 
 EGLIBC_BRANCH="eglibc-2_13"
diff --git a/meta/recipes-core/eglibc/eglibc_2.15.bb b/meta/recipes-core/eglibc/eglibc_2.15.bb
index caed9e9..713efc3 100644
--- a/meta/recipes-core/eglibc/eglibc_2.15.bb
+++ b/meta/recipes-core/eglibc/eglibc_2.15.bb
@@ -3,7 +3,7 @@  require eglibc.inc
 SRCREV = "17386"
 
 DEPENDS += "gperf-native"
-PR = "r5"
+PR = "r6"
 PR_append = "+svnr${SRCPV}"
 
 EGLIBC_BRANCH="eglibc-2_15"