Re: [Module::Build] win32 install problem
Status: Beta
Brought to you by:
kwilliams
From: Ben L. <bla...@gm...> - 2006-05-16 22:46:16
|
The supplied patch gets me to perl Build test, which fails at this point: t\runthrough......ok 13/28Use of uninitialized value in pattern match (m//)= at c :/work/Perl/lib/File/Spec/Win32.pm line 72. Use of uninitialized value in pattern match (m//) at c:/work/Perl/lib/File/= Spec/ Win32.pm line 72. Use of uninitialized value in pattern match (m//) at c:/work/Perl/lib/File/= Spec/ Win32.pm line 140. t\runthrough......ok 19/28 t\runthrough......NOK 20# Failed test in t\runthrough.t at line 151. # got: 'Can't locate object method "create_archive" via package "A= rchiv e::Tar" (perhaps you forgot to load "Archive::Tar"?) at C:\work\mbtest\Modu= le-Bu ild-0.28\blib\lib/Module/Build/Base.pm line 3436. # ' # expected: '' t\runthrough......ok 28/28# Looks like you failed 1 test of 28. Archive::Tar isn't there because it's version .23 instead of 1.08 as recommended/required. I tried installing that, but I managed to get an entirely new and unrelated error, unrelated to this problem or this mailing list (not my week!). I made sure to include those pattern match errors because they get spewn out like carrots from a salad shooter throughout all steps of the install and test process. It's midnight for me and I'll try and bend Archive::Tar to my will tomorrow and I'll make another run then. For the record, I get this message while installing: * Archive::Tar (0.23) is installed, but we prefer to have 1.08 I'm all for the softening of computer language to make it more user friendly, but required is required and prefer is prefer :) cheers, and thanks for all the help on this, ben On 5/16/06, Ken Williams <ke...@ma...> wrote: > > On May 16, 2006, at 7:40 AM, demerphq wrote: > > > Im pretty sure that the lines > > > > my ($name, $path) =3D File::Basename::fileparse($pods->{$pod}, > > qr{\.(?:pm|plx?|pod)$})= ; > > my @dirs =3D File::Spec->splitdir( File::Spec->canonpath( $path ) ); > > > > are wrong. FS->splitdir() splits a directory specification NOT a path. > > If you use splitdir on a path that includes a volume specification > > then obviously it wont work out (actually it will return the volume as > > tho it was a directory) > > > > I think you need something like: > > > > my $spec=3DFile::Spec->canonpath( $pods->{$pod} ); > > my ($vol,$path,$file)=3D File::Spec->splitpath($spec); > > my ($name) =3D File::Basename::fileparse($file,qr{\.(?:pm|plx?|pod)$})= ; > > my @dirs =3D File::Spec->splitdir( $path ); > > pop( @dirs ) if $dirs[-1] eq File::Spec->curdir; > > Okay, does this patch rectify the situation? > > -Ken > > =3D=3D=3D lib/Module/Build/Base.pm > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > --- lib/Module/Build/Base.pm (revision 1905) > +++ lib/Module/Build/Base.pm (local) > @@ -2523,7 +2523,8 @@ > my ($name, $path) =3D File::Basename::fileparse($pods->{$pod}, > qr{\.(?:pm|plx?|pod)$})= ; > - my @dirs =3D File::Spec->splitdir( File::Spec->canonpath( $path ) ); > + my ($vol, $dirs) =3D File::Spec->splitpath($path, 1); > + my @dirs =3D File::Spec->splitdir( File::Spec->canonpath( $dirs ) ); > pop( @dirs ) if $dirs[-1] eq File::Spec->curdir; > my $fulldir =3D File::Spec->catfile($htmldir, @rootdirs, @dirs); > > |