On Mon, 2024-01-22 at 07:49 -0800, Lyu, William via lists.openembedded.org wrote: > From: William Lyu <[email protected]> > > 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 <[email protected]> > --- > 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. Cheers, Richard
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#194190): https://lists.openembedded.org/g/openembedded-core/message/194190 Mute This Topic: https://lists.openembedded.org/mt/103888731/21656 Group Owner: [email protected] Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
