summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/perl
diff options
context:
space:
mode:
authorWilliam Lyu <William.Lyu@windriver.com>2024-01-24 08:32:34 -0800
committerRichard Purdie <richard.purdie@linuxfoundation.org>2024-01-26 16:06:29 +0000
commitba3a8dd4700bf5ad40da7c7c22d7f16833caa67b (patch)
tree1a9a20b42fd733a2e2f214da2a12753859272a6c /meta/recipes-devtools/perl
parentb219e0c9ffeb1b9e7c7aa0cf9a7156fe8dd17fa9 (diff)
downloadpoky-ba3a8dd4700bf5ad40da7c7c22d7f16833caa67b.tar.gz
perl: Fix perl-module-* being ignored via COMPLEMENTARY_GLOB
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. (From OE-Core rev: 738fa7ee2dadf7b4b96fc1e86dbde106d3b86ec3) Signed-off-by: William Lyu <William.Lyu@windriver.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-devtools/perl')
-rw-r--r--meta/recipes-devtools/perl/perl_5.38.2.bb19
1 files changed, 11 insertions, 8 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..b6c9cda7ae 100644
--- a/meta/recipes-devtools/perl/perl_5.38.2.bb
+++ b/meta/recipes-devtools/perl/perl_5.38.2.bb
@@ -273,7 +273,7 @@ FILES:${PN} = "${bindir}/perl ${bindir}/perl.real ${bindir}/perl${PV} ${libdir}/
273 ${libdir}/perl5/${PV}/ExtUtils/typemap \ 273 ${libdir}/perl5/${PV}/ExtUtils/typemap \
274 " 274 "
275RPROVIDES:${PN} += "perl-module-strict perl-module-vars perl-module-config perl-module-warnings \ 275RPROVIDES:${PN} += "perl-module-strict perl-module-vars perl-module-config perl-module-warnings \
276 perl-module-warnings-register" 276 perl-module-warnings-register perl-module-config-git"
277 277
278FILES:${PN}-staticdev:append = " ${libdir}/perl5/${PV}/*/CORE/libperl.a" 278FILES:${PN}-staticdev:append = " ${libdir}/perl5/${PV}/*/CORE/libperl.a"
279 279
@@ -306,8 +306,8 @@ ALTERNATIVE_PRIORITY = "40"
306ALTERNATIVE:${PN}-doc = "Thread.3" 306ALTERNATIVE:${PN}-doc = "Thread.3"
307ALTERNATIVE_LINK_NAME[Thread.3] = "${mandir}/man3/Thread.3" 307ALTERNATIVE_LINK_NAME[Thread.3] = "${mandir}/man3/Thread.3"
308 308
309# Create a perl-modules package recommending all the other perl 309# Create a perl-modules package that represents the collection of all the
310# packages (actually the non modules packages and not created too) 310# other perl packages (actually the non modules packages and not created too).
311ALLOW_EMPTY:${PN}-modules = "1" 311ALLOW_EMPTY:${PN}-modules = "1"
312PACKAGES += "${PN}-modules " 312PACKAGES += "${PN}-modules "
313 313
@@ -322,11 +322,13 @@ python split_perl_packages () {
322 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) 322 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)
323 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) 323 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)
324 324
325 # perl-modules should recommend every perl module, and only the 325 # perl-modules should runtime-depend on every perl module, and only the
326 # modules. Don't attempt to use the result of do_split_packages() as some 326 # modules. Don't attempt to use the result of do_split_packages() as some
327 # modules are manually split (eg. perl-module-unicore). 327 # modules are manually split (eg. perl-module-unicore). Also, the split
328 packages = filter(lambda p: 'perl-module-' in p, d.getVar('PACKAGES').split()) 328 # packages should not include packages defined in RPROVIDES:${PN}.
329 d.setVar(d.expand("RRECOMMENDS:${PN}-modules"), ' '.join(packages)) 329 perl_sub_pkgs = d.getVar(d.expand("RPROVIDES:${PN}")).split()
330 packages = filter(lambda p: 'perl-module-' in p and p not in perl_sub_pkgs, d.getVar('PACKAGES').split())
331 d.setVar(d.expand("RDEPENDS:${PN}-modules"), ' '.join(packages))
330 332
331 # Read the pre-generated dependency file, and use it to set module dependecies 333 # Read the pre-generated dependency file, and use it to set module dependecies
332 for line in open(d.expand("${WORKDIR}") + '/perl-rdepends.txt').readlines(): 334 for line in open(d.expand("${WORKDIR}") + '/perl-rdepends.txt').readlines():
@@ -352,7 +354,8 @@ python() {
352 d.setVar("PACKAGES_DYNAMIC", "^nativesdk-perl-module-.*") 354 d.setVar("PACKAGES_DYNAMIC", "^nativesdk-perl-module-.*")
353} 355}
354 356
355RDEPENDS:${PN}-misc += "perl perl-modules" 357RDEPENDS:${PN}-misc += "perl"
358RRECOMMENDS:${PN}-misc += "perl-modules"
356RDEPENDS:${PN}-pod += "perl" 359RDEPENDS:${PN}-pod += "perl"
357 360
358BBCLASSEXTEND = "native nativesdk" 361BBCLASSEXTEND = "native nativesdk"