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