summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/CPAN.pm186
-rw-r--r--lib/CPAN/FirstTime.pm11
-rw-r--r--lib/CPAN/HandleConfig.pm43
-rw-r--r--lib/CPAN/SIGNATURE24
4 files changed, 188 insertions, 76 deletions
diff --git a/lib/CPAN.pm b/lib/CPAN.pm
index 8f89b9b80f..797ecf3bcb 100644
--- a/lib/CPAN.pm
+++ b/lib/CPAN.pm
@@ -1,5 +1,5 @@
package CPAN;
-$VERSION = '1.83_58';
+$VERSION = '1.83_59';
$VERSION = eval $VERSION;
use strict;
@@ -33,7 +33,8 @@ END { $CPAN::End++; &cleanup; }
$CPAN::Signal ||= 0;
$CPAN::Frontend ||= "CPAN::Shell";
-$CPAN::Defaultsite ||= "ftp://ftp.perl.org/pub/CPAN";
+@CPAN::Defaultsites = ("http://www.perl.org/CPAN/","ftp://ftp.perl.org/pub/CPAN/")
+ unless @CPAN::Defaultsites;
# $CPAN::iCwd (i for initial) is going to be initialized during find_perl
$CPAN::Perl ||= CPAN::find_perl();
$CPAN::Defaultdocs ||= "http://search.cpan.org/perldoc?";
@@ -45,7 +46,7 @@ use strict;
use vars qw($VERSION @EXPORT $AUTOLOAD $DEBUG $META $HAS_USABLE $term
$Signal $Suppress_readline $Frontend
- $Defaultsite $Have_warned $Defaultdocs $Defaultrecent
+ @Defaultsites $Have_warned $Defaultdocs $Defaultrecent
$Be_Silent );
@CPAN::ISA = qw(CPAN::Debug Exporter);
@@ -738,6 +739,12 @@ sub cwd {Cwd::cwd();}
#-> sub CPAN::getcwd ;
sub getcwd {Cwd::getcwd();}
+#-> sub CPAN::fastcwd ;
+sub fastcwd {Cwd::fastcwd();}
+
+#-> sub CPAN::backtickcwd ;
+sub backtickcwd {my $cwd = `cwd`; chomp $cwd; $cwd}
+
#-> sub CPAN::find_perl ;
sub find_perl {
my($perl) = File::Spec->file_name_is_absolute($^X) ? $^X : "";
@@ -1201,8 +1208,9 @@ sub a {
$CPAN::Frontend->myprint($self->format_result('Author',@arg));
}
-sub handle_ls {
- my($self,$pragmas,$s) = @_;
+#-> sub CPAN::Shell::globls ;
+sub globls {
+ my($self,$s,$pragmas) = @_;
# ls is really very different, but we had it once as an ordinary
# command in the Shell (upto rev. 321) and we could not handle
# force well then
@@ -1237,6 +1245,7 @@ sub handle_ls {
}
my $silent = @accept>1;
my $last_alpha = "";
+ my @results;
for my $a (@accept){
my($author,$pathglob);
if ($a =~ m|(.*?)/(.*)|) {
@@ -1266,7 +1275,9 @@ sub handle_ls {
$author->$pragma();
}
}
- $author->ls($pathglob,$silent); # silent if more than one author
+ push @results, $author->ls($pathglob,$silent); # silent if
+ # more than one
+ # author
for my $pragma (@$pragmas) {
my $meth = "un$pragma";
if ($author->can($meth)) {
@@ -1274,6 +1285,7 @@ sub handle_ls {
}
}
}
+ @results;
}
#-> sub CPAN::Shell::local_bundles ;
@@ -2121,7 +2133,7 @@ sub rematein {
sleep 2;
next;
} elsif ($meth eq "ls") {
- $self->handle_ls(\@pragma,$s);
+ $self->globls($s,\@pragma);
next STHING;
} else {
CPAN->debug("calling expandany [$s]") if $CPAN::DEBUG;
@@ -2481,7 +2493,8 @@ sub localize {
my(@reordered,$last);
$CPAN::Config->{urllist} ||= [];
unless (ref $CPAN::Config->{urllist} eq 'ARRAY') {
- warn "Malformed urllist; ignoring. Configuration file corrupt?\n";
+ $CPAN::Frontend->mywarn("Malformed urllist; ignoring. Configuration file corrupt?\n");
+ $CPAN::Config->{urllist} = [];
}
$last = $#{$CPAN::Config->{urllist}};
if ($force & 2) { # local cpans probably out of date, don't reorder
@@ -2495,9 +2508,9 @@ sub localize {
or
defined($Thesite)
and
- ($b == $Thesite)
+ ($CPAN::Config->{urllist}[$b] eq $Thesite)
<=>
- ($a == $Thesite)
+ ($CPAN::Config->{urllist}[$a] eq $Thesite)
} 0..$last;
}
my(@levels);
@@ -2508,13 +2521,21 @@ sub localize {
}
@levels = qw/easy/ if $^O eq 'MacOS';
my($levelno);
+ local $ENV{FTP_PASSIVE} = $CPAN::Config->{ftp_passive} if exists $CPAN::Config->{ftp_passive};
for $levelno (0..$#levels) {
my $level = $levels[$levelno];
my $method = "host$level";
my @host_seq = $level eq "easy" ?
@reordered : 0..$last; # reordered has CDROM up front
- @host_seq = (0) unless @host_seq;
- my $ret = $self->$method(\@host_seq,$file,$aslocal);
+ my @urllist = map { $CPAN::Config->{urllist}[$_] } @host_seq;
+ for my $u (@urllist) {
+ $u .= "/" unless substr($u,-1) eq "/";
+ }
+ for my $u (@CPAN::Defaultsites) {
+ push @urllist, $u unless grep { $_ eq $u } @urllist;
+ }
+ $self->debug("synth. urllist[@urllist]") if $CPAN::DEBUG;
+ my $ret = $self->$method(\@urllist,$file,$aslocal);
if ($ret) {
$Themethod = $level;
my $now = time;
@@ -2547,13 +2568,12 @@ sub localize {
return;
}
+# package CPAN::FTP;
sub hosteasy {
my($self,$host_seq,$file,$aslocal) = @_;
- my($i);
- HOSTEASY: for $i (@$host_seq) {
- my $url = $CPAN::Config->{urllist}[$i] || $CPAN::Defaultsite;
- $url .= "/" unless substr($url,-1) eq "/";
- $url .= $file;
+ my($ro_url);
+ HOSTEASY: for $ro_url (@$host_seq) {
+ my $url .= "$ro_url$file";
$self->debug("localizing perlish[$url]") if $CPAN::DEBUG;
if ($url =~ /^file:/) {
my $l;
@@ -2574,7 +2594,7 @@ sub hosteasy {
$self->debug("without URI::URL we try local file $l") if $CPAN::DEBUG;
}
if ( -f $l && -r _) {
- $Thesite = $i;
+ $Thesite = $ro_url;
return $l;
}
# Maybe mirror has compressed it?
@@ -2582,7 +2602,7 @@ sub hosteasy {
$self->debug("found compressed $l.gz") if $CPAN::DEBUG;
CPAN::Tarzip->new("$l.gz")->gunzip($aslocal);
if ( -f $aslocal) {
- $Thesite = $i;
+ $Thesite = $ro_url;
return $aslocal;
}
}
@@ -2600,7 +2620,7 @@ sub hosteasy {
}
my $res = $Ua->mirror($url, $aslocal);
if ($res->is_success) {
- $Thesite = $i;
+ $Thesite = $ro_url;
my $now = time;
utime $now, $now, $aslocal; # download time is more
# important than upload time
@@ -2614,7 +2634,7 @@ sub hosteasy {
if ($res->is_success &&
CPAN::Tarzip->new("$aslocal.gz")->gunzip($aslocal)
) {
- $Thesite = $i;
+ $Thesite = $ro_url;
return $aslocal;
}
} else {
@@ -2642,7 +2662,7 @@ sub hosteasy {
$self->debug("getfile[$getfile]dir[$dir]host[$host]" .
"aslocal[$aslocal]") if $CPAN::DEBUG;
if (CPAN::FTP->ftp_get($host,$dir,$getfile,$aslocal)) {
- $Thesite = $i;
+ $Thesite = $ro_url;
return $aslocal;
}
if ($aslocal !~ /\.gz(?!\n)\Z/) {
@@ -2656,7 +2676,7 @@ sub hosteasy {
$gz) &&
CPAN::Tarzip->new($gz)->gunzip($aslocal)
){
- $Thesite = $i;
+ $Thesite = $ro_url;
return $aslocal;
}
}
@@ -2667,6 +2687,7 @@ sub hosteasy {
}
}
+# package CPAN::FTP;
sub hosthard {
my($self,$host_seq,$file,$aslocal) = @_;
@@ -2674,15 +2695,13 @@ sub hosthard {
# failed otherwise) Maybe they are behind a firewall, but they
# gave us a socksified (or other) ftp program...
- my($i);
+ my($ro_url);
my($devnull) = $CPAN::Config->{devnull} || "";
# < /dev/null ";
my($aslocal_dir) = File::Basename::dirname($aslocal);
File::Path::mkpath($aslocal_dir);
- HOSTHARD: for $i (@$host_seq) {
- my $url = $CPAN::Config->{urllist}[$i] || $CPAN::Defaultsite;
- $url .= "/" unless substr($url,-1) eq "/";
- $url .= $file;
+ HOSTHARD: for $ro_url (@$host_seq) {
+ my $url = "$ro_url$file";
my($proto,$host,$dir,$getfile);
# Courtesy Mark Conty mark_conty@cargill.com change from
@@ -2755,7 +2774,7 @@ Trying with "$funkyftp$src_switch" to get
CPAN::Tarzip->new($asl_gz)->gzip($asl_ungz);
}
}
- $Thesite = $i;
+ $Thesite = $ro_url;
return $aslocal;
} elsif ($url !~ /\.gz(?!\n)\Z/) {
unlink $asl_ungz if
@@ -2782,7 +2801,7 @@ Trying with "$funkyftp$src_switch" to get
# somebody uncompressed file for us?
rename $asl_ungz, $aslocal;
}
- $Thesite = $i;
+ $Thesite = $ro_url;
return $aslocal;
} else {
unlink $asl_gz if -f $asl_gz;
@@ -2802,21 +2821,35 @@ returned status $estatus (wstat $wstatus)$size
} # host
}
+# package CPAN::FTP;
sub hosthardest {
my($self,$host_seq,$file,$aslocal) = @_;
- my($i);
+ my($ro_url);
my($aslocal_dir) = File::Basename::dirname($aslocal);
File::Path::mkpath($aslocal_dir);
my $ftpbin = $CPAN::Config->{ftp};
- HOSTHARDEST: for $i (@$host_seq) {
- unless (length $ftpbin && MM->maybe_command($ftpbin)) {
- $CPAN::Frontend->myprint("No external ftp command available\n\n");
- last HOSTHARDEST;
- }
- my $url = $CPAN::Config->{urllist}[$i] || $CPAN::Defaultsite;
- $url .= "/" unless substr($url,-1) eq "/";
- $url .= $file;
+ unless (length $ftpbin && MM->maybe_command($ftpbin)) {
+ $CPAN::Frontend->myprint("No external ftp command available\n\n");
+ return;
+ }
+ $CPAN::Frontend->myprint(qq{
+As a last ressort we now switch to the external ftp command '$ftpbin'
+to get '$aslocal'.
+
+Doing so often leads to problems that are hard to diagnose, even endless
+loops may be encountered.
+
+If you're victim of such problems, please consider unsetting the ftp
+config variable with
+
+ o conf ftp ""
+ o conf commit
+
+});
+ $CPAN::Frontend->mysleep(4);
+ HOSTHARDEST: for $ro_url (@$host_seq) {
+ my $url = "$ro_url$file";
$self->debug("localizing ftpwise[$url]") if $CPAN::DEBUG;
unless ($url =~ m|^ftp://(.*?)/(.*)/(.*)|) {
next;
@@ -2847,12 +2880,21 @@ sub hosthardest {
$netrc->hasdefault,
$netrc->contains($host))) if $CPAN::DEBUG;
if ($netrc->protected) {
+ my $dialog = join "", map { " $_\n" } @dialog;
+ my $netrc_explain;
+ if ($netrc->contains($host)) {
+ $netrc_explain = "Relying that your .netrc entry for '$host' ".
+ "manages the login";
+ } else {
+ $netrc_explain = "Relying that your default .netrc entry ".
+ "manages the login";
+ }
$CPAN::Frontend->myprint(qq{
Trying with external ftp to get
$url
- As this requires some features that are not thoroughly tested, we\'re
- not sure, that we get it right....
-
+ $netrc_explain
+ Going to send the dialog
+$dialog
}
);
$self->talk_ftp("$ftpbin$verbose $host",
@@ -2862,7 +2904,7 @@ sub hosthardest {
$mtime ||= 0;
if ($mtime > $timestamp) {
$CPAN::Frontend->myprint("GOT $aslocal\n");
- $Thesite = $i;
+ $Thesite = $ro_url;
return $aslocal;
} else {
$CPAN::Frontend->myprint("Hmm... Still failed!\n");
@@ -2886,13 +2928,21 @@ sub hosthardest {
"open $host",
"user anonymous $Config::Config{'cf_email'}"
);
+ my $dialog = join "", map { " $_\n" } @dialog;
+ $CPAN::Frontend->myprint(qq{
+ Trying with external ftp to get
+ $url
+ Going to send the dialog
+$dialog
+}
+ );
$self->talk_ftp("$ftpbin$verbose -n", @dialog);
($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,
$atime,$mtime,$ctime,$blksize,$blocks) = stat($aslocal);
$mtime ||= 0;
if ($mtime > $timestamp) {
$CPAN::Frontend->myprint("GOT $aslocal\n");
- $Thesite = $i;
+ $Thesite = $ro_url;
return $aslocal;
} else {
$CPAN::Frontend->myprint("Bad luck... Still failed!\n");
@@ -2903,6 +2953,7 @@ sub hosthardest {
} # host
}
+# package CPAN::FTP;
sub talk_ftp {
my($self,$command,@dialog) = @_;
my $fh = FileHandle->new;
@@ -2986,6 +3037,7 @@ sub ls {
package CPAN::FTP::netrc;
use strict;
+# package CPAN::FTP::netrc;
sub new {
my($class) = @_;
my $file = File::Spec->catfile($ENV{HOME},".netrc");
@@ -3029,7 +3081,7 @@ sub new {
}, $class;
}
-# CPAN::FTP::hasdefault;
+# CPAN::FTP::netrc::hasdefault;
sub hasdefault { shift->{'hasdefault'} }
sub netrc { shift->{'netrc'} }
sub protected { shift->{'protected'} }
@@ -3822,6 +3874,7 @@ sub ls {
$CPAN::Frontend->myprint(join "", map {
sprintf("%8d %10s %s/%s\n", $_->[0], $_->[1], $id, $_->[2])
} sort { $a->[2] cmp $b->[2] } @dl);
+ @dl;
}
# returns an array of arrays, the latter contain (size,mtime,filename)
@@ -5119,6 +5172,17 @@ sub prereq_pm {
}
$req = $areq if $do_replace;
}
+ if ($yaml->{build_requires}
+ && ref $yaml->{build_requires}
+ && ref $yaml->{build_requires} eq "HASH") {
+ while (my($k,$v) = each %{$yaml->{build_requires}}) {
+ if ($req->{$k}) {
+ # merging of two "requires"-type values--what should we do?
+ } else {
+ $req->{$k} = $v;
+ }
+ }
+ }
if ($req) {
delete $req->{perl};
}
@@ -5993,7 +6057,7 @@ sub as_glimpse {
$color_on,
$self->id,
$color_off,
- $self->distribution->pretty_id,
+ $self->distribution ? $self->distribution->pretty_id : $self->id,
);
join "", @m;
}
@@ -6573,11 +6637,11 @@ plain text format.
=item ls author
-=item ls globbing_expresion
+=item ls globbing_expression
The first form lists all distribution files in and below an author's
-CPAN directory as they are stored in the CHECKUMS files distrbute on
-CPAN.
+CPAN directory as they are stored in the CHECKUMS files distributed on
+CPAN. The listing goes recursive into all subdirectories.
The second form allows to limit or expand the output with shell
globbing as in the following examples:
@@ -6589,6 +6653,10 @@ globbing as in the following examples:
The last example is very slow and outputs extra progress indicators
that break the alignment of the result.
+Note that globbing only lists directories explicitly asked for, for
+example FOO/* will not list FOO/bar/Acme-Sthg-n.nn.tar.gz. This may be
+regarded as a bug and may be changed in future versions.
+
=item failed
The C<failed> command reports all distributions that failed on one of
@@ -6727,7 +6795,8 @@ list.
Like expand, but returns objects of the appropriate type, i.e.
CPAN::Bundle objects for bundles, CPAN::Module objects for modules and
-CPAN::Distribution objects fro distributions.
+CPAN::Distribution objects for distributions. Note: it does not expand
+to CPAN::Author objects.
=item Programming Examples
@@ -7235,17 +7304,18 @@ defined:
build_cache size of cache for directories to build modules
build_dir locally accessible directory to build modules
- index_expire after this many days refetch index files
cache_metadata use serializer to cache metadata
cpan_home local directory reserved for this package
dontload_hash anonymous hash: modules in the keys will not be
loaded by the CPAN::has_inst() routine
+ getcwd see below
gzip location of external program gzip
histfile file to maintain history between sessions
histsize maximum number of lines to keep in histfile
inactivity_timeout breaks interactive Makefile.PLs or Build.PLs
after this many seconds inactivity. Set to 0 to
never break.
+ index_expire after this many days refetch index files
inhibit_startup_message
if true, does not print the startup message
keep_source_where directory in which to keep the source (if we do)
@@ -7310,6 +7380,18 @@ works like the corresponding perl commands.
=back
+=head2 Not on config variable getcwd
+
+CPAN.pm changes the current working directory often and needs to
+determine its own current working directory. Per default it uses
+Cwd::cwd but if this doesn't work on your system for some reason,
+alternatives can be configured according to the following table:
+
+ cwd Cwd::cwd
+ getcwd Cwd::getcwd
+ fastcwd Cwd::fastcwd
+ backtickcwd external command cwd
+
=head2 Note on urllist parameter's format
urllist parameters are URLs according to RFC 1738. We do a little
@@ -7565,7 +7647,7 @@ that your root user installed. The following command sequence is a
possible approach:
% mkdir -p $HOME/.cpan/CPAN
- % echo '$CPAN::Config={ };' > $HOME/.cpan/CPAN/MyConfig.pm
+ % echo '1;' > $HOME/.cpan/CPAN/MyConfig.pm
% cpan
[...answer all questions...]
diff --git a/lib/CPAN/FirstTime.pm b/lib/CPAN/FirstTime.pm
index e6ea5708a6..269f8d1ec7 100644
--- a/lib/CPAN/FirstTime.pm
+++ b/lib/CPAN/FirstTime.pm
@@ -2,7 +2,7 @@
package CPAN::Mirrored::By;
use strict;
use vars qw($VERSION);
-$VERSION = sprintf "%.2f", substr(q$Rev: 450 $,4)/100;
+$VERSION = sprintf "%.2f", substr(q$Rev: 469 $,4)/100;
sub new {
my($self,@arg) = @_;
@@ -21,7 +21,7 @@ use File::Basename ();
use File::Path ();
use File::Spec;
use vars qw($VERSION);
-$VERSION = sprintf "%.2f", substr(q$Rev: 450 $,4)/100;
+$VERSION = sprintf "%.2f", substr(q$Rev: 469 $,4)/100;
=head1 NAME
@@ -395,9 +395,10 @@ Shall we use it as the general CPAN build and cache directory?
conf_sites() unless $fastread;
- # We don't ask that now, it will be noticed in time, won't it?
- $CPAN::Config->{'inhibit_startup_message'} = 0;
- $CPAN::Config->{'getcwd'} = 'cwd';
+ # We don't ask these now, the defaults are very likely OK.
+ $CPAN::Config->{inhibit_startup_message} = 0;
+ $CPAN::Config->{getcwd} = 'cwd';
+ $CPAN::Config->{ftp_passive} = 1;
$CPAN::Frontend->myprint("\n\n");
CPAN::HandleConfig->commit($configpm);
diff --git a/lib/CPAN/HandleConfig.pm b/lib/CPAN/HandleConfig.pm
index e9859e5844..e52a3b2693 100644
--- a/lib/CPAN/HandleConfig.pm
+++ b/lib/CPAN/HandleConfig.pm
@@ -2,7 +2,7 @@ package CPAN::HandleConfig;
use strict;
use vars qw(%can %keys $dot_cpan $VERSION);
-$VERSION = sprintf "%.2f", substr(q$Rev: 431 $,4)/100;
+$VERSION = sprintf "%.2f", substr(q$Rev: 469 $,4)/100;
%can = (
'commit' => "Commit changes to disk",
@@ -14,7 +14,7 @@ $VERSION = sprintf "%.2f", substr(q$Rev: 431 $,4)/100;
build_cache build_dir bzip2
cache_metadata commandnumber_in_prompt cpan_home curl
dontload_hash
- ftp ftp_proxy
+ ftp ftp_passive ftp_proxy
getcwd gpg gzip
histfile histsize http_proxy
inactivity_timeout index_expire inhibit_startup_message
@@ -79,7 +79,10 @@ sub edit {
undef $CPAN::FTP::Themethod;
}
return $changed;
- } else {
+ } elsif ($o =~ /_hash$/) {
+ push @args, "" if @args % 2;
+ $CPAN::Config->{$o} = { @args };
+ } else {
$CPAN::Config->{$o} = $args[0] if defined $args[0];
$self->prettyprint($o);
}
@@ -161,7 +164,7 @@ EOF
foreach (sort keys %$CPAN::Config) {
$fh->print(
" '$_' => ",
- ExtUtils::MakeMaker::neatvalue($CPAN::Config->{$_}),
+ $self->neatvalue($CPAN::Config->{$_}),
",\n"
);
}
@@ -176,7 +179,33 @@ EOF
1;
}
-*default = \&defaults;
+# stolen from MakeMaker; not taking the original because it is buggy;
+# bugreport will have to say: keys of hashes remain unquoted and can
+# produce syntax errors
+sub neatvalue {
+ my($self, $v) = @_;
+ return "undef" unless defined $v;
+ my($t) = ref $v;
+ return "q[$v]" unless $t;
+ if ($t eq 'ARRAY') {
+ my(@m, @neat);
+ push @m, "[";
+ foreach my $elem (@$v) {
+ push @neat, "q[$elem]";
+ }
+ push @m, join ", ", @neat;
+ push @m, "]";
+ return join "", @m;
+ }
+ return "$v" unless $t eq 'HASH';
+ my(@m, $key, $val);
+ while (($key,$val) = each %$v){
+ last unless defined $key; # cautious programming in case (undef,undef) is true
+ push(@m,"q[$key]=>".$self->neatvalue($val)) ;
+ }
+ return "{ ".join(', ',@m)." }";
+}
+
sub defaults {
my($self) = @_;
my $done;
@@ -389,7 +418,7 @@ package ####::###### #hide from indexer
use strict;
use vars qw($AUTOLOAD $VERSION);
-$VERSION = sprintf "%.2f", substr(q$Rev: 431 $,4)/100;
+$VERSION = sprintf "%.2f", substr(q$Rev: 469 $,4)/100;
# formerly CPAN::HandleConfig was known as CPAN::Config
sub AUTOLOAD {
@@ -404,5 +433,5 @@ sub AUTOLOAD {
__END__
# Local Variables:
# mode: cperl
-# cperl-indent-level: 2
+# cperl-indent-level: 4
# End:
diff --git a/lib/CPAN/SIGNATURE b/lib/CPAN/SIGNATURE
index b33fdc8f20..f356bc9ba9 100644
--- a/lib/CPAN/SIGNATURE
+++ b/lib/CPAN/SIGNATURE
@@ -16,24 +16,24 @@ Hash: SHA1
SHA1 d73dfb45123f36ff3e574eff09b95847c5d085be ChangeLog
SHA1 9b97524a7a91c815e46b19302a33829d3c26bbbf ChangeLog.old
-SHA1 abe9c38d6e83d5e51c9138cbc1b716080a8746a7 Changes
+SHA1 138d81e94ae5622b702958e9f82b12efd5c212fd Changes
SHA1 a029ffa2f2252bb8914eb658666244710994d256 Changes.old
SHA1 b3fc1dfd25885b80d144cf817b9f0b1c88fe41d6 MANIFEST
-SHA1 6abf20ed9cb6c55d6c8062841522a5b6b784f074 MANIFEST.SKIP
-SHA1 793e2950ccefbe8e29d9560d287649e3cd2d310e META.yml
-SHA1 69ee10278f731ff4dc2d8538613d8d7cf929872c Makefile.PL
+SHA1 b20081c83b148a15c6a123bde27825c8288a19db MANIFEST.SKIP
+SHA1 c87e310507cb8c99009145ac23bd6404fc2cd9d8 META.yml
+SHA1 05b99abbcfa0bc8b19782c4ff95da0fa5c25e2da Makefile.PL
SHA1 37e858c51409a297ef5d3fb35dc57cd3b57f9a4d PAUSE2003.pub
SHA1 af016003ad503ed078c5f8254521d13a3e0c494f PAUSE2005.pub
-SHA1 92942e97152224fced7e6185571bc6199f29ff80 README
-SHA1 e1f7de588d0b1426a7a32c54995a0a00274bb01e Todo
+SHA1 5ef5bb7269c7ce8aaf6403fd2dc364e82525d27c README
+SHA1 48b8d4c811d2098762ee6c05dd1d458e6fdff990 Todo
SHA1 efbe8e6882a2caa0d741b113959a706830ab5882 inc/Test/Builder.pm
SHA1 ae1d68262bedc2475e2c6fd478d99b259b4fb109 inc/Test/More.pm
SHA1 06a0406535e8ae4057e374d4ea8cd5b105483803 lib/Bundle/CPAN.pm
-SHA1 c8788190b668581d0a5a953f114153c92d957a05 lib/CPAN.pm
+SHA1 edd907a918dfefa14e164acd709473dd18d7c4bc lib/CPAN.pm
SHA1 104fd2b39fdba692143655b53bcf01d36c8ebf68 lib/CPAN/Admin.pm
SHA1 82acb5a70221cd4ebc82e96f95f537018e39c79e lib/CPAN/Debug.pm
-SHA1 15ab48da83df4d3814ee7a5b6a4632a827f4d25c lib/CPAN/FirstTime.pm
-SHA1 80c55a1dd290dbd34eb7f53ad65d15a3e0d309f7 lib/CPAN/HandleConfig.pm
+SHA1 15b207860f9642b5b3313d1cea4843f9bd0ea0d2 lib/CPAN/FirstTime.pm
+SHA1 836a525c6ab79bf90175ab0d353c2c134eabf204 lib/CPAN/HandleConfig.pm
SHA1 4fa9695417b54fc8d4e29684ad61689bc108274b lib/CPAN/Nox.pm
SHA1 e85202a30802f3cd86e67af649ba219d97b0925c lib/CPAN/Tarzip.pm
SHA1 726e924200e3e2fda54caa4eddf7029a02f43efe lib/CPAN/Version.pm
@@ -50,7 +50,7 @@ SHA1 b505a0db80ed4c835ad5676e9d1cbf09c86e6c34 t/version.t
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2 (GNU/Linux)
-iD8DBQFD03Q37IA58KMXwV0RAg3QAJ0TPGVcxlS+23QWCLFnigaGigOv3wCg+GS3
-091V7NyoeNk015bmr3m+HXc=
-=/DSm
+iD8DBQFD13cm7IA58KMXwV0RAtYQAKCSH0kNMNtkpoPUJxee9YO/2nwbLgCeJxme
+qV+u9LyVOVEpi7L2IrVMJPk=
+=dy0j
-----END PGP SIGNATURE-----