This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Ra ra Rasputin lover of the Russian Queen
[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
88# actually deprecated. Such modules should use deprecated.pm to
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
4f3a742d 175 'B::Debug' => {
ffdff4a1 176 'DISTRIBUTION' => 'RURBAN/B-Debug-1.24.tar.gz',
4f3a742d
DR
177 'FILES' => q[cpan/B-Debug],
178 'EXCLUDED' => ['t/pod.t'],
4f3a742d
DR
179 },
180
4f3a742d 181 'base' => {
4c13dc7e 182 'DISTRIBUTION' => 'RJBS/base-2.23.tar.gz',
4f3a742d 183 'FILES' => q[dist/base],
4f3a742d
DR
184 },
185
4f3a742d 186 'bignum' => {
d96523cf 187 'DISTRIBUTION' => 'PJACKLAM/bignum-0.47.tar.gz',
c287fe32 188 'FILES' => q[cpan/bignum],
4f3a742d 189 'EXCLUDED' => [
91f07087 190 qr{^t/author-},
c287fe32
SH
191 qw( t/00sig.t
192 t/01load.t
193 t/02pod.t
194 t/03podcov.t
4f3a742d
DR
195 ),
196 ],
4f3a742d
DR
197 },
198
199 'Carp' => {
ba705463 200 'DISTRIBUTION' => 'RJBS/Carp-1.38.tar.gz',
4f3a742d 201 'FILES' => q[dist/Carp],
4f3a742d
DR
202 },
203
4f3a742d 204 'Compress::Raw::Bzip2' => {
328668c7 205 'DISTRIBUTION' => 'PMQS/Compress-Raw-Bzip2-2.074.tar.gz',
4f3a742d
DR
206 'FILES' => q[cpan/Compress-Raw-Bzip2],
207 'EXCLUDED' => [
208 qr{^t/Test/},
65b62fea 209 'bzip2-src/bzip2-const.patch',
4f3a742d 210 'bzip2-src/bzip2-cpp.patch',
65b62fea 211 'bzip2-src/bzip2-unsigned.patch',
4f3a742d 212 ],
4f3a742d
DR
213 },
214
215 'Compress::Raw::Zlib' => {
70a3f1a0 216 'DISTRIBUTION' => 'PMQS/Compress-Raw-Zlib-2.074.tar.gz',
4f3a742d
DR
217
218 'FILES' => q[cpan/Compress-Raw-Zlib],
219 'EXCLUDED' => [
84c82da4 220 qr{^examples/},
4f3a742d
DR
221 qr{^t/Test/},
222 qw( t/000prereq.t
223 t/99pod.t
224 ),
225 ],
4f3a742d
DR
226 },
227
4b07058c 228 'Config::Perl::V' => {
834069b8 229 'DISTRIBUTION' => 'HMBRAND/Config-Perl-V-0.27.tgz',
4b07058c 230 'FILES' => q[cpan/Config-Perl-V],
b4ade012
MB
231 'EXCLUDED' => [qw(
232 examples/show-v.pl
b4ade012 233 )],
4b07058c
RS
234 },
235
4f3a742d 236 'constant' => {
8b1ae794 237 'DISTRIBUTION' => 'RJBS/constant-1.33.tar.gz',
4f3a742d
DR
238 'FILES' => q[dist/constant],
239 'EXCLUDED' => [
240 qw( t/00-load.t
241 t/more-tests.t
242 t/pod-coverage.t
243 t/pod.t
244 eg/synopsis.pl
245 ),
246 ],
4f3a742d
DR
247 },
248
249 'CPAN' => {
755cc9a5 250 'DISTRIBUTION' => 'ANDK/CPAN-2.18-TRIAL.tar.gz',
4f3a742d
DR
251 'FILES' => q[cpan/CPAN],
252 'EXCLUDED' => [
253 qr{^distroprefs/},
254 qr{^inc/Test/},
45a13884
SH
255 qr{^t/CPAN/},
256 qr{^t/data/},
79116533 257 qr{^t/97-},
4f3a742d 258 qw( lib/CPAN/Admin.pm
6156383d 259 scripts/cpan-mirrors
bfae5bde 260 PAUSE2015.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' => {
d8cc0e43 323 'DISTRIBUTION' => 'SMUELLER/Data-Dumper-2.161.tar.gz',
4f3a742d 324 'FILES' => q[dist/Data-Dumper],
4f3a742d
DR
325 },
326
327 'DB_File' => {
74f485aa 328 'DISTRIBUTION' => 'PMQS/DB_File-1.840.tar.gz',
4f3a742d
DR
329 'FILES' => q[cpan/DB_File],
330 'EXCLUDED' => [
331 qr{^patches/},
332 qw( t/pod.t
333 fallback.h
334 fallback.xs
335 ),
336 ],
4f3a742d
DR
337 },
338
4f3a742d 339 'Devel::PPPort' => {
874389ae 340 'DISTRIBUTION' => 'WOLFSAGE/Devel-PPPort-3.36.tar.gz',
099bebb1
SH
341 # RJBS has asked MHX to have UPSTREAM be 'blead'
342 # (i.e. move this from cpan/ to dist/)
4f3a742d 343 'FILES' => q[cpan/Devel-PPPort],
84c82da4
SH
344 'EXCLUDED' => [
345 'PPPort.pm', # we use PPPort_pm.PL instead
84c82da4 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'],
4f3a742d
DR
369 },
370
371 'Digest::SHA' => {
e05a9d74 372 'DISTRIBUTION' => 'MSHELOR/Digest-SHA-5.96.tar.gz',
4f3a742d
DR
373 'FILES' => q[cpan/Digest-SHA],
374 'EXCLUDED' => [
375 qw( t/pod.t
376 t/podcover.t
377 examples/dups
378 ),
379 ],
4f3a742d
DR
380 },
381
4f3a742d 382 'Dumpvalue' => {
f6e46c4d 383 'DISTRIBUTION' => 'FLORA/Dumpvalue-1.17.tar.gz',
4f3a742d
DR
384 'FILES' => q[dist/Dumpvalue],
385 'EXCLUDED' => [qr{^t/release-.*\.t}],
4f3a742d
DR
386 },
387
4f3a742d 388 'Encode' => {
15f5e486 389 'DISTRIBUTION' => 'DANKOGAI/Encode-2.88.tar.gz',
4f3a742d 390 'FILES' => q[cpan/Encode],
15f5e486 391 'CUSTOMIZED' => [ qw(Unicode/Unicode.pm) ],
4f3a742d
DR
392 },
393
394 'encoding::warnings' => {
4f3a742d 395 'DISTRIBUTION' => 'AUDREYT/encoding-warnings-0.11.tar.gz',
e1c786ba 396 'FILES' => q[dist/encoding-warnings],
4f3a742d
DR
397 'EXCLUDED' => [
398 qr{^inc/Module/},
94c85d8e 399 qw(t/0-signature.t),
4f3a742d 400 ],
4f3a742d
DR
401 },
402
4f3a742d 403 'Env' => {
126fc07f 404 'DISTRIBUTION' => 'FLORA/Env-1.04.tar.gz',
4f3a742d
DR
405 'FILES' => q[dist/Env],
406 'EXCLUDED' => [qr{^t/release-.*\.t}],
4f3a742d
DR
407 },
408
de84ff2b 409 'experimental' => {
4fdcb09b 410 'DISTRIBUTION' => 'LEONT/experimental-0.016.tar.gz',
de84ff2b 411 'FILES' => q[cpan/experimental],
4fdcb09b 412 'EXCLUDED' => [qr{^xt/}],
de84ff2b
RS
413 },
414
4f3a742d 415 'Exporter' => {
b4d1bf31 416 'DISTRIBUTION' => 'TODDR/Exporter-5.72.tar.gz',
3110a055 417 'FILES' => q[dist/Exporter],
4f3a742d
DR
418 'EXCLUDED' => [
419 qw( t/pod.t
420 t/use.t
421 ),
422 ],
4f3a742d
DR
423 },
424
425 'ExtUtils::CBuilder' => {
83dcc064 426 'DISTRIBUTION' => 'AMBS/ExtUtils-CBuilder-0.280224.tar.gz',
4f3a742d 427 'FILES' => q[dist/ExtUtils-CBuilder],
a0e78e9f
SH
428 'EXCLUDED' => [
429 qw(README.mkdn),
430 qr{^xt},
431 ],
4f3a742d
DR
432 },
433
4f3a742d 434 'ExtUtils::Constant' => {
4f3a742d 435
c9849c52 436 'DISTRIBUTION' => 'NWCLARK/ExtUtils-Constant-0.23.tar.gz',
4f3a742d
DR
437 'FILES' => q[cpan/ExtUtils-Constant],
438 'EXCLUDED' => [
439 qw( lib/ExtUtils/Constant/Aaargh56Hash.pm
440 examples/perl_keyword.pl
441 examples/perl_regcomp_posix_keyword.pl
442 ),
34c00cdf 443 ],
c9849c52
DM
444 # cc37ebcee3 to fix VMS failure
445 'CUSTOMIZED' => [ qw(t/Constant.t) ],
4f3a742d
DR
446 },
447
448 'ExtUtils::Install' => {
9de35bb2 449 'DISTRIBUTION' => 'BINGOS/ExtUtils-Install-2.14.tar.gz',
d393d7e5 450 'FILES' => q[cpan/ExtUtils-Install],
4f3a742d
DR
451 'EXCLUDED' => [
452 qw( t/lib/Test/Builder.pm
453 t/lib/Test/Builder/Module.pm
454 t/lib/Test/More.pm
455 t/lib/Test/Simple.pm
456 t/pod-coverage.t
457 t/pod.t
458 ),
459 ],
4f3a742d
DR
460 },
461
462 'ExtUtils::MakeMaker' => {
9287cc84 463 'DISTRIBUTION' => 'BINGOS/ExtUtils-MakeMaker-7.30.tar.gz',
4f3a742d
DR
464 'FILES' => q[cpan/ExtUtils-MakeMaker],
465 'EXCLUDED' => [
466 qr{^t/lib/Test/},
467 qr{^(bundled|my)/},
468 qr{^t/Liblist_Kid.t},
469 qr{^t/liblist/},
78fd4358 470 qr{^\.perlcriticrc},
84c82da4
SH
471 'PATCHING',
472 'README.packaging',
ce9582af 473 'lib/ExtUtils/MakeMaker/version/vpp.pm',
4f3a742d 474 ],
4f3a742d
DR
475 },
476
477 'ExtUtils::Manifest' => {
f660499c 478 'DISTRIBUTION' => 'ETHER/ExtUtils-Manifest-1.70.tar.gz',
854a00d8 479 'FILES' => q[cpan/ExtUtils-Manifest],
4d25f022
SH
480 'EXCLUDED' => [
481 qr(^t/00-report-prereqs),
482 qr(^xt/)
483 ],
4f3a742d
DR
484 },
485
486 'ExtUtils::ParseXS' => {
bdc4e4b2 487 'DISTRIBUTION' => 'SMUELLER/ExtUtils-ParseXS-3.30.tar.gz',
4f3a742d 488 'FILES' => q[dist/ExtUtils-ParseXS],
4f3a742d
DR
489 },
490
4f3a742d 491 'File::Fetch' => {
ac1690b9 492 'DISTRIBUTION' => 'BINGOS/File-Fetch-0.52.tar.gz',
4f3a742d 493 'FILES' => q[cpan/File-Fetch],
4f3a742d
DR
494 },
495
4f3a742d 496 'File::Path' => {
cc744934 497 'DISTRIBUTION' => 'JKEENAN/File-Path-2.14.tar.gz',
4f3a742d
DR
498 'FILES' => q[cpan/File-Path],
499 'EXCLUDED' => [
bfcc9519
SH
500 qw(t/Path-Class.t),
501 qr{^xt/},
4f3a742d 502 ],
4f3a742d
DR
503 },
504
4f3a742d 505 'File::Temp' => {
3d5f905f 506 'DISTRIBUTION' => 'DAGOLDEN/File-Temp-0.2304.tar.gz',
4f3a742d
DR
507 'FILES' => q[cpan/File-Temp],
508 'EXCLUDED' => [
509 qw( misc/benchmark.pl
510 misc/results.txt
511 ),
814e893f
CBW
512 qw[t/00-report-prereqs.t],
513 qr{^xt},
4f3a742d 514 ],
4f3a742d
DR
515 },
516
4f3a742d 517 'Filter::Simple' => {
37ffe967 518 'DISTRIBUTION' => 'SMUELLER/Filter-Simple-0.91.tar.gz',
4f3a742d
DR
519 'FILES' => q[dist/Filter-Simple],
520 'EXCLUDED' => [
4f3a742d
DR
521 qr{^demo/}
522 ],
4f3a742d
DR
523 },
524
525 'Filter::Util::Call' => {
0168e427 526 'DISTRIBUTION' => 'RURBAN/Filter-1.57.tar.gz',
4f3a742d
DR
527 'FILES' => q[cpan/Filter-Util-Call
528 pod/perlfilter.pod
529 ],
530 'EXCLUDED' => [
531 qr{^decrypt/},
532 qr{^examples/},
533 qr{^Exec/},
534 qr{^lib/Filter/},
535 qr{^tee/},
536 qw( Call/Makefile.PL
537 Call/ppport.h
538 Call/typemap
539 mytest
540 t/cpp.t
541 t/decrypt.t
542 t/exec.t
543 t/order.t
4f3a742d
DR
544 t/sh.t
545 t/tee.t
533d93cc
SH
546 t/z_kwalitee.t
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' => {
554 'Call/' => 'cpan/Filter-Util-Call/',
555 'filter-util.pl' => 'cpan/Filter-Util-Call/filter-util.pl',
556 'perlfilter.pod' => 'pod/perlfilter.pod',
557 '' => 'cpan/Filter-Util-Call/',
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' => {
afac733b 679 'DISTRIBUTION' => 'SBECK/Locale-Codes-3.52.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' => {
c9668bc1 715 'DISTRIBUTION' => 'PJACKLAM/Math-BigInt-1.999806.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' => {
f4d243dc 729 'DISTRIBUTION' => 'PJACKLAM/Math-BigInt-FastCalc-0.5005.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' => {
15f1cdaa 753 'DISTRIBUTION' => 'PJACKLAM/Math-BigRat-0.2611.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' => {
1810caf1 797 'DISTRIBUTION' => 'BINGOS/Module-CoreList-5.20170621.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' => [
7bfdd826 837 qw( t/000_load.t t/001_new.t t/010_pingecho.t t/500_ping_icmp.t),
01b515d1 838 ],
773d126d 839
4f3a742d
DR
840 },
841
842 'NEXT' => {
c8321e06 843 'DISTRIBUTION' => 'NEILB/NEXT-0.67.tar.gz',
4f3a742d
DR
844 'FILES' => q[cpan/NEXT],
845 'EXCLUDED' => [qr{^demo/}],
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' => {
39250dd4 854 'DISTRIBUTION' => 'CORION/parent-0.236.tar.gz',
4f3a742d 855 'FILES' => q[cpan/parent],
39250dd4
SH
856 'EXCLUDED' => [
857 qr{^xt}
858 ],
4f3a742d
DR
859 },
860
4f3a742d 861 'PathTools' => {
0224bf41 862 'DISTRIBUTION' => 'RJBS/PathTools-3.62.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' => {
a2c3b2fe 877 'DISTRIBUTION' => 'LLAP/perlfaq-5.021011.tar.gz',
97b1d6e6
SH
878 'FILES' => q[cpan/perlfaq],
879 'EXCLUDED' => [
4d25f022 880 qw( inc/CreateQuestionList.pm
e3ef4406 881 inc/perlfaq.tt
4d25f022
SH
882 t/00-compile.t),
883 qr{^xt/},
97b1d6e6 884 ],
97b1d6e6
SH
885 },
886
4f3a742d 887 'PerlIO::via::QuotedPrint' => {
96623e31 888 'DISTRIBUTION' => 'SHAY/PerlIO-via-QuotedPrint-0.08.tar.gz',
4f3a742d 889 'FILES' => q[cpan/PerlIO-via-QuotedPrint],
4f3a742d
DR
890 },
891
0c501878 892 'Pod::Checker' => {
0de6c762 893 'DISTRIBUTION' => 'MAREKR/Pod-Checker-1.73.tar.gz',
0c501878 894 'FILES' => q[cpan/Pod-Checker],
2beba2a9
SH
895 'CUSTOMIZED' => [ qw[
896 t/pod/contains_bad_pod.xr
897 t/pod/selfcheck.t
898 t/pod/testcmp.pl
899 t/pod/testpchk.pl
900 ] ],
0c501878
CBW
901 },
902
4f3a742d 903 'Pod::Escapes' => {
f347d3e3 904 'DISTRIBUTION' => 'NEILB/Pod-Escapes-1.07.tar.gz',
4f3a742d 905 'FILES' => q[cpan/Pod-Escapes],
4f3a742d
DR
906 },
907
4f3a742d 908 'Pod::Parser' => {
534577b2 909 'DISTRIBUTION' => 'MAREKR/Pod-Parser-1.63.tar.gz',
4f3a742d 910 'FILES' => q[cpan/Pod-Parser],
4f3a742d
DR
911 },
912
913 'Pod::Perldoc' => {
6aff4bf3 914 'DISTRIBUTION' => 'MALLEN/Pod-Perldoc-3.28.tar.gz',
00e518b3 915 'FILES' => q[cpan/Pod-Perldoc],
4f3a742d 916
fa884b76
DM
917 # Note that we use the CPAN-provided Makefile.PL, since it
918 # contains special handling of the installation of perldoc.pod
919
5fddd31d
SH
920 'EXCLUDED' => [
921 # In blead, the perldoc executable is generated by perldoc.PL
922 # instead
923 # XXX We can and should fix this, but clean up the DRY-failure in
924 # utils first
925 'perldoc',
926
927 # https://rt.cpan.org/Ticket/Display.html?id=116827
928 't/02_module_pod_output.t'
929 ],
4f3a742d
DR
930 },
931
932 'Pod::Simple' => {
6c309775 933 'DISTRIBUTION' => 'MARCGREEN/Pod-Simple-3.35.tar.gz',
4f3a742d 934 'FILES' => q[cpan/Pod-Simple],
4f3a742d
DR
935 },
936
0c501878 937 'Pod::Usage' => {
3735683b 938 'DISTRIBUTION' => 'MAREKR/Pod-Usage-1.69.tar.gz',
0c501878 939 'FILES' => q[cpan/Pod-Usage],
0c501878
CBW
940 },
941
4f3a742d 942 'podlators' => {
a7ea90b1 943 'DISTRIBUTION' => 'RRA/podlators-4.09.tar.gz',
4f3a742d 944 'FILES' => q[cpan/podlators pod/perlpodstyle.pod],
a7ea90b1
SH
945 'EXCLUDED' => [
946 qr{^docs/metadata/},
947 ],
4f3a742d 948
4f3a742d
DR
949 'MAP' => {
950 '' => 'cpan/podlators/',
4f3a742d 951 # this file lives outside the cpan/ directory
1efe9157 952 'pod/perlpodstyle.pod' => 'pod/perlpodstyle.pod',
4f3a742d 953 },
4f3a742d
DR
954 },
955
4f3a742d 956 'Safe' => {
e739c653 957 'DISTRIBUTION' => 'RGARCIA/Safe-2.35.tar.gz',
4f3a742d 958 'FILES' => q[dist/Safe],
4f3a742d
DR
959 },
960
961 'Scalar-List-Utils' => {
a0b61ef9 962 'DISTRIBUTION' => 'PEVANS/Scalar-List-Utils-1.46.tar.gz',
869a9612 963 'FILES' => q[cpan/Scalar-List-Utils],
1476bbfa
JH
964 'CUSTOMIZED' => [
965 'lib/List/Util.pm', # CPAN RT 118470
966 'lib/List/Util/XS.pm', # CPAN RT 118470
967 'lib/Scalar/Util.pm', # CPAN RT 118470
968 'lib/Sub/Util.pm', # CPAN RT 118470
969 't/lln.t', # CPAN RT 118470
970 't/uniq.t', # CPAN RT 118470
a76614de 971 't/tainted.t', # CPAN RT 119169
1476bbfa 972 ],
4f3a742d
DR
973 },
974
4f3a742d 975 'Search::Dict' => {
0b0a7092 976 'DISTRIBUTION' => 'DAGOLDEN/Search-Dict-1.07.tar.gz',
4f3a742d 977 'FILES' => q[dist/Search-Dict],
4f3a742d
DR
978 },
979
980 'SelfLoader' => {
c3958279 981 'DISTRIBUTION' => 'SMUELLER/SelfLoader-1.20.tar.gz',
4f3a742d
DR
982 'FILES' => q[dist/SelfLoader],
983 'EXCLUDED' => ['t/00pod.t'],
4f3a742d
DR
984 },
985
4f3a742d 986 'Socket' => {
a705fd33 987 'DISTRIBUTION' => 'PEVANS/Socket-2.020.tar.gz',
4f3a742d 988 'FILES' => q[cpan/Socket],
06a9195c
SH
989
990 # https://rt.cpan.org/Ticket/Display.html?id=106797
991 # https://rt.cpan.org/Ticket/Display.html?id=107058
98e2bb74 992 # https://rt.cpan.org/Ticket/Display.html?id=111707
06a9195c 993 'CUSTOMIZED' => [ qw[ Socket.pm Socket.xs ] ],
4f3a742d
DR
994 },
995
996 'Storable' => {
5f4b5e0f 997 'DISTRIBUTION' => 'AMS/Storable-2.51.tar.gz',
4f3a742d 998 'FILES' => q[dist/Storable],
76250107
SH
999 'EXCLUDED' => [
1000 qr{^t/compat/},
1001 ],
4f3a742d
DR
1002 },
1003
4f3a742d 1004 'Sys::Syslog' => {
9f0af693 1005 'DISTRIBUTION' => 'SAPER/Sys-Syslog-0.35.tar.gz',
4f3a742d
DR
1006 'FILES' => q[cpan/Sys-Syslog],
1007 'EXCLUDED' => [
1008 qr{^eg/},
84c82da4
SH
1009 qw( README.win32
1010 t/data-validation.t
4f3a742d
DR
1011 t/distchk.t
1012 t/pod.t
1013 t/podcover.t
1014 t/podspell.t
1015 t/portfs.t
1016 win32/PerlLog.RES
4f3a742d
DR
1017 ),
1018 ],
4f3a742d
DR
1019 },
1020
1021 'Term::ANSIColor' => {
93d7ac13 1022 'DISTRIBUTION' => 'RRA/Term-ANSIColor-4.06.tar.gz',
4f3a742d
DR
1023 'FILES' => q[cpan/Term-ANSIColor],
1024 'EXCLUDED' => [
93d7ac13 1025 qr{^docs/},
92f80b37
CBW
1026 qr{^examples/},
1027 qr{^t/data/},
5e64492f
CBW
1028 qr{^t/docs/},
1029 qr{^t/style/},
1030 qw( t/module/aliases-env.t ),
4f3a742d 1031 ],
4f3a742d
DR
1032 },
1033
1034 'Term::Cap' => {
23a75734 1035 'DISTRIBUTION' => 'JSTOWE/Term-Cap-1.17.tar.gz',
4f3a742d 1036 'FILES' => q[cpan/Term-Cap],
4f3a742d
DR
1037 },
1038
1039 'Term::Complete' => {
4f3a742d
DR
1040 'DISTRIBUTION' => 'FLORA/Term-Complete-1.402.tar.gz',
1041 'FILES' => q[dist/Term-Complete],
1042 'EXCLUDED' => [qr{^t/release-.*\.t}],
4f3a742d
DR
1043 },
1044
1045 'Term::ReadLine' => {
75ad3638 1046 'DISTRIBUTION' => 'FLORA/Term-ReadLine-1.14.tar.gz',
4f3a742d
DR
1047 'FILES' => q[dist/Term-ReadLine],
1048 'EXCLUDED' => [qr{^t/release-.*\.t}],
4f3a742d
DR
1049 },
1050
4f3a742d 1051 'Test' => {
1c22e001 1052 'DISTRIBUTION' => 'JESSE/Test-1.26.tar.gz',
48458f69 1053 'FILES' => q[dist/Test],
4f3a742d
DR
1054 },
1055
1056 'Test::Harness' => {
273a0bac 1057 'DISTRIBUTION' => 'LEONT/Test-Harness-3.39.tar.gz',
4f3a742d
DR
1058 'FILES' => q[cpan/Test-Harness],
1059 'EXCLUDED' => [
1060 qr{^examples/},
4f3a742d
DR
1061 qr{^xt/},
1062 qw( Changes-2.64
8db65552 1063 MANIFEST.CUMMULATIVE
4f3a742d
DR
1064 HACKING.pod
1065 perlcriticrc
8db65552 1066 t/000-load.t
4f3a742d
DR
1067 t/lib/if.pm
1068 ),
1069 ],
4f3a742d
DR
1070 },
1071
1072 'Test::Simple' => {
a5ab2255 1073 'DISTRIBUTION' => 'EXODIST/Test-Simple-1.302073.tar.gz',
4f3a742d
DR
1074 'FILES' => q[cpan/Test-Simple],
1075 'EXCLUDED' => [
0b4ffce6
SH
1076 qr{^examples/},
1077 qr{^xt/},
022600ce
SH
1078 qw( appveyor.yml
1079 perltidyrc
80a7dd19 1080 t/00compile.t
c6a6e1c8
CG
1081 t/00-report.t
1082 t/zzz-check-breaks.t
4f3a742d
DR
1083 ),
1084 ],
4767d893
CB
1085 'CUSTOMIZED' => [
1086 #
1087 qw( t/Test2/modules/IPC/Driver/Files.t )
1088 ],
f266b743 1089 },
4f3a742d
DR
1090
1091 'Text::Abbrev' => {
5e96eee9 1092 'DISTRIBUTION' => 'FLORA/Text-Abbrev-1.02.tar.gz',
4f3a742d
DR
1093 'FILES' => q[dist/Text-Abbrev],
1094 'EXCLUDED' => [qr{^t/release-.*\.t}],
4f3a742d
DR
1095 },
1096
1097 'Text::Balanced' => {
03a97c81 1098 'DISTRIBUTION' => 'SHAY/Text-Balanced-2.03.tar.gz',
4f3a742d
DR
1099 'FILES' => q[cpan/Text-Balanced],
1100 'EXCLUDED' => [
1101 qw( t/97_meta.t
1102 t/98_pod.t
1103 t/99_pmv.t
1104 ),
1105 ],
4f3a742d
DR
1106 },
1107
1108 'Text::ParseWords' => {
a790e348 1109 'DISTRIBUTION' => 'CHORNY/Text-ParseWords-3.30.tar.gz',
4f3a742d 1110 'FILES' => q[cpan/Text-ParseWords],
4f3a742d
DR
1111 },
1112
4f3a742d 1113 'Text-Tabs+Wrap' => {
83aea42c 1114 'DISTRIBUTION' => 'MUIR/modules/Text-Tabs+Wrap-2013.0523.tar.gz',
4f3a742d 1115 'FILES' => q[cpan/Text-Tabs],
e7b92d54
SH
1116 'EXCLUDED' => [
1117 qr/^lib\.old/,
1118 't/dnsparks.t', # see af6492bf9e
4f3a742d 1119 ],
e7b92d54
SH
1120 'MAP' => {
1121 '' => 'cpan/Text-Tabs/',
ab2a3ce2
SH
1122 'lib.modern/Text/Tabs.pm' => 'cpan/Text-Tabs/lib/Text/Tabs.pm',
1123 'lib.modern/Text/Wrap.pm' => 'cpan/Text-Tabs/lib/Text/Wrap.pm',
e7b92d54 1124 },
4f3a742d
DR
1125 },
1126
4e75700d
AC
1127 # Jerry Hedden does take patches that are applied to blead first, even
1128 # though that can be hard to discern from the Git history; so it's
1129 # correct for this (and Thread::Semaphore, threads, and threads::shared)
1130 # to be under dist/ rather than cpan/
4f3a742d 1131 'Thread::Queue' => {
b4d001fd 1132 'DISTRIBUTION' => 'JDHEDDEN/Thread-Queue-3.12.tar.gz',
4f3a742d
DR
1133 'FILES' => q[dist/Thread-Queue],
1134 'EXCLUDED' => [
1fd4700e
JH
1135 qr{^examples/},
1136 qw( t/00_load.t
4f3a742d
DR
1137 t/99_pod.t
1138 t/test.pl
1139 ),
1140 ],
4f3a742d
DR
1141 },
1142
1143 'Thread::Semaphore' => {
51068c14 1144 'DISTRIBUTION' => 'JDHEDDEN/Thread-Semaphore-2.13.tar.gz',
4f3a742d
DR
1145 'FILES' => q[dist/Thread-Semaphore],
1146 'EXCLUDED' => [
1147 qw( examples/semaphore.pl
1148 t/00_load.t
1149 t/99_pod.t
1150 t/test.pl
1151 ),
1152 ],
4f3a742d
DR
1153 },
1154
1155 'threads' => {
99fcc835 1156 'DISTRIBUTION' => 'JDHEDDEN/threads-2.16.tar.gz',
4f3a742d
DR
1157 'FILES' => q[dist/threads],
1158 'EXCLUDED' => [
1159 qr{^examples/},
1160 qw( t/pod.t
1161 t/test.pl
1162 threads.h
1163 ),
1164 ],
4f3a742d
DR
1165 },
1166
1167 'threads::shared' => {
7ce27a6f 1168 'DISTRIBUTION' => 'JDHEDDEN/threads-shared-1.57.tar.gz',
4f3a742d
DR
1169 'FILES' => q[dist/threads-shared],
1170 'EXCLUDED' => [
1171 qw( examples/class.pl
1172 shared.h
1173 t/pod.t
1174 t/test.pl
1175 ),
1176 ],
4f3a742d
DR
1177 },
1178
1179 'Tie::File' => {
4ac9c666 1180 'DISTRIBUTION' => 'TODDR/Tie-File-1.00.tar.gz',
c0504019 1181 'FILES' => q[dist/Tie-File],
4f3a742d
DR
1182 },
1183
4f3a742d 1184 'Tie::RefHash' => {
4f3a742d
DR
1185 'DISTRIBUTION' => 'FLORA/Tie-RefHash-1.39.tar.gz',
1186 'FILES' => q[cpan/Tie-RefHash],
4f3a742d
DR
1187 },
1188
1189 'Time::HiRes' => {
12389a22 1190 'DISTRIBUTION' => 'JHI/Time-HiRes-1.9741.tar.gz',
91ba54d4 1191 'FILES' => q[dist/Time-HiRes],
4f3a742d
DR
1192 },
1193
1194 'Time::Local' => {
dad75267 1195 'DISTRIBUTION' => 'DROLSKY/Time-Local-1.25.tar.gz',
4f3a742d
DR
1196 'FILES' => q[cpan/Time-Local],
1197 'EXCLUDED' => [
cc890588
SH
1198 qr{^xt/},
1199 qw( perlcriticrc
1200 perltidyrc
1201 tidyall.ini
1202 t/00-report-prereqs.t
1203 t/00-report-prereqs.dd
1204 ),
4f3a742d 1205 ],
4f3a742d
DR
1206 },
1207
1208 'Time::Piece' => {
5563b392 1209 'DISTRIBUTION' => 'ESAYM/Time-Piece-1.31.tar.gz',
4f3a742d 1210 'FILES' => q[cpan/Time-Piece],
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' => {
38660758 1240 'DISTRIBUTION' => 'JPEACOCK/version-0.9917.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
f81a37f2
SH
1257 ),
1258 ],
1259
df3ba8e7 1260 'MAP' => {
4fa93b19 1261 'vutil/' => '',
df3ba8e7
FC
1262 '' => 'cpan/version/',
1263 },
4f3a742d
DR
1264 },
1265
4f3a742d 1266 'warnings' => {
099bebb1 1267 'FILES' => q[
4f3a742d 1268 lib/warnings
099bebb1
SH
1269 lib/warnings.{pm,t}
1270 regen/warnings.pl
4f3a742d 1271 t/lib/warnings
099bebb1 1272 ],
4f3a742d
DR
1273 },
1274
4f3a742d 1275 'Win32' => {
083231ea 1276 'DISTRIBUTION' => "JDB/Win32-0.52.tar.gz",
4f3a742d 1277 'FILES' => q[cpan/Win32],
4f3a742d
DR
1278 },
1279
1280 'Win32API::File' => {
df61f5a9 1281 'DISTRIBUTION' => 'CHORNY/Win32API-File-0.1203.tar.gz',
4f3a742d
DR
1282 'FILES' => q[cpan/Win32API-File],
1283 'EXCLUDED' => [
1284 qr{^ex/},
4f3a742d 1285 ],
4f3a742d
DR
1286 },
1287
4f3a742d 1288 'XSLoader' => {
6f2c9cc3 1289 'DISTRIBUTION' => 'SAPER/XSLoader-0.24.tar.gz',
4f3a742d
DR
1290 'FILES' => q[dist/XSLoader],
1291 'EXCLUDED' => [
1292 qr{^eg/},
57f9caa0
SH
1293 qw( t/00-load.t
1294 t/01-api.t
1295 t/distchk.t
1296 t/pod.t
4f3a742d
DR
1297 t/podcover.t
1298 t/portfs.t
1299 ),
1300 'XSLoader.pm', # we use XSLoader_pm.PL
1301 ],
4f3a742d
DR
1302 },
1303
462ea751
DM
1304 # this pseudo-module represents all the files under ext/ and lib/
1305 # that aren't otherwise claimed. This means that the following two
1306 # commands will check that every file under ext/ and lib/ is
1307 # accounted for, and that there are no duplicates:
1308 #
1309 # perl Porting/Maintainers --checkmani lib ext
d8ada404 1310 # perl Porting/Maintainers --checkmani
462ea751 1311
4f3a742d 1312 '_PERLLIB' => {
2af3c4b9 1313 'FILES' => q[
79852350
AB
1314 ext/Amiga-ARexx/
1315 ext/Amiga-Exec/
09213599 1316 ext/B/
2af3c4b9
SH
1317 ext/Devel-Peek/
1318 ext/DynaLoader/
1319 ext/Errno/
7b4d95f7 1320 ext/ExtUtils-Miniperl/
2af3c4b9
SH
1321 ext/Fcntl/
1322 ext/File-DosGlob/
1323 ext/File-Find/
1324 ext/File-Glob/
1325 ext/FileCache/
1326 ext/GDBM_File/
1327 ext/Hash-Util-FieldHash/
1328 ext/Hash-Util/
1329 ext/I18N-Langinfo/
1330 ext/IPC-Open3/
1331 ext/NDBM_File/
1332 ext/ODBM_File/
1333 ext/Opcode/
1334 ext/POSIX/
1335 ext/PerlIO-encoding/
1336 ext/PerlIO-mmap/
1337 ext/PerlIO-scalar/
1338 ext/PerlIO-via/
1339 ext/Pod-Functions/
1340 ext/Pod-Html/
1341 ext/SDBM_File/
1342 ext/Sys-Hostname/
1343 ext/Tie-Hash-NamedCapture/
1344 ext/Tie-Memoize/
b3dcf775 1345 ext/VMS-DCLsym/
2af3c4b9 1346 ext/VMS-Filespec/
b3dcf775
SH
1347 ext/VMS-Stdio/
1348 ext/Win32CORE/
4f3a742d 1349 ext/XS-APItest/
2af3c4b9
SH
1350 ext/XS-Typemap/
1351 ext/arybase/
1352 ext/attributes/
1353 ext/mro/
1354 ext/re/
1355 lib/AnyDBM_File.{pm,t}
1356 lib/Benchmark.{pm,t}
38eca645 1357 lib/B/Deparse{.pm,.t,-*.t}
f3574cc6 1358 lib/B/Op_private.pm
4f3a742d 1359 lib/CORE.pod
2af3c4b9 1360 lib/Class/Struct.{pm,t}
4f3a742d
DR
1361 lib/Config.t
1362 lib/Config/Extensions.{pm,t}
1363 lib/DB.{pm,t}
2af3c4b9
SH
1364 lib/DBM_Filter.pm
1365 lib/DBM_Filter/
1366 lib/DirHandle.{pm,t}
1367 lib/English.{pm,t}
4f3a742d
DR
1368 lib/ExtUtils/Embed.pm
1369 lib/ExtUtils/XSSymSet.pm
1370 lib/ExtUtils/t/Embed.t
1371 lib/ExtUtils/typemap
2af3c4b9
SH
1372 lib/File/Basename.{pm,t}
1373 lib/File/Compare.{pm,t}
1374 lib/File/Copy.{pm,t}
1375 lib/File/stat{.pm,.t,-7896.t}
1376 lib/FileHandle.{pm,t}
1377 lib/FindBin.{pm,t}
1378 lib/Getopt/Std.{pm,t}
cb198164 1379 lib/Internals.pod
4f3a742d 1380 lib/Internals.t
4b6af431 1381 lib/meta_notation.{pm,t}
4f3a742d
DR
1382 lib/Net/hostent.{pm,t}
1383 lib/Net/netent.{pm,t}
1384 lib/Net/protoent.{pm,t}
1385 lib/Net/servent.{pm,t}
2af3c4b9 1386 lib/PerlIO.pm
4f3a742d
DR
1387 lib/Pod/t/InputObjects.t
1388 lib/Pod/t/Select.t
1389 lib/Pod/t/Usage.t
4f3a742d
DR
1390 lib/Pod/t/utils.t
1391 lib/SelectSaver.{pm,t}
1392 lib/Symbol.{pm,t}
1393 lib/Thread.{pm,t}
1394 lib/Tie/Array.pm
1395 lib/Tie/Array/
1396 lib/Tie/ExtraHash.t
1397 lib/Tie/Handle.pm
1398 lib/Tie/Handle/
2af3c4b9 1399 lib/Tie/Hash.{pm,t}
4f3a742d
DR
1400 lib/Tie/Scalar.{pm,t}
1401 lib/Tie/StdHandle.pm
1402 lib/Tie/SubstrHash.{pm,t}
1403 lib/Time/gmtime.{pm,t}
1404 lib/Time/localtime.{pm,t}
1405 lib/Time/tm.pm
1406 lib/UNIVERSAL.pm
1407 lib/Unicode/README
2af3c4b9 1408 lib/Unicode/UCD.{pm,t}
4f3a742d
DR
1409 lib/User/grent.{pm,t}
1410 lib/User/pwent.{pm,t}
2af3c4b9 1411 lib/_charnames.pm
4f3a742d
DR
1412 lib/blib.{pm,t}
1413 lib/bytes.{pm,t}
1414 lib/bytes_heavy.pl
1415 lib/charnames.{pm,t}
1416 lib/dbm_filter_util.pl
1417 lib/deprecate.pm
2af3c4b9 1418 lib/diagnostics.{pm,t}
4f3a742d
DR
1419 lib/dumpvar.{pl,t}
1420 lib/feature.{pm,t}
1421 lib/feature/
1422 lib/filetest.{pm,t}
1423 lib/h2ph.t
1424 lib/h2xs.t
1425 lib/integer.{pm,t}
1426 lib/less.{pm,t}
1427 lib/locale.{pm,t}
706055ce 1428 lib/locale_threads.t
4f3a742d
DR
1429 lib/open.{pm,t}
1430 lib/overload/numbers.pm
1431 lib/overloading.{pm,t}
2af3c4b9 1432 lib/overload{.pm,.t,64.t}
4f3a742d
DR
1433 lib/perl5db.{pl,t}
1434 lib/perl5db/
a3b4b767 1435 lib/perlbug.t
2af3c4b9 1436 lib/sigtrap.{pm,t}
4f3a742d
DR
1437 lib/sort.{pm,t}
1438 lib/strict.{pm,t}
1439 lib/subs.{pm,t}
1440 lib/unicore/
1441 lib/utf8.{pm,t}
1442 lib/utf8_heavy.pl
1443 lib/vars{.pm,.t,_carp.t}
1444 lib/vmsish.{pm,t}
1445 ],
4f3a742d 1446 },
462ea751 1447);
b128a327 1448
97556ec3 1449# legacy CPAN flag
4f3a742d 1450for ( values %Modules ) {
97556ec3
GA
1451 $_->{CPAN} = !!$_->{DISTRIBUTION};
1452}
1453
099bebb1
SH
1454# legacy UPSTREAM flag
1455for ( keys %Modules ) {
1456 # Keep any existing UPSTREAM flag so that "overrides" can be applied
1457 next if exists $Modules{$_}{UPSTREAM};
1458
1459 if ($_ eq '_PERLLIB' or $Modules{$_}{FILES} =~ m{^\s*(?:dist|ext|lib)/}) {
1460 $Modules{$_}{UPSTREAM} = 'blead';
1461 }
1462 elsif ($Modules{$_}{FILES} =~ m{^\s*cpan/}) {
1463 $Modules{$_}{UPSTREAM} = 'cpan';
1464 }
1465 else {
1466 warn "Unexpected location of FILES for module $_: $Modules{$_}{FILES}";
1467 }
1468}
1469
d350de41 1470# legacy MAINTAINER field
099bebb1 1471for ( keys %Modules ) {
b3dcf775 1472 # Keep any existing MAINTAINER flag so that "overrides" can be applied
099bebb1
SH
1473 next if exists $Modules{$_}{MAINTAINER};
1474
1475 if ($Modules{$_}{UPSTREAM} eq 'blead') {
1476 $Modules{$_}{MAINTAINER} = 'P5P';
872818ae 1477 $Maintainers{P5P} = 'perl5-porters <perl5-porters@perl.org>';
d350de41 1478 }
099bebb1
SH
1479 elsif (exists $Modules{$_}{DISTRIBUTION}) {
1480 (my $pause_id = $Modules{$_}{DISTRIBUTION}) =~ s{/.*$}{};
1481 $Modules{$_}{MAINTAINER} = $pause_id;
d350de41
SH
1482 $Maintainers{$pause_id} = "<$pause_id\@cpan.org>";
1483 }
099bebb1
SH
1484 else {
1485 warn "No DISTRIBUTION for non-blead module $_";
1486 }
d350de41
SH
1487}
1488
b128a327 14891;