package PPM::Repositories;

require Exporter;

use vars qw[ @ISA $VERSION @EXPORT ];
@ISA = qw( Exporter );


@EXPORT = qw(
	%Repositories
);

$VERSION = '0.10';

=for COMMENTING_OUT_CAUSE_THESE_YOU_SHOULD_ALREADY_HAVE
    ASPR => {
        location  => 'http://ppm-ia.ActiveState.com/PPM/ppmserver.plex?urn:/PPM/Server/SQL',
        Type      => 'PPMServer 3.0',
        Active    => 1,
        Notes     => 'This one you should already have',
        PerlV     => [],
        PerlO     => [],
    },
    ASPPM2R => {
        location  => 'http://ppm.ActiveState.com/cgibin/PPM/ppmserver.pl?urn:/PPMServer',
        Type      => '',
        Active    => 1,
        Notes     => '',
        PerlV     => [],
        PerlO     => [],
    },

=cut

%Repositories = (
    smueller => {
        location => 'http://steffen-mueller.net/modules/repository/',
        Type      => 'Webpage',
        Active    => 1,
        Notes     => 'Steffen Mueller puts his modules in a repository :)',
        PerlV     => [ 5.6 ],
        PerlO     => ['MSWin32'],
    },
    bribes => {
        location => 'http://www.bribes.org/perl/ppm/',
        Type      => 'Webpage',
        Active    => 1,
        Notes     => 'Digest::*, Net::Pcap, Win32::* ...',
        PerlV     => [ 5.6, 5.8 ],
        PerlO     => ['MSWin32'],
    },
    soulcage => {
        location => 'http://www.soulcage.net/ppds/',
        Type      => 'Webpage',
        Active    => 1,
        Notes     => 'Soulcage.Net MSWin32 Perl archives (Net::SSH::Perl and Net::SSH::W32Perl ...).',
        PerlV     => [ 5.6 ],
        PerlO     => ['MSWin32'],
    },
    soulcage58 => {
        location => 'http://www.soulcage.net/ppds.58/',
        Type      => 'Webpage',
        Active    => 1,
        Notes     => 'Soulcage.Net MSWin32 Perl archives (Net::SSH::Perl and Net::SSH::W32Perl ...).',
        PerlV     => [ 5.8 ],
        PerlO     => ['MSWin32'],
    },
    log4perl => {
        location => 'http://log4perl.sourceforge.net/ppm',
        Type      => 'Webpage',
        Active    => 1,
        Notes     => 'log4perl (pure perl)',
        PerlV     => [ ],
        PerlO     => ['perl'],
    },
    esoft  => {
        location  => 'ftp://ftp.esoftmatic.com/outgoing/DBI',
        Type      => 'Webpage',
        Active    => 1,
        Notes     => 'DBI, DBD-Oracle, DBD-ODBC for 5.8',
        PerlV     => [ 5.8 ],
        PerlO     => ['MSWin32'],
    },
    savage => {
        location  => 'http://savage.net.au/Perl-modules/ppm',
        Type      => 'Webpage',
        Active    => 1,
        Notes     => 'CGI::Explorer, DBIx::*, etc',
        PerlV     => [ 5.8 ],
        PerlO     => ['MSWin32'],
    },
    spurkis => {
        location  => 'http://www.epn.ml.org/~spurkis/Agent/repository',
        Type      => '??',
        Active    => 0,
        Notes     => 'GONE FOREVER',
        PerlV     => [],
        PerlO     => [],
    },
    crazy => {
        location  => 'http://crazyinsomniac.perlmonk.org/perl/ppm',
        Type      => 'Webpage',
        Active    => 1,
        Notes     => 'Maintainer takes requests',
        PerlV     => [ 5.6 ],
        PerlO     => ['MSWin32'],
    },
    crazy58 => {
        Name      => 'crazy',
        location  => 'http://crazyinsomniac.perlmonk.org/perl/ppm/5.8',
        Type      => 'Webpage',
        Active    => 1,
        Notes     => 'Maintainer takes requests',
        PerlV     => [ 5.8 ],
        PerlO     => ['MSWin32'],
    },
    theory => {
        location  => 'http://theoryx5.uwinnipeg.ca/cgi-bin/ppmserver?urn:/PPMServer',
        Type      => 'PPMServer',
        Active    => 1,
        Notes     => 'Get your mod_perl(s) here',
        PerlV     => [ 5.6 ],
        PerlO     => ['MSWin32'],
    },
    theoryS => {
        location  => 'http://theoryx5.uwinnipeg.ca/ppmpackages',
        Type      => 'Webpage',
        Active    => 1,
        Notes     => 'Get your mod_perl(s) here(SLOWER)',
        PerlV     => [ 5.6 ],
        PerlO     => ['MSWin32'],
    },
    theory58 => {
        location  => 'http://theoryx5.uwinnipeg.ca/cgi-bin/ppmserver?urn:/PPMServer58',
        Type      => 'PPMServer',
        Active    => 1,
        Notes     => 'Get your mod_perl(s) here',
        PerlV     => [ 5.8 ],
        PerlO     => ['MSWin32'],
    },
    theory58S => {
        location  => 'http://theoryx5.uwinnipeg.ca/ppms',
        Type      => 'Webpage',
        Active    => 1,
        Notes     => 'Get your mod_perl(s) here(SLOWER)',
        PerlV     => [ 5.8 ],
        PerlO     => ['MSWin32'],
    },
    devhelp => {
        location  => 'http://ppd.develop-help.com/ppd',
        Type      => 'Webpage',
        Active    => 1,
        Notes     => 'Get your Apache::Session here',
        PerlV     => [ 5.6 ],
        PerlO     => ['MSWin32'],
    },
    dada => {
        location  => 'http://dada.perl.it/PPM',
        Type      => 'Webpage',
        Active    => 1,
        Notes     => 'Get your Win32::API here',
        PerlV     => [ 5.5, 5.6 ],
        PerlO     => ['MSWin32'],
    },
    rto => {
        location  => 'http://rto.dk/packages',
        Type      => 'Webpage',
        Active    => 0,
        Notes     => 'GONE (forget what was there)',
        PerlV     => [ 5.6 ],
        PerlO     => [],
    },
    jenda => {
        location  => 'http://jenda.krynicky.cz/perl',
        Type      => 'Webpage or PPMServer?',
        Active    => 1,
        Notes     => 'AWSOME (tons of Win32 related stuff by him)',
        PerlV     => [ 5.6, 5.8 ],
        PerlO     => ['MSWin32'],
    },
    xray => {
        location  => 'http://www.xray.mpe.mpg.de/~ach/ptk/ppm',
        Type      => '??',
        Active    => 0,
        Notes     => 'long gone',
        PerlV     => [ 5.6 ],
        PerlO     => [],
    },
    openi => {
        location  => 'http://openinteract.sourceforge.net/ppmpackages',
        Type      => 'Webpage',
        Active    => 1,
        Notes     => 'Template Toolkit!!!',
        PerlV     => [ 5.6, 5.8 ],
        PerlO     => ['MSWin32'],
    },
    
    roth => {
        location  => 'http://www.roth.net/perl/packages',
        Type      => 'Webpage',
        Active    => 1,
        Notes     => 'More Win32:: stuff',
        PerlV     => [ 5.5, 5.6, 5.8],
        PerlO     => ['MSWin32'],
    },

    sablot => {
        location  => 'http://ppm.gingerall.cz',
        Type      => 'Webpage',
        Active    => 1,
        Notes     => 'Get your XML::Sablotron here',
        PerlV     => [ 5.5, 5.6, 5.8 ],
        PerlO     => ['MSWin32'],
    },
    perlxml => {
        location  => 'http://www.perlxml.net/PPM',
        Type      => 'Webpage',
        Active    => 1,
        Notes     => 'Get your libxml-perl here. Please note that this is known to disappear for a few days and come back.',
        PerlV     => [ 5.6, 5.8 ],
        PerlO     => ['MSWin32'],
    },
    datetime => {
        location  => 'http://datetime.perl.org/download',
        Type      => 'Webpage',
        Active    => 1,
        Notes     => 'Get your DateTime modules here',
        PerlV     => [ 5.6, 5.8 ],
        PerlO     => ['MSWin32'],
    },
    gtk => {
        location  => 'http://gtk2-perl.sourceforge.net/win32/ppm',
        Type      => 'Webpage',
        Active    => 1,
        Notes     => 'Get your Gtk2 modules here',
        PerlV     => [ 5.8 ],
        PerlO     => ['MSWin32'],
    },
);



1;
__END__

=head1 NAME

PPM::Repositories - a list of all I<known> ppm package repositories

=head1 SYNOPSIS

    use PPM::Repositories;
                                                    #
    # Print out all *Active* repositories for perl 5.8.x
                                                    #
    for my $rep ( keys %Repositories ) {
        next unless $Repositories{$rep}->{Active};
        next unless grep { $_ == 5.8 } @{ $Repositories{$rep}->{PerlV} };
        print $rep,$/,
            $Repositories{$rep}->{location},$/,
            $Repositories{$rep}->{Notes},$/,
            $/;
# uncomment the following lines to automatically add them to your config if you got PPM 2.x
#        use PPM;
#        PPM::AddRepository(
#            "repository" => $rep,
#            "location"   => $Repositories{$rep}->{location},
#            "save" => 'yes');
#
# uncomment the following lines to automatically add them to your config if you got PPM 3.x
#        use PPM::UI;
#        my $user = '';
#        my $pass = '';
#        my $ok = PPM::UI::repository_add($rep, $Repositories{$rep}->{location}, $user, $pass);

    }

=head1 DESCRIPTION

This is a list of all known ppm repositores (barring the activestate ones).
Currently, most of them are Win32 specific,
mainly because the *nix folks have CPAN/CPANPLUS
as well as free compilers.

An example entry in C<%Repositories> looks like:

    datetime => {
        location  => 'http://datetime.perl.org/download',
        Type      => 'Webpage',
        Active    => 1,
        Notes     => 'Get your DateTime modules here',
        PerlV     => [ 5.6, 5.8 ],
        PerlO     => ['MSWin32'],
    },

The meaning of the key/value pairs should be obvious.

Active is either 1, or 0, and it indicates whether or not
that particular repository existed (you could reach it via the internet),
and contained ppm packages, when this module was released.

PerlO is the value of $^O.
The value 'perl' is used to indicate pure-perl (meaning all OS').

    $^O values for various operating systems:
        http://alma.ch/perl/perloses.htm
        http://crazyinsomniac.perlmonk.org/perl/misc/perloses.htm


See the L<SYNOPSIS|/"SYNOPSIS"> for example usage.
See L<PPM|PPM> for help with ppm.

=head2 EXPORT

C<%Repositories> is exported by default.


=head2 If you wanna run your own repository

Simply read my repository README
E<lt>http://crazyinsomniac.perlmonk.org/perl/ppm/README.htmlE<gt>
or these tutorials:

    113448 ! perltutorial ! HowTo build and distribute a PPMed module for Win32
        http://perlmonks.org/index.pl?node_id=113448
        http://perlmonks.thepen.com/113448.html

    How2 - create a PPM distribution 
        http://jenda.krynicky.cz/perl/PPM.html


=head1 BUGS/ADDITIONS/ETC

Please use
https://rt.cpan.org/NoAuth/Bugs.html?Dist=PPM-Repositories
to report I<bugs>/additions/etc
or send mail to <bug-PPM-Repositories#rt.cpan.org>.

=head1 AUTHOR

D. H. (PodMaster)

=head1 LICENSE

Copyright (c) 2003,2004,2005 by D.H. (PodMaster). All rights reserved.

This module is free software; you can redistribute it and/or modify it
under the same terms as Perl itself. If you don't know what this means,
visit http://perl.com/ or http://cpan.org/.

=head1 SEE ALSO

L<PPM>, L<PPM::Make>, L<CPANPLUS>, L<CPAN>.

=cut

This is not quite a repository
#http://softserv.murdoch.edu.au/pub/mswin/Perl/cpans/DBD-Oracle/
#http://softserv.murdoch.edu.au/pub/mswin/Perl/cpans/DBI/
