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