Skip Menu |

This queue is for tickets about the podlators CPAN distribution.

Report information
The Basics
Id: 110024
Status: resolved
Priority: 0/
Queue: podlators

People
Owner: RRA [...] cpan.org
Requestors: ribasushi [...] leporine.io
Cc:
AdminCc:

Bug Information
Severity: Critical
Broken in: 4.01
Fixed in: 4.02



Subject: Does not install to the correct libpath on older perls
Your new Makefile.PL is missing an explicit INSTALLDIRS pragma (which is more or less mandatory for dual-life modules). You need something like this in your Makefile.PL: https://metacpan.org/source/RJBS/Carp-1.38/Makefile.PL#L21 Without this on e.g. 5.10 podlators installs into a directory which is *behind* relative to the directory containing the podlators bundled with 5.10. This essentially creates an "invisible installation", unusable by the actual runtime. Cheers!
Subject: Re: [rt.cpan.org #110024] Does not install to the correct libpath on older perls
Date: Wed, 02 Dec 2015 12:37:15 -0800
To: "Peter Rabbitson via RT" <bug-podlators [...] rt.cpan.org>
From: Russ Allbery <rra [...] cpan.org>
"Peter Rabbitson via RT" <bug-podlators@rt.cpan.org> writes: Show quoted text
> Your new Makefile.PL is missing an explicit INSTALLDIRS pragma (which is > more or less mandatory for dual-life modules). You need something like > this in your Makefile.PL: > https://metacpan.org/source/RJBS/Carp-1.38/Makefile.PL#L21
I don't understand. My Perl has the following search order: @INC: /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.20.2 /usr/local/share/perl/5.20.2 /usr/lib/x86_64-linux-gnu/perl5/5.20 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl/5.20 /usr/share/perl/5.20 /usr/local/lib/site_perl and the default is to install into /usr/local/lib/x86_64-linux-gnu/perl/5.20.2, which should do the right thing. Previously, Makefile.PL was configured to *overwrite* the module that came with Perl, which seemed entirely wrong. I think that's what the snippet you gave would do as well. There should be no need to overwrite files (which is a destructive operation) when one can just install into the local module path, correctly taking precedence over the path that Perl uses. What am I missing? -- #!/usr/bin/perl -- Russ Allbery, Just Another Perl Hacker $^=q;@!>~|{>krw>yn{u<$$<[~||<Juukn{=,<S~|}<Jwx}qn{<Yn{u<Qjltn{ > 0gFzD gD, 00Fz, 0,,( 0hF 0g)F/=, 0> "L$/GEIFewe{,$/ 0C$~> "@=,m,|,(e 0.), 01,pnn,y{ rw} >;,$0=q,$,,($_=$^)=~y,$/ C-~><@=\n\r,-~$:-u/ #y,d,s,(\$.),$1,gee,print
Subject: Re: [rt.cpan.org #110024] Does not install to the correct libpath on older perls
Date: Wed, 02 Dec 2015 12:44:56 -0800
To: "Russ Allbery via RT" <bug-podlators [...] rt.cpan.org>
From: Russ Allbery <rra [...] cpan.org>
"Russ Allbery via RT" <bug-podlators@rt.cpan.org> writes: Show quoted text
> and the default is to install into > /usr/local/lib/x86_64-linux-gnu/perl/5.20.2, which should do the right > thing.
Rather, /usr/local/share/perl/5.20.2 (misread the output and was looking at the packlist), but same effect. This is earlier in the module search path than the core module directories that come with Perl. -- #!/usr/bin/perl -- Russ Allbery, Just Another Perl Hacker $^=q;@!>~|{>krw>yn{u<$$<[~||<Juukn{=,<S~|}<Jwx}qn{<Yn{u<Qjltn{ > 0gFzD gD, 00Fz, 0,,( 0hF 0g)F/=, 0> "L$/GEIFewe{,$/ 0C$~> "@=,m,|,(e 0.), 01,pnn,y{ rw} >;,$0=q,$,,($_=$^)=~y,$/ C-~><@=\n\r,-~$:-u/ #y,d,s,(\$.),$1,gee,print
Subject: Re: [rt.cpan.org #110024] Does not install to the correct libpath on older perls
Date: Wed, 02 Dec 2015 21:46:04 +0100
To: bug-podlators [...] rt.cpan.org
From: Peter Rabbitson <ribasushi [...] cpan.org>
On 12/02/2015 09:37 PM, Russ Allbery via RT wrote: Show quoted text
> <URL: https://rt.cpan.org/Ticket/Display.html?id=110024 > > > "Peter Rabbitson via RT" <bug-podlators@rt.cpan.org> writes: >
>> Your new Makefile.PL is missing an explicit INSTALLDIRS pragma (which is >> more or less mandatory for dual-life modules). You need something like >> this in your Makefile.PL: >> https://metacpan.org/source/RJBS/Carp-1.38/Makefile.PL#L21
> I don't understand. My Perl has the following search order: > > @INC: > /etc/perl > /usr/local/lib/x86_64-linux-gnu/perl/5.20.2 > /usr/local/share/perl/5.20.2 > /usr/lib/x86_64-linux-gnu/perl5/5.20 > /usr/share/perl5 > /usr/lib/x86_64-linux-gnu/perl/5.20 > /usr/share/perl/5.20 > /usr/local/lib/site_perl > > > What am I missing?
You are missing that the above order was not always the case: https://metacpan.org/pod/distribution/perl/pod/perl5120delta.pod#INC-reorganization Hence why in the Carp snippet I linked there is an explicit $] check.
Subject: Re: [rt.cpan.org #110024] Does not install to the correct libpath on older perls
Date: Wed, 02 Dec 2015 13:28:04 -0800
To: "Peter Rabbitson via RT" <bug-podlators [...] rt.cpan.org>
From: Russ Allbery <rra [...] cpan.org>
"Peter Rabbitson via RT" <bug-podlators@rt.cpan.org> writes: Show quoted text
> You are missing that the above order was not always the case: > https://metacpan.org/pod/distribution/perl/pod/perl5120delta.pod#INC-reorganization
Show quoted text
> Hence why in the Carp snippet I linked there is an explicit $] check.
Aha! Which I then read backwards. Sorry to keep missing things in your bug reports. I'm catching up, honest! 4.02 coming tonight, once I finish with my day job. -- #!/usr/bin/perl -- Russ Allbery, Just Another Perl Hacker $^=q;@!>~|{>krw>yn{u<$$<[~||<Juukn{=,<S~|}<Jwx}qn{<Yn{u<Qjltn{ > 0gFzD gD, 00Fz, 0,,( 0hF 0g)F/=, 0> "L$/GEIFewe{,$/ 0C$~> "@=,m,|,(e 0.), 01,pnn,y{ rw} >;,$0=q,$,,($_=$^)=~y,$/ C-~><@=\n\r,-~$:-u/ #y,d,s,(\$.),$1,gee,print
Subject: Re: [rt.cpan.org #110024] Does not install to the correct libpath on older perls
Date: Wed, 02 Dec 2015 22:33:48 +0100
To: bug-podlators [...] rt.cpan.org
From: Peter Rabbitson <ribasushi [...] cpan.org>
On 12/02/2015 10:28 PM, Russ Allbery via RT wrote: Show quoted text
> Sorry to keep missing things in your bug reports.
It's no big deal. There is a lot of pesky little stuff like this hiding in the toolchain. And being bundled with Perl itself at any point in the past/present means a much higher "barrier of acceptability". This is why I have a complex smoking setup using "virgin perls", to catch things like that ;) Let's hope 4.02 will be uneventful.
Hopefully fixed in 4.02, just released.