This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Fix M::CL version
[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' => {
90bb05e9 123 'DISTRIBUTION' => 'BINGOS/Archive-Tar-2.08.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 ],
8b56300e
TC
129 'CUSTOMIZED' => [
130 # CVE-2016-1238
131 qw(
132 bin/ptar bin/ptardiff bin/ptargrep
133 lib/Archive/Tar.pm lib/Archive/Tar/Constant.pm
134 lib/Archive/Tar/File.pm
135 )
136 ],
4f3a742d
DR
137 },
138
139 'Attribute::Handlers' => {
e8b9cef0 140 'DISTRIBUTION' => 'RJBS/Attribute-Handlers-0.99.tar.gz',
4f3a742d 141 'FILES' => q[dist/Attribute-Handlers],
4f3a742d
DR
142 },
143
4f3a742d 144 'autodie' => {
dc013420 145 'DISTRIBUTION' => 'PJF/autodie-2.29.tar.gz',
4f3a742d
DR
146 'FILES' => q[cpan/autodie],
147 'EXCLUDED' => [
273225d4 148 qr{benchmarks},
f91d7e0d 149 qr{README\.md},
4f3a742d
DR
150 # All these tests depend upon external
151 # modules that don't exist when we're
152 # building the core. Hence, they can
153 # never run, and should not be merged.
ff4ad1c0 154 qw( t/author-critic.t
4f3a742d
DR
155 t/critic.t
156 t/fork.t
157 t/kwalitee.t
158 t/lex58.t
159 t/pod-coverage.t
160 t/pod.t
273225d4
CBW
161 t/release-pod-coverage.t
162 t/release-pod-syntax.t
4f3a742d
DR
163 t/socket.t
164 t/system.t
165 )
166 ],
1a74a75d
DM
167 # CPAN RT 105344
168 'CUSTOMIZED' => [ qw[ t/mkdir.t ] ],
4f3a742d
DR
169 },
170
171 'AutoLoader' => {
dff36865 172 'DISTRIBUTION' => 'SMUELLER/AutoLoader-5.74.tar.gz',
4f3a742d
DR
173 'FILES' => q[cpan/AutoLoader],
174 'EXCLUDED' => ['t/00pod.t'],
4f3a742d
DR
175 },
176
177 'autouse' => {
965f9517 178 'DISTRIBUTION' => 'RJBS/autouse-1.11.tar.gz',
4f3a742d
DR
179 'FILES' => q[dist/autouse],
180 'EXCLUDED' => [qr{^t/release-.*\.t}],
4f3a742d
DR
181 },
182
4f3a742d 183 'B::Debug' => {
372b8708 184 'DISTRIBUTION' => 'RURBAN/B-Debug-1.23.tar.gz',
4f3a742d
DR
185 'FILES' => q[cpan/B-Debug],
186 'EXCLUDED' => ['t/pod.t'],
4f3a742d
DR
187 },
188
4f3a742d 189 'base' => {
4c13dc7e 190 'DISTRIBUTION' => 'RJBS/base-2.23.tar.gz',
4f3a742d 191 'FILES' => q[dist/base],
4f3a742d
DR
192 },
193
4f3a742d 194 'bignum' => {
fb7f2fa3 195 'DISTRIBUTION' => 'PJACKLAM/bignum-0.43.tar.gz',
c287fe32 196 'FILES' => q[cpan/bignum],
4f3a742d
DR
197 'EXCLUDED' => [
198 qr{^inc/Module/},
91f07087 199 qr{^t/author-},
c287fe32
SH
200 qw( t/00sig.t
201 t/01load.t
202 t/02pod.t
203 t/03podcov.t
4f3a742d
DR
204 ),
205 ],
8b56300e
TC
206 'CUSTOMIZED' => [
207 qw(
208 lib/Math/BigFloat/Trace.pm
209 lib/Math/BigInt/Trace.pm lib/bigint.pm
210 lib/bignum.pm lib/bigrat.pm
211 )
212 ],
4f3a742d
DR
213 },
214
215 'Carp' => {
ba705463 216 'DISTRIBUTION' => 'RJBS/Carp-1.38.tar.gz',
4f3a742d 217 'FILES' => q[dist/Carp],
4f3a742d
DR
218 },
219
4f3a742d 220 'Compress::Raw::Bzip2' => {
9e7c8eb7 221 'DISTRIBUTION' => 'PMQS/Compress-Raw-Bzip2-2.069.tar.gz',
4f3a742d
DR
222 'FILES' => q[cpan/Compress-Raw-Bzip2],
223 'EXCLUDED' => [
224 qr{^t/Test/},
65b62fea 225 'bzip2-src/bzip2-const.patch',
4f3a742d 226 'bzip2-src/bzip2-cpp.patch',
65b62fea 227 'bzip2-src/bzip2-unsigned.patch',
4f3a742d 228 ],
4f3a742d
DR
229 },
230
231 'Compress::Raw::Zlib' => {
2b91859c 232 'DISTRIBUTION' => 'PMQS/Compress-Raw-Zlib-2.069.tar.gz',
4f3a742d
DR
233
234 'FILES' => q[cpan/Compress-Raw-Zlib],
235 'EXCLUDED' => [
84c82da4 236 qr{^examples/},
4f3a742d
DR
237 qr{^t/Test/},
238 qw( t/000prereq.t
239 t/99pod.t
240 ),
241 ],
4f3a742d
DR
242 },
243
4b07058c 244 'Config::Perl::V' => {
6b3eaabc 245 'DISTRIBUTION' => 'HMBRAND/Config-Perl-V-0.26.tgz',
4b07058c 246 'FILES' => q[cpan/Config-Perl-V],
b4ade012
MB
247 'EXCLUDED' => [qw(
248 examples/show-v.pl
b4ade012 249 )],
4b07058c
RS
250 },
251
4f3a742d 252 'constant' => {
8b1ae794 253 'DISTRIBUTION' => 'RJBS/constant-1.33.tar.gz',
4f3a742d
DR
254 'FILES' => q[dist/constant],
255 'EXCLUDED' => [
256 qw( t/00-load.t
257 t/more-tests.t
258 t/pod-coverage.t
259 t/pod.t
260 eg/synopsis.pl
261 ),
262 ],
4f3a742d
DR
263 },
264
265 'CPAN' => {
4af080e1 266 'DISTRIBUTION' => 'ANDK/CPAN-2.14.tar.gz',
4f3a742d
DR
267 'FILES' => q[cpan/CPAN],
268 'EXCLUDED' => [
269 qr{^distroprefs/},
270 qr{^inc/Test/},
45a13884
SH
271 qr{^t/CPAN/},
272 qr{^t/data/},
79116533 273 qr{^t/97-},
4f3a742d 274 qw( lib/CPAN/Admin.pm
6156383d 275 scripts/cpan-mirrors
bfae5bde 276 PAUSE2015.pub
4f3a742d
DR
277 SlayMakefile
278 t/00signature.t
279 t/04clean_load.t
280 t/12cpan.t
281 t/13tarzip.t
282 t/14forkbomb.t
283 t/30shell.coverage
284 t/30shell.t
285 t/31sessions.t
286 t/41distribution.t
287 t/42distroprefs.t
288 t/43distroprefspref.t
45a13884 289 t/44cpanmeta.t
4f3a742d
DR
290 t/50pod.t
291 t/51pod.t
292 t/52podcover.t
293 t/60credentials.t
294 t/70_critic.t
bfae5bde 295 t/71_minimumversion.t
4f3a742d
DR
296 t/local_utils.pm
297 t/perlcriticrc
298 t/yaml_code.yml
299 ),
300 ],
8b56300e
TC
301 'CUSTOMIZED' => [
302 # CVE-2016-1238
303 qw(
304 lib/App/Cpan.pm lib/CPAN.pm scripts/cpan
305 )
306 ],
4f3a742d
DR
307 },
308
278337cd
CBW
309 # Note: When updating CPAN-Meta the META.* files will need to be regenerated
310 # perl -Icpan/CPAN-Meta/lib Porting/makemeta
4f3a742d 311 'CPAN::Meta' => {
2b771c51 312 'DISTRIBUTION' => 'DAGOLDEN/CPAN-Meta-2.150005.tar.gz',
4f3a742d
DR
313 'FILES' => q[cpan/CPAN-Meta],
314 'EXCLUDED' => [
f907dd3c
SH
315 qw[t/00-report-prereqs.t
316 t/00-report-prereqs.dd
317 t/data-test/x_deprecated-META.json
318 t/data-valid/x_deprecated-META.yml
319 t/README-data.txt],
4f3a742d
DR
320 qr{^xt},
321 qr{^history},
322 ],
4f3a742d
DR
323 },
324
b6ae0ea7 325 'CPAN::Meta::Requirements' => {
054d0c99 326 'DISTRIBUTION' => 'DAGOLDEN/CPAN-Meta-Requirements-2.140.tar.gz',
b6ae0ea7
CBW
327 'FILES' => q[cpan/CPAN-Meta-Requirements],
328 'EXCLUDED' => [
c4814040 329 qw(t/00-report-prereqs.t),
54b7cb30 330 qw(t/00-report-prereqs.dd),
608e531f 331 qw(t/version-cleanup.t),
b6ae0ea7 332 qr{^xt},
b6ae0ea7 333 ],
b6ae0ea7
CBW
334 },
335
4f3a742d 336 'CPAN::Meta::YAML' => {
0d99ea03 337 'DISTRIBUTION' => 'DAGOLDEN/CPAN-Meta-YAML-0.018.tar.gz',
4f3a742d
DR
338 'FILES' => q[cpan/CPAN-Meta-YAML],
339 'EXCLUDED' => [
2954a1e9 340 't/00-report-prereqs.t',
e586de20 341 't/00-report-prereqs.dd',
4f3a742d
DR
342 qr{^xt},
343 ],
4f3a742d
DR
344 },
345
346 'Data::Dumper' => {
d8cc0e43 347 'DISTRIBUTION' => 'SMUELLER/Data-Dumper-2.161.tar.gz',
4f3a742d 348 'FILES' => q[dist/Data-Dumper],
4f3a742d
DR
349 },
350
351 'DB_File' => {
c7cd1ed9 352 'DISTRIBUTION' => 'PMQS/DB_File-1.838.tar.gz',
4f3a742d
DR
353 'FILES' => q[cpan/DB_File],
354 'EXCLUDED' => [
355 qr{^patches/},
356 qw( t/pod.t
357 fallback.h
358 fallback.xs
359 ),
360 ],
4f3a742d
DR
361 },
362
4f3a742d 363 'Devel::PPPort' => {
4827ac7e 364 'DISTRIBUTION' => 'WOLFSAGE/Devel-PPPort-3.35.tar.gz',
099bebb1
SH
365 # RJBS has asked MHX to have UPSTREAM be 'blead'
366 # (i.e. move this from cpan/ to dist/)
4f3a742d 367 'FILES' => q[cpan/Devel-PPPort],
84c82da4
SH
368 'EXCLUDED' => [
369 'PPPort.pm', # we use PPPort_pm.PL instead
84c82da4 370 ]
4f3a742d
DR
371 },
372
97b1d6e6 373 'Devel::SelfStubber' => {
97b1d6e6
SH
374 'DISTRIBUTION' => 'FLORA/Devel-SelfStubber-1.05.tar.gz',
375 'FILES' => q[dist/Devel-SelfStubber],
376 'EXCLUDED' => [qr{^t/release-.*\.t}],
97b1d6e6
SH
377 },
378
4f3a742d 379 'Digest' => {
4f3a742d
DR
380 'DISTRIBUTION' => 'GAAS/Digest-1.17.tar.gz',
381 'FILES' => q[cpan/Digest],
382 'EXCLUDED' => ['digest-bench'],
8b56300e
TC
383 'CUSTOMIZED' => [
384 # CVE-2016-1238
385 qw( Digest.pm )
386 ],
4f3a742d
DR
387 },
388
389 'Digest::MD5' => {
05a6ec77 390 'DISTRIBUTION' => 'GAAS/Digest-MD5-2.55.tar.gz',
4f3a742d
DR
391 'FILES' => q[cpan/Digest-MD5],
392 'EXCLUDED' => ['rfc1321.txt'],
4f3a742d
DR
393 },
394
395 'Digest::SHA' => {
b495b81b 396 'DISTRIBUTION' => 'MSHELOR/Digest-SHA-5.95.tar.gz',
4f3a742d
DR
397 'FILES' => q[cpan/Digest-SHA],
398 'EXCLUDED' => [
399 qw( t/pod.t
400 t/podcover.t
401 examples/dups
402 ),
403 ],
8b56300e
TC
404 'CUSTOMIZED' => [
405 # CVE-2016-1238
406 qw( lib/Digest/SHA.pm shasum )
407 ],
4f3a742d
DR
408 },
409
4f3a742d 410 'Dumpvalue' => {
f6e46c4d 411 'DISTRIBUTION' => 'FLORA/Dumpvalue-1.17.tar.gz',
4f3a742d
DR
412 'FILES' => q[dist/Dumpvalue],
413 'EXCLUDED' => [qr{^t/release-.*\.t}],
4f3a742d
DR
414 },
415
4f3a742d 416 'Encode' => {
0dcb562a 417 'DISTRIBUTION' => 'DANKOGAI/Encode-2.84.tar.gz',
4f3a742d 418 'FILES' => q[cpan/Encode],
0648b1fd 419 CUSTOMIZED => [
c9de3de8
SH
420 qw( encoding.pm
421 Byte/Makefile.PL
422 t/enc_data.t
423 t/enc_eucjp.t
424 t/enc_module.t
425 t/enc_utf8.t
426 t/encoding.t
427 t/jperl.t
428 ),
0648b1fd 429 ],
8b56300e
TC
430 'CUSTOMIZED' => [
431 # CVE-2016-1238
432 qw(
433 Encode.pm bin/enc2xs bin/encguess bin/piconv
434 bin/ucmlint bin/unidump
435 )
436 ],
4f3a742d
DR
437 },
438
439 'encoding::warnings' => {
4f3a742d 440 'DISTRIBUTION' => 'AUDREYT/encoding-warnings-0.11.tar.gz',
e1c786ba 441 'FILES' => q[dist/encoding-warnings],
4f3a742d
DR
442 'EXCLUDED' => [
443 qr{^inc/Module/},
94c85d8e 444 qw(t/0-signature.t),
4f3a742d 445 ],
4f3a742d
DR
446 },
447
4f3a742d 448 'Env' => {
126fc07f 449 'DISTRIBUTION' => 'FLORA/Env-1.04.tar.gz',
4f3a742d
DR
450 'FILES' => q[dist/Env],
451 'EXCLUDED' => [qr{^t/release-.*\.t}],
4f3a742d
DR
452 },
453
de84ff2b 454 'experimental' => {
4fdcb09b 455 'DISTRIBUTION' => 'LEONT/experimental-0.016.tar.gz',
de84ff2b 456 'FILES' => q[cpan/experimental],
4fdcb09b 457 'EXCLUDED' => [qr{^xt/}],
de84ff2b
RS
458 },
459
4f3a742d 460 'Exporter' => {
b4d1bf31 461 'DISTRIBUTION' => 'TODDR/Exporter-5.72.tar.gz',
3110a055 462 'FILES' => q[dist/Exporter],
4f3a742d
DR
463 'EXCLUDED' => [
464 qw( t/pod.t
465 t/use.t
466 ),
467 ],
4f3a742d
DR
468 },
469
470 'ExtUtils::CBuilder' => {
83dcc064 471 'DISTRIBUTION' => 'AMBS/ExtUtils-CBuilder-0.280224.tar.gz',
4f3a742d 472 'FILES' => q[dist/ExtUtils-CBuilder],
a0e78e9f
SH
473 'EXCLUDED' => [
474 qw(README.mkdn),
475 qr{^xt},
476 ],
4f3a742d
DR
477 },
478
4f3a742d 479 'ExtUtils::Constant' => {
4f3a742d 480
c9849c52 481 'DISTRIBUTION' => 'NWCLARK/ExtUtils-Constant-0.23.tar.gz',
4f3a742d
DR
482 'FILES' => q[cpan/ExtUtils-Constant],
483 'EXCLUDED' => [
484 qw( lib/ExtUtils/Constant/Aaargh56Hash.pm
485 examples/perl_keyword.pl
486 examples/perl_regcomp_posix_keyword.pl
487 ),
34c00cdf 488 ],
c9849c52
DM
489 # cc37ebcee3 to fix VMS failure
490 'CUSTOMIZED' => [ qw(t/Constant.t) ],
4f3a742d
DR
491 },
492
493 'ExtUtils::Install' => {
f1c22b9e 494 'DISTRIBUTION' => 'BINGOS/ExtUtils-Install-2.04.tar.gz',
d393d7e5 495 'FILES' => q[cpan/ExtUtils-Install],
4f3a742d
DR
496 'EXCLUDED' => [
497 qw( t/lib/Test/Builder.pm
498 t/lib/Test/Builder/Module.pm
499 t/lib/Test/More.pm
500 t/lib/Test/Simple.pm
501 t/pod-coverage.t
502 t/pod.t
503 ),
504 ],
4f3a742d
DR
505 },
506
507 'ExtUtils::MakeMaker' => {
a0138d8f 508 'DISTRIBUTION' => 'BINGOS/ExtUtils-MakeMaker-7.22.tar.gz',
4f3a742d
DR
509 'FILES' => q[cpan/ExtUtils-MakeMaker],
510 'EXCLUDED' => [
511 qr{^t/lib/Test/},
512 qr{^(bundled|my)/},
513 qr{^t/Liblist_Kid.t},
514 qr{^t/liblist/},
78fd4358 515 qr{^\.perlcriticrc},
84c82da4
SH
516 'PATCHING',
517 'README.packaging',
ce9582af 518 'lib/ExtUtils/MakeMaker/version/vpp.pm',
4f3a742d 519 ],
4f3a742d
DR
520 },
521
522 'ExtUtils::Manifest' => {
f660499c 523 'DISTRIBUTION' => 'ETHER/ExtUtils-Manifest-1.70.tar.gz',
854a00d8 524 'FILES' => q[cpan/ExtUtils-Manifest],
4d25f022
SH
525 'EXCLUDED' => [
526 qr(^t/00-report-prereqs),
527 qr(^xt/)
528 ],
4f3a742d
DR
529 },
530
531 'ExtUtils::ParseXS' => {
bdc4e4b2 532 'DISTRIBUTION' => 'SMUELLER/ExtUtils-ParseXS-3.30.tar.gz',
4f3a742d 533 'FILES' => q[dist/ExtUtils-ParseXS],
4f3a742d
DR
534 },
535
4f3a742d 536 'File::Fetch' => {
9d56ca6f 537 'DISTRIBUTION' => 'BINGOS/File-Fetch-0.48.tar.gz',
4f3a742d 538 'FILES' => q[cpan/File-Fetch],
8b56300e
TC
539 'CUSTOMIZED' => [
540 # CVE-2016-1238
541 qw( lib/File/Fetch.pm )
542 ],
4f3a742d
DR
543 },
544
4f3a742d 545 'File::Path' => {
bfcc9519 546 'DISTRIBUTION' => 'RICHE/File-Path-2.12.tar.gz',
4f3a742d
DR
547 'FILES' => q[cpan/File-Path],
548 'EXCLUDED' => [
bfcc9519
SH
549 qw(t/Path-Class.t),
550 qr{^xt/},
4f3a742d 551 ],
ef667930
TC
552 # https://github.com/rpcme/File-Path/pull/34
553 'CUSTOMIZED' => [ qw( lib/File/Path.pm t/Path_win32.t ) ],
4f3a742d
DR
554 },
555
4f3a742d 556 'File::Temp' => {
3d5f905f 557 'DISTRIBUTION' => 'DAGOLDEN/File-Temp-0.2304.tar.gz',
4f3a742d
DR
558 'FILES' => q[cpan/File-Temp],
559 'EXCLUDED' => [
560 qw( misc/benchmark.pl
561 misc/results.txt
562 ),
814e893f
CBW
563 qw[t/00-report-prereqs.t],
564 qr{^xt},
4f3a742d 565 ],
4f3a742d
DR
566 },
567
4f3a742d 568 'Filter::Simple' => {
37ffe967 569 'DISTRIBUTION' => 'SMUELLER/Filter-Simple-0.91.tar.gz',
4f3a742d
DR
570 'FILES' => q[dist/Filter-Simple],
571 'EXCLUDED' => [
4f3a742d
DR
572 qr{^demo/}
573 ],
4f3a742d
DR
574 },
575
576 'Filter::Util::Call' => {
356231b0 577 'DISTRIBUTION' => 'RURBAN/Filter-1.55.tar.gz',
4f3a742d
DR
578 'FILES' => q[cpan/Filter-Util-Call
579 pod/perlfilter.pod
580 ],
581 'EXCLUDED' => [
582 qr{^decrypt/},
583 qr{^examples/},
584 qr{^Exec/},
585 qr{^lib/Filter/},
586 qr{^tee/},
587 qw( Call/Makefile.PL
588 Call/ppport.h
589 Call/typemap
590 mytest
591 t/cpp.t
592 t/decrypt.t
593 t/exec.t
594 t/order.t
4f3a742d
DR
595 t/sh.t
596 t/tee.t
533d93cc
SH
597 t/z_kwalitee.t
598 t/z_meta.t
599 t/z_perl_minimum_version.t
600 t/z_pod-coverage.t
601 t/z_pod.t
4f3a742d
DR
602 ),
603 ],
604 'MAP' => {
605 'Call/' => 'cpan/Filter-Util-Call/',
606 'filter-util.pl' => 'cpan/Filter-Util-Call/filter-util.pl',
607 'perlfilter.pod' => 'pod/perlfilter.pod',
608 '' => 'cpan/Filter-Util-Call/',
609 },
4f3a742d
DR
610 },
611
4f3a742d 612 'Getopt::Long' => {
3aa49e42 613 'DISTRIBUTION' => 'JV/Getopt-Long-2.49.1.tar.gz',
4f3a742d
DR
614 'FILES' => q[cpan/Getopt-Long],
615 'EXCLUDED' => [
616 qr{^examples/},
617 qw( perl-Getopt-Long.spec
618 lib/newgetopt.pl
974d5816 619 t/gol-compat.t
4f3a742d
DR
620 ),
621 ],
4f3a742d
DR
622 },
623
4f3a742d 624 'HTTP::Tiny' => {
ad96436a 625 'DISTRIBUTION' => 'DAGOLDEN/HTTP-Tiny-0.058.tar.gz',
4f3a742d
DR
626 'FILES' => q[cpan/HTTP-Tiny],
627 'EXCLUDED' => [
fcfb9f49 628 't/00-report-prereqs.t',
57d69a40 629 't/00-report-prereqs.dd',
4f3a742d 630 't/200_live.t',
44347bc3 631 't/200_live_local_ip.t',
fcfb9f49 632 't/210_live_ssl.t',
4f3a742d
DR
633 qr/^eg/,
634 qr/^xt/
635 ],
8b56300e
TC
636 'CUSTOMIZED' => [
637 # CVE-2016-1238
638 qw( lib/HTTP/Tiny.pm )
639 ],
4f3a742d
DR
640 },
641
642 'I18N::Collate' => {
4f3a742d
DR
643 'DISTRIBUTION' => 'FLORA/I18N-Collate-1.02.tar.gz',
644 'FILES' => q[dist/I18N-Collate],
645 'EXCLUDED' => [qr{^t/release-.*\.t}],
4f3a742d
DR
646 },
647
4f3a742d 648 'I18N::LangTags' => {
4f3a742d 649 'FILES' => q[dist/I18N-LangTags],
4f3a742d
DR
650 },
651
652 'if' => {
f7294c1d 653 'DISTRIBUTION' => 'RJBS/if-0.0606.tar.gz',
4f3a742d 654 'FILES' => q[dist/if],
4f3a742d
DR
655 },
656
657 'IO' => {
4f3a742d
DR
658 'DISTRIBUTION' => 'GBARR/IO-1.25.tar.gz',
659 'FILES' => q[dist/IO/],
660 'EXCLUDED' => ['t/test.pl'],
4f3a742d
DR
661 },
662
663 'IO-Compress' => {
7dcc7d3d 664 'DISTRIBUTION' => 'PMQS/IO-Compress-2.069.tar.gz',
4f3a742d 665 'FILES' => q[cpan/IO-Compress],
84c82da4
SH
666 'EXCLUDED' => [
667 qr{^examples/},
668 qr{^t/Test/},
669 't/010examples-bzip2.t',
670 't/010examples-zlib.t',
671 't/cz-05examples.t',
672 ],
8b56300e
TC
673 'CUSTOMIZED' => [
674 # CVE-2016-1238
675 qw(
676 bin/zipdetails lib/Compress/Zlib.pm
677 lib/IO/Compress/Adapter/Bzip2.pm
678 lib/IO/Compress/Adapter/Deflate.pm
679 lib/IO/Compress/Adapter/Identity.pm
680 lib/IO/Compress/Base.pm
681 lib/IO/Compress/Base/Common.pm
682 lib/IO/Compress/Bzip2.pm
683 lib/IO/Compress/Deflate.pm
684 lib/IO/Compress/Gzip.pm
685 lib/IO/Compress/Gzip/Constants.pm
686 lib/IO/Compress/RawDeflate.pm
687 lib/IO/Compress/Zip.pm
688 lib/IO/Compress/Zip/Constants.pm
689 lib/IO/Compress/Zlib/Constants.pm
690 lib/IO/Compress/Zlib/Extra.pm
691 lib/IO/Uncompress/Adapter/Bunzip2.pm
692 lib/IO/Uncompress/Adapter/Identity.pm
693 lib/IO/Uncompress/Adapter/Inflate.pm
694 lib/IO/Uncompress/AnyInflate.pm
695 lib/IO/Uncompress/AnyUncompress.pm
696 lib/IO/Uncompress/Base.pm
697 lib/IO/Uncompress/Bunzip2.pm
698 lib/IO/Uncompress/Gunzip.pm
699 lib/IO/Uncompress/Inflate.pm
700 lib/IO/Uncompress/RawInflate.pm
701 lib/IO/Uncompress/Unzip.pm
702 )
703 ],
4f3a742d
DR
704 },
705
74a30e96 706 'IO::Socket::IP' => {
be3cfe4c 707 'DISTRIBUTION' => 'PEVANS/IO-Socket-IP-0.37.tar.gz',
74a30e96
CBW
708 'FILES' => q[cpan/IO-Socket-IP],
709 'EXCLUDED' => [
710 qr{^examples/},
711 ],
712 },
713
4f3a742d 714 'IO::Zlib' => {
4f3a742d
DR
715 'DISTRIBUTION' => 'TOMHUGHES/IO-Zlib-1.10.tar.gz',
716 'FILES' => q[cpan/IO-Zlib],
4f3a742d
DR
717 },
718
719 'IPC::Cmd' => {
00d961ca 720 'DISTRIBUTION' => 'BINGOS/IPC-Cmd-0.96.tar.gz',
4f3a742d 721 'FILES' => q[cpan/IPC-Cmd],
4f3a742d
DR
722 },
723
4f3a742d 724 'IPC::SysV' => {
f38527b2 725 'DISTRIBUTION' => 'MHX/IPC-SysV-2.07.tar.gz',
4f3a742d
DR
726 'FILES' => q[cpan/IPC-SysV],
727 'EXCLUDED' => [
728 qw( const-c.inc
729 const-xs.inc
730 ),
731 ],
4f3a742d
DR
732 },
733
734 'JSON::PP' => {
a1e5c561 735 'DISTRIBUTION' => 'MAKAMAKA/JSON-PP-2.27400.tar.gz',
4f3a742d 736 'FILES' => q[cpan/JSON-PP],
8b56300e
TC
737 'CUSTOMIZED' => [
738 # CVE-2016-1238
739 qw( bin/json_pp lib/JSON/PP.pm ),
740 ],
4f3a742d
DR
741 },
742
743 'lib' => {
4f3a742d
DR
744 'DISTRIBUTION' => 'SMUELLER/lib-0.63.tar.gz',
745 'FILES' => q[dist/lib/],
746 'EXCLUDED' => [
747 qw( forPAUSE/lib.pm
748 t/00pod.t
749 ),
750 ],
4f3a742d
DR
751 },
752
753 'libnet' => {
a9282e3c 754 'DISTRIBUTION' => 'SHAY/libnet-3.10.tar.gz',
4f3a742d
DR
755 'FILES' => q[cpan/libnet],
756 'EXCLUDED' => [
757 qw( Configure
2901a52f 758 t/changes.t
59e3cdd4
SH
759 t/critic.t
760 t/pod.t
761 t/pod_coverage.t
4f3a742d 762 ),
84c82da4 763 qr(^demos/),
dadfa42f 764 qr(^t/external/),
4f3a742d 765 ],
4f3a742d
DR
766 },
767
768 'Locale-Codes' => {
756a1fc4 769 'DISTRIBUTION' => 'SBECK/Locale-Codes-3.39.tar.gz',
4f3a742d
DR
770 'FILES' => q[cpan/Locale-Codes],
771 'EXCLUDED' => [
84c82da4 772 qw( README.first
8eadc45b 773 t/pod_coverage.ign
84c82da4 774 t/pod_coverage.t
4f3a742d
DR
775 t/pod.t),
776 qr{^t/runtests},
777 qr{^t/runtests\.bat},
778 qr{^internal/},
779 qr{^examples/},
780 ],
4f3a742d
DR
781 },
782
783 'Locale::Maketext' => {
6f770d82 784 'DISTRIBUTION' => 'TODDR/Locale-Maketext-1.27.tar.gz',
4f3a742d
DR
785 'FILES' => q[dist/Locale-Maketext],
786 'EXCLUDED' => [
787 qw(
788 perlcriticrc
789 t/00_load.t
790 t/pod.t
791 ),
792 ],
4f3a742d
DR
793 },
794
795 'Locale::Maketext::Simple' => {
4f3a742d
DR
796 'DISTRIBUTION' => 'JESSE/Locale-Maketext-Simple-0.21.tar.gz',
797 'FILES' => q[cpan/Locale-Maketext-Simple],
8b56300e
TC
798 'CUSTOMIZED' => [
799 # CVE-2016-1238
800 qw( lib/Locale/Maketext/Simple.pm )
801 ],
4f3a742d
DR
802 },
803
4f3a742d 804 'Math::BigInt' => {
ef07b9e5 805 'DISTRIBUTION' => 'PJACKLAM/Math-BigInt-1.999726.tar.gz',
6b0f9b46 806 'FILES' => q[cpan/Math-BigInt],
4f3a742d
DR
807 'EXCLUDED' => [
808 qr{^inc/},
809 qr{^examples/},
6b10d254 810 qr{^t/author-},
4f3a742d
DR
811 qw( t/00sig.t
812 t/01load.t
813 t/02pod.t
814 t/03podcov.t
815 ),
816 ],
4f3a742d
DR
817 },
818
819 'Math::BigInt::FastCalc' => {
28c06467 820 'DISTRIBUTION' => 'PJACKLAM/Math-BigInt-FastCalc-0.42.tar.gz',
6b0f9b46 821 'FILES' => q[cpan/Math-BigInt-FastCalc],
4f3a742d
DR
822 'EXCLUDED' => [
823 qr{^inc/},
824 qw( t/00sig.t
825 t/01load.t
826 t/02pod.t
827 t/03podcov.t
828 ),
829
830 # instead we use the versions of these test
831 # files that come with Math::BigInt:
832 qw( t/bigfltpm.inc
833 t/bigfltpm.t
834 t/bigintpm.inc
835 t/bigintpm.t
836 t/mbimbf.inc
837 t/mbimbf.t
838 ),
839 ],
4f3a742d
DR
840 },
841
842 'Math::BigRat' => {
6320cdc0 843 'DISTRIBUTION' => 'PJACKLAM/Math-BigRat-0.260804.tar.gz',
6b0f9b46 844 'FILES' => q[cpan/Math-BigRat],
4f3a742d
DR
845 'EXCLUDED' => [
846 qr{^inc/},
6320cdc0 847 qr{^t/author-},
4f3a742d
DR
848 qw( t/00sig.t
849 t/01load.t
850 t/02pod.t
851 t/03podcov.t
9b331ac6
SH
852 ),
853 ],
4f3a742d
DR
854 },
855
856 'Math::Complex' => {
04ae1553 857 'DISTRIBUTION' => 'ZEFRAM/Math-Complex-1.59.tar.gz',
4f3a742d
DR
858 'FILES' => q[cpan/Math-Complex],
859 'EXCLUDED' => [
860 qw( t/pod.t
861 t/pod-coverage.t
862 ),
863 ],
4f3a742d
DR
864 },
865
866 'Memoize' => {
8114efa0 867 'DISTRIBUTION' => 'MJD/Memoize-1.03.tgz',
4f3a742d
DR
868 'FILES' => q[cpan/Memoize],
869 'EXCLUDED' => ['article.html'],
8b56300e
TC
870 'CUSTOMIZED' => [
871 # CVE-2016-1238
872 qw( Memoize.pm )
873 ],
4f3a742d
DR
874 },
875
876 'MIME::Base64' => {
6b10655d 877 'DISTRIBUTION' => 'GAAS/MIME-Base64-3.15.tar.gz',
4f3a742d
DR
878 'FILES' => q[cpan/MIME-Base64],
879 'EXCLUDED' => ['t/bad-sv.t'],
4f3a742d
DR
880 },
881
4f3a742d 882 'Module::CoreList' => {
5275805d 883 'DISTRIBUTION' => 'BINGOS/Module-CoreList-5.20160720.tar.gz',
4f3a742d 884 'FILES' => q[dist/Module-CoreList],
4f3a742d
DR
885 },
886
887 'Module::Load' => {
58572ed8 888 'DISTRIBUTION' => 'BINGOS/Module-Load-0.32.tar.gz',
4f3a742d 889 'FILES' => q[cpan/Module-Load],
4f3a742d
DR
890 },
891
892 'Module::Load::Conditional' => {
2c34ec1b 893 'DISTRIBUTION' => 'BINGOS/Module-Load-Conditional-0.68.tar.gz',
4f3a742d 894 'FILES' => q[cpan/Module-Load-Conditional],
4f3a742d
DR
895 },
896
897 'Module::Loaded' => {
4f3a742d
DR
898 'DISTRIBUTION' => 'BINGOS/Module-Loaded-0.08.tar.gz',
899 'FILES' => q[cpan/Module-Loaded],
4f3a742d
DR
900 },
901
902 'Module::Metadata' => {
d4fbd0ca 903 'DISTRIBUTION' => 'ETHER/Module-Metadata-1.000033.tar.gz',
4f3a742d
DR
904 'FILES' => q[cpan/Module-Metadata],
905 'EXCLUDED' => [
b9beed70 906 qw(t/00-report-prereqs.t),
adc2cdfb 907 qw(t/00-report-prereqs.dd),
e6d414a9 908 qr{weaver.ini},
4f3a742d
DR
909 qr{^xt},
910 ],
4f3a742d
DR
911 },
912
4f3a742d 913 'Net::Ping' => {
4e0aac35 914 'DISTRIBUTION' => 'SMPETERS/Net-Ping-2.41.tar.gz',
4f3a742d 915 'FILES' => q[dist/Net-Ping],
4f3a742d
DR
916 },
917
918 'NEXT' => {
c8321e06 919 'DISTRIBUTION' => 'NEILB/NEXT-0.67.tar.gz',
4f3a742d
DR
920 'FILES' => q[cpan/NEXT],
921 'EXCLUDED' => [qr{^demo/}],
4f3a742d
DR
922 },
923
4f3a742d 924 'Params::Check' => {
8b21fa03 925 'DISTRIBUTION' => 'BINGOS/Params-Check-0.38.tar.gz',
4f3a742d 926 'FILES' => q[cpan/Params-Check],
4f3a742d
DR
927 },
928
929 'parent' => {
bdb6acef 930 'DISTRIBUTION' => 'CORION/parent-0.234.tar.gz',
4f3a742d 931 'FILES' => q[cpan/parent],
4f3a742d
DR
932 },
933
934 'Parse::CPAN::Meta' => {
94fcde4f 935 'DISTRIBUTION' => 'DAGOLDEN/Parse-CPAN-Meta-1.4422.tar.gz',
4f3a742d 936 'FILES' => q[cpan/Parse-CPAN-Meta],
342e4710 937 'EXCLUDED' => [
f907dd3c 938 qw[t/00-report-prereqs.dd],
342e4710
CBW
939 qw[t/00-report-prereqs.t],
940 qr{^xt},
941 ],
4f3a742d
DR
942 },
943
944 'PathTools' => {
0224bf41 945 'DISTRIBUTION' => 'RJBS/PathTools-3.62.tar.gz',
cb8c8458 946 'FILES' => q[dist/PathTools],
76250107
SH
947 'EXCLUDED' => [
948 qr{^t/lib/Test/},
949 qw( t/rel2abs_vs_symlink.t),
950 ],
4f3a742d
DR
951 },
952
97b1d6e6 953 'Perl::OSType' => {
ea8e5adc 954 'DISTRIBUTION' => 'DAGOLDEN/Perl-OSType-1.010.tar.gz',
97b1d6e6 955 'FILES' => q[cpan/Perl-OSType],
765955c0 956 'EXCLUDED' => [qw(tidyall.ini), qr/^xt/, qr{^t/00-}],
97b1d6e6
SH
957 },
958
97b1d6e6 959 'perlfaq' => {
a2c3b2fe 960 'DISTRIBUTION' => 'LLAP/perlfaq-5.021011.tar.gz',
97b1d6e6
SH
961 'FILES' => q[cpan/perlfaq],
962 'EXCLUDED' => [
4d25f022 963 qw( inc/CreateQuestionList.pm
e3ef4406 964 inc/perlfaq.tt
4d25f022
SH
965 t/00-compile.t),
966 qr{^xt/},
97b1d6e6 967 ],
97b1d6e6
SH
968 },
969
4f3a742d 970 'PerlIO::via::QuotedPrint' => {
96623e31 971 'DISTRIBUTION' => 'SHAY/PerlIO-via-QuotedPrint-0.08.tar.gz',
4f3a742d 972 'FILES' => q[cpan/PerlIO-via-QuotedPrint],
4f3a742d
DR
973 },
974
0c501878 975 'Pod::Checker' => {
0de6c762 976 'DISTRIBUTION' => 'MAREKR/Pod-Checker-1.73.tar.gz',
0c501878 977 'FILES' => q[cpan/Pod-Checker],
2beba2a9
SH
978 'CUSTOMIZED' => [ qw[
979 t/pod/contains_bad_pod.xr
980 t/pod/selfcheck.t
981 t/pod/testcmp.pl
982 t/pod/testpchk.pl
983 ] ],
0c501878
CBW
984 },
985
4f3a742d 986 'Pod::Escapes' => {
f347d3e3 987 'DISTRIBUTION' => 'NEILB/Pod-Escapes-1.07.tar.gz',
4f3a742d 988 'FILES' => q[cpan/Pod-Escapes],
4f3a742d
DR
989 },
990
4f3a742d 991 'Pod::Parser' => {
534577b2 992 'DISTRIBUTION' => 'MAREKR/Pod-Parser-1.63.tar.gz',
4f3a742d 993 'FILES' => q[cpan/Pod-Parser],
4f3a742d
DR
994 },
995
996 'Pod::Perldoc' => {
96f13870 997 'DISTRIBUTION' => 'MALLEN/Pod-Perldoc-3.25.tar.gz',
00e518b3 998 'FILES' => q[cpan/Pod-Perldoc],
4f3a742d 999
fa884b76
DM
1000 # Note that we use the CPAN-provided Makefile.PL, since it
1001 # contains special handling of the installation of perldoc.pod
1002
1003 # In blead, the perldoc executable is generated by perldoc.PL
4f3a742d
DR
1004 # instead
1005 # XXX We can and should fix this, but clean up the DRY-failure in utils
1006 # first
1007 'EXCLUDED' => ['perldoc'],
18c028dd
AB
1008
1009 # https://rt.cpan.org/Ticket/Display.html?id=106798
f090f03a 1010 # https://rt.cpan.org/Ticket/Display.html?id=110368
18c028dd 1011 'CUSTOMIZED' => [ qw[ lib/Pod/Perldoc.pm ] ],
4f3a742d
DR
1012 },
1013
1014 'Pod::Simple' => {
a4a12576 1015 'DISTRIBUTION' => 'MARCGREEN/Pod-Simple-3.32.tar.gz',
4f3a742d 1016 'FILES' => q[cpan/Pod-Simple],
4f3a742d
DR
1017 },
1018
0c501878 1019 'Pod::Usage' => {
3735683b 1020 'DISTRIBUTION' => 'MAREKR/Pod-Usage-1.69.tar.gz',
0c501878 1021 'FILES' => q[cpan/Pod-Usage],
0c501878
CBW
1022 },
1023
4f3a742d 1024 'podlators' => {
84d02d20 1025 'DISTRIBUTION' => 'RRA/podlators-4.07.tar.gz',
4f3a742d
DR
1026 'FILES' => q[cpan/podlators pod/perlpodstyle.pod],
1027
4f3a742d
DR
1028 'MAP' => {
1029 '' => 'cpan/podlators/',
4f3a742d 1030 # this file lives outside the cpan/ directory
1efe9157 1031 'pod/perlpodstyle.pod' => 'pod/perlpodstyle.pod',
4f3a742d 1032 },
4f3a742d
DR
1033 },
1034
4f3a742d 1035 'Safe' => {
e739c653 1036 'DISTRIBUTION' => 'RGARCIA/Safe-2.35.tar.gz',
4f3a742d 1037 'FILES' => q[dist/Safe],
4f3a742d
DR
1038 },
1039
1040 'Scalar-List-Utils' => {
e8164ee7 1041 'DISTRIBUTION' => 'PEVANS/Scalar-List-Utils-1.45.tar.gz',
869a9612 1042 'FILES' => q[cpan/Scalar-List-Utils],
7ede3c4f
AC
1043 # Waiting to be merged upstream
1044 # https://github.com/Scalar-List-Utils/Scalar-List-Utils/pull/42
1045 'CUSTOMIZED' => [
1046 qw( ListUtil.xs
1047 lib/List/Util.pm
1048 lib/List/Util/XS.pm
1049 lib/Scalar/Util.pm
1050 lib/Sub/Util.pm
1051 )
1052 ],
4f3a742d
DR
1053 },
1054
4f3a742d 1055 'Search::Dict' => {
0b0a7092 1056 'DISTRIBUTION' => 'DAGOLDEN/Search-Dict-1.07.tar.gz',
4f3a742d 1057 'FILES' => q[dist/Search-Dict],
4f3a742d
DR
1058 },
1059
1060 'SelfLoader' => {
c3958279 1061 'DISTRIBUTION' => 'SMUELLER/SelfLoader-1.20.tar.gz',
4f3a742d
DR
1062 'FILES' => q[dist/SelfLoader],
1063 'EXCLUDED' => ['t/00pod.t'],
4f3a742d
DR
1064 },
1065
4f3a742d 1066 'Socket' => {
06a9195c 1067 'DISTRIBUTION' => 'PEVANS/Socket-2.020.tar.gz',
4f3a742d 1068 'FILES' => q[cpan/Socket],
06a9195c
SH
1069
1070 # https://rt.cpan.org/Ticket/Display.html?id=106797
1071 # https://rt.cpan.org/Ticket/Display.html?id=107058
98e2bb74 1072 # https://rt.cpan.org/Ticket/Display.html?id=111707
06a9195c 1073 'CUSTOMIZED' => [ qw[ Socket.pm Socket.xs ] ],
4f3a742d
DR
1074 },
1075
1076 'Storable' => {
5f4b5e0f 1077 'DISTRIBUTION' => 'AMS/Storable-2.51.tar.gz',
4f3a742d 1078 'FILES' => q[dist/Storable],
76250107
SH
1079 'EXCLUDED' => [
1080 qr{^t/compat/},
1081 ],
4f3a742d
DR
1082 },
1083
4f3a742d 1084 'Sys::Syslog' => {
e57ea7c9 1085 'DISTRIBUTION' => 'SAPER/Sys-Syslog-0.34.tar.gz',
4f3a742d
DR
1086 'FILES' => q[cpan/Sys-Syslog],
1087 'EXCLUDED' => [
1088 qr{^eg/},
84c82da4
SH
1089 qw( README.win32
1090 t/data-validation.t
4f3a742d
DR
1091 t/distchk.t
1092 t/pod.t
1093 t/podcover.t
1094 t/podspell.t
1095 t/portfs.t
1096 win32/PerlLog.RES
4f3a742d
DR
1097 ),
1098 ],
8b56300e
TC
1099 'CUSTOMIZED' => [
1100 # CVE-2016-1238
1101 qw( Syslog.pm )
1102 ],
4f3a742d
DR
1103 },
1104
1105 'Term::ANSIColor' => {
05465a2f 1106 'DISTRIBUTION' => 'RRA/Term-ANSIColor-4.05.tar.gz',
4f3a742d
DR
1107 'FILES' => q[cpan/Term-ANSIColor],
1108 'EXCLUDED' => [
92f80b37
CBW
1109 qr{^examples/},
1110 qr{^t/data/},
5e64492f
CBW
1111 qr{^t/docs/},
1112 qr{^t/style/},
1113 qw( t/module/aliases-env.t ),
4f3a742d 1114 ],
4f3a742d
DR
1115 },
1116
1117 'Term::Cap' => {
23a75734 1118 'DISTRIBUTION' => 'JSTOWE/Term-Cap-1.17.tar.gz',
4f3a742d 1119 'FILES' => q[cpan/Term-Cap],
4f3a742d
DR
1120 },
1121
1122 'Term::Complete' => {
4f3a742d
DR
1123 'DISTRIBUTION' => 'FLORA/Term-Complete-1.402.tar.gz',
1124 'FILES' => q[dist/Term-Complete],
1125 'EXCLUDED' => [qr{^t/release-.*\.t}],
4f3a742d
DR
1126 },
1127
1128 'Term::ReadLine' => {
75ad3638 1129 'DISTRIBUTION' => 'FLORA/Term-ReadLine-1.14.tar.gz',
4f3a742d
DR
1130 'FILES' => q[dist/Term-ReadLine],
1131 'EXCLUDED' => [qr{^t/release-.*\.t}],
4f3a742d
DR
1132 },
1133
4f3a742d 1134 'Test' => {
1c22e001 1135 'DISTRIBUTION' => 'JESSE/Test-1.26.tar.gz',
48458f69 1136 'FILES' => q[dist/Test],
4f3a742d
DR
1137 },
1138
1139 'Test::Harness' => {
3eb3ec0b 1140 'DISTRIBUTION' => 'LEONT/Test-Harness-3.36.tar.gz',
4f3a742d
DR
1141 'FILES' => q[cpan/Test-Harness],
1142 'EXCLUDED' => [
1143 qr{^examples/},
4f3a742d
DR
1144 qr{^xt/},
1145 qw( Changes-2.64
8db65552 1146 MANIFEST.CUMMULATIVE
4f3a742d
DR
1147 HACKING.pod
1148 perlcriticrc
8db65552 1149 t/000-load.t
4f3a742d
DR
1150 t/lib/if.pm
1151 ),
1152 ],
8b56300e
TC
1153 'CUSTOMIZED' => [
1154 # CVE-2016-1238
1155 qw(
1156 bin/prove lib/App/Prove.pm lib/App/Prove/State.pm
1157 lib/App/Prove/State/Result.pm
1158 lib/App/Prove/State/Result/Test.pm
1159 lib/TAP/Base.pm lib/TAP/Formatter/Base.pm
1160 lib/TAP/Formatter/Color.pm
1161 lib/TAP/Formatter/Console.pm
1162 lib/TAP/Formatter/Console/ParallelSession.pm
1163 lib/TAP/Formatter/Console/Session.pm
1164 lib/TAP/Formatter/File.pm
1165 lib/TAP/Formatter/File/Session.pm
1166 lib/TAP/Formatter/Session.pm lib/TAP/Harness.pm
1167 lib/TAP/Harness/Env.pm lib/TAP/Object.pm
1168 lib/TAP/Parser.pm lib/TAP/Parser/Aggregator.pm
1169 lib/TAP/Parser/Grammar.pm
1170 lib/TAP/Parser/Iterator.pm
1171 lib/TAP/Parser/Iterator/Array.pm
1172 lib/TAP/Parser/Iterator/Process.pm
1173 lib/TAP/Parser/Iterator/Stream.pm
1174 lib/TAP/Parser/IteratorFactory.pm
1175 lib/TAP/Parser/Multiplexer.pm
1176 lib/TAP/Parser/Result.pm
1177 lib/TAP/Parser/Result/Bailout.pm
1178 lib/TAP/Parser/Result/Comment.pm
1179 lib/TAP/Parser/Result/Plan.pm
1180 lib/TAP/Parser/Result/Pragma.pm
1181 lib/TAP/Parser/Result/Test.pm
1182 lib/TAP/Parser/Result/Unknown.pm
1183 lib/TAP/Parser/Result/Version.pm
1184 lib/TAP/Parser/Result/YAML.pm
1185 lib/TAP/Parser/ResultFactory.pm
1186 lib/TAP/Parser/Scheduler.pm
1187 lib/TAP/Parser/Scheduler/Job.pm
1188 lib/TAP/Parser/Scheduler/Spinner.pm
1189 lib/TAP/Parser/Source.pm
1190 lib/TAP/Parser/SourceHandler.pm
1191 lib/TAP/Parser/SourceHandler/Executable.pm
1192 lib/TAP/Parser/SourceHandler/File.pm
1193 lib/TAP/Parser/SourceHandler/Handle.pm
1194 lib/TAP/Parser/SourceHandler/Perl.pm
1195 lib/TAP/Parser/SourceHandler/RawTAP.pm
1196 lib/TAP/Parser/YAMLish/Reader.pm
1197 lib/TAP/Parser/YAMLish/Writer.pm
1198 lib/Test/Harness.pm
1199 )
1200 ],
4f3a742d
DR
1201 },
1202
1203 'Test::Simple' => {
0b4ffce6 1204 'DISTRIBUTION' => 'EXODIST/Test-Simple-1.302045.tar.gz',
4f3a742d
DR
1205 'FILES' => q[cpan/Test-Simple],
1206 'EXCLUDED' => [
0b4ffce6
SH
1207 qr{^examples/},
1208 qr{^xt/},
35014935 1209 qw( perltidyrc
80a7dd19 1210 t/00compile.t
c6a6e1c8
CG
1211 t/00-report.t
1212 t/zzz-check-breaks.t
4f3a742d
DR
1213 ),
1214 ],
f266b743 1215 },
4f3a742d
DR
1216
1217 'Text::Abbrev' => {
5e96eee9 1218 'DISTRIBUTION' => 'FLORA/Text-Abbrev-1.02.tar.gz',
4f3a742d
DR
1219 'FILES' => q[dist/Text-Abbrev],
1220 'EXCLUDED' => [qr{^t/release-.*\.t}],
4f3a742d
DR
1221 },
1222
1223 'Text::Balanced' => {
03a97c81 1224 'DISTRIBUTION' => 'SHAY/Text-Balanced-2.03.tar.gz',
4f3a742d
DR
1225 'FILES' => q[cpan/Text-Balanced],
1226 'EXCLUDED' => [
1227 qw( t/97_meta.t
1228 t/98_pod.t
1229 t/99_pmv.t
1230 ),
1231 ],
4f3a742d
DR
1232 },
1233
1234 'Text::ParseWords' => {
a790e348 1235 'DISTRIBUTION' => 'CHORNY/Text-ParseWords-3.30.tar.gz',
4f3a742d 1236 'FILES' => q[cpan/Text-ParseWords],
4f3a742d
DR
1237 },
1238
4f3a742d 1239 'Text-Tabs+Wrap' => {
83aea42c 1240 'DISTRIBUTION' => 'MUIR/modules/Text-Tabs+Wrap-2013.0523.tar.gz',
4f3a742d 1241 'FILES' => q[cpan/Text-Tabs],
e7b92d54
SH
1242 'EXCLUDED' => [
1243 qr/^lib\.old/,
1244 't/dnsparks.t', # see af6492bf9e
4f3a742d 1245 ],
e7b92d54
SH
1246 'MAP' => {
1247 '' => 'cpan/Text-Tabs/',
ab2a3ce2
SH
1248 'lib.modern/Text/Tabs.pm' => 'cpan/Text-Tabs/lib/Text/Tabs.pm',
1249 'lib.modern/Text/Wrap.pm' => 'cpan/Text-Tabs/lib/Text/Wrap.pm',
e7b92d54 1250 },
4f3a742d
DR
1251 },
1252
4e75700d
AC
1253 # Jerry Hedden does take patches that are applied to blead first, even
1254 # though that can be hard to discern from the Git history; so it's
1255 # correct for this (and Thread::Semaphore, threads, and threads::shared)
1256 # to be under dist/ rather than cpan/
4f3a742d 1257 'Thread::Queue' => {
89e2fe52 1258 'DISTRIBUTION' => 'JDHEDDEN/Thread-Queue-3.11.tar.gz',
4f3a742d
DR
1259 'FILES' => q[dist/Thread-Queue],
1260 'EXCLUDED' => [
1fd4700e
JH
1261 qr{^examples/},
1262 qw( t/00_load.t
4f3a742d
DR
1263 t/99_pod.t
1264 t/test.pl
1265 ),
1266 ],
4f3a742d
DR
1267 },
1268
1269 'Thread::Semaphore' => {
4f3a742d
DR
1270 'DISTRIBUTION' => 'JDHEDDEN/Thread-Semaphore-2.12.tar.gz',
1271 'FILES' => q[dist/Thread-Semaphore],
1272 'EXCLUDED' => [
1273 qw( examples/semaphore.pl
1274 t/00_load.t
1275 t/99_pod.t
1276 t/test.pl
1277 ),
1278 ],
4f3a742d
DR
1279 },
1280
1281 'threads' => {
5ea3460b 1282 'DISTRIBUTION' => 'JDHEDDEN/threads-2.09.tar.gz',
4f3a742d
DR
1283 'FILES' => q[dist/threads],
1284 'EXCLUDED' => [
1285 qr{^examples/},
1286 qw( t/pod.t
1287 t/test.pl
1288 threads.h
1289 ),
1290 ],
4f3a742d
DR
1291 },
1292
1293 'threads::shared' => {
83c15bcd 1294 'DISTRIBUTION' => 'JDHEDDEN/threads-shared-1.52.tar.gz',
4f3a742d
DR
1295 'FILES' => q[dist/threads-shared],
1296 'EXCLUDED' => [
1297 qw( examples/class.pl
1298 shared.h
1299 t/pod.t
1300 t/test.pl
1301 ),
1302 ],
4f3a742d
DR
1303 },
1304
1305 'Tie::File' => {
4ac9c666 1306 'DISTRIBUTION' => 'TODDR/Tie-File-1.00.tar.gz',
c0504019 1307 'FILES' => q[dist/Tie-File],
4f3a742d
DR
1308 },
1309
4f3a742d 1310 'Tie::RefHash' => {
4f3a742d
DR
1311 'DISTRIBUTION' => 'FLORA/Tie-RefHash-1.39.tar.gz',
1312 'FILES' => q[cpan/Tie-RefHash],
4f3a742d
DR
1313 },
1314
1315 'Time::HiRes' => {
c4a535af 1316 'DISTRIBUTION' => 'JHI/Time-HiRes-1.9739.tar.gz',
91ba54d4 1317 'FILES' => q[dist/Time-HiRes],
4f3a742d
DR
1318 },
1319
1320 'Time::Local' => {
62e824cf 1321 'DISTRIBUTION' => 'DROLSKY/Time-Local-1.2300.tar.gz',
4f3a742d
DR
1322 'FILES' => q[cpan/Time-Local],
1323 'EXCLUDED' => [
62e824cf 1324 qr{^t/release-.*\.t},
4f3a742d 1325 ],
4f3a742d
DR
1326 },
1327
1328 'Time::Piece' => {
5563b392 1329 'DISTRIBUTION' => 'ESAYM/Time-Piece-1.31.tar.gz',
4f3a742d 1330 'FILES' => q[cpan/Time-Piece],
4f3a742d
DR
1331 },
1332
1333 'Unicode::Collate' => {
6962a25d 1334 'DISTRIBUTION' => 'SADAHIRO/Unicode-Collate-1.14.tar.gz',
4f3a742d
DR
1335 'FILES' => q[cpan/Unicode-Collate],
1336 'EXCLUDED' => [
1337 qr{N$},
1338 qr{^data/},
1339 qr{^gendata/},
1340 qw( disableXS
1341 enableXS
1342 mklocale
1343 ),
1344 ],
4f3a742d
DR
1345 },
1346
1347 'Unicode::Normalize' => {
1ef95abd 1348 'DISTRIBUTION' => 'KHW/Unicode-Normalize-1.25.tar.gz',
4f3a742d 1349 'FILES' => q[cpan/Unicode-Normalize],
1ef95abd
SH
1350 'EXCLUDED' => [
1351 qw( MANIFEST.N
1352 Normalize.pmN
1353 disableXS
1354 enableXS
1355 ),
1356 ],
4f3a742d
DR
1357 },
1358
4f3a742d 1359 'version' => {
38660758 1360 'DISTRIBUTION' => 'JPEACOCK/version-0.9917.tar.gz',
4fa93b19 1361 'FILES' => q[cpan/version vutil.c vutil.h vxs.inc],
4f3a742d 1362 'EXCLUDED' => [
df3ba8e7 1363 qr{^vutil/lib/},
c60b4fa6 1364 'vutil/Makefile.PL',
df3ba8e7
FC
1365 'vutil/ppport.h',
1366 'vutil/vxs.xs',
ce9582af 1367 't/00impl-pp.t',
4f3a742d 1368 't/survey_locales',
d1e81356 1369 'vperl/vpp.pm',
4f3a742d 1370 ],
f81a37f2 1371
c872d591
SH
1372 # When adding the CPAN-distributed files for version.pm, it is necessary
1373 # to delete an entire block out of lib/version.pm, since that code is
1374 # only necessary with the CPAN release.
f81a37f2
SH
1375 'CUSTOMIZED' => [
1376 qw( lib/version.pm
f81a37f2
SH
1377 ),
1378 ],
1379
df3ba8e7 1380 'MAP' => {
4fa93b19 1381 'vutil/' => '',
df3ba8e7
FC
1382 '' => 'cpan/version/',
1383 },
4f3a742d
DR
1384 },
1385
4f3a742d 1386 'warnings' => {
099bebb1 1387 'FILES' => q[
4f3a742d 1388 lib/warnings
099bebb1
SH
1389 lib/warnings.{pm,t}
1390 regen/warnings.pl
4f3a742d 1391 t/lib/warnings
099bebb1 1392 ],
4f3a742d
DR
1393 },
1394
4f3a742d 1395 'Win32' => {
083231ea 1396 'DISTRIBUTION' => "JDB/Win32-0.52.tar.gz",
4f3a742d 1397 'FILES' => q[cpan/Win32],
4f3a742d
DR
1398 },
1399
1400 'Win32API::File' => {
df61f5a9 1401 'DISTRIBUTION' => 'CHORNY/Win32API-File-0.1203.tar.gz',
4f3a742d
DR
1402 'FILES' => q[cpan/Win32API-File],
1403 'EXCLUDED' => [
1404 qr{^ex/},
4f3a742d 1405 ],
4f3a742d
DR
1406 },
1407
4f3a742d 1408 'XSLoader' => {
4c59e697 1409 'DISTRIBUTION' => 'SAPER/XSLoader-0.22.tar.gz',
4f3a742d
DR
1410 'FILES' => q[dist/XSLoader],
1411 'EXCLUDED' => [
1412 qr{^eg/},
57f9caa0
SH
1413 qw( t/00-load.t
1414 t/01-api.t
1415 t/distchk.t
1416 t/pod.t
4f3a742d
DR
1417 t/podcover.t
1418 t/portfs.t
1419 ),
1420 'XSLoader.pm', # we use XSLoader_pm.PL
1421 ],
4f3a742d
DR
1422 },
1423
462ea751
DM
1424 # this pseudo-module represents all the files under ext/ and lib/
1425 # that aren't otherwise claimed. This means that the following two
1426 # commands will check that every file under ext/ and lib/ is
1427 # accounted for, and that there are no duplicates:
1428 #
1429 # perl Porting/Maintainers --checkmani lib ext
d8ada404 1430 # perl Porting/Maintainers --checkmani
462ea751 1431
4f3a742d 1432 '_PERLLIB' => {
2af3c4b9 1433 'FILES' => q[
79852350
AB
1434 ext/Amiga-ARexx/
1435 ext/Amiga-Exec/
09213599 1436 ext/B/
2af3c4b9
SH
1437 ext/Devel-Peek/
1438 ext/DynaLoader/
1439 ext/Errno/
7b4d95f7 1440 ext/ExtUtils-Miniperl/
2af3c4b9
SH
1441 ext/Fcntl/
1442 ext/File-DosGlob/
1443 ext/File-Find/
1444 ext/File-Glob/
1445 ext/FileCache/
1446 ext/GDBM_File/
1447 ext/Hash-Util-FieldHash/
1448 ext/Hash-Util/
1449 ext/I18N-Langinfo/
1450 ext/IPC-Open3/
1451 ext/NDBM_File/
1452 ext/ODBM_File/
1453 ext/Opcode/
1454 ext/POSIX/
1455 ext/PerlIO-encoding/
1456 ext/PerlIO-mmap/
1457 ext/PerlIO-scalar/
1458 ext/PerlIO-via/
1459 ext/Pod-Functions/
1460 ext/Pod-Html/
1461 ext/SDBM_File/
1462 ext/Sys-Hostname/
1463 ext/Tie-Hash-NamedCapture/
1464 ext/Tie-Memoize/
b3dcf775 1465 ext/VMS-DCLsym/
2af3c4b9 1466 ext/VMS-Filespec/
b3dcf775
SH
1467 ext/VMS-Stdio/
1468 ext/Win32CORE/
4f3a742d 1469 ext/XS-APItest/
2af3c4b9
SH
1470 ext/XS-Typemap/
1471 ext/arybase/
1472 ext/attributes/
1473 ext/mro/
1474 ext/re/
1475 lib/AnyDBM_File.{pm,t}
1476 lib/Benchmark.{pm,t}
38eca645 1477 lib/B/Deparse{.pm,.t,-*.t}
f3574cc6 1478 lib/B/Op_private.pm
4f3a742d 1479 lib/CORE.pod
2af3c4b9 1480 lib/Class/Struct.{pm,t}
4f3a742d
DR
1481 lib/Config.t
1482 lib/Config/Extensions.{pm,t}
1483 lib/DB.{pm,t}
2af3c4b9
SH
1484 lib/DBM_Filter.pm
1485 lib/DBM_Filter/
1486 lib/DirHandle.{pm,t}
1487 lib/English.{pm,t}
4f3a742d
DR
1488 lib/ExtUtils/Embed.pm
1489 lib/ExtUtils/XSSymSet.pm
1490 lib/ExtUtils/t/Embed.t
1491 lib/ExtUtils/typemap
2af3c4b9
SH
1492 lib/File/Basename.{pm,t}
1493 lib/File/Compare.{pm,t}
1494 lib/File/Copy.{pm,t}
1495 lib/File/stat{.pm,.t,-7896.t}
1496 lib/FileHandle.{pm,t}
1497 lib/FindBin.{pm,t}
1498 lib/Getopt/Std.{pm,t}
4f3a742d 1499 lib/Internals.t
4b6af431 1500 lib/meta_notation.{pm,t}
4f3a742d
DR
1501 lib/Net/hostent.{pm,t}
1502 lib/Net/netent.{pm,t}
1503 lib/Net/protoent.{pm,t}
1504 lib/Net/servent.{pm,t}
2af3c4b9 1505 lib/PerlIO.pm
4f3a742d
DR
1506 lib/Pod/t/InputObjects.t
1507 lib/Pod/t/Select.t
1508 lib/Pod/t/Usage.t
4f3a742d
DR
1509 lib/Pod/t/utils.t
1510 lib/SelectSaver.{pm,t}
1511 lib/Symbol.{pm,t}
1512 lib/Thread.{pm,t}
1513 lib/Tie/Array.pm
1514 lib/Tie/Array/
1515 lib/Tie/ExtraHash.t
1516 lib/Tie/Handle.pm
1517 lib/Tie/Handle/
2af3c4b9 1518 lib/Tie/Hash.{pm,t}
4f3a742d
DR
1519 lib/Tie/Scalar.{pm,t}
1520 lib/Tie/StdHandle.pm
1521 lib/Tie/SubstrHash.{pm,t}
1522 lib/Time/gmtime.{pm,t}
1523 lib/Time/localtime.{pm,t}
1524 lib/Time/tm.pm
1525 lib/UNIVERSAL.pm
1526 lib/Unicode/README
2af3c4b9 1527 lib/Unicode/UCD.{pm,t}
4f3a742d
DR
1528 lib/User/grent.{pm,t}
1529 lib/User/pwent.{pm,t}
2af3c4b9 1530 lib/_charnames.pm
4f3a742d
DR
1531 lib/blib.{pm,t}
1532 lib/bytes.{pm,t}
1533 lib/bytes_heavy.pl
1534 lib/charnames.{pm,t}
1535 lib/dbm_filter_util.pl
1536 lib/deprecate.pm
2af3c4b9 1537 lib/diagnostics.{pm,t}
4f3a742d
DR
1538 lib/dumpvar.{pl,t}
1539 lib/feature.{pm,t}
1540 lib/feature/
1541 lib/filetest.{pm,t}
1542 lib/h2ph.t
1543 lib/h2xs.t
1544 lib/integer.{pm,t}
1545 lib/less.{pm,t}
1546 lib/locale.{pm,t}
1547 lib/open.{pm,t}
1548 lib/overload/numbers.pm
1549 lib/overloading.{pm,t}
2af3c4b9 1550 lib/overload{.pm,.t,64.t}
4f3a742d
DR
1551 lib/perl5db.{pl,t}
1552 lib/perl5db/
a3b4b767 1553 lib/perlbug.t
2af3c4b9 1554 lib/sigtrap.{pm,t}
4f3a742d
DR
1555 lib/sort.{pm,t}
1556 lib/strict.{pm,t}
1557 lib/subs.{pm,t}
1558 lib/unicore/
1559 lib/utf8.{pm,t}
1560 lib/utf8_heavy.pl
1561 lib/vars{.pm,.t,_carp.t}
1562 lib/vmsish.{pm,t}
1563 ],
4f3a742d 1564 },
462ea751 1565);
b128a327 1566
97556ec3 1567# legacy CPAN flag
4f3a742d 1568for ( values %Modules ) {
97556ec3
GA
1569 $_->{CPAN} = !!$_->{DISTRIBUTION};
1570}
1571
099bebb1
SH
1572# legacy UPSTREAM flag
1573for ( keys %Modules ) {
1574 # Keep any existing UPSTREAM flag so that "overrides" can be applied
1575 next if exists $Modules{$_}{UPSTREAM};
1576
1577 if ($_ eq '_PERLLIB' or $Modules{$_}{FILES} =~ m{^\s*(?:dist|ext|lib)/}) {
1578 $Modules{$_}{UPSTREAM} = 'blead';
1579 }
1580 elsif ($Modules{$_}{FILES} =~ m{^\s*cpan/}) {
1581 $Modules{$_}{UPSTREAM} = 'cpan';
1582 }
1583 else {
1584 warn "Unexpected location of FILES for module $_: $Modules{$_}{FILES}";
1585 }
1586}
1587
d350de41 1588# legacy MAINTAINER field
099bebb1 1589for ( keys %Modules ) {
b3dcf775 1590 # Keep any existing MAINTAINER flag so that "overrides" can be applied
099bebb1
SH
1591 next if exists $Modules{$_}{MAINTAINER};
1592
1593 if ($Modules{$_}{UPSTREAM} eq 'blead') {
1594 $Modules{$_}{MAINTAINER} = 'P5P';
872818ae 1595 $Maintainers{P5P} = 'perl5-porters <perl5-porters@perl.org>';
d350de41 1596 }
099bebb1
SH
1597 elsif (exists $Modules{$_}{DISTRIBUTION}) {
1598 (my $pause_id = $Modules{$_}{DISTRIBUTION}) =~ s{/.*$}{};
1599 $Modules{$_}{MAINTAINER} = $pause_id;
d350de41
SH
1600 $Maintainers{$pause_id} = "<$pause_id\@cpan.org>";
1601 }
099bebb1
SH
1602 else {
1603 warn "No DISTRIBUTION for non-blead module $_";
1604 }
d350de41
SH
1605}
1606
b128a327 16071;