> On Mon, 2024-01-22 at 07:49 -0800, Lyu, William via > lists.openembedded.org wrote: >> From: William Lyu <william....@windriver.com> >> >> When perl-modules is added via COMPLEMENTARY_GLOB, all perl-module-* >> packages recommended by perl-modules are ignored due to the defined >> behavior of COMPLEMENTARY_GLOB. >> >> This patch changes the relationship between perl-modules and all of its >> perl-module-* from RRECOMMENDS to RDEPENDS. This makes sense as >> perl-modules should represent the collection of all optional >> perl-module-* packages. After this patch, perl-modules itself is being >> RRECOMMENDED instead of the individual perl-module-* packages >> perl-modules represents. >> >> Signed-off-by: William Lyu <william....@windriver.com> >> --- >> meta/recipes-devtools/perl/perl_5.38.2.bb | 16 +++++++++++----- >> 1 file changed, 11 insertions(+), 5 deletions(-) >> >> diff --git a/meta/recipes-devtools/perl/perl_5.38.2.bb >> b/meta/recipes-devtools/perl/perl_5.38.2.bb >> index a9d684cfc5..5037816f89 100644 >> --- a/meta/recipes-devtools/perl/perl_5.38.2.bb >> +++ b/meta/recipes-devtools/perl/perl_5.38.2.bb >> @@ -306,8 +306,8 @@ ALTERNATIVE_PRIORITY = "40" >> ALTERNATIVE:${PN}-doc = "Thread.3" >> ALTERNATIVE_LINK_NAME[Thread.3] = "${mandir}/man3/Thread.3" >> >> -# Create a perl-modules package recommending all the other perl >> -# packages (actually the non modules packages and not created too) >> +# Create a perl-modules package that represents the collection of all the >> +# other perl packages (actually the non modules packages and not created >> too). >> ALLOW_EMPTY:${PN}-modules = "1" >> PACKAGES += "${PN}-modules " >> >> @@ -322,11 +322,16 @@ python split_perl_packages () { >> do_split_packages(d, libdir, r'.*linux/([^\/].*)\.(pm|pl|e2x)', >> '${PN}-module-%s', 'perl module %s', recursive=True, allow_dirs=False, >> match_path=True, prepend=False) >> do_split_packages(d, libdir, >> r'(^(?!(CPAN\/|CPANPLUS\/|Module\/|unicore\/|.*linux\/)[^\/]).*)\.(pm|pl|e2x)', >> '${PN}-module-%s', 'perl module %s', recursive=True, allow_dirs=False, >> match_path=True, prepend=False) >> >> - # perl-modules should recommend every perl module, and only the >> + # perl-modules should runtime-depend on every perl module, and only the >> # modules. Don't attempt to use the result of do_split_packages() as >> some >> # modules are manually split (eg. perl-module-unicore). >> packages = filter(lambda p: 'perl-module-' in p, >> d.getVar('PACKAGES').split()) >> - d.setVar(d.expand("RRECOMMENDS:${PN}-modules"), ' '.join(packages)) >> + d.setVar(d.expand("RDEPENDS:${PN}-modules"), ' '.join(packages)) >> + >> + # As perl-modules depends on all other, potentially non-existent, perl >> + # packages, we allow these packages to be empty to prevent build errors. >> + for pkg in d.getVar(d.expand("RDEPENDS:${PN}-modules")).split(): >> + d.setVar(d.expand("ALLOW_EMPTY:" + pkg), "1") >> >> # Read the pre-generated dependency file, and use it to set module >> dependecies >> for line in open(d.expand("${WORKDIR}") + >> '/perl-rdepends.txt').readlines(): > > Do you have some examples of these packages which don't exist? > > I'd like to understand why they don't exist and perhaps not have them > listed in PACKAGES in the first place. Creating a load of empty/useless > packages with ALLOW_EMPTY seems a bit pointless/sad.
The following is a list of empty packages perl-modules RDEPENDS on. tmp/work/core2-64-poky-linux/perl/5.38.2/packages-split$ find -maxdepth 1 -empty -name 'perl-module-*' ./perl-module-config ./perl-module-warnings-register ./perl-module-vars ./perl-module-strict ./perl-module-config-git ./perl-module-warnings Best, William > > Cheers, > > Richard
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#194196): https://lists.openembedded.org/g/openembedded-core/message/194196 Mute This Topic: https://lists.openembedded.org/mt/103888731/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-