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