[OE-core] [PATCH] perl: fix re-execution of task

richard.purdie at linuxfoundation.org richard.purdie at linuxfoundation.org
Fri Apr 13 15:29:36 UTC 2012


> ---
 a/meta/recipes-devtools/perl/perl_5.14.2.bb
> +++
 b/meta/recipes-devtools/perl/perl_5.14.2.bb
> @@ -164,8 +164,12 @@
 do_configure() {
>  	esac
>          # These are strewn all over the source
 tree
>          for foo in `grep -I -m1 \/usr\/include\/.*\\.h ${WORKDIR}/*
 -r | cut -f 1 -d ":"` ; do
> -            echo Fixing: $foo
> -           
 sed -e "s%/usr/include/%${STAGING_INCDIR}/%g" -i $foo
> +		# D2194:Fixing
 the issue "patch file link is replaced with modified file"
> +		# Ignore if
 file is a link, as actual file will also get caught during grep 
> +		if [
 ! -h $foo ]; then
> +			echo Fixing: $foo
> +			sed -e
 "s%/usr/include/%${STAGING_INCDIR}/%g" -i $foo
> +	    	fi
From: Richard Purdie <richard.purdie at linuxfoundation.org>
To: Venkata ramana gollamudi <ramana.gollamudi at huawei.com>
Cc: "'openembedded-core at lists.openembedded.org'"
 <openembedded-core at lists.openembedded.org>, Sanil kumar
 <sanil.kumar at huawei.com>
Date: Fri, 13 Apr 2012 16:29:36 +0100
In-Reply-To: <36ED13F3654AE54CA763E6821D93A5711043A0F7 at szxeml534-mbs.china.huawei.com>
References: 
	<36ED13F3654AE54CA763E6821D93A5711043A0F7 at szxeml534-mbs.china.huawei.com>
Content-Type: text/plain; charset="UTF-8"
X-Mailer: Evolution 3.2.2- 
Content-Transfer-Encoding: 7bit
Mime-Version: 1.0

On Fri, 2012-04-13 at 11:46 +0000, Venkata ramana gollamudi wrote:
> perl package do_configure is changing "/perl-5.14.2/patches/h2ph-multiarch.diff"
>  from link to normal file in the process of correcting the paths.
> So when patch task is re-executed after complete package building, giving error.
> 
> This path correction is not required for links as the link target file
>  will be also be modified individually.
> Fix done to ignore the path correction during do_configure,
>  if file is a link.
> 
> [Yocto #2194]
> 
> Signed-off-by: Venkata Ramana Gollamudi <ramana.gollamudi at huawei.com>
> ---
>  meta/recipes-devtools/perl/perl_5.14.2.bb |    8 ++++++--
>  1 files changed, 6 insertions(+), 2 deletions(-)
> 
> diff --git a/meta/recipes-devtools/perl/perl_5.14.2.bb b/meta/recipes-devtools/perl/perl_5.14.2.bb
> index 92ca9b8..414aa22 100644
> --- a/meta/recipes-devtools/perl/perl_5.14.2.bb
> +++ b/meta/recipes-devtools/perl/perl_5.14.2.bb
> @@ -164,8 +164,12 @@ do_configure() {
>  	esac
>          # These are strewn all over the source tree
>          for foo in `grep -I -m1 \/usr\/include\/.*\\.h ${WORKDIR}/* -r | cut -f 1 -d ":"` ; do
> -            echo Fixing: $foo
> -            sed -e "s%/usr/include/%${STAGING_INCDIR}/%g" -i $foo
> +		# D2194:Fixing the issue "patch file link is replaced with modified file"
> +		# Ignore if file is a link, as actual file will also get caught during grep 
> +		if [ ! -h $foo ]; then
> +			echo Fixing: $foo
> +			sed -e "s%/usr/include/%${STAGING_INCDIR}/%g" -i $foo
> +	    	fi
>          done
>  
>          rm -f config

I think its a bad idea to assume patches are symlinks. Could we add
something like --exclude=patches to the grep command?

Secondly, the above will still cause problems if ${STAGING_INCDIR}
contains /usr/include which it usually will, for example if:

STAGING_INCDIR=/foo/usr/include

then you can end up with:

/foo/foo/foo/foo/usr/include

after a few runs. This fix therefore still needs some work.

Cheers,

Richard









More information about the Openembedded-core mailing list