This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Memoize - t/expmod_t.t and t/speed.t were CUSTOMIZED by 53379bfd2f and f0206e8198
[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(
79ff1055 19 .cvsignore .dualLivedDiffConfig .gitignore .github .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
20d6f799
KE
68# necessarily match the newest version on CPAN. (For dist/ distributions,
69# which are blead-first, a request should be placed with the releaser(s) to
70# upload the corresponding cpan release, and the entry in this file should
71# only be updated when that release has been done.)
a55d270d 72
2c95b6e4
DM
73# EXCLUDED is a list of files to be excluded from a CPAN tarball before
74# comparing the remaining contents with core. Each item can either be a
75# full pathname (eg 't/foo.t') or a pattern (e.g. qr{^t/}).
76# It defaults to the empty list.
77
d43babf1 78# CUSTOMIZED is a list of files that have been customized within the
24b68a05
DG
79# Perl core. Use this whenever patching a cpan upstream distribution
80# or whenever we expect to have a file that differs from the tarball.
81# If the file in blead matches the file in the tarball from CPAN,
82# Porting/core-cpan-diff will warn about it, as it indicates an expected
fae38280 83# customization might have been lost when updating from upstream. The
f81a37f2
SH
84# path should be relative to the distribution directory. If the upstream
85# distribution should be modified to incorporate the change then be sure
86# to raise a ticket for it on rt.cpan.org and add a comment alongside the
87# list of CUSTOMIZED files noting the ticket number.
d43babf1 88
ab87ca4d
DG
89# DEPRECATED contains the *first* version of Perl in which the module
90# was considered deprecated. It should only be present if the module is
8dad89f0 91# actually deprecated. Such modules should use deprecate.pm to
ab87ca4d
DG
92# issue a warning if used. E.g.:
93#
94# use if $] >= 5.011, 'deprecate';
95#
96
2c95b6e4 97# MAP is a hash that maps CPAN paths to their core equivalents.
47e01c32 98# Each key represents a string prefix, with longest prefixes checked
2c95b6e4
DM
99# first. The first match causes that prefix to be replaced with the
100# corresponding key. For example, with the following MAP:
613f422f 101# {
4f3a742d
DR
102# 'lib/' => 'lib/',
103# '' => 'lib/Foo/',
2c95b6e4
DM
104# },
105#
106# these files are mapped as shown:
107#
108# README becomes lib/Foo/README
613f422f 109# lib/Foo.pm becomes lib/Foo.pm
2c95b6e4
DM
110#
111# The default is dependent on the type of module.
112# For distributions which appear to be stored under ext/, it defaults to:
113#
114# { '' => 'ext/Foo-Bar/' }
115#
116# otherwise, it's
117#
613f422f 118# {
4f3a742d
DR
119# 'lib/' => 'lib/',
120# '' => 'lib/Foo/Bar/',
2c95b6e4
DM
121# }
122
b128a327
JH
123%Modules = (
124
4f3a742d 125 'Archive::Tar' => {
401624ce 126 'DISTRIBUTION' => 'BINGOS/Archive-Tar-2.38.tar.gz',
4f3a742d 127 'FILES' => q[cpan/Archive-Tar],
4f3a742d 128 'BUGS' => 'bug-archive-tar@rt.cpan.org',
c465fd2f
CBW
129 'EXCLUDED' => [
130 qw(t/07_ptardiff.t),
2db5b8da 131 qr{t/src/(long|short)/foo.txz},
c465fd2f 132 ],
4f3a742d
DR
133 },
134
135 'Attribute::Handlers' => {
e8b9cef0 136 'DISTRIBUTION' => 'RJBS/Attribute-Handlers-0.99.tar.gz',
4f3a742d 137 'FILES' => q[dist/Attribute-Handlers],
4f3a742d
DR
138 },
139
4f3a742d 140 'autodie' => {
2f4f9a3a 141 'DISTRIBUTION' => 'TODDR/autodie-2.32.tar.gz',
4f3a742d
DR
142 'FILES' => q[cpan/autodie],
143 'EXCLUDED' => [
273225d4 144 qr{benchmarks},
f91d7e0d 145 qr{README\.md},
e4cce63d 146 qr{^xt/},
4f3a742d
DR
147 # All these tests depend upon external
148 # modules that don't exist when we're
149 # building the core. Hence, they can
150 # never run, and should not be merged.
ff4ad1c0 151 qw( t/author-critic.t
4f3a742d
DR
152 t/critic.t
153 t/fork.t
154 t/kwalitee.t
155 t/lex58.t
156 t/pod-coverage.t
157 t/pod.t
273225d4
CBW
158 t/release-pod-coverage.t
159 t/release-pod-syntax.t
4f3a742d
DR
160 t/socket.t
161 t/system.t
1b173b1f 162 t/no-all.t
4f3a742d
DR
163 )
164 ],
4f3a742d
DR
165 },
166
167 'AutoLoader' => {
dff36865 168 'DISTRIBUTION' => 'SMUELLER/AutoLoader-5.74.tar.gz',
4f3a742d
DR
169 'FILES' => q[cpan/AutoLoader],
170 'EXCLUDED' => ['t/00pod.t'],
4f3a742d
DR
171 },
172
173 'autouse' => {
965f9517 174 'DISTRIBUTION' => 'RJBS/autouse-1.11.tar.gz',
4f3a742d
DR
175 'FILES' => q[dist/autouse],
176 'EXCLUDED' => [qr{^t/release-.*\.t}],
4f3a742d
DR
177 },
178
4f3a742d 179 'base' => {
4c13dc7e 180 'DISTRIBUTION' => 'RJBS/base-2.23.tar.gz',
4f3a742d 181 'FILES' => q[dist/base],
4f3a742d
DR
182 },
183
4f3a742d 184 'bignum' => {
405fd651 185 'DISTRIBUTION' => 'PJACKLAM/bignum-0.51.tar.gz',
c287fe32 186 'FILES' => q[cpan/bignum],
4f3a742d 187 'EXCLUDED' => [
91f07087 188 qr{^t/author-},
d5c196da 189 qr{^t/release-},
c287fe32
SH
190 qw( t/00sig.t
191 t/01load.t
4f3a742d
DR
192 ),
193 ],
4f3a742d
DR
194 },
195
196 'Carp' => {
9e3f69e1 197 'DISTRIBUTION' => 'XSAWYERX/Carp-1.50.tar.gz',
4f3a742d 198 'FILES' => q[dist/Carp],
4f3a742d
DR
199 },
200
4f3a742d 201 'Compress::Raw::Bzip2' => {
51638bdf 202 'DISTRIBUTION' => 'PMQS/Compress-Raw-Bzip2-2.096.tar.gz',
4f3a742d
DR
203 'FILES' => q[cpan/Compress-Raw-Bzip2],
204 'EXCLUDED' => [
205 qr{^t/Test/},
8284a71c 206 qr{^t/meta},
65b62fea 207 'bzip2-src/bzip2-const.patch',
4f3a742d 208 'bzip2-src/bzip2-cpp.patch',
65b62fea 209 'bzip2-src/bzip2-unsigned.patch',
4f3a742d 210 ],
4f3a742d
DR
211 },
212
213 'Compress::Raw::Zlib' => {
6fec3df1 214 'DISTRIBUTION' => 'PMQS/Compress-Raw-Zlib-2.096.tar.gz',
4f3a742d
DR
215 'FILES' => q[cpan/Compress-Raw-Zlib],
216 'EXCLUDED' => [
84c82da4 217 qr{^examples/},
4f3a742d 218 qr{^t/Test/},
8284a71c 219 qr{^t/meta},
4f3a742d
DR
220 qw( t/000prereq.t
221 t/99pod.t
222 ),
223 ],
4f3a742d
DR
224 },
225
4b07058c 226 'Config::Perl::V' => {
72b2b1d9 227 'DISTRIBUTION' => 'HMBRAND/Config-Perl-V-0.31.tgz',
4b07058c 228 'FILES' => q[cpan/Config-Perl-V],
b4ade012
MB
229 'EXCLUDED' => [qw(
230 examples/show-v.pl
b4ade012 231 )],
aff33f21 232 'CUSTOMIZED' => [ qw(V.pm) ],
4b07058c
RS
233 },
234
4f3a742d 235 'constant' => {
8b1ae794 236 'DISTRIBUTION' => 'RJBS/constant-1.33.tar.gz',
4f3a742d
DR
237 'FILES' => q[dist/constant],
238 'EXCLUDED' => [
239 qw( t/00-load.t
240 t/more-tests.t
241 t/pod-coverage.t
242 t/pod.t
243 eg/synopsis.pl
244 ),
245 ],
4f3a742d
DR
246 },
247
248 'CPAN' => {
ef977e20 249 'DISTRIBUTION' => 'ANDK/CPAN-2.28.tar.gz',
4f3a742d
DR
250 'FILES' => q[cpan/CPAN],
251 'EXCLUDED' => [
252 qr{^distroprefs/},
253 qr{^inc/Test/},
45a13884
SH
254 qr{^t/CPAN/},
255 qr{^t/data/},
79116533 256 qr{^t/97-},
4f3a742d 257 qw( lib/CPAN/Admin.pm
6156383d 258 scripts/cpan-mirrors
bfae5bde 259 PAUSE2015.pub
6cc23b5a 260 PAUSE2019.pub
ef977e20 261 PAUSE2021.pub
4f3a742d
DR
262 SlayMakefile
263 t/00signature.t
264 t/04clean_load.t
265 t/12cpan.t
266 t/13tarzip.t
267 t/14forkbomb.t
268 t/30shell.coverage
269 t/30shell.t
270 t/31sessions.t
271 t/41distribution.t
272 t/42distroprefs.t
273 t/43distroprefspref.t
45a13884 274 t/44cpanmeta.t
4f3a742d
DR
275 t/50pod.t
276 t/51pod.t
277 t/52podcover.t
278 t/60credentials.t
279 t/70_critic.t
bfae5bde 280 t/71_minimumversion.t
4f3a742d
DR
281 t/local_utils.pm
282 t/perlcriticrc
283 t/yaml_code.yml
284 ),
285 ],
4f3a742d
DR
286 },
287
278337cd
CBW
288 # Note: When updating CPAN-Meta the META.* files will need to be regenerated
289 # perl -Icpan/CPAN-Meta/lib Porting/makemeta
4f3a742d 290 'CPAN::Meta' => {
f33f0562 291 'DISTRIBUTION' => 'DAGOLDEN/CPAN-Meta-2.150010.tar.gz',
4f3a742d
DR
292 'FILES' => q[cpan/CPAN-Meta],
293 'EXCLUDED' => [
f907dd3c
SH
294 qw[t/00-report-prereqs.t
295 t/00-report-prereqs.dd
f33f0562 296 ],
4f3a742d
DR
297 qr{^xt},
298 qr{^history},
299 ],
4f3a742d
DR
300 },
301
b6ae0ea7 302 'CPAN::Meta::Requirements' => {
054d0c99 303 'DISTRIBUTION' => 'DAGOLDEN/CPAN-Meta-Requirements-2.140.tar.gz',
b6ae0ea7
CBW
304 'FILES' => q[cpan/CPAN-Meta-Requirements],
305 'EXCLUDED' => [
c4814040 306 qw(t/00-report-prereqs.t),
54b7cb30 307 qw(t/00-report-prereqs.dd),
608e531f 308 qw(t/version-cleanup.t),
b6ae0ea7 309 qr{^xt},
b6ae0ea7 310 ],
b6ae0ea7
CBW
311 },
312
4f3a742d 313 'CPAN::Meta::YAML' => {
0d99ea03 314 'DISTRIBUTION' => 'DAGOLDEN/CPAN-Meta-YAML-0.018.tar.gz',
4f3a742d
DR
315 'FILES' => q[cpan/CPAN-Meta-YAML],
316 'EXCLUDED' => [
2954a1e9 317 't/00-report-prereqs.t',
e586de20 318 't/00-report-prereqs.dd',
4f3a742d
DR
319 qr{^xt},
320 ],
4f3a742d
DR
321 },
322
323 'Data::Dumper' => {
42b23152 324 'DISTRIBUTION' => 'XSAWYERX/Data-Dumper-2.173.tar.gz',
4f3a742d 325 'FILES' => q[dist/Data-Dumper],
4f3a742d
DR
326 },
327
328 'DB_File' => {
8a091efc 329 'DISTRIBUTION' => 'PMQS/DB_File-1.855.tar.gz',
4f3a742d
DR
330 'FILES' => q[cpan/DB_File],
331 'EXCLUDED' => [
332 qr{^patches/},
1e3f5c47 333 qr{^t/meta},
4f3a742d 334 qw( t/pod.t
22ce58f7 335 t/000prereq.t
4f3a742d
DR
336 fallback.h
337 fallback.xs
338 ),
339 ],
4f3a742d
DR
340 },
341
4f3a742d 342 'Devel::PPPort' => {
8f62b02f 343 'DISTRIBUTION' => 'ATOOMIC/Devel-PPPort-3.57.tar.gz',
7baf245a 344 'FILES' => q[dist/Devel-PPPort],
84c82da4
SH
345 'EXCLUDED' => [
346 'PPPort.pm', # we use PPPort_pm.PL instead
bb20cabd 347 ],
0d96e6a3 348 'CUSTOMIZED' => [ qw(Makefile.PL) ],
4f3a742d
DR
349 },
350
97b1d6e6 351 'Devel::SelfStubber' => {
97b1d6e6
SH
352 'DISTRIBUTION' => 'FLORA/Devel-SelfStubber-1.05.tar.gz',
353 'FILES' => q[dist/Devel-SelfStubber],
354 'EXCLUDED' => [qr{^t/release-.*\.t}],
97b1d6e6
SH
355 },
356
4f3a742d 357 'Digest' => {
551856fd 358 'DISTRIBUTION' => 'TODDR/Digest-1.19.tar.gz',
4f3a742d
DR
359 'FILES' => q[cpan/Digest],
360 'EXCLUDED' => ['digest-bench'],
4f3a742d
DR
361 },
362
363 'Digest::MD5' => {
897b79c3 364 'DISTRIBUTION' => 'TODDR/Digest-MD5-2.58.tar.gz',
4f3a742d 365 'FILES' => q[cpan/Digest-MD5],
897b79c3 366 'EXCLUDED' => [ 'rfc1321.txt', 'bin/md5sum.pl' ],
4f3a742d
DR
367 },
368
369 'Digest::SHA' => {
78ce14b4 370 'DISTRIBUTION' => 'MSHELOR/Digest-SHA-6.02.tar.gz',
4f3a742d
DR
371 'FILES' => q[cpan/Digest-SHA],
372 'EXCLUDED' => [
373 qw( t/pod.t
374 t/podcover.t
375 examples/dups
376 ),
377 ],
4f3a742d
DR
378 },
379
4f3a742d 380 'Dumpvalue' => {
f6e46c4d 381 'DISTRIBUTION' => 'FLORA/Dumpvalue-1.17.tar.gz',
4f3a742d
DR
382 'FILES' => q[dist/Dumpvalue],
383 'EXCLUDED' => [qr{^t/release-.*\.t}],
4f3a742d
DR
384 },
385
4f3a742d 386 'Encode' => {
27ee53f9 387 'DISTRIBUTION' => 'DANKOGAI/Encode-3.07.tar.gz',
4f3a742d 388 'FILES' => q[cpan/Encode],
4eeaed37
N
389 'EXCLUDED' => [
390 qw( t/whatwg-aliases.json
391 t/whatwg-aliases.t
392 ),
393 ],
4f3a742d
DR
394 },
395
396 'encoding::warnings' => {
4f3a742d 397 'DISTRIBUTION' => 'AUDREYT/encoding-warnings-0.11.tar.gz',
e1c786ba 398 'FILES' => q[dist/encoding-warnings],
4f3a742d
DR
399 'EXCLUDED' => [
400 qr{^inc/Module/},
94c85d8e 401 qw(t/0-signature.t),
4f3a742d 402 ],
4f3a742d
DR
403 },
404
4f3a742d 405 'Env' => {
126fc07f 406 'DISTRIBUTION' => 'FLORA/Env-1.04.tar.gz',
4f3a742d
DR
407 'FILES' => q[dist/Env],
408 'EXCLUDED' => [qr{^t/release-.*\.t}],
4f3a742d
DR
409 },
410
de84ff2b 411 'experimental' => {
203ad3de 412 'DISTRIBUTION' => 'LEONT/experimental-0.022.tar.gz',
de84ff2b 413 'FILES' => q[cpan/experimental],
4fdcb09b 414 'EXCLUDED' => [qr{^xt/}],
5f3202fa
Z
415 'CUSTOMIZED' => [
416 # smartmatch changes
417 't/basic.t',
418 ],
de84ff2b
RS
419 },
420
4f3a742d 421 'Exporter' => {
933f64ca 422 'DISTRIBUTION' => 'TODDR/Exporter-5.74.tar.gz',
3110a055 423 'FILES' => q[dist/Exporter],
4f3a742d
DR
424 'EXCLUDED' => [
425 qw( t/pod.t
426 t/use.t
427 ),
428 ],
4f3a742d
DR
429 },
430
431 'ExtUtils::CBuilder' => {
29e038ba 432 'DISTRIBUTION' => 'AMBS/ExtUtils-CBuilder-0.280234.tar.gz',
4f3a742d 433 'FILES' => q[dist/ExtUtils-CBuilder],
a0e78e9f
SH
434 'EXCLUDED' => [
435 qw(README.mkdn),
436 qr{^xt},
437 ],
4f3a742d
DR
438 },
439
4f3a742d 440 'ExtUtils::Constant' => {
4f3a742d 441
4097fff1 442 'DISTRIBUTION' => 'NWCLARK/ExtUtils-Constant-0.25.tar.gz',
4f3a742d 443 'FILES' => q[cpan/ExtUtils-Constant],
9a94bc6f
DIM
444 'CUSTOMIZED' => [
445 # https://rt.cpan.org/Public/Bug/Display.html?id=132995
446 't/Constant.t',
447 ],
4f3a742d
DR
448 'EXCLUDED' => [
449 qw( lib/ExtUtils/Constant/Aaargh56Hash.pm
450 examples/perl_keyword.pl
451 examples/perl_regcomp_posix_keyword.pl
452 ),
34c00cdf 453 ],
4f3a742d
DR
454 },
455
456 'ExtUtils::Install' => {
e63fbf73 457 'DISTRIBUTION' => 'BINGOS/ExtUtils-Install-2.18.tar.gz',
d393d7e5 458 'FILES' => q[cpan/ExtUtils-Install],
4f3a742d
DR
459 'EXCLUDED' => [
460 qw( t/lib/Test/Builder.pm
461 t/lib/Test/Builder/Module.pm
462 t/lib/Test/More.pm
463 t/lib/Test/Simple.pm
464 t/pod-coverage.t
465 t/pod.t
466 ),
467 ],
4f3a742d
DR
468 },
469
470 'ExtUtils::MakeMaker' => {
6d12145e 471 'DISTRIBUTION' => 'BINGOS/ExtUtils-MakeMaker-7.48.tar.gz',
4f3a742d
DR
472 'FILES' => q[cpan/ExtUtils-MakeMaker],
473 'EXCLUDED' => [
474 qr{^t/lib/Test/},
475 qr{^(bundled|my)/},
476 qr{^t/Liblist_Kid.t},
477 qr{^t/liblist/},
78fd4358 478 qr{^\.perlcriticrc},
84c82da4
SH
479 'PATCHING',
480 'README.packaging',
ce9582af 481 'lib/ExtUtils/MakeMaker/version/vpp.pm',
4f3a742d 482 ],
4f3a742d
DR
483 },
484
273021bd
SH
485 'ExtUtils::PL2Bat' => {
486 'DISTRIBUTION' => 'LEONT/ExtUtils-PL2Bat-0.003.tar.gz',
487 'FILES' => q[cpan/ExtUtils-PL2Bat],
488 'EXCLUDED' => [
489 't/00-compile.t',
490 'script/pl2bat.pl'
491 ],
492 'CUSTOMIZED' => [
493 't/make_executable.t',
494 ],
495 },
d972df9b 496
4f3a742d 497 'ExtUtils::Manifest' => {
1633525e 498 'DISTRIBUTION' => 'ETHER/ExtUtils-Manifest-1.72.tar.gz',
854a00d8 499 'FILES' => q[cpan/ExtUtils-Manifest],
4d25f022
SH
500 'EXCLUDED' => [
501 qr(^t/00-report-prereqs),
502 qr(^xt/)
503 ],
4f3a742d
DR
504 },
505
506 'ExtUtils::ParseXS' => {
1bae5449 507 'DISTRIBUTION' => 'SMUELLER/ExtUtils-ParseXS-3.35.tar.gz',
4f3a742d 508 'FILES' => q[dist/ExtUtils-ParseXS],
4f3a742d
DR
509 },
510
4f3a742d 511 'File::Fetch' => {
b6806da1 512 'DISTRIBUTION' => 'BINGOS/File-Fetch-0.56.tar.gz',
4f3a742d 513 'FILES' => q[cpan/File-Fetch],
4f3a742d
DR
514 },
515
4f3a742d 516 'File::Path' => {
f4b02d78 517 'DISTRIBUTION' => 'JKEENAN/File-Path-2.17.tar.gz',
4f3a742d
DR
518 'FILES' => q[cpan/File-Path],
519 'EXCLUDED' => [
bfcc9519
SH
520 qw(t/Path-Class.t),
521 qr{^xt/},
4f3a742d 522 ],
4f3a742d
DR
523 },
524
4f3a742d 525 'File::Temp' => {
0df722d6 526 'DISTRIBUTION' => 'ETHER/File-Temp-0.2311.tar.gz',
4f3a742d
DR
527 'FILES' => q[cpan/File-Temp],
528 'EXCLUDED' => [
6bc10107
SH
529 qw( README.mkdn
530 misc/benchmark.pl
4f3a742d
DR
531 misc/results.txt
532 ),
6bc10107 533 qr[^t/00-report-prereqs],
814e893f 534 qr{^xt},
4f3a742d 535 ],
4f3a742d
DR
536 },
537
4f3a742d 538 'Filter::Simple' => {
e9214465 539 'DISTRIBUTION' => 'SMUELLER/Filter-Simple-0.94.tar.gz',
4f3a742d
DR
540 'FILES' => q[dist/Filter-Simple],
541 'EXCLUDED' => [
4f3a742d
DR
542 qr{^demo/}
543 ],
4f3a742d
DR
544 },
545
546 'Filter::Util::Call' => {
0b7fa637 547 'DISTRIBUTION' => 'RURBAN/Filter-1.60.tar.gz',
4f3a742d
DR
548 'FILES' => q[cpan/Filter-Util-Call
549 pod/perlfilter.pod
550 ],
551 'EXCLUDED' => [
552 qr{^decrypt/},
553 qr{^examples/},
554 qr{^Exec/},
555 qr{^lib/Filter/},
556 qr{^tee/},
ca215658 557 qw( .appveyor.yml
0b7fa637 558 .whitesource
ca215658 559 Call/Makefile.PL
4f3a742d
DR
560 Call/ppport.h
561 Call/typemap
562 mytest
563 t/cpp.t
564 t/decrypt.t
565 t/exec.t
cfaad56a 566 t/m4.t
4f3a742d 567 t/order.t
4f3a742d
DR
568 t/sh.t
569 t/tee.t
533d93cc 570 t/z_kwalitee.t
e765fd18 571 t/z_manifest.t
533d93cc
SH
572 t/z_meta.t
573 t/z_perl_minimum_version.t
574 t/z_pod-coverage.t
575 t/z_pod.t
4f3a742d
DR
576 ),
577 ],
578 'MAP' => {
e765fd18
SH
579 'Call/' => 'cpan/Filter-Util-Call/',
580 't/filter-util.pl' => 'cpan/Filter-Util-Call/filter-util.pl',
581 'perlfilter.pod' => 'pod/perlfilter.pod',
582 '' => 'cpan/Filter-Util-Call/',
4f3a742d 583 },
dd469d97
SH
584 'CUSTOMIZED' => [
585 qw(pod/perlfilter.pod)
586 ],
4f3a742d
DR
587 },
588
3e191967
S
589 'FindBin' => {
590 'DISTRIBUTION' => 'XSAWYERX/FindBin-0.000.tar.gz',
591 'FILES' => q[dist/FindBin],
592 },
593
4f3a742d 594 'Getopt::Long' => {
048ed1a1 595 'DISTRIBUTION' => 'JV/Getopt-Long-2.52.tar.gz',
4f3a742d
DR
596 'FILES' => q[cpan/Getopt-Long],
597 'EXCLUDED' => [
598 qr{^examples/},
048ed1a1 599 qw( lib/newgetopt.pl
974d5816 600 t/gol-compat.t
4f3a742d
DR
601 ),
602 ],
4f3a742d
DR
603 },
604
4f3a742d 605 'HTTP::Tiny' => {
3a778cce 606 'DISTRIBUTION' => 'DAGOLDEN/HTTP-Tiny-0.076.tar.gz',
4f3a742d
DR
607 'FILES' => q[cpan/HTTP-Tiny],
608 'EXCLUDED' => [
fcfb9f49 609 't/00-report-prereqs.t',
57d69a40 610 't/00-report-prereqs.dd',
4f3a742d 611 't/200_live.t',
44347bc3 612 't/200_live_local_ip.t',
fcfb9f49 613 't/210_live_ssl.t',
4f3a742d
DR
614 qr/^eg/,
615 qr/^xt/
616 ],
4f3a742d
DR
617 },
618
619 'I18N::Collate' => {
4f3a742d
DR
620 'DISTRIBUTION' => 'FLORA/I18N-Collate-1.02.tar.gz',
621 'FILES' => q[dist/I18N-Collate],
622 'EXCLUDED' => [qr{^t/release-.*\.t}],
4f3a742d
DR
623 },
624
4f3a742d 625 'I18N::LangTags' => {
4f3a742d 626 'FILES' => q[dist/I18N-LangTags],
4f3a742d
DR
627 },
628
629 'if' => {
85cede38 630 'DISTRIBUTION' => 'XSAWYERX/if-0.0608.tar.gz',
4f3a742d 631 'FILES' => q[dist/if],
4f3a742d
DR
632 },
633
634 'IO' => {
933f64ca 635 'DISTRIBUTION' => 'TODDR/IO-1.42.tar.gz',
4f3a742d
DR
636 'FILES' => q[dist/IO/],
637 'EXCLUDED' => ['t/test.pl'],
4f3a742d
DR
638 },
639
640 'IO-Compress' => {
4737eb08 641 'DISTRIBUTION' => 'PMQS/IO-Compress-2.096.tar.gz',
4f3a742d 642 'FILES' => q[cpan/IO-Compress],
84c82da4
SH
643 'EXCLUDED' => [
644 qr{^examples/},
645 qr{^t/Test/},
9f58603c 646 qr{^t/999meta-},
84c82da4
SH
647 't/010examples-bzip2.t',
648 't/010examples-zlib.t',
649 't/cz-05examples.t',
650 ],
4f3a742d
DR
651 },
652
74a30e96 653 'IO::Socket::IP' => {
8fa9c8df 654 'DISTRIBUTION' => 'PEVANS/IO-Socket-IP-0.41.tar.gz',
74a30e96
CBW
655 'FILES' => q[cpan/IO-Socket-IP],
656 'EXCLUDED' => [
657 qr{^examples/},
658 ],
659 },
660
4f3a742d 661 'IO::Zlib' => {
3447587c 662 'DISTRIBUTION' => 'TOMHUGHES/IO-Zlib-1.11.tar.gz',
4f3a742d 663 'FILES' => q[cpan/IO-Zlib],
4f3a742d
DR
664 },
665
666 'IPC::Cmd' => {
dc9ac3ee 667 'DISTRIBUTION' => 'BINGOS/IPC-Cmd-1.04.tar.gz',
4f3a742d 668 'FILES' => q[cpan/IPC-Cmd],
4f3a742d
DR
669 },
670
4f3a742d 671 'IPC::SysV' => {
4fe28b11 672 'DISTRIBUTION' => 'MHX/IPC-SysV-2.08.tar.gz',
4f3a742d
DR
673 'FILES' => q[cpan/IPC-SysV],
674 'EXCLUDED' => [
675 qw( const-c.inc
676 const-xs.inc
677 ),
678 ],
4f3a742d
DR
679 },
680
681 'JSON::PP' => {
c74be7ad 682 'DISTRIBUTION' => 'ISHIGAKI/JSON-PP-4.05.tar.gz',
4f3a742d 683 'FILES' => q[cpan/JSON-PP],
4f3a742d
DR
684 },
685
686 'lib' => {
4f3a742d
DR
687 'DISTRIBUTION' => 'SMUELLER/lib-0.63.tar.gz',
688 'FILES' => q[dist/lib/],
689 'EXCLUDED' => [
690 qw( forPAUSE/lib.pm
691 t/00pod.t
692 ),
693 ],
4f3a742d
DR
694 },
695
696 'libnet' => {
8f2f8ba0 697 'DISTRIBUTION' => 'SHAY/libnet-3.11.tar.gz',
4f3a742d
DR
698 'FILES' => q[cpan/libnet],
699 'EXCLUDED' => [
700 qw( Configure
2901a52f 701 t/changes.t
59e3cdd4
SH
702 t/critic.t
703 t/pod.t
704 t/pod_coverage.t
4f3a742d 705 ),
84c82da4 706 qr(^demos/),
dadfa42f 707 qr(^t/external/),
4f3a742d 708 ],
4f3a742d
DR
709 },
710
4f3a742d 711 'Locale::Maketext' => {
933f64ca 712 'DISTRIBUTION' => 'TODDR/Locale-Maketext-1.29.tar.gz',
4f3a742d
DR
713 'FILES' => q[dist/Locale-Maketext],
714 'EXCLUDED' => [
715 qw(
716 perlcriticrc
717 t/00_load.t
718 t/pod.t
719 ),
720 ],
4f3a742d
DR
721 },
722
723 'Locale::Maketext::Simple' => {
4f3a742d
DR
724 'DISTRIBUTION' => 'JESSE/Locale-Maketext-Simple-0.21.tar.gz',
725 'FILES' => q[cpan/Locale-Maketext-Simple],
8b56300e
TC
726 'CUSTOMIZED' => [
727 # CVE-2016-1238
728 qw( lib/Locale/Maketext/Simple.pm )
729 ],
4f3a742d
DR
730 },
731
4f3a742d 732 'Math::BigInt' => {
83cfb917 733 'DISTRIBUTION' => 'PJACKLAM/Math-BigInt-1.999818.tar.gz',
6b0f9b46 734 'FILES' => q[cpan/Math-BigInt],
4f3a742d 735 'EXCLUDED' => [
4f3a742d 736 qr{^examples/},
6b10d254 737 qr{^t/author-},
8729b735 738 qr{^t/release-},
4f3a742d
DR
739 qw( t/00sig.t
740 t/01load.t
4f3a742d
DR
741 ),
742 ],
4f3a742d
DR
743 },
744
745 'Math::BigInt::FastCalc' => {
5ddb873f 746 'DISTRIBUTION' => 'PJACKLAM/Math-BigInt-FastCalc-0.5009.tar.gz',
6b0f9b46 747 'FILES' => q[cpan/Math-BigInt-FastCalc],
4f3a742d 748 'EXCLUDED' => [
d239a8c7 749 qr{^t/author-},
8c2a9132 750 qr{^t/release-},
d239a8c7 751 qr{^t/Math/BigInt/Lib/TestUtil.pm},
4f3a742d
DR
752 qw( t/00sig.t
753 t/01load.t
4f3a742d
DR
754 ),
755
756 # instead we use the versions of these test
757 # files that come with Math::BigInt:
758 qw( t/bigfltpm.inc
759 t/bigfltpm.t
760 t/bigintpm.inc
761 t/bigintpm.t
762 t/mbimbf.inc
763 t/mbimbf.t
764 ),
765 ],
4f3a742d
DR
766 },
767
768 'Math::BigRat' => {
3cc1ad36 769 'DISTRIBUTION' => 'PJACKLAM/Math-BigRat-0.2614.tar.gz',
6b0f9b46 770 'FILES' => q[cpan/Math-BigRat],
4f3a742d 771 'EXCLUDED' => [
6320cdc0 772 qr{^t/author-},
3cc1ad36 773 qr{^t/release-},
4f3a742d
DR
774 qw( t/00sig.t
775 t/01load.t
9b331ac6
SH
776 ),
777 ],
4f3a742d
DR
778 },
779
780 'Math::Complex' => {
04ae1553 781 'DISTRIBUTION' => 'ZEFRAM/Math-Complex-1.59.tar.gz',
4f3a742d 782 'FILES' => q[cpan/Math-Complex],
50e27233
JH
783 'CUSTOMIZED' => [
784 'lib/Math/Complex.pm', # CPAN RT 118467
785 't/Complex.t', # CPAN RT 118467
786 't/Trig.t', # CPAN RT 118467
70af4d1d 787 't/underbar.t',
50e27233 788 ],
4f3a742d
DR
789 'EXCLUDED' => [
790 qw( t/pod.t
791 t/pod-coverage.t
792 ),
793 ],
4f3a742d
DR
794 },
795
796 'Memoize' => {
8114efa0 797 'DISTRIBUTION' => 'MJD/Memoize-1.03.tgz',
4f3a742d
DR
798 'FILES' => q[cpan/Memoize],
799 'EXCLUDED' => ['article.html'],
8b56300e
TC
800 'CUSTOMIZED' => [
801 # CVE-2016-1238
c3a45d38
SH
802 qw( Memoize.pm ),
803
804 # CPAN RT 108382
805 qw( t/expmod_t.t t/speed.t ),
8b56300e 806 ],
4f3a742d
DR
807 },
808
809 'MIME::Base64' => {
90f582c2 810 'DISTRIBUTION' => 'CAPOEIRAB/MIME-Base64-3.16.tar.gz',
4f3a742d 811 'FILES' => q[cpan/MIME-Base64],
90f582c2 812 'EXCLUDED' => [ qr{^xt/}, 'benchmark', 'benchmark-qp', qr{^t/00-report-prereqs} ],
4f3a742d
DR
813 },
814
4f3a742d 815 'Module::CoreList' => {
6214834e 816 'DISTRIBUTION' => 'BINGOS/Module-CoreList-5.20200920.tar.gz',
4f3a742d 817 'FILES' => q[dist/Module-CoreList],
4f3a742d
DR
818 },
819
820 'Module::Load' => {
ffdf828c 821 'DISTRIBUTION' => 'BINGOS/Module-Load-0.36.tar.gz',
4f3a742d 822 'FILES' => q[cpan/Module-Load],
4f3a742d
DR
823 },
824
825 'Module::Load::Conditional' => {
d813268c 826 'DISTRIBUTION' => 'BINGOS/Module-Load-Conditional-0.74.tar.gz',
4f3a742d 827 'FILES' => q[cpan/Module-Load-Conditional],
4f3a742d
DR
828 },
829
830 'Module::Loaded' => {
4f3a742d
DR
831 'DISTRIBUTION' => 'BINGOS/Module-Loaded-0.08.tar.gz',
832 'FILES' => q[cpan/Module-Loaded],
4f3a742d
DR
833 },
834
835 'Module::Metadata' => {
c7fb6257 836 'DISTRIBUTION' => 'ETHER/Module-Metadata-1.000037.tar.gz',
4f3a742d
DR
837 'FILES' => q[cpan/Module-Metadata],
838 'EXCLUDED' => [
b9beed70 839 qw(t/00-report-prereqs.t),
adc2cdfb 840 qw(t/00-report-prereqs.dd),
e6d414a9 841 qr{weaver.ini},
4f3a742d
DR
842 qr{^xt},
843 ],
4f3a742d
DR
844 },
845
4f3a742d 846 'Net::Ping' => {
a02b1ce4 847 'DISTRIBUTION' => 'RURBAN/Net-Ping-2.73.tar.gz',
4f3a742d 848 'FILES' => q[dist/Net-Ping],
773d126d 849 'EXCLUDED' => [
26e9d721 850 qw(README.md.PL),
773d126d
CBW
851 qw(t/020_external.t),
852 qw(t/600_pod.t),
853 qw(t/601_pod-coverage.t),
854 ],
a02b1ce4
N
855 'CUSTOMIZED' => [
856 qw{
857 t/000_load.t
858 t/001_new.t
859 t/010_pingecho.t
1243fa19 860 t/450_service.t
a02b1ce4
N
861 t/500_ping_icmp.t
862 t/501_ping_icmpv6.t
863 }
864 ],
4f3a742d
DR
865 },
866
867 'NEXT' => {
c8321e06 868 'DISTRIBUTION' => 'NEILB/NEXT-0.67.tar.gz',
4f3a742d
DR
869 'FILES' => q[cpan/NEXT],
870 'EXCLUDED' => [qr{^demo/}],
ffd1c688 871 'CUSTOMIZED' => [ qw(lib/NEXT.pm t/next.t) ],
4f3a742d
DR
872 },
873
4f3a742d 874 'Params::Check' => {
8b21fa03 875 'DISTRIBUTION' => 'BINGOS/Params-Check-0.38.tar.gz',
4f3a742d 876 'FILES' => q[cpan/Params-Check],
4f3a742d
DR
877 },
878
879 'parent' => {
56572701 880 'DISTRIBUTION' => 'CORION/parent-0.238.tar.gz',
4f3a742d 881 'FILES' => q[cpan/parent],
39250dd4
SH
882 'EXCLUDED' => [
883 qr{^xt}
884 ],
4f3a742d
DR
885 },
886
4f3a742d 887 'PathTools' => {
9e3f69e1 888 'DISTRIBUTION' => 'XSAWYERX/PathTools-3.75.tar.gz',
cb8c8458 889 'FILES' => q[dist/PathTools],
76250107
SH
890 'EXCLUDED' => [
891 qr{^t/lib/Test/},
892 qw( t/rel2abs_vs_symlink.t),
893 ],
4f3a742d
DR
894 },
895
97b1d6e6 896 'Perl::OSType' => {
ea8e5adc 897 'DISTRIBUTION' => 'DAGOLDEN/Perl-OSType-1.010.tar.gz',
97b1d6e6 898 'FILES' => q[cpan/Perl-OSType],
765955c0 899 'EXCLUDED' => [qw(tidyall.ini), qr/^xt/, qr{^t/00-}],
97b1d6e6
SH
900 },
901
97b1d6e6 902 'perlfaq' => {
dcd070d8 903 'DISTRIBUTION' => 'ETHER/perlfaq-5.20200523.tar.gz',
97b1d6e6 904 'FILES' => q[cpan/perlfaq],
928a385c 905 'EXCLUDED' => [ qr/^inc/, qr/^xt/, qr{^t/00-} ],
97b1d6e6
SH
906 },
907
4f3a742d 908 'PerlIO::via::QuotedPrint' => {
96623e31 909 'DISTRIBUTION' => 'SHAY/PerlIO-via-QuotedPrint-0.08.tar.gz',
4f3a742d 910 'FILES' => q[cpan/PerlIO-via-QuotedPrint],
4f3a742d
DR
911 },
912
0c501878 913 'Pod::Checker' => {
165e1791 914 'DISTRIBUTION' => 'MAREKR/Pod-Checker-1.74.tar.gz',
0c501878 915 'FILES' => q[cpan/Pod-Checker],
0c501878
CBW
916 },
917
4f3a742d 918 'Pod::Escapes' => {
f347d3e3 919 'DISTRIBUTION' => 'NEILB/Pod-Escapes-1.07.tar.gz',
4f3a742d 920 'FILES' => q[cpan/Pod-Escapes],
4f3a742d
DR
921 },
922
4f3a742d 923 'Pod::Perldoc' => {
6aff4bf3 924 'DISTRIBUTION' => 'MALLEN/Pod-Perldoc-3.28.tar.gz',
00e518b3 925 'FILES' => q[cpan/Pod-Perldoc],
4f3a742d 926
fa884b76
DM
927 # Note that we use the CPAN-provided Makefile.PL, since it
928 # contains special handling of the installation of perldoc.pod
929
5fddd31d
SH
930 'EXCLUDED' => [
931 # In blead, the perldoc executable is generated by perldoc.PL
932 # instead
933 # XXX We can and should fix this, but clean up the DRY-failure in
934 # utils first
935 'perldoc',
936
937 # https://rt.cpan.org/Ticket/Display.html?id=116827
938 't/02_module_pod_output.t'
939 ],
f2ee4cb8
Z
940
941 'CUSTOMIZED' => [
942 # [rt.cpan.org #88204], [rt.cpan.org #120229]
943 'lib/Pod/Perldoc.pm',
944 ],
4f3a742d
DR
945 },
946
947 'Pod::Simple' => {
1ccbfc07 948 'DISTRIBUTION' => 'KHW/Pod-Simple-3.41.tar.gz',
4f3a742d 949 'FILES' => q[cpan/Pod-Simple],
1ccbfc07
SH
950 'EXCLUDED' => [
951 qw{.ChangeLog.swp},
952 qr{^\.github/}
953 ],
4f3a742d
DR
954 },
955
0c501878 956 'Pod::Usage' => {
131281c7 957 'DISTRIBUTION' => 'ATOOMIC/Pod-Usage-2.01.tar.gz',
0c501878 958 'FILES' => q[cpan/Pod-Usage],
131281c7
SH
959 'EXCLUDED' => [
960 qr{^t/00-},
961 qr{^xt/}
962 ],
0c501878
CBW
963 },
964
4f3a742d 965 'podlators' => {
28997a26 966 'DISTRIBUTION' => 'RRA/podlators-4.14.tar.gz',
4f3a742d 967 'FILES' => q[cpan/podlators pod/perlpodstyle.pod],
a7ea90b1
SH
968 'EXCLUDED' => [
969 qr{^docs/metadata/},
970 ],
4f3a742d 971
4f3a742d
DR
972 'MAP' => {
973 '' => 'cpan/podlators/',
4f3a742d 974 # this file lives outside the cpan/ directory
1efe9157 975 'pod/perlpodstyle.pod' => 'pod/perlpodstyle.pod',
4f3a742d 976 },
4f3a742d
DR
977 },
978
4f3a742d 979 'Safe' => {
e739c653 980 'DISTRIBUTION' => 'RGARCIA/Safe-2.35.tar.gz',
4f3a742d 981 'FILES' => q[dist/Safe],
4f3a742d
DR
982 },
983
13bb7c4d 984 'Scalar::Util' => {
cac6698e 985 'DISTRIBUTION' => 'PEVANS/Scalar-List-Utils-1.55.tar.gz',
869a9612 986 'FILES' => q[cpan/Scalar-List-Utils],
4f3a742d
DR
987 },
988
4f3a742d 989 'Search::Dict' => {
0b0a7092 990 'DISTRIBUTION' => 'DAGOLDEN/Search-Dict-1.07.tar.gz',
4f3a742d 991 'FILES' => q[dist/Search-Dict],
4f3a742d
DR
992 },
993
994 'SelfLoader' => {
879d999b 995 'DISTRIBUTION' => 'SMUELLER/SelfLoader-1.24.tar.gz',
4f3a742d
DR
996 'FILES' => q[dist/SelfLoader],
997 'EXCLUDED' => ['t/00pod.t'],
4f3a742d
DR
998 },
999
4f3a742d 1000 'Socket' => {
8bb05de3 1001 'DISTRIBUTION' => 'PEVANS/Socket-2.030.tar.gz',
4f3a742d 1002 'FILES' => q[cpan/Socket],
4f3a742d
DR
1003 },
1004
1005 'Storable' => {
e7e4fc7f 1006 'DISTRIBUTION' => 'XSAWYERX/Storable-3.15.tar.gz',
4f3a742d 1007 'FILES' => q[dist/Storable],
76250107
SH
1008 'EXCLUDED' => [
1009 qr{^t/compat/},
1010 ],
4f3a742d
DR
1011 },
1012
4f3a742d 1013 'Sys::Syslog' => {
10934390 1014 'DISTRIBUTION' => 'SAPER/Sys-Syslog-0.36.tar.gz',
4f3a742d
DR
1015 'FILES' => q[cpan/Sys-Syslog],
1016 'EXCLUDED' => [
1017 qr{^eg/},
84c82da4
SH
1018 qw( README.win32
1019 t/data-validation.t
4f3a742d
DR
1020 t/distchk.t
1021 t/pod.t
1022 t/podcover.t
1023 t/podspell.t
1024 t/portfs.t
1025 win32/PerlLog.RES
4f3a742d
DR
1026 ),
1027 ],
4f3a742d
DR
1028 },
1029
1030 'Term::ANSIColor' => {
9c952fa3 1031 'DISTRIBUTION' => 'RRA/Term-ANSIColor-5.01.tar.gz',
4f3a742d
DR
1032 'FILES' => q[cpan/Term-ANSIColor],
1033 'EXCLUDED' => [
93d7ac13 1034 qr{^docs/},
92f80b37
CBW
1035 qr{^examples/},
1036 qr{^t/data/},
5e64492f
CBW
1037 qr{^t/docs/},
1038 qr{^t/style/},
1039 qw( t/module/aliases-env.t ),
4f3a742d 1040 ],
4f3a742d
DR
1041 },
1042
1043 'Term::Cap' => {
23a75734 1044 'DISTRIBUTION' => 'JSTOWE/Term-Cap-1.17.tar.gz',
4f3a742d 1045 'FILES' => q[cpan/Term-Cap],
4f3a742d
DR
1046 },
1047
1048 'Term::Complete' => {
4f3a742d
DR
1049 'DISTRIBUTION' => 'FLORA/Term-Complete-1.402.tar.gz',
1050 'FILES' => q[dist/Term-Complete],
1051 'EXCLUDED' => [qr{^t/release-.*\.t}],
4f3a742d
DR
1052 },
1053
1054 'Term::ReadLine' => {
75ad3638 1055 'DISTRIBUTION' => 'FLORA/Term-ReadLine-1.14.tar.gz',
4f3a742d
DR
1056 'FILES' => q[dist/Term-ReadLine],
1057 'EXCLUDED' => [qr{^t/release-.*\.t}],
4f3a742d
DR
1058 },
1059
4f3a742d 1060 'Test' => {
1c22e001 1061 'DISTRIBUTION' => 'JESSE/Test-1.26.tar.gz',
48458f69 1062 'FILES' => q[dist/Test],
4f3a742d
DR
1063 },
1064
1065 'Test::Harness' => {
158ffeeb 1066 'DISTRIBUTION' => 'LEONT/Test-Harness-3.42.tar.gz',
4f3a742d
DR
1067 'FILES' => q[cpan/Test-Harness],
1068 'EXCLUDED' => [
1069 qr{^examples/},
4f3a742d
DR
1070 qr{^xt/},
1071 qw( Changes-2.64
8db65552 1072 MANIFEST.CUMMULATIVE
4f3a742d
DR
1073 HACKING.pod
1074 perlcriticrc
8db65552 1075 t/000-load.t
4f3a742d
DR
1076 t/lib/if.pm
1077 ),
1078 ],
4f3a742d
DR
1079 },
1080
1081 'Test::Simple' => {
9e50822c 1082 'DISTRIBUTION' => 'EXODIST/Test-Simple-1.302182.tar.gz',
4f3a742d
DR
1083 'FILES' => q[cpan/Test-Simple],
1084 'EXCLUDED' => [
0b4ffce6
SH
1085 qr{^examples/},
1086 qr{^xt/},
022600ce 1087 qw( appveyor.yml
80a7dd19 1088 t/00compile.t
c6a6e1c8
CG
1089 t/00-report.t
1090 t/zzz-check-breaks.t
4f3a742d
DR
1091 ),
1092 ],
f266b743 1093 },
4f3a742d
DR
1094
1095 'Text::Abbrev' => {
5e96eee9 1096 'DISTRIBUTION' => 'FLORA/Text-Abbrev-1.02.tar.gz',
4f3a742d
DR
1097 'FILES' => q[dist/Text-Abbrev],
1098 'EXCLUDED' => [qr{^t/release-.*\.t}],
4f3a742d
DR
1099 },
1100
1101 'Text::Balanced' => {
03a97c81 1102 'DISTRIBUTION' => 'SHAY/Text-Balanced-2.03.tar.gz',
4f3a742d
DR
1103 'FILES' => q[cpan/Text-Balanced],
1104 'EXCLUDED' => [
1105 qw( t/97_meta.t
1106 t/98_pod.t
1107 t/99_pmv.t
1108 ),
1109 ],
4f3a742d
DR
1110 },
1111
1112 'Text::ParseWords' => {
a790e348 1113 'DISTRIBUTION' => 'CHORNY/Text-ParseWords-3.30.tar.gz',
4f3a742d 1114 'FILES' => q[cpan/Text-ParseWords],
4f3a742d
DR
1115 },
1116
4f3a742d 1117 'Text-Tabs+Wrap' => {
83aea42c 1118 'DISTRIBUTION' => 'MUIR/modules/Text-Tabs+Wrap-2013.0523.tar.gz',
4f3a742d 1119 'FILES' => q[cpan/Text-Tabs],
e7b92d54
SH
1120 'EXCLUDED' => [
1121 qr/^lib\.old/,
1122 't/dnsparks.t', # see af6492bf9e
4f3a742d 1123 ],
e7b92d54
SH
1124 'MAP' => {
1125 '' => 'cpan/Text-Tabs/',
ab2a3ce2
SH
1126 'lib.modern/Text/Tabs.pm' => 'cpan/Text-Tabs/lib/Text/Tabs.pm',
1127 'lib.modern/Text/Wrap.pm' => 'cpan/Text-Tabs/lib/Text/Wrap.pm',
e7b92d54 1128 },
4f3a742d
DR
1129 },
1130
4e75700d
AC
1131 # Jerry Hedden does take patches that are applied to blead first, even
1132 # though that can be hard to discern from the Git history; so it's
1133 # correct for this (and Thread::Semaphore, threads, and threads::shared)
1134 # to be under dist/ rather than cpan/
4f3a742d 1135 'Thread::Queue' => {
e1578db3 1136 'DISTRIBUTION' => 'JDHEDDEN/Thread-Queue-3.13.tar.gz',
4f3a742d
DR
1137 'FILES' => q[dist/Thread-Queue],
1138 'EXCLUDED' => [
1fd4700e
JH
1139 qr{^examples/},
1140 qw( t/00_load.t
4f3a742d
DR
1141 t/99_pod.t
1142 t/test.pl
1143 ),
1144 ],
4f3a742d
DR
1145 },
1146
1147 'Thread::Semaphore' => {
51068c14 1148 'DISTRIBUTION' => 'JDHEDDEN/Thread-Semaphore-2.13.tar.gz',
4f3a742d
DR
1149 'FILES' => q[dist/Thread-Semaphore],
1150 'EXCLUDED' => [
1151 qw( examples/semaphore.pl
1152 t/00_load.t
1153 t/99_pod.t
1154 t/test.pl
1155 ),
1156 ],
4f3a742d
DR
1157 },
1158
1159 'threads' => {
40e3ceea 1160 'DISTRIBUTION' => 'JDHEDDEN/threads-2.21.tar.gz',
4f3a742d
DR
1161 'FILES' => q[dist/threads],
1162 'EXCLUDED' => [
1163 qr{^examples/},
1164 qw( t/pod.t
1165 t/test.pl
1166 threads.h
1167 ),
1168 ],
4f3a742d
DR
1169 },
1170
1171 'threads::shared' => {
fdfb42a0 1172 'DISTRIBUTION' => 'JDHEDDEN/threads-shared-1.59.tar.gz',
4f3a742d
DR
1173 'FILES' => q[dist/threads-shared],
1174 'EXCLUDED' => [
1175 qw( examples/class.pl
1176 shared.h
1177 t/pod.t
1178 t/test.pl
1179 ),
1180 ],
4f3a742d
DR
1181 },
1182
1183 'Tie::File' => {
678b7202 1184 'DISTRIBUTION' => 'TODDR/Tie-File-1.05.tar.gz',
c0504019 1185 'FILES' => q[dist/Tie-File],
4f3a742d
DR
1186 },
1187
4f3a742d 1188 'Tie::RefHash' => {
6fcc9782 1189 'DISTRIBUTION' => 'ETHER/Tie-RefHash-1.40.tar.gz',
4f3a742d 1190 'FILES' => q[cpan/Tie-RefHash],
e1b30ab2
SH
1191 'EXCLUDED' => [
1192 qr{^t/00-},
1193 qr{^xt/},
1194 ],
4f3a742d
DR
1195 },
1196
1197 'Time::HiRes' => {
371b09ed 1198 'DISTRIBUTION' => 'ATOOMIC/Time-HiRes-1.9764.tar.gz',
91ba54d4 1199 'FILES' => q[dist/Time-HiRes],
4f3a742d
DR
1200 },
1201
1202 'Time::Local' => {
34857856 1203 'DISTRIBUTION' => 'DROLSKY/Time-Local-1.30.tar.gz',
4f3a742d
DR
1204 'FILES' => q[cpan/Time-Local],
1205 'EXCLUDED' => [
cc890588 1206 qr{^xt/},
34857856
SH
1207 qw( CODE_OF_CONDUCT.md
1208 azure-pipelines.yml
d82c4df6 1209 perlcriticrc
cc890588
SH
1210 perltidyrc
1211 tidyall.ini
1212 t/00-report-prereqs.t
1213 t/00-report-prereqs.dd
1214 ),
4f3a742d 1215 ],
4f3a742d
DR
1216 },
1217
1218 'Time::Piece' => {
a5ebaea1 1219 'DISTRIBUTION' => 'ESAYM/Time-Piece-1.3401.tar.gz',
4f3a742d 1220 'FILES' => q[cpan/Time-Piece],
fd481c17 1221 'EXCLUDED' => [ qw[reverse_deps.txt] ],
4f3a742d
DR
1222 },
1223
1224 'Unicode::Collate' => {
0bb7e24a 1225 'DISTRIBUTION' => 'SADAHIRO/Unicode-Collate-1.29.tar.gz',
4f3a742d
DR
1226 'FILES' => q[cpan/Unicode-Collate],
1227 'EXCLUDED' => [
1228 qr{N$},
1229 qr{^data/},
1230 qr{^gendata/},
1231 qw( disableXS
1232 enableXS
1233 mklocale
1234 ),
1235 ],
4f3a742d
DR
1236 },
1237
1238 'Unicode::Normalize' => {
d339f061 1239 'DISTRIBUTION' => 'KHW/Unicode-Normalize-1.26.tar.gz',
3baae3fa 1240 'FILES' => q[dist/Unicode-Normalize],
1ef95abd
SH
1241 'EXCLUDED' => [
1242 qw( MANIFEST.N
1243 Normalize.pmN
1244 disableXS
1245 enableXS
1246 ),
1247 ],
4f3a742d
DR
1248 },
1249
4f3a742d 1250 'version' => {
f5919b58 1251 'DISTRIBUTION' => 'LEONT/version-0.9928.tar.gz',
4fa93b19 1252 'FILES' => q[cpan/version vutil.c vutil.h vxs.inc],
4f3a742d 1253 'EXCLUDED' => [
df3ba8e7 1254 qr{^vutil/lib/},
c60b4fa6 1255 'vutil/Makefile.PL',
df3ba8e7
FC
1256 'vutil/ppport.h',
1257 'vutil/vxs.xs',
ce9582af 1258 't/00impl-pp.t',
4f3a742d 1259 't/survey_locales',
d1e81356 1260 'vperl/vpp.pm',
4f3a742d 1261 ],
f81a37f2 1262
c872d591
SH
1263 # When adding the CPAN-distributed files for version.pm, it is necessary
1264 # to delete an entire block out of lib/version.pm, since that code is
1265 # only necessary with the CPAN release.
f81a37f2
SH
1266 'CUSTOMIZED' => [
1267 qw( lib/version.pm
fd8a724d 1268 vutil.c
f81a37f2
SH
1269 ),
1270 ],
1271
df3ba8e7 1272 'MAP' => {
4fa93b19 1273 'vutil/' => '',
df3ba8e7
FC
1274 '' => 'cpan/version/',
1275 },
4f3a742d
DR
1276 },
1277
4f3a742d 1278 'warnings' => {
099bebb1 1279 'FILES' => q[
4f3a742d 1280 lib/warnings
099bebb1
SH
1281 lib/warnings.{pm,t}
1282 regen/warnings.pl
4f3a742d 1283 t/lib/warnings
099bebb1 1284 ],
4f3a742d
DR
1285 },
1286
4f3a742d 1287 'Win32' => {
2b8fc250 1288 'DISTRIBUTION' => "JDB/Win32-0.54.tar.gz",
4f3a742d 1289 'FILES' => q[cpan/Win32],
4f3a742d
DR
1290 },
1291
1292 'Win32API::File' => {
df61f5a9 1293 'DISTRIBUTION' => 'CHORNY/Win32API-File-0.1203.tar.gz',
4f3a742d
DR
1294 'FILES' => q[cpan/Win32API-File],
1295 'EXCLUDED' => [
1296 qr{^ex/},
4f3a742d 1297 ],
6177f132
DIM
1298 # https://rt.cpan.org/Ticket/Display.html?id=127837
1299 'CUSTOMIZED' => [
1300 qw( File.pm
1301 File.xs
1302 ),
1303 ],
4f3a742d
DR
1304 },
1305
4f3a742d 1306 'XSLoader' => {
6f2c9cc3 1307 'DISTRIBUTION' => 'SAPER/XSLoader-0.24.tar.gz',
4f3a742d
DR
1308 'FILES' => q[dist/XSLoader],
1309 'EXCLUDED' => [
1310 qr{^eg/},
57f9caa0
SH
1311 qw( t/00-load.t
1312 t/01-api.t
1313 t/distchk.t
1314 t/pod.t
4f3a742d
DR
1315 t/podcover.t
1316 t/portfs.t
1317 ),
1318 'XSLoader.pm', # we use XSLoader_pm.PL
1319 ],
4f3a742d
DR
1320 },
1321
462ea751
DM
1322 # this pseudo-module represents all the files under ext/ and lib/
1323 # that aren't otherwise claimed. This means that the following two
1324 # commands will check that every file under ext/ and lib/ is
1325 # accounted for, and that there are no duplicates:
1326 #
1327 # perl Porting/Maintainers --checkmani lib ext
d8ada404 1328 # perl Porting/Maintainers --checkmani
462ea751 1329
4f3a742d 1330 '_PERLLIB' => {
2af3c4b9 1331 'FILES' => q[
79852350
AB
1332 ext/Amiga-ARexx/
1333 ext/Amiga-Exec/
09213599 1334 ext/B/
2af3c4b9
SH
1335 ext/Devel-Peek/
1336 ext/DynaLoader/
1337 ext/Errno/
7b4d95f7 1338 ext/ExtUtils-Miniperl/
2af3c4b9
SH
1339 ext/Fcntl/
1340 ext/File-DosGlob/
1341 ext/File-Find/
1342 ext/File-Glob/
1343 ext/FileCache/
1344 ext/GDBM_File/
1345 ext/Hash-Util-FieldHash/
1346 ext/Hash-Util/
1347 ext/I18N-Langinfo/
1348 ext/IPC-Open3/
1349 ext/NDBM_File/
1350 ext/ODBM_File/
1351 ext/Opcode/
1352 ext/POSIX/
1353 ext/PerlIO-encoding/
1354 ext/PerlIO-mmap/
1355 ext/PerlIO-scalar/
1356 ext/PerlIO-via/
1357 ext/Pod-Functions/
1358 ext/Pod-Html/
1359 ext/SDBM_File/
1360 ext/Sys-Hostname/
1361 ext/Tie-Hash-NamedCapture/
1362 ext/Tie-Memoize/
b3dcf775 1363 ext/VMS-DCLsym/
2af3c4b9 1364 ext/VMS-Filespec/
b3dcf775
SH
1365 ext/VMS-Stdio/
1366 ext/Win32CORE/
4f3a742d 1367 ext/XS-APItest/
2af3c4b9 1368 ext/XS-Typemap/
2af3c4b9
SH
1369 ext/attributes/
1370 ext/mro/
1371 ext/re/
1372 lib/AnyDBM_File.{pm,t}
1373 lib/Benchmark.{pm,t}
38eca645 1374 lib/B/Deparse{.pm,.t,-*.t}
f3574cc6 1375 lib/B/Op_private.pm
4f3a742d 1376 lib/CORE.pod
2af3c4b9 1377 lib/Class/Struct.{pm,t}
4f3a742d
DR
1378 lib/Config.t
1379 lib/Config/Extensions.{pm,t}
1380 lib/DB.{pm,t}
2af3c4b9
SH
1381 lib/DBM_Filter.pm
1382 lib/DBM_Filter/
1383 lib/DirHandle.{pm,t}
1384 lib/English.{pm,t}
4f3a742d
DR
1385 lib/ExtUtils/Embed.pm
1386 lib/ExtUtils/XSSymSet.pm
1387 lib/ExtUtils/t/Embed.t
1388 lib/ExtUtils/typemap
2af3c4b9
SH
1389 lib/File/Basename.{pm,t}
1390 lib/File/Compare.{pm,t}
1391 lib/File/Copy.{pm,t}
1392 lib/File/stat{.pm,.t,-7896.t}
1393 lib/FileHandle.{pm,t}
2af3c4b9 1394 lib/Getopt/Std.{pm,t}
cb198164 1395 lib/Internals.pod
4f3a742d 1396 lib/Internals.t
4b6af431 1397 lib/meta_notation.{pm,t}
4f3a742d
DR
1398 lib/Net/hostent.{pm,t}
1399 lib/Net/netent.{pm,t}
1400 lib/Net/protoent.{pm,t}
1401 lib/Net/servent.{pm,t}
2af3c4b9 1402 lib/PerlIO.pm
4f3a742d 1403 lib/Pod/t/Usage.t
4f3a742d
DR
1404 lib/SelectSaver.{pm,t}
1405 lib/Symbol.{pm,t}
1406 lib/Thread.{pm,t}
1407 lib/Tie/Array.pm
1408 lib/Tie/Array/
1409 lib/Tie/ExtraHash.t
1410 lib/Tie/Handle.pm
1411 lib/Tie/Handle/
2af3c4b9 1412 lib/Tie/Hash.{pm,t}
4f3a742d
DR
1413 lib/Tie/Scalar.{pm,t}
1414 lib/Tie/StdHandle.pm
1415 lib/Tie/SubstrHash.{pm,t}
1416 lib/Time/gmtime.{pm,t}
1417 lib/Time/localtime.{pm,t}
1418 lib/Time/tm.pm
1419 lib/UNIVERSAL.pm
1420 lib/Unicode/README
2af3c4b9 1421 lib/Unicode/UCD.{pm,t}
4f3a742d
DR
1422 lib/User/grent.{pm,t}
1423 lib/User/pwent.{pm,t}
2af3c4b9 1424 lib/_charnames.pm
4f3a742d
DR
1425 lib/blib.{pm,t}
1426 lib/bytes.{pm,t}
1427 lib/bytes_heavy.pl
1428 lib/charnames.{pm,t}
1429 lib/dbm_filter_util.pl
1430 lib/deprecate.pm
2af3c4b9 1431 lib/diagnostics.{pm,t}
4f3a742d
DR
1432 lib/dumpvar.{pl,t}
1433 lib/feature.{pm,t}
1434 lib/feature/
1435 lib/filetest.{pm,t}
1436 lib/h2ph.t
1437 lib/h2xs.t
1438 lib/integer.{pm,t}
1439 lib/less.{pm,t}
1440 lib/locale.{pm,t}
706055ce 1441 lib/locale_threads.t
4f3a742d
DR
1442 lib/open.{pm,t}
1443 lib/overload/numbers.pm
1444 lib/overloading.{pm,t}
2af3c4b9 1445 lib/overload{.pm,.t,64.t}
4f3a742d
DR
1446 lib/perl5db.{pl,t}
1447 lib/perl5db/
a3b4b767 1448 lib/perlbug.t
2af3c4b9 1449 lib/sigtrap.{pm,t}
4f3a742d
DR
1450 lib/sort.{pm,t}
1451 lib/strict.{pm,t}
1452 lib/subs.{pm,t}
1453 lib/unicore/
1454 lib/utf8.{pm,t}
4f3a742d
DR
1455 lib/vars{.pm,.t,_carp.t}
1456 lib/vmsish.{pm,t}
1457 ],
4f3a742d 1458 },
462ea751 1459);
b128a327 1460
97556ec3 1461# legacy CPAN flag
4f3a742d 1462for ( values %Modules ) {
97556ec3
GA
1463 $_->{CPAN} = !!$_->{DISTRIBUTION};
1464}
1465
099bebb1
SH
1466# legacy UPSTREAM flag
1467for ( keys %Modules ) {
1468 # Keep any existing UPSTREAM flag so that "overrides" can be applied
1469 next if exists $Modules{$_}{UPSTREAM};
1470
1471 if ($_ eq '_PERLLIB' or $Modules{$_}{FILES} =~ m{^\s*(?:dist|ext|lib)/}) {
1472 $Modules{$_}{UPSTREAM} = 'blead';
1473 }
1474 elsif ($Modules{$_}{FILES} =~ m{^\s*cpan/}) {
1475 $Modules{$_}{UPSTREAM} = 'cpan';
1476 }
1477 else {
1478 warn "Unexpected location of FILES for module $_: $Modules{$_}{FILES}";
1479 }
1480}
1481
d350de41 1482# legacy MAINTAINER field
099bebb1 1483for ( keys %Modules ) {
b3dcf775 1484 # Keep any existing MAINTAINER flag so that "overrides" can be applied
099bebb1
SH
1485 next if exists $Modules{$_}{MAINTAINER};
1486
1487 if ($Modules{$_}{UPSTREAM} eq 'blead') {
1488 $Modules{$_}{MAINTAINER} = 'P5P';
872818ae 1489 $Maintainers{P5P} = 'perl5-porters <perl5-porters@perl.org>';
d350de41 1490 }
099bebb1
SH
1491 elsif (exists $Modules{$_}{DISTRIBUTION}) {
1492 (my $pause_id = $Modules{$_}{DISTRIBUTION}) =~ s{/.*$}{};
1493 $Modules{$_}{MAINTAINER} = $pause_id;
d350de41
SH
1494 $Maintainers{$pause_id} = "<$pause_id\@cpan.org>";
1495 }
099bebb1
SH
1496 else {
1497 warn "No DISTRIBUTION for non-blead module $_";
1498 }
d350de41
SH
1499}
1500
b128a327 15011;