ibanix has asked for the wisdom of the Perl Monks concerning the following question:

Greetings fellow monks,

There really is a question at the end of this, just bear with me....

Tonight I've embarked on my the adventure of turning a CPAN module into a PPM (since the module I wanted didn't exist as a PPM. The module in question is Winamp-Control.

I began by reading this node, this tutorial, and even this document. Then I got to work.

I downloaded the module, nmake, gzip and tar; then I installed them to correct places in my $PATH.

Next, I ran the commands as requested:
D:\WINAMP~1>nmake Makefile.PL Microsoft (R) Program Maintenance Utility Version 1.50 Copyright (c) Microsoft Corp 1988-94. All rights reserved. 'Makefile.PL' is up-to-date D:\WINAMP~1>perl Makefile.pl Writing Makefile for Winamp::Control D:\WINAMP~1>nmake Microsoft (R) Program Maintenance Utility Version 1.50 Copyright (c) Microsoft Corp 1988-94. All rights reserved.

And installed it...
D:\WINAMP~1>nmake install Microsoft (R) Program Maintenance Utility Version 1.50 Copyright (c) Microsoft Corp 1988-94. All rights reserved. Skipping D:\Perl-5.6.0\site\lib\Winamp\Control.pm (unchanged) Skipping D:\Perl-5.6.0\site\lib\Winamp\winampctl.pl (unchanged) Writing D:\Perl-5.6.0\site\lib\auto\Winamp\Control\.packlist Appending installation info to D:\Perl-5.6.0\lib/perllocal.pod

And at this point, it works! (a test code with use Winamp::Control doesn't die...)
But I still want to make this a PPM module, so:
D:\WINAMP~1>tar cvf winamp-control.tar blib blib/ blib/arch/ blib/arch/auto/ blib/arch/auto/Winamp/ blib/arch/auto/Winamp/Control/ blib/arch/auto/Winamp/Control/.exists blib/lib/ blib/lib/auto/ blib/lib/auto/Winamp/ blib/lib/auto/Winamp/Control/ blib/lib/auto/Winamp/Control/.exists blib/lib/Winamp/ blib/lib/Winamp/.exists blib/lib/Winamp/Control.pm blib/lib/Winamp/winampctl.pl D:\WINAMP~1>gzip --best D:\WINAMP~1\WINAMP~1.TAR # 8.3 only, yuck gzip: D:\WINAMP~1\WINAMP~1.TAR compressed to D:\WINAMP~1\WINAMP~1.TAz D:\WINAMP~1>move WINAMP~1.TAz winamp-control.tar.gz D:\WINAMP~1>nmake ppd Microsoft (R) Program Maintenance Utility Version 1.50 Copyright (c) Microsoft Corp 1988-94. All rights reserved.

So at this point I should be all set. I've got the .ppd, and the .tar.gz. So:
D:\WINAMP~1>ppm install --location=. Winamp-Control Installing package 'Winamp-Control'... Error installing package 'Winamp-Control': Read a PPD for 'Winamp-Cont +rol', but it is not intended for this build of Perl (MSWin32-x86-multi-thread)
Crap! What went wrong?

Using vanilla ActiveState Perl 5.6.1.

Thanks all!
ibanix

$ echo '$0 & $0 &' > foo; chmod a+x foo; foo;

Replies are listed 'Best First'.
Re: Troubling building a PPM
by ibanix (Hermit) on Dec 12, 2002 at 09:27 UTC
    Thanks to the CB, PodMaster in particular, for showing me I'm an idiot:

    All I needed to do was edit the .ppd with:
    <CODEBASE HREF="winamp-control.tar.gz" />
    And now it works. Y'all can go home now. :-)

    Thanks again,
    ibanix

    $ echo '$0 & $0 &' > foo; chmod a+x foo; foo;
Re: Troubling building a PPM
by ibanix (Hermit) on Dec 12, 2002 at 09:18 UTC
    Update: Here's the contents of the .ppd:
    <SOFTPKG NAME="Winamp-Control" VERSION="0,02,0,0"> <TITLE>Winamp-Control</TITLE> <ABSTRACT>control winamp (over the network)</ABSTRACT> <AUTHOR>Murat UEnalan &lt;murat.uenalan@gmx.de&gt;</AUTHOR> <IMPLEMENTATION> <DEPENDENCY NAME="Class-Maker" VERSION="0,0,0,0" /> <DEPENDENCY NAME="LWP-Simple" VERSION="0,0,0,0" /> <DEPENDENCY NAME="URI" VERSION="0,0,0,0" /> <OS NAME="MSWin32" /> <ARCHITECTURE NAME="MSWin32-x86-multi-thread" /> <CODEBASE HREF="" /> </IMPLEMENTATION> </SOFTPKG>


    $ echo '$0 & $0 &' > foo; chmod a+x foo; foo;