On Tue, 8 Nov 2005, Brian H. Oak wrote:

Hi all,

I have often used make_ppm.bat in the past to create easily portable
PPDs of modules available from CPAN.  Since about two months ago,
however, make_ppm.bat hasn't worked at all.  Please help diagnose and
fix this problem, since it is holding me up on several projects.

I have included below typical CLI results when I try to run
make_ppm.bat, even when I've downloaded the module in advance.  I have
also included a listing of the directory about which it seems to be
complaining, although the complaint is rather cryptic.


C:\.cpan\build>make_ppm --version
C:\Perl\bin\make_ppm version 0.75
(Getopt::Long::GetOptions version 2.34; Perl version 5.8.7)

C:\.cpan\build>make_ppm -f -b
C:\.cpan\build\Win32-API-Prototype.tar.gz Win32::API::Prototype

The "-b" option is used for the binary location
in the ppd file to specify where the associated
archive file is located, not the source location.

Using Archive::Tar ....
Using Compress::Zlib ....
Using nmake ....
Using C:\Perl\bin\perl.exe ....
No results for "Win32::API::Prototype" were found at
C:/Perl/site/lib/PPM/Make/Util.pm line 659.

What this means is that it couldn't find the
distribution corresponding to Win32::API::Prototype
from a soap call to a remote server, so it will
now try the local CPAN indices ...

CPAN: Storable loaded ok
Going to read \.cpan\Metadata
 Database was generated on Mon, 07 Nov 2005 22:02:59 GMT
Cannot copy \.cpan\sources\authors\id\:  at
C:/Perl/site/lib/PPM/Make.pm line 241.

and this indicates it couldn't find the distribution
name in the CPAN indices, either (admittedly the
error message is unintuitive). The reason for this
is that the distribution just contains a blib/ subdirectory,
and PAUSE ignores contents of a blib/ subdirectory when
indexing, so nothing in the distribution is indexed.
One thus wouldn't find it within the CPAN.pm shell.

Do you have problems using this on modules that are
in the CPAN indices (eg, Class::Classless)?

At the moment PPM::Make relies on information that's
in the CPAN/PAUSE indices, which is why it fails in
this case (as it can't map module to distribution name).
You can use it to install a distribution directly, as in
  make_ppm A/AB/ABC/def-0.123.tar.gz
which will make the distribution def-0.123.tar.gz
in the CPAN author directory ABC. However, this
fails for D/DA/DAVEROTH/Win32-API-Prototype.tar.gz,
as the distribution isn't a standard CPAN distribution
(eg, doesn't contain a Makefile.PL or Build.PL).

--
best regards,
randy kobes
_______________________________________________
ActivePerl mailing list
[email protected]
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs

Reply via email to