Upgrade to CPAN-1.83_59
Steve Peters [Sat, 28 Jan 2006 16:50:32 +0000 (16:50 +0000)]
p4raw-id: //depot/perl@26986

lib/CPAN.pm
lib/CPAN/FirstTime.pm
lib/CPAN/HandleConfig.pm
lib/CPAN/SIGNATURE

index 8f89b9b..797ecf3 100644 (file)
@@ -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...]
 
index e6ea570..269f8d1 100644 (file)
@@ -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);
index e9859e5..e52a3b2 100644 (file)
@@ -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:
index b33fdc8..f356bc9 100644 (file)
@@ -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-----