Skip to contentSkip to conversation

Robert Yang : perl: fix dependecies

oe-commits Martin Jansa 2 participants 3 messages Oct 22, 2012 1 message not in the archive

lore
Share & tools
lore

A message that is not in the archive (sent off-list or not yet received): 20121019163541.436A0103AB@opal

#1 lore raw
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=d50be1876f7a41822ef7e73207fdf8cccd39e400
Author: Robert Yang <[email protected]>
Date:   Fri Oct 19 19:22:04 2012 +0800

perl: 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_packages since:

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_packages has 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.

---

 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
index d9206d8..d566a79 100644
@@ -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 -1
 PACKAGES = "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 -1
 FILES_${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]
#2 lore raw
Quoted 25 lines · Martin Jansa
Quoted 4 lines

# 5.10.1 has Module::Build built-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 -1
 PACKAGES = "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

#3 lore raw
Quoted 26 lines · Richard Purdie
Quoted 25 lines · Martin Jansa
Quoted 4 lines

# 5.10.1 has Module::Build built-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 -1
 PACKAGES = "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]