Perl CPAN module install path bug in cpan_build.bbclass?

Submitted by Koen Kooi on Nov. 29, 2013, 1:47 p.m.

Details

Message ID ADD31F3B-8E62-411A-AE0C-8F3A616BB0FC@dominion.thruhere.net
State New
Headers show

Commit Message

Koen Kooi Nov. 29, 2013, 1:47 p.m.
Op 29 nov. 2013, om 09:45 heeft Koen Kooi <koen@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@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@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:


[koen@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?

Patch hide | download patch | download mbox

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} \

Comments

Richard Purdie Nov. 29, 2013, 2:40 p.m.
On Fri, 2013-11-29 at 14:47 +0100, Koen Kooi wrote:
> Op 29 nov. 2013, om 09:45 heeft Koen Kooi <koen@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@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@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@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? 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?

Cheers,

Richard
Koen Kooi Nov. 29, 2013, 2:54 p.m.
Op 29 nov. 2013, om 15:40 heeft Richard Purdie <richard.purdie@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@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@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@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@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