[OE-core] Perl CPAN module install path bug in cpan_build.bbclass?

Koen Kooi koen at dominion.thruhere.net
Fri Nov 29 14:54:45 UTC 2013


Op 29 nov. 2013, om 15:40 heeft Richard Purdie <richard.purdie at linuxfoundation.org> het volgende geschreven:

> On Fri, 2013-11-29 at 14:47 +0100, Koen Kooi wrote:
>> Op 29 nov. 2013, om 09:45 heeft Koen Kooi <koen at dominion.thruhere.net> het volgende geschreven:
>> 
>>> Hi,
>>> 
>>> I've been working on perl modules and I noticed some of them don't work properly and nearly all of the non-working ones are Build.PL based and use cpan_build.bbclass. 
>>> 
>>> A working module looks like this:
>>> 	[koen at rrmbp v2013.06]$ dpkg-deb -c deploy/eglibc/ipk/armv7ahf-vfp-neon/perl-module-test-differences_0.61-r0.1_armv7ahf-vfp-neon.ipk
>>> 	-r--r--r-- root/root     19567 2013-11-28 15:20 ./usr/lib/perl/vendor_perl/5.14.3/Test/Differences.pm
>>> 
>>> A non-working one looks like this:
>>> 	[koen at rrmbp v2013.06]$ dpkg-deb -c deploy/eglibc/ipk/armv7ahf-vfp-neon/perl-module-build-withxspp_0.14-r0.0_armv7ahf-vfp-neon.ipk
>>> 	-rw-r--r-- root/root       361 2013-11-28 16:50 ./usr/lib/perl/auto/Module/Build/WithXSpp/.packlist
>>> 	-r--r--r-- root/root     22557 2013-11-28 16:50 ./usr/share/perl/Module/Build/WithXSpp.pm
>>> 
>>> Looking through the git logs it looks like Nitin tried to fix it, but stopped halfway and only did cpan.bbclass properly:
>>> 
>>> 	https://github.com/openembedded/oe-core/commit/83796edd29561f02b6f7b036351711f8def77a4f
>>> 
>>> Since I don't know anything about perl, should cpan_build.bbclass be changes to install into /usr/lib/perl/vendor_perl/5.14.3 as well or are Build.PL based modules 'special' and need a lot more work? This is what I had in mind:
>>> 
>>> -        --install_path lib="${datadir}/perl" \
>>> +        --install_path lib="${libdir}/perl/vendor_perl/${@get_perl_version(d)}" \
>> 
>> Thinking "less is more", this seems to work:
>> 
>> diff --git a/meta/classes/cpan_build.bbclass b/meta/classes/cpan_build.bbclass
>> index eaba40a..5b0ad61 100644
>> --- a/meta/classes/cpan_build.bbclass
>> +++ b/meta/classes/cpan_build.bbclass
>> @@ -32,7 +32,6 @@ cpan_build_do_configure () {
>> 
>>        perl Build.PL --installdirs vendor \
>>                                --destdir ${D} \
>> -                               --install_path lib="${datadir}/perl" \
>>                                --install_path arch="${libdir}/perl" \
>>                                --install_path script=${bindir} \
>>                                --install_path bin=${bindir} \
>> 
>> [koen at rrmbp v2013.06]$ dpkg-deb -c deploy/eglibc/ipk/armv7ahf-vfp-neon/perl-module-build-withxspp_0.14-r*.ipk
>> -rw-r--r-- root/root       378 2013-11-29 14:44 ./usr/lib/perl/auto/Module/Build/WithXSpp/.packlist
>> -r--r--r-- root/root     22557 2013-11-28 17:22 ./usr/lib/perl/vendor_perl/5.14.3/Module/Build/WithXSpp.pm
>> 
>> opinions, flames, etc?
> 
> What does buildhistory say to that change on a larger set of perl
> modules?

No changes, nothing in oe-core or meta-oe/meta-perl is using cpan_build.bbclass (no Build.PL style packages present), only cpan.bbclass (Makefile.PL style packages) is being used. Tim and I seem to be the first ones publicly using it in recipes.

> I have to admit I'm out of touch with perl packaging but this
> would seem ok, if the default setting is sane. Does it affect native and
> target or just target?

Looking at the class it will affect both. I'll add some more modules and runtime test things to see if it works as intended and if we need even more fixes to make Build.PL modules and CPAN on target work.

regards,

Koen


More information about the Openembedded-core mailing list