----- Original Message ----- 
From: "Sisyphus"

There's a section of code inside inc/Module/Install.pm's load_extensions
subroutine that goes thusly:

my $new = eval { require $file; $pkg->can('new') };
      unless ( $new ) {
      warn $@ if $@;
      next;
}

That's the code that produces the first part of the error message. ie it's
$@ that contains:

" Undefined subroutine &ActivePerl::Config::find_prog called at
 C:/Perl/site/lib/ActivePerl/Config.pm line 70.
 Compilation failed in require at C:/Perl/lib/ExtUtils/MakeMaker.pm line 7.
 BEGIN failed--compilation aborted at C:/Perl/lib/ExtUtils/MakeMaker.pm
 line 7.
 Compilation failed in require at inc/Module/Install/Can.pm -
 /usr/local/lib/perl5/site_perl/5.8.7/Module/Install/Can.pm line 8.
 BEGIN failed--compilation aborted at inc/Module/Install/Can.pm -
 /usr/local/lib/perl5/site_perl/5.8.7/Module/Install/Can.pm line 8.
 Compilation failed in require at
 /home/autrijus/work/par/inc/Module/Install.pm -
 /usr/local/lib/perl5/site_perl/5.8.7/Module/Install.pm line 180."


Here's as far as I got with AS perl build 817 (perl 5.8.8):

First up, before you can build PAR on AS perl you'll need to install
Module::ScanDeps and PAR::Dist. There's also an option to install
Parse::Binary and Win32::Exe, so we might as well install them too.

For each of those 4 modules, if you build them from source, you'll get that
same error that Glen reported in his initial post in this thread.

The fix in all 4 modules is the same:
In inc/Module/Install/Makefile.pm and inc/Module/Install/Can.pm, find the
line 'use ExtUtils::MakeMaker ();' and remove that line (or comment it out).
Those 4 modules will then build fine.

Since it works for those 4 modules, one would be hopeful that the same fix
would work for PAR. Unfortunately, however, having installed the 2
dependencies (and the 2 optionals), and having made exactly the same change
to PAR's inc/Module/Install/Makefile.pm and inc/Module/Install/Can.pm,
running 'perl Makefile.PL' now produces:

*** Module::AutoInstall version 1.01
*** Checking for dependencies...
[Core Features]
- File::Temp       ...loaded. (0.16 >= 0.05)
- Compress::Zlib   ...loaded. (1.41 >= 1.16)
- Archive::Zip     ...loaded. (1.16 >= 1)
- Module::ScanDeps ...loaded. (0.57 >= 0.56)
- PAR::Dist        ...loaded. (0.08 >= 0.08)
[Windows --icon and --info support]
- Parse::Binary    ...loaded. (0.09 >= 0.04)
- Win32::Exe       ...loaded. (0.08 >= 0.04)
*** Module::AutoInstall configuration finished.
The 'makemaker_args' method does not exist in the 'inc' path!
Please remove the 'inc' directory and run makefile.pl again to load it.

By the time I got to that stage I was too tired (and relaxed :-) to take it
any further. I'll try to get further tomorrow - unless someone else can fix
it in the meantime. (Faik, there could be no future in the path I embarked
upon - maybe we need to leave the 2 pm files in their original state and
just address the issue of the global $Verbose - which is the error that
actually terminates the build process, afaict.) Needless to say, you won't
get anywhere if you "remove the 'inc' directory and run makefile.pl again".

Cheers,
Rob


Reply via email to