Robert Yang : perl: fix dependecies
A message that is not in the archive (sent off-list or not yet received): 20121019163541.436A0103AB@opal
Quoted 74 lines · On Fri, Oct 19, 2012 at 04:35:40PM +0000, [email protected] wrote:
Module: openembedded-core.git Branch: master Commit: d50be1876f7a41822ef7e73207fdf8cccd39e400 URL: http://git.openembedded.org/?p=openembedded-core.git&a=commit;h=d50be1876f7a41822ef7e73207fdf8cccd39e400Author: Robert Yang <[email protected]> Date: Fri Oct 19 19:22:04 2012 +0800perl: fix dependecies
This patch fixes 2 problems.
The first one is that when run "perl -V" on target, it fails with lack of some .pm files. So add these perl module files to package perl itself to fix this failure.
The second problem is that package nativesdk-perl-modules doesn't depends on the single perl modules.
In the .bb file, dependencies of perl-modules are set by:
RRECOMMENDS_perl-modules = "${@d.getVar('PACKAGES', True)...}"
The PACKAGES would be reset by
do_split_packagessince:
PACKAGES_DYNAMIC= "perl-module-*" PACKAGES_DYNAMIC_virtclass-nativesdk = "nativesdk-perl-module-*"Then:
1) The target perl-modules RRECOMMENDS on perl-module-*, this is what we expect.2) But the nativesdk-perl-modules doesn't RRECOMMENDS on nativesdk-perl-module-*, this is not what we expect.
The value of PACKAGES after
do_split_packageshas been set correctly (it contains the nativesdk-perl-module-* packages)But the:
RRECOMMENDS_perl-modules = "${@d.getVar('PACKAGES', True)...}"
doesn't work correctly for nativesdk, the
d.getVar('RRECOMMENDS_perl-modules', True)doesn't get the new value of the PACKAGES, it gets the value of PACKAGES before the
do_split_packages.This patch will fix the problem.
Signed-off-by Kang Kai <[email protected]>Signed-off-by Richard Purdie <[email protected]>---
meta/recipes-devtools/perl/perl_5.14.2.bb | 12 +++++++++--- 1 files changed, 9 insertions(+), 3 deletions(-)meta/recipes-devtools/perl/perl_5.14.2.bb +1
-1@@ -7,7 +7,7 @@ LIC_FILES_CHKSUM = "file://Copying;md5=2b4c6ffbcfcbdee469f02565f253d81a \ # We need gnugrep (for -I) DEPENDS = "virtual/db grep-native" DEPENDS += "gdbm zlib" -PR = "r11" +PR = "r12" # 5.10.1 has Module::Build built-in PROVIDES += "libmodule-build-perl"@@ -243,7 +243,13 @@ perl_package_preprocess () {
meta/recipes-devtools/perl/perl_5.14.2.bb perl_package_preprocess () { · line 252
Quoted 10 lines
meta/recipes-devtools/perl/perl_5.14.2.bb +7
-1PACKAGES = "perl-dbg perl perl-misc perl-dev perl-pod perl-doc perl-lib \ perl-module-cpan perl-module-cpanplus perl-module-unicore" -FILES_${PN} = "${bindir}/perl ${bindir}/perl${PV}" +FILES_${PN} = "${bindir}/perl ${bindir}/perl${PV} \ + ${libdir}/perl/${PV}/Config.pm \ + ${libdir}/perl/${PV}/strict.pm \ + ${libdir}/perl/${PV}/warnings.pm \ + ${libdir}/perl/${PV}/warnings \ + ${libdir}/perl/${PV}/vars.pm \ + "
I think this breaks at least automake, tiobench and libtimedate-perl
OE @ ~/openembedded-core $ git grep perl-module-strict
meta/recipes-devtools/automake/automake_1.12.3.bb: perl-module-strict \
meta/recipes-extended/perl/libtimedate-perl_1.20.bb:RDEPENDS_${PN} += "perl-module-carp perl-module-exporter perl-module-strict perl-module-time-local" OE @ ~/meta-openembedded $ git grep perl-module-strict
meta-oe/recipes-benchmark/tiobench/tiobench_0.3.3.bb: perl-module-strict \
OE @ ~/openembedded-core $ git grep perl-module-vars
meta/recipes-devtools/automake/automake_1.12.3.bb: perl-module-vars "
perl-module-strict and perl-module-vars are not created now, probably empty.
Quoted 25 lines
meta/recipes-devtools/perl/perl_5.14.2.bb +1
-1FILES_${PN}-dev = "${libdir}/perl/${PV}/CORE" FILES_${PN}-lib = "${libdir}/libperl.so* \ ${libdir}/perl5 \@@ -294,7 +300,6 @@ FILES_perl-module-unicore += "${libdir}/perl/${PV}/unicore" # packages (actually the non modules packages and not created too) ALLOW_EMPTY_perl-modules = "1" PACKAGES_append = " perl-modules " -RRECOMMENDS_perl-modules = "${@d.getVar('PACKAGES', True).replace('${PN}-modules ', '').replace('${PN}-dbg ', '').replace('${PN}-misc ', '').replace('${PN}-dev ', '').replace('${PN}-pod ', '').replace('${PN}-doc ', '')}" python populate_packages_prepend () { libdir = d.expand('${libdir}/perl/${PV}')@@ -302,6 +307,7 @@ python populate_packages_prepend () { do_split_packages(d, libdir, 'auto/([^/]*)/.*', 'perl-module-%s', 'perl module %s', recursive=True, allow_dirs=False, match_path=True, prepend=False) do_split_packages(d, libdir, 'Module/([^\/]*).*', 'perl-module-%s', 'perl module %s', recursive=True, allow_dirs=False, match_path=True, prepend=False) do_split_packages(d, libdir, '(^(?!(CPAN\/|CPANPLUS\/|Module\/|unicore\/|auto\/)[^\/]).*)\.(pm|pl|e2x)', 'perl-module-%s', 'perl module %s', recursive=True, allow_dirs=False, match_path=True, prepend=False) + d.setVar("RRECOMMENDS_${PN}-modules", d.getVar('PACKAGES', True).replace('${PN}-modules ', '').replace('${PN}-dbg ', '').replace('${PN}-misc ', '').replace('${PN}-dev ', '').replace('${PN}-pod ', '').replace('${PN}-doc ', '')) } PACKAGES_DYNAMIC = "perl-module-*"_______________________________________________
Openembedded-commits mailing list
[email protected]
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-commits
Signature · 1 line
Martin 'JaMa' Jansa jabber: [email protected]
Quoted 25 lines · Martin Jansa
Quoted 4 lines
# 5.10.1 has
Module::Buildbuilt-in
PROVIDES += "libmodule-build-perl"(quoted diff) +0
-0@@ -243,7 +243,13 @@ perl_package_preprocess () {Review perl_package_preprocess () { · line 252
Quoted 10 lines
(quoted diff) +7
-1PACKAGES = "perl-dbg perl perl-misc perl-dev perl-pod perl-doc perl-lib \ perl-module-cpan perl-module-cpanplus perl-module-unicore" -FILES_${PN} = "${bindir}/perl ${bindir}/perl${PV}" +FILES_${PN} = "${bindir}/perl ${bindir}/perl${PV} \ + ${libdir}/perl/${PV}/Config.pm \ + ${libdir}/perl/${PV}/strict.pm \ + ${libdir}/perl/${PV}/warnings.pm \ + ${libdir}/perl/${PV}/warnings \ + ${libdir}/perl/${PV}/vars.pm \ + "I think this breaks at least automake, tiobench and libtimedate-perl
OE @ ~/openembedded-core $ git grep perl-module-strict
meta/recipes-devtools/automake/automake_1.12.3.bb: perl-module-strict \
meta/recipes-extended/perl/libtimedate-perl_1.20.bb:RDEPENDS_${PN} += "perl-module-carp perl-module-exporter perl-module-strict perl-module-time-local" OE @ ~/meta-openembedded $ git grep perl-module-strict
meta-oe/recipes-benchmark/tiobench/tiobench_0.3.3.bb: perl-module-strict \
OE @ ~/openembedded-core $ git grep perl-module-vars
meta/recipes-devtools/automake/automake_1.12.3.bb: perl-module-vars "
Quoted 2 lines
perl-module-strict and perl-module-vars are not created now, probably empty.
It does, the autobuilder also noticed this and I pushed in a fix this morning:
http://git.yoctoproject.org/cgit.cgi/poky/commit/?id=072a6d352f55bbe481b04db02aa6d9cde7d90057
Cheers,
Richard
Quoted 26 lines · Richard Purdie
Quoted 25 lines · Martin Jansa
Quoted 4 lines
# 5.10.1 has
Module::Buildbuilt-in
PROVIDES += "libmodule-build-perl"(quoted diff) +0
-0@@ -243,7 +243,13 @@ perl_package_preprocess () {Review perl_package_preprocess () { · line 252
Quoted 10 lines
(quoted diff) +7
-1PACKAGES = "perl-dbg perl perl-misc perl-dev perl-pod perl-doc perl-lib \ perl-module-cpan perl-module-cpanplus perl-module-unicore" -FILES_${PN} = "${bindir}/perl ${bindir}/perl${PV}" +FILES_${PN} = "${bindir}/perl ${bindir}/perl${PV} \ + ${libdir}/perl/${PV}/Config.pm \ + ${libdir}/perl/${PV}/strict.pm \ + ${libdir}/perl/${PV}/warnings.pm \ + ${libdir}/perl/${PV}/warnings \ + ${libdir}/perl/${PV}/vars.pm \ + "I think this breaks at least automake, tiobench and libtimedate-perl
OE @ ~/openembedded-core $ git grep perl-module-strict
meta/recipes-devtools/automake/automake_1.12.3.bb: perl-module-strict \
meta/recipes-extended/perl/libtimedate-perl_1.20.bb:RDEPENDS_${PN} += "perl-module-carp perl-module-exporter perl-module-strict perl-module-time-local" OE @ ~/meta-openembedded $ git grep perl-module-strict
meta-oe/recipes-benchmark/tiobench/tiobench_0.3.3.bb: perl-module-strict \
OE @ ~/openembedded-core $ git grep perl-module-vars
meta/recipes-devtools/automake/automake_1.12.3.bb: perl-module-vars "
Quoted 7 lines
Quoted 2 lines
perl-module-strict and perl-module-vars are not created now, probably empty.
It does, the autobuilder also noticed this and I pushed in a fix this morning:
http://git.yoctoproject.org/cgit.cgi/poky/commit/?id=072a6d352f55bbe481b04db02aa6d9cde7d90057
What about using something like world-image target? I'm using something like that to test that all recipes in my feed are not only buildable, but also able to install in do_rootfs. Only problem with this could be that more packages need to be excluded because some recipes are can be built together, but not installed in same images (packages with RCONFLICTS).
It should help find those issues on autobuilder.
Cheers,
Signature · 1 line
Martin 'JaMa' Jansa jabber: [email protected]