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