On Wed, 12 Aug 2009, Dave Mitchell wrote:
> On Wed, Aug 12, 2009 at 10:15:57PM +0200, Slaven Rezic wrote:
> > - Changed location of PerlIO/encoding.pm: in my perl-5.10.0
> > installation, this module is installed in
> > /usr/perl-5.10.0/lib/5.10.0/amd64-freebsd/PerlIO/encoding.pm,
> > whereas in perl-5.10.1 it is in
> > /usr/perl-5.10.0-3220-gf9961a0/lib/5.10.1/PerlIO/encoding.pm .
>
> Having just checked, this seems to be a general thing affecting all
> 5.10.1 ext/ files: the .so still goes under i686-linux-thread-multi/auto,
> while the .pm has moved from lib/5.10.0/i686-linux-thread-multi/ to
> lib/5.10.1/, eg
>
> -./lib/5.10.0/i686-linux-thread-multi/Data/Dumper.pm
> +./lib/5.10.1/Data/Dumper.pm
Yes, I can verify this. Good catch.
> Was this deliberate, or was it some breakage caused by the great ext/
> shuffle ???
It looks like a mistake to me. In installperl, it is finding the
File::Fine::name of ext/Data-Dumper/Dumper.pm, correctly deducing that
belongs in $archlib, but only setting $archpms{Dumper} = 1. Later on,
around line 762 or so
if ($dir =~ /^auto\// ||
($name =~ /^(.*)\.(?:pm|pod)$/ && $archpms{$1}) ||
($name =~ /^(.*)\.(?:h|lib)$/i && ($Is_W32 || $Is_NetWare)) ||
$name=~/^Config_(heavy|git)\.pl\z/
$name gets set to Data/Dumper.pm, and $1 is Data/Dumper, so
$archpms{Data/Dumper} does not exist, and the file gets mistakenly
installed into $privlib.
I think the fix is to fix the parsing of the File::Find::name component to
change Data-Dumper/Dumper.pm into Data/Dumper. I'll look more tomorrow
and try to propose something concrete.
--
Andy Dougherty doughera@lafayette.edu
Thread Previous
|
Thread Next