/usr/share/perl5/CPANPLUS/Internals/Constants/Report.pm is in libcpanplus-perl 0.9144-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 | package CPANPLUS::Internals::Constants::Report;
use strict;
use CPANPLUS::Error;
use File::Spec;
use Locale::Maketext::Simple Class => 'CPANPLUS', Style => 'gettext';
require Exporter;
use vars qw[$VERSION @ISA @EXPORT];
use Package::Constants;
### for the version
require CPANPLUS::Internals;
$VERSION = "0.9144";
@ISA = qw[Exporter];
@EXPORT = Package::Constants->list( __PACKAGE__ );
### OS to regex map ###
my %OS = (
Amiga => 'amigaos',
Atari => 'mint',
BSD => 'bsdos|bitrig|darwin|freebsd|openbsd|netbsd',
Be => 'beos',
BeOS => 'beos',
Cygwin => 'cygwin',
Darwin => 'darwin',
EBCDIC => 'os390|os400|posix-bc|vmesa',
HPUX => 'hpux',
Linux => 'linux',
MSDOS => 'dos|os2|MSWin32|cygwin',
'bin\\d*Mac'=> 'MacOS|darwin', # binMac, bin56Mac, bin58Mac...
Mac => 'MacOS|darwin',
MacPerl => 'MacOS',
MacOS => 'MacOS|darwin',
MacOSX => 'darwin',
MPE => 'mpeix',
MPEiX => 'mpeix',
OS2 => 'os2',
Plan9 => 'plan9',
RISCOS => 'riscos',
SGI => 'irix',
Solaris => 'solaris',
Unix => 'aix|bsdos|bitrig|darwin|dgux|dynixptx|freebsd|'.
'linux|hpux|machten|netbsd|next|openbsd|dec_osf|'.
'svr4|sco_sv|unicos|unicosmk|solaris|sunos',
VMS => 'VMS',
VOS => 'VOS',
Win32 => 'MSWin32|cygwin',
Win32API => 'MSWin32|cygwin',
);
use constant GRADE_FAIL => 'fail';
use constant GRADE_PASS => 'pass';
use constant GRADE_NA => 'na';
use constant GRADE_UNKNOWN => 'unknown';
use constant MAX_REPORT_SEND
=> 2;
use constant CPAN_TESTERS_EMAIL
=> 'cpan-testers@perl.org';
### the cpan mail account for this user ###
use constant CPAN_MAIL_ACCOUNT
=> sub {
my $username = shift or return;
return $username . '@cpan.org';
};
### check if this module is platform specific and if we're on that
### specific platform. Alternately, the module is not platform specific
### and we're always OK to send out test results.
use constant RELEVANT_TEST_RESULT
=> sub {
my $mod = shift or return;
my $name = $mod->module;
my $specific;
for my $platform (keys %OS) {
if( $name =~ /^$platform\b/i ) {
# beware the Mac != MAC
next if($platform eq 'Mac' &&
$name !~ /^$platform\b/);
$specific++;
return 1 if
$^O =~ /^(?:$OS{$platform})$/
}
};
return $specific ? 0 : 1;
};
use constant UNSUPPORTED_OS
=> sub {
my $buffer = shift or return;
if( $buffer =~
/No support for OS|OS unsupported/im ) {
return 1;
}
return 0;
};
use constant PERL_VERSION_TOO_LOW
=> sub {
my $buffer = shift or return;
# ExtUtils::MakeMaker format
if( $buffer =~
/Perl .*? required--this is only .*?/m ) {
return 1;
}
# Module::Build format
if( $buffer =~
/ERROR:( perl:)? Version .*?( of perl)? is installed, but we need version >= .*?/m ) {
return 1;
}
return 0;
};
use constant NO_TESTS_DEFINED
=> sub {
my $buffer = shift or return;
if( $buffer =~
/(No tests defined( for [\w:]+ extension)?\.)/
and $buffer !~ /\*\.t/m and
$buffer !~ /test\.pl/m
) {
return $1
}
return;
};
### what stage did the test fail? ###
use constant TEST_FAIL_STAGE
=> sub {
my $buffer = shift or return;
return $buffer =~ /(MAKE [A-Z]+).*/
? lc $1 :
'fetch';
};
use constant MISSING_PREREQS_LIST
=> sub {
my $buffer = shift;
my $last = ( split /\[ERROR\] .+? MAKE TEST/, $buffer )[-1];
my @list = map { s/.pm$//; s|/|::|g; $_ }
($last =~
m/\bCan\'t locate (\S+) in \@INC/g);
### make sure every missing prereq is only
### listed once
{ my %seen;
@list = grep { !$seen{$_}++ } @list
}
return @list;
};
use constant MISSING_EXTLIBS_LIST
=> sub {
my $buffer = shift;
my @list =
($buffer =~
m/No library found for -l([-\w]+)/g);
return @list;
};
use constant REPORT_MESSAGE_HEADER
=> sub {
my ($version, $author) = @_;
return << ".";
Dear $author,
This is a computer-generated error report created automatically by
CPANPLUS, version $version. Testers personal comments may appear
at the end of this report.
.
};
use constant REPORT_MESSAGE_FAIL_HEADER
=> sub {
my($stage, $buffer) = @_;
return << ".";
Thank you for uploading your work to CPAN. However, it appears that
there were some problems testing your distribution.
TEST RESULTS:
Below is the error stack from stage '$stage':
$buffer
.
};
use constant REPORT_MESSAGE_PASS_HEADER
=> sub {
my($stage, $buffer) = @_;
return << ".";
Thank you for uploading your work to CPAN. Congratulations!
All tests were successful.
TEST RESULTS:
Below is the error stack from stage '$stage':
$buffer
.
};
use constant REPORT_MISSING_PREREQS
=> sub {
my ($author,$email,@missing) = @_;
$author = ($author && $email)
? "$author ($email)"
: 'Your Name Here';
my $modules = join "\n", @missing;
my $prereqs = join "\n",
map {"\t'$_'\t=> '0',".
" # or a minimum working version"}
@missing;
return << ".";
MISSING PREREQUISITES:
It was observed that the test suite seem to fail without these modules:
$modules
As such, adding the prerequisite module(s) to 'PREREQ_PM' in your
Makefile.PL should solve this problem. For example:
WriteMakefile(
AUTHOR => '$author',
... # other information
PREREQ_PM => {
$prereqs
}
);
Thanks! :-)
.
};
use constant REPORT_MISSING_TESTS
=> sub {
return << ".";
RECOMMENDATIONS:
It would be very helpful if you could include even a simple test
script in the next release, so people can verify which platforms
can successfully install them, as well as avoid regression bugs?
A simple 't/use.t' that says:
#!/usr/bin/env perl -w
use strict;
use Test;
BEGIN { plan tests => 1 }
use Your::Module::Here; ok(1);
exit;
__END__
would be appreciated. If you are interested in making a more robust
test suite, please see the Test::Simple, Test::More and Test::Tutorial
documentation at <http://search.cpan.org/dist/Test-Simple/>.
Thanks! :-)
.
};
use constant REPORT_LOADED_PREREQS
=> sub {
my $mod = shift;
my $cb = $mod->parent;
my $prq = $mod->status->prereqs || {};
### not every prereq may be coming from CPAN
### so maybe we wont find it in our module
### tree at all...
### skip ones that can't be found in the list
### as reported in #12723
my @prq = grep { defined }
map { $cb->module_tree($_) }
sort keys %$prq;
### no prereqs?
return '' unless @prq;
### some apparently, list what we loaded
my $str = << ".";
PREREQUISITES:
Here is a list of prerequisites you specified and versions we
managed to load:
.
$str .= join '',
map { sprintf "\t%s %-30s %8s %8s\n",
@$_
} [' ', 'Module Name', 'Have', 'Want'],
map { my $want = $prq->{$_->name};
[ do { $_->is_uptodate(
version => $want
) ? ' ' : '!'
},
$_->name,
$_->installed_version,
$want
],
### might be empty entries in there
} grep { $_ } @prq;
return $str;
};
use constant REPORT_TOOLCHAIN_VERSIONS
=> sub {
my $mod = shift;
my $cb = $mod->parent;
#die unless $cb->isa('CPANPLUS::Backend');
my @toolchain_modules= qw(
CPANPLUS
CPANPLUS::Dist::Build
Cwd
ExtUtils::CBuilder
ExtUtils::Command
ExtUtils::Install
ExtUtils::MakeMaker
ExtUtils::Manifest
ExtUtils::ParseXS
File::Spec
Module::Build
Pod::Parser
Pod::Simple
Test::Harness
Test::More
version
);
my @toolchain =
grep { $_ } #module_tree returns '' when module is not found
map { $cb->module_tree($_) }
sort @toolchain_modules;
### no prereqs?
return '' unless @toolchain;
### toolchain modules
my $str = << ".";
Perl module toolchain versions installed:
.
$str .= join '',
map { sprintf "\t%-30s %8s\n",
@$_
} ['Module Name', 'Have'],
map {
[ $_->name,
$_->installed_version,
],
### might be empty entries in there
} @toolchain;
return $str;
};
use constant REPORT_TESTS_SKIPPED
=> sub {
return << ".";
******************************** NOTE ********************************
*** ***
*** The tests for this module were skipped during this build ***
*** ***
**********************************************************************
.
};
use constant REPORT_MESSAGE_FOOTER
=> sub {
return << ".";
******************************** NOTE ********************************
The comments above are created mechanically, possibly without manual
checking by the sender. As there are many people performing automatic
tests on each upload to CPAN, it is likely that you will receive
identical messages about the same problem.
If you believe that the message is mistaken, please reply to the first
one with correction and/or additional informations, and do not take
it personally. We appreciate your patience. :)
**********************************************************************
Additional comments:
.
};
1;
# Local variables:
# c-indentation-style: bsd
# c-basic-offset: 4
# indent-tabs-mode: nil
# End:
# vim: expandtab shiftwidth=4:
|