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