This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Math-BigInt: Maintainers.pl customization
[perl5.git] / Porting / Maintainers.pl
CommitLineData
1f00b0d6 1#!perl
c9fe4ea1
JH
2# A simple listing of core files that have specific maintainers,
3# or at least someone that can be called an "interested party".
4# Also, a "module" does not necessarily mean a CPAN module, it
5# might mean a file or files or a subdirectory.
6# Most (but not all) of the modules have dual lives in the core
97556ec3 7# and in CPAN.
b128a327 8
0cf51544
JH
9package Maintainers;
10
cdad3b53 11use utf8;
9b9b4b79
NC
12use File::Glob qw(:case);
13
2c95b6e4
DM
14# IGNORABLE: files which, if they appear in the root of a CPAN
15# distribution, need not appear in core (i.e. core-cpan-diff won't
16# complain if it can't find them)
17
18@IGNORABLE = qw(
d3bd9fae 19 .cvsignore .dualLivedDiffConfig .gitignore .perlcriticrc .perltidyrc
4d25f022 20 .travis.yml ANNOUNCE Announce Artistic AUTHORS BENCHMARK BUGS Build.PL
9cd8e8a5
MB
21 CHANGELOG ChangeLog Changelog CHANGES Changes CONTRIBUTING CONTRIBUTING.md
22 CONTRIBUTING.mkdn COPYING Copying cpanfile CREDITS dist.ini GOALS HISTORY
23 INSTALL INSTALL.SKIP LICENCE LICENSE Makefile.PL MANIFEST MANIFEST.SKIP
24 META.json META.yml MYMETA.json MYMETA.yml NEW NEWS NOTES perlcritic.rc
25 ppport.h README README.md README.pod README.PATCHING SIGNATURE THANKS TODO
26 Todo VERSION WHATSNEW
2c95b6e4
DM
27);
28
e30e10b5 29# Each entry in the %Modules hash roughly represents a distribution,
97556ec3 30# except when DISTRIBUTION is set, where it *exactly* represents a single
e30e10b5
DM
31# CPAN distribution.
32
33# The keys of %Modules are human descriptions of the distributions, and
34# may not exactly match a module or distribution name. Distributions
35# which have an obvious top-level module associated with them will usually
36# have a key named for that module, e.g. 'Archive::Extract' for
37# Archive-Extract-N.NN.tar.gz; the remaining keys are likely to be based
38# on the name of the distribution, e.g. 'Locale-Codes' for
39# Locale-Codes-N.NN.tar.gz'.
d350de41 40
099bebb1
SH
41# UPSTREAM indicates where patches should go. This is generally now
42# inferred from the FILES: modules with files in dist/, ext/ and lib/
43# are understood to have UPSTREAM 'blead', meaning that the copy of the
44# module in the blead sources is to be considered canonical, while
45# modules with files in cpan/ are understood to have UPSTREAM 'cpan',
46# meaning that the module on CPAN is to be patched first.
47
b3dcf775
SH
48# MAINTAINER has previously been used to indicate who the current maintainer
49# of the module is, but this is no longer stated explicitly. It is now
50# understood to be either the Perl 5 Porters if UPSTREAM is 'blead', or else
51# the CPAN author whose PAUSE user ID forms the first part of the DISTRIBUTION
a40258e5 52# value, e.g. 'BINGOS' in the case of 'BINGOS/Archive-Tar-2.00.tar.gz'.
b3dcf775
SH
53# (PAUSE's View Permissions page may be consulted to find other authors who
54# have owner or co-maint permissions for the module in question.)
d350de41 55
e30e10b5
DM
56# FILES is a list of filenames, glob patterns, and directory
57# names to be recursed down, which collectively generate a complete list
58# of the files associated with the distribution.
59
e1466347
JC
60# BUGS is an email or url to post bug reports. For modules with
61# UPSTREAM => 'blead', use perl5-porters@perl.org. rt.cpan.org
62# appears to automatically provide a URL for CPAN modules; any value
63# given here overrides the default:
64# http://rt.cpan.org/Public/Dist/Display.html?Name=$ModuleName
65
a55d270d
DM
66# DISTRIBUTION names the tarball on CPAN which (allegedly) the files
67# included in core are derived from. Note that the file's version may not
68# necessarily match the newest version on CPAN.
69
2c95b6e4
DM
70# EXCLUDED is a list of files to be excluded from a CPAN tarball before
71# comparing the remaining contents with core. Each item can either be a
72# full pathname (eg 't/foo.t') or a pattern (e.g. qr{^t/}).
73# It defaults to the empty list.
74
d43babf1 75# CUSTOMIZED is a list of files that have been customized within the
24b68a05
DG
76# Perl core. Use this whenever patching a cpan upstream distribution
77# or whenever we expect to have a file that differs from the tarball.
78# If the file in blead matches the file in the tarball from CPAN,
79# Porting/core-cpan-diff will warn about it, as it indicates an expected
fae38280 80# customization might have been lost when updating from upstream. The
f81a37f2
SH
81# path should be relative to the distribution directory. If the upstream
82# distribution should be modified to incorporate the change then be sure
83# to raise a ticket for it on rt.cpan.org and add a comment alongside the
84# list of CUSTOMIZED files noting the ticket number.
d43babf1 85
ab87ca4d
DG
86# DEPRECATED contains the *first* version of Perl in which the module
87# was considered deprecated. It should only be present if the module is
88# actually deprecated. Such modules should use deprecated.pm to
89# issue a warning if used. E.g.:
90#
91# use if $] >= 5.011, 'deprecate';
92#
93
2c95b6e4 94# MAP is a hash that maps CPAN paths to their core equivalents.
47e01c32 95# Each key represents a string prefix, with longest prefixes checked
2c95b6e4
DM
96# first. The first match causes that prefix to be replaced with the
97# corresponding key. For example, with the following MAP:
613f422f 98# {
4f3a742d
DR
99# 'lib/' => 'lib/',
100# '' => 'lib/Foo/',
2c95b6e4
DM
101# },
102#
103# these files are mapped as shown:
104#
105# README becomes lib/Foo/README
613f422f 106# lib/Foo.pm becomes lib/Foo.pm
2c95b6e4
DM
107#
108# The default is dependent on the type of module.
109# For distributions which appear to be stored under ext/, it defaults to:
110#
111# { '' => 'ext/Foo-Bar/' }
112#
113# otherwise, it's
114#
613f422f 115# {
4f3a742d
DR
116# 'lib/' => 'lib/',
117# '' => 'lib/Foo/Bar/',
2c95b6e4
DM
118# }
119
b128a327
JH
120%Modules = (
121
4f3a742d 122 'Archive::Tar' => {
9d911456 123 'DISTRIBUTION' => 'BINGOS/Archive-Tar-2.14.tar.gz',
4f3a742d 124 'FILES' => q[cpan/Archive-Tar],
4f3a742d 125 'BUGS' => 'bug-archive-tar@rt.cpan.org',
c465fd2f
CBW
126 'EXCLUDED' => [
127 qw(t/07_ptardiff.t),
128 ],
4f3a742d
DR
129 },
130
131 'Attribute::Handlers' => {
e8b9cef0 132 'DISTRIBUTION' => 'RJBS/Attribute-Handlers-0.99.tar.gz',
4f3a742d 133 'FILES' => q[dist/Attribute-Handlers],
4f3a742d
DR
134 },
135
4f3a742d 136 'autodie' => {
dc013420 137 'DISTRIBUTION' => 'PJF/autodie-2.29.tar.gz',
4f3a742d
DR
138 'FILES' => q[cpan/autodie],
139 'EXCLUDED' => [
273225d4 140 qr{benchmarks},
f91d7e0d 141 qr{README\.md},
4f3a742d
DR
142 # All these tests depend upon external
143 # modules that don't exist when we're
144 # building the core. Hence, they can
145 # never run, and should not be merged.
ff4ad1c0 146 qw( t/author-critic.t
4f3a742d
DR
147 t/critic.t
148 t/fork.t
149 t/kwalitee.t
150 t/lex58.t
151 t/pod-coverage.t
152 t/pod.t
273225d4
CBW
153 t/release-pod-coverage.t
154 t/release-pod-syntax.t
4f3a742d
DR
155 t/socket.t
156 t/system.t
157 )
158 ],
1a74a75d
DM
159 # CPAN RT 105344
160 'CUSTOMIZED' => [ qw[ t/mkdir.t ] ],
4f3a742d
DR
161 },
162
163 'AutoLoader' => {
dff36865 164 'DISTRIBUTION' => 'SMUELLER/AutoLoader-5.74.tar.gz',
4f3a742d
DR
165 'FILES' => q[cpan/AutoLoader],
166 'EXCLUDED' => ['t/00pod.t'],
4f3a742d
DR
167 },
168
169 'autouse' => {
965f9517 170 'DISTRIBUTION' => 'RJBS/autouse-1.11.tar.gz',
4f3a742d
DR
171 'FILES' => q[dist/autouse],
172 'EXCLUDED' => [qr{^t/release-.*\.t}],
4f3a742d
DR
173 },
174
4f3a742d 175 'B::Debug' => {
372b8708 176 'DISTRIBUTION' => 'RURBAN/B-Debug-1.23.tar.gz',
4f3a742d
DR
177 'FILES' => q[cpan/B-Debug],
178 'EXCLUDED' => ['t/pod.t'],
4f3a742d
DR
179 },
180
4f3a742d 181 'base' => {
4c13dc7e 182 'DISTRIBUTION' => 'RJBS/base-2.23.tar.gz',
4f3a742d 183 'FILES' => q[dist/base],
9c575c5c
SH
184 'CUSTOMIZED' => [
185 # https://rt.perl.org/Ticket/Display.html?id=127834
186 qw( lib/base.pm )
187 ],
4f3a742d
DR
188 },
189
4f3a742d 190 'bignum' => {
fb7f2fa3 191 'DISTRIBUTION' => 'PJACKLAM/bignum-0.43.tar.gz',
c287fe32 192 'FILES' => q[cpan/bignum],
4f3a742d
DR
193 'EXCLUDED' => [
194 qr{^inc/Module/},
91f07087 195 qr{^t/author-},
c287fe32
SH
196 qw( t/00sig.t
197 t/01load.t
198 t/02pod.t
199 t/03podcov.t
4f3a742d
DR
200 ),
201 ],
8b56300e
TC
202 'CUSTOMIZED' => [
203 qw(
204 lib/Math/BigFloat/Trace.pm
205 lib/Math/BigInt/Trace.pm lib/bigint.pm
206 lib/bignum.pm lib/bigrat.pm
207 )
208 ],
4f3a742d
DR
209 },
210
211 'Carp' => {
ba705463 212 'DISTRIBUTION' => 'RJBS/Carp-1.38.tar.gz',
4f3a742d 213 'FILES' => q[dist/Carp],
4f3a742d
DR
214 },
215
4f3a742d 216 'Compress::Raw::Bzip2' => {
9e7c8eb7 217 'DISTRIBUTION' => 'PMQS/Compress-Raw-Bzip2-2.069.tar.gz',
4f3a742d
DR
218 'FILES' => q[cpan/Compress-Raw-Bzip2],
219 'EXCLUDED' => [
220 qr{^t/Test/},
65b62fea 221 'bzip2-src/bzip2-const.patch',
4f3a742d 222 'bzip2-src/bzip2-cpp.patch',
65b62fea 223 'bzip2-src/bzip2-unsigned.patch',
4f3a742d 224 ],
4f3a742d
DR
225 },
226
227 'Compress::Raw::Zlib' => {
2b91859c 228 'DISTRIBUTION' => 'PMQS/Compress-Raw-Zlib-2.069.tar.gz',
4f3a742d
DR
229
230 'FILES' => q[cpan/Compress-Raw-Zlib],
231 'EXCLUDED' => [
84c82da4 232 qr{^examples/},
4f3a742d
DR
233 qr{^t/Test/},
234 qw( t/000prereq.t
235 t/99pod.t
236 ),
237 ],
4f3a742d
DR
238 },
239
4b07058c 240 'Config::Perl::V' => {
834069b8 241 'DISTRIBUTION' => 'HMBRAND/Config-Perl-V-0.27.tgz',
4b07058c 242 'FILES' => q[cpan/Config-Perl-V],
b4ade012
MB
243 'EXCLUDED' => [qw(
244 examples/show-v.pl
b4ade012 245 )],
4b07058c
RS
246 },
247
4f3a742d 248 'constant' => {
8b1ae794 249 'DISTRIBUTION' => 'RJBS/constant-1.33.tar.gz',
4f3a742d
DR
250 'FILES' => q[dist/constant],
251 'EXCLUDED' => [
252 qw( t/00-load.t
253 t/more-tests.t
254 t/pod-coverage.t
255 t/pod.t
256 eg/synopsis.pl
257 ),
258 ],
4f3a742d
DR
259 },
260
261 'CPAN' => {
4af080e1 262 'DISTRIBUTION' => 'ANDK/CPAN-2.14.tar.gz',
4f3a742d
DR
263 'FILES' => q[cpan/CPAN],
264 'EXCLUDED' => [
265 qr{^distroprefs/},
266 qr{^inc/Test/},
45a13884
SH
267 qr{^t/CPAN/},
268 qr{^t/data/},
79116533 269 qr{^t/97-},
4f3a742d 270 qw( lib/CPAN/Admin.pm
6156383d 271 scripts/cpan-mirrors
bfae5bde 272 PAUSE2015.pub
4f3a742d
DR
273 SlayMakefile
274 t/00signature.t
275 t/04clean_load.t
276 t/12cpan.t
277 t/13tarzip.t
278 t/14forkbomb.t
279 t/30shell.coverage
280 t/30shell.t
281 t/31sessions.t
282 t/41distribution.t
283 t/42distroprefs.t
284 t/43distroprefspref.t
45a13884 285 t/44cpanmeta.t
4f3a742d
DR
286 t/50pod.t
287 t/51pod.t
288 t/52podcover.t
289 t/60credentials.t
290 t/70_critic.t
bfae5bde 291 t/71_minimumversion.t
4f3a742d
DR
292 t/local_utils.pm
293 t/perlcriticrc
294 t/yaml_code.yml
295 ),
296 ],
8b56300e
TC
297 'CUSTOMIZED' => [
298 # CVE-2016-1238
299 qw(
300 lib/App/Cpan.pm lib/CPAN.pm scripts/cpan
301 )
302 ],
4f3a742d
DR
303 },
304
278337cd
CBW
305 # Note: When updating CPAN-Meta the META.* files will need to be regenerated
306 # perl -Icpan/CPAN-Meta/lib Porting/makemeta
4f3a742d 307 'CPAN::Meta' => {
f33f0562 308 'DISTRIBUTION' => 'DAGOLDEN/CPAN-Meta-2.150010.tar.gz',
4f3a742d
DR
309 'FILES' => q[cpan/CPAN-Meta],
310 'EXCLUDED' => [
f907dd3c
SH
311 qw[t/00-report-prereqs.t
312 t/00-report-prereqs.dd
f33f0562 313 ],
4f3a742d
DR
314 qr{^xt},
315 qr{^history},
316 ],
4f3a742d
DR
317 },
318
b6ae0ea7 319 'CPAN::Meta::Requirements' => {
054d0c99 320 'DISTRIBUTION' => 'DAGOLDEN/CPAN-Meta-Requirements-2.140.tar.gz',
b6ae0ea7
CBW
321 'FILES' => q[cpan/CPAN-Meta-Requirements],
322 'EXCLUDED' => [
c4814040 323 qw(t/00-report-prereqs.t),
54b7cb30 324 qw(t/00-report-prereqs.dd),
608e531f 325 qw(t/version-cleanup.t),
b6ae0ea7 326 qr{^xt},
b6ae0ea7 327 ],
b6ae0ea7
CBW
328 },
329
4f3a742d 330 'CPAN::Meta::YAML' => {
0d99ea03 331 'DISTRIBUTION' => 'DAGOLDEN/CPAN-Meta-YAML-0.018.tar.gz',
4f3a742d
DR
332 'FILES' => q[cpan/CPAN-Meta-YAML],
333 'EXCLUDED' => [
2954a1e9 334 't/00-report-prereqs.t',
e586de20 335 't/00-report-prereqs.dd',
4f3a742d
DR
336 qr{^xt},
337 ],
4f3a742d
DR
338 },
339
340 'Data::Dumper' => {
d8cc0e43 341 'DISTRIBUTION' => 'SMUELLER/Data-Dumper-2.161.tar.gz',
4f3a742d 342 'FILES' => q[dist/Data-Dumper],
4f3a742d
DR
343 },
344
345 'DB_File' => {
c7cd1ed9 346 'DISTRIBUTION' => 'PMQS/DB_File-1.838.tar.gz',
4f3a742d
DR
347 'FILES' => q[cpan/DB_File],
348 'EXCLUDED' => [
349 qr{^patches/},
350 qw( t/pod.t
351 fallback.h
352 fallback.xs
353 ),
354 ],
4f3a742d
DR
355 },
356
4f3a742d 357 'Devel::PPPort' => {
4827ac7e 358 'DISTRIBUTION' => 'WOLFSAGE/Devel-PPPort-3.35.tar.gz',
099bebb1
SH
359 # RJBS has asked MHX to have UPSTREAM be 'blead'
360 # (i.e. move this from cpan/ to dist/)
4f3a742d 361 'FILES' => q[cpan/Devel-PPPort],
84c82da4
SH
362 'EXCLUDED' => [
363 'PPPort.pm', # we use PPPort_pm.PL instead
84c82da4 364 ]
4f3a742d
DR
365 },
366
97b1d6e6 367 'Devel::SelfStubber' => {
97b1d6e6
SH
368 'DISTRIBUTION' => 'FLORA/Devel-SelfStubber-1.05.tar.gz',
369 'FILES' => q[dist/Devel-SelfStubber],
370 'EXCLUDED' => [qr{^t/release-.*\.t}],
97b1d6e6
SH
371 },
372
4f3a742d 373 'Digest' => {
4f3a742d
DR
374 'DISTRIBUTION' => 'GAAS/Digest-1.17.tar.gz',
375 'FILES' => q[cpan/Digest],
376 'EXCLUDED' => ['digest-bench'],
8b56300e
TC
377 'CUSTOMIZED' => [
378 # CVE-2016-1238
379 qw( Digest.pm )
380 ],
4f3a742d
DR
381 },
382
383 'Digest::MD5' => {
05a6ec77 384 'DISTRIBUTION' => 'GAAS/Digest-MD5-2.55.tar.gz',
4f3a742d
DR
385 'FILES' => q[cpan/Digest-MD5],
386 'EXCLUDED' => ['rfc1321.txt'],
4f3a742d
DR
387 },
388
389 'Digest::SHA' => {
e05a9d74 390 'DISTRIBUTION' => 'MSHELOR/Digest-SHA-5.96.tar.gz',
4f3a742d
DR
391 'FILES' => q[cpan/Digest-SHA],
392 'EXCLUDED' => [
393 qw( t/pod.t
394 t/podcover.t
395 examples/dups
396 ),
397 ],
4f3a742d
DR
398 },
399
4f3a742d 400 'Dumpvalue' => {
f6e46c4d 401 'DISTRIBUTION' => 'FLORA/Dumpvalue-1.17.tar.gz',
4f3a742d
DR
402 'FILES' => q[dist/Dumpvalue],
403 'EXCLUDED' => [qr{^t/release-.*\.t}],
4f3a742d
DR
404 },
405
4f3a742d 406 'Encode' => {
0f33e03c 407 'DISTRIBUTION' => 'DANKOGAI/Encode-2.86.tar.gz',
4f3a742d 408 'FILES' => q[cpan/Encode],
c8247c27 409 'CUSTOMIZED' => [ qw[ Encode.xs ] ],
4f3a742d
DR
410 },
411
412 'encoding::warnings' => {
4f3a742d 413 'DISTRIBUTION' => 'AUDREYT/encoding-warnings-0.11.tar.gz',
e1c786ba 414 'FILES' => q[dist/encoding-warnings],
4f3a742d
DR
415 'EXCLUDED' => [
416 qr{^inc/Module/},
94c85d8e 417 qw(t/0-signature.t),
4f3a742d 418 ],
4f3a742d
DR
419 },
420
4f3a742d 421 'Env' => {
126fc07f 422 'DISTRIBUTION' => 'FLORA/Env-1.04.tar.gz',
4f3a742d
DR
423 'FILES' => q[dist/Env],
424 'EXCLUDED' => [qr{^t/release-.*\.t}],
4f3a742d
DR
425 },
426
de84ff2b 427 'experimental' => {
4fdcb09b 428 'DISTRIBUTION' => 'LEONT/experimental-0.016.tar.gz',
de84ff2b 429 'FILES' => q[cpan/experimental],
4fdcb09b 430 'EXCLUDED' => [qr{^xt/}],
de84ff2b
RS
431 },
432
4f3a742d 433 'Exporter' => {
b4d1bf31 434 'DISTRIBUTION' => 'TODDR/Exporter-5.72.tar.gz',
3110a055 435 'FILES' => q[dist/Exporter],
4f3a742d
DR
436 'EXCLUDED' => [
437 qw( t/pod.t
438 t/use.t
439 ),
440 ],
4f3a742d
DR
441 },
442
443 'ExtUtils::CBuilder' => {
83dcc064 444 'DISTRIBUTION' => 'AMBS/ExtUtils-CBuilder-0.280224.tar.gz',
4f3a742d 445 'FILES' => q[dist/ExtUtils-CBuilder],
a0e78e9f
SH
446 'EXCLUDED' => [
447 qw(README.mkdn),
448 qr{^xt},
449 ],
4f3a742d
DR
450 },
451
4f3a742d 452 'ExtUtils::Constant' => {
4f3a742d 453
c9849c52 454 'DISTRIBUTION' => 'NWCLARK/ExtUtils-Constant-0.23.tar.gz',
4f3a742d
DR
455 'FILES' => q[cpan/ExtUtils-Constant],
456 'EXCLUDED' => [
457 qw( lib/ExtUtils/Constant/Aaargh56Hash.pm
458 examples/perl_keyword.pl
459 examples/perl_regcomp_posix_keyword.pl
460 ),
34c00cdf 461 ],
c9849c52
DM
462 # cc37ebcee3 to fix VMS failure
463 'CUSTOMIZED' => [ qw(t/Constant.t) ],
4f3a742d
DR
464 },
465
466 'ExtUtils::Install' => {
f1c22b9e 467 'DISTRIBUTION' => 'BINGOS/ExtUtils-Install-2.04.tar.gz',
d393d7e5 468 'FILES' => q[cpan/ExtUtils-Install],
4f3a742d
DR
469 'EXCLUDED' => [
470 qw( t/lib/Test/Builder.pm
471 t/lib/Test/Builder/Module.pm
472 t/lib/Test/More.pm
473 t/lib/Test/Simple.pm
474 t/pod-coverage.t
475 t/pod.t
476 ),
477 ],
4f3a742d
DR
478 },
479
480 'ExtUtils::MakeMaker' => {
fcbb262b 481 'DISTRIBUTION' => 'BINGOS/ExtUtils-MakeMaker-7.24.tar.gz',
4f3a742d
DR
482 'FILES' => q[cpan/ExtUtils-MakeMaker],
483 'EXCLUDED' => [
484 qr{^t/lib/Test/},
485 qr{^(bundled|my)/},
486 qr{^t/Liblist_Kid.t},
487 qr{^t/liblist/},
78fd4358 488 qr{^\.perlcriticrc},
84c82da4
SH
489 'PATCHING',
490 'README.packaging',
ce9582af 491 'lib/ExtUtils/MakeMaker/version/vpp.pm',
4f3a742d 492 ],
4f3a742d
DR
493 },
494
495 'ExtUtils::Manifest' => {
f660499c 496 'DISTRIBUTION' => 'ETHER/ExtUtils-Manifest-1.70.tar.gz',
854a00d8 497 'FILES' => q[cpan/ExtUtils-Manifest],
4d25f022
SH
498 'EXCLUDED' => [
499 qr(^t/00-report-prereqs),
500 qr(^xt/)
501 ],
4f3a742d
DR
502 },
503
504 'ExtUtils::ParseXS' => {
bdc4e4b2 505 'DISTRIBUTION' => 'SMUELLER/ExtUtils-ParseXS-3.30.tar.gz',
4f3a742d 506 'FILES' => q[dist/ExtUtils-ParseXS],
4f3a742d
DR
507 },
508
4f3a742d 509 'File::Fetch' => {
ac1690b9 510 'DISTRIBUTION' => 'BINGOS/File-Fetch-0.52.tar.gz',
4f3a742d 511 'FILES' => q[cpan/File-Fetch],
4f3a742d
DR
512 },
513
4f3a742d 514 'File::Path' => {
bfcc9519 515 'DISTRIBUTION' => 'RICHE/File-Path-2.12.tar.gz',
4f3a742d
DR
516 'FILES' => q[cpan/File-Path],
517 'EXCLUDED' => [
bfcc9519
SH
518 qw(t/Path-Class.t),
519 qr{^xt/},
4f3a742d 520 ],
ef667930
TC
521 # https://github.com/rpcme/File-Path/pull/34
522 'CUSTOMIZED' => [ qw( lib/File/Path.pm t/Path_win32.t ) ],
4f3a742d
DR
523 },
524
4f3a742d 525 'File::Temp' => {
3d5f905f 526 'DISTRIBUTION' => 'DAGOLDEN/File-Temp-0.2304.tar.gz',
4f3a742d
DR
527 'FILES' => q[cpan/File-Temp],
528 'EXCLUDED' => [
529 qw( misc/benchmark.pl
530 misc/results.txt
531 ),
814e893f
CBW
532 qw[t/00-report-prereqs.t],
533 qr{^xt},
4f3a742d 534 ],
4f3a742d
DR
535 },
536
4f3a742d 537 'Filter::Simple' => {
37ffe967 538 'DISTRIBUTION' => 'SMUELLER/Filter-Simple-0.91.tar.gz',
4f3a742d
DR
539 'FILES' => q[dist/Filter-Simple],
540 'EXCLUDED' => [
4f3a742d
DR
541 qr{^demo/}
542 ],
4f3a742d
DR
543 },
544
545 'Filter::Util::Call' => {
356231b0 546 'DISTRIBUTION' => 'RURBAN/Filter-1.55.tar.gz',
4f3a742d
DR
547 'FILES' => q[cpan/Filter-Util-Call
548 pod/perlfilter.pod
549 ],
550 'EXCLUDED' => [
551 qr{^decrypt/},
552 qr{^examples/},
553 qr{^Exec/},
554 qr{^lib/Filter/},
555 qr{^tee/},
556 qw( Call/Makefile.PL
557 Call/ppport.h
558 Call/typemap
559 mytest
560 t/cpp.t
561 t/decrypt.t
562 t/exec.t
563 t/order.t
4f3a742d
DR
564 t/sh.t
565 t/tee.t
533d93cc
SH
566 t/z_kwalitee.t
567 t/z_meta.t
568 t/z_perl_minimum_version.t
569 t/z_pod-coverage.t
570 t/z_pod.t
4f3a742d
DR
571 ),
572 ],
573 'MAP' => {
574 'Call/' => 'cpan/Filter-Util-Call/',
575 'filter-util.pl' => 'cpan/Filter-Util-Call/filter-util.pl',
576 'perlfilter.pod' => 'pod/perlfilter.pod',
577 '' => 'cpan/Filter-Util-Call/',
578 },
4f3a742d
DR
579 },
580
4f3a742d 581 'Getopt::Long' => {
3aa49e42 582 'DISTRIBUTION' => 'JV/Getopt-Long-2.49.1.tar.gz',
4f3a742d
DR
583 'FILES' => q[cpan/Getopt-Long],
584 'EXCLUDED' => [
585 qr{^examples/},
586 qw( perl-Getopt-Long.spec
587 lib/newgetopt.pl
974d5816 588 t/gol-compat.t
4f3a742d
DR
589 ),
590 ],
4f3a742d
DR
591 },
592
4f3a742d 593 'HTTP::Tiny' => {
d534cca5 594 'DISTRIBUTION' => 'DAGOLDEN/HTTP-Tiny-0.070.tar.gz',
4f3a742d
DR
595 'FILES' => q[cpan/HTTP-Tiny],
596 'EXCLUDED' => [
fcfb9f49 597 't/00-report-prereqs.t',
57d69a40 598 't/00-report-prereqs.dd',
4f3a742d 599 't/200_live.t',
44347bc3 600 't/200_live_local_ip.t',
fcfb9f49 601 't/210_live_ssl.t',
4f3a742d
DR
602 qr/^eg/,
603 qr/^xt/
604 ],
4f3a742d
DR
605 },
606
607 'I18N::Collate' => {
4f3a742d
DR
608 'DISTRIBUTION' => 'FLORA/I18N-Collate-1.02.tar.gz',
609 'FILES' => q[dist/I18N-Collate],
610 'EXCLUDED' => [qr{^t/release-.*\.t}],
4f3a742d
DR
611 },
612
4f3a742d 613 'I18N::LangTags' => {
4f3a742d 614 'FILES' => q[dist/I18N-LangTags],
4f3a742d
DR
615 },
616
617 'if' => {
f7294c1d 618 'DISTRIBUTION' => 'RJBS/if-0.0606.tar.gz',
4f3a742d 619 'FILES' => q[dist/if],
4f3a742d
DR
620 },
621
622 'IO' => {
4f3a742d
DR
623 'DISTRIBUTION' => 'GBARR/IO-1.25.tar.gz',
624 'FILES' => q[dist/IO/],
625 'EXCLUDED' => ['t/test.pl'],
4f3a742d
DR
626 },
627
628 'IO-Compress' => {
7dcc7d3d 629 'DISTRIBUTION' => 'PMQS/IO-Compress-2.069.tar.gz',
4f3a742d 630 'FILES' => q[cpan/IO-Compress],
84c82da4
SH
631 'EXCLUDED' => [
632 qr{^examples/},
633 qr{^t/Test/},
634 't/010examples-bzip2.t',
635 't/010examples-zlib.t',
636 't/cz-05examples.t',
637 ],
8b56300e
TC
638 'CUSTOMIZED' => [
639 # CVE-2016-1238
640 qw(
641 bin/zipdetails lib/Compress/Zlib.pm
642 lib/IO/Compress/Adapter/Bzip2.pm
643 lib/IO/Compress/Adapter/Deflate.pm
644 lib/IO/Compress/Adapter/Identity.pm
645 lib/IO/Compress/Base.pm
646 lib/IO/Compress/Base/Common.pm
647 lib/IO/Compress/Bzip2.pm
648 lib/IO/Compress/Deflate.pm
649 lib/IO/Compress/Gzip.pm
650 lib/IO/Compress/Gzip/Constants.pm
651 lib/IO/Compress/RawDeflate.pm
652 lib/IO/Compress/Zip.pm
653 lib/IO/Compress/Zip/Constants.pm
654 lib/IO/Compress/Zlib/Constants.pm
655 lib/IO/Compress/Zlib/Extra.pm
656 lib/IO/Uncompress/Adapter/Bunzip2.pm
657 lib/IO/Uncompress/Adapter/Identity.pm
658 lib/IO/Uncompress/Adapter/Inflate.pm
659 lib/IO/Uncompress/AnyInflate.pm
660 lib/IO/Uncompress/AnyUncompress.pm
661 lib/IO/Uncompress/Base.pm
662 lib/IO/Uncompress/Bunzip2.pm
663 lib/IO/Uncompress/Gunzip.pm
664 lib/IO/Uncompress/Inflate.pm
665 lib/IO/Uncompress/RawInflate.pm
666 lib/IO/Uncompress/Unzip.pm
667 )
668 ],
4f3a742d
DR
669 },
670
74a30e96 671 'IO::Socket::IP' => {
89309dce 672 'DISTRIBUTION' => 'PEVANS/IO-Socket-IP-0.38.tar.gz',
74a30e96
CBW
673 'FILES' => q[cpan/IO-Socket-IP],
674 'EXCLUDED' => [
675 qr{^examples/},
676 ],
677 },
678
4f3a742d 679 'IO::Zlib' => {
4f3a742d
DR
680 'DISTRIBUTION' => 'TOMHUGHES/IO-Zlib-1.10.tar.gz',
681 'FILES' => q[cpan/IO-Zlib],
4f3a742d
DR
682 },
683
684 'IPC::Cmd' => {
00d961ca 685 'DISTRIBUTION' => 'BINGOS/IPC-Cmd-0.96.tar.gz',
4f3a742d 686 'FILES' => q[cpan/IPC-Cmd],
4f3a742d
DR
687 },
688
4f3a742d 689 'IPC::SysV' => {
f38527b2 690 'DISTRIBUTION' => 'MHX/IPC-SysV-2.07.tar.gz',
4f3a742d
DR
691 'FILES' => q[cpan/IPC-SysV],
692 'EXCLUDED' => [
693 qw( const-c.inc
694 const-xs.inc
695 ),
696 ],
4f3a742d
DR
697 },
698
699 'JSON::PP' => {
a1e5c561 700 'DISTRIBUTION' => 'MAKAMAKA/JSON-PP-2.27400.tar.gz',
4f3a742d 701 'FILES' => q[cpan/JSON-PP],
8b56300e 702 'CUSTOMIZED' => [
b1cd7fa0 703 'bin/json_pp', # CVE-2016-1238
9f6d2714
JH
704 'lib/JSON/PP.pm', # CVE-2016-1238, CPAN RT 118469
705 't/011_pc_expo.t', # CPAN RT 118469
706 't/018_json_checker.t', # CPAN RT 118469
8b56300e 707 ],
4f3a742d
DR
708 },
709
710 'lib' => {
4f3a742d
DR
711 'DISTRIBUTION' => 'SMUELLER/lib-0.63.tar.gz',
712 'FILES' => q[dist/lib/],
713 'EXCLUDED' => [
714 qw( forPAUSE/lib.pm
715 t/00pod.t
716 ),
717 ],
4f3a742d
DR
718 },
719
720 'libnet' => {
a9282e3c 721 'DISTRIBUTION' => 'SHAY/libnet-3.10.tar.gz',
4f3a742d
DR
722 'FILES' => q[cpan/libnet],
723 'EXCLUDED' => [
724 qw( Configure
2901a52f 725 t/changes.t
59e3cdd4
SH
726 t/critic.t
727 t/pod.t
728 t/pod_coverage.t
4f3a742d 729 ),
84c82da4 730 qr(^demos/),
dadfa42f 731 qr(^t/external/),
4f3a742d 732 ],
4f3a742d
DR
733 },
734
735 'Locale-Codes' => {
6402f8b0 736 'DISTRIBUTION' => 'SBECK/Locale-Codes-3.40.tar.gz',
4f3a742d
DR
737 'FILES' => q[cpan/Locale-Codes],
738 'EXCLUDED' => [
84c82da4 739 qw( README.first
8eadc45b 740 t/pod_coverage.ign
84c82da4 741 t/pod_coverage.t
4f3a742d
DR
742 t/pod.t),
743 qr{^t/runtests},
744 qr{^t/runtests\.bat},
745 qr{^internal/},
746 qr{^examples/},
747 ],
4f3a742d
DR
748 },
749
750 'Locale::Maketext' => {
822f029b 751 'DISTRIBUTION' => 'TODDR/Locale-Maketext-1.28.tar.gz',
4f3a742d
DR
752 'FILES' => q[dist/Locale-Maketext],
753 'EXCLUDED' => [
754 qw(
755 perlcriticrc
756 t/00_load.t
757 t/pod.t
758 ),
759 ],
4f3a742d
DR
760 },
761
762 'Locale::Maketext::Simple' => {
4f3a742d
DR
763 'DISTRIBUTION' => 'JESSE/Locale-Maketext-Simple-0.21.tar.gz',
764 'FILES' => q[cpan/Locale-Maketext-Simple],
8b56300e
TC
765 'CUSTOMIZED' => [
766 # CVE-2016-1238
767 qw( lib/Locale/Maketext/Simple.pm )
768 ],
4f3a742d
DR
769 },
770
4f3a742d 771 'Math::BigInt' => {
ef07b9e5 772 'DISTRIBUTION' => 'PJACKLAM/Math-BigInt-1.999726.tar.gz',
6b0f9b46 773 'FILES' => q[cpan/Math-BigInt],
94f73226
JH
774 'CUSTOMIZED' => [
775 'lib/Math/BigInt.pm', # CPAN RT 118468
776 't/bigintpm.inc', # CPAN RT 118468
777 ],
4f3a742d
DR
778 'EXCLUDED' => [
779 qr{^inc/},
780 qr{^examples/},
6b10d254 781 qr{^t/author-},
4f3a742d
DR
782 qw( t/00sig.t
783 t/01load.t
784 t/02pod.t
785 t/03podcov.t
786 ),
787 ],
4f3a742d
DR
788 },
789
790 'Math::BigInt::FastCalc' => {
28c06467 791 'DISTRIBUTION' => 'PJACKLAM/Math-BigInt-FastCalc-0.42.tar.gz',
6b0f9b46 792 'FILES' => q[cpan/Math-BigInt-FastCalc],
4f3a742d
DR
793 'EXCLUDED' => [
794 qr{^inc/},
795 qw( t/00sig.t
796 t/01load.t
797 t/02pod.t
798 t/03podcov.t
799 ),
800
801 # instead we use the versions of these test
802 # files that come with Math::BigInt:
803 qw( t/bigfltpm.inc
804 t/bigfltpm.t
805 t/bigintpm.inc
806 t/bigintpm.t
807 t/mbimbf.inc
808 t/mbimbf.t
809 ),
810 ],
4f3a742d
DR
811 },
812
813 'Math::BigRat' => {
6320cdc0 814 'DISTRIBUTION' => 'PJACKLAM/Math-BigRat-0.260804.tar.gz',
6b0f9b46 815 'FILES' => q[cpan/Math-BigRat],
4f3a742d
DR
816 'EXCLUDED' => [
817 qr{^inc/},
6320cdc0 818 qr{^t/author-},
4f3a742d
DR
819 qw( t/00sig.t
820 t/01load.t
821 t/02pod.t
822 t/03podcov.t
9b331ac6
SH
823 ),
824 ],
4f3a742d
DR
825 },
826
827 'Math::Complex' => {
04ae1553 828 'DISTRIBUTION' => 'ZEFRAM/Math-Complex-1.59.tar.gz',
4f3a742d
DR
829 'FILES' => q[cpan/Math-Complex],
830 'EXCLUDED' => [
831 qw( t/pod.t
832 t/pod-coverage.t
833 ),
834 ],
4f3a742d
DR
835 },
836
837 'Memoize' => {
8114efa0 838 'DISTRIBUTION' => 'MJD/Memoize-1.03.tgz',
4f3a742d
DR
839 'FILES' => q[cpan/Memoize],
840 'EXCLUDED' => ['article.html'],
8b56300e
TC
841 'CUSTOMIZED' => [
842 # CVE-2016-1238
843 qw( Memoize.pm )
844 ],
4f3a742d
DR
845 },
846
847 'MIME::Base64' => {
6b10655d 848 'DISTRIBUTION' => 'GAAS/MIME-Base64-3.15.tar.gz',
4f3a742d
DR
849 'FILES' => q[cpan/MIME-Base64],
850 'EXCLUDED' => ['t/bad-sv.t'],
4f3a742d
DR
851 },
852
4f3a742d 853 'Module::CoreList' => {
935d7564 854 'DISTRIBUTION' => 'BINGOS/Module-CoreList-5.20161020.tar.gz',
4f3a742d 855 'FILES' => q[dist/Module-CoreList],
4f3a742d
DR
856 },
857
858 'Module::Load' => {
58572ed8 859 'DISTRIBUTION' => 'BINGOS/Module-Load-0.32.tar.gz',
4f3a742d 860 'FILES' => q[cpan/Module-Load],
4f3a742d
DR
861 },
862
863 'Module::Load::Conditional' => {
2c34ec1b 864 'DISTRIBUTION' => 'BINGOS/Module-Load-Conditional-0.68.tar.gz',
4f3a742d 865 'FILES' => q[cpan/Module-Load-Conditional],
4f3a742d
DR
866 },
867
868 'Module::Loaded' => {
4f3a742d
DR
869 'DISTRIBUTION' => 'BINGOS/Module-Loaded-0.08.tar.gz',
870 'FILES' => q[cpan/Module-Loaded],
4f3a742d
DR
871 },
872
873 'Module::Metadata' => {
d4fbd0ca 874 'DISTRIBUTION' => 'ETHER/Module-Metadata-1.000033.tar.gz',
4f3a742d
DR
875 'FILES' => q[cpan/Module-Metadata],
876 'EXCLUDED' => [
b9beed70 877 qw(t/00-report-prereqs.t),
adc2cdfb 878 qw(t/00-report-prereqs.dd),
e6d414a9 879 qr{weaver.ini},
4f3a742d
DR
880 qr{^xt},
881 ],
4f3a742d
DR
882 },
883
4f3a742d 884 'Net::Ping' => {
773d126d 885 'DISTRIBUTION' => 'RURBAN/Net-Ping-2.51.tar.gz',
4f3a742d 886 'FILES' => q[dist/Net-Ping],
773d126d
CBW
887 'EXCLUDED' => [
888 qw(t/020_external.t),
889 qw(t/600_pod.t),
890 qw(t/601_pod-coverage.t),
891 ],
01b515d1
CB
892 'CUSTOMIZED' => [
893 qw( t/001_new.t t/010_pingecho.t ),
894 ],
773d126d 895
4f3a742d
DR
896 },
897
898 'NEXT' => {
c8321e06 899 'DISTRIBUTION' => 'NEILB/NEXT-0.67.tar.gz',
4f3a742d
DR
900 'FILES' => q[cpan/NEXT],
901 'EXCLUDED' => [qr{^demo/}],
4f3a742d
DR
902 },
903
4f3a742d 904 'Params::Check' => {
8b21fa03 905 'DISTRIBUTION' => 'BINGOS/Params-Check-0.38.tar.gz',
4f3a742d 906 'FILES' => q[cpan/Params-Check],
4f3a742d
DR
907 },
908
909 'parent' => {
39250dd4 910 'DISTRIBUTION' => 'CORION/parent-0.236.tar.gz',
4f3a742d 911 'FILES' => q[cpan/parent],
39250dd4
SH
912 'EXCLUDED' => [
913 qr{^xt}
914 ],
4f3a742d
DR
915 },
916
4f3a742d 917 'PathTools' => {
0224bf41 918 'DISTRIBUTION' => 'RJBS/PathTools-3.62.tar.gz',
cb8c8458 919 'FILES' => q[dist/PathTools],
76250107
SH
920 'EXCLUDED' => [
921 qr{^t/lib/Test/},
922 qw( t/rel2abs_vs_symlink.t),
923 ],
4f3a742d
DR
924 },
925
97b1d6e6 926 'Perl::OSType' => {
ea8e5adc 927 'DISTRIBUTION' => 'DAGOLDEN/Perl-OSType-1.010.tar.gz',
97b1d6e6 928 'FILES' => q[cpan/Perl-OSType],
765955c0 929 'EXCLUDED' => [qw(tidyall.ini), qr/^xt/, qr{^t/00-}],
97b1d6e6
SH
930 },
931
97b1d6e6 932 'perlfaq' => {
a2c3b2fe 933 'DISTRIBUTION' => 'LLAP/perlfaq-5.021011.tar.gz',
97b1d6e6
SH
934 'FILES' => q[cpan/perlfaq],
935 'EXCLUDED' => [
4d25f022 936 qw( inc/CreateQuestionList.pm
e3ef4406 937 inc/perlfaq.tt
4d25f022
SH
938 t/00-compile.t),
939 qr{^xt/},
97b1d6e6 940 ],
97b1d6e6
SH
941 },
942
4f3a742d 943 'PerlIO::via::QuotedPrint' => {
96623e31 944 'DISTRIBUTION' => 'SHAY/PerlIO-via-QuotedPrint-0.08.tar.gz',
4f3a742d 945 'FILES' => q[cpan/PerlIO-via-QuotedPrint],
4f3a742d
DR
946 },
947
0c501878 948 'Pod::Checker' => {
0de6c762 949 'DISTRIBUTION' => 'MAREKR/Pod-Checker-1.73.tar.gz',
0c501878 950 'FILES' => q[cpan/Pod-Checker],
2beba2a9
SH
951 'CUSTOMIZED' => [ qw[
952 t/pod/contains_bad_pod.xr
953 t/pod/selfcheck.t
954 t/pod/testcmp.pl
955 t/pod/testpchk.pl
956 ] ],
0c501878
CBW
957 },
958
4f3a742d 959 'Pod::Escapes' => {
f347d3e3 960 'DISTRIBUTION' => 'NEILB/Pod-Escapes-1.07.tar.gz',
4f3a742d 961 'FILES' => q[cpan/Pod-Escapes],
4f3a742d
DR
962 },
963
4f3a742d 964 'Pod::Parser' => {
534577b2 965 'DISTRIBUTION' => 'MAREKR/Pod-Parser-1.63.tar.gz',
4f3a742d 966 'FILES' => q[cpan/Pod-Parser],
4f3a742d
DR
967 },
968
969 'Pod::Perldoc' => {
42b862f5 970 'DISTRIBUTION' => 'MALLEN/Pod-Perldoc-3.27.tar.gz',
00e518b3 971 'FILES' => q[cpan/Pod-Perldoc],
4f3a742d 972
fa884b76
DM
973 # Note that we use the CPAN-provided Makefile.PL, since it
974 # contains special handling of the installation of perldoc.pod
975
5fddd31d
SH
976 'EXCLUDED' => [
977 # In blead, the perldoc executable is generated by perldoc.PL
978 # instead
979 # XXX We can and should fix this, but clean up the DRY-failure in
980 # utils first
981 'perldoc',
982
983 # https://rt.cpan.org/Ticket/Display.html?id=116827
984 't/02_module_pod_output.t'
985 ],
4f3a742d
DR
986 },
987
988 'Pod::Simple' => {
a4a12576 989 'DISTRIBUTION' => 'MARCGREEN/Pod-Simple-3.32.tar.gz',
4f3a742d 990 'FILES' => q[cpan/Pod-Simple],
4f3a742d
DR
991 },
992
0c501878 993 'Pod::Usage' => {
3735683b 994 'DISTRIBUTION' => 'MAREKR/Pod-Usage-1.69.tar.gz',
0c501878 995 'FILES' => q[cpan/Pod-Usage],
0c501878
CBW
996 },
997
4f3a742d 998 'podlators' => {
516cc7b3 999 'DISTRIBUTION' => 'RRA/podlators-4.08.tar.gz',
4f3a742d
DR
1000 'FILES' => q[cpan/podlators pod/perlpodstyle.pod],
1001
4f3a742d
DR
1002 'MAP' => {
1003 '' => 'cpan/podlators/',
4f3a742d 1004 # this file lives outside the cpan/ directory
1efe9157 1005 'pod/perlpodstyle.pod' => 'pod/perlpodstyle.pod',
4f3a742d 1006 },
4f3a742d
DR
1007 },
1008
4f3a742d 1009 'Safe' => {
e739c653 1010 'DISTRIBUTION' => 'RGARCIA/Safe-2.35.tar.gz',
4f3a742d 1011 'FILES' => q[dist/Safe],
4f3a742d
DR
1012 },
1013
1014 'Scalar-List-Utils' => {
a0b61ef9 1015 'DISTRIBUTION' => 'PEVANS/Scalar-List-Utils-1.46.tar.gz',
869a9612 1016 'FILES' => q[cpan/Scalar-List-Utils],
4f3a742d
DR
1017 },
1018
4f3a742d 1019 'Search::Dict' => {
0b0a7092 1020 'DISTRIBUTION' => 'DAGOLDEN/Search-Dict-1.07.tar.gz',
4f3a742d 1021 'FILES' => q[dist/Search-Dict],
4f3a742d
DR
1022 },
1023
1024 'SelfLoader' => {
c3958279 1025 'DISTRIBUTION' => 'SMUELLER/SelfLoader-1.20.tar.gz',
4f3a742d
DR
1026 'FILES' => q[dist/SelfLoader],
1027 'EXCLUDED' => ['t/00pod.t'],
4f3a742d
DR
1028 },
1029
4f3a742d 1030 'Socket' => {
06a9195c 1031 'DISTRIBUTION' => 'PEVANS/Socket-2.020.tar.gz',
4f3a742d 1032 'FILES' => q[cpan/Socket],
06a9195c
SH
1033
1034 # https://rt.cpan.org/Ticket/Display.html?id=106797
1035 # https://rt.cpan.org/Ticket/Display.html?id=107058
98e2bb74 1036 # https://rt.cpan.org/Ticket/Display.html?id=111707
06a9195c 1037 'CUSTOMIZED' => [ qw[ Socket.pm Socket.xs ] ],
4f3a742d
DR
1038 },
1039
1040 'Storable' => {
5f4b5e0f 1041 'DISTRIBUTION' => 'AMS/Storable-2.51.tar.gz',
4f3a742d 1042 'FILES' => q[dist/Storable],
76250107
SH
1043 'EXCLUDED' => [
1044 qr{^t/compat/},
1045 ],
4f3a742d
DR
1046 },
1047
4f3a742d 1048 'Sys::Syslog' => {
9f0af693 1049 'DISTRIBUTION' => 'SAPER/Sys-Syslog-0.35.tar.gz',
4f3a742d
DR
1050 'FILES' => q[cpan/Sys-Syslog],
1051 'EXCLUDED' => [
1052 qr{^eg/},
84c82da4
SH
1053 qw( README.win32
1054 t/data-validation.t
4f3a742d
DR
1055 t/distchk.t
1056 t/pod.t
1057 t/podcover.t
1058 t/podspell.t
1059 t/portfs.t
1060 win32/PerlLog.RES
4f3a742d
DR
1061 ),
1062 ],
4f3a742d
DR
1063 },
1064
1065 'Term::ANSIColor' => {
05465a2f 1066 'DISTRIBUTION' => 'RRA/Term-ANSIColor-4.05.tar.gz',
4f3a742d
DR
1067 'FILES' => q[cpan/Term-ANSIColor],
1068 'EXCLUDED' => [
92f80b37
CBW
1069 qr{^examples/},
1070 qr{^t/data/},
5e64492f
CBW
1071 qr{^t/docs/},
1072 qr{^t/style/},
1073 qw( t/module/aliases-env.t ),
4f3a742d 1074 ],
4f3a742d
DR
1075 },
1076
1077 'Term::Cap' => {
23a75734 1078 'DISTRIBUTION' => 'JSTOWE/Term-Cap-1.17.tar.gz',
4f3a742d 1079 'FILES' => q[cpan/Term-Cap],
4f3a742d
DR
1080 },
1081
1082 'Term::Complete' => {
4f3a742d
DR
1083 'DISTRIBUTION' => 'FLORA/Term-Complete-1.402.tar.gz',
1084 'FILES' => q[dist/Term-Complete],
1085 'EXCLUDED' => [qr{^t/release-.*\.t}],
4f3a742d
DR
1086 },
1087
1088 'Term::ReadLine' => {
75ad3638 1089 'DISTRIBUTION' => 'FLORA/Term-ReadLine-1.14.tar.gz',
4f3a742d
DR
1090 'FILES' => q[dist/Term-ReadLine],
1091 'EXCLUDED' => [qr{^t/release-.*\.t}],
4f3a742d
DR
1092 },
1093
4f3a742d 1094 'Test' => {
1c22e001 1095 'DISTRIBUTION' => 'JESSE/Test-1.26.tar.gz',
48458f69 1096 'FILES' => q[dist/Test],
4f3a742d
DR
1097 },
1098
1099 'Test::Harness' => {
3eb3ec0b 1100 'DISTRIBUTION' => 'LEONT/Test-Harness-3.36.tar.gz',
4f3a742d
DR
1101 'FILES' => q[cpan/Test-Harness],
1102 'EXCLUDED' => [
1103 qr{^examples/},
4f3a742d
DR
1104 qr{^xt/},
1105 qw( Changes-2.64
8db65552 1106 MANIFEST.CUMMULATIVE
4f3a742d
DR
1107 HACKING.pod
1108 perlcriticrc
8db65552 1109 t/000-load.t
4f3a742d
DR
1110 t/lib/if.pm
1111 ),
1112 ],
8b56300e
TC
1113 'CUSTOMIZED' => [
1114 # CVE-2016-1238
1115 qw(
1116 bin/prove lib/App/Prove.pm lib/App/Prove/State.pm
1117 lib/App/Prove/State/Result.pm
1118 lib/App/Prove/State/Result/Test.pm
1119 lib/TAP/Base.pm lib/TAP/Formatter/Base.pm
1120 lib/TAP/Formatter/Color.pm
1121 lib/TAP/Formatter/Console.pm
1122 lib/TAP/Formatter/Console/ParallelSession.pm
1123 lib/TAP/Formatter/Console/Session.pm
1124 lib/TAP/Formatter/File.pm
1125 lib/TAP/Formatter/File/Session.pm
1126 lib/TAP/Formatter/Session.pm lib/TAP/Harness.pm
1127 lib/TAP/Harness/Env.pm lib/TAP/Object.pm
1128 lib/TAP/Parser.pm lib/TAP/Parser/Aggregator.pm
1129 lib/TAP/Parser/Grammar.pm
1130 lib/TAP/Parser/Iterator.pm
1131 lib/TAP/Parser/Iterator/Array.pm
1132 lib/TAP/Parser/Iterator/Process.pm
1133 lib/TAP/Parser/Iterator/Stream.pm
1134 lib/TAP/Parser/IteratorFactory.pm
1135 lib/TAP/Parser/Multiplexer.pm
1136 lib/TAP/Parser/Result.pm
1137 lib/TAP/Parser/Result/Bailout.pm
1138 lib/TAP/Parser/Result/Comment.pm
1139 lib/TAP/Parser/Result/Plan.pm
1140 lib/TAP/Parser/Result/Pragma.pm
1141 lib/TAP/Parser/Result/Test.pm
1142 lib/TAP/Parser/Result/Unknown.pm
1143 lib/TAP/Parser/Result/Version.pm
1144 lib/TAP/Parser/Result/YAML.pm
1145 lib/TAP/Parser/ResultFactory.pm
1146 lib/TAP/Parser/Scheduler.pm
1147 lib/TAP/Parser/Scheduler/Job.pm
1148 lib/TAP/Parser/Scheduler/Spinner.pm
1149 lib/TAP/Parser/Source.pm
1150 lib/TAP/Parser/SourceHandler.pm
1151 lib/TAP/Parser/SourceHandler/Executable.pm
1152 lib/TAP/Parser/SourceHandler/File.pm
1153 lib/TAP/Parser/SourceHandler/Handle.pm
1154 lib/TAP/Parser/SourceHandler/Perl.pm
1155 lib/TAP/Parser/SourceHandler/RawTAP.pm
1156 lib/TAP/Parser/YAMLish/Reader.pm
1157 lib/TAP/Parser/YAMLish/Writer.pm
1158 lib/Test/Harness.pm
1159 )
1160 ],
4f3a742d
DR
1161 },
1162
1163 'Test::Simple' => {
061828b3 1164 'DISTRIBUTION' => 'EXODIST/Test-Simple-1.302059.tar.gz',
4f3a742d
DR
1165 'FILES' => q[cpan/Test-Simple],
1166 'EXCLUDED' => [
0b4ffce6
SH
1167 qr{^examples/},
1168 qr{^xt/},
022600ce
SH
1169 qw( appveyor.yml
1170 perltidyrc
80a7dd19 1171 t/00compile.t
c6a6e1c8
CG
1172 t/00-report.t
1173 t/zzz-check-breaks.t
4f3a742d
DR
1174 ),
1175 ],
f266b743 1176 },
4f3a742d
DR
1177
1178 'Text::Abbrev' => {
5e96eee9 1179 'DISTRIBUTION' => 'FLORA/Text-Abbrev-1.02.tar.gz',
4f3a742d
DR
1180 'FILES' => q[dist/Text-Abbrev],
1181 'EXCLUDED' => [qr{^t/release-.*\.t}],
4f3a742d
DR
1182 },
1183
1184 'Text::Balanced' => {
03a97c81 1185 'DISTRIBUTION' => 'SHAY/Text-Balanced-2.03.tar.gz',
4f3a742d
DR
1186 'FILES' => q[cpan/Text-Balanced],
1187 'EXCLUDED' => [
1188 qw( t/97_meta.t
1189 t/98_pod.t
1190 t/99_pmv.t
1191 ),
1192 ],
4f3a742d
DR
1193 },
1194
1195 'Text::ParseWords' => {
a790e348 1196 'DISTRIBUTION' => 'CHORNY/Text-ParseWords-3.30.tar.gz',
4f3a742d 1197 'FILES' => q[cpan/Text-ParseWords],
4f3a742d
DR
1198 },
1199
4f3a742d 1200 'Text-Tabs+Wrap' => {
83aea42c 1201 'DISTRIBUTION' => 'MUIR/modules/Text-Tabs+Wrap-2013.0523.tar.gz',
4f3a742d 1202 'FILES' => q[cpan/Text-Tabs],
e7b92d54
SH
1203 'EXCLUDED' => [
1204 qr/^lib\.old/,
1205 't/dnsparks.t', # see af6492bf9e
4f3a742d 1206 ],
e7b92d54
SH
1207 'MAP' => {
1208 '' => 'cpan/Text-Tabs/',
ab2a3ce2
SH
1209 'lib.modern/Text/Tabs.pm' => 'cpan/Text-Tabs/lib/Text/Tabs.pm',
1210 'lib.modern/Text/Wrap.pm' => 'cpan/Text-Tabs/lib/Text/Wrap.pm',
e7b92d54 1211 },
4f3a742d
DR
1212 },
1213
4e75700d
AC
1214 # Jerry Hedden does take patches that are applied to blead first, even
1215 # though that can be hard to discern from the Git history; so it's
1216 # correct for this (and Thread::Semaphore, threads, and threads::shared)
1217 # to be under dist/ rather than cpan/
4f3a742d 1218 'Thread::Queue' => {
89e2fe52 1219 'DISTRIBUTION' => 'JDHEDDEN/Thread-Queue-3.11.tar.gz',
4f3a742d
DR
1220 'FILES' => q[dist/Thread-Queue],
1221 'EXCLUDED' => [
1fd4700e
JH
1222 qr{^examples/},
1223 qw( t/00_load.t
4f3a742d
DR
1224 t/99_pod.t
1225 t/test.pl
1226 ),
1227 ],
4f3a742d
DR
1228 },
1229
1230 'Thread::Semaphore' => {
51068c14 1231 'DISTRIBUTION' => 'JDHEDDEN/Thread-Semaphore-2.13.tar.gz',
4f3a742d
DR
1232 'FILES' => q[dist/Thread-Semaphore],
1233 'EXCLUDED' => [
1234 qw( examples/semaphore.pl
1235 t/00_load.t
1236 t/99_pod.t
1237 t/test.pl
1238 ),
1239 ],
4f3a742d
DR
1240 },
1241
1242 'threads' => {
5ea3460b 1243 'DISTRIBUTION' => 'JDHEDDEN/threads-2.09.tar.gz',
4f3a742d
DR
1244 'FILES' => q[dist/threads],
1245 'EXCLUDED' => [
1246 qr{^examples/},
1247 qw( t/pod.t
1248 t/test.pl
1249 threads.h
1250 ),
1251 ],
4f3a742d
DR
1252 },
1253
1254 'threads::shared' => {
83c15bcd 1255 'DISTRIBUTION' => 'JDHEDDEN/threads-shared-1.52.tar.gz',
4f3a742d
DR
1256 'FILES' => q[dist/threads-shared],
1257 'EXCLUDED' => [
1258 qw( examples/class.pl
1259 shared.h
1260 t/pod.t
1261 t/test.pl
1262 ),
1263 ],
4f3a742d
DR
1264 },
1265
1266 'Tie::File' => {
4ac9c666 1267 'DISTRIBUTION' => 'TODDR/Tie-File-1.00.tar.gz',
c0504019 1268 'FILES' => q[dist/Tie-File],
4f3a742d
DR
1269 },
1270
4f3a742d 1271 'Tie::RefHash' => {
4f3a742d
DR
1272 'DISTRIBUTION' => 'FLORA/Tie-RefHash-1.39.tar.gz',
1273 'FILES' => q[cpan/Tie-RefHash],
4f3a742d
DR
1274 },
1275
1276 'Time::HiRes' => {
6d23a90b 1277 'DISTRIBUTION' => 'JHI/Time-HiRes-1.9740.tar.gz',
91ba54d4 1278 'FILES' => q[dist/Time-HiRes],
4f3a742d
DR
1279 },
1280
1281 'Time::Local' => {
cc890588 1282 'DISTRIBUTION' => 'DROLSKY/Time-Local-1.24.tar.gz',
4f3a742d
DR
1283 'FILES' => q[cpan/Time-Local],
1284 'EXCLUDED' => [
cc890588
SH
1285 qr{^xt/},
1286 qw( perlcriticrc
1287 perltidyrc
1288 tidyall.ini
1289 t/00-report-prereqs.t
1290 t/00-report-prereqs.dd
1291 ),
4f3a742d 1292 ],
4f3a742d
DR
1293 },
1294
1295 'Time::Piece' => {
5563b392 1296 'DISTRIBUTION' => 'ESAYM/Time-Piece-1.31.tar.gz',
4f3a742d 1297 'FILES' => q[cpan/Time-Piece],
4f3a742d
DR
1298 },
1299
1300 'Unicode::Collate' => {
6962a25d 1301 'DISTRIBUTION' => 'SADAHIRO/Unicode-Collate-1.14.tar.gz',
4f3a742d
DR
1302 'FILES' => q[cpan/Unicode-Collate],
1303 'EXCLUDED' => [
1304 qr{N$},
1305 qr{^data/},
1306 qr{^gendata/},
1307 qw( disableXS
1308 enableXS
1309 mklocale
1310 ),
1311 ],
4f3a742d
DR
1312 },
1313
1314 'Unicode::Normalize' => {
1ef95abd 1315 'DISTRIBUTION' => 'KHW/Unicode-Normalize-1.25.tar.gz',
4f3a742d 1316 'FILES' => q[cpan/Unicode-Normalize],
1ef95abd
SH
1317 'EXCLUDED' => [
1318 qw( MANIFEST.N
1319 Normalize.pmN
1320 disableXS
1321 enableXS
1322 ),
1323 ],
4f3a742d
DR
1324 },
1325
4f3a742d 1326 'version' => {
38660758 1327 'DISTRIBUTION' => 'JPEACOCK/version-0.9917.tar.gz',
4fa93b19 1328 'FILES' => q[cpan/version vutil.c vutil.h vxs.inc],
4f3a742d 1329 'EXCLUDED' => [
df3ba8e7 1330 qr{^vutil/lib/},
c60b4fa6 1331 'vutil/Makefile.PL',
df3ba8e7
FC
1332 'vutil/ppport.h',
1333 'vutil/vxs.xs',
ce9582af 1334 't/00impl-pp.t',
4f3a742d 1335 't/survey_locales',
d1e81356 1336 'vperl/vpp.pm',
4f3a742d 1337 ],
f81a37f2 1338
c872d591
SH
1339 # When adding the CPAN-distributed files for version.pm, it is necessary
1340 # to delete an entire block out of lib/version.pm, since that code is
1341 # only necessary with the CPAN release.
f81a37f2
SH
1342 'CUSTOMIZED' => [
1343 qw( lib/version.pm
f81a37f2
SH
1344 ),
1345 ],
1346
df3ba8e7 1347 'MAP' => {
4fa93b19 1348 'vutil/' => '',
df3ba8e7
FC
1349 '' => 'cpan/version/',
1350 },
4f3a742d
DR
1351 },
1352
4f3a742d 1353 'warnings' => {
099bebb1 1354 'FILES' => q[
4f3a742d 1355 lib/warnings
099bebb1
SH
1356 lib/warnings.{pm,t}
1357 regen/warnings.pl
4f3a742d 1358 t/lib/warnings
099bebb1 1359 ],
4f3a742d
DR
1360 },
1361
4f3a742d 1362 'Win32' => {
083231ea 1363 'DISTRIBUTION' => "JDB/Win32-0.52.tar.gz",
4f3a742d 1364 'FILES' => q[cpan/Win32],
4f3a742d
DR
1365 },
1366
1367 'Win32API::File' => {
df61f5a9 1368 'DISTRIBUTION' => 'CHORNY/Win32API-File-0.1203.tar.gz',
4f3a742d
DR
1369 'FILES' => q[cpan/Win32API-File],
1370 'EXCLUDED' => [
1371 qr{^ex/},
4f3a742d 1372 ],
4f3a742d
DR
1373 },
1374
4f3a742d 1375 'XSLoader' => {
6f2c9cc3 1376 'DISTRIBUTION' => 'SAPER/XSLoader-0.24.tar.gz',
4f3a742d
DR
1377 'FILES' => q[dist/XSLoader],
1378 'EXCLUDED' => [
1379 qr{^eg/},
57f9caa0
SH
1380 qw( t/00-load.t
1381 t/01-api.t
1382 t/distchk.t
1383 t/pod.t
4f3a742d
DR
1384 t/podcover.t
1385 t/portfs.t
1386 ),
1387 'XSLoader.pm', # we use XSLoader_pm.PL
1388 ],
4f3a742d
DR
1389 },
1390
462ea751
DM
1391 # this pseudo-module represents all the files under ext/ and lib/
1392 # that aren't otherwise claimed. This means that the following two
1393 # commands will check that every file under ext/ and lib/ is
1394 # accounted for, and that there are no duplicates:
1395 #
1396 # perl Porting/Maintainers --checkmani lib ext
d8ada404 1397 # perl Porting/Maintainers --checkmani
462ea751 1398
4f3a742d 1399 '_PERLLIB' => {
2af3c4b9 1400 'FILES' => q[
79852350
AB
1401 ext/Amiga-ARexx/
1402 ext/Amiga-Exec/
09213599 1403 ext/B/
2af3c4b9
SH
1404 ext/Devel-Peek/
1405 ext/DynaLoader/
1406 ext/Errno/
7b4d95f7 1407 ext/ExtUtils-Miniperl/
2af3c4b9
SH
1408 ext/Fcntl/
1409 ext/File-DosGlob/
1410 ext/File-Find/
1411 ext/File-Glob/
1412 ext/FileCache/
1413 ext/GDBM_File/
1414 ext/Hash-Util-FieldHash/
1415 ext/Hash-Util/
1416 ext/I18N-Langinfo/
1417 ext/IPC-Open3/
1418 ext/NDBM_File/
1419 ext/ODBM_File/
1420 ext/Opcode/
1421 ext/POSIX/
1422 ext/PerlIO-encoding/
1423 ext/PerlIO-mmap/
1424 ext/PerlIO-scalar/
1425 ext/PerlIO-via/
1426 ext/Pod-Functions/
1427 ext/Pod-Html/
1428 ext/SDBM_File/
1429 ext/Sys-Hostname/
1430 ext/Tie-Hash-NamedCapture/
1431 ext/Tie-Memoize/
b3dcf775 1432 ext/VMS-DCLsym/
2af3c4b9 1433 ext/VMS-Filespec/
b3dcf775
SH
1434 ext/VMS-Stdio/
1435 ext/Win32CORE/
4f3a742d 1436 ext/XS-APItest/
2af3c4b9
SH
1437 ext/XS-Typemap/
1438 ext/arybase/
1439 ext/attributes/
1440 ext/mro/
1441 ext/re/
1442 lib/AnyDBM_File.{pm,t}
1443 lib/Benchmark.{pm,t}
38eca645 1444 lib/B/Deparse{.pm,.t,-*.t}
f3574cc6 1445 lib/B/Op_private.pm
4f3a742d 1446 lib/CORE.pod
2af3c4b9 1447 lib/Class/Struct.{pm,t}
4f3a742d
DR
1448 lib/Config.t
1449 lib/Config/Extensions.{pm,t}
1450 lib/DB.{pm,t}
2af3c4b9
SH
1451 lib/DBM_Filter.pm
1452 lib/DBM_Filter/
1453 lib/DirHandle.{pm,t}
1454 lib/English.{pm,t}
4f3a742d
DR
1455 lib/ExtUtils/Embed.pm
1456 lib/ExtUtils/XSSymSet.pm
1457 lib/ExtUtils/t/Embed.t
1458 lib/ExtUtils/typemap
2af3c4b9
SH
1459 lib/File/Basename.{pm,t}
1460 lib/File/Compare.{pm,t}
1461 lib/File/Copy.{pm,t}
1462 lib/File/stat{.pm,.t,-7896.t}
1463 lib/FileHandle.{pm,t}
1464 lib/FindBin.{pm,t}
1465 lib/Getopt/Std.{pm,t}
cb198164 1466 lib/Internals.pod
4f3a742d 1467 lib/Internals.t
4b6af431 1468 lib/meta_notation.{pm,t}
4f3a742d
DR
1469 lib/Net/hostent.{pm,t}
1470 lib/Net/netent.{pm,t}
1471 lib/Net/protoent.{pm,t}
1472 lib/Net/servent.{pm,t}
2af3c4b9 1473 lib/PerlIO.pm
4f3a742d
DR
1474 lib/Pod/t/InputObjects.t
1475 lib/Pod/t/Select.t
1476 lib/Pod/t/Usage.t
4f3a742d
DR
1477 lib/Pod/t/utils.t
1478 lib/SelectSaver.{pm,t}
1479 lib/Symbol.{pm,t}
1480 lib/Thread.{pm,t}
1481 lib/Tie/Array.pm
1482 lib/Tie/Array/
1483 lib/Tie/ExtraHash.t
1484 lib/Tie/Handle.pm
1485 lib/Tie/Handle/
2af3c4b9 1486 lib/Tie/Hash.{pm,t}
4f3a742d
DR
1487 lib/Tie/Scalar.{pm,t}
1488 lib/Tie/StdHandle.pm
1489 lib/Tie/SubstrHash.{pm,t}
1490 lib/Time/gmtime.{pm,t}
1491 lib/Time/localtime.{pm,t}
1492 lib/Time/tm.pm
1493 lib/UNIVERSAL.pm
1494 lib/Unicode/README
2af3c4b9 1495 lib/Unicode/UCD.{pm,t}
4f3a742d
DR
1496 lib/User/grent.{pm,t}
1497 lib/User/pwent.{pm,t}
2af3c4b9 1498 lib/_charnames.pm
4f3a742d
DR
1499 lib/blib.{pm,t}
1500 lib/bytes.{pm,t}
1501 lib/bytes_heavy.pl
1502 lib/charnames.{pm,t}
1503 lib/dbm_filter_util.pl
1504 lib/deprecate.pm
2af3c4b9 1505 lib/diagnostics.{pm,t}
4f3a742d
DR
1506 lib/dumpvar.{pl,t}
1507 lib/feature.{pm,t}
1508 lib/feature/
1509 lib/filetest.{pm,t}
1510 lib/h2ph.t
1511 lib/h2xs.t
1512 lib/integer.{pm,t}
1513 lib/less.{pm,t}
1514 lib/locale.{pm,t}
706055ce 1515 lib/locale_threads.t
4f3a742d
DR
1516 lib/open.{pm,t}
1517 lib/overload/numbers.pm
1518 lib/overloading.{pm,t}
2af3c4b9 1519 lib/overload{.pm,.t,64.t}
4f3a742d
DR
1520 lib/perl5db.{pl,t}
1521 lib/perl5db/
a3b4b767 1522 lib/perlbug.t
2af3c4b9 1523 lib/sigtrap.{pm,t}
4f3a742d
DR
1524 lib/sort.{pm,t}
1525 lib/strict.{pm,t}
1526 lib/subs.{pm,t}
1527 lib/unicore/
1528 lib/utf8.{pm,t}
1529 lib/utf8_heavy.pl
1530 lib/vars{.pm,.t,_carp.t}
1531 lib/vmsish.{pm,t}
1532 ],
4f3a742d 1533 },
462ea751 1534);
b128a327 1535
97556ec3 1536# legacy CPAN flag
4f3a742d 1537for ( values %Modules ) {
97556ec3
GA
1538 $_->{CPAN} = !!$_->{DISTRIBUTION};
1539}
1540
099bebb1
SH
1541# legacy UPSTREAM flag
1542for ( keys %Modules ) {
1543 # Keep any existing UPSTREAM flag so that "overrides" can be applied
1544 next if exists $Modules{$_}{UPSTREAM};
1545
1546 if ($_ eq '_PERLLIB' or $Modules{$_}{FILES} =~ m{^\s*(?:dist|ext|lib)/}) {
1547 $Modules{$_}{UPSTREAM} = 'blead';
1548 }
1549 elsif ($Modules{$_}{FILES} =~ m{^\s*cpan/}) {
1550 $Modules{$_}{UPSTREAM} = 'cpan';
1551 }
1552 else {
1553 warn "Unexpected location of FILES for module $_: $Modules{$_}{FILES}";
1554 }
1555}
1556
d350de41 1557# legacy MAINTAINER field
099bebb1 1558for ( keys %Modules ) {
b3dcf775 1559 # Keep any existing MAINTAINER flag so that "overrides" can be applied
099bebb1
SH
1560 next if exists $Modules{$_}{MAINTAINER};
1561
1562 if ($Modules{$_}{UPSTREAM} eq 'blead') {
1563 $Modules{$_}{MAINTAINER} = 'P5P';
872818ae 1564 $Maintainers{P5P} = 'perl5-porters <perl5-porters@perl.org>';
d350de41 1565 }
099bebb1
SH
1566 elsif (exists $Modules{$_}{DISTRIBUTION}) {
1567 (my $pause_id = $Modules{$_}{DISTRIBUTION}) =~ s{/.*$}{};
1568 $Modules{$_}{MAINTAINER} = $pause_id;
d350de41
SH
1569 $Maintainers{$pause_id} = "<$pause_id\@cpan.org>";
1570 }
099bebb1
SH
1571 else {
1572 warn "No DISTRIBUTION for non-blead module $_";
1573 }
d350de41
SH
1574}
1575
b128a327 15761;