Patchwork Perl CPAN module install path bug in cpan_build.bbclass?

login
register
mail settings
Submitter Koen Kooi
Date Nov. 29, 2013, 1:47 p.m.
Message ID <ADD31F3B-8E62-411A-AE0C-8F3A616BB0FC@dominion.thruhere.net>
Download mbox | patch
Permalink /patch/62611/
State New
Headers show

Comments

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?
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

Patch

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