Openembedded Core Discussions
 help / color / mirror / Atom feed
From: "Alexandre Belloni" <alexandre.belloni@bootlin.com>
To: "Yu, Mingli" <mingli.yu@windriver.com>
Cc: openembedded-core@lists.openembedded.org, alex.kanavin@gmail.com
Subject: Re: [OE-core] [PATCH] perl: avoid the source file patched twice
Date: Mon, 21 Jun 2021 10:26:55 +0200	[thread overview]
Message-ID: <YNBNT5AZL9W6WYp0@piout.net> (raw)
In-Reply-To: <20210618023036.26144-1-mingli.yu@windriver.com>

Hello,

On 18/06/2021 10:30:36+0800, Yu, Mingli wrote:
> From: Mingli Yu <mingli.yu@windriver.com>
> 
> After the commit(60dcb230f6 perl: split perl-cross into its own recipe)
> introduced, the source files mainly come from two parts, one is from
> SRI_URI during do_fetch and the other with below means during do_configure.
> do_configure_prepend() {
>     cp -rfp ${STAGING_DATADIR_NATIVE}/perl-cross/* ${S}
> }
> 
> And the source files will be changed during do_compile with below
> logic in Makefile.
> $(CROSSPATCHED): %.applied: %.patch
>         patch -p1 -i $< && touch $@
> 
> And there comes build failure with below steps:
>  $ bitbake perl-native
> 
> Make a change as below
>  $ git diff
>  diff --git a/meta/recipes-devtools/perl-cross/perlcross_1.3.6.bb b/meta/recipes-devtools/perl-cross/perlcross_1.3.6.bb
>  index b77bbd1fd4..4c5e35ab80 100644
>  --- a/meta/recipes-devtools/perl-cross/perlcross_1.3.6.bb
>  +++ b/meta/recipes-devtools/perl-cross/perlcross_1.3.6.bb
>  @@ -33,6 +33,7 @@ do_compile () {
>   do_install_class-native() {
>       mkdir -p ${D}/${datadir}/perl-cross/
>       cp -rf ${S}/* ${D}/${datadir}/perl-cross/
>  +    echo "test" > ${D}/${datadir}/perl-cross/testfile
>  }
> 
>  $ bitbake perl-native
>  | NOTE: make -j 48
>  | make crosspatch
>  | make[1]: Entering directory '/buildarea1/myu2/wr_build/wr1021_20210616_perl/build/tmp-glibc/work/x86_64-linux/perl-native/5.34.0-r0/perl-5.34.0'
>  | patch -p1 -i cnf/diffs/perl5-5.34.0/time-hires.patch && touch cnf/diffs/perl5-5.34.0/time-hires.applied
>  | patch -p1 -i cnf/diffs/perl5-5.34.0/xconfig.patch && touch cnf/diffs/perl5-5.34.0/xconfig.applied
>  | patch -p1 -i cnf/diffs/perl5-5.34.0/posix-makefile.patch && touch cnf/diffs/perl5-5.34.0/posix-makefile.applied
>  | File dist/Time-HiRes/Makefile.PL is read-only; trying to patch anyway
>  | patching file dist/Time-HiRes/Makefile.PL
>  | Reversed (or previously applied) patch detected!  Assume -R? [n]
>  | Apply anyway? [n]
>  | Skipping patch.
>  | 4 out of 4 hunks ignored -- saving rejects to file dist/Time-HiRes/Makefile.PL.rej
>  | patch -p1 -i cnf/diffs/perl5-5.34.0/test-commonsense.patch && touch cnf/diffs/perl5-5.34.0/test-commonsense.applied
>  | File perl.h is read-only; trying to patch anyway
>  | patching file perl.h
>  | Reversed (or previously applied) patch detected!  Assume -R? [n]
>  | Apply anyway? [n]
>  | Skipping patch.
>  | 1 out of 1 hunk ignored -- saving rejects to file perl.h.rej
>  | make[1]: *** [Makefile:64: cnf/diffs/perl5-5.34.0/time-hires.applied] Error 1
>  [snip]
> 
> It's because the source files patched twice, so let do_fetch always
> executed to make sure the source files which come from SRC_URI brand
> new in each build to avoid the source files patched twice to fix the
> build failure as above.
> 
> Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
> ---
>  meta/recipes-devtools/perl/perl_5.34.0.bb | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/meta/recipes-devtools/perl/perl_5.34.0.bb b/meta/recipes-devtools/perl/perl_5.34.0.bb
> index 7935a58723..2e48110d2b 100644
> --- a/meta/recipes-devtools/perl/perl_5.34.0.bb
> +++ b/meta/recipes-devtools/perl/perl_5.34.0.bb
> @@ -382,3 +382,5 @@ EOF
>         chmod 0755 ${SYSROOT_DESTDIR}${bindir}/nativeperl
>         cat ${SYSROOT_DESTDIR}${bindir}/nativeperl
>  }
> +
> +do_fetch[nostamp] = "1"

This seems to cause:

ERROR: The perl-native:do_fetch sig is computed to be ad5d35a67fb7dfcb2a67797631d358f99809c2c568f44db1b4e866f894368d3e, but the sig is locked to b715d1392c57c5341b05be30d4cdeaf2a443bae900890da8e053b9fc1650480b in SIGGEN_LOCKEDSIGS_t-x86-64
The perl:do_fetch sig is computed to be 83844d137b60382447e71889fc92deb568e52f2f9e8b214d86c3a608af8e8bce, but the sig is locked to a269ce4ca52954820059edc72f464379b71186be0b0bd9927b3fb3d716395e66 in SIGGEN_LOCKEDSIGS_t-core2-64

See https://autobuilder.yoctoproject.org/typhoon/#/builders/69/builds/3557/steps/24/logs/stdio

Can you check?

Regards

> -- 
> 2.17.1
> zO

> 
> 
> 


-- 
Alexandre Belloni, co-owner and COO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com

  reply	other threads:[~2021-06-21  8:26 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-06-18  2:30 [PATCH] perl: avoid the source file patched twice Yu, Mingli
2021-06-21  8:26 ` Alexandre Belloni [this message]
2021-06-21  8:47   ` [OE-core] " Yu, Mingli
2021-06-21  8:48 ` Richard Purdie
2021-06-24  3:28   ` Yu, Mingli

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=YNBNT5AZL9W6WYp0@piout.net \
    --to=alexandre.belloni@bootlin.com \
    --cc=alex.kanavin@gmail.com \
    --cc=mingli.yu@windriver.com \
    --cc=openembedded-core@lists.openembedded.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox