diff --git a/ChangeLog b/ChangeLog index f5b1d181..ee06a75a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +Changes for 0.9142 Mon Aug 12 23:39:58 2013 +================================================ +* Fix race condition in tests for MSWin32 +* Fix hanging test on Cygwin +* Update bundled modules + Changes for 0.9140 Sat Aug 3 22:28:25 2013 ================================================ * Make extraction less verbose diff --git a/MANIFEST b/MANIFEST index 3ed920f2..7913e789 100644 --- a/MANIFEST +++ b/MANIFEST @@ -35,6 +35,7 @@ inc/bundle/Log/Message/Item.pm inc/bundle/Log/Message/Simple.pm inc/bundle/Module/CoreList.pm inc/bundle/Module/CoreList/TieHashDelta.pm +inc/bundle/Module/CoreList/Utils.pm inc/bundle/Module/Load.pm inc/bundle/Module/Load/Conditional.pm inc/bundle/Module/Loaded.pm diff --git a/MANIFEST.SKIP b/MANIFEST.SKIP index 62b0e9f8..cd5663dd 100644 --- a/MANIFEST.SKIP +++ b/MANIFEST.SKIP @@ -32,3 +32,4 @@ dev-bin/ ~$ ^patches ^.git +^MYMETA\.* diff --git a/META.yml b/META.yml index 23978028..432fc61d 100644 --- a/META.yml +++ b/META.yml @@ -18,4 +18,4 @@ resources: license: http://dev.perl.org/licenses/ homepage: http://github.com/jib/cpanplus-devel repository: http://github.com/jib/cpanplus-devel -version: 0.9140 +version: 0.9142 diff --git a/inc/bundle/IPC/Cmd.pm b/inc/bundle/IPC/Cmd.pm index ce507ebb..4a9dc9b8 100644 --- a/inc/bundle/IPC/Cmd.pm +++ b/inc/bundle/IPC/Cmd.pm @@ -17,7 +17,7 @@ BEGIN { $INSTANCES $ALLOW_NULL_ARGS ]; - $VERSION = '0.82'; + $VERSION = '0.84'; $VERBOSE = 0; $DEBUG = 0; $WARN = 1; @@ -32,7 +32,7 @@ BEGIN { require IO::Select; IO::Select->import(); require IO::Handle; IO::Handle->import(); require FileHandle; FileHandle->import(); - require Socket; Socket->import(); + require Socket; require Time::HiRes; Time::HiRes->import(); require Win32 if IS_WIN32; }; @@ -43,7 +43,6 @@ BEGIN { } require Carp; -use Socket; use File::Spec; use Params::Check qw[check]; use Text::ParseWords (); # import ONLY if needed! @@ -86,6 +85,13 @@ IPC::Cmd - finding and running system commands made easy print join "", @$full_buf; } + ### run_forked example ### + my $result = run_forked("$full_path -q -O - theregister.co.uk", {'timeout' => 20}); + if ($result->{'exit_code'} eq 0 && !$result->{'timeout'}) { + print "this is what wget returned:\n"; + print $result->{'stdout'}; + } + ### check for features print "IPC::Open3 available: " . IPC::Cmd->can_use_ipc_open3; print "IPC::Run available: " . IPC::Cmd->can_use_ipc_run; @@ -708,14 +714,17 @@ sub run_forked { ### container to store things in my $self = bless {}, __PACKAGE__; - require POSIX; - if (!can_use_run_forked()) { Carp::carp("run_forked is not available: $CAN_USE_RUN_FORKED"); return; } + require POSIX; + my ($cmd, $opts) = @_; + if (ref($cmd) eq 'ARRAY') { + $cmd = join(" ", @{$cmd}); + } if (!$cmd) { Carp::carp("run_forked expects command to run"); @@ -741,11 +750,11 @@ sub run_forked { my $child_info_socket; my $parent_info_socket; - socketpair($child_stdout_socket, $parent_stdout_socket, AF_UNIX, SOCK_STREAM, PF_UNSPEC) || + socketpair($child_stdout_socket, $parent_stdout_socket, &Socket::AF_UNIX, &Socket::SOCK_STREAM, &Socket::PF_UNSPEC) || die ("socketpair: $!"); - socketpair($child_stderr_socket, $parent_stderr_socket, AF_UNIX, SOCK_STREAM, PF_UNSPEC) || + socketpair($child_stderr_socket, $parent_stderr_socket, &Socket::AF_UNIX, &Socket::SOCK_STREAM, &Socket::PF_UNSPEC) || die ("socketpair: $!"); - socketpair($child_info_socket, $parent_info_socket, AF_UNIX, SOCK_STREAM, PF_UNSPEC) || + socketpair($child_info_socket, $parent_info_socket, &Socket::AF_UNIX, &Socket::SOCK_STREAM, &Socket::PF_UNSPEC) || die ("socketpair: $!"); $child_stdout_socket->autoflush(1); @@ -786,6 +795,30 @@ sub run_forked { # print "child $pid started\n"; + my $child_output = { + $child_stdout_socket->fileno => { + 'scalar_buffer' => "", + 'child_handle' => $child_stdout_socket, + 'block_size' => ($child_stdout_socket->stat)[11] || 1024, + 'protocol' => 'stdout', + }, + $child_stderr_socket->fileno => { + 'scalar_buffer' => "", + 'child_handle' => $child_stderr_socket, + 'block_size' => ($child_stderr_socket->stat)[11] || 1024, + 'protocol' => 'stderr', + }, + $child_info_socket->fileno => { + 'scalar_buffer' => "", + 'child_handle' => $child_info_socket, + 'block_size' => ($child_info_socket->stat)[11] || 1024, + 'protocol' => 'info', + }, + }; + + my $select = IO::Select->new(); + $select->add($child_stdout_socket, $child_stderr_socket, $child_info_socket); + my $child_timedout = 0; my $child_finished = 0; my $child_stdout = ''; @@ -873,39 +906,77 @@ sub run_forked { next; } - # child -> parent simple internal communication protocol - while (my $l = <$child_info_socket>) { - if ($l =~ /^spawned ([0-9]+?)\n(.*?)/so) { - $child_child_pid = $1; - $l = $2; + foreach my $fd ($select->can_read(1/100)) { + my $str = $child_output->{$fd->fileno}; + die("child stream not found: $fd") unless $str; + + my $data = ""; + my $count = $fd->sysread($data, $str->{'block_size'}); + + if ($count) { + # extract all the available lines and store the rest in temporary buffer + if ($data =~ /(.+\n)([^\n]*)/so) { + $data = $str->{'scalar_buffer'} . $1; + $str->{'scalar_buffer'} = $2 || ""; + } + else { + $str->{'scalar_buffer'} .= $data; + $data = ""; + } } - if ($l =~ /^reaped ([0-9]+?)\n(.*?)/so) { - $child_child_pid = undef; - $l = $2; + elsif ($count eq 0) { + $select->remove($fd); + $fd->close(); + if ($str->{'scalar_buffer'}) { + $data = $str->{'scalar_buffer'} . "\n"; + } } - if ($l =~ /^[\d]+ killed with ([0-9]+?)\n(.*?)/so) { - $child_killed_by_signal = $1; - $l = $2; + else { + die("error during sysread on [$fd]: " . $!); } - } - while (my $l = <$child_stdout_socket>) { - if (!$opts->{'discard_output'}) { - $child_stdout .= $l; - $child_merged .= $l; - } + # $data contains only full lines (or last line if it was unfinished read + # or now new-line in the output of the child); dat is processed + # according to the "protocol" of socket + if ($str->{'protocol'} eq 'info') { + if ($data =~ /^spawned ([0-9]+?)\n(.*?)/so) { + $child_child_pid = $1; + $data = $2; + } + if ($data =~ /^reaped ([0-9]+?)\n(.*?)/so) { + $child_child_pid = undef; + $data = $2; + } + if ($data =~ /^[\d]+ killed with ([0-9]+?)\n(.*?)/so) { + $child_killed_by_signal = $1; + $data = $2; + } - if ($opts->{'stdout_handler'} && ref($opts->{'stdout_handler'}) eq 'CODE') { - $opts->{'stdout_handler'}->($l); + # we don't expect any other data in info socket, so it's + # some strange violation of protocol, better know about this + if ($data) { + die("info protocol violation: [$data]"); + } } - } - while (my $l = <$child_stderr_socket>) { - if (!$opts->{'discard_output'}) { - $child_stderr .= $l; - $child_merged .= $l; + if ($str->{'protocol'} eq 'stdout') { + if (!$opts->{'discard_output'}) { + $child_stdout .= $data; + $child_merged .= $data; + } + + if ($opts->{'stdout_handler'} && ref($opts->{'stdout_handler'}) eq 'CODE') { + $opts->{'stdout_handler'}->($data); + } } - if ($opts->{'stderr_handler'} && ref($opts->{'stderr_handler'}) eq 'CODE') { - $opts->{'stderr_handler'}->($l); + if ($str->{'protocol'} eq 'stderr') { + if (!$opts->{'discard_output'}) { + $child_stderr .= $data; + $child_merged .= $data; + } + + if ($opts->{'stderr_handler'} && ref($opts->{'stderr_handler'}) eq 'CODE') { + $opts->{'stderr_handler'}->($data); + } } } @@ -960,6 +1031,7 @@ sub run_forked { 'parent_died' => $parent_died, 'killed_by_signal' => $child_killed_by_signal, 'child_pgid' => $pid, + 'cmd' => $cmd, }; my $err_msg = ''; @@ -1024,6 +1096,11 @@ sub run_forked { }); } elsif (ref($cmd) eq 'CODE') { + # reopen STDOUT and STDERR for child code: + # https://rt.cpan.org/Ticket/Display.html?id=85912 + open STDOUT, '>&', $parent_stdout_socket || die("Unable to reopen STDOUT: $!\n"); + open STDERR, '>&', $parent_stderr_socket || die("Unable to reopen STDERR: $!\n"); + $child_exit_code = $cmd->({ 'opts' => $opts, 'parent_info' => $parent_info_socket, @@ -1045,6 +1122,7 @@ sub run_forked { $opts->{'child_END'}->(); } + $| = 1; POSIX::_exit $child_exit_code; } } @@ -1207,8 +1285,10 @@ sub _open3_run_win32 { my $outhand = shift; my $errhand = shift; + require Socket; + my $pipe = sub { - socketpair($_[0], $_[1], AF_UNIX, SOCK_STREAM, PF_UNSPEC) + socketpair($_[0], $_[1], &Socket::AF_UNIX, &Socket::SOCK_STREAM, &Socket::PF_UNSPEC) or return undef; shutdown($_[0], 1); # No more writing for reader shutdown($_[1], 0); # No more reading for writer @@ -1258,8 +1338,8 @@ sub _open3_run_win32 { $in_sel->remove($fh); } else { - $obj->( "$buf" ); - } + $obj->( "$buf" ); + } } for my $fh (@$outs) { diff --git a/inc/bundle/Module/CoreList.pm b/inc/bundle/Module/CoreList.pm index 008ef8ab..8919d8c7 100644 --- a/inc/bundle/Module/CoreList.pm +++ b/inc/bundle/Module/CoreList.pm @@ -3,7 +3,7 @@ use strict; use vars qw/$VERSION %released %version %families %upstream %bug_tracker %deprecated/; use Module::CoreList::TieHashDelta; -$VERSION = '2.94'; +$VERSION = '2.96'; my $dumpinc = 0; sub import { @@ -234,6 +234,7 @@ sub changes_between { 5.019000 => '2013-05-20', 5.019001 => '2013-06-21', 5.019002 => '2013-07-22', + 5.018001 => '2013-08-12', ); for my $version ( sort { $a <=> $b } keys %released ) { @@ -7698,6 +7699,7 @@ my %delta = ( 'CPANPLUS::Shell::Default::Plugins::CustomSource'=> '0.9135', 'CPANPLUS::Shell::Default::Plugins::Remote'=> '0.9135', 'CPANPLUS::Shell::Default::Plugins::Source'=> '0.9135', + 'Config' => '5.017009', 'Config::Perl::V' => '0.17', 'DBM_Filter' => '0.05', 'Data::Dumper' => '2.142', @@ -7815,6 +7817,7 @@ my %delta = ( delta_from => 5.017009, changed => { 'Benchmark' => '1.15', + 'Config' => '5.017009', 'Data::Dumper' => '2.145', 'Digest::SHA' => '5.84', 'Encode' => '2.49', @@ -7937,6 +7940,7 @@ my %delta = ( changed => { 'App::Cpan' => '1.61', 'B::Deparse' => '1.20', + 'Config' => '5.017009', 'Exporter' => '5.68', 'Exporter::Heavy' => '5.68', 'ExtUtils::CBuilder' => '0.280210', @@ -7984,6 +7988,7 @@ my %delta = ( changed => { 'Carp' => '1.29', 'Carp::Heavy' => '1.29', + 'Config' => '5.018000', 'Hash::Util' => '0.16', 'IO::Handle' => '1.34', 'IO::Socket' => '1.36', @@ -8023,6 +8028,7 @@ my %delta = ( 5.019000 => { delta_from => 5.018000, changed => { + 'Config' => '5.019000', 'Getopt::Std' => '1.08', 'Module::CoreList' => '2.91', 'Module::CoreList::TieHashDelta'=> '2.91', @@ -8119,6 +8125,7 @@ my %delta = ( 'Compress::Raw::Bzip2' => '2.061', 'Compress::Raw::Zlib' => '2.061', 'Compress::Zlib' => '2.061', + 'Config' => '5.019001', 'Config::Perl::V' => '0.18', 'Cwd' => '3.41', 'DB' => '1.06', @@ -8372,6 +8379,7 @@ my %delta = ( 'B::Deparse' => '1.22', 'Benchmark' => '1.17', 'Class::Struct' => '0.65', + 'Config' => '5.019002', 'DB' => '1.07', 'DBM_Filter' => '0.06', 'DBM_Filter::compress' => '0.03', @@ -8447,6 +8455,20 @@ my %delta = ( removed => { } }, + 5.018001 => { + delta_from => 5.018000, + changed => { + 'B' => '1.42_01', + 'Config' => '5.018001', + 'Digest::SHA' => '5.84_01', + 'Module::CoreList' => '2.96', + 'Module::CoreList::TieHashDelta'=> '2.96', + 'Module::CoreList::Utils'=> '2.96', + }, + removed => { + 'VMS::Filespec' => 1, + } + }, ); for my $version (sort { $a <=> $b } keys %delta) { @@ -8681,6 +8703,13 @@ for my $version (sort { $a <=> $b } keys %delta) { removed => { } }, + 5.018001 => { + delta_from => 5.018, + changed => { + }, + removed => { + } + }, ); for my $version (sort { $a <=> $b } keys %deprecated) { @@ -8697,6 +8726,7 @@ for my $version (sort { $a <=> $b } keys %deprecated) { 'App::Prove::State' => 'cpan', 'App::Prove::State::Result'=> 'cpan', 'App::Prove::State::Result::Test'=> 'cpan', + 'Archive::Extract' => 'cpan', 'Archive::Tar' => 'cpan', 'Archive::Tar::Constant'=> 'cpan', 'Archive::Tar::File' => 'cpan', @@ -8706,6 +8736,8 @@ for my $version (sort { $a <=> $b } keys %deprecated) { 'B::Concise' => 'blead', 'B::Debug' => 'cpan', 'B::Deparse' => 'blead', + 'B::Lint' => 'cpan', + 'B::Lint::Debug' => 'cpan', 'CGI' => 'cpan', 'CGI::Apache' => 'cpan', 'CGI::Carp' => 'cpan', @@ -8757,6 +8789,47 @@ for my $version (sort { $a <=> $b } keys %deprecated) { 'CPAN::Tarzip' => 'cpan', 'CPAN::URL' => 'cpan', 'CPAN::Version' => 'cpan', + 'CPANPLUS' => 'cpan', + 'CPANPLUS::Backend' => 'cpan', + 'CPANPLUS::Backend::RV' => 'cpan', + 'CPANPLUS::Config' => 'cpan', + 'CPANPLUS::Config::HomeEnv'=> 'cpan', + 'CPANPLUS::Configure' => 'cpan', + 'CPANPLUS::Configure::Setup'=> 'cpan', + 'CPANPLUS::Dist' => 'cpan', + 'CPANPLUS::Dist::Autobundle'=> 'cpan', + 'CPANPLUS::Dist::Base' => 'cpan', + 'CPANPLUS::Dist::Build' => 'cpan', + 'CPANPLUS::Dist::Build::Constants'=> 'cpan', + 'CPANPLUS::Dist::MM' => 'cpan', + 'CPANPLUS::Dist::Sample'=> 'cpan', + 'CPANPLUS::Error' => 'cpan', + 'CPANPLUS::Internals' => 'cpan', + 'CPANPLUS::Internals::Constants'=> 'cpan', + 'CPANPLUS::Internals::Constants::Report'=> 'cpan', + 'CPANPLUS::Internals::Extract'=> 'cpan', + 'CPANPLUS::Internals::Fetch'=> 'cpan', + 'CPANPLUS::Internals::Report'=> 'cpan', + 'CPANPLUS::Internals::Search'=> 'cpan', + 'CPANPLUS::Internals::Source'=> 'cpan', + 'CPANPLUS::Internals::Source::Memory'=> 'cpan', + 'CPANPLUS::Internals::Source::SQLite'=> 'cpan', + 'CPANPLUS::Internals::Source::SQLite::Tie'=> 'cpan', + 'CPANPLUS::Internals::Utils'=> 'cpan', + 'CPANPLUS::Internals::Utils::Autoflush'=> 'cpan', + 'CPANPLUS::Module' => 'cpan', + 'CPANPLUS::Module::Author'=> 'cpan', + 'CPANPLUS::Module::Author::Fake'=> 'cpan', + 'CPANPLUS::Module::Checksums'=> 'cpan', + 'CPANPLUS::Module::Fake'=> 'cpan', + 'CPANPLUS::Module::Signature'=> 'cpan', + 'CPANPLUS::Selfupdate' => 'cpan', + 'CPANPLUS::Shell' => 'cpan', + 'CPANPLUS::Shell::Classic'=> 'cpan', + 'CPANPLUS::Shell::Default'=> 'cpan', + 'CPANPLUS::Shell::Default::Plugins::CustomSource'=> 'cpan', + 'CPANPLUS::Shell::Default::Plugins::Remote'=> 'cpan', + 'CPANPLUS::Shell::Default::Plugins::Source'=> 'cpan', 'Carp' => 'blead', 'Carp::Heavy' => 'blead', 'Compress::Raw::Bzip2' => 'cpan', @@ -8765,7 +8838,8 @@ for my $version (sort { $a <=> $b } keys %deprecated) { 'Config::Perl::V' => 'cpan', 'Cwd' => 'blead', 'DB_File' => 'cpan', - 'Devel::PPPort' => 'undef', + 'Devel::InnerPackage' => 'cpan', + 'Devel::PPPort' => 'cpan', 'Digest' => 'cpan', 'Digest::MD5' => 'cpan', 'Digest::SHA' => 'cpan', @@ -8846,7 +8920,6 @@ for my $version (sort { $a <=> $b } keys %deprecated) { 'ExtUtils::ParseXS' => 'blead', 'ExtUtils::ParseXS::Constants'=> 'blead', 'ExtUtils::ParseXS::CountLines'=> 'blead', - 'ExtUtils::ParseXS::Eval'=> 'blead', 'ExtUtils::ParseXS::Utilities'=> 'blead', 'ExtUtils::Typemaps' => 'blead', 'ExtUtils::Typemaps::Cmd'=> 'blead', @@ -8938,6 +9011,11 @@ for my $version (sort { $a <=> $b } keys %deprecated) { 'Locale::Maketext::GutsLoader'=> 'blead', 'Locale::Maketext::Simple'=> 'cpan', 'Locale::Script' => 'cpan', + 'Log::Message' => 'cpan', + 'Log::Message::Config' => 'cpan', + 'Log::Message::Handlers'=> 'cpan', + 'Log::Message::Item' => 'cpan', + 'Log::Message::Simple' => 'cpan', 'MIME::Base64' => 'cpan', 'MIME::QuotedPrint' => 'cpan', 'Math::BigFloat' => 'blead', @@ -8992,6 +9070,8 @@ for my $version (sort { $a <=> $b } keys %deprecated) { 'Module::Load::Conditional'=> 'cpan', 'Module::Loaded' => 'cpan', 'Module::Metadata' => 'cpan', + 'Module::Pluggable' => 'cpan', + 'Module::Pluggable::Object'=> 'cpan', 'NEXT' => 'cpan', 'Net::Cmd' => undef, 'Net::Config' => undef, @@ -9008,6 +9088,7 @@ for my $version (sort { $a <=> $b } keys %deprecated) { 'Net::Ping' => 'blead', 'Net::SMTP' => undef, 'Net::Time' => undef, + 'Object::Accessor' => 'cpan', 'Package::Constants' => 'cpan', 'Params::Check' => 'cpan', 'Parse::CPAN::Meta' => 'cpan', @@ -9017,6 +9098,7 @@ for my $version (sort { $a <=> $b } keys %deprecated) { 'Pod::Escapes' => undef, 'Pod::Find' => 'cpan', 'Pod::InputObjects' => 'cpan', + 'Pod::LaTeX' => undef, 'Pod::Man' => 'cpan', 'Pod::ParseLink' => 'cpan', 'Pod::ParseUtils' => 'cpan', @@ -9121,6 +9203,8 @@ for my $version (sort { $a <=> $b } keys %deprecated) { 'TAP::Parser::YAMLish::Writer'=> 'cpan', 'Term::ANSIColor' => 'cpan', 'Term::Cap' => undef, + 'Term::UI' => 'cpan', + 'Term::UI::History' => 'cpan', 'Test' => 'cpan', 'Test::Builder' => 'cpan', 'Test::Builder::Module' => 'cpan', @@ -9131,6 +9215,7 @@ for my $version (sort { $a <=> $b } keys %deprecated) { 'Test::Simple' => 'cpan', 'Text::Balanced' => 'cpan', 'Text::ParseWords' => undef, + 'Text::Soundex' => undef, 'Text::Tabs' => 'cpan', 'Text::Wrap' => 'cpan', 'Thread::Queue' => 'blead', @@ -9163,7 +9248,6 @@ for my $version (sort { $a <=> $b } keys %deprecated) { 'autodie::exception' => 'cpan', 'autodie::exception::system'=> 'cpan', 'autodie::hints' => 'cpan', - 'autodie::skip' => 'cpan', 'base' => 'blead', 'bigint' => 'blead', 'bignum' => 'blead', @@ -9190,6 +9274,7 @@ for my $version (sort { $a <=> $b } keys %deprecated) { 'App::Prove::State' => 'http://rt.cpan.org/Public/Dist/Display.html?Name=Test-Harness', 'App::Prove::State::Result'=> 'http://rt.cpan.org/Public/Dist/Display.html?Name=Test-Harness', 'App::Prove::State::Result::Test'=> 'http://rt.cpan.org/Public/Dist/Display.html?Name=Test-Harness', + 'Archive::Extract' => undef, 'Archive::Tar' => undef, 'Archive::Tar::Constant'=> undef, 'Archive::Tar::File' => undef, @@ -9197,6 +9282,8 @@ for my $version (sort { $a <=> $b } keys %deprecated) { 'B::Concise' => undef, 'B::Debug' => undef, 'B::Deparse' => undef, + 'B::Lint' => undef, + 'B::Lint::Debug' => undef, 'CGI' => undef, 'CGI::Apache' => undef, 'CGI::Carp' => undef, @@ -9248,6 +9335,47 @@ for my $version (sort { $a <=> $b } keys %deprecated) { 'CPAN::Tarzip' => undef, 'CPAN::URL' => undef, 'CPAN::Version' => undef, + 'CPANPLUS' => undef, + 'CPANPLUS::Backend' => undef, + 'CPANPLUS::Backend::RV' => undef, + 'CPANPLUS::Config' => undef, + 'CPANPLUS::Config::HomeEnv'=> undef, + 'CPANPLUS::Configure' => undef, + 'CPANPLUS::Configure::Setup'=> undef, + 'CPANPLUS::Dist' => undef, + 'CPANPLUS::Dist::Autobundle'=> undef, + 'CPANPLUS::Dist::Base' => undef, + 'CPANPLUS::Dist::Build' => undef, + 'CPANPLUS::Dist::Build::Constants'=> undef, + 'CPANPLUS::Dist::MM' => undef, + 'CPANPLUS::Dist::Sample'=> undef, + 'CPANPLUS::Error' => undef, + 'CPANPLUS::Internals' => undef, + 'CPANPLUS::Internals::Constants'=> undef, + 'CPANPLUS::Internals::Constants::Report'=> undef, + 'CPANPLUS::Internals::Extract'=> undef, + 'CPANPLUS::Internals::Fetch'=> undef, + 'CPANPLUS::Internals::Report'=> undef, + 'CPANPLUS::Internals::Search'=> undef, + 'CPANPLUS::Internals::Source'=> undef, + 'CPANPLUS::Internals::Source::Memory'=> undef, + 'CPANPLUS::Internals::Source::SQLite'=> undef, + 'CPANPLUS::Internals::Source::SQLite::Tie'=> undef, + 'CPANPLUS::Internals::Utils'=> undef, + 'CPANPLUS::Internals::Utils::Autoflush'=> undef, + 'CPANPLUS::Module' => undef, + 'CPANPLUS::Module::Author'=> undef, + 'CPANPLUS::Module::Author::Fake'=> undef, + 'CPANPLUS::Module::Checksums'=> undef, + 'CPANPLUS::Module::Fake'=> undef, + 'CPANPLUS::Module::Signature'=> undef, + 'CPANPLUS::Selfupdate' => undef, + 'CPANPLUS::Shell' => undef, + 'CPANPLUS::Shell::Classic'=> undef, + 'CPANPLUS::Shell::Default'=> undef, + 'CPANPLUS::Shell::Default::Plugins::CustomSource'=> undef, + 'CPANPLUS::Shell::Default::Plugins::Remote'=> undef, + 'CPANPLUS::Shell::Default::Plugins::Source'=> undef, 'Carp' => undef, 'Carp::Heavy' => undef, 'Compress::Raw::Bzip2' => undef, @@ -9256,6 +9384,7 @@ for my $version (sort { $a <=> $b } keys %deprecated) { 'Config::Perl::V' => undef, 'Cwd' => undef, 'DB_File' => undef, + 'Devel::InnerPackage' => undef, 'Devel::PPPort' => undef, 'Digest' => undef, 'Digest::MD5' => undef, @@ -9337,7 +9466,6 @@ for my $version (sort { $a <=> $b } keys %deprecated) { 'ExtUtils::ParseXS' => undef, 'ExtUtils::ParseXS::Constants'=> undef, 'ExtUtils::ParseXS::CountLines'=> undef, - 'ExtUtils::ParseXS::Eval'=> undef, 'ExtUtils::ParseXS::Utilities'=> undef, 'ExtUtils::Typemaps' => undef, 'ExtUtils::Typemaps::Cmd'=> undef, @@ -9429,6 +9557,11 @@ for my $version (sort { $a <=> $b } keys %deprecated) { 'Locale::Maketext::GutsLoader'=> undef, 'Locale::Maketext::Simple'=> undef, 'Locale::Script' => undef, + 'Log::Message' => undef, + 'Log::Message::Config' => undef, + 'Log::Message::Handlers'=> undef, + 'Log::Message::Item' => undef, + 'Log::Message::Simple' => undef, 'MIME::Base64' => undef, 'MIME::QuotedPrint' => undef, 'Math::BigFloat' => undef, @@ -9483,6 +9616,8 @@ for my $version (sort { $a <=> $b } keys %deprecated) { 'Module::Load::Conditional'=> undef, 'Module::Loaded' => undef, 'Module::Metadata' => undef, + 'Module::Pluggable' => undef, + 'Module::Pluggable::Object'=> undef, 'NEXT' => undef, 'Net::Cmd' => undef, 'Net::Config' => undef, @@ -9499,6 +9634,7 @@ for my $version (sort { $a <=> $b } keys %deprecated) { 'Net::Ping' => undef, 'Net::SMTP' => undef, 'Net::Time' => undef, + 'Object::Accessor' => undef, 'Package::Constants' => undef, 'Params::Check' => undef, 'Parse::CPAN::Meta' => 'https://rt.cpan.org/Public/Dist/Display.html?Name=Parse-CPAN-Meta', @@ -9508,6 +9644,7 @@ for my $version (sort { $a <=> $b } keys %deprecated) { 'Pod::Escapes' => undef, 'Pod::Find' => undef, 'Pod::InputObjects' => undef, + 'Pod::LaTeX' => undef, 'Pod::Man' => undef, 'Pod::ParseLink' => undef, 'Pod::ParseUtils' => undef, @@ -9612,6 +9749,8 @@ for my $version (sort { $a <=> $b } keys %deprecated) { 'TAP::Parser::YAMLish::Writer'=> 'http://rt.cpan.org/Public/Dist/Display.html?Name=Test-Harness', 'Term::ANSIColor' => undef, 'Term::Cap' => undef, + 'Term::UI' => undef, + 'Term::UI::History' => undef, 'Test' => undef, 'Test::Builder' => 'http://github.com/schwern/test-more/issues', 'Test::Builder::Module' => 'http://github.com/schwern/test-more/issues', @@ -9622,6 +9761,7 @@ for my $version (sort { $a <=> $b } keys %deprecated) { 'Test::Simple' => 'http://github.com/schwern/test-more/issues', 'Text::Balanced' => undef, 'Text::ParseWords' => undef, + 'Text::Soundex' => undef, 'Text::Tabs' => undef, 'Text::Wrap' => undef, 'Thread::Queue' => undef, @@ -9652,7 +9792,6 @@ for my $version (sort { $a <=> $b } keys %deprecated) { 'autodie::exception' => 'http://rt.cpan.org/NoAuth/Bugs.html?Dist=autodie', 'autodie::exception::system'=> 'http://rt.cpan.org/NoAuth/Bugs.html?Dist=autodie', 'autodie::hints' => 'http://rt.cpan.org/NoAuth/Bugs.html?Dist=autodie', - 'autodie::skip' => 'http://rt.cpan.org/NoAuth/Bugs.html?Dist=autodie', 'base' => undef, 'bigint' => undef, 'bignum' => undef, diff --git a/inc/bundle/Module/CoreList/TieHashDelta.pm b/inc/bundle/Module/CoreList/TieHashDelta.pm index e5c5d8bc..55256751 100644 --- a/inc/bundle/Module/CoreList/TieHashDelta.pm +++ b/inc/bundle/Module/CoreList/TieHashDelta.pm @@ -3,7 +3,7 @@ package Module::CoreList::TieHashDelta; use strict; use vars qw($VERSION); -$VERSION = "2.94"; +$VERSION = "2.96"; sub TIEHASH { my ($class, $changed, $removed, $parent) = @_; diff --git a/inc/bundle/Module/CoreList/Utils.pm b/inc/bundle/Module/CoreList/Utils.pm new file mode 100644 index 00000000..1aa6d5b9 --- /dev/null +++ b/inc/bundle/Module/CoreList/Utils.pm @@ -0,0 +1,986 @@ +package Module::CoreList::Utils; + +use strict; +use warnings; +use vars qw[$VERSION %utilities]; +use Module::CoreList; +use Module::CoreList::TieHashDelta; + +$VERSION = '2.96'; + +sub utilities { + my $perl = shift; + $perl = shift if eval { $perl->isa(__PACKAGE__) }; + return unless $perl or exists $utilities{$perl}; + return sort keys %{ $utilities{$perl} }; +} + +sub first_release_raw { + my $util = shift; + $util = shift if eval { $util->isa(__PACKAGE__) }; + #and scalar @_ and $_[0] =~ m#\A[a-zA-Z_][0-9a-zA-Z_]*(?:(::|')[0-9a-zA-Z_]+)*\z#; + my $version = shift; + + my @perls = $version + ? grep { exists $utilities{$_}{ $util } && + $utilities{$_}{ $util } ge $version } keys %utilities + : grep { exists $utilities{$_}{ $util } } keys %utilities; + + return grep { exists $Module::CoreList::released{$_} } @perls; +} + +sub first_release_by_date { + my @perls = &first_release_raw; + return unless @perls; + return (sort { $Module::CoreList::released{$a} cmp $Module::CoreList::released{$b} } @perls)[0]; +} + +sub first_release { + my @perls = &first_release_raw; + return unless @perls; + return (sort { $a cmp $b } @perls)[0]; +} + +sub removed_from { + my @perls = &removed_raw; + return shift @perls; +} + +sub removed_from_by_date { + my @perls = sort { $Module::CoreList::released{$a} cmp $Module::CoreList::released{$b} } &removed_raw; + return shift @perls; +} + +sub removed_raw { + my $util = shift; + $util = shift if eval { $util->isa(__PACKAGE__) }; + return unless my @perls = sort { $a cmp $b } first_release_raw($util); + @perls = grep { exists $Module::CoreList::released{$_} } @perls; + my $last = pop @perls; + my @removed = grep { $_ > $last } sort { $a cmp $b } keys %utilities; + return @removed; +} + +my %delta = ( + 5 => { + changed => { + 'a2p' => '1', + 'c2ph' => '1', + 'cppstdin' => '1', + 'find2perl' => '1', + 'pstruct' => '1', + 's2p' => '1', + }, + removed => { + } + }, + + 5.001 => { + delta_from => 5, + changed => { + 'h2xs' => '1', + }, + removed => { + } + }, + + 5.002 => { + delta_from => 5.001, + changed => { + 'h2ph' => '1', + 'perlbug' => '1', + 'perldoc' => '1', + 'pod2html' => '1', + 'pod2latex' => '1', + 'pod2man' => '1', + 'pod2text' => '1', + }, + removed => { + } + }, + + 5.00307 => { + delta_from => 5.002, + changed => { + 'pl2pm' => '1', + }, + removed => { + 'cppstdin' => 1, + 'pstruct' => 1, + } + }, + + 5.004 => { + delta_from => 5.00307, + changed => { + 'splain' => '1', + }, + removed => { + } + }, + + 5.005 => { + delta_from => 5.00405, + changed => { + 'perlcc' => '1', + }, + removed => { + } + }, + + 5.00503 => { + delta_from => 5.005, + changed => { + }, + removed => { + } + }, + + 5.00405 => { + delta_from => 5.004, + changed => { + }, + removed => { + } + }, + + 5.006 => { + delta_from => 5.00504, + changed => { + 'dprofpp' => '1', + 'pod2usage' => '1', + 'podchecker' => '1', + 'podselect' => '1', + 'pstruct' => '1', + }, + removed => { + } + }, + + 5.006001 => { + delta_from => 5.006, + changed => { + }, + removed => { + } + }, + + 5.007003 => { + delta_from => 5.006002, + changed => { + 'libnetcfg' => '1', + 'perlivp' => '1', + 'psed' => '1', + 'xsubpp' => '1', + }, + removed => { + } + }, + + 5.008 => { + delta_from => 5.007003, + changed => { + 'enc2xs' => '1', + 'piconv' => '1', + }, + removed => { + } + }, + + 5.008001 => { + delta_from => 5.008, + changed => { + 'cpan' => '1', + }, + removed => { + } + }, + + 5.009 => { + delta_from => 5.008009, + changed => { + }, + removed => { + 'corelist' => 1, + 'instmodsh' => 1, + 'prove' => 1, + } + }, + + 5.008002 => { + delta_from => 5.008001, + changed => { + }, + removed => { + } + }, + + 5.006002 => { + delta_from => 5.006001, + changed => { + }, + removed => { + } + }, + + 5.008003 => { + delta_from => 5.008002, + changed => { + 'instmodsh' => '1', + 'prove' => '1', + }, + removed => { + } + }, + + 5.00504 => { + delta_from => 5.00503, + changed => { + }, + removed => { + } + }, + + 5.009001 => { + delta_from => 5.009, + changed => { + 'instmodsh' => '1', + 'prove' => '1', + }, + removed => { + } + }, + + 5.008004 => { + delta_from => 5.008003, + changed => { + }, + removed => { + } + }, + + 5.008005 => { + delta_from => 5.008004, + changed => { + }, + removed => { + } + }, + + 5.008006 => { + delta_from => 5.008005, + changed => { + }, + removed => { + } + }, + + 5.009002 => { + delta_from => 5.009001, + changed => { + 'corelist' => '1', + }, + removed => { + } + }, + + 5.008007 => { + delta_from => 5.008006, + changed => { + }, + removed => { + } + }, + + 5.009003 => { + delta_from => 5.009002, + changed => { + 'ptar' => '1', + 'ptardiff' => '1', + 'shasum' => '1', + }, + removed => { + } + }, + + 5.008008 => { + delta_from => 5.008007, + changed => { + }, + removed => { + } + }, + + 5.009004 => { + delta_from => 5.009003, + changed => { + 'config_data' => '1', + }, + removed => { + } + }, + + 5.009005 => { + delta_from => 5.009004, + changed => { + 'cpan2dist' => '1', + 'cpanp' => '1', + 'cpanp-run-perl' => '1', + }, + removed => { + 'perlcc' => 1, + } + }, + + 5.010000 => { + delta_from => 5.009005, + changed => { + }, + removed => { + } + }, + + 5.008009 => { + delta_from => 5.008008, + changed => { + 'corelist' => '1', + }, + removed => { + } + }, + + 5.010001 => { + delta_from => 5.010000, + changed => { + }, + removed => { + } + }, + + 5.011 => { + delta_from => 5.010001, + changed => { + }, + removed => { + } + }, + + 5.011001 => { + delta_from => 5.011, + changed => { + }, + removed => { + } + }, + + 5.011002 => { + delta_from => 5.011001, + changed => { + 'perlthanks' => '1', + }, + removed => { + } + }, + + 5.011003 => { + delta_from => 5.011002, + changed => { + }, + removed => { + } + }, + + 5.011004 => { + delta_from => 5.011003, + changed => { + }, + removed => { + } + }, + + 5.011005 => { + delta_from => 5.011004, + changed => { + }, + removed => { + } + }, + + 5.012 => { + delta_from => 5.011005, + changed => { + }, + removed => { + } + }, + + 5.013 => { + delta_from => 5.012005, + changed => { + }, + removed => { + } + }, + + 5.012001 => { + delta_from => 5.012, + changed => { + }, + removed => { + } + }, + + 5.013001 => { + delta_from => 5.013, + changed => { + }, + removed => { + } + }, + + 5.013002 => { + delta_from => 5.013001, + changed => { + }, + removed => { + } + }, + + 5.013003 => { + delta_from => 5.013002, + changed => { + }, + removed => { + } + }, + + 5.013004 => { + delta_from => 5.013003, + changed => { + }, + removed => { + } + }, + + 5.012002 => { + delta_from => 5.012001, + changed => { + }, + removed => { + } + }, + + 5.013005 => { + delta_from => 5.013004, + changed => { + }, + removed => { + } + }, + + 5.013006 => { + delta_from => 5.013005, + changed => { + }, + removed => { + } + }, + + 5.013007 => { + delta_from => 5.013006, + changed => { + 'ptargrep' => '1', + }, + removed => { + } + }, + + 5.013008 => { + delta_from => 5.013007, + changed => { + }, + removed => { + } + }, + + 5.013009 => { + delta_from => 5.013008, + changed => { + 'json_pp' => '1', + }, + removed => { + } + }, + + 5.012003 => { + delta_from => 5.012002, + changed => { + }, + removed => { + } + }, + + 5.013010 => { + delta_from => 5.013009, + changed => { + }, + removed => { + } + }, + + 5.013011 => { + delta_from => 5.013010, + changed => { + }, + removed => { + } + }, + + 5.014 => { + delta_from => 5.013011, + changed => { + }, + removed => { + } + }, + + 5.014001 => { + delta_from => 5.014, + changed => { + }, + removed => { + } + }, + + 5.015 => { + delta_from => 5.014004, + changed => { + }, + removed => { + 'dprofpp' => 1, + } + }, + + 5.012004 => { + delta_from => 5.012003, + changed => { + }, + removed => { + } + }, + + 5.015001 => { + delta_from => 5.015, + changed => { + }, + removed => { + } + }, + + 5.015002 => { + delta_from => 5.015001, + changed => { + }, + removed => { + } + }, + + 5.015003 => { + delta_from => 5.015002, + changed => { + }, + removed => { + } + }, + + 5.014002 => { + delta_from => 5.014001, + changed => { + }, + removed => { + } + }, + + 5.015004 => { + delta_from => 5.015003, + changed => { + }, + removed => { + } + }, + + 5.015005 => { + delta_from => 5.015004, + changed => { + }, + removed => { + } + }, + + 5.015006 => { + delta_from => 5.015005, + changed => { + 'zipdetails' => '1', + }, + removed => { + } + }, + + 5.015007 => { + delta_from => 5.015006, + changed => { + }, + removed => { + } + }, + + 5.015008 => { + delta_from => 5.015007, + changed => { + }, + removed => { + } + }, + + 5.015009 => { + delta_from => 5.015008, + changed => { + }, + removed => { + } + }, + + 5.016 => { + delta_from => 5.015009, + changed => { + }, + removed => { + } + }, + + 5.017 => { + delta_from => 5.016003, + changed => { + }, + removed => { + } + }, + + 5.017001 => { + delta_from => 5.017, + changed => { + }, + removed => { + } + }, + + 5.017002 => { + delta_from => 5.017001, + changed => { + }, + removed => { + } + }, + + 5.016001 => { + delta_from => 5.016, + changed => { + }, + removed => { + } + }, + + 5.017003 => { + delta_from => 5.017002, + changed => { + }, + removed => { + } + }, + + 5.017004 => { + delta_from => 5.017003, + changed => { + }, + removed => { + } + }, + + 5.014003 => { + delta_from => 5.014002, + changed => { + }, + removed => { + } + }, + + 5.017005 => { + delta_from => 5.017004, + changed => { + }, + removed => { + } + }, + + 5.016002 => { + delta_from => 5.016001, + changed => { + }, + removed => { + } + }, + + 5.012005 => { + delta_from => 5.012004, + changed => { + }, + removed => { + } + }, + + 5.017006 => { + delta_from => 5.017005, + changed => { + }, + removed => { + } + }, + + 5.017007 => { + delta_from => 5.017006, + changed => { + }, + removed => { + } + }, + + 5.017008 => { + delta_from => 5.017007, + changed => { + }, + removed => { + } + }, + + 5.017009 => { + delta_from => 5.017008, + changed => { + }, + removed => { + } + }, + + 5.014004 => { + delta_from => 5.014003, + changed => { + }, + removed => { + } + }, + + 5.016003 => { + delta_from => 5.016002, + changed => { + }, + removed => { + } + }, + + 5.017010 => { + delta_from => 5.017009, + changed => { + }, + removed => { + } + }, + + 5.017011 => { + delta_from => 5.017010, + changed => { + }, + removed => { + } + }, + 5.018000 => { + delta_from => 5.017011, + changed => { + }, + removed => { + } + }, + 5.018001 => { + delta_from => 5.018000, + changed => { + }, + removed => { + } + }, + 5.019000 => { + delta_from => 5.018000, + changed => { + }, + removed => { + 'cpan2dist' => '1', + 'cpanp' => '1', + 'cpanp-run-perl' => '1', + 'pod2latex' => '1', + } + }, + 5.019001 => { + delta_from => 5.019000, + changed => { + }, + removed => { + } + }, + 5.019002 => { + delta_from => 5.019001, + changed => { + }, + removed => { + } + }, + 5.019003 => { + delta_from => 5.019002, + changed => { + }, + removed => { + } + }, +); + +for my $version (sort { $a <=> $b } keys %delta) { + my $data = $delta{$version}; + + tie %{$utilities{$version}}, 'Module::CoreList::TieHashDelta', + $data->{changed}, $data->{removed}, + $data->{delta_from} ? $utilities{$data->{delta_from}} : undef; +} + +# Create aliases with trailing zeros for $] use + +$utilities{'5.000'} = $utilities{5}; + +_create_aliases(\%utilities); + +sub _create_aliases { + my ($hash) = @_; + + for my $version (keys %$hash) { + next unless $version >= 5.010; + + my $padded = sprintf "%0.6f", $version; + + # If the version in string form isn't the same as the numeric version, + # alias it. + if ($padded ne $version && $version == $padded) { + $hash->{$padded} = $hash->{$version}; + } + } +} + +'foo'; + +=pod + +=head1 NAME + +Module::CoreList::Utils - what utilities shipped with versions of perl + +=head1 SYNOPSIS + + use Module::CoreList::Utils; + + print $Module::CoreList::Utils::utilities{5.009003}{ptar}; # prints 1 + + print Module::CoreList::Utils->first_release('corelist'); # prints 5.008009 + print Module::CoreList::Utils->first_release_by_date('corelist'); # prints 5.009002 + +=head1 DESCRIPTION + +Module::CoreList::Utils provides information on which core and dual-life utilities shipped +with each version of L. + +It provides a number of mechanisms for querying this information. + +There is a functional programming API available for programmers to query +information. + +Programmers may also query the contained hash structure to find relevant +information. + +=head1 FUNCTIONS API + +These are the functions that are available, they may either be called as functions or class methods: + + Module::CoreList::Utils::first_release('corelist'); # as a function + + Module::CoreList::Utils->first_release('corelist'); # class method + +=over + +=item C + +Requires a perl version as an argument, returns a list of utilities that shipped with +that version of perl, or undef/empty list if that perl doesn't exist. + +=item C + +Requires a UTILITY name as an argument, returns the perl version when that utility first +appeared in core as ordered by perl version number or undef ( in scalar context ) +or an empty list ( in list context ) if that utility is not in core. + +=item C + +Requires a UTILITY name as an argument, returns the perl version when that utility first +appeared in core as ordered by release date or undef ( in scalar context ) +or an empty list ( in list context ) if that utility is not in core. + +=item C + +Takes a UTILITY name as an argument, returns the first perl version where that utility +was removed from core. Returns undef if the given utility was never in core or remains +in core. + +=item C + +Takes a UTILITY name as an argument, returns the first perl version by release date where that +utility was removed from core. Returns undef if the given utility was never in core or remains +in core. + +=back + +=head1 DATA STRUCTURES + +These are the hash data structures that are available: + +=over + +=item C<%Module::CoreList::Utils::utilities> + +A hash of hashes that is keyed on perl version as indicated +in $]. The second level hash is utility / defined pairs. + +=back + +=head1 AUTHOR + +Chris C Williams + +Currently maintained by the perl 5 porters Eperl5-porters@perl.orgE. + +This module is the result of archaeology undertaken during QA Hackathon +in Lancaster, April 2013. + +=head1 LICENSE + +Copyright (C) 2013 Chris Williams. All Rights Reserved. + +This module is free software; you can redistribute it and/or modify it +under the same terms as Perl itself. + +=head1 SEE ALSO + +L, L, L, L + +=cut diff --git a/lib/CPANPLUS.pm b/lib/CPANPLUS.pm index 64453ce6..6db2b45e 100644 --- a/lib/CPANPLUS.pm +++ b/lib/CPANPLUS.pm @@ -13,7 +13,7 @@ BEGIN { use vars qw( @EXPORT @ISA $VERSION ); @EXPORT = qw( shell fetch get install ); @ISA = qw( Exporter ); - $VERSION = "0.9140"; #have to hardcode or cpan.org gets unhappy + $VERSION = "0.9142"; #have to hardcode or cpan.org gets unhappy } ### purely for backward compatibility, so we can call it from the commandline: diff --git a/lib/CPANPLUS/Backend.pm b/lib/CPANPLUS/Backend.pm index 94a69b58..b61d6bb9 100644 --- a/lib/CPANPLUS/Backend.pm +++ b/lib/CPANPLUS/Backend.pm @@ -23,7 +23,7 @@ $Params::Check::VERBOSE = 1; use vars qw[@ISA $VERSION]; @ISA = qw[CPANPLUS::Internals]; -$VERSION = "0.9140"; +$VERSION = "0.9142"; ### mark that we're running under CPANPLUS to spawned processes $ENV{'PERL5_CPANPLUS_IS_RUNNING'} = $$; @@ -1112,7 +1112,7 @@ sub autobundle { print $fh < 'CPANPLUS', Style => 'gettext'; use vars qw[$VERSION]; -$VERSION = "0.9140"; +$VERSION = "0.9142"; use base 'Object::Accessor'; diff --git a/lib/CPANPLUS/Dist/Autobundle.pm b/lib/CPANPLUS/Dist/Autobundle.pm index 00573a95..76bc4ce9 100644 --- a/lib/CPANPLUS/Dist/Autobundle.pm +++ b/lib/CPANPLUS/Dist/Autobundle.pm @@ -6,7 +6,7 @@ use CPANPLUS::Error qw[error msg]; use Params::Check qw[check]; use Locale::Maketext::Simple Class => 'CPANPLUS', Style => 'gettext'; use vars qw[$VERSION]; -$VERSION = "0.9140"; +$VERSION = "0.9142"; use base qw[CPANPLUS::Dist::Base]; diff --git a/lib/CPANPLUS/Dist/Base.pm b/lib/CPANPLUS/Dist/Base.pm index a7de2de9..386f9577 100644 --- a/lib/CPANPLUS/Dist/Base.pm +++ b/lib/CPANPLUS/Dist/Base.pm @@ -4,7 +4,7 @@ use strict; use base qw[CPANPLUS::Dist]; use vars qw[$VERSION]; -$VERSION = "0.9140"; +$VERSION = "0.9142"; =head1 NAME diff --git a/lib/CPANPLUS/Dist/MM.pm b/lib/CPANPLUS/Dist/MM.pm index 66aebffd..e9ce0e45 100644 --- a/lib/CPANPLUS/Dist/MM.pm +++ b/lib/CPANPLUS/Dist/MM.pm @@ -4,7 +4,7 @@ use strict; use warnings; use vars qw[@ISA $STATUS $VERSION]; use base 'CPANPLUS::Dist::Base'; -$VERSION = "0.9140"; +$VERSION = "0.9142"; use CPANPLUS::Internals::Constants; use CPANPLUS::Internals::Constants::Report; diff --git a/lib/CPANPLUS/Dist/Sample.pm b/lib/CPANPLUS/Dist/Sample.pm index a012e345..6d2c2875 100644 --- a/lib/CPANPLUS/Dist/Sample.pm +++ b/lib/CPANPLUS/Dist/Sample.pm @@ -1,7 +1,7 @@ package CPANPLUS::Dist::Sample; use vars qw[$VERSION]; -$VERSION = "0.9140"; +$VERSION = "0.9142"; =pod diff --git a/lib/CPANPLUS/Error.pm b/lib/CPANPLUS/Error.pm index 5cc881ba..8282dbb5 100644 --- a/lib/CPANPLUS/Error.pm +++ b/lib/CPANPLUS/Error.pm @@ -2,7 +2,7 @@ package CPANPLUS::Error; use strict; use vars qw[$VERSION]; -$VERSION = "0.9140"; +$VERSION = "0.9142"; use Log::Message private => 0;; diff --git a/lib/CPANPLUS/Internals.pm b/lib/CPANPLUS/Internals.pm index b6522040..56390854 100644 --- a/lib/CPANPLUS/Internals.pm +++ b/lib/CPANPLUS/Internals.pm @@ -39,7 +39,7 @@ use vars qw[@ISA $VERSION]; CPANPLUS::Internals::Report ]; -$VERSION = "0.9140"; +$VERSION = "0.9142"; =pod diff --git a/lib/CPANPLUS/Internals/Constants.pm b/lib/CPANPLUS/Internals/Constants.pm index 8d1c7566..19cd569e 100644 --- a/lib/CPANPLUS/Internals/Constants.pm +++ b/lib/CPANPLUS/Internals/Constants.pm @@ -13,7 +13,7 @@ use vars qw[$VERSION @ISA @EXPORT]; use Package::Constants; -$VERSION = "0.9140"; +$VERSION = "0.9142"; @ISA = qw[Exporter]; @EXPORT = Package::Constants->list( __PACKAGE__ ); diff --git a/lib/CPANPLUS/Internals/Constants/Report.pm b/lib/CPANPLUS/Internals/Constants/Report.pm index 56a95d1b..777b757e 100644 --- a/lib/CPANPLUS/Internals/Constants/Report.pm +++ b/lib/CPANPLUS/Internals/Constants/Report.pm @@ -14,7 +14,7 @@ use Package::Constants; ### for the version require CPANPLUS::Internals; -$VERSION = "0.9140"; +$VERSION = "0.9142"; @ISA = qw[Exporter]; @EXPORT = Package::Constants->list( __PACKAGE__ ); diff --git a/lib/CPANPLUS/Internals/Extract.pm b/lib/CPANPLUS/Internals/Extract.pm index 0cd73e37..868c6f7d 100644 --- a/lib/CPANPLUS/Internals/Extract.pm +++ b/lib/CPANPLUS/Internals/Extract.pm @@ -14,7 +14,7 @@ use Module::Load::Conditional qw[can_load check_install]; use Locale::Maketext::Simple Class => 'CPANPLUS', Style => 'gettext'; use vars qw[$VERSION]; -$VERSION = "0.9140"; +$VERSION = "0.9142"; local $Params::Check::VERBOSE = 1; diff --git a/lib/CPANPLUS/Internals/Fetch.pm b/lib/CPANPLUS/Internals/Fetch.pm index bfa36500..ab5168b0 100644 --- a/lib/CPANPLUS/Internals/Fetch.pm +++ b/lib/CPANPLUS/Internals/Fetch.pm @@ -13,7 +13,7 @@ use Params::Check qw[check]; use Module::Load::Conditional qw[can_load]; use Locale::Maketext::Simple Class => 'CPANPLUS', Style => 'gettext'; use vars qw[$VERSION]; -$VERSION = "0.9140"; +$VERSION = "0.9142"; $Params::Check::VERBOSE = 1; diff --git a/lib/CPANPLUS/Internals/Report.pm b/lib/CPANPLUS/Internals/Report.pm index ea1afaa5..8752864c 100644 --- a/lib/CPANPLUS/Internals/Report.pm +++ b/lib/CPANPLUS/Internals/Report.pm @@ -14,7 +14,7 @@ use Locale::Maketext::Simple Class => 'CPANPLUS', Style => 'gettext'; use version; use vars qw[$VERSION]; -$VERSION = "0.9140"; +$VERSION = "0.9142"; $Params::Check::VERBOSE = 1; diff --git a/lib/CPANPLUS/Internals/Search.pm b/lib/CPANPLUS/Internals/Search.pm index e1522903..049e72ae 100644 --- a/lib/CPANPLUS/Internals/Search.pm +++ b/lib/CPANPLUS/Internals/Search.pm @@ -14,7 +14,7 @@ use Params::Check qw[check allow]; use Locale::Maketext::Simple Class => 'CPANPLUS', Style => 'gettext'; use vars qw[$VERSION]; -$VERSION = "0.9140"; +$VERSION = "0.9142"; $Params::Check::VERBOSE = 1; diff --git a/lib/CPANPLUS/Internals/Source.pm b/lib/CPANPLUS/Internals/Source.pm index 5e5cf0cc..f43dca55 100644 --- a/lib/CPANPLUS/Internals/Source.pm +++ b/lib/CPANPLUS/Internals/Source.pm @@ -19,7 +19,7 @@ use Module::Load::Conditional qw[can_load]; use Locale::Maketext::Simple Class => 'CPANPLUS', Style => 'gettext'; use vars qw[$VERSION]; -$VERSION = "0.9140"; +$VERSION = "0.9142"; $Params::Check::VERBOSE = 1; diff --git a/lib/CPANPLUS/Internals/Source/Memory.pm b/lib/CPANPLUS/Internals/Source/Memory.pm index 576410f0..9b1e9aa3 100644 --- a/lib/CPANPLUS/Internals/Source/Memory.pm +++ b/lib/CPANPLUS/Internals/Source/Memory.pm @@ -21,7 +21,7 @@ use Module::Load::Conditional qw[can_load]; use Locale::Maketext::Simple Class => 'CPANPLUS', Style => 'gettext'; use vars qw[$VERSION]; -$VERSION = "0.9140"; +$VERSION = "0.9142"; $Params::Check::VERBOSE = 1; diff --git a/lib/CPANPLUS/Internals/Source/SQLite.pm b/lib/CPANPLUS/Internals/Source/SQLite.pm index 5b05b774..113a0c2f 100644 --- a/lib/CPANPLUS/Internals/Source/SQLite.pm +++ b/lib/CPANPLUS/Internals/Source/SQLite.pm @@ -17,7 +17,7 @@ use Params::Check qw[allow check]; use Locale::Maketext::Simple Class => 'CPANPLUS', Style => 'gettext'; use vars qw[$VERSION]; -$VERSION = "0.9140"; +$VERSION = "0.9142"; use constant TXN_COMMIT => 1000; diff --git a/lib/CPANPLUS/Internals/Source/SQLite/Tie.pm b/lib/CPANPLUS/Internals/Source/SQLite/Tie.pm index 25d33946..0cc5e6f7 100644 --- a/lib/CPANPLUS/Internals/Source/SQLite/Tie.pm +++ b/lib/CPANPLUS/Internals/Source/SQLite/Tie.pm @@ -14,7 +14,7 @@ use Module::Load::Conditional qw[can_load]; use Locale::Maketext::Simple Class => 'CPANPLUS', Style => 'gettext'; use vars qw[@ISA $VERSION]; -$VERSION = "0.9140"; +$VERSION = "0.9142"; require Tie::Hash; push @ISA, 'Tie::StdHash'; diff --git a/lib/CPANPLUS/Internals/Utils.pm b/lib/CPANPLUS/Internals/Utils.pm index 4e80501f..f9171c8d 100644 --- a/lib/CPANPLUS/Internals/Utils.pm +++ b/lib/CPANPLUS/Internals/Utils.pm @@ -13,7 +13,7 @@ use Locale::Maketext::Simple Class => 'CPANPLUS', Style => 'gettext'; use version; use vars qw[$VERSION]; -$VERSION = "0.9140"; +$VERSION = "0.9142"; local $Params::Check::VERBOSE = 1; diff --git a/lib/CPANPLUS/Internals/Utils/Autoflush.pm b/lib/CPANPLUS/Internals/Utils/Autoflush.pm index f8960930..90198059 100644 --- a/lib/CPANPLUS/Internals/Utils/Autoflush.pm +++ b/lib/CPANPLUS/Internals/Utils/Autoflush.pm @@ -1,7 +1,7 @@ package CPANPLUS::Internals::Utils::Autoflush; use vars qw[$VERSION]; -$VERSION = "0.9140"; +$VERSION = "0.9142"; BEGIN { $|++ }; diff --git a/lib/CPANPLUS/Module.pm b/lib/CPANPLUS/Module.pm index 1b7e0bee..583d2c53 100644 --- a/lib/CPANPLUS/Module.pm +++ b/lib/CPANPLUS/Module.pm @@ -2,7 +2,7 @@ package CPANPLUS::Module; use strict; use vars qw[@ISA $VERSION]; -$VERSION = "0.9140"; +$VERSION = "0.9142"; use CPANPLUS::Dist; use CPANPLUS::Error; diff --git a/lib/CPANPLUS/Module/Author.pm b/lib/CPANPLUS/Module/Author.pm index 44ab20fb..6bd74fb2 100644 --- a/lib/CPANPLUS/Module/Author.pm +++ b/lib/CPANPLUS/Module/Author.pm @@ -7,7 +7,7 @@ use CPANPLUS::Internals::Constants; use Params::Check qw[check]; use Locale::Maketext::Simple Class => 'CPANPLUS', Style => 'gettext'; use vars qw[$VERSION]; -$VERSION = "0.9140"; +$VERSION = "0.9142"; local $Params::Check::VERBOSE = 1; diff --git a/lib/CPANPLUS/Module/Author/Fake.pm b/lib/CPANPLUS/Module/Author/Fake.pm index 6b4e24ee..e320d94e 100644 --- a/lib/CPANPLUS/Module/Author/Fake.pm +++ b/lib/CPANPLUS/Module/Author/Fake.pm @@ -9,7 +9,7 @@ use strict; use vars qw[@ISA $VERSION]; use Params::Check qw[check]; -$VERSION = "0.9140"; +$VERSION = "0.9142"; @ISA = qw[CPANPLUS::Module::Author]; diff --git a/lib/CPANPLUS/Module/Checksums.pm b/lib/CPANPLUS/Module/Checksums.pm index e9493473..14bedf64 100644 --- a/lib/CPANPLUS/Module/Checksums.pm +++ b/lib/CPANPLUS/Module/Checksums.pm @@ -15,7 +15,7 @@ use Module::Load::Conditional qw[can_load]; $Params::Check::VERBOSE = 1; @ISA = qw[ CPANPLUS::Module::Signature ]; -$VERSION = "0.9140"; +$VERSION = "0.9142"; =head1 NAME diff --git a/lib/CPANPLUS/Module/Fake.pm b/lib/CPANPLUS/Module/Fake.pm index f3a3bd9e..c3cbb6e8 100644 --- a/lib/CPANPLUS/Module/Fake.pm +++ b/lib/CPANPLUS/Module/Fake.pm @@ -10,7 +10,7 @@ use strict; use vars qw[@ISA $VERSION]; use Params::Check qw[check]; -$VERSION = "0.9140"; +$VERSION = "0.9142"; @ISA = qw[CPANPLUS::Module]; $Params::Check::VERBOSE = 1; diff --git a/lib/CPANPLUS/Module/Signature.pm b/lib/CPANPLUS/Module/Signature.pm index 16f00d53..a8cde1ba 100644 --- a/lib/CPANPLUS/Module/Signature.pm +++ b/lib/CPANPLUS/Module/Signature.pm @@ -7,7 +7,7 @@ use CPANPLUS::Error; use Params::Check qw[check]; use Module::Load::Conditional qw[can_load]; use vars qw[$VERSION]; -$VERSION = "0.9140"; +$VERSION = "0.9142"; ### detached sig, not actually used afaik --kane ### #sub get_signature { diff --git a/lib/CPANPLUS/Selfupdate.pm b/lib/CPANPLUS/Selfupdate.pm index 5f9dd860..03ee814e 100644 --- a/lib/CPANPLUS/Selfupdate.pm +++ b/lib/CPANPLUS/Selfupdate.pm @@ -10,7 +10,7 @@ use Locale::Maketext::Simple Class => 'CPANPLUS', Style => 'gettext'; use CPANPLUS::Internals::Constants; use vars qw[$VERSION]; -$VERSION = "0.9140"; +$VERSION = "0.9142"; $Params::Check::VERBOSE = 1; diff --git a/lib/CPANPLUS/Shell.pm b/lib/CPANPLUS/Shell.pm index d724b416..a6139486 100644 --- a/lib/CPANPLUS/Shell.pm +++ b/lib/CPANPLUS/Shell.pm @@ -14,7 +14,7 @@ $Params::Check::VERBOSE = 1; use vars qw[@ISA $SHELL $DEFAULT $VERSION]; -$VERSION = "0.9140"; +$VERSION = "0.9142"; $DEFAULT = SHELL_DEFAULT; =pod diff --git a/lib/CPANPLUS/Shell/Classic.pm b/lib/CPANPLUS/Shell/Classic.pm index 1fbc5a79..3f411514 100644 --- a/lib/CPANPLUS/Shell/Classic.pm +++ b/lib/CPANPLUS/Shell/Classic.pm @@ -30,7 +30,7 @@ $Params::Check::ALLOW_UNKNOWN = 1; BEGIN { use vars qw[ $VERSION @ISA ]; @ISA = qw[ CPANPLUS::Shell::_Base::ReadLine ]; - $VERSION = "0.9140"; + $VERSION = "0.9142"; } load CPANPLUS::Shell; diff --git a/lib/CPANPLUS/Shell/Default.pm b/lib/CPANPLUS/Shell/Default.pm index 25b5b679..c387783e 100644 --- a/lib/CPANPLUS/Shell/Default.pm +++ b/lib/CPANPLUS/Shell/Default.pm @@ -26,7 +26,7 @@ local $Data::Dumper::Indent = 1; # for dumpering from ! BEGIN { use vars qw[ $VERSION @ISA ]; @ISA = qw[ CPANPLUS::Shell::_Base::ReadLine ]; - $VERSION = "0.9140"; + $VERSION = "0.9142"; } load CPANPLUS::Shell; diff --git a/lib/CPANPLUS/Shell/Default/Plugins/CustomSource.pm b/lib/CPANPLUS/Shell/Default/Plugins/CustomSource.pm index 58771686..540500d4 100644 --- a/lib/CPANPLUS/Shell/Default/Plugins/CustomSource.pm +++ b/lib/CPANPLUS/Shell/Default/Plugins/CustomSource.pm @@ -8,7 +8,7 @@ use Data::Dumper; use Locale::Maketext::Simple Class => 'CPANPLUS', Style => 'gettext'; use vars qw[$VERSION]; -$VERSION = "0.9140"; +$VERSION = "0.9142"; =head1 NAME diff --git a/lib/CPANPLUS/Shell/Default/Plugins/Remote.pm b/lib/CPANPLUS/Shell/Default/Plugins/Remote.pm index 4dfd2582..f60893ef 100644 --- a/lib/CPANPLUS/Shell/Default/Plugins/Remote.pm +++ b/lib/CPANPLUS/Shell/Default/Plugins/Remote.pm @@ -8,7 +8,7 @@ use CPANPLUS::Error qw[error msg]; use Locale::Maketext::Simple Class => 'CPANPLUS', Style => 'gettext'; use vars qw[$VERSION]; -$VERSION = "0.9140"; +$VERSION = "0.9142"; =head1 NAME diff --git a/lib/CPANPLUS/Shell/Default/Plugins/Source.pm b/lib/CPANPLUS/Shell/Default/Plugins/Source.pm index 439fce25..a89332b1 100644 --- a/lib/CPANPLUS/Shell/Default/Plugins/Source.pm +++ b/lib/CPANPLUS/Shell/Default/Plugins/Source.pm @@ -5,7 +5,7 @@ use CPANPLUS::Error qw[error msg]; use Locale::Maketext::Simple Class => 'CPANPLUS', Style => 'gettext'; use vars qw[$VERSION]; -$VERSION = "0.9140"; +$VERSION = "0.9142"; =head1 NAME