All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] perl: avoid the source file patched twice
@ 2021-06-18  2:30 Yu, Mingli
  2021-06-21  8:26 ` [OE-core] " Alexandre Belloni
  2021-06-21  8:48 ` Richard Purdie
  0 siblings, 2 replies; 5+ messages in thread
From: Yu, Mingli @ 2021-06-18  2:30 UTC (permalink / raw)
  To: openembedded-core, alex.kanavin

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"
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2021-06-24  3:22 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-06-18  2:30 [PATCH] perl: avoid the source file patched twice Yu, Mingli
2021-06-21  8:26 ` [OE-core] " Alexandre Belloni
2021-06-21  8:47   ` Yu, Mingli
2021-06-21  8:48 ` Richard Purdie
2021-06-24  3:28   ` Yu, Mingli

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.