summaryrefslogtreecommitdiffstats
path: root/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/CPAN
diff options
context:
space:
mode:
authorJocelyn Turcotte <jocelyn.turcotte@digia.com>2014-08-08 14:30:41 +0200
committerJocelyn Turcotte <jocelyn.turcotte@digia.com>2014-08-12 13:49:54 +0200
commitab0a50979b9eb4dfa3320eff7e187e41efedf7a9 (patch)
tree498dfb8a97ff3361a9f7486863a52bb4e26bb898 /chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/CPAN
parent4ce69f7403811819800e7c5ae1318b2647e778d1 (diff)
Update Chromium to beta version 37.0.2062.68
Change-Id: I188e3b5aff1bec75566014291b654eb19f5bc8ca Reviewed-by: Andras Becsi <andras.becsi@digia.com>
Diffstat (limited to 'chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/CPAN')
-rw-r--r--chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/CPAN/API/HOWTO.pm44
-rw-r--r--chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/CPAN/Admin.pm230
-rw-r--r--chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/CPAN/Debug.pm79
-rw-r--r--chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/CPAN/DeferedCode.pm16
-rw-r--r--chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/CPAN/FirstTime.pm1636
-rw-r--r--chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/CPAN/HandleConfig.pm719
-rw-r--r--chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/CPAN/Kwalify.pm130
-rw-r--r--chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/CPAN/Kwalify/distroprefs.dd137
-rw-r--r--chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/CPAN/Kwalify/distroprefs.yml84
-rw-r--r--chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/CPAN/Nox.pm51
-rw-r--r--chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/CPAN/Queue.pm193
-rw-r--r--chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/CPAN/Reporter.pm1487
-rw-r--r--chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/CPAN/Reporter.pod224
-rw-r--r--chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/CPAN/Reporter/API.pod135
-rw-r--r--chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/CPAN/Reporter/Config.pm764
-rw-r--r--chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/CPAN/Reporter/Config.pod342
-rw-r--r--chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/CPAN/Reporter/FAQ.pod138
-rw-r--r--chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/CPAN/Reporter/History.pm404
-rw-r--r--chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/CPAN/Reporter/History.pod130
-rw-r--r--chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/CPAN/Reporter/PrereqCheck.pm182
-rw-r--r--chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/CPAN/Reporter/PrereqCheck.pod75
-rw-r--r--chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/CPAN/Tarzip.pm352
-rw-r--r--chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/CPAN/Version.pm173
23 files changed, 0 insertions, 7725 deletions
diff --git a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/CPAN/API/HOWTO.pm b/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/CPAN/API/HOWTO.pm
deleted file mode 100644
index e65a4bc9313..00000000000
--- a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/CPAN/API/HOWTO.pm
+++ /dev/null
@@ -1,44 +0,0 @@
-=head1 NAME
-
-CPAN::API::HOWTO - a recipe book for programming with CPAN.pm
-
-=head1 RECIPES
-
-All of these recipes assume that you have put "use CPAN" at the top of
-your program.
-
-=head2 What distribution contains a particular module?
-
- my $distribution = CPAN::Shell->expand(
- "Module", "Data::UUID"
- )->distribution()->pretty_id();
-
-This returns a string of the form "AUTHORID/TARBALL". If you want the
-full path and filename to this distribution on a CPAN mirror, then it is
-C<.../authors/id/A/AU/AUTHORID/TARBALL>.
-
-=head2 What modules does a particular distribution contain?
-
- CPAN::Index->reload();
- my @modules = CPAN::Shell->expand(
- "Distribution", "JHI/Graph-0.83.tar.gz"
- )->containsmods();
-
-You may also refer to a distribution in the form A/AU/AUTHORID/TARBALL.
-
-=head1 SEE ALSO
-
-the main CPAN.pm documentation
-
-=head1 LICENSE
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See L<http://www.perl.com/perl/misc/Artistic.html>
-
-=head1 AUTHOR
-
-David Cantrell
-
-=cut
diff --git a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/CPAN/Admin.pm b/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/CPAN/Admin.pm
deleted file mode 100644
index de8d7001840..00000000000
--- a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/CPAN/Admin.pm
+++ /dev/null
@@ -1,230 +0,0 @@
-package CPAN::Admin;
-use base CPAN;
-use CPAN; # old base.pm did not load CPAN on previous line
-use strict;
-use vars qw(@EXPORT $VERSION);
-use constant PAUSE_IP => "pause.perl.org";
-
-@EXPORT = qw(shell);
-$VERSION = "5.5";
-push @CPAN::Complete::COMMANDS, qw(register modsearch);
-$CPAN::Shell::COLOR_REGISTERED = 1;
-
-sub shell {
- CPAN::shell($_[0]||"admin's cpan> ",$_[1]);
-}
-
-sub CPAN::Shell::register {
- my($self,$mod,@rest) = @_;
- unless ($mod) {
- print "register called without argument\n";
- return;
- }
- if ($CPAN::META->has_inst("URI::Escape")) {
- require URI::Escape;
- } else {
- print "register requires URI::Escape installed, otherwise it cannot work\n";
- return;
- }
- print "Got request for mod[$mod]\n";
- if (@rest) {
- my $modline = join " ", $mod, @rest;
- print "Sending to PAUSE [$modline]\n";
- my $emodline = URI::Escape::uri_escape($modline, '^\w ');
- $emodline =~ s/ /+/g;
- my $url =
- sprintf("https://%s/pause/authenquery?pause99_add_mod_modid=".
- "%s;SUBMIT_pause99_add_mod_hint=hint",
- PAUSE_IP,
- $emodline,
- );
- print "url[$url]\n\n";
- print ">>>>Trying to open a netscape window<<<<\n";
- sleep 1;
- system("netscape","-remote","openURL($url)");
- return;
- }
- my $m = CPAN::Shell->expand("Module",$mod);
- unless (ref $m) {
- print "Could not determine the object for $mod\n";
- return;
- }
- my $id = $m->id;
- print "Found module id[$id] in database\n";
-
- if (exists $m->{RO} && $m->{RO}{chapterid}) {
- print "$id is already registered\n";
- return;
- }
-
- my(@namespace) = split /::/, $id;
- my $rootns = $namespace[0];
-
- # Tk, XML and Apache need special treatment
- if ($rootns=~/^(Bundle)\b/) {
- print "Bundles are not yet ready for registering\n";
- return;
- }
-
- # make a good suggestion for the chapter
- my(@simile) = CPAN::Shell->expand("Module","/^$rootns(:|\$)/");
- print "Found within this namespace ", join(", ", map { $_->id } @simile), "\n";
- my(%seench);
- for my $ch (map { exists $_->{RO} ? $_->{RO}{chapterid} : ""} @simile) {
- next unless $ch;
- $seench{$ch}=undef;
- }
- my(@seench) = sort grep {length($_)} keys %seench;
- my $reco_ch = "";
- if (@seench>1) {
- print "Found rootnamespace[$rootns] in the chapters [", join(", ", @seench), "]\n";
- $reco_ch = $seench[0];
- print "Picking $reco_ch\n";
- } elsif (@seench==1) {
- print "Found rootnamespace[$rootns] in the chapter[$seench[0]]\n";
- $reco_ch = $seench[0];
- } else {
- print "The new rootnamespace[$rootns] needs to be introduced. Oh well.\n";
- }
-
- # Look closer at the dist
- my $d = CPAN::Shell->expand("Distribution", $m->cpan_file);
- printf "Module comes with dist[%s]\n", $d->id;
- for my $contm ($d->containsmods) {
- if ($CPAN::META->exists("CPAN::Module",$contm)) {
- my $contm_obj = CPAN::Shell->expand("Module",$contm) or next;
- my $is_reg = exists $contm_obj->{RO} && $contm_obj->{RO}{description};
- printf(" in same dist: %s%s\n",
- $contm,
- $is_reg ? " already in modulelist" : "",
- );
- }
- }
-
- # get it so that m is better and we can inspect for XS
- CPAN::Shell->get($id);
- CPAN::Shell->m($id);
- CPAN::Shell->d($d->id);
-
- my $has_xs = 0;
- {
- my($mani,@mani);
- local $/ = "\n";
- open $mani, "$d->{build_dir}/MANIFEST" and @mani = <$mani>;
- my @xs = grep /\.xs\b/, @mani;
- if (@xs) {
- print "Found XS files: @xs";
- $has_xs=1;
- }
- }
- my $emodid = URI::Escape::uri_escape($id, '\W');
- my $ech = $reco_ch;
- $ech =~ s/ /+/g;
- my $description = $m->{MANPAGE} || "";
- $description =~ s/[A-Z]<//; # POD markup (and maybe more)
- $description =~ s/^\s+//; # leading spaces
- $description =~ s/>//; # POD
- $description =~ s/^\Q$id\E//; # usually this line starts with the modid
- $description =~ s/^[ \-]+//; # leading spaces and dashes
- substr($description,44) = "" if length($description)>44;
- $description = ucfirst($description);
- my $edescription = URI::Escape::uri_escape($description, '^\w ');
- $edescription =~ s/ /+/g;
- my $url =
- sprintf("https://%s/pause/authenquery?pause99_add_mod_modid=".
- "%s;pause99_add_mod_chapterid=%s;pause99_add_mod_statd=%s;".
- "pause99_add_mod_stats=%s;pause99_add_mod_statl=%s;".
- "pause99_add_mod_stati=%s;pause99_add_mod_description=%s;".
- "pause99_add_mod_userid=%s;SUBMIT_pause99_add_mod_preview=preview",
- PAUSE_IP,
- $emodid,
- $ech,
- "R",
- "d",
- $has_xs ? "c" : "p",
- "O",
- $edescription,
- $m->{RO}{CPAN_USERID},
- );
- print "$url\n\n";
- print ">>>>Trying to open a netscape window<<<<\n";
- system("netscape","-remote","openURL($url)");
-}
-
-sub CPAN::Shell::modsearch {
- my($self,@line) = @_;
- unless (@line) {
- print "modsearch called without argument\n";
- return;
- }
- my $request = join " ", @line;
- print "Got request[$request]\n";
- my $erequest = URI::Escape::uri_escape($request, '^\w ');
- $erequest =~ s/ /+/g;
- my $url =
- sprintf("http://www.xray.mpe.mpg.de/cgi-bin/w3glimpse/modules?query=%s".
- "&errors=0&case=on&maxfiles=100&maxlines=30",
- $erequest,
- );
- print "$url\n\n";
- print ">>>>Trying to open a netscape window<<<<\n";
- system("netscape","-remote","openURL('$url')");
-}
-
-1;
-
-__END__
-
-=head1 NAME
-
- CPAN::Admin - A CPAN Shell for CPAN admins
-
-=head1 SYNOPSIS
-
- perl -MCPAN::Admin -e shell
-
-=head1 STATUS
-
-Note: this module is currently not maintained. If you need it and fix
-it for your needs, please submit patches.
-
-=head1 DESCRIPTION
-
-CPAN::Admin is a subclass of CPAN that adds the commands C<register>
-and C<modsearch> to the CPAN shell.
-
-C<register> calls C<get> on the named module, assembles a couple of
-informations (description, language), and calls Netscape with the
--remote argument so that a form is filled with all the assembled
-informations and the registration can be performed with a single
-click. If the command line has more than one argument, register does
-not run a C<get>, instead it interprets the rest of the line as DSLI
-status, description, and userid and sends them to netscape such that
-the form is again mostly filled and can be edited or confirmed with a
-single click. CPAN::Admin never performs the submission click for you,
-it is only intended to fill in the form on PAUSE and leave the
-confirmation to you.
-
-C<modsearch> simply passes the arguments to the search engine for the
-modules@perl.org mailing list at http://www.xray.mpe.mpg.de where all
-registration requests are stored. It does so in the same way as
-register, namely with the C<netscape -remote> command.
-
-An experimental feature has also been added, namely to color already
-registered modules in listings. If you have Term::ANSIColor installed,
-the u, r, and m commands will show already registered modules in
-green.
-
-=head1 PREREQISITES
-
-URI::Escape, netscape browser available in the path, netscape must
-understand the -remote switch (as far as I know, this is only
-available on UNIX); coloring of registered modules is only available
-if Term::ANSIColor is installed.
-
-=head1 LICENSE
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-=cut
diff --git a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/CPAN/Debug.pm b/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/CPAN/Debug.pm
deleted file mode 100644
index 086b6238520..00000000000
--- a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/CPAN/Debug.pm
+++ /dev/null
@@ -1,79 +0,0 @@
-# -*- Mode: cperl; coding: utf-8; cperl-indent-level: 4 -*-
-package CPAN::Debug;
-use strict;
-use vars qw($VERSION);
-
-$VERSION = sprintf "%.6f", substr(q$Rev: 2212 $,4)/1000000 + 5.4;
-# module is internal to CPAN.pm
-
-%CPAN::DEBUG = qw[
- CPAN 1
- Index 2
- InfoObj 4
- Author 8
- Distribution 16
- Bundle 32
- Module 64
- CacheMgr 128
- Complete 256
- FTP 512
- Shell 1024
- Eval 2048
- HandleConfig 4096
- Tarzip 8192
- Version 16384
- Queue 32768
- FirstTime 65536
-];
-
-$CPAN::DEBUG ||= 0;
-
-#-> sub CPAN::Debug::debug ;
-sub debug {
- my($self,$arg) = @_;
-
- my @caller;
- my $i = 0;
- while () {
- my(@c) = (caller($i))[0 .. ($i ? 3 : 2)];
- last unless defined $c[0];
- push @caller, \@c;
- for (0,3) {
- last if $_ > $#c;
- $c[$_] =~ s/.*:://;
- }
- for (1) {
- $c[$_] =~ s|.*/||;
- }
- last if ++$i>=3;
- }
- pop @caller;
- if ($CPAN::DEBUG{$caller[0][0]} & $CPAN::DEBUG) {
- if ($arg and ref $arg) {
- eval { require Data::Dumper };
- if ($@) {
- $CPAN::Frontend->myprint($arg->as_string);
- } else {
- $CPAN::Frontend->myprint(Data::Dumper::Dumper($arg));
- }
- } else {
- my $outer = "";
- local $" = ",";
- if (@caller>1) {
- $outer = ",[@{$caller[1]}]";
- }
- $CPAN::Frontend->myprint("Debug(@{$caller[0]}$outer): $arg\n");
- }
- }
-}
-
-1;
-
-__END__
-
-=head1 LICENSE
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-=cut
diff --git a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/CPAN/DeferedCode.pm b/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/CPAN/DeferedCode.pm
deleted file mode 100644
index c57669b1778..00000000000
--- a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/CPAN/DeferedCode.pm
+++ /dev/null
@@ -1,16 +0,0 @@
-package CPAN::DeferedCode;
-
-use strict;
-use vars qw/$VERSION/;
-
-use overload fallback => 1, map { ($_ => 'run') } qw/
- bool "" 0+
-/;
-
-$VERSION = "5.50";
-
-sub run {
- $_[0]->();
-}
-
-1;
diff --git a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/CPAN/FirstTime.pm b/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/CPAN/FirstTime.pm
deleted file mode 100644
index d5d3e21763e..00000000000
--- a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/CPAN/FirstTime.pm
+++ /dev/null
@@ -1,1636 +0,0 @@
-# -*- Mode: cperl; coding: utf-8; cperl-indent-level: 4 -*-
-package CPAN::Mirrored::By;
-use strict;
-
-sub new {
- my($self,@arg) = @_;
- bless [@arg], $self;
-}
-sub continent { shift->[0] }
-sub country { shift->[1] }
-sub url { shift->[2] }
-
-package CPAN::FirstTime;
-use strict;
-
-use ExtUtils::MakeMaker ();
-use FileHandle ();
-use File::Basename ();
-use File::Path ();
-use File::Spec ();
-use vars qw($VERSION $urllist);
-$VERSION = sprintf "%.6f", substr(q$Rev: 2229 $,4)/1000000 + 5.4;
-
-=head1 NAME
-
-CPAN::FirstTime - Utility for CPAN::Config file Initialization
-
-=head1 SYNOPSIS
-
-CPAN::FirstTime::init()
-
-=head1 DESCRIPTION
-
-The init routine asks a few questions and writes a CPAN/Config.pm or
-CPAN/MyConfig.pm file (depending on what it is currently using).
-
-In the following all questions and explanations regarding config
-variables are collected.
-
-=cut
-
-# down until the next =back the manpage must be parsed by the program
-# because the text is used in the init dialogues.
-
-=over 2
-
-=item auto_commit
-
-Normally CPAN.pm keeps config variables in memory and changes need to
-be saved in a separate 'o conf commit' command to make them permanent
-between sessions. If you set the 'auto_commit' option to true, changes
-to a config variable are always automatically committed to disk.
-
-Always commit changes to config variables to disk?
-
-=item build_cache
-
-CPAN.pm can limit the size of the disk area for keeping the build
-directories with all the intermediate files.
-
-Cache size for build directory (in MB)?
-
-=item build_dir
-
-Directory where the build process takes place?
-
-=item build_dir_reuse
-
-Until version 1.88 CPAN.pm never trusted the contents of the build_dir
-directory between sessions. Since 1.88_58 CPAN.pm has a YAML-based
-mechanism that makes it possible to share the contents of the
-build_dir/ directory between different sessions with the same version
-of perl. People who prefer to test things several days before
-installing will like this feature because it safes a lot of time.
-
-If you say yes to the following question, CPAN will try to store
-enough information about the build process so that it can pick up in
-future sessions at the same state of affairs as it left a previous
-session.
-
-Store and re-use state information about distributions between
-CPAN.pm sessions?
-
-=item build_requires_install_policy
-
-When a module declares another one as a 'build_requires' prerequisite
-this means that the other module is only needed for building or
-testing the module but need not be installed permanently. In this case
-you may wish to install that other module nonetheless or just keep it
-in the 'build_dir' directory to have it available only temporarily.
-Installing saves time on future installations but makes the perl
-installation bigger.
-
-You can choose if you want to always install (yes), never install (no)
-or be always asked. In the latter case you can set the default answer
-for the question to yes (ask/yes) or no (ask/no).
-
-Policy on installing 'build_requires' modules (yes, no, ask/yes,
-ask/no)?
-
-=item cache_metadata
-
-To considerably speed up the initial CPAN shell startup, it is
-possible to use Storable to create a cache of metadata. If Storable is
-not available, the normal index mechanism will be used.
-
-Note: this mechanism is not used when use_sqlite is on and SQLLite is
-running.
-
-Cache metadata (yes/no)?
-
-=item check_sigs
-
-CPAN packages can be digitally signed by authors and thus verified
-with the security provided by strong cryptography. The exact mechanism
-is defined in the Module::Signature module. While this is generally
-considered a good thing, it is not always convenient to the end user
-to install modules that are signed incorrectly or where the key of the
-author is not available or where some prerequisite for
-Module::Signature has a bug and so on.
-
-With the check_sigs parameter you can turn signature checking on and
-off. The default is off for now because the whole tool chain for the
-functionality is not yet considered mature by some. The author of
-CPAN.pm would recommend setting it to true most of the time and
-turning it off only if it turns out to be annoying.
-
-Note that if you do not have Module::Signature installed, no signature
-checks will be performed at all.
-
-Always try to check and verify signatures if a SIGNATURE file is in
-the package and Module::Signature is installed (yes/no)?
-
-=item colorize_output
-
-When you have Term::ANSIColor installed, you can turn on colorized
-output to have some visual differences between normal CPAN.pm output,
-warnings, debugging output, and the output of the modules being
-installed. Set your favorite colors after some experimenting with the
-Term::ANSIColor module.
-
-Do you want to turn on colored output?
-
-=item colorize_print
-
-Color for normal output?
-
-=item colorize_warn
-
-Color for warnings?
-
-=item colorize_debug
-
-Color for debugging messages?
-
-=item commandnumber_in_prompt
-
-The prompt of the cpan shell can contain the current command number
-for easier tracking of the session or be a plain string.
-
-Do you want the command number in the prompt (yes/no)?
-
-=item ftp_passive
-
-Shall we always set the FTP_PASSIVE environment variable when dealing
-with ftp download (yes/no)?
-
-=item 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
-
-Preferred method for determining the current working directory?
-
-=item histfile
-
-If you have one of the readline packages (Term::ReadLine::Perl,
-Term::ReadLine::Gnu, possibly others) installed, the interactive CPAN
-shell will have history support. The next two questions deal with the
-filename of the history file and with its size. If you do not want to
-set this variable, please hit SPACE RETURN to the following question.
-
-File to save your history?
-
-=item histsize
-
-Number of lines to save?
-
-=item inactivity_timeout
-
-Sometimes you may wish to leave the processes run by CPAN alone
-without caring about them. Because the Makefile.PL or the Build.PL
-sometimes contains question you're expected to answer, you can set a
-timer that will kill a 'perl Makefile.PL' process after the specified
-time in seconds.
-
-If you set this value to 0, these processes will wait forever. This is
-the default and recommended setting.
-
-Timeout for inactivity during {Makefile,Build}.PL?
-
-=item index_expire
-
-The CPAN indexes are usually rebuilt once or twice per hour, but the
-typical CPAN mirror mirrors only once or twice per day. Depending on
-the quality of your mirror and your desire to be on the bleeding edge,
-you may want to set the following value to more or less than one day
-(which is the default). It determines after how many days CPAN.pm
-downloads new indexes.
-
-Let the index expire after how many days?
-
-=item inhibit_startup_message
-
-When the CPAN shell is started it normally displays a greeting message
-that contains the running version and the status of readline support.
-
-Do you want to turn this message off?
-
-=item keep_source_where
-
-Unless you are accessing the CPAN on your filesystem via a file: URL,
-CPAN.pm needs to keep the source files it downloads somewhere. Please
-supply a directory where the downloaded files are to be kept.
-
-Download target directory?
-
-=item load_module_verbosity
-
-When CPAN.pm loads a module it needs for some optional feature, it
-usually reports about module name and version. Choose 'v' to get this
-message, 'none' to suppress it.
-
-Verbosity level for loading modules (none or v)?
-
-=item makepl_arg
-
-Every Makefile.PL is run by perl in a separate process. Likewise we
-run 'make' and 'make install' in separate processes. If you have
-any parameters (e.g. PREFIX, LIB, UNINST or the like) you want to
-pass to the calls, please specify them here.
-
-If you don't understand this question, just press ENTER.
-
-Typical frequently used settings:
-
- PREFIX=~/perl # non-root users (please see manual for more hints)
-
-Parameters for the 'perl Makefile.PL' command?
-
-=item make_arg
-
-Parameters for the 'make' command? Typical frequently used setting:
-
- -j3 # dual processor system (on GNU make)
-
-Your choice:
-
-=item make_install_arg
-
-Parameters for the 'make install' command?
-Typical frequently used setting:
-
- UNINST=1 # to always uninstall potentially conflicting files
-
-Your choice:
-
-=item make_install_make_command
-
-Do you want to use a different make command for 'make install'?
-Cautious people will probably prefer:
-
- su root -c make
- or
- sudo make
- or
- /path1/to/sudo -u admin_account /path2/to/make
-
-or some such. Your choice:
-
-=item mbuildpl_arg
-
-A Build.PL is run by perl in a separate process. Likewise we run
-'./Build' and './Build install' in separate processes. If you have any
-parameters you want to pass to the calls, please specify them here.
-
-Typical frequently used settings:
-
- --install_base /home/xxx # different installation directory
-
-Parameters for the 'perl Build.PL' command?
-
-=item mbuild_arg
-
-Parameters for the './Build' command? Setting might be:
-
- --extra_linker_flags -L/usr/foo/lib # non-standard library location
-
-Your choice:
-
-=item mbuild_install_arg
-
-Parameters for the './Build install' command? Typical frequently used
-setting:
-
- --uninst 1 # uninstall conflicting files
-
-Your choice:
-
-=item mbuild_install_build_command
-
-Do you want to use a different command for './Build install'? Sudo
-users will probably prefer:
-
- su root -c ./Build
- or
- sudo ./Build
- or
- /path1/to/sudo -u admin_account ./Build
-
-or some such. Your choice:
-
-=item pager
-
-What is your favorite pager program?
-
-=item prefer_installer
-
-When you have Module::Build installed and a module comes with both a
-Makefile.PL and a Build.PL, which shall have precedence?
-
-The main two standard installer modules are the old and well
-established ExtUtils::MakeMaker (for short: EUMM) which uses the
-Makefile.PL. And the next generation installer Module::Build (MB)
-which works with the Build.PL (and often comes with a Makefile.PL
-too). If a module comes only with one of the two we will use that one
-but if both are supplied then a decision must be made between EUMM and
-MB. See also http://rt.cpan.org/Ticket/Display.html?id=29235 for a
-discussion about the right default.
-
-Or, as a third option you can choose RAND which will make a random
-decision (something regular CPAN testers will enjoy).
-
-In case you can choose between running a Makefile.PL or a Build.PL,
-which installer would you prefer (EUMM or MB or RAND)?
-
-=item prefs_dir
-
-CPAN.pm can store customized build environments based on regular
-expressions for distribution names. These are YAML files where the
-default options for CPAN.pm and the environment can be overridden and
-dialog sequences can be stored that can later be executed by an
-Expect.pm object. The CPAN.pm distribution comes with some prefab YAML
-files that cover sample distributions that can be used as blueprints
-to store one own prefs. Please check out the distroprefs/ directory of
-the CPAN.pm distribution to get a quick start into the prefs system.
-
-Directory where to store default options/environment/dialogs for
-building modules that need some customization?
-
-=item prerequisites_policy
-
-The CPAN module can detect when a module which you are trying to build
-depends on prerequisites. If this happens, it can build the
-prerequisites for you automatically ('follow'), ask you for
-confirmation ('ask'), or just ignore them ('ignore'). Please set your
-policy to one of the three values.
-
-Policy on building prerequisites (follow, ask or ignore)?
-
-=item randomize_urllist
-
-CPAN.pm can introduce some randomness when using hosts for download
-that are configured in the urllist parameter. Enter a numeric value
-between 0 and 1 to indicate how often you want to let CPAN.pm try a
-random host from the urllist. A value of one specifies to always use a
-random host as the first try. A value of zero means no randomness at
-all. Anything in between specifies how often, on average, a random
-host should be tried first.
-
-Randomize parameter
-
-=item scan_cache
-
-By default, each time the CPAN module is started, cache scanning is
-performed to keep the cache size in sync. To prevent this, answer
-'never'.
-
-Perform cache scanning (atstart or never)?
-
-=item shell
-
-What is your favorite shell?
-
-=item show_unparsable_versions
-
-During the 'r' command CPAN.pm finds modules without version number.
-When the command finishes, it prints a report about this. If you
-want this report to be very verbose, say yes to the following
-variable.
-
-Show all individual modules that have no $VERSION?
-
-=item show_upload_date
-
-The 'd' and the 'm' command normally only show you information they
-have in their in-memory database and thus will never connect to the
-internet. If you set the 'show_upload_date' variable to true, 'm' and
-'d' will additionally show you the upload date of the module or
-distribution. Per default this feature is off because it may require a
-net connection to get at the upload date.
-
-Always try to show upload date with 'd' and 'm' command (yes/no)?
-
-=item show_zero_versions
-
-During the 'r' command CPAN.pm finds modules with a version number of
-zero. When the command finishes, it prints a report about this. If you
-want this report to be very verbose, say yes to the following
-variable.
-
-Show all individual modules that have a $VERSION of zero?
-
-=item tar_verbosity
-
-When CPAN.pm uses the tar command, which switch for the verbosity
-shall be used? Choose 'none' for quiet operation, 'v' for file
-name listing, 'vv' for full listing.
-
-Tar command verbosity level (none or v or vv)?
-
-=item term_is_latin
-
-The next option deals with the charset (aka character set) your
-terminal supports. In general, CPAN is English speaking territory, so
-the charset does not matter much but some CPAN have names that are
-outside the ASCII range. If your terminal supports UTF-8, you should
-say no to the next question. If it expects ISO-8859-1 (also known as
-LATIN1) then you should say yes. If it supports neither, your answer
-does not matter because you will not be able to read the names of some
-authors anyway. If you answer no, names will be output in UTF-8.
-
-Your terminal expects ISO-8859-1 (yes/no)?
-
-=item term_ornaments
-
-When using Term::ReadLine, you can turn ornaments on so that your
-input stands out against the output from CPAN.pm.
-
-Do you want to turn ornaments on?
-
-=item test_report
-
-The goal of the CPAN Testers project (http://testers.cpan.org/) is to
-test as many CPAN packages as possible on as many platforms as
-possible. This provides valuable feedback to module authors and
-potential users to identify bugs or platform compatibility issues and
-improves the overall quality and value of CPAN.
-
-One way you can contribute is to send test results for each module
-that you install. If you install the CPAN::Reporter module, you have
-the option to automatically generate and email test reports to CPAN
-Testers whenever you run tests on a CPAN package.
-
-See the CPAN::Reporter documentation for additional details and
-configuration settings. If your firewall blocks outgoing email,
-you will need to configure CPAN::Reporter before sending reports.
-
-Email test reports if CPAN::Reporter is installed (yes/no)?
-
-=item use_sqlite
-
-CPAN::SQLite is a layer between the index files that are downloaded
-from the CPAN and CPAN.pm that speeds up metadata queries and reduces
-memory consumption of CPAN.pm considerably.
-
-Use CPAN::SQLite if available? (yes/no)?
-
-=item yaml_load_code
-
-Both YAML.pm and YAML::Syck are capable of deserialising code. As this requires
-a string eval, which might be a security risk, you can use this option to
-enable or disable the deserialisation of code.
-
-Do you want to enable code deserialisation (yes/no)?
-
-=item yaml_module
-
-At the time of this writing there are two competing YAML modules,
-YAML.pm and YAML::Syck. The latter is faster but needs a C compiler
-installed on your system. There may be more alternative YAML
-conforming modules but at the time of writing a potential third
-player, YAML::Tiny, seemed not powerful enough to work with CPAN.pm.
-
-Which YAML implementation would you prefer?
-
-=back
-
-=head1 LICENSE
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-=cut
-
-use vars qw( %prompts );
-
-sub init {
- my($configpm, %args) = @_;
- use Config;
- # extra args after 'o conf init'
- my $matcher = $args{args} && @{$args{args}} ? $args{args}[0] : '';
- if ($matcher =~ /^\/(.*)\/$/) {
- # case /regex/ => take the first, ignore the rest
- $matcher = $1;
- shift @{$args{args}};
- if (@{$args{args}}) {
- local $" = " ";
- $CPAN::Frontend->mywarn("Ignoring excessive arguments '@{$args{args}}'");
- $CPAN::Frontend->mysleep(2);
- }
- } elsif (0 == length $matcher) {
- } elsif (0 && $matcher eq "~") { # extremely buggy, but a nice idea
- my @unconfigured = grep { not exists $CPAN::Config->{$_}
- or not defined $CPAN::Config->{$_}
- or not length $CPAN::Config->{$_}
- } keys %$CPAN::Config;
- $matcher = "\\b(".join("|", @unconfigured).")\\b";
- $CPAN::Frontend->mywarn("matcher[$matcher]");
- } else {
- # case WORD... => all arguments must be valid
- for my $arg (@{$args{args}}) {
- unless (exists $CPAN::HandleConfig::keys{$arg}) {
- $CPAN::Frontend->mywarn("'$arg' is not a valid configuration variable\n");
- return;
- }
- }
- $matcher = "\\b(".join("|",@{$args{args}}).")\\b";
- }
- CPAN->debug("matcher[$matcher]") if $CPAN::DEBUG;
-
- unless ($CPAN::VERSION) {
- require CPAN::Nox;
- }
- require CPAN::HandleConfig;
- CPAN::HandleConfig::require_myconfig_or_config();
- $CPAN::Config ||= {};
- local($/) = "\n";
- local($\) = "";
- local($|) = 1;
-
- my($ans,$default);
-
- #
- #= Files, directories
- #
-
- unless ($matcher) {
- $CPAN::Frontend->myprint($prompts{manual_config});
- }
-
- my $manual_conf;
-
- local *_real_prompt;
- if ( $args{autoconfig} ) {
- $manual_conf = "no";
- } elsif ($matcher) {
- $manual_conf = "yes";
- } else {
- my $_conf = prompt("Would you like me to configure as much as possible ".
- "automatically?", "yes");
- $manual_conf = ($_conf and $_conf =~ /^y/i) ? "no" : "yes";
- }
- CPAN->debug("manual_conf[$manual_conf]") if $CPAN::DEBUG;
- my $fastread;
- {
- if ($manual_conf =~ /^y/i) {
- $fastread = 0;
- } else {
- $fastread = 1;
- $CPAN::Config->{urllist} ||= [];
-
- local $^W = 0;
- # prototype should match that of &MakeMaker::prompt
- my $current_second = time;
- my $current_second_count = 0;
- my $i_am_mad = 0;
- *_real_prompt = sub {
- my($q,$a) = @_;
- my($ret) = defined $a ? $a : "";
- $CPAN::Frontend->myprint(sprintf qq{%s [%s]\n\n}, $q, $ret);
- eval { require Time::HiRes };
- unless ($@) {
- if (time == $current_second) {
- $current_second_count++;
- if ($current_second_count > 20) {
- # I don't like more than 20 prompts per second
- $i_am_mad++;
- }
- } else {
- $current_second = time;
- $current_second_count = 0;
- $i_am_mad-- if $i_am_mad>0;
- }
- if ($i_am_mad>0) {
- #require Carp;
- #Carp::cluck("SLEEEEEEEEPIIIIIIIIIIINGGGGGGGGGGG");
- Time::HiRes::sleep(0.1);
- }
- }
- $ret;
- };
- }
- }
-
- if (!$matcher or q{
- build_dir
- build_dir_reuse
- cpan_home
- keep_source_where
- prefs_dir
- } =~ /$matcher/) {
- $CPAN::Frontend->myprint($prompts{config_intro});
-
- if (!$matcher or 'cpan_home' =~ /$matcher/) {
- my $cpan_home = $CPAN::Config->{cpan_home}
- || File::Spec->catdir($ENV{HOME}, ".cpan");
-
- if (-d $cpan_home) {
- $CPAN::Frontend->myprint(qq{
-
-I see you already have a directory
- $cpan_home
-Shall we use it as the general CPAN build and cache directory?
-
-});
- } else {
- # no cpan-home, must prompt and get one
- $CPAN::Frontend->myprint($prompts{cpan_home_where});
- }
-
- $default = $cpan_home;
- my $loop = 0;
- my $last_ans;
- $CPAN::Frontend->myprint(" <cpan_home>\n");
- PROMPT: while ($ans = prompt("CPAN build and cache directory?",$default)) {
- print "\n";
- if (File::Spec->file_name_is_absolute($ans)) {
- my @cpan_home = split /[\/\\]/, $ans;
- DIR: for my $dir (@cpan_home) {
- if ($dir =~ /^~/ and (!$last_ans or $ans ne $last_ans)) {
- $CPAN::Frontend
- ->mywarn("Warning: a tilde in the path will be ".
- "taken as a literal tilde. Please ".
- "confirm again if you want to keep it\n");
- $last_ans = $default = $ans;
- next PROMPT;
- }
- }
- } else {
- require Cwd;
- my $cwd = Cwd::cwd();
- my $absans = File::Spec->catdir($cwd,$ans);
- $CPAN::Frontend->mywarn("The path '$ans' is not an ".
- "absolute path. Please specify ".
- "an absolute path\n");
- $default = $absans;
- next PROMPT;
- }
- eval { File::Path::mkpath($ans); }; # dies if it can't
- if ($@) {
- $CPAN::Frontend->mywarn("Couldn't create directory $ans.\n".
- "Please retry.\n");
- next PROMPT;
- }
- if (-d $ans && -w _) {
- last PROMPT;
- } else {
- $CPAN::Frontend->mywarn("Couldn't find directory $ans\n".
- "or directory is not writable. Please retry.\n");
- if (++$loop > 5) {
- $CPAN::Frontend->mydie("Giving up");
- }
- }
- }
- $CPAN::Config->{cpan_home} = $ans;
- }
-
- if (!$matcher or 'keep_source_where' =~ /$matcher/) {
- my_dflt_prompt("keep_source_where",
- File::Spec->catdir($CPAN::Config->{cpan_home},"sources"),
- $matcher,
- );
- }
-
- if (!$matcher or 'build_dir' =~ /$matcher/) {
- my_dflt_prompt("build_dir",
- File::Spec->catdir($CPAN::Config->{cpan_home},"build"),
- $matcher
- );
- }
-
- if (!$matcher or 'build_dir_reuse' =~ /$matcher/) {
- my_yn_prompt(build_dir_reuse => 1, $matcher);
- }
-
- if (!$matcher or 'prefs_dir' =~ /$matcher/) {
- my_dflt_prompt("prefs_dir",
- File::Spec->catdir($CPAN::Config->{cpan_home},"prefs"),
- $matcher
- );
- }
- }
-
- #
- #= Config: auto_commit
- #
-
- my_yn_prompt(auto_commit => 0, $matcher);
-
- #
- #= Cache size, Index expire
- #
-
- if (!$matcher or 'build_cache' =~ /$matcher/) {
- # large enough to build large dists like Tk
- my_dflt_prompt(build_cache => 100, $matcher);
- }
-
- if (!$matcher or 'index_expire' =~ /$matcher/) {
- my_dflt_prompt(index_expire => 1, $matcher);
- }
-
- if (!$matcher or 'scan_cache' =~ /$matcher/) {
- my_prompt_loop(scan_cache => 'atstart', $matcher, 'atstart|never');
- }
-
- #
- #= cache_metadata
- #
-
- my_yn_prompt(cache_metadata => 1, $matcher);
- my_yn_prompt(use_sqlite => 0, $matcher);
-
- #
- #= Do we follow PREREQ_PM?
- #
-
- if (!$matcher or 'prerequisites_policy' =~ /$matcher/) {
- my_prompt_loop(prerequisites_policy => 'ask', $matcher,
- 'follow|ask|ignore');
- }
-
- if (!$matcher or 'build_requires_install_policy' =~ /$matcher/) {
- my_prompt_loop(build_requires_install_policy => 'ask/yes', $matcher,
- 'yes|no|ask/yes|ask/no');
- }
-
- #
- #= Module::Signature
- #
- if (!$matcher or 'check_sigs' =~ /$matcher/) {
- my_yn_prompt(check_sigs => 0, $matcher);
- }
-
- #
- #= CPAN::Reporter
- #
- if (!$matcher or 'test_report' =~ /$matcher/) {
- my_yn_prompt(test_report => 0, $matcher);
- if (
- $CPAN::Config->{test_report} &&
- $CPAN::META->has_inst("CPAN::Reporter") &&
- CPAN::Reporter->can('configure')
- ) {
- $CPAN::Frontend->myprint("\nProceeding to configure CPAN::Reporter.\n");
- CPAN::Reporter::configure();
- $CPAN::Frontend->myprint("\nReturning to CPAN configuration.\n");
- }
- }
-
- #
- #= YAML vs. YAML::Syck
- #
- if (!$matcher or "yaml_module" =~ /$matcher/) {
- my_dflt_prompt(yaml_module => "YAML", $matcher);
- unless ($CPAN::META->has_inst($CPAN::Config->{yaml_module})) {
- $CPAN::Frontend->mywarn
- ("Warning (maybe harmless): '$CPAN::Config->{yaml_module}' not installed.\n");
- $CPAN::Frontend->mysleep(3);
- }
- }
-
- #
- #= YAML code deserialisation
- #
- if (!$matcher or "yaml_load_code" =~ /$matcher/) {
- my_yn_prompt(yaml_load_code => 0, $matcher);
- }
-
- #
- #= External programs
- #
-
- my @external_progs = qw/bzip2 gzip tar unzip
-
- make
-
- curl lynx wget ncftpget ncftp ftp
-
- gpg
-
- patch applypatch
- /;
- my(@path) = split /$Config{'path_sep'}/, $ENV{'PATH'};
- if (!$matcher or "@external_progs" =~ /$matcher/) {
- $CPAN::Frontend->myprint($prompts{external_progs});
-
- my $old_warn = $^W;
- local $^W if $^O eq 'MacOS';
- local $^W = $old_warn;
- my $progname;
- for $progname (@external_progs) {
- next if $matcher && $progname !~ /$matcher/;
- if ($^O eq 'MacOS') {
- $CPAN::Config->{$progname} = 'not_here';
- next;
- }
-
- my $progcall = $progname;
- unless ($matcher) {
- # we really don't need ncftp if we have ncftpget, but
- # if they chose this dialog via matcher, they shall have it
- next if $progname eq "ncftp" && $CPAN::Config->{ncftpget} gt " ";
- }
- my $path = $CPAN::Config->{$progname}
- || $Config::Config{$progname}
- || "";
- if (File::Spec->file_name_is_absolute($path)) {
- # testing existence is not good enough, some have these exe
- # extensions
-
- # warn "Warning: configured $path does not exist\n" unless -e $path;
- # $path = "";
- } elsif ($path =~ /^\s+$/) {
- # preserve disabled programs
- } else {
- $path = '';
- }
- unless ($path) {
- # e.g. make -> nmake
- $progcall = $Config::Config{$progname} if $Config::Config{$progname};
- }
-
- $path ||= find_exe($progcall,\@path);
- unless ($path) { # not -e $path, because find_exe already checked that
- local $"=";";
- $CPAN::Frontend->mywarn("Warning: $progcall not found in PATH[@path]\n");
- if ($progname eq "make") {
- $CPAN::Frontend->mywarn("ALERT: 'make' is an essential tool for ".
- "building perl Modules. Please make sure you ".
- "have 'make' (or some equivalent) ".
- "working.\n"
- );
- if ($^O eq "MSWin32") {
- $CPAN::Frontend->mywarn("
-Windows users may want to follow this procedure when back in the CPAN shell:
-
- look YVES/scripts/alien_nmake.pl
- perl alien_nmake.pl
-
-This will install nmake on your system which can be used as a 'make'
-substitute. You can then revisit this dialog with
-
- o conf init make
-
-");
- }
- }
- }
- $prompts{$progname} = "Where is your $progname program?";
- my_dflt_prompt($progname,$path,$matcher);
- }
- }
-
- if (!$matcher or 'pager' =~ /$matcher/) {
- my $path = $CPAN::Config->{'pager'} ||
- $ENV{PAGER} || find_exe("less",\@path) ||
- find_exe("more",\@path) || ($^O eq 'MacOS' ? $ENV{EDITOR} : 0 )
- || "more";
- my_dflt_prompt(pager => $path, $matcher);
- }
-
- if (!$matcher or 'shell' =~ /$matcher/) {
- my $path = $CPAN::Config->{'shell'};
- if ($path && File::Spec->file_name_is_absolute($path)) {
- $CPAN::Frontend->mywarn("Warning: configured $path does not exist\n")
- unless -e $path;
- $path = "";
- }
- $path ||= $ENV{SHELL};
- $path ||= $ENV{COMSPEC} if $^O eq "MSWin32";
- if ($^O eq 'MacOS') {
- $CPAN::Config->{'shell'} = 'not_here';
- } else {
- $path =~ s,\\,/,g if $^O eq 'os2'; # Cosmetic only
- my_dflt_prompt(shell => $path, $matcher);
- }
- }
-
- #
- # verbosity
- #
-
- if (!$matcher or 'tar_verbosity' =~ /$matcher/) {
- my_prompt_loop(tar_verbosity => 'v', $matcher,
- 'none|v|vv');
- }
-
- if (!$matcher or 'load_module_verbosity' =~ /$matcher/) {
- my_prompt_loop(load_module_verbosity => 'v', $matcher,
- 'none|v');
- }
-
- my_yn_prompt(inhibit_startup_message => 0, $matcher);
-
- #
- #= Installer, arguments to make etc.
- #
-
- if (!$matcher or 'prefer_installer' =~ /$matcher/) {
- my_prompt_loop(prefer_installer => 'MB', $matcher, 'MB|EUMM|RAND');
- }
-
- if (!$matcher or 'makepl_arg make_arg' =~ /$matcher/) {
- my_dflt_prompt(makepl_arg => "", $matcher);
- my_dflt_prompt(make_arg => "", $matcher);
- }
-
- require CPAN::HandleConfig;
- if (exists $CPAN::HandleConfig::keys{make_install_make_command}) {
- # as long as Windows needs $self->_build_command, we cannot
- # support sudo on windows :-)
- my_dflt_prompt(make_install_make_command => $CPAN::Config->{make} || "",
- $matcher);
- }
-
- my_dflt_prompt(make_install_arg => $CPAN::Config->{make_arg} || "",
- $matcher);
-
- my_dflt_prompt(mbuildpl_arg => "", $matcher);
- my_dflt_prompt(mbuild_arg => "", $matcher);
-
- if (exists $CPAN::HandleConfig::keys{mbuild_install_build_command}) {
- # as long as Windows needs $self->_build_command, we cannot
- # support sudo on windows :-)
- my_dflt_prompt(mbuild_install_build_command => "./Build", $matcher);
- }
-
- my_dflt_prompt(mbuild_install_arg => "", $matcher);
-
- #
- #= Alarm period
- #
-
- my_dflt_prompt(inactivity_timeout => 0, $matcher);
-
- #
- #= Proxies
- #
-
- my @proxy_vars = qw/ftp_proxy http_proxy no_proxy/;
- my @proxy_user_vars = qw/proxy_user proxy_pass/;
- if (!$matcher or "@proxy_vars @proxy_user_vars" =~ /$matcher/) {
- $CPAN::Frontend->myprint($prompts{proxy_intro});
-
- for (@proxy_vars) {
- $prompts{$_} = "Your $_?";
- my_dflt_prompt($_ => $ENV{$_}||"", $matcher);
- }
-
- if ($CPAN::Config->{ftp_proxy} ||
- $CPAN::Config->{http_proxy}) {
-
- $default = $CPAN::Config->{proxy_user} || $CPAN::LWP::UserAgent::USER || "";
-
- $CPAN::Frontend->myprint($prompts{proxy_user});
-
- if ($CPAN::Config->{proxy_user} = prompt("Your proxy user id?",$default)) {
- $CPAN::Frontend->myprint($prompts{proxy_pass});
-
- if ($CPAN::META->has_inst("Term::ReadKey")) {
- Term::ReadKey::ReadMode("noecho");
- } else {
- $CPAN::Frontend->myprint($prompts{password_warn});
- }
- $CPAN::Config->{proxy_pass} = prompt_no_strip("Your proxy password?");
- if ($CPAN::META->has_inst("Term::ReadKey")) {
- Term::ReadKey::ReadMode("restore");
- }
- $CPAN::Frontend->myprint("\n\n");
- }
- }
- }
-
- #
- #= how FTP works
- #
-
- my_yn_prompt(ftp_passive => 1, $matcher);
-
- #
- #= how cwd works
- #
-
- if (!$matcher or 'getcwd' =~ /$matcher/) {
- my_prompt_loop(getcwd => 'cwd', $matcher,
- 'cwd|getcwd|fastcwd|backtickcwd');
- }
-
- #
- #= the CPAN shell itself (prompt, color)
- #
-
- my_yn_prompt(commandnumber_in_prompt => 1, $matcher);
- my_yn_prompt(term_ornaments => 1, $matcher);
- if ("colorize_output colorize_print colorize_warn colorize_debug" =~ $matcher) {
- my_yn_prompt(colorize_output => 0, $matcher);
- if ($CPAN::Config->{colorize_output}) {
- if ($CPAN::META->has_inst("Term::ANSIColor")) {
- my $T="gYw";
- print " on_ on_y ".
- " on_ma on_\n";
- print " on_black on_red green ellow ".
- "on_blue genta on_cyan white\n";
-
- for my $FG ("", "bold",
- map {$_,"bold $_"} "black","red","green",
- "yellow","blue",
- "magenta",
- "cyan","white") {
- printf "%12s ", $FG;
- for my $BG ("",map {"on_$_"} qw(black red green yellow
- blue magenta cyan white)) {
- print $FG||$BG ?
- Term::ANSIColor::colored(" $T ","$FG $BG") : " $T ";
- }
- print "\n";
- }
- print "\n";
- }
- for my $tuple (
- ["colorize_print", "bold blue on_white"],
- ["colorize_warn", "bold red on_white"],
- ["colorize_debug", "black on_cyan"],
- ) {
- my_dflt_prompt($tuple->[0] => $tuple->[1], $matcher);
- if ($CPAN::META->has_inst("Term::ANSIColor")) {
- eval { Term::ANSIColor::color($CPAN::Config->{$tuple->[0]})};
- if ($@) {
- $CPAN::Config->{$tuple->[0]} = $tuple->[1];
- $CPAN::Frontend->mywarn($@."setting to default '$tuple->[1]'\n");
- }
- }
- }
- }
- }
-
- #
- #== term_is_latin
- #
-
- if (!$matcher or 'term_is_latin' =~ /$matcher/) {
- my_yn_prompt(term_is_latin => 1, $matcher);
- }
-
- #
- #== save history in file 'histfile'
- #
-
- if (!$matcher or 'histfile histsize' =~ /$matcher/) {
- $CPAN::Frontend->myprint($prompts{histfile_intro});
- defined($default = $CPAN::Config->{histfile}) or
- $default = File::Spec->catfile($CPAN::Config->{cpan_home},"histfile");
- my_dflt_prompt(histfile => $default, $matcher);
-
- if ($CPAN::Config->{histfile}) {
- defined($default = $CPAN::Config->{histsize}) or $default = 100;
- my_dflt_prompt(histsize => $default, $matcher);
- }
- }
-
- #
- #== do an ls on the m or the d command
- #
- my_yn_prompt(show_upload_date => 0, $matcher);
-
- #
- #== verbosity at the end of the r command
- #
- if (!$matcher
- or 'show_unparsable_versions' =~ /$matcher/
- or 'show_zero_versions' =~ /$matcher/
- ) {
- $CPAN::Frontend->myprint($prompts{show_unparsable_or_zero_versions_intro});
- my_yn_prompt(show_unparsable_versions => 0, $matcher);
- my_yn_prompt(show_zero_versions => 0, $matcher);
- }
-
- #
- #= MIRRORED.BY and conf_sites()
- #
-
- if ($matcher) {
- if ("urllist" =~ $matcher) {
- # conf_sites would go into endless loop with the smash prompt
- local *_real_prompt;
- *_real_prompt = \&CPAN::Shell::colorable_makemaker_prompt;
- conf_sites();
- }
- if ("randomize_urllist" =~ $matcher) {
- my_dflt_prompt(randomize_urllist => 0, $matcher);
- }
- } elsif ($fastread) {
- $CPAN::Frontend->myprint("Autoconfigured everything but 'urllist'.\n".
- "Please call 'o conf init urllist' to configure ".
- "your CPAN server(s) now!");
- } else {
- conf_sites();
- }
-
- $CPAN::Frontend->myprint("\n\n");
- if ($matcher && !$CPAN::Config->{auto_commit}) {
- $CPAN::Frontend->myprint("Please remember to call 'o conf commit' to ".
- "make the config permanent!\n\n");
- } else {
- CPAN::HandleConfig->commit($configpm);
- }
-}
-
-sub my_dflt_prompt {
- my ($item, $dflt, $m) = @_;
- my $default = $CPAN::Config->{$item} || $dflt;
-
- $DB::single = 1;
- if (!$m || $item =~ /$m/) {
- if (my $intro = $prompts{$item . "_intro"}) {
- $CPAN::Frontend->myprint($intro);
- }
- $CPAN::Frontend->myprint(" <$item>\n");
- $CPAN::Config->{$item} = prompt($prompts{$item}, $default);
- print "\n";
- } else {
- $CPAN::Config->{$item} = $default;
- }
-}
-
-sub my_yn_prompt {
- my ($item, $dflt, $m) = @_;
- my $default;
- defined($default = $CPAN::Config->{$item}) or $default = $dflt;
-
- # $DB::single = 1;
- if (!$m || $item =~ /$m/) {
- if (my $intro = $prompts{$item . "_intro"}) {
- $CPAN::Frontend->myprint($intro);
- }
- $CPAN::Frontend->myprint(" <$item>\n");
- my $ans = prompt($prompts{$item}, $default ? 'yes' : 'no');
- $CPAN::Config->{$item} = ($ans =~ /^[y1]/i ? 1 : 0);
- print "\n";
- } else {
- $CPAN::Config->{$item} = $default;
- }
-}
-
-sub my_prompt_loop {
- my ($item, $dflt, $m, $ok) = @_;
- my $default = $CPAN::Config->{$item} || $dflt;
- my $ans;
-
- $DB::single = 1;
- if (!$m || $item =~ /$m/) {
- $CPAN::Frontend->myprint($prompts{$item . "_intro"});
- $CPAN::Frontend->myprint(" <$item>\n");
- do { $ans = prompt($prompts{$item}, $default);
- } until $ans =~ /$ok/;
- $CPAN::Config->{$item} = $ans;
- print "\n";
- } else {
- $CPAN::Config->{$item} = $default;
- }
-}
-
-
-sub conf_sites {
- my $m = 'MIRRORED.BY';
- my $mby = File::Spec->catfile($CPAN::Config->{keep_source_where},$m);
- File::Path::mkpath(File::Basename::dirname($mby));
- if (-f $mby && -f $m && -M $m < -M $mby) {
- require File::Copy;
- File::Copy::copy($m,$mby) or die "Could not update $mby: $!";
- }
- my $loopcount = 0;
- local $^T = time;
- my $overwrite_local = 0;
- if ($mby && -f $mby && -M _ <= 60 && -s _ > 0) {
- my $mtime = localtime((stat _)[9]);
- my $prompt = qq{Found $mby as of $mtime
-
-I\'d use that as a database of CPAN sites. If that is OK for you,
-please answer 'y', but if you want me to get a new database now,
-please answer 'n' to the following question.
-
-Shall I use the local database in $mby?};
- my $ans = prompt($prompt,"y");
- $overwrite_local = 1 unless $ans =~ /^y/i;
- }
- while ($mby) {
- if ($overwrite_local) {
- $CPAN::Frontend->myprint(qq{Trying to overwrite $mby\n});
- $mby = CPAN::FTP->localize($m,$mby,3);
- $overwrite_local = 0;
- } elsif ( ! -f $mby ) {
- $CPAN::Frontend->myprint(qq{You have no $mby\n I\'m trying to fetch one\n});
- $mby = CPAN::FTP->localize($m,$mby,3);
- } elsif (-M $mby > 60 && $loopcount == 0) {
- $CPAN::Frontend->myprint(qq{Your $mby is older than 60 days,\n I\'m trying }.
- qq{to fetch one\n});
- $mby = CPAN::FTP->localize($m,$mby,3);
- $loopcount++;
- } elsif (-s $mby == 0) {
- $CPAN::Frontend->myprint(qq{You have an empty $mby,\n I\'m trying to fetch one\n});
- $mby = CPAN::FTP->localize($m,$mby,3);
- } else {
- last;
- }
- }
- local $urllist = [];
- read_mirrored_by($mby);
- bring_your_own();
- $CPAN::Config->{urllist} = $urllist;
-}
-
-sub find_exe {
- my($exe,$path) = @_;
- my($dir);
- #warn "in find_exe exe[$exe] path[@$path]";
- for $dir (@$path) {
- my $abs = File::Spec->catfile($dir,$exe);
- if (($abs = MM->maybe_command($abs))) {
- return $abs;
- }
- }
-}
-
-sub picklist {
- my($items,$prompt,$default,$require_nonempty,$empty_warning)=@_;
- CPAN->debug("picklist('$items','$prompt','$default','$require_nonempty',".
- "'$empty_warning')") if $CPAN::DEBUG;
- $default ||= '';
-
- my $pos = 0;
-
- my @nums;
- SELECTION: while (1) {
-
- # display, at most, 15 items at a time
- my $limit = $#{ $items } - $pos;
- $limit = 15 if $limit > 15;
-
- # show the next $limit items, get the new position
- $pos = display_some($items, $limit, $pos, $default);
- $pos = 0 if $pos >= @$items;
-
- my $num = prompt($prompt,$default);
-
- @nums = split (' ', $num);
- {
- my %seen;
- @nums = grep { !$seen{$_}++ } @nums;
- }
- my $i = scalar @$items;
- unrangify(\@nums);
- if (grep (/\D/ || $_ < 1 || $_ > $i, @nums)) {
- $CPAN::Frontend->mywarn("invalid items entered, try again\n");
- if ("@nums" =~ /\D/) {
- $CPAN::Frontend->mywarn("(we are expecting only numbers between 1 and $i)\n");
- }
- next SELECTION;
- }
- if ($require_nonempty && !@nums) {
- $CPAN::Frontend->mywarn("$empty_warning\n");
- }
- $CPAN::Frontend->myprint("\n");
-
- # a blank line continues...
- next SELECTION unless @nums;
- last;
- }
- for (@nums) { $_-- }
- @{$items}[@nums];
-}
-
-sub unrangify ($) {
- my($nums) = $_[0];
- my @nums2 = ();
- while (@{$nums||[]}) {
- my $n = shift @$nums;
- if ($n =~ /^(\d+)-(\d+)$/) {
- my @range = $1 .. $2;
- # warn "range[@range]";
- push @nums2, @range;
- } else {
- push @nums2, $n;
- }
- }
- push @$nums, @nums2;
-}
-
-sub display_some {
- my ($items, $limit, $pos, $default) = @_;
- $pos ||= 0;
-
- my @displayable = @$items[$pos .. ($pos + $limit)];
- for my $item (@displayable) {
- $CPAN::Frontend->myprint(sprintf "(%d) %s\n", ++$pos, $item);
- }
- my $hit_what = $default ? "SPACE RETURN" : "RETURN";
- $CPAN::Frontend->myprint(sprintf("%d more items, hit %s to show them\n",
- (@$items - $pos),
- $hit_what,
- ))
- if $pos < @$items;
- return $pos;
-}
-
-sub read_mirrored_by {
- my $local = shift or return;
- my(%all,$url,$expected_size,$default,$ans,$host,
- $dst,$country,$continent,@location);
- my $fh = FileHandle->new;
- $fh->open($local) or die "Couldn't open $local: $!";
- local $/ = "\012";
- while (<$fh>) {
- ($host) = /^([\w\.\-]+)/ unless defined $host;
- next unless defined $host;
- next unless /\s+dst_(dst|location)/;
- /location\s+=\s+\"([^\"]+)/ and @location = (split /\s*,\s*/, $1) and
- ($continent, $country) = @location[-1,-2];
- $continent =~ s/\s\(.*//;
- $continent =~ s/\W+$//; # if Jarkko doesn't know latitude/longitude
- /dst_dst\s+=\s+\"([^\"]+)/ and $dst = $1;
- next unless $host && $dst && $continent && $country;
- $all{$continent}{$country}{$dst} = CPAN::Mirrored::By->new($continent,$country,$dst);
- undef $host;
- $dst=$continent=$country="";
- }
- $fh->close;
- $CPAN::Config->{urllist} ||= [];
- my @previous_urls = @{$CPAN::Config->{urllist}};
-
- $CPAN::Frontend->myprint($prompts{urls_intro});
-
- my (@cont, $cont, %cont, @countries, @urls, %seen);
- my $no_previous_warn =
- "Sorry! since you don't have any existing picks, you must make a\n" .
- "geographic selection.";
- my $offer_cont = [sort keys %all];
- if (@previous_urls) {
- push @$offer_cont, "(edit previous picks)";
- $default = @$offer_cont;
- }
- @cont = picklist($offer_cont,
- "Select your continent (or several nearby continents)",
- $default,
- ! @previous_urls,
- $no_previous_warn);
-
-
- foreach $cont (@cont) {
- my @c = sort keys %{$all{$cont}};
- @cont{@c} = map ($cont, 0..$#c);
- @c = map ("$_ ($cont)", @c) if @cont > 1;
- push (@countries, @c);
- }
- if (@previous_urls && @countries) {
- push @countries, "(edit previous picks)";
- $default = @countries;
- }
-
- if (@countries) {
- @countries = picklist (\@countries,
- "Select your country (or several nearby countries)",
- $default,
- ! @previous_urls,
- $no_previous_warn);
- %seen = map (($_ => 1), @previous_urls);
- # hmmm, should take list of defaults from CPAN::Config->{'urllist'}...
- foreach $country (@countries) {
- next if $country =~ /edit previous picks/;
- (my $bare_country = $country) =~ s/ \(.*\)//;
- my @u = sort keys %{$all{$cont{$bare_country}}{$bare_country}};
- @u = grep (! $seen{$_}, @u);
- @u = map ("$_ ($bare_country)", @u)
- if @countries > 1;
- push (@urls, @u);
- }
- }
- push (@urls, map ("$_ (previous pick)", @previous_urls));
- my $prompt = "Select as many URLs as you like (by number),
-put them on one line, separated by blanks, hyphenated ranges allowed
- e.g. '1 4 5' or '7 1-4 8'";
- if (@previous_urls) {
- $default = join (' ', ((scalar @urls) - (scalar @previous_urls) + 1) ..
- (scalar @urls));
- $prompt .= "\n(or just hit RETURN to keep your previous picks)";
- }
-
- @urls = picklist (\@urls, $prompt, $default);
- foreach (@urls) { s/ \(.*\)//; }
- push @$urllist, @urls;
-}
-
-sub bring_your_own {
- my %seen = map (($_ => 1), @$urllist);
- my($ans,@urls);
- my $eacnt = 0; # empty answers
- do {
- my $prompt = "Enter another URL or RETURN to quit:";
- unless (%seen) {
- $prompt = qq{CPAN.pm needs at least one URL where it can fetch CPAN files from.
-
-Please enter your CPAN site:};
- }
- $ans = prompt ($prompt, "");
-
- if ($ans) {
- $ans =~ s|/?\z|/|; # has to end with one slash
- $ans = "file:$ans" unless $ans =~ /:/; # without a scheme is a file:
- if ($ans =~ /^\w+:\/./) {
- push @urls, $ans unless $seen{$ans}++;
- } else {
- $CPAN::Frontend->
- myprint(sprintf(qq{"%s" doesn\'t look like an URL at first sight.
-I\'ll ignore it for now.
-You can add it to your %s
-later if you\'re sure it\'s right.\n},
- $ans,
- $INC{'CPAN/MyConfig.pm'}
- || $INC{'CPAN/Config.pm'}
- || "configuration file",
- ));
- }
- } else {
- if (++$eacnt >= 5) {
- $CPAN::Frontend->
- mywarn("Giving up.\n");
- $CPAN::Frontend->mysleep(5);
- return;
- }
- }
- } while $ans || !%seen;
-
- push @$urllist, @urls;
- # xxx delete or comment these out when you're happy that it works
- $CPAN::Frontend->myprint("New set of picks:\n");
- map { $CPAN::Frontend->myprint(" $_\n") } @$urllist;
-}
-
-
-sub _strip_spaces {
- $_[0] =~ s/^\s+//; # no leading spaces
- $_[0] =~ s/\s+\z//; # no trailing spaces
-}
-
-sub prompt ($;$) {
- unless (defined &_real_prompt) {
- *_real_prompt = \&CPAN::Shell::colorable_makemaker_prompt;
- }
- my $ans = _real_prompt(@_);
-
- _strip_spaces($ans);
-
- return $ans;
-}
-
-
-sub prompt_no_strip ($;$) {
- return _real_prompt(@_);
-}
-
-
-BEGIN {
-
-my @prompts = (
-
-manual_config => qq[
-
-CPAN is the world-wide archive of perl resources. It consists of about
-300 sites that all replicate the same contents around the globe. Many
-countries have at least one CPAN site already. The resources found on
-CPAN are easily accessible with the CPAN.pm module. If you want to use
-CPAN.pm, lots of things have to be configured. Fortunately, most of
-them can be determined automatically. If you prefer the automatic
-configuration, answer 'yes' below.
-
-If you prefer to enter a dialog instead, you can answer 'no' to this
-question and I'll let you configure in small steps one thing after the
-other. (Note: you can revisit this dialog anytime later by typing 'o
-conf init' at the cpan prompt.)
-],
-
-config_intro => qq{
-
-The following questions are intended to help you with the
-configuration. The CPAN module needs a directory of its own to cache
-important index files and maybe keep a temporary mirror of CPAN files.
-This may be a site-wide or a personal directory.},
-
-# cpan_home => qq{ },
-
-cpan_home_where => qq{
-
-First of all, I'd like to create this directory. Where?
-
-},
-
-external_progs => qq{
-
-The CPAN module will need a few external programs to work properly.
-Please correct me, if I guess the wrong path for a program. Don't
-panic if you do not have some of them, just press ENTER for those. To
-disable the use of a program, you can type a space followed by ENTER.
-
-},
-
-proxy_intro => qq{
-
-If you're accessing the net via proxies, you can specify them in the
-CPAN configuration or via environment variables. The variable in
-the \$CPAN::Config takes precedence.
-
-},
-
-proxy_user => qq{
-
-If your proxy is an authenticating proxy, you can store your username
-permanently. If you do not want that, just press RETURN. You will then
-be asked for your username in every future session.
-
-},
-
-proxy_pass => qq{
-
-Your password for the authenticating proxy can also be stored
-permanently on disk. If this violates your security policy, just press
-RETURN. You will then be asked for the password in every future
-session.
-
-},
-
-urls_intro => qq{
-
-Now we need to know where your favorite CPAN sites are located. Push
-a few sites onto the array (just in case the first on the array won\'t
-work). If you are mirroring CPAN to your local workstation, specify a
-file: URL.
-
-First, pick a nearby continent and country by typing in the number(s)
-in front of the item(s) you want to select. You can pick several of
-each, separated by spaces. Then, you will be presented with a list of
-URLs of CPAN mirrors in the countries you selected, along with
-previously selected URLs. Select some of those URLs, or just keep the
-old list. Finally, you will be prompted for any extra URLs -- file:,
-ftp:, or http: -- that host a CPAN mirror.
-
-},
-
-password_warn => qq{
-
-Warning: Term::ReadKey seems not to be available, your password will
-be echoed to the terminal!
-
-},
-
- );
-
-die "Coding error in \@prompts declaration. Odd number of elements, above"
- if (@prompts % 2);
-
-%prompts = @prompts;
-
-if (scalar(keys %prompts) != scalar(@prompts)/2) {
- my %already;
- for my $item (0..$#prompts) {
- next if $item % 2;
- die "$prompts[$item] is duplicated\n" if $already{$prompts[$item]}++;
- }
-}
-
-local *FH;
-my $pmfile = __FILE__;
-open FH, $pmfile or die "Could not open '$pmfile': $!";
-local $/ = "";
-my @podpara;
-while (<FH>) {
- next if 1 .. /^=over/;
- chomp;
- push @podpara, $_;
- last if /^=back/;
-}
-pop @podpara;
-while (@podpara) {
- warn "Alert: cannot parse my own manpage for init dialog" unless $podpara[0] =~ s/^=item\s+//;
- my $name = shift @podpara;
- my @para;
- while (@podpara && $podpara[0] !~ /^=item/) {
- push @para, shift @podpara;
- }
- $prompts{$name} = pop @para;
- if (@para) {
- $prompts{$name . "_intro"} = join "", map { "$_\n\n" } @para;
- }
-}
-
-} # EOBEGIN
-
-1;
diff --git a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/CPAN/HandleConfig.pm b/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/CPAN/HandleConfig.pm
deleted file mode 100644
index ec0aefdab98..00000000000
--- a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/CPAN/HandleConfig.pm
+++ /dev/null
@@ -1,719 +0,0 @@
-package CPAN::HandleConfig;
-use strict;
-use vars qw(%can %keys $loading $VERSION);
-
-$VERSION = sprintf "%.6f", substr(q$Rev: 2212 $,4)/1000000 + 5.4;
-
-%can = (
- commit => "Commit changes to disk",
- defaults => "Reload defaults from disk",
- help => "Short help about 'o conf' usage",
- init => "Interactive setting of all options",
-);
-
-# Q: where is the "How do I add a new config option" HOWTO?
-# A1: svn diff -r 757:758 # where dagolden added test_report
-# A2: svn diff -r 985:986 # where andk added yaml_module
-%keys = map { $_ => undef }
- (
- "applypatch",
- "auto_commit",
- "build_cache",
- "build_dir",
- "build_dir_reuse",
- "build_requires_install_policy",
- "bzip2",
- "cache_metadata",
- "check_sigs",
- "colorize_debug",
- "colorize_output",
- "colorize_print",
- "colorize_warn",
- "commandnumber_in_prompt",
- "commands_quote",
- "cpan_home",
- "curl",
- "dontload_hash", # deprecated after 1.83_68 (rev. 581)
- "dontload_list",
- "ftp",
- "ftp_passive",
- "ftp_proxy",
- "getcwd",
- "gpg",
- "gzip",
- "histfile",
- "histsize",
- "http_proxy",
- "inactivity_timeout",
- "index_expire",
- "inhibit_startup_message",
- "keep_source_where",
- "load_module_verbosity",
- "lynx",
- "make",
- "make_arg",
- "make_install_arg",
- "make_install_make_command",
- "makepl_arg",
- "mbuild_arg",
- "mbuild_install_arg",
- "mbuild_install_build_command",
- "mbuildpl_arg",
- "ncftp",
- "ncftpget",
- "no_proxy",
- "pager",
- "password",
- "patch",
- "prefer_installer",
- "prefs_dir",
- "prerequisites_policy",
- "proxy_pass",
- "proxy_user",
- "randomize_urllist",
- "scan_cache",
- "shell",
- "show_unparsable_versions",
- "show_upload_date",
- "show_zero_versions",
- "tar",
- "tar_verbosity",
- "term_is_latin",
- "term_ornaments",
- "test_report",
- "unzip",
- "urllist",
- "use_sqlite",
- "username",
- "wait_list",
- "wget",
- "yaml_load_code",
- "yaml_module",
- );
-
-my %prefssupport = map { $_ => 1 }
- (
- "build_requires_install_policy",
- "check_sigs",
- "make",
- "make_install_make_command",
- "prefer_installer",
- "test_report",
- );
-
-if ($^O eq "MSWin32") {
- for my $k (qw(
- mbuild_install_build_command
- make_install_make_command
- )) {
- delete $keys{$k};
- if (exists $CPAN::Config->{$k}) {
- for ("deleting previously set config variable '$k' => '$CPAN::Config->{$k}'") {
- $CPAN::Frontend ? $CPAN::Frontend->mywarn($_) : warn $_;
- }
- delete $CPAN::Config->{$k};
- }
- }
-}
-
-# returns true on successful action
-sub edit {
- my($self,@args) = @_;
- return unless @args;
- CPAN->debug("self[$self]args[".join(" | ",@args)."]");
- my($o,$str,$func,$args,$key_exists);
- $o = shift @args;
- $DB::single = 1;
- if($can{$o}) {
- $self->$o(args => \@args); # o conf init => sub init => sub load
- return 1;
- } else {
- CPAN->debug("o[$o]") if $CPAN::DEBUG;
- unless (exists $keys{$o}) {
- $CPAN::Frontend->mywarn("Warning: unknown configuration variable '$o'\n");
- }
- my $changed;
-
-
- # one day I used randomize_urllist for a boolean, so we must
- # list them explicitly --ak
- if (0) {
- } elsif ($o =~ /^(wait_list|urllist|dontload_list)$/) {
-
- #
- # ARRAYS
- #
-
- $func = shift @args;
- $func ||= "";
- CPAN->debug("func[$func]args[@args]") if $CPAN::DEBUG;
- # Let's avoid eval, it's easier to comprehend without.
- if ($func eq "push") {
- push @{$CPAN::Config->{$o}}, @args;
- $changed = 1;
- } elsif ($func eq "pop") {
- pop @{$CPAN::Config->{$o}};
- $changed = 1;
- } elsif ($func eq "shift") {
- shift @{$CPAN::Config->{$o}};
- $changed = 1;
- } elsif ($func eq "unshift") {
- unshift @{$CPAN::Config->{$o}}, @args;
- $changed = 1;
- } elsif ($func eq "splice") {
- my $offset = shift @args || 0;
- my $length = shift @args || 0;
- splice @{$CPAN::Config->{$o}}, $offset, $length, @args; # may warn
- $changed = 1;
- } elsif ($func) {
- $CPAN::Config->{$o} = [$func, @args];
- $changed = 1;
- } else {
- $self->prettyprint($o);
- }
- if ($changed) {
- if ($o eq "urllist") {
- # reset the cached values
- undef $CPAN::FTP::Thesite;
- undef $CPAN::FTP::Themethod;
- $CPAN::Index::LAST_TIME = 0;
- } elsif ($o eq "dontload_list") {
- # empty it, it will be built up again
- $CPAN::META->{dontload_hash} = {};
- }
- }
- } elsif ($o =~ /_hash$/) {
-
- #
- # HASHES
- #
-
- if (@args==1 && $args[0] eq "") {
- @args = ();
- } elsif (@args % 2) {
- push @args, "";
- }
- $CPAN::Config->{$o} = { @args };
- $changed = 1;
- } else {
-
- #
- # SCALARS
- #
-
- if (defined $args[0]) {
- $CPAN::CONFIG_DIRTY = 1;
- $CPAN::Config->{$o} = $args[0];
- $changed = 1;
- }
- $self->prettyprint($o)
- if exists $keys{$o} or defined $CPAN::Config->{$o};
- }
- if ($changed) {
- if ($CPAN::Config->{auto_commit}) {
- $self->commit;
- } else {
- $CPAN::CONFIG_DIRTY = 1;
- $CPAN::Frontend->myprint("Please use 'o conf commit' to ".
- "make the config permanent!\n\n");
- }
- }
- }
-}
-
-sub prettyprint {
- my($self,$k) = @_;
- my $v = $CPAN::Config->{$k};
- if (ref $v) {
- my(@report);
- if (ref $v eq "ARRAY") {
- @report = map {"\t$_ \[$v->[$_]]\n"} 0..$#$v;
- } else {
- @report = map
- {
- sprintf "\t%-18s => %s\n",
- "[$_]",
- defined $v->{$_} ? "[$v->{$_}]" : "undef"
- } keys %$v;
- }
- $CPAN::Frontend->myprint(
- join(
- "",
- sprintf(
- " %-18s\n",
- $k
- ),
- @report
- )
- );
- } elsif (defined $v) {
- $CPAN::Frontend->myprint(sprintf " %-18s [%s]\n", $k, $v);
- } else {
- $CPAN::Frontend->myprint(sprintf " %-18s undef\n", $k);
- }
-}
-
-sub commit {
- my($self,@args) = @_;
- CPAN->debug("args[@args]") if $CPAN::DEBUG;
- if ($CPAN::RUN_DEGRADED) {
- $CPAN::Frontend->mydie(
- "'o conf commit' disabled in ".
- "degraded mode. Maybe try\n".
- " !undef \$CPAN::RUN_DEGRADED\n"
- );
- }
- my $configpm;
- if (@args) {
- if ($args[0] eq "args") {
- # we have not signed that contract
- } else {
- $configpm = $args[0];
- }
- }
- unless (defined $configpm) {
- $configpm ||= $INC{"CPAN/MyConfig.pm"};
- $configpm ||= $INC{"CPAN/Config.pm"};
- $configpm || Carp::confess(q{
-CPAN::Config::commit called without an argument.
-Please specify a filename where to save the configuration or try
-"o conf init" to have an interactive course through configing.
-});
- }
- my($mode);
- if (-f $configpm) {
- $mode = (stat $configpm)[2];
- if ($mode && ! -w _) {
- Carp::confess("$configpm is not writable");
- }
- }
-
- my $msg;
- $msg = <<EOF unless $configpm =~ /MyConfig/;
-
-# This is CPAN.pm's systemwide configuration file. This file provides
-# defaults for users, and the values can be changed in a per-user
-# configuration file. The user-config file is being looked for as
-# ~/.cpan/CPAN/MyConfig.pm.
-
-EOF
- $msg ||= "\n";
- my($fh) = FileHandle->new;
- rename $configpm, "$configpm~" if -f $configpm;
- open $fh, ">$configpm" or
- $CPAN::Frontend->mydie("Couldn't open >$configpm: $!");
- $fh->print(qq[$msg\$CPAN::Config = \{\n]);
- foreach (sort keys %$CPAN::Config) {
- unless (exists $keys{$_}) {
- # do not drop them: forward compatibility!
- $CPAN::Frontend->mywarn("Unknown config variable '$_'\n");
- next;
- }
- $fh->print(
- " '$_' => ",
- $self->neatvalue($CPAN::Config->{$_}),
- ",\n"
- );
- }
-
- $fh->print("};\n1;\n__END__\n");
- close $fh;
-
- #$mode = 0444 | ( $mode & 0111 ? 0111 : 0 );
- #chmod $mode, $configpm;
-###why was that so? $self->defaults;
- $CPAN::Frontend->myprint("commit: wrote '$configpm'\n");
- $CPAN::CONFIG_DIRTY = 0;
- 1;
-}
-
-# 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;
- unless ($t) {
- $v =~ s/\\/\\\\/g;
- return "q[$v]";
- }
- 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) = @_;
- if ($CPAN::RUN_DEGRADED) {
- $CPAN::Frontend->mydie(
- "'o conf defaults' disabled in ".
- "degraded mode. Maybe try\n".
- " !undef \$CPAN::RUN_DEGRADED\n"
- );
- }
- my $done;
- for my $config (qw(CPAN/MyConfig.pm CPAN/Config.pm)) {
- if ($INC{$config}) {
- CPAN->debug("INC{'$config'}[$INC{$config}]") if $CPAN::DEBUG;
- CPAN::Shell->_reload_this($config,{reloforce => 1});
- $CPAN::Frontend->myprint("'$INC{$config}' reread\n");
- last;
- }
- }
- $CPAN::CONFIG_DIRTY = 0;
- 1;
-}
-
-=head2 C<< CLASS->safe_quote ITEM >>
-
-Quotes an item to become safe against spaces
-in shell interpolation. An item is enclosed
-in double quotes if:
-
- - the item contains spaces in the middle
- - the item does not start with a quote
-
-This happens to avoid shell interpolation
-problems when whitespace is present in
-directory names.
-
-This method uses C<commands_quote> to determine
-the correct quote. If C<commands_quote> is
-a space, no quoting will take place.
-
-
-if it starts and ends with the same quote character: leave it as it is
-
-if it contains no whitespace: leave it as it is
-
-if it contains whitespace, then
-
-if it contains quotes: better leave it as it is
-
-else: quote it with the correct quote type for the box we're on
-
-=cut
-
-{
- # Instead of patching the guess, set commands_quote
- # to the right value
- my ($quotes,$use_quote)
- = $^O eq 'MSWin32'
- ? ('"', '"')
- : (q{"'}, "'")
- ;
-
- sub safe_quote {
- my ($self, $command) = @_;
- # Set up quote/default quote
- my $quote = $CPAN::Config->{commands_quote} || $quotes;
-
- if ($quote ne ' '
- and defined($command )
- and $command =~ /\s/
- and $command !~ /[$quote]/) {
- return qq<$use_quote$command$use_quote>
- }
- return $command;
- }
-}
-
-sub init {
- my($self,@args) = @_;
- CPAN->debug("self[$self]args[".join(",",@args)."]");
- $self->load(doit => 1, @args);
- 1;
-}
-
-# This is a piece of repeated code that is abstracted here for
-# maintainability. RMB
-#
-sub _configpmtest {
- my($configpmdir, $configpmtest) = @_;
- if (-w $configpmtest) {
- return $configpmtest;
- } elsif (-w $configpmdir) {
- #_#_# following code dumped core on me with 5.003_11, a.k.
- my $configpm_bak = "$configpmtest.bak";
- unlink $configpm_bak if -f $configpm_bak;
- if( -f $configpmtest ) {
- if( rename $configpmtest, $configpm_bak ) {
- $CPAN::Frontend->mywarn(<<END);
-Old configuration file $configpmtest
- moved to $configpm_bak
-END
- }
- }
- my $fh = FileHandle->new;
- if ($fh->open(">$configpmtest")) {
- $fh->print("1;\n");
- return $configpmtest;
- } else {
- # Should never happen
- Carp::confess("Cannot open >$configpmtest");
- }
- } else { return }
-}
-
-sub require_myconfig_or_config () {
- return if $INC{"CPAN/MyConfig.pm"};
- local @INC = @INC;
- my $home = home();
- unshift @INC, File::Spec->catdir($home,'.cpan');
- eval { require CPAN::MyConfig };
- my $err_myconfig = $@;
- if ($err_myconfig and $err_myconfig !~ m#locate CPAN/MyConfig\.pm#) {
- die "Error while requiring CPAN::MyConfig:\n$err_myconfig";
- }
- unless ($INC{"CPAN/MyConfig.pm"}) { # this guy has settled his needs already
- eval {require CPAN::Config;}; # not everybody has one
- my $err_config = $@;
- if ($err_config and $err_config !~ m#locate CPAN/Config\.pm#) {
- die "Error while requiring CPAN::Config:\n$err_config";
- }
- }
-}
-
-sub home () {
- my $home;
- if ($CPAN::META->has_usable("File::HomeDir")) {
- $home = File::HomeDir->my_data;
- unless (defined $home) {
- $home = File::HomeDir->my_home
- }
- }
- unless (defined $home) {
- $home = $ENV{HOME};
- }
- $home;
-}
-
-sub load {
- my($self, %args) = @_;
- $CPAN::Be_Silent++ if $args{be_silent};
- my $doit;
- $doit = delete $args{doit};
-
- use Carp;
- require_myconfig_or_config;
- my @miss = $self->missing_config_data;
- return unless $doit || @miss;
- return if $loading;
- $loading++;
-
- require CPAN::FirstTime;
- my($configpm,$fh,$redo);
- $redo ||= "";
- if (defined $INC{"CPAN/Config.pm"} && -w $INC{"CPAN/Config.pm"}) {
- $configpm = $INC{"CPAN/Config.pm"};
- $redo++;
- } elsif (defined $INC{"CPAN/MyConfig.pm"} && -w $INC{"CPAN/MyConfig.pm"}) {
- $configpm = $INC{"CPAN/MyConfig.pm"};
- $redo++;
- } else {
- my($path_to_cpan) = File::Basename::dirname($INC{"CPAN.pm"});
- my($configpmdir) = File::Spec->catdir($path_to_cpan,"CPAN");
- my($configpmtest) = File::Spec->catfile($configpmdir,"Config.pm");
- my $inc_key;
- if (-d $configpmdir or File::Path::mkpath($configpmdir)) {
- $configpm = _configpmtest($configpmdir,$configpmtest);
- $inc_key = "CPAN/Config.pm";
- }
- unless ($configpm) {
- $configpmdir = File::Spec->catdir(home,".cpan","CPAN");
- File::Path::mkpath($configpmdir);
- $configpmtest = File::Spec->catfile($configpmdir,"MyConfig.pm");
- $configpm = _configpmtest($configpmdir,$configpmtest);
- $inc_key = "CPAN/MyConfig.pm";
- }
- if ($configpm) {
- $INC{$inc_key} = $configpm;
- } else {
- my $text = qq{WARNING: CPAN.pm is unable to } .
- qq{create a configuration file.};
- output($text, 'confess');
- }
-
- }
- local($") = ", ";
- if ($redo && !$doit) {
- $CPAN::Frontend->myprint(<<END);
-Sorry, we have to rerun the configuration dialog for CPAN.pm due to
-some missing parameters...
-
-END
- $args{args} = \@miss;
- }
- CPAN::FirstTime::init($configpm, %args);
- $loading--;
- return;
-}
-
-
-# returns mandatory but missing entries in the Config
-sub missing_config_data {
- my(@miss);
- for (
- "auto_commit",
- "build_cache",
- "build_dir",
- "cache_metadata",
- "cpan_home",
- "ftp_proxy",
- #"gzip",
- "http_proxy",
- "index_expire",
- #"inhibit_startup_message",
- "keep_source_where",
- #"make",
- "make_arg",
- "make_install_arg",
- "makepl_arg",
- "mbuild_arg",
- "mbuild_install_arg",
- "mbuild_install_build_command",
- "mbuildpl_arg",
- "no_proxy",
- #"pager",
- "prerequisites_policy",
- "scan_cache",
- #"tar",
- #"unzip",
- "urllist",
- ) {
- next unless exists $keys{$_};
- push @miss, $_ unless defined $CPAN::Config->{$_};
- }
- return @miss;
-}
-
-sub help {
- $CPAN::Frontend->myprint(q[
-Known options:
- commit commit session changes to disk
- defaults reload default config values from disk
- help this help
- init enter a dialog to set all or a set of parameters
-
-Edit key values as in the following (the "o" is a literal letter o):
- o conf build_cache 15
- o conf build_dir "/foo/bar"
- o conf urllist shift
- o conf urllist unshift ftp://ftp.foo.bar/
- o conf inhibit_startup_message 1
-
-]);
- undef; #don't reprint CPAN::Config
-}
-
-sub cpl {
- my($word,$line,$pos) = @_;
- $word ||= "";
- CPAN->debug("word[$word] line[$line] pos[$pos]") if $CPAN::DEBUG;
- my(@words) = split " ", substr($line,0,$pos+1);
- if (
- defined($words[2])
- and
- $words[2] =~ /list$/
- and
- (
- @words == 3
- ||
- @words == 4 && length($word)
- )
- ) {
- return grep /^\Q$word\E/, qw(splice shift unshift pop push);
- } elsif (defined($words[2])
- and
- $words[2] eq "init"
- and
- (
- @words == 3
- ||
- @words >= 4 && length($word)
- )) {
- return sort grep /^\Q$word\E/, keys %keys;
- } elsif (@words >= 4) {
- return ();
- }
- my %seen;
- my(@o_conf) = sort grep { !$seen{$_}++ }
- keys %can,
- keys %$CPAN::Config,
- keys %keys;
- return grep /^\Q$word\E/, @o_conf;
-}
-
-sub prefs_lookup {
- my($self,$distro,$what) = @_;
-
- if ($prefssupport{$what}) {
- return $CPAN::Config->{$what} unless
- $distro
- and $distro->prefs
- and $distro->prefs->{cpanconfig}
- and defined $distro->prefs->{cpanconfig}{$what};
- return $distro->prefs->{cpanconfig}{$what};
- } else {
- $CPAN::Frontend->mywarn("Warning: $what not yet officially ".
- "supported for distroprefs, doing a normal lookup");
- return $CPAN::Config->{$what};
- }
-}
-
-
-{
- package
- CPAN::Config; ####::###### #hide from indexer
- # note: J. Nick Koston wrote me that they are using
- # CPAN::Config->commit although undocumented. I suggested
- # CPAN::Shell->o("conf","commit") even when ugly it is at least
- # documented
-
- # that's why I added the CPAN::Config class with autoload and
- # deprecated warning
-
- use strict;
- use vars qw($AUTOLOAD $VERSION);
- $VERSION = sprintf "%.2f", substr(q$Rev: 2212 $,4)/100;
-
- # formerly CPAN::HandleConfig was known as CPAN::Config
- sub AUTOLOAD {
- my $class = shift; # e.g. in dh-make-perl: CPAN::Config
- my($l) = $AUTOLOAD;
- $CPAN::Frontend->mywarn("Dispatching deprecated method '$l' to CPAN::HandleConfig\n");
- $l =~ s/.*:://;
- CPAN::HandleConfig->$l(@_);
- }
-}
-
-1;
-
-__END__
-
-=head1 LICENSE
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-=cut
-
-# Local Variables:
-# mode: cperl
-# cperl-indent-level: 4
-# End:
diff --git a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/CPAN/Kwalify.pm b/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/CPAN/Kwalify.pm
deleted file mode 100644
index 77564cb7fc6..00000000000
--- a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/CPAN/Kwalify.pm
+++ /dev/null
@@ -1,130 +0,0 @@
-=head1 NAME
-
-CPAN::Kwalify - Interface between CPAN.pm and Kwalify.pm
-
-=head1 SYNOPSIS
-
- use CPAN::Kwalify;
- validate($schema_name, $data, $file, $doc);
-
-=head1 DESCRIPTION
-
-=over
-
-=item _validate($schema_name, $data, $file, $doc)
-
-$schema_name is the name of a supported schema. Currently only
-C<distroprefs> is supported. $data is the data to be validated. $file
-is the absolute path to the file the data are coming from. $doc is the
-index of the document within $doc that is to be validated. The last
-two arguments are only there for better error reporting.
-
-Relies on being called from within CPAN.pm.
-
-Dies if something fails. Does not return anything useful.
-
-=item yaml($schema_name)
-
-Returns the YAML text of that schema. Dies if something fails.
-
-=back
-
-=head1 AUTHOR
-
-Andreas Koenig C<< <andk@cpan.org> >>
-
-=head1 LICENSE
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See L<http://www.perl.com/perl/misc/Artistic.html>
-
-
-
-=cut
-
-
-use strict;
-
-package CPAN::Kwalify;
-use vars qw($VERSION $VAR1);
-$VERSION = sprintf "%.6f", substr(q$Rev: 1418 $,4)/1000000 + 5.4;
-
-use File::Spec ();
-
-my %vcache = ();
-
-my $schema_loaded = {};
-
-sub _validate {
- my($schema_name,$data,$abs,$y) = @_;
- my $yaml_module = CPAN->_yaml_module;
- if (
- $CPAN::META->has_inst($yaml_module)
- &&
- $CPAN::META->has_inst("Kwalify")
- ) {
- my $load = UNIVERSAL::can($yaml_module,"Load");
- unless ($schema_loaded->{$schema_name}) {
- eval {
- my $schema_yaml = yaml($schema_name);
- $schema_loaded->{$schema_name} = $load->($schema_yaml);
- };
- if ($@) {
- # we know that YAML.pm 0.62 cannot parse the schema,
- # so we try a fallback
- my $content = do {
- my $path = __FILE__;
- $path =~ s/\.pm$//;
- $path = File::Spec->catfile($path, "$schema_name.dd");
- local *FH;
- open FH, $path or die "Could not open '$path': $!";
- local $/;
- <FH>;
- };
- $VAR1 = undef;
- eval $content;
- die "parsing of '$schema_name.dd' failed: $@" if $@;
- $schema_loaded->{$schema_name} = $VAR1;
- }
- }
- }
- if (my $schema = $schema_loaded->{$schema_name}) {
- my $mtime = (stat $abs)[9];
- for my $k (keys %{$vcache{$abs}}) {
- delete $vcache{$abs}{$k} unless $k eq $mtime;
- }
- return if $vcache{$abs}{$mtime}{$y}++;
- eval { Kwalify::validate($schema, $data) };
- if ($@) {
- die "validation of distropref '$abs'[$y] failed: $@";
- }
- }
-}
-
-sub _clear_cache {
- %vcache = ();
-}
-
-sub yaml {
- my($schema_name) = @_;
- my $content = do {
- my $path = __FILE__;
- $path =~ s/\.pm$//;
- $path = File::Spec->catfile($path, "$schema_name.yml");
- local *FH;
- open FH, $path or die "Could not open '$path': $!";
- local $/;
- <FH>;
- };
- return $content;
-}
-
-1;
-
-# Local Variables:
-# mode: cperl
-# cperl-indent-level: 4
-# End:
-
diff --git a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/CPAN/Kwalify/distroprefs.dd b/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/CPAN/Kwalify/distroprefs.dd
deleted file mode 100644
index 52118e5a98d..00000000000
--- a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/CPAN/Kwalify/distroprefs.dd
+++ /dev/null
@@ -1,137 +0,0 @@
-$VAR1 = {
- "mapping" => {
- "comment" => {
- "type" => "text"
- },
- "cpanconfig" => {
- "mapping" => {
- "=" => {
- "type" => "text"
- }
- },
- "type" => "map"
- },
- "depends" => {
- "mapping" => {
- "build_requires" => {
- "mapping" => {
- "=" => {
- "type" => "text"
- }
- },
- "type" => "map"
- },
- "configure_requires" => {},
- "requires" => {}
- },
- "type" => "map"
- },
- "disabled" => {
- "enum" => [
- 0,
- 1
- ],
- "type" => "int"
- },
- "goto" => {
- "type" => "text"
- },
- "install" => {
- "mapping" => {
- "args" => {
- "sequence" => [
- {
- "type" => "text"
- }
- ],
- "type" => "seq"
- },
- "commandline" => {
- "type" => "text"
- },
- "eexpect" => {
- "mapping" => {
- "mode" => {
- "enum" => [
- "deterministic",
- "anyorder"
- ],
- "type" => "text"
- },
- "reuse" => {
- "type" => "int"
- },
- "talk" => {
- "sequence" => [
- {
- "type" => "text"
- }
- ],
- "type" => "seq"
- },
- "timeout" => {
- "type" => "number"
- }
- },
- "type" => "map"
- },
- "env" => {
- "mapping" => {
- "=" => {
- "type" => "text"
- }
- },
- "type" => "map"
- },
- "expect" => {
- "sequence" => [
- {
- "type" => "text"
- }
- ],
- "type" => "seq"
- }
- },
- "type" => "map"
- },
- "make" => {},
- "match" => {
- "mapping" => {
- "distribution" => {
- "type" => "text"
- },
- "module" => {
- "type" => "text"
- },
- "perl" => {
- "type" => "text"
- },
- "perlconfig" => {
- "mapping" => {
- "=" => {
- "type" => "text"
- }
- },
- "type" => "map"
- }
- },
- "type" => "map"
- },
- "patches" => {
- "sequence" => [
- {
- "type" => "text"
- }
- ],
- "type" => "seq"
- },
- "pl" => {},
- "test" => {}
- },
- "type" => "map"
-};
-$VAR1->{"mapping"}{"depends"}{"mapping"}{"configure_requires"} = $VAR1->{"mapping"}{"depends"}{"mapping"}{"build_requires"};
-$VAR1->{"mapping"}{"depends"}{"mapping"}{"requires"} = $VAR1->{"mapping"}{"depends"}{"mapping"}{"build_requires"};
-$VAR1->{"mapping"}{"make"} = $VAR1->{"mapping"}{"install"};
-$VAR1->{"mapping"}{"pl"} = $VAR1->{"mapping"}{"install"};
-$VAR1->{"mapping"}{"test"} = $VAR1->{"mapping"}{"install"};
diff --git a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/CPAN/Kwalify/distroprefs.yml b/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/CPAN/Kwalify/distroprefs.yml
deleted file mode 100644
index 68ff72b5bef..00000000000
--- a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/CPAN/Kwalify/distroprefs.yml
+++ /dev/null
@@ -1,84 +0,0 @@
----
-type: map
-mapping:
- comment:
- type: text
- depends:
- type: map
- mapping:
- configure_requires:
- &requires_common
- type: map
- mapping:
- =:
- type: text
- build_requires: *requires_common
- requires: *requires_common
- match:
- type: map
- mapping:
- distribution:
- type: text
- module:
- type: text
- perl:
- type: text
- perlconfig:
- type: map
- mapping:
- =:
- type: text
- install:
- &args_env_expect
- type: map
- mapping:
- args:
- type: seq
- sequence:
- - type: text
- commandline:
- type: text
- env:
- type: map
- mapping:
- =:
- type: text
- expect:
- type: seq
- sequence:
- - type: text
- eexpect:
- type: map
- mapping:
- mode:
- type: text
- enum:
- - deterministic
- - anyorder
- timeout:
- type: number
- reuse:
- type: int
- talk:
- type: seq
- sequence:
- - type: text
- make: *args_env_expect
- pl: *args_env_expect
- test: *args_env_expect
- patches:
- type: seq
- sequence:
- - type: text
- disabled:
- type: int
- enum:
- - 0
- - 1
- goto:
- type: text
- cpanconfig:
- type: map
- mapping:
- =:
- type: text
diff --git a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/CPAN/Nox.pm b/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/CPAN/Nox.pm
deleted file mode 100644
index d968f96d945..00000000000
--- a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/CPAN/Nox.pm
+++ /dev/null
@@ -1,51 +0,0 @@
-package CPAN::Nox;
-use strict;
-use vars qw($VERSION @EXPORT);
-
-BEGIN{
- $CPAN::Suppress_readline=1 unless defined $CPAN::term;
-}
-
-use base 'Exporter';
-use CPAN;
-
-$VERSION = sprintf "%.6f", substr(q$Rev: 2411 $,4)/1000000 + 5.4;
-$CPAN::META->has_inst('Digest::MD5','no');
-$CPAN::META->has_inst('LWP','no');
-$CPAN::META->has_inst('Compress::Zlib','no');
-@EXPORT = @CPAN::EXPORT;
-
-*AUTOLOAD = \&CPAN::AUTOLOAD;
-
-1;
-
-__END__
-
-=head1 NAME
-
-CPAN::Nox - Wrapper around CPAN.pm without using any XS module
-
-=head1 SYNOPSIS
-
-Interactive mode:
-
- perl -MCPAN::Nox -e shell;
-
-=head1 DESCRIPTION
-
-This package has the same functionality as CPAN.pm, but tries to
-prevent the usage of compiled extensions during its own
-execution. Its primary purpose is a rescue in case you upgraded perl
-and broke binary compatibility somehow.
-
-=head1 LICENSE
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-=head1 SEE ALSO
-
-L<CPAN>
-
-=cut
-
diff --git a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/CPAN/Queue.pm b/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/CPAN/Queue.pm
deleted file mode 100644
index f01ab5133df..00000000000
--- a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/CPAN/Queue.pm
+++ /dev/null
@@ -1,193 +0,0 @@
-# -*- Mode: cperl; coding: utf-8; cperl-indent-level: 4 -*-
-use strict;
-package CPAN::Queue::Item;
-
-# CPAN::Queue::Item::new ;
-sub new {
- my($class,@attr) = @_;
- my $self = bless { @attr }, $class;
- return $self;
-}
-
-sub as_string {
- my($self) = @_;
- $self->{qmod};
-}
-
-# r => requires, b => build_requires, c => commandline
-sub reqtype {
- my($self) = @_;
- $self->{reqtype};
-}
-
-package CPAN::Queue;
-
-# One use of the queue is to determine if we should or shouldn't
-# announce the availability of a new CPAN module
-
-# Now we try to use it for dependency tracking. For that to happen
-# we need to draw a dependency tree and do the leaves first. This can
-# easily be reached by running CPAN.pm recursively, but we don't want
-# to waste memory and run into deep recursion. So what we can do is
-# this:
-
-# CPAN::Queue is the package where the queue is maintained. Dependencies
-# often have high priority and must be brought to the head of the queue,
-# possibly by jumping the queue if they are already there. My first code
-# attempt tried to be extremely correct. Whenever a module needed
-# immediate treatment, I either unshifted it to the front of the queue,
-# or, if it was already in the queue, I spliced and let it bypass the
-# others. This became a too correct model that made it impossible to put
-# an item more than once into the queue. Why would you need that? Well,
-# you need temporary duplicates as the manager of the queue is a loop
-# that
-#
-# (1) looks at the first item in the queue without shifting it off
-#
-# (2) cares for the item
-#
-# (3) removes the item from the queue, *even if its agenda failed and
-# even if the item isn't the first in the queue anymore* (that way
-# protecting against never ending queues)
-#
-# So if an item has prerequisites, the installation fails now, but we
-# want to retry later. That's easy if we have it twice in the queue.
-#
-# I also expect insane dependency situations where an item gets more
-# than two lives in the queue. Simplest example is triggered by 'install
-# Foo Foo Foo'. People make this kind of mistakes and I don't want to
-# get in the way. I wanted the queue manager to be a dumb servant, not
-# one that knows everything.
-#
-# Who would I tell in this model that the user wants to be asked before
-# processing? I can't attach that information to the module object,
-# because not modules are installed but distributions. So I'd have to
-# tell the distribution object that it should ask the user before
-# processing. Where would the question be triggered then? Most probably
-# in CPAN::Distribution::rematein.
-
-use vars qw{ @All $VERSION };
-$VERSION = sprintf "%.6f", substr(q$Rev: 2212 $,4)/1000000 + 5.4;
-
-# CPAN::Queue::queue_item ;
-sub queue_item {
- my($class,@attr) = @_;
- my $item = "$class\::Item"->new(@attr);
- $class->qpush($item);
- return 1;
-}
-
-# CPAN::Queue::qpush ;
-sub qpush {
- my($class,$obj) = @_;
- push @All, $obj;
- CPAN->debug(sprintf("in new All[%s]",
- join("",map {sprintf " %s\[%s]\n",$_->{qmod},$_->{reqtype}} @All),
- )) if $CPAN::DEBUG;
-}
-
-# CPAN::Queue::first ;
-sub first {
- my $obj = $All[0];
- $obj;
-}
-
-# CPAN::Queue::delete_first ;
-sub delete_first {
- my($class,$what) = @_;
- my $i;
- for my $i (0..$#All) {
- if ( $All[$i]->{qmod} eq $what ) {
- splice @All, $i, 1;
- return;
- }
- }
-}
-
-# CPAN::Queue::jumpqueue ;
-sub jumpqueue {
- my $class = shift;
- my @what = @_;
- CPAN->debug(sprintf("before jumpqueue All[%s] what[%s]",
- join("",
- map {sprintf " %s\[%s]\n",$_->{qmod},$_->{reqtype}} @All, @what
- ))) if $CPAN::DEBUG;
- unless (defined $what[0]{reqtype}) {
- # apparently it was not the Shell that sent us this enquiry,
- # treat it as commandline
- $what[0]{reqtype} = "c";
- }
- my $inherit_reqtype = $what[0]{reqtype} =~ /^(c|r)$/ ? "r" : "b";
- WHAT: for my $what_tuple (@what) {
- my($what,$reqtype) = @$what_tuple{qw(qmod reqtype)};
- if ($reqtype eq "r"
- &&
- $inherit_reqtype eq "b"
- ) {
- $reqtype = "b";
- }
- my $jumped = 0;
- for (my $i=0; $i<$#All;$i++) { #prevent deep recursion
- # CPAN->debug("i[$i]this[$All[$i]{qmod}]what[$what]") if $CPAN::DEBUG;
- if ($All[$i]{qmod} eq $what) {
- $jumped++;
- if ($jumped >= 50) {
- die "PANIC: object[$what] 50 instances on the queue, looks like ".
- "some recursiveness has hit";
- } elsif ($jumped > 25) { # one's OK if e.g. just processing
- # now; more are OK if user typed
- # it several times
- my $sleep = sprintf "%.1f", $jumped/10;
- $CPAN::Frontend->mywarn(
-qq{Warning: Object [$what] queued $jumped times, sleeping $sleep secs!\n}
- );
- $CPAN::Frontend->mysleep($sleep);
- # next WHAT;
- }
- }
- }
- my $obj = "$class\::Item"->new(
- qmod => $what,
- reqtype => $reqtype
- );
- unshift @All, $obj;
- }
- CPAN->debug(sprintf("after jumpqueue All[%s]",
- join("",map {sprintf " %s\[%s]\n",$_->{qmod},$_->{reqtype}} @All)
- )) if $CPAN::DEBUG;
-}
-
-# CPAN::Queue::exists ;
-sub exists {
- my($self,$what) = @_;
- my @all = map { $_->{qmod} } @All;
- my $exists = grep { $_->{qmod} eq $what } @All;
- # warn "in exists what[$what] all[@all] exists[$exists]";
- $exists;
-}
-
-# CPAN::Queue::delete ;
-sub delete {
- my($self,$mod) = @_;
- @All = grep { $_->{qmod} ne $mod } @All;
- CPAN->debug(sprintf("after delete mod[%s] All[%s]",
- $mod,
- join("",map {sprintf " %s\[%s]\n",$_->{qmod},$_->{reqtype}} @All)
- )) if $CPAN::DEBUG;
-}
-
-# CPAN::Queue::nullify_queue ;
-sub nullify_queue {
- @All = ();
-}
-
-1;
-
-__END__
-
-=head1 LICENSE
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-=cut
diff --git a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/CPAN/Reporter.pm b/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/CPAN/Reporter.pm
deleted file mode 100644
index 6a217071480..00000000000
--- a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/CPAN/Reporter.pm
+++ /dev/null
@@ -1,1487 +0,0 @@
-package CPAN::Reporter;
-use strict;
-use vars qw/$VERSION/;
-$VERSION = '1.13';
-$VERSION = eval $VERSION;
-
-use Config;
-use CPAN ();
-use CPAN::Version ();
-use File::Basename qw/basename/;
-use File::Find ();
-use File::HomeDir ();
-use File::Path qw/mkpath rmtree/;
-use File::Spec ();
-use IO::File ();
-use Probe::Perl ();
-use Tee qw/tee/;
-use Test::Reporter ();
-use CPAN::Reporter::Config ();
-use CPAN::Reporter::History ();
-use CPAN::Reporter::PrereqCheck ();
-
-use constant MAX_OUTPUT_LENGTH => 50_000;
-
-#--------------------------------------------------------------------------#
-# public API
-#--------------------------------------------------------------------------#
-
-sub configure {
- goto &CPAN::Reporter::Config::_configure;
-}
-
-sub grade_make {
- my @args = @_;
- my $result = _init_result( 'make', @args ) or return;
- _compute_make_grade($result);
- if ( $result->{grade} eq 'discard' ) {
- $CPAN::Frontend->myprint(
- "\nCPAN::Reporter: test results were not valid, $result->{grade_msg}.\n\n",
- $result->{prereq_pm}, "\n",
- "Test report will not be sent"
- );
- CPAN::Reporter::History::_record_history( $result )
- if not CPAN::Reporter::History::_is_duplicate( $result );
- }
- else {
- _print_grade_msg($result->{make_cmd}, $result);
- if ( $result->{grade} ne 'pass' ) { _dispatch_report( $result ) }
- }
- return $result->{success};
-}
-
-sub grade_PL {
- my @args = @_;
- my $result = _init_result( 'PL', @args ) or return;
- _compute_PL_grade($result);
- if ( $result->{grade} eq 'discard' ) {
- $CPAN::Frontend->myprint(
- "\nCPAN::Reporter: test results were not valid, $result->{grade_msg}.\n\n",
- $result->{prereq_pm}, "\n",
- "Test report will not be sent"
- );
- CPAN::Reporter::History::_record_history( $result )
- if not CPAN::Reporter::History::_is_duplicate( $result );
- }
- else {
- _print_grade_msg($result->{PL_file} , $result);
- if ( $result->{grade} ne 'pass' ) { _dispatch_report( $result ) }
- }
- return $result->{success};
-}
-
-sub grade_test {
- my @args = @_;
- my $result = _init_result( 'test', @args ) or return;
- _compute_test_grade($result);
- if ( $result->{grade} eq 'discard' ) {
- $CPAN::Frontend->myprint(
- "\nCPAN::Reporter: test results were not valid, $result->{grade_msg}.\n\n",
- $result->{prereq_pm}, "\n",
- "Test report will not be sent"
- );
- CPAN::Reporter::History::_record_history( $result )
- if not CPAN::Reporter::History::_is_duplicate( $result );
- }
- else {
- _print_grade_msg( "Test", $result );
- _dispatch_report( $result );
- }
- return $result->{success};
-}
-
-sub record_command {
- my ($command, $timeout) = @_;
-
- # XXX refactor this!
- # Get configuration options
- if ( -r CPAN::Reporter::Config::_get_config_file() ) {
- my $config_obj = CPAN::Reporter::Config::_open_config_file();
- my $config;
- $config = CPAN::Reporter::Config::_get_config_options( $config_obj )
- if $config_obj;
-
- $timeout ||= $config->{command_timeout}; # might still be undef
- }
-
- my ($cmd, $redirect) = _split_redirect($command);
-
- my $temp_out = _temp_filename( 'CPAN-Reporter-TO-' );
-
- # Teeing a command loses its exit value so we must wrap the command
- # and print the exit code so we can read it off of output
- my $wrap_code;
- if ( $timeout ) {
- $wrap_code = $^O eq 'MSWin32'
- ? _timeout_wrapper_win32($cmd, $timeout)
- : _timeout_wrapper($cmd, $timeout);
- }
- # if no timeout or timeout wrap code wasn't available
- if ( ! $wrap_code ) {
- my $safecmd = quotemeta($cmd);
- $wrap_code = << "HERE";
-my \$rc = system("$safecmd");
-my \$ec = \$rc == -1 ? -1 : \$?;
-print "($safecmd exited with \$ec)\\n";
-HERE
- }
-
- # write code to a tempfile for execution
- my $wrapper_name = _temp_filename( 'CPAN-Reporter-CW-' );
- my $wrapper_fh = IO::File->new( $wrapper_name, 'w' )
- or die "Could not create a wrapper for $cmd\: $!";
-
- $wrapper_fh->print( $wrap_code );
- $wrapper_fh->close;
-
- # tee the command wrapper
- my $tee_input = Probe::Perl->find_perl_interpreter() . " $wrapper_name";
- $tee_input .= " $redirect" if defined $redirect;
- tee($tee_input, { stderr => 1 }, $temp_out);
-
- # read back the output
- my $output_fh = IO::File->new($temp_out, "r");
- if ( !$output_fh ) {
- $CPAN::Frontend->mywarn(
- "CPAN::Reporter: couldn't read command results for '$cmd'\n"
- );
- return;
- }
- my @cmd_output = <$output_fh>;
- $output_fh->close;
-
- # cleanup
- unlink $wrapper_name, $temp_out;
-
- if ( ! @cmd_output ) {
- $CPAN::Frontend->mywarn(
- "CPAN::Reporter: didn't capture command results for '$cmd'\n"
- );
- return;
- }
-
- # extract the exit value
- my $exit_value;
- if ( $cmd_output[-1] =~ m{exited with} ) {
- ($exit_value) = $cmd_output[-1] =~ m{exited with ([-0-9]+)};
- pop @cmd_output;
- }
-
- # bail out on some errors
- if ( ! defined $exit_value ) {
- $CPAN::Frontend->mywarn(
- "CPAN::Reporter: couldn't determine exit value for '$cmd'\n"
- );
- return;
- }
- elsif ( $exit_value == -1 ) {
- $CPAN::Frontend->mywarn(
- "CPAN::Reporter: couldn't execute '$cmd'\n"
- );
- return;
- }
-
- return \@cmd_output, $exit_value;
-}
-
-sub test {
- my ($dist, $system_command) = @_;
- my ($output, $exit_value) = record_command( $system_command );
- return grade_test( $dist, $system_command, $output, $exit_value );
-}
-
-#--------------------------------------------------------------------------#
-# private functions
-#--------------------------------------------------------------------------#
-
-#--------------------------------------------------------------------------#
-# _compute_make_grade
-#--------------------------------------------------------------------------#
-
-sub _compute_make_grade {
- my $result = shift;
- my ($grade,$msg);
- if ( $result->{exit_value} ) {
- $result->{grade} = "fail";
- $result->{grade_msg} = "Stopped with an error"
- }
- else {
- $result->{grade} = "pass";
- $result->{grade_msg} = "No errors"
- }
-
- _downgrade_known_causes( $result );
-
- $result->{success} = $result->{grade} eq 'pass'
- || $result->{grade} eq 'unknown';
- return;
-}
-
-#--------------------------------------------------------------------------#
-# _compute_PL_grade
-#--------------------------------------------------------------------------#
-
-sub _compute_PL_grade {
- my $result = shift;
- my ($grade,$msg);
- if ( $result->{exit_value} ) {
- $result->{grade} = "fail";
- $result->{grade_msg} = "Stopped with an error"
- }
- else {
- $result->{grade} = "pass";
- $result->{grade_msg} = "No errors"
- }
-
- _downgrade_known_causes( $result );
-
- $result->{success} = $result->{grade} eq 'pass'
- || $result->{grade} eq 'unknown';
- return;
-}
-
-#--------------------------------------------------------------------------#
-# _compute_test_grade
-#
-# Don't shortcut to unknown unless _has_tests because a custom
-# Makefile.PL or Build.PL might define tests in a non-standard way
-#
-# With test.pl and 'make test', any t/*.t might pass Test::Harness, but
-# test.pl might still fail, or there might only be test.pl,
-# so use exit code directly
-#
-# Likewise, if we have recursive Makefile.PL, then we don't trust the
-# reverse-order parsing and should just take the exit code directly
-#
-# Otherwise, parse in reverse order for Test::Harness output or a couple
-# other significant strings and stop after the first match. Going in
-# reverse and stopping is done to (hopefully) avoid picking up spurious
-# results from any test output. But then we have to check for
-# unsupported OS strings in case those were printed but were not fatal.
-#--------------------------------------------------------------------------#
-
-sub _compute_test_grade {
- my $result = shift;
- my ($grade,$msg);
- my $output = $result->{output};
-
- # In some cases, get a result straight from the exit code
- if ( $result->{is_make} && ( -f "test.pl" || _has_recursive_make() ) ) {
- if ( $result->{exit_value} ) {
- $grade = "fail";
- $msg = "'make test' error detected";
- }
- else {
- $grade = "pass";
- $msg = "'make test' no errors";
- }
- }
- # Otherwise, get a result from Test::Harness output
- else {
- # figure out the right harness parser
- _expand_result( $result );
- my $harness_version = $result->{toolchain}{'Test::Harness'}{have};
- my $harness_parser = CPAN::Version->vgt($harness_version, '2.99_01')
- ? \&_parse_tap_harness
- : \&_parse_test_harness;
- # parse lines in reverse
- for my $i ( reverse 0 .. $#{$output} ) {
- if ( $output->[$i] =~ m{No support for OS|OS unsupported}ims ) { # from any *.t file
- $grade = 'na';
- $msg = 'This platform is not supported';
- }
- elsif ( $output->[$i] =~ m{^.?No tests defined}ms ) { # from M::B
- $grade = 'unknown';
- $msg = 'No tests provided';
- }
- else {
- ($grade, $msg) = $harness_parser->( $output->[$i] );
- }
- last if $grade;
- }
- # fallback on exit value if no recognizable Test::Harness output
- if ( ! $grade ) {
- $grade = $result->{exit_value} ? "fail" : "pass";
- $msg = ( $result->{is_make} ? "'make test' " : "'Build test' " )
- . ( $result->{exit_value} ? "error detected" : "no errors");
- }
- }
-
- $result->{grade} = $grade;
- $result->{grade_msg} = $msg;
-
- _downgrade_known_causes( $result );
-
- $result->{success} = $result->{grade} eq 'pass'
- || $result->{grade} eq 'unknown';
- return;
-}
-
-#--------------------------------------------------------------------------#
-# _dispatch_report
-#
-# Set up Test::Reporter and prompt user for CC, edit, send
-#--------------------------------------------------------------------------#
-
-sub _dispatch_report {
- my $result = shift;
- my $phase = $result->{phase};
-
- $CPAN::Frontend->myprint(
- "CPAN::Reporter: preparing a CPAN Testers report for $result->{dist_name}\n"
- );
-
- # Get configuration options
- my $config_obj = CPAN::Reporter::Config::_open_config_file();
- my $config;
- $config = CPAN::Reporter::Config::_get_config_options( $config_obj )
- if $config_obj;
- if ( ! $config->{email_from} ) {
- $CPAN::Frontend->mywarn( << "EMAIL_REQUIRED");
-
-CPAN::Reporter: required 'email_from' option missing an email address, so
-test report will not be sent. See documentation for configuration details.
-
-EMAIL_REQUIRED
- return;
- }
-
- # Abort if the distribution name is not formatted according to
- # CPAN Testers requirements: Dist-Name-version.suffix
- # Regex from CPAN-Testers should extract name, separator, version
- # and extension
- my @format_checks = $result->{dist_basename} =~
- m{(.+)([\-\_])(v?\d.*)(\.(?:tar\.(?:gz|bz2)|tgz|zip))$}i;
- ;
- if ( ! grep { length } @format_checks ) {
- $CPAN::Frontend->mywarn( << "END_BAD_DISTNAME");
-
-CPAN::Reporter: the distribution name '$result->{dist_basename}' does not
-appear to be packaged according to CPAN tester guidelines. Perhaps it is
-not a normal CPAN distribution.
-
-Test report will not be sent.
-
-END_BAD_DISTNAME
-
- return;
- }
-
- # Gather 'expensive' data for the report
- _expand_result( $result);
-
- # Skip if distribution name matches the send_skipfile
- if ( $config->{send_skipfile} && -r $config->{send_skipfile} ) {
- my $send_skipfile = IO::File->new( $config->{send_skipfile}, "r" );
- my $dist_id = $result->{dist}->pretty_id;
- while ( my $pattern = <$send_skipfile> ) {
- chomp($pattern);
- # ignore comments
- next if substr($pattern,0,1) eq '#';
- # if it doesn't match, continue with next pattern
- next if $dist_id !~ /$pattern/i;
- # if it matches, warn and return
- $CPAN::Frontend->myprint( << "END_SKIP_DIST" );
-CPAN::Reporter: '$dist_id' matched against the send_skipfile.
-
-Test report will not be sent.
-
-END_SKIP_DIST
-
- return;
- }
- }
-
- # Setup the test report
- my $tr = Test::Reporter->new;
- $tr->grade( $result->{grade} );
- $tr->distribution( $result->{dist_name} );
-
- # Skip if duplicate and not sending duplicates
- my $is_duplicate = CPAN::Reporter::History::_is_duplicate( $result );
- if ( $is_duplicate ) {
- if ( _prompt( $config, "send_duplicates", $tr->grade) =~ /^n/ ) {
- $CPAN::Frontend->myprint(<< "DUPLICATE_REPORT");
-
-CPAN::Reporter: this appears to be a duplicate report for the $phase phase:
-@{[$tr->subject]}
-
-Test report will not be sent.
-
-DUPLICATE_REPORT
-
- return;
- }
- }
-
- # Set debug and transport options, if supported
- $tr->debug( $config->{debug} ) if defined $config->{debug};
- my $transport = $config->{transport} || 'Net::SMTP';
- if (length $transport && ( $transport !~ /\ANet::SMTP|Mail::Send\z/ )) {
- $CPAN::Frontend->mywarn(
- "CPAN::Reporter: '$config->{transport}' is not a valid transport option." .
- " Falling back to Net::SMTP\n"
- );
- $transport = 'Net::SMTP';
- }
- $tr->transport( $transport );
-
- # prepare mail transport
- $tr->from( $config->{email_from} );
- $tr->address( $config->{email_to} ) if $config->{email_to};
- if ( $config->{smtp_server} ) {
- my @mx = split " ", $config->{smtp_server};
- $tr->mx( \@mx );
- }
-
- # Populate the test report
- $tr->comments( _report_text( $result ) );
- $tr->via( 'CPAN::Reporter ' . $CPAN::Reporter::VERSION );
- my @cc = _should_copy_author( $result, $config );
-
- # prompt for editing report
- if ( _prompt( $config, "edit_report", $tr->grade ) =~ /^y/ ) {
- my $editor = $config->{editor};
- local $ENV{VISUAL} = $editor if $editor; ## no critic
- $tr->edit_comments;
- }
-
- # send_*_report can override send_report
- my $send_config = defined $config->{"send_$phase\_report"}
- ? "send_$phase\_report"
- : "send_report" ;
- if ( _prompt( $config, $send_config, $tr->grade ) =~ /^y/ ) {
- $CPAN::Frontend->myprint( "CPAN::Reporter: sending test report with '" . $tr->grade .
- "' to " . join(q{, }, $tr->address, @cc) . "\n");
- if ( $tr->send( @cc ) ) {
- CPAN::Reporter::History::_record_history( $result )
- if not $is_duplicate;
- }
- else {
- $CPAN::Frontend->mywarn( "CPAN::Reporter: " . $tr->errstr . "\n");
- }
- }
- else {
- $CPAN::Frontend->myprint("CPAN::Reporter: test report will not be sent\n");
- }
-
- return;
-}
-
-#--------------------------------------------------------------------------#
-# _downgrade_known_causes
-# Downgrade failure/unknown grade if we can determine a cause
-# If platform not supported => 'na'
-# If perl version is too low => 'na'
-# If stated prereqs missing => 'discard'
-#--------------------------------------------------------------------------#
-
-sub _downgrade_known_causes {
- my ($result) = @_;
- my ($grade, $output) = ( $result->{grade}, $result->{output} );
- my $msg = $result->{grade_msg} || q{};
-
- # shortcut unless fail/unknown; but PL might look like pass but actually
- # have "OS Unsupported" messages if someone printed message and then
- # did "exit 0"
- return if $grade eq 'na';
- return if $grade eq 'pass' && $result->{phase} ne 'PL';
-
- # get prereqs
- _expand_result( $result );
-
- # if process was halted with a signal, just set for discard and return
- if ( $result->{exit_value} & 127 ) {
- $result->{grade} = 'discard';
- $result->{grade_msg} = 'Command interrupted';
- return;
- }
-
- # look for perl version error messages from various programs
- # "Error evaling..." type errors happen on Perl < 5.006 when modules
- # define their version with "our $VERSION = ..."
- my $version_error;
- for my $line ( @$output ) {
- if( $line =~ /Perl .*? required.*?--this is only/ims ||
- $line =~ /ERROR: perl: Version .*? is installed, but we need version/ims ||
- $line =~ /ERROR: perl \(.*?\) is installed, but we need version/ims ||
- $line =~ /Error evaling version line 'BEGIN/ims ||
- $line =~ /Could not eval '/ims
- ) {
- $version_error++;
- last;
- }
- }
-
- # check for explicit version error or just a perl version prerequisite
- if ( $version_error || $result->{prereq_pm} =~ m{^\s+!\s+perl\s}ims ) {
- $grade = 'na';
- $msg = 'Perl version too low';
- }
- # check again for unsupported OS in case we took 'fail' from exit value
- elsif ( grep { /No support for OS|OS unsupported/ims } @{$output} ) {
- $grade = 'na';
- $msg = 'This platform is not supported';
- }
- # check the prereq report for missing or failure flag '!'
- elsif ( $grade ne 'pass' && $result->{prereq_pm} =~ m{n/a}ims ) {
- $grade = 'discard';
- $msg = 'Prerequisite missing';
- }
- elsif ( $grade ne 'pass' && $result->{prereq_pm} =~ m{^\s+!}ims ) {
- $grade = 'discard';
- $msg = 'Prerequisite version too low';
- }
- # in PL stage -- if pass but no Makefile or Build, then this should
- # be recorded as a discard
- elsif ( $result->{phase} eq 'PL' && $grade eq 'pass'
- && ! -f 'Makefile' && ! -f 'Build'
- ) {
- $grade = 'discard';
- $msg = 'No Makefile or Build file found';
- }
-
- # store results
- $result->{grade} = $grade;
- $result->{grade_msg} = $msg;
-
- return;
-}
-
-#--------------------------------------------------------------------------#
-# _expand_result - add expensive information like prerequisites and
-# toolchain that should only be generated if a report will actually
-# be sent
-#--------------------------------------------------------------------------#
-
-sub _expand_result {
- my $result = shift;
- return if $result->{expanded}++; # only do this once
- $result->{prereq_pm} = _prereq_report( $result->{dist} );
- $result->{env_vars} = _env_report();
- $result->{special_vars} = _special_vars_report();
- $result->{toolchain_versions} = _toolchain_report( $result );
- $result->{perl_version} = CPAN::Reporter::History::_format_perl_version();
- return;
-}
-
-#--------------------------------------------------------------------------#
-# _env_report
-#--------------------------------------------------------------------------#
-
-# Entries bracketed with "/" are taken to be a regex; otherwise literal
-my @env_vars= qw(
- /PERL/
- /LC_/
- LANG
- LANGUAGE
- PATH
- SHELL
- COMSPEC
- TERM
- TEMP
- TMPDIR
- AUTOMATED_TESTING
- /AUTHOR_TEST/
- INCLUDE
- LIB
- LD_LIBRARY_PATH
- PROCESSOR_IDENTIFIER
- NUMBER_OF_PROCESSORS
-);
-
-sub _env_report {
- my @vars_found;
- for my $var ( @env_vars ) {
- if ( $var =~ m{^/(.+)/$} ) {
- push @vars_found, grep { /$1/ } keys %ENV;
- }
- else {
- push @vars_found, $var if exists $ENV{$var};
- }
- }
-
- my $report = "";
- for my $var ( sort @vars_found ) {
- my $value = $ENV{$var};
- $value = '[undef]' if ! defined $value;
- $report .= " $var = $value\n";
- }
- return $report;
-}
-
-#--------------------------------------------------------------------------#
-# _has_recursive_make
-#
-# Ignore Makefile.PL in t directories
-#--------------------------------------------------------------------------#
-
-sub _has_recursive_make {
- my $PL_count = 0;
- File::Find::find(
- sub {
- if ( $_ eq 't' ) {
- $File::Find::prune = 1;
- }
- elsif ( $_ eq 'Makefile.PL' ) {
- $PL_count++;
- }
- },
- File::Spec->curdir()
- );
- return $PL_count > 1;
-}
-
-#--------------------------------------------------------------------------#
-# _init_result -- create and return a hash of values for use in
-# report evaluation and dispatch
-#
-# takes same argument format as grade_*()
-#--------------------------------------------------------------------------#
-
-sub _init_result {
- my ($phase, $dist, $system_command, $output, $exit_value) = @_;
-
- unless ( defined $output && defined $exit_value ) {
- my $missing;
- if ( ! defined $output && ! defined $exit_value ) {
- $missing = "exit value and output"
- }
- elsif ( defined $output && !defined $exit_value ) {
- $missing = "exit value"
- }
- else {
- $missing = "output";
- }
- $CPAN::Frontend->mywarn(
- "CPAN::Reporter: had errors capturing $missing. Tests abandoned"
- );
- return;
- }
-
- my $result = {
- phase => $phase,
- dist => $dist,
- command => $system_command,
- is_make => _is_make( $system_command ),
- output => ref $output eq 'ARRAY' ? $output : [ split /\n/, $output ],
- exit_value => $exit_value,
- # Note: pretty_id is like "DAGOLDEN/CPAN-Reporter-0.40.tar.gz"
- dist_basename => basename($dist->pretty_id),
- dist_name => $dist->base_id,
- };
-
- # Used in messages to user
- $result->{PL_file} = $result->{is_make} ? "Makefile.PL" : "Build.PL";
- $result->{make_cmd} = $result->{is_make} ? $Config{make} : "Build";
-
- # CPAN might fail to find an author object for some strange dists
- my $author = $dist->author;
- $result->{author} = defined $author ? $author->fullname : "Author";
- $result->{author_id} = defined $author ? $author->id : "" ;
-
- return $result;
-}
-
-#--------------------------------------------------------------------------#
-# _is_make
-#--------------------------------------------------------------------------#
-
-sub _is_make {
- my $command = shift;
- return $command =~ m{\b(?:\S*make|Makefile.PL)\b}ims ? 1 : 0;
-}
-
-#--------------------------------------------------------------------------#
-# _max_length
-#--------------------------------------------------------------------------#
-
-sub _max_length {
- my ($first, @rest) = @_;
- my $max = length $first;
- for my $term ( @rest ) {
- $max = length $term if length $term > $max;
- }
- return $max;
-}
-
-
-#--------------------------------------------------------------------------#
-# _parse_tap_harness
-#
-# As of Test::Harness 2.99_02, the final line is provided by TAP::Harness
-# as "Result: STATUS" where STATUS is "PASS", "FAIL" or "NOTESTS"
-#--------------------------------------------------------------------------#
-
-
-sub _parse_tap_harness {
- my ($line) = @_;
- if ( $line =~ m{^Result:\s+([A-Z]+)} ) {
- if ( $1 eq 'PASS' ) {
- return ('pass', 'All tests successful');
- }
- elsif ( $1 eq 'FAIL' ) {
- return ('fail', 'One or more tests failed');
- }
- elsif ( $1 eq 'NOTESTS' ) {
- return ('unknown', 'No tests were run');
- }
- }
- elsif ( $line =~ m{Bailout called\.\s+Further testing stopped}ms ) {
- return ( 'fail', 'Bailed out of tests');
- }
- return;
-}
-
-#--------------------------------------------------------------------------#
-# _parse_test_harness
-#
-# Output strings taken from Test::Harness::
-# _show_results() -- for versions < 2.57_03
-# get_results() -- for versions >= 2.57_03
-#--------------------------------------------------------------------------#
-
-sub _parse_test_harness {
- my ($line) = @_;
- if ( $line =~ m{^All tests successful}ms ) {
- return ( 'pass', 'All tests successful' );
- }
- elsif ( $line =~ m{^FAILED--no tests were run}ms ) {
- return ( 'unknown', 'No tests were run' );
- }
- elsif ( $line =~ m{^FAILED--.*--no output}ms ) {
- return ( 'unknown', 'No tests were run');
- }
- elsif ( $line =~ m{FAILED--Further testing stopped}ms ) {
- return ( 'fail', 'Bailed out of tests');
- }
- elsif ( $line =~ m{^Failed }ms ) { # must be lowercase
- return ( 'fail', 'One or more tests failed');
- }
- else {
- return;
- }
-}
-
-#--------------------------------------------------------------------------#
-# _prereq_report
-#--------------------------------------------------------------------------#
-
-sub _prereq_report {
- my $dist = shift;
- my (%need, %have, %prereq_met, $report);
-
- my $prereq_pm = $dist->prereq_pm;
-
- if ( ref $prereq_pm eq 'HASH' ) {
- # is it the new CPAN style with requires/build_requires?
- if (join(q{ }, sort keys %$prereq_pm) eq "build_requires requires") {
- $need{requires} = $prereq_pm->{requires}
- if ref $prereq_pm->{requires} eq 'HASH';
- $need{build_requires} = $prereq_pm->{build_requires}
- if ref $prereq_pm->{build_requires} eq 'HASH';
- }
- else {
- $need{requires} = $prereq_pm;
- }
- }
-
- # see what prereqs are satisfied in subprocess
- for my $section ( qw/requires build_requires/ ) {
- next unless ref $need{$section} eq 'HASH';
- my @prereq_list = %{ $need{$section} };
- next unless @prereq_list;
- my $prereq_results = _version_finder( @prereq_list );
- for my $mod ( keys %{$prereq_results} ) {
- $have{$section}{$mod} = $prereq_results->{$mod}{have};
- $prereq_met{$section}{$mod} = $prereq_results->{$mod}{met};
- }
- }
-
- # find formatting widths
- my ($name_width, $need_width, $have_width) = (6, 4, 4);
- for my $section ( qw/requires build_requires/ ) {
- for my $module ( keys %{ $need{$section} } ) {
- my $name_length = length $module;
- my $need_length = length $need{$section}{$module};
- my $have_length = length $have{$section}{$module};
- $name_width = $name_length if $name_length > $name_width;
- $need_width = $need_length if $need_length > $need_width;
- $have_width = $have_length if $have_length > $have_width;
- }
- }
-
- my $format_str =
- " \%1s \%-${name_width}s \%-${need_width}s \%-${have_width}s\n";
-
- # generate the report
- for my $section ( qw/requires build_requires/ ) {
- if ( keys %{ $need{$section} } ) {
- $report .= "$section:\n\n";
- $report .= sprintf( $format_str, " ", qw/Module Need Have/ );
- $report .= sprintf( $format_str, " ",
- "-" x $name_width,
- "-" x $need_width,
- "-" x $have_width );
- }
- for my $module ( sort { lc $a cmp lc $b } keys %{ $need{$section} } ) {
- my $need = $need{$section}{$module};
- my $have = $have{$section}{$module};
- my $bad = $prereq_met{$section}{$module} ? " " : "!";
- $report .=
- sprintf( $format_str, $bad, $module, $need, $have);
- }
- }
-
- return $report || " No requirements found\n";
-}
-
-#--------------------------------------------------------------------------#
-# _print_grade_msg -
-#--------------------------------------------------------------------------#
-
-sub _print_grade_msg {
- my ($phase, $result) = @_;
- my ($grade, $msg) = ($result->{grade}, $result->{grade_msg});
- $CPAN::Frontend->myprint( "CPAN::Reporter: $phase result is '$grade'");
- $CPAN::Frontend->myprint(", $msg") if defined $msg && length $msg;
- $CPAN::Frontend->myprint(".\n");
- return;
-}
-
-#--------------------------------------------------------------------------#
-# _prompt
-#
-# Note: always returns lowercase
-#--------------------------------------------------------------------------#
-
-sub _prompt {
- my ($config, $option, $grade, $extra) = @_;
- $extra ||= q{};
-
- my %spec = CPAN::Reporter::Config::_config_spec();
-
- my $dispatch = CPAN::Reporter::Config::_validate_grade_action_pair(
- $option, join(q{ }, "default:no", $config->{$option} || '')
- );
- my $action = $dispatch->{$grade} || $dispatch->{default};
- my $intro = $spec{$option}{prompt} . $extra . " (yes/no)";
- my $prompt;
- if ( $action =~ m{^ask/yes}i ) {
- $prompt = CPAN::Shell::colorable_makemaker_prompt( $intro, "yes" );
- }
- elsif ( $action =~ m{^ask(/no)?}i ) {
- $prompt = CPAN::Shell::colorable_makemaker_prompt( $intro, "no" );
- }
- else {
- $prompt = $action;
- }
- return lc $prompt;
-}
-
-#--------------------------------------------------------------------------#
-# _report_text
-#--------------------------------------------------------------------------#
-
-my %intro_para = (
- 'pass' => <<'HERE',
-Thank you for uploading your work to CPAN. Congratulations!
-All tests were successful.
-HERE
-
- 'fail' => <<'HERE',
-Thank you for uploading your work to CPAN. However, there was a problem
-testing your distribution.
-
-If you think this report is invalid, please consult the CPAN Testers Wiki
-for suggestions on how to avoid getting FAIL reports for missing library
-or binary dependencies, unsupported operating systems, and so on:
-
-http://cpantest.grango.org/wiki/CPANAuthorNotes
-HERE
-
- 'unknown' => <<'HERE',
-Thank you for uploading your work to CPAN. However, attempting to
-test your distribution gave an inconclusive result.
-
-This could be because you did not define tests, tests could not be
-found, because your tests were interrupted before they finished, or
-because the results of the tests could not be parsed. You may wish to
-consult the CPAN Testers Wiki:
-
-http://cpantest.grango.org/wiki/CPANAuthorNotes
-HERE
-
- 'na' => <<'HERE',
-Thank you for uploading your work to CPAN. While attempting to build or test
-this distribution, the distribution signaled that support is not available
-either for this operating system or this version of Perl. Nevertheless, any
-diagnostic output produced is provided below for reference. If this is not
-what you expect, you may wish to consult the CPAN Testers Wiki:
-
-http://cpantest.grango.org/wiki/CPANAuthorNotes
-HERE
-
-);
-
-sub _report_text {
- my $data = shift;
- my $test_log = join(q{},@{$data->{output}});
- if ( length $test_log > MAX_OUTPUT_LENGTH ) {
- $test_log = substr( $test_log, 0, MAX_OUTPUT_LENGTH) . "\n";
- my $max_k = int(MAX_OUTPUT_LENGTH/1000) . "K";
- $test_log .= "\n[Output truncated after $max_k]\n\n";
- }
- # Flag automated report
- my $default_comment = $ENV{AUTOMATED_TESTING}
- ? "this report is from an automated smoke testing program\nand was not reviewed by a human for accuracy"
- : "none provided" ;
-
- # generate report
- my $output = << "ENDREPORT";
-Dear $data->{author},
-
-This is a computer-generated report for $data->{dist_name}
-on perl $data->{perl_version}, created by CPAN-Reporter-$CPAN::Reporter::VERSION\.
-
-$intro_para{ $data->{grade} }
-Sections of this report:
-
- * Tester comments
- * Program output
- * Prerequisites
- * Environment and other context
-
-------------------------------
-TESTER COMMENTS
-------------------------------
-
-Additional comments from tester:
-
-$default_comment
-
-------------------------------
-PROGRAM OUTPUT
-------------------------------
-
-Output from '$data->{command}':
-
-$test_log
-------------------------------
-PREREQUISITES
-------------------------------
-
-Prerequisite modules loaded:
-
-$data->{prereq_pm}
-------------------------------
-ENVIRONMENT AND OTHER CONTEXT
-------------------------------
-
-Environment variables:
-
-$data->{env_vars}
-Perl special variables (and OS-specific diagnostics, for MSWin32):
-
-$data->{special_vars}
-Perl module toolchain versions installed:
-
-$data->{toolchain_versions}
-ENDREPORT
-
- return $output;
-}
-
-
-#--------------------------------------------------------------------------#
-# _should_copy_author
-#--------------------------------------------------------------------------#
-
-sub _should_copy_author {
- my ($result, $config) = @_;
-
- # User prompts for action
- my $author_email = $result->{author_id}
- ? "$result->{author_id}\@cpan.org"
- : q{};
- if ( ! $author_email ) {
- $CPAN::Frontend->mywarn( "CPAN::Reporter: couldn't determine author_id and won't cc author.\n");
- return;
- }
-
- # Skip if distribution name matches the cc_skipfile
- if ( $config->{cc_skipfile} && -r $config->{cc_skipfile} ) {
- my $cc_skipfile = IO::File->new( $config->{cc_skipfile}, "r" );
- my $dist_id = $result->{dist}->pretty_id;
- while ( my $pattern = <$cc_skipfile> ) {
- chomp($pattern);
- # ignore comments
- next if substr($pattern,0,1) eq '#';
- # if it doesn't match, continue with next pattern
- next if $dist_id !~ /$pattern/i;
- # if it matches, warn and return
- $CPAN::Frontend->myprint( << "END_SKIP_DIST" );
-CPAN::Reporter: '$dist_id' matched against the cc_skipfile. Won't copy author.
-END_SKIP_DIST
- return;
- }
- }
-
- # Don't copy author on perls with patchlevels
- return if $Config{perl_patchlevel};
-
- # Finally, prompt user if necessary
- if ( _prompt( $config, "cc_author", $result->{grade}, "($author_email)?") =~ /^y/ ) {
- return $author_email;
- }
- else {
- return;
- }
-}
-
-#--------------------------------------------------------------------------#
-# _special_vars_report
-#--------------------------------------------------------------------------#
-
-sub _special_vars_report {
- my $special_vars = << "HERE";
- \$^X = $^X
- \$UID/\$EUID = $< / $>
- \$GID = $(
- \$EGID = $)
-HERE
- if ( $^O eq 'MSWin32' && eval "require Win32" ) { ## no critic
- my @getosversion = Win32::GetOSVersion();
- my $getosversion = join(", ", @getosversion);
- $special_vars .= " Win32::GetOSName = " . Win32::GetOSName() . "\n";
- $special_vars .= " Win32::GetOSVersion = $getosversion\n";
- $special_vars .= " Win32::FsType = " . Win32::FsType() . "\n";
- $special_vars .= " Win32::IsAdminUser = " . Win32::IsAdminUser() . "\n";
- }
- return $special_vars;
-}
-
-#--------------------------------------------------------------------------#
-# _split_redirect
-#--------------------------------------------------------------------------#
-
-sub _split_redirect {
- my $command = shift;
- my ($cmd, $prefix) = ($command =~ m{\A(.+?)(\|.*)\z});
- if (defined $cmd) {
- return ($cmd, $prefix);
- }
- else { # didn't match a redirection
- return $command
- }
-}
-
-#--------------------------------------------------------------------------#
-# _temp_filename -- stand-in for File::Temp for backwards compatibility
-#
-# takes an optional prefix, adds 8 random chars and returns
-# an absolute pathname
-#
-# NOTE -- manual unlink required
-#--------------------------------------------------------------------------#
-
-# @CHARS from File::Temp
-my @CHARS = (qw/ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
- a b c d e f g h i j k l m n o p q r s t u v w x y z
- 0 1 2 3 4 5 6 7 8 9 _
- /);
-
-sub _temp_filename {
- my ($prefix) = @_;
- $prefix = q{} unless defined $prefix;
- $prefix .= $CHARS[ int( rand(@CHARS) ) ] for 0 .. 7;
- return File::Spec->catfile(File::Spec->tmpdir(), $prefix);
-}
-
-#--------------------------------------------------------------------------#
-# _timeout_wrapper
-#--------------------------------------------------------------------------#
-
-sub _timeout_wrapper {
- my ($cmd, $timeout) = @_;
-
- # protect shell quotes
- $cmd = quotemeta($cmd);
-
- my $wrapper = sprintf << 'HERE', $timeout, $cmd, $cmd;
-use strict;
-my ($pid, $exitcode);
-eval {
- local $SIG{CHLD};
- local $SIG{ALRM} = sub {die 'Timeout'};
- $pid = fork;
- die "Cannot fork: $!\n" unless defined $pid;
- if ($pid) { #parent
- alarm %s;
- my $wstat = waitpid $pid, 0;
- $exitcode = $wstat == -1 ? -1 : $?;
- } else { #child
- setpgrp; # new process group for targeted kill
- exec "%s";
- }
-};
-alarm 0;
-if ($pid && $@ =~ /Timeout/){
- kill -9, $pid;
- my $wstat = waitpid $pid, 0;
- $exitcode = $wstat == -1 ? -1 : $?;
-}
-elsif ($@) {
- die $@;
-}
-print "(%s exited with $exitcode)\n";
-HERE
- return $wrapper;
-}
-
-#--------------------------------------------------------------------------#
-# _timeout_wrapper_win32
-#--------------------------------------------------------------------------#
-
-sub _timeout_wrapper_win32 {
- my ($cmd, $timeout) = @_;
-
- $timeout ||= 0; # just in case upstream doesn't guarantee it
-
- eval "use Win32::Job ();";
- if ($@) {
- $CPAN::Frontend->mywarn( << 'HERE' );
-CPAN::Reporter: you need Win32::Job for inactivity_timeout support.
-Continuing without timeout...
-HERE
- return;
- }
-
- my ($program) = split " ", $cmd;
- if (! File::Spec->file_name_is_absolute( $program ) ) {
- my $exe = $program . ".exe";
- my ($path) = grep { -e File::Spec->catfile($_,$exe) }
- split /$Config{path_sep}/, $ENV{PATH};
- if (! $path) {
- $CPAN::Frontend->mywarn( << "HERE" );
-CPAN::Reporter: can't locate $exe in the PATH.
-Continuing without timeout...
-HERE
- return;
- }
- $program = File::Spec->catfile($path,$exe);
- }
-
- # protect shell quotes and other things
- $_ = quotemeta($_) for ($program, $cmd);
-
- my $wrapper = sprintf << 'HERE', $program, $cmd, $timeout;
-use strict;
-use Win32::Job;
-my $executable = "%s";
-my $cmd_line = "%s";
-my $timeout = %s;
-
-my $job = Win32::Job->new() or die $^E;
-my $ppid = $job->spawn($executable, $cmd_line);
-$job->run($timeout);
-my $status = $job->status;
-my $exitcode = $status->{$ppid}{exitcode};
-if ( $exitcode == 293 ) {
- $exitcode = 9; # map Win32::Job kill (293) to SIGKILL (9)
-}
-elsif ( $exitcode & 255 ) {
- $exitcode = $exitcode << 8; # how perl expects it
-}
-print "($cmd_line exited with $exitcode)\n";
-HERE
- return $wrapper;
-}
-
-#--------------------------------------------------------------------------#-
-# _toolchain_report
-#--------------------------------------------------------------------------#
-
-my @toolchain_mods= qw(
- CPAN
- Cwd
- ExtUtils::CBuilder
- ExtUtils::Command
- ExtUtils::Install
- ExtUtils::MakeMaker
- ExtUtils::Manifest
- ExtUtils::ParseXS
- File::Spec
- Module::Build
- Module::Signature
- Test::Harness
- Test::More
- version
- YAML
- YAML::Syck
-);
-
-sub _toolchain_report {
- my ($result) = @_;
-
- my $installed = _version_finder( map { $_ => 0 } @toolchain_mods );
- $result->{toolchain} = $installed;
-
- my $mod_width = _max_length( keys %$installed );
- my $ver_width = _max_length(
- map { $installed->{$_}{have} } keys %$installed
- );
-
- my $format = " \%-${mod_width}s \%-${ver_width}s\n";
-
- my $report = "";
- $report .= sprintf( $format, "Module", "Have" );
- $report .= sprintf( $format, "-" x $mod_width, "-" x $ver_width );
-
- for my $var ( sort keys %$installed ) {
- $report .= sprintf(" \%-${mod_width}s \%-${ver_width}s\n",
- $var, $installed->{$var}{have} );
- }
-
- return $report;
-}
-
-
-
-#--------------------------------------------------------------------------#
-# _version_finder
-#
-# module => version pairs
-#
-# This is done via an external program to show installed versions exactly
-# the way they would be found when test programs are run. This means that
-# any updates to PERL5LIB will be reflected in the results.
-#
-# File-finding logic taken from CPAN::Module::inst_file(). Logic to
-# handle newer Module::Build prereq syntax is taken from
-# CPAN::Distribution::unsat_prereq()
-#
-#--------------------------------------------------------------------------#
-
-my $version_finder = $INC{'CPAN/Reporter/PrereqCheck.pm'};
-
-sub _version_finder {
- my %prereqs = @_;
-
- my $perl = Probe::Perl->find_perl_interpreter();
- my @prereq_results;
-
- my $prereq_input = _temp_filename( 'CPAN-Reporter-PI-' );
- my $fh = IO::File->new( $prereq_input, "w" )
- or die "Could not create temporary '$prereq_input' for prereq analysis: $!";
- $fh->print( map { "$_ $prereqs{$_}\n" } keys %prereqs );
- $fh->close;
-
- my $prereq_result = qx/$perl $version_finder < $prereq_input/;
-
- unlink $prereq_input;
-
- my %result;
- for my $line ( split "\n", $prereq_result ) {
- next unless length $line;
- my ($mod, $met, $have) = split " ", $line;
- unless ( defined($mod) && defined($met) && defined($have) ) {
- $CPAN::Frontend->mywarn(
- "Error parsing output from CPAN::Reporter::PrereqCheck:\n" .
- $line
- );
- next;
- }
- $result{$mod}{have} = $have;
- $result{$mod}{met} = $met;
- }
- return \%result;
-}
-
-1; #this line is important and will help the module return a true value
-
-__END__
-
-#--------------------------------------------------------------------------#
-# pod documentation
-#--------------------------------------------------------------------------#
-
-=begin wikidoc
-
-= NAME
-
-CPAN::Reporter - Adds CPAN Testers reporting to CPAN.pm
-
-= VERSION
-
-This documentation describes version %%VERSION%%.
-
-= SYNOPSIS
-
-From the CPAN shell:
-
- cpan> install CPAN::Reporter
- cpan> reload cpan
- cpan> o conf init test_report
-
-= DESCRIPTION
-
-The CPAN Testers project captures and analyses detailed results from building
-and testing CPAN distributions on multiple operating systems and multiple
-versions of Perl. This provides valuable feedback to module authors and
-potential users to identify bugs or platform compatibility issues and improves
-the overall quality and value of CPAN.
-
-One way individuals can contribute is to send a report for each module that
-they test or install. CPAN::Reporter is an add-on for the CPAN.pm module to
-send the results of building and testing modules to the CPAN Testers project.
-Full support for CPAN::Reporter is available in CPAN.pm as of version 1.92.
-
-= GETTING STARTED
-
-== Installation
-
-The first step in using CPAN::Reporter is to install it using whatever
-version of CPAN.pm is already installed. CPAN.pm will be upgraded as
-a dependency if necessary.
-
- cpan> install CPAN::Reporter
-
-If CPAN.pm was upgraded, it needs to be reloaded.
-
- cpan> reload cpan
-
-== Configuration
-
-If upgrading from a very old version of CPAN.pm, users may be prompted to renew
-their configuration settings, including the 'test_report' option to enable
-CPAN::Reporter.
-
-If not prompted automatically, users should manually initialize CPAN::Reporter
-support. After enabling CPAN::Reporter, CPAN.pm will automatically continue
-with interactive configuration of CPAN::Reporter options.
-
- cpan> o conf init test_report
-
-Users will need to enter an email address in one of the following formats:
-
- johndoe@example.com
- John Doe <johndoe@example.com>
- "John Q. Public" <johnqpublic@example.com>
-
-Because {cpan-testers} uses a mailing list to collect test reports, it is
-helpful if the email address provided is subscribed to the list. Otherwise,
-test reports will be held until manually reviewed and approved. Subscribing an
-account to the cpan-testers list is as easy as sending a blank email to
-cpan-testers-subscribe@perl.org and replying to the confirmation email.
-
-Users will also be prompted to enter the name of an outbound email server. It
-is recommended to use an email server provided by the user's ISP or company.
-Alternatively, leave this blank to attempt to send email directly to perl.org.
-
-Users that are new to CPAN::Reporter should accept the recommended values
-for other configuration options.
-
-After completing interactive configuration, be sure to commit (save) the CPAN
-configuration changes.
-
- cpan> o conf commit
-
-See [CPAN::Reporter::Config] for advanced configuration settings.
-
-== Using CPAN::Reporter
-
-Once CPAN::Reporter is enabled and configured, test or install modules with
-CPAN.pm as usual.
-
-For example, to force CPAN to repeat tests for CPAN::Reporter to see how it
-works:
-
- cpan> force test CPAN::Reporter
-
-When distribution tests fail, users will be prompted to edit the report to add
-addition information.
-
-= UNDERSTANDING TEST GRADES
-
-CPAN::Reporter will assign one of the following grades to the report:
-
-* {pass} -- all tests were successful
-
-* {fail} -- one or more tests failed, one or more test files died during
-testing or no test output was seen
-
-* {na} -- tests could not be run on this platform or version of perl
-
-* {unknown} -- no test files could be found (either t/*.t or test.pl) or
-a result could not be determined from test output (e.g tests may have hung
-and been interrupted)
-
-In returning results to CPAN.pm, "pass" and "unknown" are considered successful
-attempts to "make test" or "Build test" and will not prevent installation.
-"fail" and "na" are considered to be failures and CPAN.pm will not install
-unless forced.
-
-If prerequisites specified in {Makefile.PL} or {Build.PL} are not available,
-no report will be generated and a failure will be signaled to CPAN.pm.
-
-= PRIVACY WARNING
-
-CPAN::Reporter includes information in the test report about environment
-variables and special Perl variables that could be affecting test results in
-order to help module authors interpret the results of the tests. This includes
-information about paths, terminal, locale, user/group ID, installed toolchain
-modules (e.g. ExtUtils::MakeMaker) and so on.
-
-These have been intentionally limited to items that should not cause harmful
-personal information to be revealed -- it does ~not~ include your entire
-environment. Nevertheless, please do not use CPAN::Reporter if you are
-concerned about the disclosure of this information as part of your test report.
-
-Users wishing to review this information may choose to edit the report
-prior to sending it.
-
-= BUGS
-
-Please report any bugs or feature using the CPAN Request Tracker.
-Bugs can be submitted through the web interface at
-[http://rt.cpan.org/Dist/Display.html?Queue=CPAN-Reporter]
-
-When submitting a bug or request, please include a test-file or a patch to an
-existing test-file that illustrates the bug or desired feature.
-
-= SEE ALSO
-
-Information about CPAN::Testers:
-
-* [CPAN::Testers] -- overview of CPAN Testers architecture stack
-* [http://cpantesters.perl.org] -- project home with all reports
-* [http://cpantest.grango.org] -- documentation and wiki
-
-Additional Documentation:
-
-* [CPAN::Reporter::Config] -- advanced configuration settings
-* [CPAN::Reporter::FAQ] -- hints and tips
-
-= AUTHOR
-
-David A. Golden (DAGOLDEN)
-
-= COPYRIGHT AND LICENSE
-
-Copyright (c) 2006, 2007, 2008 by David A. Golden
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-[http://www.apache.org/licenses/LICENSE-2.0]
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-
-=end wikidoc
-
-=cut
diff --git a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/CPAN/Reporter.pod b/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/CPAN/Reporter.pod
deleted file mode 100644
index 5e573fc710c..00000000000
--- a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/CPAN/Reporter.pod
+++ /dev/null
@@ -1,224 +0,0 @@
-# Generated by Pod::WikiDoc version 0.18
-
-=pod
-
-=head1 NAME
-
-CPAN::Reporter - Adds CPAN Testers reporting to CPAN.pm
-
-=head1 VERSION
-
-This documentation describes version 1.13.
-
-=head1 SYNOPSIS
-
-From the CPAN shell:
-
- cpan> install CPAN::Reporter
- cpan> reload cpan
- cpan> o conf init test_report
-
-=head1 DESCRIPTION
-
-The CPAN Testers project captures and analyses detailed results from building
-and testing CPAN distributions on multiple operating systems and multiple
-versions of Perl. This provides valuable feedback to module authors and
-potential users to identify bugs or platform compatibility issues and improves
-the overall quality and value of CPAN.
-
-One way individuals can contribute is to send a report for each module that
-they test or install. CPAN::Reporter is an add-on for the CPAN.pm module to
-send the results of building and testing modules to the CPAN Testers project.
-Full support for CPAN::Reporter is available in CPAN.pm as of version 1.92.
-
-=head1 GETTING STARTED
-
-=head2 Installation
-
-The first step in using CPAN::Reporter is to install it using whatever
-version of CPAN.pm is already installed. CPAN.pm will be upgraded as
-a dependency if necessary.
-
- cpan> install CPAN::Reporter
-
-If CPAN.pm was upgraded, it needs to be reloaded.
-
- cpan> reload cpan
-
-=head2 Configuration
-
-If upgrading from a very old version of CPAN.pm, users may be prompted to renew
-their configuration settings, including the 'test_report' option to enable
-CPAN::Reporter.
-
-If not prompted automatically, users should manually initialize CPAN::Reporter
-support. After enabling CPAN::Reporter, CPAN.pm will automatically continue
-with interactive configuration of CPAN::Reporter options.
-
- cpan> o conf init test_report
-
-Users will need to enter an email address in one of the following formats:
-
- johndoe@example.com
- John Doe <johndoe@example.com>
- "John Q. Public" <johnqpublic@example.com>
-
-Because C<<< cpan-testers >>> uses a mailing list to collect test reports, it is
-helpful if the email address provided is subscribed to the list. Otherwise,
-test reports will be held until manually reviewed and approved. Subscribing an
-account to the cpan-testers list is as easy as sending a blank email to
-cpan-testers-subscribe@perl.org and replying to the confirmation email.
-
-Users will also be prompted to enter the name of an outbound email server. It
-is recommended to use an email server provided by the user's ISP or company.
-Alternatively, leave this blank to attempt to send email directly to perl.org.
-
-Users that are new to CPAN::Reporter should accept the recommended values
-for other configuration options.
-
-After completing interactive configuration, be sure to commit (save) the CPAN
-configuration changes.
-
- cpan> o conf commit
-
-See L<CPAN::Reporter::Config> for advanced configuration settings.
-
-=head2 Using CPAN::Reporter
-
-Once CPAN::Reporter is enabled and configured, test or install modules with
-CPAN.pm as usual.
-
-For example, to force CPAN to repeat tests for CPAN::Reporter to see how it
-works:
-
- cpan> force test CPAN::Reporter
-
-When distribution tests fail, users will be prompted to edit the report to add
-addition information.
-
-=head1 UNDERSTANDING TEST GRADES
-
-CPAN::Reporter will assign one of the following grades to the report:
-
-=over
-
-=item *
-
-C<<< pass >>> -- all tests were successful
-
-=back
-
-=over
-
-=item *
-
-C<<< fail >>> -- one or more tests failed, one or more test files died during
-testing or no test output was seen
-
-=back
-
-=over
-
-=item *
-
-C<<< na >>> -- tests could not be run on this platform or version of perl
-
-=back
-
-=over
-
-=item *
-
-C<<< unknown >>> -- no test files could be found (either tE<sol>*.t or test.pl) or
-a result could not be determined from test output (e.g tests may have hung
-and been interrupted)
-
-=back
-
-In returning results to CPAN.pm, "pass" and "unknown" are considered successful
-attempts to "make test" or "Build test" and will not prevent installation.
-"fail" and "na" are considered to be failures and CPAN.pm will not install
-unless forced.
-
-If prerequisites specified in C<<< Makefile.PL >>> or C<<< Build.PL >>> are not available,
-no report will be generated and a failure will be signaled to CPAN.pm.
-
-=head1 PRIVACY WARNING
-
-CPAN::Reporter includes information in the test report about environment
-variables and special Perl variables that could be affecting test results in
-order to help module authors interpret the results of the tests. This includes
-information about paths, terminal, locale, userE<sol>group ID, installed toolchain
-modules (e.g. ExtUtils::MakeMaker) and so on.
-
-These have been intentionally limited to items that should not cause harmful
-personal information to be revealed -- it does I<not> include your entire
-environment. Nevertheless, please do not use CPAN::Reporter if you are
-concerned about the disclosure of this information as part of your test report.
-
-Users wishing to review this information may choose to edit the report
-prior to sending it.
-
-=head1 BUGS
-
-Please report any bugs or feature using the CPAN Request Tracker.
-Bugs can be submitted through the web interface at
-L<http://rt.cpan.org/Dist/Display.html?Queue=CPAN-Reporter>
-
-When submitting a bug or request, please include a test-file or a patch to an
-existing test-file that illustrates the bug or desired feature.
-
-=head1 SEE ALSO
-
-Information about CPAN::Testers:
-
-=over
-
-=item *
-
-L<CPAN::Testers> -- overview of CPAN Testers architecture stack
-
-=item *
-
-L<http://cpantesters.perl.org> -- project home with all reports
-
-=item *
-
-L<http://cpantest.grango.org> -- documentation and wiki
-
-=back
-
-Additional Documentation:
-
-=over
-
-=item *
-
-L<CPAN::Reporter::Config> -- advanced configuration settings
-
-=item *
-
-L<CPAN::Reporter::FAQ> -- hints and tips
-
-=back
-
-=head1 AUTHOR
-
-David A. Golden (DAGOLDEN)
-
-=head1 COPYRIGHT AND LICENSE
-
-Copyright (c) 2006, 2007, 2008 by David A. Golden
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-L<http://www.apache.org/licenses/LICENSE-2.0>
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-
-
diff --git a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/CPAN/Reporter/API.pod b/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/CPAN/Reporter/API.pod
deleted file mode 100644
index 8e01c452fa1..00000000000
--- a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/CPAN/Reporter/API.pod
+++ /dev/null
@@ -1,135 +0,0 @@
-# Generated by Pod::WikiDoc version 0.18
-
-=pod
-
-=head1 NAME
-
-CPAN::Reporter::API - Programmer's interface to CPAN::Reporter
-
-=head1 VERSION
-
-This documentation refers to version 1.13
-
-=head1 FUNCTIONS
-
-CPAN::Reporter provides only a few public function for use within CPAN.pm.
-They are not imported during C<<< use >>>. Ordinary users will never need them.
-
-=head2 C<<< configure() >>>
-
- CPAN::Reporter::configure();
-
-Prompts the user to edit configuration settings stored in the CPAN::Reporter
-C<<< config.ini >>> file. It will create the configuration file if it does not exist.
-It is automatically called by CPAN.pm when initializing the 'test_report'
-option, e.g.:
-
- cpan> o conf init test_report
-
-=head2 C<<< record_command() >>>
-
- ($output, $exit_value) = CPAN::Reporter::record_command( $cmd, $secs );
-
-Takes a command to be executed via system(), but wraps and tees it to
-show the output to the console, capture the output, and capture the
-exit code. Returns an array reference of output lines (merged STDOUT and
-STDERR) and the return value from system(). Note that this is C<<< $? >>>, so the
-actual exit value of the command will need to be extracted as described in
-L<perlvar>.
-
-If the command includes a pipe character ('E<verbar>'), only the part of the
-command prior to the pipe will be wrapped and teed. The pipe will be
-applied to the execution of the wrapper script. This is essential to
-capture the exit value of the command and should be otherwise transparent.
-
-If a non-zero C<<< $secs >>> argument is provided, the command will be run with
-a timeout of C<<< $secs >>> (seconds). On Win32, L<Win32::Job> must be
-available or code will fall-back to running without a timeout; also, the
-first space-separated element of the command must be absolute, or else
-".exe" will be appended and the PATH searched for a matching command.
-
-If the attempt to record fails, a warning will be issued and one or more of
-C<<< $output >>> or C<<< $exit_value >>> will be undefined.
-
-=head2 C<<< grade_make() >>>
-
- CPAN::Reporter::grade_make( $dist, $command, \@output, $exit);
-
-Given a CPAN::Distribution object, the system command used to build the
-distribution (e.g. "make", "perl Build"), an array of lines of output from the
-command and the exit value from the command, C<<< grade_make() >>> determines a grade
-for this stage of distribution installation. If the grade is "pass",
-C<<< grade_make() >>> does B<not> send a CPAN Testers report for this stage and returns
-true to signal that the build was successful. Otherwise, a CPAN Testers report
-is sent and C<<< grade_make() >>> returns false.
-
-=head2 C<<< grade_PL() >>>
-
- CPAN::Reporter::grade_PL( $dist, $command, \@output, $exit);
-
-Given a CPAN::Distribution object, the system command used to run Makefile.PL
-or Build.PL (e.g. "perl Makefile.PL"), an array of lines of output from the
-command and the exit value from the command, C<<< grade_PL() >>> determines a grade
-for this stage of distribution installation. If the grade is "pass",
-C<<< grade_PL() >>> does B<not> send a CPAN Testers report for this stage and returns
-true to signal that the Makefile.PL or Build.PL ran successfully. Otherwise, a
-CPAN Testers report is sent and C<<< grade_PL() >>> returns false.
-
-=head2 C<<< grade_test() >>>
-
- CPAN::Reporter::grade_test( $dist, $command, \@output, $exit);
-
-Given a CPAN::Distribution object, the system command used to run tests (e.g.
-"make test"), an array of lines of output from testing and the exit value from
-the system command, C<<< grade_test() >>> determines a grade for distribution tests.
-A CPAN Testers report is then sent unless specified prerequisites were not
-satisfied, in which case the report is discarded. This function returns true
-if the grade is "pass" or "unknown" and returns false, otherwise.
-
-=head2 C<<< test() >>> -- DEPRECATED
-
- CPAN::Reporter::test( $cpan_dist, $system_command );
-
-This function is maintained for backwards compatibility. It effectively
-wraps the functionality of C<<< record_command() >>> and C<<< grade_test() >>> into
-a single function call. It takes a CPAN::Distribution object and the system
-command to run distribution tests.
-
-=head1 SEE ALSO
-
-=over
-
-=item *
-
-L<CPAN::Reporter>
-
-=item *
-
-L<CPAN::Reporter::Config>
-
-=item *
-
-L<CPAN::Reporter::FAQ>
-
-=back
-
-=head1 AUTHOR
-
-David A. Golden (DAGOLDEN)
-
-=head1 COPYRIGHT AND LICENSE
-
-Copyright (c) 2006, 2007, 2008 by David A. Golden
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-L<http://www.apache.org/licenses/LICENSE-2.0>
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-
-
diff --git a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/CPAN/Reporter/Config.pm b/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/CPAN/Reporter/Config.pm
deleted file mode 100644
index bb97dd100da..00000000000
--- a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/CPAN/Reporter/Config.pm
+++ /dev/null
@@ -1,764 +0,0 @@
-package CPAN::Reporter::Config;
-use strict;
-use vars qw/$VERSION/;
-$VERSION = '1.13';
-$VERSION = eval $VERSION;
-
-use Config::Tiny ();
-use File::HomeDir ();
-use File::Path (qw/mkpath/);
-use File::Spec ();
-use IO::File ();
-use CPAN (); # for printing warnings
-
-#--------------------------------------------------------------------------#
-# Back-compatibility checks -- just once per load
-#--------------------------------------------------------------------------#
-
-# 0.28_51 changed Mac OS X config file location -- if old directory is found,
-# move it to the new location
-if ( $^O eq 'darwin' ) {
- my $old = File::Spec->catdir(File::HomeDir->my_documents,".cpanreporter");
- my $new = File::Spec->catdir(File::HomeDir->my_home,".cpanreporter");
- if ( ( -d $old ) && (! -d $new ) ) {
- $CPAN::Frontend->mywarn( << "HERE");
-CPAN::Reporter: since CPAN::Reporter 0.28_51, the Mac OSX config directory
-has changed.
-
- Old: $old
- New: $new
-
-Your existing configuration file will be moved automatically.
-HERE
- mkpath($new);
- my $OLD_CONFIG = IO::File->new(
- File::Spec->catfile($old, "config.ini"), "<"
- ) or die $!;
- my $NEW_CONFIG = IO::File->new(
- File::Spec->catfile($new, "config.ini"), ">"
- ) or die $!;
- $NEW_CONFIG->print( do { local $/; <$OLD_CONFIG> } );
- $OLD_CONFIG->close;
- $NEW_CONFIG->close;
- unlink File::Spec->catfile($old, "config.ini") or die $!;
- rmdir($old) or die $!;
- }
-}
-
-#--------------------------------------------------------------------------#
-# Public
-#--------------------------------------------------------------------------#
-
-sub _configure {
- my $config_dir = _get_config_dir();
- my $config_file = _get_config_file();
-
- mkpath $config_dir if ! -d $config_dir;
- if ( ! -d $config_dir ) {
- $CPAN::Frontend->myprint(
- "\nCPAN::Reporter: couldn't create configuration directory '$config_dir': $!"
- );
- return;
- }
-
- my $config;
- my $existing_options;
-
- # explain grade:action pairs
- $CPAN::Frontend->myprint( _grade_action_prompt() );
-
- # read or create
- if ( -f $config_file ) {
- $CPAN::Frontend->myprint(
- "\nCPAN::Reporter: found your CPAN::Reporter config file at:\n$config_file\n"
- );
- $config = _open_config_file();
- # if we can't read it, bail out
- if ( ! $config ) {
- $CPAN::Frontend->mywarn("\n
- CPAN::Reporter: configuration will not be changed\n");
- return;
- }
- # clone what's in the config file
- $existing_options = { %{$config->{_}} } if $config;
- $CPAN::Frontend->myprint(
- "\nCPAN::Reporter: Updating your CPAN::Reporter configuration settings:\n"
- );
- }
- else {
- $CPAN::Frontend->myprint(
- "\nCPAN::Reporter: no config file found; creating a new one.\n"
- );
- $config = Config::Tiny->new();
- }
-
- my %spec = _config_spec();
-
- for my $k ( _config_order() ) {
- my $option_data = $spec{$k};
- $CPAN::Frontend->myprint( "\n" . $option_data->{info}. "\n");
- # options with defaults are mandatory
- if ( defined $option_data->{default} ) {
- # if we have a default, always show as a sane recommendation
- if ( length $option_data->{default} ) {
- $CPAN::Frontend->myprint(
- "(Recommended: '$option_data->{default}')\n\n"
- );
- }
- # repeat until validated
- PROMPT:
- while ( defined (
- my $answer = CPAN::Shell::colorable_makemaker_prompt(
- "$k?",
- $existing_options->{$k} || $option_data->{default}
- )
- )) {
- if ( ! $option_data->{validate} ||
- $option_data->{validate}->($k, $answer)
- ) {
- $config->{_}{$k} = $answer;
- last PROMPT;
- }
- }
- }
- else {
- # only initialize options without default if
- # answer matches non white space and validates,
- # otherwise reset it
- my $answer = CPAN::Shell::colorable_makemaker_prompt(
- "$k?",
- $existing_options->{$k} || q{}
- );
- if ( $answer =~ /\S/ ) {
- $config->{_}{$k} = $answer;
- }
- else {
- delete $config->{_}{$k};
- }
- }
- # delete existing as we proceed so we know what's left
- delete $existing_options->{$k};
- }
-
- # initialize remaining existing options
- $CPAN::Frontend->myprint(
- "\nYour CPAN::Reporter config file also contains these advanced " .
- "options:\n\n") if keys %$existing_options;
- for my $k ( keys %$existing_options ) {
- $config->{_}{$k} = CPAN::Shell::colorable_makemaker_prompt(
- "$k?", $existing_options->{$k}
- );
- }
-
- $CPAN::Frontend->myprint(
- "\nCPAN::Reporter: writing config file to '$config_file'.\n"
- );
- if ( $config->write( $config_file ) ) {
- return $config->{_};
- }
- else {
- $CPAN::Frontend->mywarn( "\nCPAN::Reporter: error writing config file to '$config_file':\n"
- . Config::Tiny->errstr(). "\n");
- return;
- }
-}
-
-#--------------------------------------------------------------------------#
-# Private
-#--------------------------------------------------------------------------#
-
-#--------------------------------------------------------------------------#
-# _config_order -- determines order of interactive config. Only items
-# in interactive config will be written to a starter config file
-#--------------------------------------------------------------------------#
-
-sub _config_order {
- return qw(
- email_from
- smtp_server
- edit_report
- send_report
- );
-}
-
-#--------------------------------------------------------------------------#
-# _config_spec -- returns configuration options information
-#
-# Keys include
-# default -- recommended value, used in prompts and as a fallback
-# if an options is not set; mandatory if defined
-# prompt -- short prompt for EU::MM prompting
-# info -- long description shown before prompting
-# validate -- CODE ref; return normalized option or undef if invalid
-#--------------------------------------------------------------------------#
-
-my %option_specs = (
- email_from => {
- default => '',
- prompt => 'What email address will be used for sending reports?',
- info => <<'HERE',
-CPAN::Reporter requires a valid email address as the return address
-for test reports sent to cpan-testers\@perl.org. Either provide just
-an email address, or put your real name in double-quote marks followed
-by your email address in angle marks, e.g. "John Doe" <jdoe@nowhere.com>.
-Note: unless this email address is subscribed to the cpan-testers mailing
-list, your test reports will not appear until manually reviewed.
-HERE
- },
- smtp_server => {
- default => undef, # optional
- info => <<'HERE',
-If your computer is behind a firewall or your ISP blocks
-outbound mail traffic, CPAN::Reporter will not be able to send
-test reports unless you provide an alternate outbound (SMTP)
-email server. Enter the full name of your outbound mail server
-(e.g. smtp.your-ISP.com) or leave this blank to send mail
-directly to perl.org. Use a space character to reset this value
-to sending to perl.org.
-HERE
- },
- edit_report => {
- default => 'default:ask/no pass/na:no',
- prompt => "Do you want to review or edit the test report?",
- validate => \&_validate_grade_action_pair,
- info => <<'HERE',
-Before test reports are sent, you may want to review or edit the test
-report and add additional comments about the result or about your system
-or Perl configuration. By default, CPAN::Reporter will ask after
-each report is generated whether or not you would like to edit the
-report. This option takes "grade:action" pairs.
-HERE
- },
- send_report => {
- default => 'default:ask/yes pass/na:yes',
- prompt => "Do you want to send the report?",
- validate => \&_validate_grade_action_pair,
- info => <<'HERE',
-By default, CPAN::Reporter will prompt you for confirmation that
-the test report should be sent before actually emailing the
-report. This gives the opportunity to bypass sending particular
-reports if you need to (e.g. if you caused the failure).
-This option takes "grade:action" pairs.
-HERE
- },
- cc_author => {
- default => 'default:yes pass/na:no',
- prompt => "Do you want to CC the module author ", # (author@cpan.org) added dynamically
- validate => \&_validate_grade_action_pair,
- info => <<'HERE',
-If you would like, CPAN::Reporter will copy the module author with
-the results of your tests. By default, authors are copied only on
-failed/unknown results. This option takes "grade:action" pairs.
-HERE
- },
- send_duplicates => {
- default => 'default:no',
- prompt => "This report is identical to a previous one. Send it anyway?",
- validate => \&_validate_grade_action_pair,
- info => <<'HERE',
-CPAN::Reporter records tests grades for each distribution, version and
-platform. By default, duplicates of previous results will not be sent at
-all, regardless of the value of the "send_report" option. This option takes
-"grade:action" pairs.
-HERE
- },
- send_PL_report => {
- prompt => "Do you want to send the PL report?",
- default => undef,
- validate => \&_validate_grade_action_pair,
- },
- send_make_report => {
- prompt => "Do you want to send the make/Build report?",
- default => undef,
- validate => \&_validate_grade_action_pair,
- },
- send_test_report => {
- prompt => "Do you want to send the test report?",
- default => undef,
- validate => \&_validate_grade_action_pair,
- },
- send_skipfile => {
- prompt => "What file has patterns for things that shouldn't be reported?",
- default => undef,
- validate => \&_validate_skipfile,
- },
- cc_skipfile => {
- prompt => "What file has patterns for things that shouldn't CC to authors?",
- default => undef,
- validate => \&_validate_skipfile,
- },
- command_timeout => {
- prompt => "If no timeout is set by CPAN, halt system commands after how many seconds?",
- default => undef,
- validate => \&_validate_seconds,
- },
- email_to => {
- default => undef,
- },
- editor => {
- default => undef,
- },
- transport => {
- default => undef,
- },
- debug => {
- default => undef,
- },
-);
-
-sub _config_spec { return %option_specs }
-
-#--------------------------------------------------------------------------#
-# _get_config_dir
-#--------------------------------------------------------------------------#
-
-sub _get_config_dir {
- if ( defined $ENV{PERL_CPAN_REPORTER_DIR} ) {
- return $ENV{PERL_CPAN_REPORTER_DIR};
- }
- else {
- return ( $^O eq 'MSWin32' )
- ? File::Spec->catdir(File::HomeDir->my_documents, ".cpanreporter")
- : File::Spec->catdir(File::HomeDir->my_home, ".cpanreporter") ;
- }
-}
-
-#--------------------------------------------------------------------------#
-# _get_config_file
-#--------------------------------------------------------------------------#
-
-sub _get_config_file {
- if ( defined $ENV{PERL_CPAN_REPORTER_CONFIG} ) {
- return $ENV{PERL_CPAN_REPORTER_CONFIG};
- }
- else {
- return File::Spec->catdir( _get_config_dir, "config.ini" );
- }
-}
-
-#--------------------------------------------------------------------------#
-# _get_config_options
-#--------------------------------------------------------------------------#
-
-sub _get_config_options {
- my $config = shift;
- # extract and return valid options, with fallback to defaults
- my %spec = CPAN::Reporter::Config::_config_spec();
- my %active;
- OPTION: for my $option ( keys %spec ) {
- if ( exists $config->{_}{$option} ) {
- my $val = $config->{_}{$option};
- if ( $spec{$option}{validate} &&
- ! $spec{$option}{validate}->($option, $val)
- ) {
- $CPAN::Frontend->mywarn( "\nCPAN::Reporter: invalid option '$val' in '$option'. Using default instead.\n\n" );
- $active{$option} = $spec{$option}{default};
- next OPTION;
- }
- $active{$option} = $val;
- }
- else {
- $active{$option} = $spec{$option}{default}
- if defined $spec{$option}{default};
- }
- }
- return \%active;
-}
-
-
-#--------------------------------------------------------------------------#
-# _grade_action_prompt -- describes grade action pairs
-#--------------------------------------------------------------------------#
-
-sub _grade_action_prompt {
- return << 'HERE';
-
-Some of the following configuration options require one or more "grade:action"
-pairs that determine what grade-specific action to take for that option.
-These pairs should be space-separated and are processed left-to-right. See
-CPAN::Reporter documentation for more details.
-
- GRADE : ACTION ======> EXAMPLES
- ------- ------- --------
- pass yes default:no
- fail no default:yes pass:no
- unknown ask/no default:ask/no pass:yes fail:no
- na ask/yes
- default
-
-HERE
-}
-
-#--------------------------------------------------------------------------#
-# _is_valid_action
-#--------------------------------------------------------------------------#
-
-my @valid_actions = qw{ yes no ask/yes ask/no ask };
-sub _is_valid_action {
- my $action = shift;
- return grep { $action eq $_ } @valid_actions;
-}
-
-#--------------------------------------------------------------------------#
-# _is_valid_grade
-#--------------------------------------------------------------------------#
-
-my @valid_grades = qw{ pass fail unknown na default };
-sub _is_valid_grade {
- my $grade = shift;
- return grep { $grade eq $_ } @valid_grades;
-}
-
-#--------------------------------------------------------------------------#
-# _open_config_file
-#--------------------------------------------------------------------------#
-
-sub _open_config_file {
- my $config_file = _get_config_file();
- my $config = Config::Tiny->read( $config_file )
- or $CPAN::Frontend->mywarn("CPAN::Reporter: couldn't read configuration file " .
- "'$config_file': \n" . Config::Tiny->errstr() . "\n");
- return $config;
-}
-
-#--------------------------------------------------------------------------#
-# _validate
-#
-# anything is OK if there is no validation subroutine
-#--------------------------------------------------------------------------#
-
-sub _validate {
- my ($name, $value) = @_;
- return 1 if ! exists $option_specs{$name}{validate};
- return $option_specs{$name}{validate}->($name, $value);
-}
-
-#--------------------------------------------------------------------------#
-# _validate_grade_action
-# returns hash of grade => action
-# returns undef
-#--------------------------------------------------------------------------#
-
-sub _validate_grade_action_pair {
- my ($name, $option) = @_;
- $option ||= "no";
-
- my %ga_map; # grade => action
-
- PAIR: for my $grade_action ( split q{ }, $option ) {
- my ($grade_list,$action);
-
- if ( $grade_action =~ m{.:.} ) {
- # parse pair for later check
- ($grade_list, $action) = $grade_action =~ m{\A([^:]+):(.+)\z};
- }
- elsif ( _is_valid_action($grade_action) ) {
- # action by itself
- $ga_map{default} = $grade_action;
- next PAIR;
- }
- elsif ( _is_valid_grade($grade_action) ) {
- # grade by itself
- $ga_map{$grade_action} = "yes";
- next PAIR;
- }
- elsif( $grade_action =~ m{./.} ) {
- # gradelist by itself, so setup for later check
- $grade_list = $grade_action;
- $action = "yes";
- }
- else {
- # something weird, so warn and skip
- $CPAN::Frontend->mywarn(
- "\nCPAN::Reporter: ignoring invalid grade:action '$grade_action' for '$name'.\n\n"
- );
- next PAIR;
- }
-
- # check gradelist
- my %grades = map { ($_,1) } split( "/", $grade_list);
- for my $g ( keys %grades ) {
- if ( ! _is_valid_grade($g) ) {
- $CPAN::Frontend->mywarn(
- "\nCPAN::Reporter: ignoring invalid grade '$g' in '$grade_action' for '$name'.\n\n"
- );
- delete $grades{$g};
- }
- }
-
- # check action
- if ( ! _is_valid_action($action) ) {
- $CPAN::Frontend->mywarn(
- "\nCPAN::Reporter: ignoring invalid action '$action' in '$grade_action' for '$name'.\n\n"
- );
- next PAIR;
- }
-
- # otherwise, it all must be OK
- $ga_map{$_} = $action for keys %grades;
- }
-
- return scalar(keys %ga_map) ? \%ga_map : undef;
-}
-
-sub _validate_seconds {
- my ($name, $option) = @_;
- return unless defined($option) && length($option)
- && ($option =~ /^\d/) && $option >= 0;
- return $option;
-}
-
-sub _validate_skipfile {
- my ($name, $option) = @_;
- return unless $option;
- my $skipfile = File::Spec->file_name_is_absolute( $option )
- ? $option : File::Spec->catfile( _get_config_dir(), $option );
- return -r $skipfile ? $skipfile : undef;
-}
-
-1;
-__END__
-
-=begin wikidoc
-
-= NAME
-
-CPAN::Reporter::Config - Config file options for CPAN::Reporter
-
-= VERSION
-
-This documentation refers to version %%VERSION%%
-
-= SYNOPSIS
-
-From the CPAN shell:
-
- cpan> o conf init test_report
-
-= DESCRIPTION
-
-Default options for CPAN::Reporter are read from a configuration file
-{.cpanreporter/config.ini} in the user's home directory (Unix and OS X)
-or "My Documents" directory (Windows).
-
-The configuration file is in "ini" format, with the option name and value
-separated by an "=" sign
-
- email_from = "John Doe" <johndoe@nowhere.org>
- cc_author = no
-
-Interactive configuration of email address, mail server and common
-action prompts may be repeated at any time from the CPAN shell.
-
- cpan> o conf init test_report
-
-If a configuration file does not exist, it will be created the first
-time interactive configuration is performed.
-
-Subsequent interactive configuration will also include any advanced
-options that have been added manually to the configuration file.
-
-= INTERACTIVE CONFIGURATION OPTIONS
-
-== Email Address (required)
-
-CPAN::Reporter requires users to provide an email address that will be used
-in the "From" header of the email to cpan-testers@perl.org.
-
-* {email_from = <email address>} -- email address of the user sending the
-test report; it should be a valid address format, e.g.:
-
- user@domain
- John Doe <user@domain>
- "John Q. Public" <user@domain>
-
-Because {cpan-testers} uses a mailing list to collect test reports, it is
-helpful if the email address provided is subscribed to the list. Otherwise,
-test reports will be held until manually reviewed and approved.
-
-Subscribing an account to the cpan-testers list is as easy as sending a blank
-email to cpan-testers-subscribe@perl.org and replying to the confirmation
-email.
-
-== Mail Server
-
-By default, Test::Reporter attempts to send mail directly to perl.org mail
-servers. This may fail if a user's computer is behind a network firewall
-that blocks outbound email. In this case, the following option should
-be set to the outbound mail server (i.e., SMTP server) as provided by
-the user's Internet service provider (ISP):
-
-* {smtp_server = <server list>} -- one or more alternate outbound mail servers
-if the default perl.org mail servers cannot be reached; multiple servers may be
-given, separated with a space (none by default)
-
-In at least one reported case, an ISP's outbound mail servers also refused
-to forward mail unless the {email_from} was from the ISP-given email address.
-
-== Action Prompts
-
-Several steps in the generation of a test report are optional. Configuration
-options control whether an action should be taken automatically or whether
-CPAN::Reporter should prompt the user for the action to take. The action
-to take may be different for each report grade.
-
-Valid actions, and their associated meaning, are as follows:
-
-* {yes} -- automatic yes
-* {no} -- automatic no
-* {ask/no} or just {ask} -- ask each time, but default to no
-* {ask/yes} -- ask each time, but default to yes
-
-For "ask" prompts, the default will be used if return is pressed immediately at
-the prompt or if the {PERL_MM_USE_DEFAULT} environment variable is set to a
-true value.
-
-Action prompt options take one or more space-separated "grade:action" pairs,
-which are processed left to right.
-
- edit_report = fail:ask/yes pass:no
-
-An action by itself is taken as a default to be used for any grade which does
-not have a grade-specific action. A default action may also be set by using
-the word "default" in place of a grade.
-
- edit_report = ask/no
- edit_report = default:ask/no
-
-A grade by itself is taken to have the action "yes" for that grade.
-
- edit_report = default:no fail
-
-Multiple grades may be specified together by separating them with a slash.
-
- edit_report = pass:no fail/na/unknown:ask/yes
-
-The action prompt options included in interactive configuration are:
-
-* {edit_report = <grade:action> ...} -- edit the test report before sending?
-(default:ask/no pass/na:no)
-* {send_report = <grade:action> ...} -- should test reports be sent at all?
-(default:ask/yes pass/na:yes)
-
-Note that if {send_report} is set to "no", CPAN::Reporter will still go through
-the motions of preparing a report, but will discard it rather than send it.
-
-A better way to disable CPAN::Reporter temporarily is with the CPAN option
-{test_report}:
-
- cpan> o conf test_report 0
-
-= ADVANCED CONFIGURATION OPTIONS
-
-These additional options are only necessary in special cases, for example if
-the default editor cannot be found or if reports shouldn't be sent in
-certain situations or for automated testing, and so on.
-
-* {cc_author = <grade:action> ...} -- should module authors should be sent a
-copy of the test report at their {author@cpan.org} address?
-(default:yes pass/na:no)
-* {cc_skipfile = <skipfile>} -- filename containing regular expressions (one
-per line) to match against the distribution ID (e.g.
-'AUTHOR/Dist-Name-0.01.tar.gz'); the author will not be copied if a match is
-found regardless of cc_author; non-absolute filename must be in the .cpanreporter
-config directory;
-* {command_timeout} -- if greater than zero and the CPAN config is
-{inactivity_timeout} is not set, then any commands executed by CPAN::Reporter
-will be halted after this many seconds; useful for unattended smoke testing
-to stop after some amount of time; generally, this should be large --
-900 seconds or more -- as some distributions' tests take quite a long time to
-run. On MSWin32, [Win32::Job] is a needed and trying to kill a processes may
-actually deadlock in some situations -- so use at your own risk
-* {editor = <editor>} -- editor to use to edit the test report; if not set,
-Test::Reporter will use environment variables {VISUAL}, {EDITOR} or {EDIT}
-(in that order) to find an editor
-* {send_duplicates = <grade:action> ...} -- should duplicates of previous
-reports be sent, regardless of {send_report}? (default:no)
-* {send_PL_report = <grade:action> ...} -- if defined, used in place of
-{send_report} during the PL phase
-* {send_make_report = <grade:action> ...} -- if defined, used in place of
-{send_report} during the make phase
-* {send_test_report = <grade:action> ...} -- if defined, used in place of
-{send_report} during the test phase
-* {send_skipfile = <skipfile>} -- like {cc_skipfile} but no report will be
-sent at all if a match is found
-* {transport = <transport>} -- if defined, passed to the {transport()}
-method of [Test::Reporter]. Valid options are 'Net::SMTP' or
-'Mail::Send'. (CPAN::Reporter uses Net::SMTP for this by default.)
-
-If these options are manually added to the configuration file, they will
-be included (and preserved) in subsequent interactive configuration.
-
-== Skipfile regular expressions
-
-Skip files are expected to have one regular expression per line and will be
-matched against the distribution ID, composed of the author's CPAN ID and the
-distribution tarball name.
-
- DAGOLDEN/CPAN-Reporter-1.00.tar.gz
-
-Lines that begin with a sharp (#) are considered comments and will not be
-matched. All regular expressionss will be matched case insensitive and will
-not be anchored unless you provide one.
-
-As the format of a distribution ID is "AUTHOR/tarball", anchoring at the
-start of the line with a caret (^) will match the author and with a slash (/)
-will match the distribution.
-
- # any distributions by JOHNDOE
- ^JOHNDOE
- # any distributions starting with Win32
- /Win32
- # a particular very specific distribution
- ^JOHNDOE/Foo-Bar-3.14
-
-= CONFIGURATION OPTIONS FOR DEBUGGING
-
-These options are useful for debugging only:
-
-* {debug = <boolean>} -- turns debugging on/off
-* {email_to = <email address>} -- alternate destination for reports instead of
-{cpan-testers@perl.org}; used for testing
-
-= ENVIRONMENT
-
-The following environment variables may be set to alter the default locations
-for CPAN::Reporter files:
-
-* {PERL_CPAN_REPORTER_DIR} -- if set, this directory is used in place of
-the default .cpanreporter directory; this will affect not only the location
-of the default {config.ini}, but also the location of the
-[CPAN::Reporter::History] database and any other files that live in that
-directory
-* {PERL_CPAN_REPORTER_CONFIG} -- if set, this file is used in place of
-the default {config.ini} file; it may be in any directory, regardless of the
-choice of configuration directory
-
-= SEE ALSO
-
-* [CPAN::Reporter]
-* [CPAN::Reporter::History]
-* [CPAN::Reporter::FAQ]
-
-= AUTHOR
-
-David A. Golden (DAGOLDEN)
-
-= COPYRIGHT AND LICENSE
-
-Copyright (c) 2006, 2007, 2008 by David A. Golden
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-[http://www.apache.org/licenses/LICENSE-2.0]
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-
-
-=end wikidoc
-
diff --git a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/CPAN/Reporter/Config.pod b/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/CPAN/Reporter/Config.pod
deleted file mode 100644
index 12b1805a899..00000000000
--- a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/CPAN/Reporter/Config.pod
+++ /dev/null
@@ -1,342 +0,0 @@
-# Generated by Pod::WikiDoc version 0.18
-
-=pod
-
-=head1 NAME
-
-CPAN::Reporter::Config - Config file options for CPAN::Reporter
-
-=head1 VERSION
-
-This documentation refers to version 1.13
-
-=head1 SYNOPSIS
-
-From the CPAN shell:
-
- cpan> o conf init test_report
-
-=head1 DESCRIPTION
-
-Default options for CPAN::Reporter are read from a configuration file
-C<<< .cpanreporter/config.ini >>> in the user's home directory (Unix and OS X)
-or "My Documents" directory (Windows).
-
-The configuration file is in "ini" format, with the option name and value
-separated by an "=" sign
-
- email_from = "John Doe" <johndoe@nowhere.org>
- cc_author = no
-
-Interactive configuration of email address, mail server and common
-action prompts may be repeated at any time from the CPAN shell.
-
- cpan> o conf init test_report
-
-If a configuration file does not exist, it will be created the first
-time interactive configuration is performed.
-
-Subsequent interactive configuration will also include any advanced
-options that have been added manually to the configuration file.
-
-=head1 INTERACTIVE CONFIGURATION OPTIONS
-
-=head2 Email Address (required)
-
-CPAN::Reporter requires users to provide an email address that will be used
-in the "From" header of the email to cpan-testers@perl.org.
-
-=over
-
-=item *
-
-C<<< email_from = <email address> >>> -- email address of the user sending the
-test report; it should be a valid address format, e.g.:
-
-=back
-
- user@domain
- John Doe <user@domain>
- "John Q. Public" <user@domain>
-
-Because C<<< cpan-testers >>> uses a mailing list to collect test reports, it is
-helpful if the email address provided is subscribed to the list. Otherwise,
-test reports will be held until manually reviewed and approved.
-
-Subscribing an account to the cpan-testers list is as easy as sending a blank
-email to cpan-testers-subscribe@perl.org and replying to the confirmation
-email.
-
-=head2 Mail Server
-
-By default, Test::Reporter attempts to send mail directly to perl.org mail
-servers. This may fail if a user's computer is behind a network firewall
-that blocks outbound email. In this case, the following option should
-be set to the outbound mail server (i.e., SMTP server) as provided by
-the user's Internet service provider (ISP):
-
-=over
-
-=item *
-
-C<<< smtp_server = <server list> >>> -- one or more alternate outbound mail servers
-if the default perl.org mail servers cannot be reached; multiple servers may be
-given, separated with a space (none by default)
-
-=back
-
-In at least one reported case, an ISP's outbound mail servers also refused
-to forward mail unless the C<<< email_from >>> was from the ISP-given email address.
-
-=head2 Action Prompts
-
-Several steps in the generation of a test report are optional. Configuration
-options control whether an action should be taken automatically or whether
-CPAN::Reporter should prompt the user for the action to take. The action
-to take may be different for each report grade.
-
-Valid actions, and their associated meaning, are as follows:
-
-=over
-
-=item *
-
-C<<< yes >>> -- automatic yes
-
-=item *
-
-C<<< no >>> -- automatic no
-
-=item *
-
-C<<< ask/no >>> or just C<<< ask >>> -- ask each time, but default to no
-
-=item *
-
-C<<< ask/yes >>> -- ask each time, but default to yes
-
-=back
-
-For "ask" prompts, the default will be used if return is pressed immediately at
-the prompt or if the C<<< PERL_MM_USE_DEFAULT >>> environment variable is set to a
-true value.
-
-Action prompt options take one or more space-separated "grade:action" pairs,
-which are processed left to right.
-
- edit_report = fail:ask/yes pass:no
-
-An action by itself is taken as a default to be used for any grade which does
-not have a grade-specific action. A default action may also be set by using
-the word "default" in place of a grade.
-
- edit_report = ask/no
- edit_report = default:ask/no
-
-A grade by itself is taken to have the action "yes" for that grade.
-
- edit_report = default:no fail
-
-Multiple grades may be specified together by separating them with a slash.
-
- edit_report = pass:no fail/na/unknown:ask/yes
-
-The action prompt options included in interactive configuration are:
-
-=over
-
-=item *
-
-C<<< edit_report = <grade:action> ... >>> -- edit the test report before sending?
-(default:askE<sol>no passE<sol>na:no)
-
-=item *
-
-C<<< send_report = <grade:action> ... >>> -- should test reports be sent at all?
-(default:askE<sol>yes passE<sol>na:yes)
-
-=back
-
-Note that if C<<< send_report >>> is set to "no", CPAN::Reporter will still go through
-the motions of preparing a report, but will discard it rather than send it.
-
-A better way to disable CPAN::Reporter temporarily is with the CPAN option
-C<<< test_report >>>:
-
- cpan> o conf test_report 0
-
-=head1 ADVANCED CONFIGURATION OPTIONS
-
-These additional options are only necessary in special cases, for example if
-the default editor cannot be found or if reports shouldn't be sent in
-certain situations or for automated testing, and so on.
-
-=over
-
-=item *
-
-C<<< cc_author = <grade:action> ... >>> -- should module authors should be sent a
-copy of the test report at their C<<< author@cpan.org >>> address?
-(default:yes passE<sol>na:no)
-
-=item *
-
-C<<< cc_skipfile = <skipfile> >>> -- filename containing regular expressions (one
-per line) to match against the distribution ID (e.g.
-'AUTHORE<sol>Dist-Name-0.01.tar.gz'); the author will not be copied if a match is
-found regardless of cc_author; non-absolute filename must be in the .cpanreporter
-config directory;
-
-=item *
-
-C<<< command_timeout >>> -- if greater than zero and the CPAN config is
-C<<< inactivity_timeout >>> is not set, then any commands executed by CPAN::Reporter
-will be halted after this many seconds; useful for unattended smoke testing
-to stop after some amount of time; generally, this should be large --
-900 seconds or more -- as some distributions' tests take quite a long time to
-run. On MSWin32, L<Win32::Job> is a needed and trying to kill a processes may
-actually deadlock in some situations -- so use at your own risk
-
-=item *
-
-C<<< editor = <editor> >>> -- editor to use to edit the test report; if not set,
-Test::Reporter will use environment variables C<<< VISUAL >>>, C<<< EDITOR >>> or C<<< EDIT >>>
-(in that order) to find an editor
-
-=item *
-
-C<<< send_duplicates = <grade:action> ... >>> -- should duplicates of previous
-reports be sent, regardless of C<<< send_report >>>? (default:no)
-
-=item *
-
-C<<< send_PL_report = <grade:action> ... >>> -- if defined, used in place of
-C<<< send_report >>> during the PL phase
-
-=item *
-
-C<<< send_make_report = <grade:action> ... >>> -- if defined, used in place of
-C<<< send_report >>> during the make phase
-
-=item *
-
-C<<< send_test_report = <grade:action> ... >>> -- if defined, used in place of
-C<<< send_report >>> during the test phase
-
-=item *
-
-C<<< send_skipfile = <skipfile> >>> -- like C<<< cc_skipfile >>> but no report will be
-sent at all if a match is found
-
-=item *
-
-C<<< transport = <transport> >>> -- if defined, passed to the C<<< transport() >>>
-method of L<Test::Reporter>. Valid options are 'Net::SMTP' or
-'Mail::Send'. (CPAN::Reporter uses Net::SMTP for this by default.)
-
-=back
-
-If these options are manually added to the configuration file, they will
-be included (and preserved) in subsequent interactive configuration.
-
-=head2 Skipfile regular expressions
-
-Skip files are expected to have one regular expression per line and will be
-matched against the distribution ID, composed of the author's CPAN ID and the
-distribution tarball name.
-
- DAGOLDEN/CPAN-Reporter-1.00.tar.gz
-
-Lines that begin with a sharp (#) are considered comments and will not be
-matched. All regular expressionss will be matched case insensitive and will
-not be anchored unless you provide one.
-
-As the format of a distribution ID is "AUTHORE<sol>tarball", anchoring at the
-start of the line with a caret (^) will match the author and with a slash (E<sol>)
-will match the distribution.
-
- # any distributions by JOHNDOE
- ^JOHNDOE
- # any distributions starting with Win32
- /Win32
- # a particular very specific distribution
- ^JOHNDOE/Foo-Bar-3.14
-
-=head1 CONFIGURATION OPTIONS FOR DEBUGGING
-
-These options are useful for debugging only:
-
-=over
-
-=item *
-
-C<<< debug = <boolean> >>> -- turns debugging onE<sol>off
-
-=item *
-
-C<<< email_to = <email address> >>> -- alternate destination for reports instead of
-C<<< cpan-testers@perl.org >>>; used for testing
-
-=back
-
-=head1 ENVIRONMENT
-
-The following environment variables may be set to alter the default locations
-for CPAN::Reporter files:
-
-=over
-
-=item *
-
-C<<< PERL_CPAN_REPORTER_DIR >>> -- if set, this directory is used in place of
-the default .cpanreporter directory; this will affect not only the location
-of the default C<<< config.ini >>>, but also the location of the
-L<CPAN::Reporter::History> database and any other files that live in that
-directory
-
-=item *
-
-C<<< PERL_CPAN_REPORTER_CONFIG >>> -- if set, this file is used in place of
-the default C<<< config.ini >>> file; it may be in any directory, regardless of the
-choice of configuration directory
-
-=back
-
-=head1 SEE ALSO
-
-=over
-
-=item *
-
-L<CPAN::Reporter>
-
-=item *
-
-L<CPAN::Reporter::History>
-
-=item *
-
-L<CPAN::Reporter::FAQ>
-
-=back
-
-=head1 AUTHOR
-
-David A. Golden (DAGOLDEN)
-
-=head1 COPYRIGHT AND LICENSE
-
-Copyright (c) 2006, 2007, 2008 by David A. Golden
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-L<http://www.apache.org/licenses/LICENSE-2.0>
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-
-
diff --git a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/CPAN/Reporter/FAQ.pod b/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/CPAN/Reporter/FAQ.pod
deleted file mode 100644
index 0db8105e12b..00000000000
--- a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/CPAN/Reporter/FAQ.pod
+++ /dev/null
@@ -1,138 +0,0 @@
-# Generated by Pod::WikiDoc version 0.18
-
-=pod
-
-=head1 NAME
-
-CPAN::Reporter::FAQ - Answers and tips for using CPAN::Reporter
-
-=head1 VERSION
-
-This documentation refers to version 1.13
-
-=head1 REPORT GRADES
-
-=head2 Why did I receive a report? The grade was PASSE<sol>FAILE<sol>UNKNOWNE<sol>NA!
-
-If you received a report, it's because the person using CPAN::Reporter
-chose to copy you on the report in addition to sending it to CPAN Testers.
-CPAN::Reporter suggests that only FAIL and UNKNOWN reports be copied to
-authors, but individual users may override that default.
-
-=head2 Why was a report sent if a prerequisite is missing?
-
-As of CPAN::Reporter 0.46, FAIL and UNKNOWN reports with unsatisfied
-prerequisites are discarded. Earlier versions may have sent these reports
-out by mistake as either an NA or UNKNOWN report.
-
-PASS reports are not discarded because it may be useful to know when tests
-passed despite a missing prerequisite. NA reports are sent because information
-about the lack of support for a platform is relevant regardless of
-prerequisites.
-
-=head1 SENDING REPORTS
-
-=head2 Why did I get an error sending a test report?
-
-Test reports are sent via ordinary email. The most common reason for errors
-sending a report is that many Internet Service Providers (ISP's) will block
-outbound SMTP (email) connections as part of their efforts to fight spam.
-Instead, email must be routed to the ISP's outbound mail servers, which will
-relay the email to the intended destination.
-
-You can configure CPAN::Reporter to use a specific outbound email server
-with the C<<< smtp_server >>> configuration option.
-
- smtp_server = mail.some-isp.com
-
-In at least one case, an ISP has blocked outbound email unless the
-"from" address was the assigned email address from that ISP.
-
-=head2 Why didn't my test report show up on CPAN Testers?
-
-CPAN Testers uses a mailing list to collect test reports. If the email
-address you set in C<<< email_from >>> is subscribed to the list, your emails
-will be automatically processed. Otherwise, test reports will be held
-until manually reviewed and approved.
-
-Subscribing an account to the cpan-testers list is as easy as sending a blank
-email to cpan-testers-subscribe@perl.org and replying to the confirmation
-email.
-
-There is a delay between the time emails appear on the mailing list and the
-time they appear on the CPAN Testers website. There is a further delay before
-summary statistics appear on search.cpan.org.
-
-If your email address is subscribed to the list but your test reports are still
-not showing up, your outbound email may have been silently blocked by your
-ISP. See the question above about errors sending reports.
-
-=head2 Why don't you support sending reports via HTTP or authenticated SMTP?
-
-CPAN::Reporter uses L<Test::Reporter> as its conduit to CPAN Testers.
-As soon as Test::Reporter provides support for alternative transport
-methods, support for them will be added to CPAN::Reporter.
-
-=head1 CPAN TESTERS
-
-=head2 Where can I find out more about CPAN Testers?
-
-A good place to start is the CPAN Testers Wiki:
-L<http://cpantest.grango.org/>
-
-=head2 Where can I find statistics about reports sent to CPAN Testers?
-
-CPAN Testers statistics are compiled at L<http://perl.grango.org/>
-
-=head2 How do I make sure I get credit for my test reports?
-
-To get credit in the statistics, use the same email address wherever
-you run tests.
-
-For example, if you are a CPAN author, use your PAUSEID email address.
-
- email_from = pauseid@cpan.org
-
-Otherwise, you should use a consistent "Full Name" as part of your
-email address in the C<<< email_from >>> option.
-
- email_from = "John Doe" <john.doe@example.com>
-
-=head1 SEE ALSO
-
-=over
-
-=item *
-
-L<CPAN::Testers>
-
-=item *
-
-L<CPAN::Reporter>
-
-=item *
-
-L<Test::Reporter>
-
-=back
-
-=head1 AUTHOR
-
-David A. Golden (DAGOLDEN)
-
-=head1 COPYRIGHT AND LICENSE
-
-Copyright (c) 2006, 2007, 2008 by David A. Golden
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-L<http://www.apache.org/licenses/LICENSE-2.0>
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-
-
diff --git a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/CPAN/Reporter/History.pm b/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/CPAN/Reporter/History.pm
deleted file mode 100644
index fac11ad0348..00000000000
--- a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/CPAN/Reporter/History.pm
+++ /dev/null
@@ -1,404 +0,0 @@
-package CPAN::Reporter::History;
-use strict;
-use vars qw/$VERSION @ISA @EXPORT_OK/;
-$VERSION = '1.13';
-$VERSION = eval $VERSION;
-
-use Config;
-use Carp;
-use Fcntl qw/:flock/;
-use File::HomeDir ();
-use File::Path (qw/mkpath/);
-use File::Spec ();
-use IO::File ();
-use CPAN (); # for printing warnings
-use CPAN::Reporter::Config ();
-
-require Exporter;
-@ISA = qw/Exporter/;
-@EXPORT_OK = qw/have_tested/;
-
-#--------------------------------------------------------------------------#
-# Some platforms don't implement flock, so fake it if necessary
-#--------------------------------------------------------------------------#
-
-BEGIN {
- eval {
- my $temp_file = File::Spec->catfile(
- File::Spec->tmpdir(), $$ . time()
- );
- my $fh = IO::File->new( $temp_file, "w" );
- flock $fh, LOCK_EX;
- $fh->close;
- unlink $temp_file;
- };
- if ( $@ ) {
- *CORE::GLOBAL::flock = sub (*$) { 1 };
- }
-}
-
-#--------------------------------------------------------------------------#
-# Back-compatibility checks -- just once per load
-#--------------------------------------------------------------------------#
-
-
-# 0.99_08 changed the history file format and name
-# If an old file exists, convert it to the new name and format. Note --
-# someone running multiple installations of CPAN::Reporter might have old
-# and new versions running so only convert in the case where the old file
-# exists and the new file does not
-
-{
- my $old_history_file = _get_old_history_file();
- my $new_history_file = _get_history_file();
- last if -f $new_history_file || ! -f $old_history_file;
-
- $CPAN::Frontend->mywarn("CPAN::Reporter: Your history file is in an old format. Upgrading automatically.\n");
-
- # open old and new files
- my ($old_fh, $new_fh);
- if (! ( $old_fh = IO::File->new( $old_history_file ) ) ) {
- $CPAN::Frontend->mywarn("CPAN::Reporter: error opening old history file: $!\nContinuing without conversion.\n");
- last;
- }
- if (! ($new_fh = IO::File->new( $new_history_file, "w" ) ) ) {
- $CPAN::Frontend->mywarn("CPAN::Reporter: error opening new history file: $!\nContinuing without conversion.\n");
- last;
- }
-
- print {$new_fh} "# Generated by CPAN::Reporter " .
- "$CPAN::Reporter::Config::VERSION\n";
- while ( my $line = <$old_fh> ) {
- chomp $line;
- # strip off perl version and convert
- # try not to match 5.1 from "MSWin32-x86-multi-thread 5.1"
- # from really old CPAN::Reporter history formats
- my ($old_version, $perl_patch);
- if ( $line =~ m{ (5\.0\d{2,5}) ?(patch \d+)?\z} ) {
- ($old_version, $perl_patch) = ($1, $2);
- $line =~ s{ (5\.0\d{2,5}) ?(patch \d+)?\z}{};
- }
- my $pv = $old_version ? "perl-" . _perl_version($old_version)
- : "unknown";
- $pv .= " $perl_patch" if $perl_patch;
- my ($grade_dist, $arch_os) = ($line =~ /(\S+ \S+) (.+)/);
- print {$new_fh} "test $grade_dist ($pv) $arch_os\n";
- }
- close $old_fh;
- close $new_fh;
-}
-
-
-#--------------------------------------------------------------------------#
-# Public methods
-#--------------------------------------------------------------------------#
-
-#--------------------------------------------------------------------------#
-# have_tested -- search for dist in history file
-#--------------------------------------------------------------------------#
-
-sub have_tested { ## no critic RequireArgUnpacking
- # validate arguments
- croak "arguments to have_tested() must be key value pairs"
- if @_ % 2;
-
- my $args = { @_ };
-
- my @bad_params = grep {
- $_ !~ m{^(?:dist|phase|grade|perl|archname|osvers)$} } keys %$args;
- croak "bad parameters for have_tested(): " . join(q{, },@bad_params)
- if @bad_params;
-
-
- # DWIM: grades to upper case
- $args->{grade} = uc $args->{grade} if defined $args->{grade};
-
- # default to current platform
- $args->{perl} = _format_perl_version() unless defined $args->{perl};
- $args->{archname} = $Config{archname} unless defined $args->{archname};
- $args->{osvers} = $Config{osvers} unless defined $args->{osvers};
-
- my @found;
- my $history = _open_history_file('<') or return;
- flock $history, LOCK_SH;
- <$history>; # throw away format line
- while ( defined (my $line = <$history>) ) {
- my $fields = _split_history( $line ) or next;
- push @found, $fields if _match($fields, $args);
- }
- $history->close;
- return @found;
-}
-
-#--------------------------------------------------------------------------#
-# Private methods
-#--------------------------------------------------------------------------#
-
-#--------------------------------------------------------------------------#
-# _format_history --
-#
-# phase grade dist-version (perl-version patchlevel) archname osvers
-#--------------------------------------------------------------------------#
-
-sub _format_history {
- my ($result) = @_;
- my $phase = $result->{phase};
- my $grade = uc $result->{grade};
- my $dist_name = $result->{dist_name};
- my $perlver = "perl-" . _format_perl_version();
- my $platform = "$Config{archname} $Config{osvers}";
- return "$phase $grade $dist_name ($perlver) $platform\n";
-}
-
-#--------------------------------------------------------------------------#
-# _format_perl_version
-#--------------------------------------------------------------------------#
-
-sub _format_perl_version {
- my $pv = _perl_version();
- $pv .= " patch $Config{perl_patchlevel}"
- if $Config{perl_patchlevel};
- return $pv;
-}
-
-#--------------------------------------------------------------------------#
-# _get_history_file
-#--------------------------------------------------------------------------#
-
-sub _get_history_file {
- return File::Spec->catdir(
- CPAN::Reporter::Config::_get_config_dir(), "reports-sent.db"
- );
-}
-
-#--------------------------------------------------------------------------#
-# _get_old_history_file -- prior to 0.99_08
-#--------------------------------------------------------------------------#
-
-sub _get_old_history_file {
- return File::Spec->catdir(
- CPAN::Reporter::Config::_get_config_dir(), "history.db"
- );
-}
-
-#--------------------------------------------------------------------------#
-# _is_duplicate
-#--------------------------------------------------------------------------#
-
-sub _is_duplicate {
- my ($result) = @_;
- my $log_line = _format_history( $result );
- my $history = _open_history_file('<') or return;
- my $found = 0;
- flock $history, LOCK_SH;
- while ( defined (my $line = <$history>) ) {
- if ( $line eq $log_line ) {
- $found++;
- last;
- }
- }
- $history->close;
- return $found;
-}
-
-#--------------------------------------------------------------------------#
-# _match
-#--------------------------------------------------------------------------#
-
-sub _match {
- my ($fields, $search) = @_;
- for my $k ( keys %$search ) {
- next if $search->{$k} eq q{}; # empty string matches anything
- return unless $fields->{$k} eq $search->{$k};
- }
- return 1; # all keys matched
-}
-
-#--------------------------------------------------------------------------#
-# _open_history_file
-#--------------------------------------------------------------------------#
-
-sub _open_history_file {
- my $mode = shift || '<';
- my $history_filename = _get_history_file();
- my $file_exists = -f $history_filename;
-
- # shortcut if reading and doesn't exist
- return if ( $mode eq '<' && ! $file_exists );
-
- # open it in the desired mode
- my $history = IO::File->new( $history_filename, $mode )
- or $CPAN::Frontend->mywarn("CPAN::Reporter: couldn't open history file "
- . "'$history_filename': $!\n");
-
- # if writing and it didn't exist before, initialize with header
- if ( substr($mode,0,1) eq '>' && ! $file_exists ) {
- print {$history} "# Generated by CPAN::Reporter " .
- "$CPAN::Reporter::Config::VERSION\n";
- }
-
- return $history;
-}
-
-#--------------------------------------------------------------------------#
-# _perl_version
-#--------------------------------------------------------------------------#
-
-sub _perl_version {
- my $ver = shift || "$]";
- $ver =~ qr/(\d)\.(\d{3})(\d{0,3})/;
- my ($maj,$min,$pat) = (0 + ($1||0), 0 + ($2||0), 0 + ($3||0));
- my $pv;
- if ( $min < 6 ) {
- $pv = $ver;
- }
- else {
- $pv = "$maj\.$min\.$pat";
- }
- return $pv;
-}
-
-#--------------------------------------------------------------------------#
-# _record_history
-#--------------------------------------------------------------------------#
-
-sub _record_history {
- my ($result) = @_;
- my $log_line = _format_history( $result );
- my $history = _open_history_file('>>') or return;
-
- flock( $history, LOCK_EX );
- seek( $history, 0, 2 ); # seek to end of file
- $history->print( $log_line );
- flock( $history, LOCK_UN );
-
- $history->close;
- return;
-}
-
-#--------------------------------------------------------------------------#
-# _split_history
-#
-# splits lines created with _format_history. Returns hash ref with
-# phase, grade, dist, perl, platform
-#--------------------------------------------------------------------------#
-
-sub _split_history {
- my ($line) = @_;
- chomp $line;
- my %fields;
- @fields{qw/phase grade dist perl archname osvers/} =
- $line =~ m{
- ^(\S+) \s+ # phase
- (\S+) \s+ # grade
- (\S+) \s+ # dist
- \(perl- ([^)]+) \) \s+ # (perl-version-patchlevel)
- (\S+) \s+ # archname
- (.+)$ # osvers
- }xms;
-
- # return nothing if parse fails
- return if scalar keys %fields == 0;# grep { ! defined($_) } values %fields;
- # otherwise return hashref
- return \%fields;
-}
-
-1;
-__END__
-
-=begin wikidoc
-
-= NAME
-
-CPAN::Reporter::History - Read or write a CPAN::Reporter history log
-
-= VERSION
-
-This documentation refers to version %%VERSION%%
-
-= SYNOPSIS
-
- use CPAN::Reporter::History 'have_tested';
-
- @results = have_tested( dist => 'Dist-Name-1.23' );
-
-= DESCRIPTION
-
-Interface for interacting with the CPAN::Reporter history file. Most methods
-are private for use only within CPAN::Reporter itself. However, a public
-function is provided to query the history file for results.
-
-= USAGE
-
-The following function is available. It is not exported by default.
-
-== {have_tested()}
-
- # all reports for Foo-Bar-1.23
- @results = have_tested( dist => 'Foo-Bar-1.23' );
-
- # all NA reports
- @results = have_tested( grade => 'NA' );
-
- # all reports on the current Perl/platform
- @results = have_tested();
-
-Searches the CPAN::Reporter history file for records exactly matching search
-criteria, given as pairs of field-names and desired values.
-
-Ordinary search criteria include:
-
-* {dist} -- the distribution tarball name without any filename suffix; from
-a {CPAN::Distribution} object, this is provided by the {base_id} method.
-* {phase} -- phase the report was generated during: either 'PL',
-'make' or 'test'
-* {grade} -- CPAN Testers grade: 'PASS', 'FAIL', 'NA' or'UNKNOWN'; Also may
-be 'DISCARD' for any failing reports not sent due to missing prerequisites
-
-Without additional criteria, a search will be limited to the current
-version of Perl and the current architecture and OS version.
-Additional criteria may be specified explicitly or, by specifying the empty
-string, {q{}}, will match that field for ~any~ record.
-
- # all reports for Foo-Bar-1.23 on any version of perl
- # on the current architecture and OS version
- @results = have_tested( dist => 'Foo-Bar-1.23', perl => q{} );
-
-These additional criteria include:
-
-* {perl} -- perl version and possible patchlevel; this will be
-dotted decimal (5.6.2) starting with version 5.6, or will be numeric style as
-given by {$]} for older versions; if a patchlevel exists, it must be specified
-similar to "5.11.0 patch 12345"
-* {archname} -- platform architecture name as given by $Config{archname}
-* {osvers} -- operating system version as given by $Config{osvers}
-
-The function returns an array of hashes representing each test result, with
-all of the fields listed above.
-
-= SEE ALSO
-
-* [CPAN::Reporter]
-* [CPAN::Reporter::FAQ]
-
-= AUTHOR
-
-David A. Golden (DAGOLDEN)
-
-= COPYRIGHT AND LICENSE
-
-Copyright (c) 2006, 2007, 2008 by David A. Golden
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-[http://www.apache.org/licenses/LICENSE-2.0]
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-
-=end wikidoc
-
diff --git a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/CPAN/Reporter/History.pod b/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/CPAN/Reporter/History.pod
deleted file mode 100644
index 38dc36f2d78..00000000000
--- a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/CPAN/Reporter/History.pod
+++ /dev/null
@@ -1,130 +0,0 @@
-# Generated by Pod::WikiDoc version 0.18
-
-=pod
-
-=head1 NAME
-
-CPAN::Reporter::History - Read or write a CPAN::Reporter history log
-
-=head1 VERSION
-
-This documentation refers to version 1.13
-
-=head1 SYNOPSIS
-
- use CPAN::Reporter::History 'have_tested';
-
- @results = have_tested( dist => 'Dist-Name-1.23' );
-
-=head1 DESCRIPTION
-
-Interface for interacting with the CPAN::Reporter history file. Most methods
-are private for use only within CPAN::Reporter itself. However, a public
-function is provided to query the history file for results.
-
-=head1 USAGE
-
-The following function is available. It is not exported by default.
-
-=head2 C<<< have_tested() >>>
-
- # all reports for Foo-Bar-1.23
- @results = have_tested( dist => 'Foo-Bar-1.23' );
-
- # all NA reports
- @results = have_tested( grade => 'NA' );
-
- # all reports on the current Perl/platform
- @results = have_tested();
-
-Searches the CPAN::Reporter history file for records exactly matching search
-criteria, given as pairs of field-names and desired values.
-
-Ordinary search criteria include:
-
-=over
-
-=item *
-
-C<<< dist >>> -- the distribution tarball name without any filename suffix; from
-a C<<< CPAN::Distribution >>> object, this is provided by the C<<< base_id >>> method.
-
-=item *
-
-C<<< phase >>> -- phase the report was generated during: either 'PL',
-'make' or 'test'
-
-=item *
-
-C<<< grade >>> -- CPAN Testers grade: 'PASS', 'FAIL', 'NA' or'UNKNOWN'; Also may
-be 'DISCARD' for any failing reports not sent due to missing prerequisites
-
-=back
-
-Without additional criteria, a search will be limited to the current
-version of Perl and the current architecture and OS version.
-Additional criteria may be specified explicitly or, by specifying the empty
-string, C<<< q{} >>>, will match that field for I<any> record.
-
- # all reports for Foo-Bar-1.23 on any version of perl
- # on the current architecture and OS version
- @results = have_tested( dist => 'Foo-Bar-1.23', perl => q{} );
-
-These additional criteria include:
-
-=over
-
-=item *
-
-C<<< perl >>> -- perl version and possible patchlevel; this will be
-dotted decimal (5.6.2) starting with version 5.6, or will be numeric style as
-given by C<<< $] >>> for older versions; if a patchlevel exists, it must be specified
-similar to "5.11.0 patch 12345"
-
-=item *
-
-C<<< archname >>> -- platform architecture name as given by $Config{archname}
-
-=item *
-
-C<<< osvers >>> -- operating system version as given by $Config{osvers}
-
-=back
-
-The function returns an array of hashes representing each test result, with
-all of the fields listed above.
-
-=head1 SEE ALSO
-
-=over
-
-=item *
-
-L<CPAN::Reporter>
-
-=item *
-
-L<CPAN::Reporter::FAQ>
-
-=back
-
-=head1 AUTHOR
-
-David A. Golden (DAGOLDEN)
-
-=head1 COPYRIGHT AND LICENSE
-
-Copyright (c) 2006, 2007, 2008 by David A. Golden
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-L<http://www.apache.org/licenses/LICENSE-2.0>
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-
-
diff --git a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/CPAN/Reporter/PrereqCheck.pm b/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/CPAN/Reporter/PrereqCheck.pm
deleted file mode 100644
index 356718f07c0..00000000000
--- a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/CPAN/Reporter/PrereqCheck.pm
+++ /dev/null
@@ -1,182 +0,0 @@
-package CPAN::Reporter::PrereqCheck;
-use strict;
-use vars qw/$VERSION/;
-$VERSION = '1.13';
-$VERSION = eval $VERSION;
-
-use ExtUtils::MakeMaker;
-use File::Spec;
-use CPAN::Version;
-
-_run() if ! caller();
-
-sub _run {
- my %saw_mod;
- # read module and prereq string from STDIN
- local *DEVNULL;
- open DEVNULL, ">" . File::Spec->devnull;
- while ( <> ) {
- m/^(\S+)\s+([^\n]*)/;
- my ($mod, $need) = ($1, $2);
- die "Couldn't read module for '$_'" unless $mod;
- $need = 0 if not defined $need;
-
- # only evaluate a module once
- next if $saw_mod{$mod}++;
-
- # get installed version from file with EU::MM
- my($have, $inst_file, $dir, @packpath);
- if ( $mod eq "perl" ) {
- $have = $];
- }
- else {
- @packpath = split( /::/, $mod );
- $packpath[-1] .= ".pm";
- if (@packpath == 1 && $packpath[0] eq "readline.pm") {
- unshift @packpath, "Term", "ReadLine"; # historical reasons
- }
- INCDIR:
- foreach my $dir (@INC) {
- my $pmfile = File::Spec->catfile($dir,@packpath);
- if (-f $pmfile){
- $inst_file = $pmfile;
- last INCDIR;
- }
- }
-
- # get version from file or else report missing
- if ( defined $inst_file ) {
- $have = MM->parse_version($inst_file);
- $have = "0" if ! defined $have || $have eq 'undef';
- # report broken if it can't be loaded
- select DEVNULL; # try to suppress spurious newlines
- if ( ! eval "require $mod" ) {
- select STDOUT;
- print "$mod 0 broken\n";
- next;
- }
- select STDOUT;
- }
- else {
- print "$mod 0 n/a\n";
- next;
- }
- }
-
- # complex requirements are comma separated
- my ( @requirements ) = split /\s*,\s*/, $need;
-
- my $passes = 0;
- RQ:
- for my $rq (@requirements) {
- if ($rq =~ s|>=\s*||) {
- # no-op -- just trimmed string
- } elsif ($rq =~ s|>\s*||) {
- if (CPAN::Version->vgt($have,$rq)){
- $passes++;
- }
- next RQ;
- } elsif ($rq =~ s|!=\s*||) {
- if (CPAN::Version->vcmp($have,$rq)) {
- $passes++; # didn't match
- }
- next RQ;
- } elsif ($rq =~ s|<=\s*||) {
- if (! CPAN::Version->vgt($have,$rq)){
- $passes++;
- }
- next RQ;
- } elsif ($rq =~ s|<\s*||) {
- if (CPAN::Version->vlt($have,$rq)){
- $passes++;
- }
- next RQ;
- }
- # if made it here, then it's a normal >= comparison
- if (! CPAN::Version->vlt($have, $rq)){
- $passes++;
- }
- }
- my $ok = $passes == @requirements ? 1 : 0;
- print "$mod $ok $have\n"
- }
- return;
-}
-
-1;
-
-__END__
-
-#--------------------------------------------------------------------------#
-# pod documentation
-#--------------------------------------------------------------------------#
-
-=begin wikidoc
-
-= NAME
-
-CPAN::Reporter::PrereqCheck - Modulino for prerequisite tests
-
-= VERSION
-
-This documentation describes version %%VERSION%%.
-
-= SYNOPSIS
-
- require CPAN::Reporter::PrereqCheck;
- my $prereq_check = $INC{'CPAN/Reporter/PrereqCheck.pm'};
- my $result = qx/$perl $prereq_check < $prereq_file/;
-
-= DESCRIPTION
-
-This modulino determines whether a list of prerequisite modules are
-available and, if so, their version number. It is designed to be run
-as a script in order to provide this information from the perspective of
-a subprocess, just like CPAN::Reporter's invocation of {perl Makefile.PL}
-and so on.
-
-It reads a module name and prerequisite string pair from each line of input
-and prints out the module name, 0 or 1 depending on whether the prerequisite
-is satisifed, and the installed module version. If the module is not
-available, it will print "n/a" for the version. If the module is available
-but can't be loaded, it will print "broken" for the version. Modules
-without a version will be treated as being of version "0".
-
-No user serviceable parts are inside. This modulino is packaged for
-internal use by CPAN::Reporter.
-
-= BUGS
-
-Please report any bugs or feature using the CPAN Request Tracker.
-Bugs can be submitted through the web interface at
-[http://rt.cpan.org/Dist/Display.html?Queue=CPAN-Reporter]
-
-When submitting a bug or request, please include a test-file or a patch to an
-existing test-file that illustrates the bug or desired feature.
-
-= SEE ALSO
-
-* [CPAN::Reporter] -- main documentation
-
-= AUTHOR
-
-David A. Golden (DAGOLDEN)
-
-= COPYRIGHT AND LICENSE
-
-Copyright (c) 2006, 2007 by David A. Golden
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-[http://www.apache.org/licenses/LICENSE-2.0]
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-
-=end wikidoc
-
-=cut
diff --git a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/CPAN/Reporter/PrereqCheck.pod b/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/CPAN/Reporter/PrereqCheck.pod
deleted file mode 100644
index 088507a60ac..00000000000
--- a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/CPAN/Reporter/PrereqCheck.pod
+++ /dev/null
@@ -1,75 +0,0 @@
-# Generated by Pod::WikiDoc version 0.18
-
-=pod
-
-=head1 NAME
-
-CPAN::Reporter::PrereqCheck - Modulino for prerequisite tests
-
-=head1 VERSION
-
-This documentation describes version 1.13.
-
-=head1 SYNOPSIS
-
- require CPAN::Reporter::PrereqCheck;
- my $prereq_check = $INC{'CPAN/Reporter/PrereqCheck.pm'};
- my $result = qx/$perl $prereq_check < $prereq_file/;
-
-=head1 DESCRIPTION
-
-This modulino determines whether a list of prerequisite modules are
-available and, if so, their version number. It is designed to be run
-as a script in order to provide this information from the perspective of
-a subprocess, just like CPAN::Reporter's invocation of C<<< perl Makefile.PL >>>
-and so on.
-
-It reads a module name and prerequisite string pair from each line of input
-and prints out the module name, 0 or 1 depending on whether the prerequisite
-is satisifed, and the installed module version. If the module is not
-available, it will print "nE<sol>a" for the version. If the module is available
-but can't be loaded, it will print "broken" for the version. Modules
-without a version will be treated as being of version "0".
-
-No user serviceable parts are inside. This modulino is packaged for
-internal use by CPAN::Reporter.
-
-=head1 BUGS
-
-Please report any bugs or feature using the CPAN Request Tracker.
-Bugs can be submitted through the web interface at
-L<http://rt.cpan.org/Dist/Display.html?Queue=CPAN-Reporter>
-
-When submitting a bug or request, please include a test-file or a patch to an
-existing test-file that illustrates the bug or desired feature.
-
-=head1 SEE ALSO
-
-=over
-
-=item *
-
-L<CPAN::Reporter> -- main documentation
-
-=back
-
-=head1 AUTHOR
-
-David A. Golden (DAGOLDEN)
-
-=head1 COPYRIGHT AND LICENSE
-
-Copyright (c) 2006, 2007 by David A. Golden
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-L<http://www.apache.org/licenses/LICENSE-2.0>
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-
-
diff --git a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/CPAN/Tarzip.pm b/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/CPAN/Tarzip.pm
deleted file mode 100644
index a9cad247271..00000000000
--- a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/CPAN/Tarzip.pm
+++ /dev/null
@@ -1,352 +0,0 @@
-# -*- Mode: cperl; coding: utf-8; cperl-indent-level: 4 -*-
-package CPAN::Tarzip;
-use strict;
-use vars qw($VERSION @ISA $BUGHUNTING);
-use CPAN::Debug;
-use File::Basename ();
-$VERSION = sprintf "%.6f", substr(q$Rev: 2213 $,4)/1000000 + 5.4;
-# module is internal to CPAN.pm
-
-@ISA = qw(CPAN::Debug);
-$BUGHUNTING ||= 0; # released code must have turned off
-
-# it's ok if file doesn't exist, it just matters if it is .gz or .bz2
-sub new {
- my($class,$file) = @_;
- $CPAN::Frontend->mydie("CPAN::Tarzip->new called without arg") unless defined $file;
- if (0) {
- # nonono, we get e.g. 01mailrc.txt uncompressed if only wget is available
- $CPAN::Frontend->mydie("file[$file] doesn't match /\\.(bz2|gz|zip|tgz)\$/")
- unless $file =~ /\.(bz2|gz|zip|tgz)$/i;
- }
- my $me = { FILE => $file };
- if (0) {
- } elsif ($file =~ /\.bz2$/i) {
- unless ($me->{UNGZIPPRG} = $CPAN::Config->{bzip2}) {
- my $bzip2;
- if ($CPAN::META->has_inst("File::Which")) {
- $bzip2 = File::Which::which("bzip2");
- }
- if ($bzip2) {
- $me->{UNGZIPPRG} = $bzip2 || "bzip2";
- } else {
- $CPAN::Frontend->mydie(qq{
-CPAN.pm needs the external program bzip2 in order to handle '$file'.
-Please install it now and run 'o conf init' to register it as external
-program.
-});
- }
- }
- } else {
- # yes, we let gzip figure it out in *any* other case
- $me->{UNGZIPPRG} = $CPAN::Config->{gzip} || "gzip";
- }
- bless $me, $class;
-}
-
-sub gzip {
- my($self,$read) = @_;
- my $write = $self->{FILE};
- if ($CPAN::META->has_inst("Compress::Zlib")) {
- my($buffer,$fhw);
- $fhw = FileHandle->new($read)
- or $CPAN::Frontend->mydie("Could not open $read: $!");
- my $cwd = `pwd`;
- my $gz = Compress::Zlib::gzopen($write, "wb")
- or $CPAN::Frontend->mydie("Cannot gzopen $write: $! (pwd is $cwd)\n");
- $gz->gzwrite($buffer)
- while read($fhw,$buffer,4096) > 0 ;
- $gz->gzclose() ;
- $fhw->close;
- return 1;
- } else {
- my $command = CPAN::HandleConfig->safe_quote($self->{UNGZIPPRG});
- system(qq{$command -c "$read" > "$write"})==0;
- }
-}
-
-
-sub gunzip {
- my($self,$write) = @_;
- my $read = $self->{FILE};
- if ($CPAN::META->has_inst("Compress::Zlib")) {
- my($buffer,$fhw);
- $fhw = FileHandle->new(">$write")
- or $CPAN::Frontend->mydie("Could not open >$write: $!");
- my $gz = Compress::Zlib::gzopen($read, "rb")
- or $CPAN::Frontend->mydie("Cannot gzopen $read: $!\n");
- $fhw->print($buffer)
- while $gz->gzread($buffer) > 0 ;
- $CPAN::Frontend->mydie("Error reading from $read: $!\n")
- if $gz->gzerror != Compress::Zlib::Z_STREAM_END();
- $gz->gzclose() ;
- $fhw->close;
- return 1;
- } else {
- my $command = CPAN::HandleConfig->safe_quote($self->{UNGZIPPRG});
- system(qq{$command -dc "$read" > "$write"})==0;
- }
-}
-
-
-sub gtest {
- my($self) = @_;
- return $self->{GTEST} if exists $self->{GTEST};
- defined $self->{FILE} or $CPAN::Frontend->mydie("gtest called but no FILE specified");
- my $read = $self->{FILE};
- my $success;
- # After I had reread the documentation in zlib.h, I discovered that
- # uncompressed files do not lead to an gzerror (anymore?).
- if ( $CPAN::META->has_inst("Compress::Zlib") ) {
- my($buffer,$len);
- $len = 0;
- my $gz = Compress::Zlib::gzopen($read, "rb")
- or $CPAN::Frontend->mydie(sprintf("Cannot gzopen %s: %s\n",
- $read,
- $Compress::Zlib::gzerrno));
- while ($gz->gzread($buffer) > 0 ) {
- $len += length($buffer);
- $buffer = "";
- }
- my $err = $gz->gzerror;
- $success = ! $err || $err == Compress::Zlib::Z_STREAM_END();
- if ($len == -s $read) {
- $success = 0;
- CPAN->debug("hit an uncompressed file") if $CPAN::DEBUG;
- }
- $gz->gzclose();
- CPAN->debug("err[$err]success[$success]") if $CPAN::DEBUG;
- } else {
- my $command = CPAN::HandleConfig->safe_quote($self->{UNGZIPPRG});
- $success = 0==system(qq{$command -qdt "$read"});
- }
- return $self->{GTEST} = $success;
-}
-
-
-sub TIEHANDLE {
- my($class,$file) = @_;
- my $ret;
- $class->debug("file[$file]");
- my $self = $class->new($file);
- if (0) {
- } elsif (!$self->gtest) {
- my $fh = FileHandle->new($file)
- or $CPAN::Frontend->mydie("Could not open file[$file]: $!");
- binmode $fh;
- $self->{FH} = $fh;
- $class->debug("via uncompressed FH");
- } elsif ($CPAN::META->has_inst("Compress::Zlib")) {
- my $gz = Compress::Zlib::gzopen($file,"rb") or
- $CPAN::Frontend->mydie("Could not gzopen $file");
- $self->{GZ} = $gz;
- $class->debug("via Compress::Zlib");
- } else {
- my $gzip = CPAN::HandleConfig->safe_quote($self->{UNGZIPPRG});
- my $pipe = "$gzip -dc $file |";
- my $fh = FileHandle->new($pipe) or $CPAN::Frontend->mydie("Could not pipe[$pipe]: $!");
- binmode $fh;
- $self->{FH} = $fh;
- $class->debug("via external gzip");
- }
- $self;
-}
-
-
-sub READLINE {
- my($self) = @_;
- if (exists $self->{GZ}) {
- my $gz = $self->{GZ};
- my($line,$bytesread);
- $bytesread = $gz->gzreadline($line);
- return undef if $bytesread <= 0;
- return $line;
- } else {
- my $fh = $self->{FH};
- return scalar <$fh>;
- }
-}
-
-
-sub READ {
- my($self,$ref,$length,$offset) = @_;
- $CPAN::Frontend->mydie("read with offset not implemented") if defined $offset;
- if (exists $self->{GZ}) {
- my $gz = $self->{GZ};
- my $byteread = $gz->gzread($$ref,$length);# 30eaf79e8b446ef52464b5422da328a8
- return $byteread;
- } else {
- my $fh = $self->{FH};
- return read($fh,$$ref,$length);
- }
-}
-
-
-sub DESTROY {
- my($self) = @_;
- if (exists $self->{GZ}) {
- my $gz = $self->{GZ};
- $gz->gzclose() if defined $gz; # hard to say if it is allowed
- # to be undef ever. AK, 2000-09
- } else {
- my $fh = $self->{FH};
- $fh->close if defined $fh;
- }
- undef $self;
-}
-
-
-sub untar {
- my($self) = @_;
- my $file = $self->{FILE};
- my($prefer) = 0;
-
- if (0) { # makes changing order easier
- } elsif ($BUGHUNTING) {
- $prefer=2;
- } elsif (MM->maybe_command($self->{UNGZIPPRG})
- &&
- MM->maybe_command($CPAN::Config->{tar})) {
- # should be default until Archive::Tar handles bzip2
- $prefer = 1;
- } elsif (
- $CPAN::META->has_usable("Archive::Tar")
- &&
- $CPAN::META->has_inst("Compress::Zlib") ) {
- $prefer = 2;
- } else {
- $CPAN::Frontend->mydie(qq{
-CPAN.pm needs either the external programs tar, gzip and bzip2
-installed. Can't continue.
-});
- }
- my $tar_verb = "v";
- if (defined $CPAN::Config->{tar_verbosity}) {
- $tar_verb = $CPAN::Config->{tar_verbosity} eq "none" ? "" :
- $CPAN::Config->{tar_verbosity};
- }
- if ($prefer==1) { # 1 => external gzip+tar
- my($system);
- my $is_compressed = $self->gtest();
- my $tarcommand = CPAN::HandleConfig->safe_quote($CPAN::Config->{tar}) || "tar";
- if ($is_compressed) {
- my $command = CPAN::HandleConfig->safe_quote($self->{UNGZIPPRG});
- $system = qq{$command -dc }.
- qq{< "$file" | $tarcommand x${tar_verb}f -};
- } else {
- $system = qq{$tarcommand x${tar_verb}f "$file"};
- }
- if (system($system) != 0) {
- # people find the most curious tar binaries that cannot handle
- # pipes
- if ($is_compressed) {
- (my $ungzf = $file) =~ s/\.gz(?!\n)\Z//;
- $ungzf = File::Basename::basename($ungzf);
- my $ct = CPAN::Tarzip->new($file);
- if ($ct->gunzip($ungzf)) {
- $CPAN::Frontend->myprint(qq{Uncompressed $file successfully\n});
- } else {
- $CPAN::Frontend->mydie(qq{Couldn\'t uncompress $file\n});
- }
- $file = $ungzf;
- }
- $system = qq{$tarcommand x${tar_verb}f "$file"};
- $CPAN::Frontend->myprint(qq{Using Tar:$system:\n});
- if (system($system)==0) {
- $CPAN::Frontend->myprint(qq{Untarred $file successfully\n});
- } else {
- $CPAN::Frontend->mydie(qq{Couldn\'t untar $file\n});
- }
- return 1;
- } else {
- return 1;
- }
- } elsif ($prefer==2) { # 2 => modules
- unless ($CPAN::META->has_usable("Archive::Tar")) {
- $CPAN::Frontend->mydie("Archive::Tar not installed, please install it to continue");
- }
- my $tar = Archive::Tar->new($file,1);
- my $af; # archive file
- my @af;
- if ($BUGHUNTING) {
- # RCS 1.337 had this code, it turned out unacceptable slow but
- # it revealed a bug in Archive::Tar. Code is only here to hunt
- # the bug again. It should never be enabled in published code.
- # GDGraph3d-0.53 was an interesting case according to Larry
- # Virden.
- warn(">>>Bughunting code enabled<<< " x 20);
- for $af ($tar->list_files) {
- if ($af =~ m!^(/|\.\./)!) {
- $CPAN::Frontend->mydie("ALERT: Archive contains ".
- "illegal member [$af]");
- }
- $CPAN::Frontend->myprint("$af\n");
- $tar->extract($af); # slow but effective for finding the bug
- return if $CPAN::Signal;
- }
- } else {
- for $af ($tar->list_files) {
- if ($af =~ m!^(/|\.\./)!) {
- $CPAN::Frontend->mydie("ALERT: Archive contains ".
- "illegal member [$af]");
- }
- if ($tar_verb eq "v" || $tar_verb eq "vv") {
- $CPAN::Frontend->myprint("$af\n");
- }
- push @af, $af;
- return if $CPAN::Signal;
- }
- $tar->extract(@af) or
- $CPAN::Frontend->mydie("Could not untar with Archive::Tar.");
- }
-
- Mac::BuildTools::convert_files([$tar->list_files], 1)
- if ($^O eq 'MacOS');
-
- return 1;
- }
-}
-
-sub unzip {
- my($self) = @_;
- my $file = $self->{FILE};
- if ($CPAN::META->has_inst("Archive::Zip")) {
- # blueprint of the code from Archive::Zip::Tree::extractTree();
- my $zip = Archive::Zip->new();
- my $status;
- $status = $zip->read($file);
- $CPAN::Frontend->mydie("Read of file[$file] failed\n")
- if $status != Archive::Zip::AZ_OK();
- $CPAN::META->debug("Successfully read file[$file]") if $CPAN::DEBUG;
- my @members = $zip->members();
- for my $member ( @members ) {
- my $af = $member->fileName();
- if ($af =~ m!^(/|\.\./)!) {
- $CPAN::Frontend->mydie("ALERT: Archive contains ".
- "illegal member [$af]");
- }
- $status = $member->extractToFileNamed( $af );
- $CPAN::META->debug("af[$af]status[$status]") if $CPAN::DEBUG;
- $CPAN::Frontend->mydie("Extracting of file[$af] from zipfile[$file] failed\n") if
- $status != Archive::Zip::AZ_OK();
- return if $CPAN::Signal;
- }
- return 1;
- } else {
- my $unzip = $CPAN::Config->{unzip} or
- $CPAN::Frontend->mydie("Cannot unzip, no unzip program available");
- my @system = ($unzip, $file);
- return system(@system) == 0;
- }
-}
-
-1;
-
-__END__
-
-=head1 LICENSE
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-=cut
diff --git a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/CPAN/Version.pm b/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/CPAN/Version.pm
deleted file mode 100644
index da876aac2d7..00000000000
--- a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/CPAN/Version.pm
+++ /dev/null
@@ -1,173 +0,0 @@
-package CPAN::Version;
-
-use strict;
-use vars qw($VERSION);
-$VERSION = "5.5";
-
-# CPAN::Version::vcmp courtesy Jost Krieger
-sub vcmp {
- my($self,$l,$r) = @_;
- local($^W) = 0;
- CPAN->debug("l[$l] r[$r]") if $CPAN::DEBUG;
-
- return 0 if $l eq $r; # short circuit for quicker success
-
- for ($l,$r) {
- s/_//g;
- }
- CPAN->debug("l[$l] r[$r]") if $CPAN::DEBUG;
- for ($l,$r) {
- next unless tr/.// > 1 || /^v/;
- s/^v?/v/;
- 1 while s/\.0+(\d)/.$1/; # remove leading zeroes per group
- }
- CPAN->debug("l[$l] r[$r]") if $CPAN::DEBUG;
- if ($l=~/^v/ <=> $r=~/^v/) {
- for ($l,$r) {
- next if /^v/;
- $_ = $self->float2vv($_);
- }
- }
- CPAN->debug("l[$l] r[$r]") if $CPAN::DEBUG;
- my $lvstring = "v0";
- my $rvstring = "v0";
- if ($] >= 5.006
- && $l =~ /^v/
- && $r =~ /^v/) {
- $lvstring = $self->vstring($l);
- $rvstring = $self->vstring($r);
- CPAN->debug(sprintf "lv[%vd] rv[%vd]", $lvstring, $rvstring) if $CPAN::DEBUG;
- }
-
- return (
- ($l ne "undef") <=> ($r ne "undef")
- ||
- $lvstring cmp $rvstring
- ||
- $l <=> $r
- ||
- $l cmp $r
- );
-}
-
-sub vgt {
- my($self,$l,$r) = @_;
- $self->vcmp($l,$r) > 0;
-}
-
-sub vlt {
- my($self,$l,$r) = @_;
- 0 + ($self->vcmp($l,$r) < 0);
-}
-
-sub vge {
- my($self,$l,$r) = @_;
- $self->vcmp($l,$r) >= 0;
-}
-
-sub vle {
- my($self,$l,$r) = @_;
- 0 + ($self->vcmp($l,$r) <= 0);
-}
-
-sub vstring {
- my($self,$n) = @_;
- $n =~ s/^v// or die "CPAN::Version::vstring() called with invalid arg [$n]";
- pack "U*", split /\./, $n;
-}
-
-# vv => visible vstring
-sub float2vv {
- my($self,$n) = @_;
- my($rev) = int($n);
- $rev ||= 0;
- my($mantissa) = $n =~ /\.(\d{1,12})/; # limit to 12 digits to limit
- # architecture influence
- $mantissa ||= 0;
- $mantissa .= "0" while length($mantissa)%3;
- my $ret = "v" . $rev;
- while ($mantissa) {
- $mantissa =~ s/(\d{1,3})// or
- die "Panic: length>0 but not a digit? mantissa[$mantissa]";
- $ret .= ".".int($1);
- }
- # warn "n[$n]ret[$ret]";
- $ret =~ s/(\.0)+/.0/; # v1.0.0 => v1.0
- $ret;
-}
-
-sub readable {
- my($self,$n) = @_;
- $n =~ /^([\w\-\+\.]+)/;
-
- return $1 if defined $1 && length($1)>0;
- # if the first user reaches version v43, he will be treated as "+".
- # We'll have to decide about a new rule here then, depending on what
- # will be the prevailing versioning behavior then.
-
- if ($] < 5.006) { # or whenever v-strings were introduced
- # we get them wrong anyway, whatever we do, because 5.005 will
- # have already interpreted 0.2.4 to be "0.24". So even if he
- # indexer sends us something like "v0.2.4" we compare wrongly.
-
- # And if they say v1.2, then the old perl takes it as "v12"
-
- if (defined $CPAN::Frontend) {
- $CPAN::Frontend->mywarn("Suspicious version string seen [$n]\n");
- } else {
- warn("Suspicious version string seen [$n]\n");
- }
- return $n;
- }
- my $better = sprintf "v%vd", $n;
- CPAN->debug("n[$n] better[$better]") if $CPAN::DEBUG;
- return $better;
-}
-
-1;
-
-__END__
-
-=head1 NAME
-
-CPAN::Version - utility functions to compare CPAN versions
-
-=head1 SYNOPSIS
-
- use CPAN::Version;
-
- CPAN::Version->vgt("1.1","1.1.1"); # 1 bc. 1.1 > 1.001001
-
- CPAN::Version->vlt("1.1","1.1"); # 0 bc. 1.1 not < 1.1
-
- CPAN::Version->vcmp("1.1","1.1.1"); # 1 bc. first is larger
-
- CPAN::Version->vcmp("1.1.1","1.1"); # -1 bc. first is smaller
-
- CPAN::Version->readable(v1.2.3); # "v1.2.3"
-
- CPAN::Version->vstring("v1.2.3"); # v1.2.3
-
- CPAN::Version->float2vv(1.002003); # "v1.2.3"
-
-=head1 DESCRIPTION
-
-This module mediates between some version that perl sees in a package
-and the version that is published by the CPAN indexer.
-
-It's only written as a helper module for both CPAN.pm and CPANPLUS.pm.
-
-As it stands it predates version.pm but has the same goal: make
-version strings visible and comparable.
-
-=head1 LICENSE
-
-This program is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-=cut
-
-# Local Variables:
-# mode: cperl
-# cperl-indent-level: 4
-# End: