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