# -*- Mode: cperl; coding: utf-8; cperl-indent-level: 4 -*-
package CPAN;
-$VERSION = '1.84';
+$VERSION = '1.86';
$VERSION = eval $VERSION;
use strict;
use Cwd ();
use DirHandle ();
use Exporter ();
-use ExtUtils::MakeMaker (); # $SelfLoader::DEBUG=1;
+use ExtUtils::MakeMaker qw(prompt); # for some unknown reason,
+ # 5.005_04 does not work without
+ # this
use File::Basename ();
use File::Copy ();
use File::Find;
if (exists $EXPORT{$l}){
CPAN::Shell->$l(@_);
} else {
- $CPAN::Frontend->mywarn(qq{Unknown CPAN command "$AUTOLOAD". }.
- qq{Type ? for help.
-});
+ die(qq{Unknown CPAN command "$AUTOLOAD". }.
+ qq{Type ? for help.\n});
}
}
use vars qw($prompt);
$prompt = "cpan> ";
$CPAN::CurrentCommandId ||= 0;
-sub as_randomly_capitalized_string {
- # pure fun variant
- substr($prompt,$_,1)=rand()<0.5 ?
- uc(substr($prompt,$_,1)) :
- lc(substr($prompt,$_,1)) for 0..3;
- $prompt;
-}
sub new {
bless {}, shift;
}
my($entry);
for $entry ($dh->read) {
next if $entry =~ /^\./;
+ next unless $entry =~ /^\w+(\.pm)?(?!\n)\Z/;
if (-d File::Spec->catdir($bdir,$entry)){
push @bbase, "$bbase\::$entry";
} else {
# Carp::confess "died";
#}
+# only to be used for shell commands
sub mydie {
my($self,$what) = @_;
$self->print_ornamented($what, 'bold red on_white');
+
+ # If it is the shell, we want that the following die to be silent,
+ # but if it is not the shell, we would need a 'die $what'. We need
+ # to take care that only shell commands use mydie. Is this
+ # possible?
+
die "\n";
}
}
unshift @lines, "\n";
$self->mydie(join "", @lines);
- die "\n";
}
sub mysleep {
$obj->called_for($s);
}
CPAN->debug(
- qq{pragma[@pragma]meth[$meth]obj[$obj]as_string\[}.
- $obj->as_string.
- qq{\]}
+ qq{pragma[@pragma]meth[$meth]obj[$obj]as_string[$obj->{ID}]}
) if $CPAN::DEBUG;
if ($obj->$meth()){
$USER = $CPAN::Config->{proxy_user};
$PASSWD = $CPAN::Config->{proxy_pass};
} else {
- require ExtUtils::MakeMaker;
ExtUtils::MakeMaker->import(qw(prompt));
$USER = prompt("Proxy authentication needed!
(Note: to permanently configure username and password run
}
if (-f $aslocal && -r _ && !($force & 1)){
- if (-s $aslocal) {
- return $aslocal;
- } else {
- # empty file from a previous unsuccessful attempt to download it
- unlink $aslocal or
- $CPAN::Frontend->mydie("Found a zero-length '$aslocal' that I could not remove.");
- }
+ my $size;
+ if ($size = -s $aslocal) {
+ $self->debug("aslocal[$aslocal]size[$size]") if $CPAN::DEBUG;
+ return $aslocal;
+ } else {
+ # empty file from a previous unsuccessful attempt to download it
+ unlink $aslocal or
+ $CPAN::Frontend->mydie("Found a zero-length '$aslocal' that I could not remove.");
+ }
}
my($restore) = 0;
if (-f $aslocal){
There's a new CPAN.pm version (v$version) available!
[Current version is v$CPAN::VERSION]
You might want to try
- install Bundle::CPAN
+ install CPAN
reload cpan
without quitting the current session. It should be a seamless upgrade
while we are running...
# must not touch the hash under the RO attribute. The reason is that
# the RO hash gets written to Metadata file and is thus persistent.
+#-> sub CPAN::InfoObj::safe_chdir ;
+sub safe_chdir {
+ my($self,$todir) = @_;
+ # we die if we cannot chdir and we are debuggable
+ Carp::confess("safe_chdir called without todir argument")
+ unless defined $todir and length $todir;
+ if (chdir $todir) {
+ $self->debug(sprintf "changed directory to %s", CPAN::anycwd())
+ if $CPAN::DEBUG;
+ } else {
+ if (-e $todir) {
+ unless (-x $todir) {
+ unless (chmod 0755, $todir) {
+ my $cwd = CPAN::anycwd();
+ $CPAN::Frontend->mywarn("I have neither the -x permission nor the ".
+ "permission to change the permission; cannot ".
+ "chdir to '$todir'\n");
+ $CPAN::Frontend->mysleep(5);
+ $CPAN::Frontend->mydie(qq{Could not chdir from cwd[$cwd] }.
+ qq{to todir[$todir]: $!});
+ }
+ }
+ } else {
+ $CPAN::Frontend->mydie("Directory '$todir' has gone. Cannot continue.\n");
+ }
+ if (chdir $todir) {
+ $self->debug(sprintf "changed directory to %s", CPAN::anycwd())
+ if $CPAN::DEBUG;
+ } else {
+ my $cwd = CPAN::anycwd();
+ $CPAN::Frontend->mydie(qq{Could not chdir from cwd[$cwd] }.
+ qq{to todir[$todir] (a chmod has been issued): $!});
+ }
+ }
+}
+
#-> sub CPAN::InfoObj::set ;
sub set {
my($self,%att) = @_;
push @m, $class, " id = $self->{ID}\n";
my $ro;
unless ($ro = $self->ro) {
- $CPAN::Frontend->mydie("Unknown distribution $self->{ID}");
+ $CPAN::Frontend->mydie("Unknown object $self->{ID}");
}
for (sort keys %$ro) {
# next if m/^(ID|RO)$/;
my $chksumfile = shift;
my $recursive = shift;
my $may_ftp = shift;
+
my $lc_want =
File::Spec->catfile($CPAN::Config->{keep_source_where},
"authors", "id", @$chksumfile);
Carp::confess($@) if $@;
}
} elsif ($may_ftp) {
- Carp::carp "Could not open $lc_file for reading.";
+ Carp::carp "Could not open '$lc_file' for reading.";
} else {
# Maybe should warn: "You may want to set show_upload_date to a true value"
return;
return $self->{CALLED_FOR};
}
-#-> sub CPAN::Distribution::safe_chdir ;
-sub safe_chdir {
- my($self,$todir) = @_;
- # we die if we cannot chdir and we are debuggable
- Carp::confess("safe_chdir called without todir argument")
- unless defined $todir and length $todir;
- if (chdir $todir) {
- $self->debug(sprintf "changed directory to %s", CPAN::anycwd())
- if $CPAN::DEBUG;
- } else {
- if (-e $todir) {
- unless (-x $todir) {
- unless (chmod 0755, $todir) {
- my $cwd = CPAN::anycwd();
- $CPAN::Frontend->mywarn("I have neither the -x permission nor the ".
- "permission to change the permission; cannot ".
- "chdir to '$todir'\n");
- $CPAN::Frontend->mysleep(5);
- $CPAN::Frontend->mydie(qq{Could not chdir from cwd[$cwd] }.
- qq{to todir[$todir]: $!});
- }
- }
- } else {
- $CPAN::Frontend->mydie("Directory '$todir' has gone. Cannot continue.\n");
- }
- if (chdir $todir) {
- $self->debug(sprintf "changed directory to %s", CPAN::anycwd())
- if $CPAN::DEBUG;
- } else {
- my $cwd = CPAN::anycwd();
- $CPAN::Frontend->mydie(qq{Could not chdir from cwd[$cwd] }.
- qq{to todir[$todir] (a chmod has been issued): $!});
- }
- }
-}
-
#-> sub CPAN::Distribution::get ;
sub get {
my($self) = @_;
File::Spec->catfile($CPAN::Config->{keep_source_where},
"authors", "id", @local);
local($") = "/";
- if (
- -s $lc_want
- &&
- $self->CHECKSUM_check_file($lc_want)
- ) {
- return $self->{CHECKSUM_STATUS} = "OK";
+ if (my $size = -s $lc_want) {
+ $self->debug("lc_want[$lc_want]size[$size]") if $CPAN::DEBUG;
+ if ($self->CHECKSUM_check_file($lc_want,1)) {
+ return $self->{CHECKSUM_STATUS} = "OK";
+ }
}
$lc_file = CPAN::FTP->localize("authors/id/@local",
$lc_want,1);
return;
}
}
- $self->CHECKSUM_check_file($lc_file);
+ if ($self->CHECKSUM_check_file($lc_file)) {
+ return $self->{CHECKSUM_STATUS} = "OK";
+ }
}
#-> sub CPAN::Distribution::SIG_check_file ;
}
#-> sub CPAN::Distribution::CHECKSUM_check_file ;
+
+# sloppy is 1 when we have an old checksums file that maybe is good
+# enough
+
sub CHECKSUM_check_file {
- my($self,$chk_file) = @_;
+ my($self,$chk_file,$sloppy) = @_;
my($cksum,$file,$basename);
+ $sloppy ||= 0;
+ $self->debug("chk_file[$chk_file]sloppy[$sloppy]") if $CPAN::DEBUG;
if ($CPAN::META->has_inst("Module::Signature") and Module::Signature->VERSION >= 0.26) {
$self->debug("Module::Signature is installed, verifying");
$self->SIG_check_file($chk_file);
for further processing, but got garbage instead.
});
my $answer = ExtUtils::MakeMaker::prompt("Proceed nonetheless?", "no");
- $answer =~ /^\s*y/i or $CPAN::Frontend->mydie("Aborted.");
- $self->{CHECKSUM_STATUS} = "NIL -- chk_file broken";
+ $answer =~ /^\s*y/i or $CPAN::Frontend->mydie("Aborted.\n");
+ $self->{CHECKSUM_STATUS} = "NIL -- CHECKSUMS file broken";
return;
} elsif (exists $cksum->{$basename}{sha256}) {
$self->debug("Found checksum for $basename:" .
}
# close $fh if fileno($fh);
} else {
- $self->{CHECKSUM_STATUS} ||= "";
- if ($self->{CHECKSUM_STATUS} eq "NIL") {
+ return if $sloppy;
+ unless ($self->{CHECKSUM_STATUS}) {
$CPAN::Frontend->mywarn(qq{
Warning: No checksum for $basename in $chk_file.
going awry right now.
});
my $answer = ExtUtils::MakeMaker::prompt("Proceed?", "yes");
- $answer =~ /^\s*y/i or $CPAN::Frontend->mydie("Aborted.");
+ $answer =~ /^\s*y/i or $CPAN::Frontend->mydie("Aborted.\n");
}
- $self->{CHECKSUM_STATUS} = "NIL -- distro not in chk_file";
+ $self->{CHECKSUM_STATUS} = "NIL -- distro not in CHECKSUMS file";
return;
}
}
push @e, $err;
}
- defined $self->{'make'} and push @e,
+ defined $self->{make} and push @e,
"Has already been processed within this session";
if (exists $self->{later} and length($self->{later})) {
}
$CPAN::Frontend->myprint("\n CPAN.pm: Going to build ".$self->id."\n\n");
my $builddir = $self->dir or
- $CPAN::Frontend->mydie("PANIC: Cannot determine build directory");
+ $CPAN::Frontend->mydie("PANIC: Cannot determine build directory\n");
chdir $builddir or Carp::croak("Couldn't chdir $builddir: $!");
$self->debug("Changed directory to $builddir") if $CPAN::DEBUG;
}
if (system($system) == 0) {
$CPAN::Frontend->myprint(" $system -- OK\n");
- $self->{'make'} = CPAN::Distrostatus->new("YES");
+ $self->{make} = CPAN::Distrostatus->new("YES");
} else {
$self->{writemakefile} ||= CPAN::Distrostatus->new("YES");
- $self->{'make'} = CPAN::Distrostatus->new("NO");
+ $self->{make} = CPAN::Distrostatus->new("NO");
$CPAN::Frontend->myprint(" $system -- NOT OK\n");
}
}
sub _make_command {
- return $CPAN::Config->{'make'} || $Config::Config{make} || 'make';
+ return $CPAN::Config->{make} || $Config::Config{make} || 'make';
}
#-> sub CPAN::Distribution::follow_prereqs ;
if ($CPAN::Config->{prerequisites_policy} eq "follow") {
$follow = 1;
} elsif ($CPAN::Config->{prerequisites_policy} eq "ask") {
- require ExtUtils::MakeMaker;
my $answer = ExtUtils::MakeMaker::prompt(
"Shall I follow them and prepend them to the queue
of modules we are processing right now?", "yes");
$CPAN::Config->{mbuild_install_arg},
);
} else {
- my($make_install_make_command) = $CPAN::Config->{'make_install_make_command'} ||
+ my($make_install_make_command) = $CPAN::Config->{make_install_make_command} ||
_make_command();
$system = sprintf("%s install %s",
$make_install_make_command,
my($inst_file) = $self->inst_file || "";
my($id) = $self->id;
$self->debug("inst_file[$inst_file]id[$id]") if $CPAN::DEBUG;
+ if ($inst_file && CPAN::Version->vlt($self->inst_version,$self->cpan_version)) {
+ undef $inst_file;
+ }
unless ($inst_file) {
# Try to get at it in the cpan directory
$self->debug("no inst_file") if $CPAN::DEBUG;
my $dist = $CPAN::META->instance('CPAN::Distribution',
$self->cpan_file);
$dist->get;
- $self->debug($dist->as_string) if $CPAN::DEBUG;
+ $self->debug("id[$dist->{ID}]") if $CPAN::DEBUG;
my($todir) = $CPAN::Config->{'cpan_home'};
my(@me,$from,$to,$me);
@me = split /::/, $self->id;
$me[-1] .= ".pm";
$me = File::Spec->catfile(@me);
- $from = $self->find_bundle_file($dist->{'build_dir'},$me);
+ $from = $self->find_bundle_file($dist->{'build_dir'},join('/',@me));
$to = File::Spec->catfile($todir,$me);
File::Path::mkpath(File::Basename::dirname($to));
File::Copy::copy($from, $to)
}
#-> sub CPAN::Bundle::find_bundle_file
+# $where is in local format, $what is in unix format
sub find_bundle_file {
my($self,$where,$what) = @_;
$self->debug("where[$where]what[$what]") if $CPAN::DEBUG;
unless (-f $manifest) {
require ExtUtils::Manifest;
my $cwd = CPAN::anycwd();
- chdir $where or $CPAN::Frontend->mydie(qq{Could not chdir to "$where": $!});
+ $self->safe_chdir($where);
ExtUtils::Manifest::mkmanifest();
- chdir $cwd or $CPAN::Frontend->mydie(qq{Could not chdir to "$cwd": $!});
+ $self->safe_chdir($cwd);
}
my $fh = FileHandle->new($manifest)
or Carp::croak("Couldn't open $manifest: $!");
local($/) = "\n";
- my $what2 = $what;
- if ($^O eq 'MacOS') {
- $what =~ s/^://;
- $what =~ tr|:|/|;
- $what2 =~ s/:Bundle://;
- $what2 =~ tr|:|/|;
- } else {
- $what2 =~ s|Bundle[/\\]||;
- }
- my $bu;
+ my $bundle_filename = $what;
+ $bundle_filename =~ s|Bundle.*/||;
+ my $bundle_unixpath;
while (<$fh>) {
next if /^\s*\#/;
my($file) = /(\S+)/;
if ($file =~ m|\Q$what\E$|) {
- $bu = $file;
- # return File::Spec->catfile($where,$bu); # bad
+ $bundle_unixpath = $file;
+ # return File::Spec->catfile($where,$bundle_unixpath); # bad
last;
}
- # retry if she managed to
- # have no Bundle directory
- $bu = $file if $file =~ m|\Q$what2\E$|;
+ # retry if she managed to have no Bundle directory
+ $bundle_unixpath = $file if $file =~ m|\Q$bundle_filename\E$|;
}
- $bu =~ tr|/|:| if $^O eq 'MacOS';
- return File::Spec->catfile($where, $bu) if $bu;
+ return File::Spec->catfile($where, split /\//, $bundle_unixpath)
+ if $bundle_unixpath;
Carp::croak("Couldn't find a Bundle file in $where");
}
of a modern rewrite from ground up with greater extensibility and more
features but no full compatibility. If you're new to CPAN.pm, you
probably should investigate if CPANPLUS is the better choice for you.
-If you're already used to CPAN.pm you're welcome to continue using it,
-if you accept that its development is mostly (though not completely)
-stalled.
+
+If you're already used to CPAN.pm you're welcome to continue using it.
+I intend to support it until somebody convinces me that there is a
+both superior and sufficiently compatible drop-in replacement.
+
+=head1 COMPATIBILITY
+
+CPAN.pm is regularly tested to run under 5.004, 5.005, and assorted
+newer versions. It is getting more and more difficult to get the
+minimal prerequisites working on older perls. It is close to
+impossible to get the whole Bundle::CPAN working there. If you're in
+the position to have only these old versions, be advised that CPAN is
+designed to work fine without the Bundle::CPAN installed.
+
+To get things going, note that GBARR/Scalar-List-Utils-1.18.tar.gz is
+compatible with ancient perls and that File::Temp is listed as a
+prerequisite but CPAN has reasonable workarounds if it is missing.
=head1 DESCRIPTION
% PERL_MM_USE_DEFAULT=1 perl -MCPAN -e 'install My::Module'
+=item 14)
+
+I only know the usual options for ExtUtils::MakeMaker(Module::Build),
+how do I find out the corresponding options in
+Module::Build(ExtUtils::MakeMaker)?
+
+http://search.cpan.org/search?query=Module::Build::Convert
+
+http://accognoscere.org/papers/perl-module-build-convert/module-build-convert.html
+
+
=back
=head1 BUGS
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
-SHA1 86cd5afb7a277053d01ffb57ba9cdb91f5729333 ChangeLog
+SHA1 012fe78dd6e0d5f40df4a56a08cc75e9463909dd ChangeLog
SHA1 9b97524a7a91c815e46b19302a33829d3c26bbbf ChangeLog.old
-SHA1 ee18200033ca0b29847e9966b15b937c2847f2ce Changes
+SHA1 10b5e854abb258433ffd38d942ece71e1dba47d6 Changes
SHA1 a029ffa2f2252bb8914eb658666244710994d256 Changes.old
-SHA1 74d91a5b2d7a59968705d95adc88c716a23f9adb MANIFEST
-SHA1 3c4dbf3f48e16467eb557e6f6a9b9cd6901fe2dd MANIFEST.SKIP
-SHA1 523d4816f21a174124c6ca1985f33a9ffc30732a META.yml
-SHA1 bfc9ab219364977427c226c01fe322feeed4ac66 Makefile.PL
+SHA1 454c28a6fb8de61cc9d220b427a88cedded9ff4b MANIFEST
+SHA1 a8a3d2f936abf0f2fbda5e5959c10ab09199e6ba MANIFEST.SKIP
+SHA1 31bb1d7da7bc01d691168fd5473891c3ccc4da7f META.yml
+SHA1 624cb8d0c64c79737a2dac973a500af2311d4ffa Makefile.PL
SHA1 37e858c51409a297ef5d3fb35dc57cd3b57f9a4d PAUSE2003.pub
SHA1 af016003ad503ed078c5f8254521d13a3e0c494f PAUSE2005.pub
-SHA1 0ae05b5134d40c15ed43bd52189373e4d10dfb8f README
-SHA1 9d779ce923bd8a81f6b8f25b34a39763fa84c33d Todo
+SHA1 9eb4a605d56bb6659801ca89910c61ab4ee4a25c README
+SHA1 f1aed56cb3d8d9010060450a0263ce12a1e0e500 Todo
SHA1 efbe8e6882a2caa0d741b113959a706830ab5882 inc/Test/Builder.pm
SHA1 ae1d68262bedc2475e2c6fd478d99b259b4fb109 inc/Test/More.pm
-SHA1 06a0406535e8ae4057e374d4ea8cd5b105483803 lib/Bundle/CPAN.pm
-SHA1 c937d2b2aa5d2e2f26934bfc60f64cbb60e98664 lib/CPAN.pm
+SHA1 a193be1f90083b068757a80eb3f11c33faae9258 lib/CPAN.pm
SHA1 94c4656fdae231c673719978e6e9a460f2dfc794 lib/CPAN/Admin.pm
SHA1 8884e4b1932555e7d2f52d1df62097e8c78bb548 lib/CPAN/Debug.pm
SHA1 0961261e5a334fbce8e465d68e3513776ca4ad16 lib/CPAN/FirstTime.pm
SHA1 4b6c040b3ce14f660a1b99da34cd020343878796 lib/CPAN/Tarzip.pm
SHA1 4d60b4782a851767c40dc27825057e584014cfc5 lib/CPAN/Version.pm
SHA1 fb08e07d8740ef36e8ab719c6a9b7e89c4fe674a scripts/cpan
-SHA1 0c3509be603b7ae86d5e7bd422d9bb6054da0935 t/00signature.t
+SHA1 2a3adebb8252dc893681d17460082c2e08aa144a t/00signature.t
SHA1 215dace24b507de20011d36cbe2d16ddea78bcf3 t/01loadme.t
SHA1 67e80e1cfc3530932de7743dd0c833b2c387609d t/02nox.t
-SHA1 0d1037e7e7a5f6e47d3f5db07fdff995e6d0de5d t/03pkgs.t
+SHA1 b586d8e1a613880bbd2ec68d3abd0ca21e43b0c2 t/03pkgs.t
SHA1 ebdb653877d5c5e5a071fe9933b18f018cde3250 t/10version.t
SHA1 325d8a2f72d59c4cd2400c72403c05cd614c3abc t/11mirroredby.t
-SHA1 ab196b37cd30d59a30ab841bc17e66dd64993a25 t/30shell.t
+SHA1 3b9f497520b0a56ea5cab94b45a9af9995025e6e t/12cpan.t
+SHA1 12a215fbdd0d5142bf1ebbe02d4672765845b28d t/30shell.t
SHA1 6a79f15a10337bd3450604abf39d4462df2a550b t/50pod.t
SHA1 70f0df4041b1c9ae9f30117b0fad9fe5760f17c8 t/CPAN/TestConfig.pm
SHA1 b4fd27234696da334ac6a1716222c70610a98c3a t/CPAN/authors/01mailrc.txt
-SHA1 bcbe30403a46ad3db1f67757ddc7610064f21fe5 t/CPAN/authors/id/A/AN/ANDK/CHECKSUMS
+SHA1 61f6dbc7e5616028952b07a0451e029d41993bb6 t/CPAN/authors/id/A/AN/ANDK/CHECKSUMS
SHA1 3bafbff953a645fccf54e505a71ef711ba895522 t/CPAN/authors/id/A/AN/ANDK/CPAN-Test-Dummy-Perl5-Build-1.01.tar.gz
SHA1 11f35aa730e452797f5d7371a393e24e40ea8d21 t/CPAN/authors/id/A/AN/ANDK/CPAN-Test-Dummy-Perl5-Build-Fails-1.01.tar.gz
SHA1 c0587c6180bd979acfa2b2396688208793366ff5 t/CPAN/authors/id/A/AN/ANDK/CPAN-Test-Dummy-Perl5-BuildOrMake-1.01.tar.gz
-SHA1 39dda723d77bb5386bfc837e9ee5224513db19c0 t/CPAN/authors/id/A/AN/ANDK/CPAN-Test-Dummy-Perl5-Make-1.01.tar.gz
+SHA1 d48f389c1710e44c88a275935d036145860bf5d3 t/CPAN/authors/id/A/AN/ANDK/CPAN-Test-Dummy-Perl5-Make-1.02.tar.gz
SHA1 3dc672ec2542810513b26e306a6545bfee069654 t/CPAN/authors/id/A/AN/ANDK/CPAN-Test-Dummy-Perl5-Make-Failearly-1.01.tar.gz
SHA1 1883e4297cf678df8171929d157efd6815b9c9b1 t/CPAN/authors/id/A/AN/ANDK/CPAN-Test-Dummy-Perl5-Make-Zip-1.01.zip
+SHA1 541ac9311d4dbabe9bb99d770b221456798be688 t/CPAN/authors/id/A/AN/ANDK/NotInChecksums-0.000.tar.gz
SHA1 1aee1bed21f0e9755d693419e810ec75543eb0b7 t/CPAN/authors/id/A/AN/CHECKSUMS
SHA1 1f3304f219bf0da4db6a60f638e11b61c2c2f4c0 t/CPAN/authors/id/A/CHECKSUMS
SHA1 dfc900f5bfbc9683fa91977a1c7198222fbd4452 t/CPAN/authors/id/CHECKSUMS
-SHA1 e7c40882588d89d0766b9134619e0ee226dc3c1b t/CPAN/modules/02packages.details.txt
+SHA1 468603b8016e599fec432e807890fb55f07483a6 t/CPAN/modules/02packages.details.txt
SHA1 9bbcc30e783e5fe67e2aa12d5f1fe113563e345c t/CPAN/modules/03modlist.data
-SHA1 c0dde5b2aa7713d1a1ffbbbf6a08c2f46aad4f1d t/README.shell.txt
-SHA1 1539d7c98dd4e61435f71797cc5eb0b49c057898 t/dot-cpan/Bundle/CpanTestDummies.pm
+SHA1 836b7df7eb49a55bfc2afdb666be6ac72e5658bc t/README.shell.txt
+SHA1 7efe930efd0a07d8101679ed15d4700dcf208137 t/dot-cpan/Bundle/CpanTestDummies-1.55.pm
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2 (GNU/Linux)
-iD8DBQFD8tDI7IA58KMXwV0RAlBbAKCGAkF/EP2OiCLnyrICqHwyaIyi4QCg2JWu
-IodF0KHpDl45G/ValTOHhQY=
-=mAhM
+iD8DBQFD+X8U7IA58KMXwV0RAqtqAKCif6ygm9/5W6ves5HSFTJNhOsGgQCg9JZc
+iScqmUjdguw67lb79NxcCjQ=
+=CJK5
-----END PGP SIGNATURE-----