> 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]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to