This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Upgrade Unicode::Normalize from version 1.19 to 1.21
[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' => {
19606b44 123 'DISTRIBUTION' => 'BINGOS/Archive-Tar-2.04.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' => {
275943c0 170 'DISTRIBUTION' => 'WOLFSAGE/autouse-1.08.tar.gz',
4f3a742d
DR
171 'FILES' => q[dist/autouse],
172 'EXCLUDED' => [qr{^t/release-.*\.t}],
4f3a742d
DR
173 },
174
4f3a742d 175 'B::Debug' => {
372b8708 176 'DISTRIBUTION' => 'RURBAN/B-Debug-1.23.tar.gz',
4f3a742d
DR
177 'FILES' => q[cpan/B-Debug],
178 'EXCLUDED' => ['t/pod.t'],
4f3a742d
DR
179 },
180
4f3a742d 181 'base' => {
7af2899e 182 'DISTRIBUTION' => 'RGARCIA/base-2.18.tar.gz',
4f3a742d 183 'FILES' => q[dist/base],
4f3a742d
DR
184 },
185
4f3a742d 186 'bignum' => {
4ac9c666 187 'DISTRIBUTION' => 'PJACKLAM/bignum-0.37.tar.gz',
4f3a742d
DR
188 'FILES' => q[dist/bignum],
189 'EXCLUDED' => [
190 qr{^inc/Module/},
191 qw( t/pod.t
192 t/pod_cov.t
193 ),
194 ],
4f3a742d
DR
195 },
196
197 'Carp' => {
795b0ba9 198 'DISTRIBUTION' => 'RJBS/Carp-1.36.tar.gz',
4f3a742d 199 'FILES' => q[dist/Carp],
4f3a742d
DR
200 },
201
4f3a742d 202 'Compress::Raw::Bzip2' => {
9e7c8eb7 203 'DISTRIBUTION' => 'PMQS/Compress-Raw-Bzip2-2.069.tar.gz',
4f3a742d
DR
204 'FILES' => q[cpan/Compress-Raw-Bzip2],
205 'EXCLUDED' => [
206 qr{^t/Test/},
207 'bzip2-src/bzip2-cpp.patch',
208 ],
4f3a742d
DR
209 },
210
211 'Compress::Raw::Zlib' => {
2b91859c 212 'DISTRIBUTION' => 'PMQS/Compress-Raw-Zlib-2.069.tar.gz',
4f3a742d
DR
213
214 'FILES' => q[cpan/Compress-Raw-Zlib],
215 'EXCLUDED' => [
84c82da4 216 qr{^examples/},
4f3a742d
DR
217 qr{^t/Test/},
218 qw( t/000prereq.t
219 t/99pod.t
220 ),
221 ],
4f3a742d
DR
222 },
223
4b07058c 224 'Config::Perl::V' => {
6fdf23c2 225 'DISTRIBUTION' => 'HMBRAND/Config-Perl-V-0.24.tgz',
4b07058c 226 'FILES' => q[cpan/Config-Perl-V],
b4ade012
MB
227 'EXCLUDED' => [qw(
228 examples/show-v.pl
b4ade012 229 )],
4b07058c
RS
230 },
231
4f3a742d 232 'constant' => {
8b1ae794 233 'DISTRIBUTION' => 'RJBS/constant-1.33.tar.gz',
4f3a742d
DR
234 'FILES' => q[dist/constant],
235 'EXCLUDED' => [
236 qw( t/00-load.t
237 t/more-tests.t
238 t/pod-coverage.t
239 t/pod.t
240 eg/synopsis.pl
241 ),
242 ],
4f3a742d
DR
243 },
244
245 'CPAN' => {
d210e520 246 'DISTRIBUTION' => 'ANDK/CPAN-2.10.tar.gz',
4f3a742d
DR
247 'FILES' => q[cpan/CPAN],
248 'EXCLUDED' => [
249 qr{^distroprefs/},
250 qr{^inc/Test/},
45a13884
SH
251 qr{^t/CPAN/},
252 qr{^t/data/},
79116533 253 qr{^t/97-},
4f3a742d 254 qw( lib/CPAN/Admin.pm
6156383d 255 scripts/cpan-mirrors
bfae5bde 256 PAUSE2015.pub
4f3a742d
DR
257 SlayMakefile
258 t/00signature.t
259 t/04clean_load.t
260 t/12cpan.t
261 t/13tarzip.t
262 t/14forkbomb.t
263 t/30shell.coverage
264 t/30shell.t
265 t/31sessions.t
266 t/41distribution.t
267 t/42distroprefs.t
268 t/43distroprefspref.t
45a13884 269 t/44cpanmeta.t
4f3a742d
DR
270 t/50pod.t
271 t/51pod.t
272 t/52podcover.t
273 t/60credentials.t
274 t/70_critic.t
bfae5bde 275 t/71_minimumversion.t
4f3a742d
DR
276 t/local_utils.pm
277 t/perlcriticrc
278 t/yaml_code.yml
279 ),
280 ],
f907dd3c
SH
281 # See commit 3198fda65dbcd975c56916e4b98f515fab7f02e5
282 'CUSTOMIZED' => [ qw[ lib/CPAN.pm ] ],
4f3a742d
DR
283 },
284
278337cd
CBW
285 # Note: When updating CPAN-Meta the META.* files will need to be regenerated
286 # perl -Icpan/CPAN-Meta/lib Porting/makemeta
4f3a742d 287 'CPAN::Meta' => {
2b771c51 288 'DISTRIBUTION' => 'DAGOLDEN/CPAN-Meta-2.150005.tar.gz',
4f3a742d
DR
289 'FILES' => q[cpan/CPAN-Meta],
290 'EXCLUDED' => [
f907dd3c
SH
291 qw[t/00-report-prereqs.t
292 t/00-report-prereqs.dd
293 t/data-test/x_deprecated-META.json
294 t/data-valid/x_deprecated-META.yml
295 t/README-data.txt],
4f3a742d
DR
296 qr{^xt},
297 qr{^history},
298 ],
4f3a742d
DR
299 },
300
b6ae0ea7 301 'CPAN::Meta::Requirements' => {
374c951f 302 'DISTRIBUTION' => 'DAGOLDEN/CPAN-Meta-Requirements-2.133.tar.gz',
b6ae0ea7
CBW
303 'FILES' => q[cpan/CPAN-Meta-Requirements],
304 'EXCLUDED' => [
c4814040 305 qw(t/00-report-prereqs.t),
54b7cb30 306 qw(t/00-report-prereqs.dd),
608e531f 307 qw(t/version-cleanup.t),
b6ae0ea7 308 qr{^xt},
b6ae0ea7 309 ],
b6ae0ea7
CBW
310 },
311
4f3a742d 312 'CPAN::Meta::YAML' => {
749f0eb1 313 'DISTRIBUTION' => 'DAGOLDEN/CPAN-Meta-YAML-0.017-TRIAL.tar.gz',
4f3a742d
DR
314 'FILES' => q[cpan/CPAN-Meta-YAML],
315 'EXCLUDED' => [
2954a1e9 316 't/00-report-prereqs.t',
e586de20 317 't/00-report-prereqs.dd',
4f3a742d
DR
318 qr{^xt},
319 ],
4f3a742d
DR
320 },
321
322 'Data::Dumper' => {
50a0759e 323 'DISTRIBUTION' => 'SMUELLER/Data-Dumper-2.154.tar.gz',
4f3a742d 324 'FILES' => q[dist/Data-Dumper],
4f3a742d
DR
325 },
326
327 'DB_File' => {
1bb0c253 328 'DISTRIBUTION' => 'PMQS/DB_File-1.835.tar.gz',
4f3a742d
DR
329 'FILES' => q[cpan/DB_File],
330 'EXCLUDED' => [
331 qr{^patches/},
332 qw( t/pod.t
333 fallback.h
334 fallback.xs
335 ),
336 ],
4f3a742d
DR
337 },
338
4f3a742d 339 'Devel::PPPort' => {
95a7456e 340 'DISTRIBUTION' => 'WOLFSAGE/Devel-PPPort-3.32.tar.gz',
099bebb1
SH
341 # RJBS has asked MHX to have UPSTREAM be 'blead'
342 # (i.e. move this from cpan/ to dist/)
4f3a742d 343 'FILES' => q[cpan/Devel-PPPort],
84c82da4
SH
344 'EXCLUDED' => [
345 'PPPort.pm', # we use PPPort_pm.PL instead
84c82da4 346 ]
4f3a742d
DR
347 },
348
97b1d6e6 349 'Devel::SelfStubber' => {
97b1d6e6
SH
350 'DISTRIBUTION' => 'FLORA/Devel-SelfStubber-1.05.tar.gz',
351 'FILES' => q[dist/Devel-SelfStubber],
352 'EXCLUDED' => [qr{^t/release-.*\.t}],
97b1d6e6
SH
353 },
354
4f3a742d 355 'Digest' => {
4f3a742d
DR
356 'DISTRIBUTION' => 'GAAS/Digest-1.17.tar.gz',
357 'FILES' => q[cpan/Digest],
358 'EXCLUDED' => ['digest-bench'],
4f3a742d
DR
359 },
360
361 'Digest::MD5' => {
38054f44 362 'DISTRIBUTION' => 'GAAS/Digest-MD5-2.54.tar.gz',
4f3a742d
DR
363 'FILES' => q[cpan/Digest-MD5],
364 'EXCLUDED' => ['rfc1321.txt'],
4f3a742d
DR
365 },
366
367 'Digest::SHA' => {
b495b81b 368 'DISTRIBUTION' => 'MSHELOR/Digest-SHA-5.95.tar.gz',
4f3a742d
DR
369 'FILES' => q[cpan/Digest-SHA],
370 'EXCLUDED' => [
371 qw( t/pod.t
372 t/podcover.t
373 examples/dups
374 ),
375 ],
4f3a742d
DR
376 },
377
4f3a742d 378 'Dumpvalue' => {
f6e46c4d 379 'DISTRIBUTION' => 'FLORA/Dumpvalue-1.17.tar.gz',
4f3a742d
DR
380 'FILES' => q[dist/Dumpvalue],
381 'EXCLUDED' => [qr{^t/release-.*\.t}],
4f3a742d
DR
382 },
383
4f3a742d 384 'Encode' => {
0648b1fd 385 'DISTRIBUTION' => 'DANKOGAI/Encode-2.78.tar.gz',
4f3a742d 386 'FILES' => q[cpan/Encode],
0648b1fd
CBW
387 CUSTOMIZED => [
388 qq{cpan/Encode/Encode.xs},
389 qq{cpan/Encode/Unicode/Unicode.xs},
390 qq{cpan/Encode/encoding.pm},
391 ],
4f3a742d
DR
392 },
393
394 'encoding::warnings' => {
4f3a742d
DR
395 'DISTRIBUTION' => 'AUDREYT/encoding-warnings-0.11.tar.gz',
396 'FILES' => q[cpan/encoding-warnings],
397 'EXCLUDED' => [
398 qr{^inc/Module/},
94c85d8e 399 qw(t/0-signature.t),
4f3a742d 400 ],
4f3a742d
DR
401 },
402
4f3a742d 403 'Env' => {
126fc07f 404 'DISTRIBUTION' => 'FLORA/Env-1.04.tar.gz',
4f3a742d
DR
405 'FILES' => q[dist/Env],
406 'EXCLUDED' => [qr{^t/release-.*\.t}],
4f3a742d
DR
407 },
408
de84ff2b 409 'experimental' => {
4fdcb09b 410 'DISTRIBUTION' => 'LEONT/experimental-0.016.tar.gz',
de84ff2b 411 'FILES' => q[cpan/experimental],
4fdcb09b 412 'EXCLUDED' => [qr{^xt/}],
de84ff2b
RS
413 },
414
4f3a742d 415 'Exporter' => {
b4d1bf31 416 'DISTRIBUTION' => 'TODDR/Exporter-5.72.tar.gz',
3110a055 417 'FILES' => q[dist/Exporter],
4f3a742d
DR
418 'EXCLUDED' => [
419 qw( t/pod.t
420 t/use.t
421 ),
422 ],
4f3a742d
DR
423 },
424
425 'ExtUtils::CBuilder' => {
83dcc064 426 'DISTRIBUTION' => 'AMBS/ExtUtils-CBuilder-0.280224.tar.gz',
4f3a742d 427 'FILES' => q[dist/ExtUtils-CBuilder],
a0e78e9f
SH
428 'EXCLUDED' => [
429 qw(README.mkdn),
430 qr{^xt},
431 ],
4f3a742d
DR
432 },
433
4f3a742d 434 'ExtUtils::Constant' => {
4f3a742d
DR
435
436 # Nick has confirmed that while we have diverged from CPAN,
437 # this package isn't primarily maintained in core
438 # Another release will happen "Sometime"
439 'DISTRIBUTION' => '', #'NWCLARK/ExtUtils-Constant-0.16.tar.gz',
440 'FILES' => q[cpan/ExtUtils-Constant],
441 'EXCLUDED' => [
442 qw( lib/ExtUtils/Constant/Aaargh56Hash.pm
443 examples/perl_keyword.pl
444 examples/perl_regcomp_posix_keyword.pl
445 ),
446 ],
4f3a742d
DR
447 },
448
449 'ExtUtils::Install' => {
f1c22b9e 450 'DISTRIBUTION' => 'BINGOS/ExtUtils-Install-2.04.tar.gz',
d393d7e5 451 'FILES' => q[cpan/ExtUtils-Install],
4f3a742d
DR
452 'EXCLUDED' => [
453 qw( t/lib/Test/Builder.pm
454 t/lib/Test/Builder/Module.pm
455 t/lib/Test/More.pm
456 t/lib/Test/Simple.pm
457 t/pod-coverage.t
458 t/pod.t
459 ),
460 ],
4f3a742d
DR
461 },
462
463 'ExtUtils::MakeMaker' => {
2b7c926c 464 'DISTRIBUTION' => 'BINGOS/ExtUtils-MakeMaker-7.10.tar.gz',
4f3a742d
DR
465 'FILES' => q[cpan/ExtUtils-MakeMaker],
466 'EXCLUDED' => [
467 qr{^t/lib/Test/},
468 qr{^(bundled|my)/},
469 qr{^t/Liblist_Kid.t},
470 qr{^t/liblist/},
78fd4358 471 qr{^\.perlcriticrc},
84c82da4
SH
472 'PATCHING',
473 'README.packaging',
4f3a742d 474 ],
2b7c926c
CBW
475 # Upstreamed as https://github.com/Perl-Toolchain-Gang/ExtUtils-MakeMaker/commit/ede9ea4a
476 'CUSTOMIZED' => [
477 qq[lib/ExtUtils/MakeMaker.pm],
478 qq[t/prereq.t],
479 qq[t/vstrings.t],
152e735a
CB
480 # Upstreamed as https://github.com/Perl-Toolchain-Gang/ExtUtils-MakeMaker/commit/dd1e236ab
481 qq[lib/ExtUtils/MM_VMS.pm],
2b7c926c 482 ],
4f3a742d
DR
483 },
484
485 'ExtUtils::Manifest' => {
f660499c 486 'DISTRIBUTION' => 'ETHER/ExtUtils-Manifest-1.70.tar.gz',
854a00d8 487 'FILES' => q[cpan/ExtUtils-Manifest],
4d25f022
SH
488 'EXCLUDED' => [
489 qr(^t/00-report-prereqs),
490 qr(^xt/)
491 ],
4f3a742d
DR
492 },
493
494 'ExtUtils::ParseXS' => {
bdc4e4b2 495 'DISTRIBUTION' => 'SMUELLER/ExtUtils-ParseXS-3.30.tar.gz',
4f3a742d 496 'FILES' => q[dist/ExtUtils-ParseXS],
4f3a742d
DR
497 },
498
4f3a742d 499 'File::Fetch' => {
9d56ca6f 500 'DISTRIBUTION' => 'BINGOS/File-Fetch-0.48.tar.gz',
4f3a742d 501 'FILES' => q[cpan/File-Fetch],
4f3a742d
DR
502 },
503
4f3a742d 504 'File::Path' => {
bfcc9519 505 'DISTRIBUTION' => 'RICHE/File-Path-2.12.tar.gz',
4f3a742d
DR
506 'FILES' => q[cpan/File-Path],
507 'EXCLUDED' => [
bfcc9519
SH
508 qw(t/Path-Class.t),
509 qr{^xt/},
4f3a742d 510 ],
4f3a742d
DR
511 },
512
4f3a742d 513 'File::Temp' => {
3d5f905f 514 'DISTRIBUTION' => 'DAGOLDEN/File-Temp-0.2304.tar.gz',
4f3a742d
DR
515 'FILES' => q[cpan/File-Temp],
516 'EXCLUDED' => [
517 qw( misc/benchmark.pl
518 misc/results.txt
519 ),
814e893f
CBW
520 qw[t/00-report-prereqs.t],
521 qr{^xt},
4f3a742d 522 ],
4f3a742d
DR
523 },
524
4f3a742d 525 'Filter::Simple' => {
37ffe967 526 'DISTRIBUTION' => 'SMUELLER/Filter-Simple-0.91.tar.gz',
4f3a742d
DR
527 'FILES' => q[dist/Filter-Simple],
528 'EXCLUDED' => [
4f3a742d
DR
529 qr{^demo/}
530 ],
4f3a742d
DR
531 },
532
533 'Filter::Util::Call' => {
356231b0 534 'DISTRIBUTION' => 'RURBAN/Filter-1.55.tar.gz',
4f3a742d
DR
535 'FILES' => q[cpan/Filter-Util-Call
536 pod/perlfilter.pod
537 ],
538 'EXCLUDED' => [
539 qr{^decrypt/},
540 qr{^examples/},
541 qr{^Exec/},
542 qr{^lib/Filter/},
543 qr{^tee/},
544 qw( Call/Makefile.PL
545 Call/ppport.h
546 Call/typemap
547 mytest
548 t/cpp.t
549 t/decrypt.t
550 t/exec.t
551 t/order.t
4f3a742d
DR
552 t/sh.t
553 t/tee.t
533d93cc
SH
554 t/z_kwalitee.t
555 t/z_meta.t
556 t/z_perl_minimum_version.t
557 t/z_pod-coverage.t
558 t/z_pod.t
4f3a742d
DR
559 ),
560 ],
561 'MAP' => {
562 'Call/' => 'cpan/Filter-Util-Call/',
563 'filter-util.pl' => 'cpan/Filter-Util-Call/filter-util.pl',
564 'perlfilter.pod' => 'pod/perlfilter.pod',
565 '' => 'cpan/Filter-Util-Call/',
566 },
4f3a742d
DR
567 },
568
4f3a742d 569 'Getopt::Long' => {
083087af 570 'DISTRIBUTION' => 'JV/Getopt-Long-2.47.tar.gz',
4f3a742d
DR
571 'FILES' => q[cpan/Getopt-Long],
572 'EXCLUDED' => [
573 qr{^examples/},
574 qw( perl-Getopt-Long.spec
575 lib/newgetopt.pl
974d5816 576 t/gol-compat.t
4f3a742d
DR
577 ),
578 ],
4f3a742d
DR
579 },
580
4f3a742d 581 'HTTP::Tiny' => {
99527ef1 582 'DISTRIBUTION' => 'DAGOLDEN/HTTP-Tiny-0.056.tar.gz',
4f3a742d
DR
583 'FILES' => q[cpan/HTTP-Tiny],
584 'EXCLUDED' => [
fcfb9f49 585 't/00-report-prereqs.t',
57d69a40 586 't/00-report-prereqs.dd',
4f3a742d 587 't/200_live.t',
44347bc3 588 't/200_live_local_ip.t',
fcfb9f49 589 't/210_live_ssl.t',
4f3a742d
DR
590 qr/^eg/,
591 qr/^xt/
592 ],
4f3a742d
DR
593 },
594
595 'I18N::Collate' => {
4f3a742d
DR
596 'DISTRIBUTION' => 'FLORA/I18N-Collate-1.02.tar.gz',
597 'FILES' => q[dist/I18N-Collate],
598 'EXCLUDED' => [qr{^t/release-.*\.t}],
4f3a742d
DR
599 },
600
4f3a742d 601 'I18N::LangTags' => {
4f3a742d 602 'FILES' => q[dist/I18N-LangTags],
4f3a742d
DR
603 },
604
605 'if' => {
f7294c1d 606 'DISTRIBUTION' => 'RJBS/if-0.0606.tar.gz',
4f3a742d 607 'FILES' => q[dist/if],
4f3a742d
DR
608 },
609
610 'IO' => {
4f3a742d
DR
611 'DISTRIBUTION' => 'GBARR/IO-1.25.tar.gz',
612 'FILES' => q[dist/IO/],
613 'EXCLUDED' => ['t/test.pl'],
4f3a742d
DR
614 },
615
616 'IO-Compress' => {
7dcc7d3d 617 'DISTRIBUTION' => 'PMQS/IO-Compress-2.069.tar.gz',
4f3a742d 618 'FILES' => q[cpan/IO-Compress],
84c82da4
SH
619 'EXCLUDED' => [
620 qr{^examples/},
621 qr{^t/Test/},
622 't/010examples-bzip2.t',
623 't/010examples-zlib.t',
624 't/cz-05examples.t',
625 ],
4f3a742d
DR
626 },
627
74a30e96 628 'IO::Socket::IP' => {
be3cfe4c 629 'DISTRIBUTION' => 'PEVANS/IO-Socket-IP-0.37.tar.gz',
74a30e96
CBW
630 'FILES' => q[cpan/IO-Socket-IP],
631 'EXCLUDED' => [
632 qr{^examples/},
633 ],
634 },
635
4f3a742d 636 'IO::Zlib' => {
4f3a742d
DR
637 'DISTRIBUTION' => 'TOMHUGHES/IO-Zlib-1.10.tar.gz',
638 'FILES' => q[cpan/IO-Zlib],
4f3a742d
DR
639 },
640
641 'IPC::Cmd' => {
9c213c25 642 'DISTRIBUTION' => 'BINGOS/IPC-Cmd-0.92.tar.gz',
4f3a742d 643 'FILES' => q[cpan/IPC-Cmd],
4f3a742d
DR
644 },
645
4f3a742d 646 'IPC::SysV' => {
dd0df890 647 'DISTRIBUTION' => 'MHX/IPC-SysV-2.04.tar.gz',
4f3a742d
DR
648 'FILES' => q[cpan/IPC-SysV],
649 'EXCLUDED' => [
650 qw( const-c.inc
651 const-xs.inc
652 ),
653 ],
4f3a742d
DR
654 },
655
656 'JSON::PP' => {
87f3ebe4 657 'DISTRIBUTION' => 'MAKAMAKA/JSON-PP-2.27300.tar.gz',
4f3a742d 658 'FILES' => q[cpan/JSON-PP],
4f3a742d
DR
659 },
660
661 'lib' => {
4f3a742d
DR
662 'DISTRIBUTION' => 'SMUELLER/lib-0.63.tar.gz',
663 'FILES' => q[dist/lib/],
664 'EXCLUDED' => [
665 qw( forPAUSE/lib.pm
666 t/00pod.t
667 ),
668 ],
4f3a742d
DR
669 },
670
671 'libnet' => {
db956464 672 'DISTRIBUTION' => 'SHAY/libnet-3.07.tar.gz',
4f3a742d
DR
673 'FILES' => q[cpan/libnet],
674 'EXCLUDED' => [
675 qw( Configure
2901a52f 676 t/changes.t
59e3cdd4
SH
677 t/critic.t
678 t/pod.t
679 t/pod_coverage.t
4f3a742d 680 ),
84c82da4 681 qr(^demos/),
dadfa42f 682 qr(^t/external/),
4f3a742d 683 ],
4f3a742d
DR
684 },
685
686 'Locale-Codes' => {
90b2cbd5 687 'DISTRIBUTION' => 'SBECK/Locale-Codes-3.36.tar.gz',
4f3a742d
DR
688 'FILES' => q[cpan/Locale-Codes],
689 'EXCLUDED' => [
84c82da4 690 qw( README.first
8eadc45b 691 t/pod_coverage.ign
84c82da4 692 t/pod_coverage.t
4f3a742d
DR
693 t/pod.t),
694 qr{^t/runtests},
695 qr{^t/runtests\.bat},
696 qr{^internal/},
697 qr{^examples/},
698 ],
4f3a742d
DR
699 },
700
701 'Locale::Maketext' => {
2310e174 702 'DISTRIBUTION' => 'TODDR/Locale-Maketext-1.26.tar.gz',
4f3a742d
DR
703 'FILES' => q[dist/Locale-Maketext],
704 'EXCLUDED' => [
705 qw(
706 perlcriticrc
707 t/00_load.t
708 t/pod.t
709 ),
710 ],
4f3a742d
DR
711 },
712
713 'Locale::Maketext::Simple' => {
4f3a742d
DR
714 'DISTRIBUTION' => 'JESSE/Locale-Maketext-Simple-0.21.tar.gz',
715 'FILES' => q[cpan/Locale-Maketext-Simple],
4f3a742d
DR
716 },
717
4f3a742d 718 'Math::BigInt' => {
a85b9398 719 'DISTRIBUTION' => 'PJACKLAM/Math-BigInt-1.9997.tar.gz',
6b0f9b46 720 'FILES' => q[cpan/Math-BigInt],
4f3a742d
DR
721 'EXCLUDED' => [
722 qr{^inc/},
723 qr{^examples/},
724 qw( t/00sig.t
725 t/01load.t
726 t/02pod.t
727 t/03podcov.t
728 ),
729 ],
4f3a742d
DR
730 },
731
732 'Math::BigInt::FastCalc' => {
4ac9c666 733 'DISTRIBUTION' => 'PJACKLAM/Math-BigInt-FastCalc-0.31.tar.gz',
6b0f9b46 734 'FILES' => q[cpan/Math-BigInt-FastCalc],
4f3a742d
DR
735 'EXCLUDED' => [
736 qr{^inc/},
737 qw( t/00sig.t
738 t/01load.t
739 t/02pod.t
740 t/03podcov.t
741 ),
742
743 # instead we use the versions of these test
744 # files that come with Math::BigInt:
745 qw( t/bigfltpm.inc
746 t/bigfltpm.t
747 t/bigintpm.inc
748 t/bigintpm.t
749 t/mbimbf.inc
750 t/mbimbf.t
751 ),
752 ],
4f3a742d
DR
753 },
754
755 'Math::BigRat' => {
4ac9c666 756 'DISTRIBUTION' => 'PJACKLAM/Math-BigRat-0.2606.tar.gz',
6b0f9b46 757 'FILES' => q[cpan/Math-BigRat],
4f3a742d
DR
758 'EXCLUDED' => [
759 qr{^inc/},
760 qw( t/00sig.t
761 t/01load.t
762 t/02pod.t
763 t/03podcov.t
764 ),
765 ],
4f3a742d
DR
766 },
767
768 'Math::Complex' => {
04ae1553 769 'DISTRIBUTION' => 'ZEFRAM/Math-Complex-1.59.tar.gz',
4f3a742d
DR
770 'FILES' => q[cpan/Math-Complex],
771 'EXCLUDED' => [
772 qw( t/pod.t
773 t/pod-coverage.t
774 ),
775 ],
4f3a742d
DR
776 },
777
778 'Memoize' => {
8114efa0 779 'DISTRIBUTION' => 'MJD/Memoize-1.03.tgz',
4f3a742d
DR
780 'FILES' => q[cpan/Memoize],
781 'EXCLUDED' => ['article.html'],
4f3a742d
DR
782 },
783
784 'MIME::Base64' => {
6b10655d 785 'DISTRIBUTION' => 'GAAS/MIME-Base64-3.15.tar.gz',
4f3a742d
DR
786 'FILES' => q[cpan/MIME-Base64],
787 'EXCLUDED' => ['t/bad-sv.t'],
4f3a742d
DR
788 },
789
4f3a742d 790 'Module::CoreList' => {
b5dd2dd3 791 'DISTRIBUTION' => 'BINGOS/Module-CoreList-5.20150920.tar.gz',
4f3a742d 792 'FILES' => q[dist/Module-CoreList],
4f3a742d
DR
793 },
794
795 'Module::Load' => {
58572ed8 796 'DISTRIBUTION' => 'BINGOS/Module-Load-0.32.tar.gz',
4f3a742d 797 'FILES' => q[cpan/Module-Load],
4f3a742d
DR
798 },
799
800 'Module::Load::Conditional' => {
a1f2a8e1 801 'DISTRIBUTION' => 'BINGOS/Module-Load-Conditional-0.64.tar.gz',
4f3a742d 802 'FILES' => q[cpan/Module-Load-Conditional],
4f3a742d
DR
803 },
804
805 'Module::Loaded' => {
4f3a742d
DR
806 'DISTRIBUTION' => 'BINGOS/Module-Loaded-0.08.tar.gz',
807 'FILES' => q[cpan/Module-Loaded],
4f3a742d
DR
808 },
809
810 'Module::Metadata' => {
72b8c7a2 811 'DISTRIBUTION' => 'ETHER/Module-Metadata-1.000027.tar.gz',
4f3a742d
DR
812 'FILES' => q[cpan/Module-Metadata],
813 'EXCLUDED' => [
b9beed70 814 qw(t/00-report-prereqs.t),
adc2cdfb 815 qw(t/00-report-prereqs.dd),
4f3a742d
DR
816 qr{^xt},
817 ],
4f3a742d
DR
818 },
819
4f3a742d 820 'Net::Ping' => {
4e0aac35 821 'DISTRIBUTION' => 'SMPETERS/Net-Ping-2.41.tar.gz',
4f3a742d 822 'FILES' => q[dist/Net-Ping],
4f3a742d
DR
823 },
824
825 'NEXT' => {
4f3a742d
DR
826 'DISTRIBUTION' => 'FLORA/NEXT-0.65.tar.gz',
827 'FILES' => q[cpan/NEXT],
828 'EXCLUDED' => [qr{^demo/}],
4f3a742d
DR
829 },
830
4f3a742d 831 'Params::Check' => {
8b21fa03 832 'DISTRIBUTION' => 'BINGOS/Params-Check-0.38.tar.gz',
4f3a742d 833 'FILES' => q[cpan/Params-Check],
4f3a742d
DR
834 },
835
836 'parent' => {
bdb6acef 837 'DISTRIBUTION' => 'CORION/parent-0.234.tar.gz',
4f3a742d 838 'FILES' => q[cpan/parent],
4f3a742d
DR
839 },
840
841 'Parse::CPAN::Meta' => {
9716828a 842 'DISTRIBUTION' => 'DAGOLDEN/Parse-CPAN-Meta-1.4417.tar.gz',
4f3a742d 843 'FILES' => q[cpan/Parse-CPAN-Meta],
342e4710 844 'EXCLUDED' => [
f907dd3c 845 qw[t/00-report-prereqs.dd],
342e4710
CBW
846 qw[t/00-report-prereqs.t],
847 qr{^xt},
848 ],
4f3a742d
DR
849 },
850
851 'PathTools' => {
4d90bfb5 852 'DISTRIBUTION' => 'SMUELLER/PathTools-3.47.tar.gz',
cb8c8458 853 'FILES' => q[dist/PathTools],
4f3a742d 854 'EXCLUDED' => [qr{^t/lib/Test/}],
4f3a742d
DR
855 },
856
97b1d6e6 857 'Perl::OSType' => {
76f6b771 858 'DISTRIBUTION' => 'DAGOLDEN/Perl-OSType-1.009.tar.gz',
97b1d6e6 859 'FILES' => q[cpan/Perl-OSType],
765955c0 860 'EXCLUDED' => [qw(tidyall.ini), qr/^xt/, qr{^t/00-}],
97b1d6e6
SH
861 },
862
97b1d6e6 863 'perlfaq' => {
5eeb15d3 864 'DISTRIBUTION' => 'LLAP/perlfaq-5.021010.tar.gz',
97b1d6e6
SH
865 'FILES' => q[cpan/perlfaq],
866 'EXCLUDED' => [
4d25f022 867 qw( inc/CreateQuestionList.pm
e3ef4406 868 inc/perlfaq.tt
4d25f022
SH
869 t/00-compile.t),
870 qr{^xt/},
97b1d6e6 871 ],
97b1d6e6
SH
872 },
873
4f3a742d 874 'PerlIO::via::QuotedPrint' => {
96623e31 875 'DISTRIBUTION' => 'SHAY/PerlIO-via-QuotedPrint-0.08.tar.gz',
4f3a742d 876 'FILES' => q[cpan/PerlIO-via-QuotedPrint],
4f3a742d
DR
877 },
878
0c501878 879 'Pod::Checker' => {
0c501878
CBW
880 'DISTRIBUTION' => 'MAREKR/Pod-Checker-1.60.tar.gz',
881 'FILES' => q[cpan/Pod-Checker],
0c501878
CBW
882 },
883
4f3a742d 884 'Pod::Escapes' => {
f347d3e3 885 'DISTRIBUTION' => 'NEILB/Pod-Escapes-1.07.tar.gz',
4f3a742d 886 'FILES' => q[cpan/Pod-Escapes],
4f3a742d
DR
887 },
888
4f3a742d 889 'Pod::Parser' => {
534577b2 890 'DISTRIBUTION' => 'MAREKR/Pod-Parser-1.63.tar.gz',
4f3a742d 891 'FILES' => q[cpan/Pod-Parser],
4f3a742d
DR
892 },
893
894 'Pod::Perldoc' => {
96f13870 895 'DISTRIBUTION' => 'MALLEN/Pod-Perldoc-3.25.tar.gz',
00e518b3 896 'FILES' => q[cpan/Pod-Perldoc],
4f3a742d 897
fa884b76
DM
898 # Note that we use the CPAN-provided Makefile.PL, since it
899 # contains special handling of the installation of perldoc.pod
900
901 # In blead, the perldoc executable is generated by perldoc.PL
4f3a742d
DR
902 # instead
903 # XXX We can and should fix this, but clean up the DRY-failure in utils
904 # first
905 'EXCLUDED' => ['perldoc'],
18c028dd
AB
906
907 # https://rt.cpan.org/Ticket/Display.html?id=106798
908 'CUSTOMIZED' => [ qw[ lib/Pod/Perldoc.pm ] ],
4f3a742d
DR
909 },
910
911 'Pod::Simple' => {
8226f508 912 'DISTRIBUTION' => 'DWHEELER/Pod-Simple-3.30.tar.gz',
4f3a742d 913 'FILES' => q[cpan/Pod-Simple],
8226f508
TC
914 # https://rt.cpan.org/Public/Bug/Display.html?id=103439
915 # https://rt.cpan.org/Public/Bug/Display.html?id=105192
916 # https://rt.cpan.org/Public/Bug/Display.html?id=105511
917 'CUSTOMIZED' => [
918 qw( lib/Pod/Simple/Search.pm
919 lib/Pod/Simple/BlackBox.pm
920 t/search10.t
921 t/search12.t
922 t/search20.t
923 t/search22.t
924 t/search26.t
925 t/search28.t
926 ),
927 ],
4f3a742d
DR
928 },
929
0c501878 930 'Pod::Usage' => {
969c6694 931 'DISTRIBUTION' => 'MAREKR/Pod-Usage-1.67.tar.gz',
0c501878 932 'FILES' => q[cpan/Pod-Usage],
0c501878
CBW
933 },
934
4f3a742d 935 'podlators' => {
b52cde68 936 'DISTRIBUTION' => 'RRA/podlators-2.5.3.tar.gz',
4f3a742d
DR
937 'FILES' => q[cpan/podlators pod/perlpodstyle.pod],
938
939 # The perl distribution has pod2man.PL and pod2text.PL, which are
940 # run to create pod2man and pod2text, while the CPAN distribution
941 # just has the post-generated pod2man and pod2text files.
942 # The following entries attempt to codify that odd fact.
943 'CUSTOMIZED' => [
944 qw( scripts/pod2man.PL
945 scripts/pod2text.PL
4f3a742d
DR
946 ),
947 ],
948 'MAP' => {
949 '' => 'cpan/podlators/',
950 'scripts/pod2man' => 'cpan/podlators/scripts/pod2man.PL',
951 'scripts/pod2text' => 'cpan/podlators/scripts/pod2text.PL',
952
953 # this file lives outside the cpan/ directory
954 'pod/perlpodstyle.pod' => 'pod/perlpodstyle.pod',
955 },
4f3a742d
DR
956 },
957
4f3a742d 958 'Safe' => {
e739c653 959 'DISTRIBUTION' => 'RGARCIA/Safe-2.35.tar.gz',
4f3a742d 960 'FILES' => q[dist/Safe],
4f3a742d
DR
961 },
962
963 'Scalar-List-Utils' => {
3d58dd24 964 'DISTRIBUTION' => 'PEVANS/Scalar-List-Utils-1.42.tar.gz',
869a9612
SH
965 'FILES' => q[cpan/Scalar-List-Utils],
966 # Waiting to be merged upstream:
967 # https://github.com/Scalar-List-Utils/Scalar-List-Utils/pull/24
968 'CUSTOMIZED' => [
969 qw( ListUtil.xs
970 lib/List/Util.pm
971 lib/List/Util/XS.pm
972 lib/Scalar/Util.pm
973 lib/Sub/Util.pm
974 )
975 ],
4f3a742d
DR
976 },
977
4f3a742d 978 'Search::Dict' => {
0b0a7092 979 'DISTRIBUTION' => 'DAGOLDEN/Search-Dict-1.07.tar.gz',
4f3a742d 980 'FILES' => q[dist/Search-Dict],
4f3a742d
DR
981 },
982
983 'SelfLoader' => {
c3958279 984 'DISTRIBUTION' => 'SMUELLER/SelfLoader-1.20.tar.gz',
4f3a742d
DR
985 'FILES' => q[dist/SelfLoader],
986 'EXCLUDED' => ['t/00pod.t'],
4f3a742d
DR
987 },
988
4f3a742d 989 'Socket' => {
50e79584 990 'DISTRIBUTION' => 'PEVANS/Socket-2.020.tar.gz',
4f3a742d 991 'FILES' => q[cpan/Socket],
99ee6704
AB
992
993 # https://rt.cpan.org/Ticket/Display.html?id=106797
994 'CUSTOMIZED' => [ qw[ Socket.xs ] ],
4f3a742d
DR
995 },
996
997 'Storable' => {
5f4b5e0f 998 'DISTRIBUTION' => 'AMS/Storable-2.51.tar.gz',
4f3a742d 999 'FILES' => q[dist/Storable],
4f3a742d
DR
1000 },
1001
4f3a742d 1002 'Sys::Syslog' => {
848ca32c 1003 'DISTRIBUTION' => 'SAPER/Sys-Syslog-0.33.tar.gz',
4f3a742d
DR
1004 'FILES' => q[cpan/Sys-Syslog],
1005 'EXCLUDED' => [
1006 qr{^eg/},
84c82da4
SH
1007 qw( README.win32
1008 t/data-validation.t
4f3a742d
DR
1009 t/distchk.t
1010 t/pod.t
1011 t/podcover.t
1012 t/podspell.t
1013 t/portfs.t
1014 win32/PerlLog.RES
4f3a742d
DR
1015 ),
1016 ],
4f3a742d
DR
1017 },
1018
1019 'Term::ANSIColor' => {
5e64492f 1020 'DISTRIBUTION' => 'RRA/Term-ANSIColor-4.03.tar.gz',
4f3a742d
DR
1021 'FILES' => q[cpan/Term-ANSIColor],
1022 'EXCLUDED' => [
92f80b37
CBW
1023 qr{^examples/},
1024 qr{^t/data/},
5e64492f
CBW
1025 qr{^t/docs/},
1026 qr{^t/style/},
1027 qw( t/module/aliases-env.t ),
4f3a742d 1028 ],
4f3a742d
DR
1029 },
1030
1031 'Term::Cap' => {
23a75734 1032 'DISTRIBUTION' => 'JSTOWE/Term-Cap-1.17.tar.gz',
4f3a742d 1033 'FILES' => q[cpan/Term-Cap],
4f3a742d
DR
1034 },
1035
1036 'Term::Complete' => {
4f3a742d
DR
1037 'DISTRIBUTION' => 'FLORA/Term-Complete-1.402.tar.gz',
1038 'FILES' => q[dist/Term-Complete],
1039 'EXCLUDED' => [qr{^t/release-.*\.t}],
4f3a742d
DR
1040 },
1041
1042 'Term::ReadLine' => {
75ad3638 1043 'DISTRIBUTION' => 'FLORA/Term-ReadLine-1.14.tar.gz',
4f3a742d
DR
1044 'FILES' => q[dist/Term-ReadLine],
1045 'EXCLUDED' => [qr{^t/release-.*\.t}],
4f3a742d
DR
1046 },
1047
4f3a742d 1048 'Test' => {
1c22e001 1049 'DISTRIBUTION' => 'JESSE/Test-1.26.tar.gz',
48458f69 1050 'FILES' => q[dist/Test],
4f3a742d
DR
1051 },
1052
1053 'Test::Harness' => {
2cc1a90a 1054 'DISTRIBUTION' => 'LEONT/Test-Harness-3.35.tar.gz',
4f3a742d
DR
1055 'FILES' => q[cpan/Test-Harness],
1056 'EXCLUDED' => [
1057 qr{^examples/},
1058 qr{^inc/},
1059 qr{^t/lib/Test/},
1060 qr{^xt/},
1061 qw( Changes-2.64
8db65552 1062 MANIFEST.CUMMULATIVE
4f3a742d
DR
1063 NotBuild.PL
1064 HACKING.pod
1065 perlcriticrc
8db65552 1066 t/000-load.t
4f3a742d
DR
1067 t/lib/if.pm
1068 ),
1069 ],
4f3a742d
DR
1070 },
1071
1072 'Test::Simple' => {
80a7dd19 1073 'DISTRIBUTION' => 'EXODIST/Test-Simple-1.001014.tar.gz',
4f3a742d
DR
1074 'FILES' => q[cpan/Test-Simple],
1075 'EXCLUDED' => [
6dab8563 1076 qr{^t/xt},
86e082c9 1077 qr{^xt},
4f3a742d
DR
1078 qw( .perlcriticrc
1079 .perltidyrc
84c82da4
SH
1080 examples/indent.pl
1081 examples/subtest.t
80a7dd19 1082 t/00compile.t
18864292 1083 t/xxx-changes_updated.t
4f3a742d
DR
1084 ),
1085 ],
f266b743 1086 },
4f3a742d
DR
1087
1088 'Text::Abbrev' => {
5e96eee9 1089 'DISTRIBUTION' => 'FLORA/Text-Abbrev-1.02.tar.gz',
4f3a742d
DR
1090 'FILES' => q[dist/Text-Abbrev],
1091 'EXCLUDED' => [qr{^t/release-.*\.t}],
4f3a742d
DR
1092 },
1093
1094 'Text::Balanced' => {
03a97c81 1095 'DISTRIBUTION' => 'SHAY/Text-Balanced-2.03.tar.gz',
4f3a742d
DR
1096 'FILES' => q[cpan/Text-Balanced],
1097 'EXCLUDED' => [
1098 qw( t/97_meta.t
1099 t/98_pod.t
1100 t/99_pmv.t
1101 ),
1102 ],
4f3a742d
DR
1103 },
1104
1105 'Text::ParseWords' => {
a790e348 1106 'DISTRIBUTION' => 'CHORNY/Text-ParseWords-3.30.tar.gz',
4f3a742d 1107 'FILES' => q[cpan/Text-ParseWords],
4f3a742d 1108
a790e348
SH
1109 # Waiting to be merged upstream:
1110 # see https://github.com/chorny/Text-ParseWords/pull/6
f81a37f2
SH
1111 'CUSTOMIZED' => [
1112 qw( t/ParseWords.t
f81a37f2
SH
1113 ),
1114 ],
4f3a742d
DR
1115 },
1116
4f3a742d 1117 'Text-Tabs+Wrap' => {
83aea42c 1118 'DISTRIBUTION' => 'MUIR/modules/Text-Tabs+Wrap-2013.0523.tar.gz',
4f3a742d 1119 'FILES' => q[cpan/Text-Tabs],
e7b92d54
SH
1120 'EXCLUDED' => [
1121 qr/^lib\.old/,
1122 't/dnsparks.t', # see af6492bf9e
4f3a742d 1123 ],
e7b92d54
SH
1124 'MAP' => {
1125 '' => 'cpan/Text-Tabs/',
ab2a3ce2
SH
1126 'lib.modern/Text/Tabs.pm' => 'cpan/Text-Tabs/lib/Text/Tabs.pm',
1127 'lib.modern/Text/Wrap.pm' => 'cpan/Text-Tabs/lib/Text/Wrap.pm',
e7b92d54 1128 },
4f3a742d
DR
1129 },
1130
4e75700d
AC
1131 # Jerry Hedden does take patches that are applied to blead first, even
1132 # though that can be hard to discern from the Git history; so it's
1133 # correct for this (and Thread::Semaphore, threads, and threads::shared)
1134 # to be under dist/ rather than cpan/
4f3a742d 1135 'Thread::Queue' => {
e128eaa1 1136 'DISTRIBUTION' => 'JDHEDDEN/Thread-Queue-3.06.tar.gz',
4f3a742d
DR
1137 'FILES' => q[dist/Thread-Queue],
1138 'EXCLUDED' => [
1fd4700e
JH
1139 qr{^examples/},
1140 qw( t/00_load.t
4f3a742d
DR
1141 t/99_pod.t
1142 t/test.pl
1143 ),
1144 ],
4f3a742d
DR
1145 },
1146
1147 'Thread::Semaphore' => {
4f3a742d
DR
1148 'DISTRIBUTION' => 'JDHEDDEN/Thread-Semaphore-2.12.tar.gz',
1149 'FILES' => q[dist/Thread-Semaphore],
1150 'EXCLUDED' => [
1151 qw( examples/semaphore.pl
1152 t/00_load.t
1153 t/99_pod.t
1154 t/test.pl
1155 ),
1156 ],
4f3a742d
DR
1157 },
1158
1159 'threads' => {
aa8d754d 1160 'DISTRIBUTION' => 'JDHEDDEN/threads-2.02.tar.gz',
4f3a742d
DR
1161 'FILES' => q[dist/threads],
1162 'EXCLUDED' => [
1163 qr{^examples/},
1164 qw( t/pod.t
1165 t/test.pl
1166 threads.h
1167 ),
1168 ],
4f3a742d
DR
1169 },
1170
1171 'threads::shared' => {
f3f2f486 1172 'DISTRIBUTION' => 'JDHEDDEN/threads-shared-1.48.tar.gz',
4f3a742d
DR
1173 'FILES' => q[dist/threads-shared],
1174 'EXCLUDED' => [
1175 qw( examples/class.pl
1176 shared.h
1177 t/pod.t
1178 t/test.pl
1179 ),
1180 ],
4f3a742d
DR
1181 },
1182
1183 'Tie::File' => {
4ac9c666 1184 'DISTRIBUTION' => 'TODDR/Tie-File-1.00.tar.gz',
c0504019 1185 'FILES' => q[dist/Tie-File],
4f3a742d
DR
1186 },
1187
4f3a742d 1188 'Tie::RefHash' => {
4f3a742d
DR
1189 'DISTRIBUTION' => 'FLORA/Tie-RefHash-1.39.tar.gz',
1190 'FILES' => q[cpan/Tie-RefHash],
4f3a742d
DR
1191 },
1192
1193 'Time::HiRes' => {
120b53f9 1194 'DISTRIBUTION' => 'RJBS/Time-HiRes-1.9727_02.tar.gz',
4f3a742d 1195 'FILES' => q[cpan/Time-HiRes],
4f3a742d
DR
1196 },
1197
1198 'Time::Local' => {
62e824cf 1199 'DISTRIBUTION' => 'DROLSKY/Time-Local-1.2300.tar.gz',
4f3a742d
DR
1200 'FILES' => q[cpan/Time-Local],
1201 'EXCLUDED' => [
62e824cf 1202 qr{^t/release-.*\.t},
4f3a742d 1203 ],
4f3a742d
DR
1204 },
1205
1206 'Time::Piece' => {
12bbe8b8 1207 'DISTRIBUTION' => 'RJBS/Time-Piece-1.30.tar.gz',
4f3a742d 1208 'FILES' => q[cpan/Time-Piece],
4f3a742d
DR
1209 },
1210
1211 'Unicode::Collate' => {
6962a25d 1212 'DISTRIBUTION' => 'SADAHIRO/Unicode-Collate-1.14.tar.gz',
4f3a742d
DR
1213 'FILES' => q[cpan/Unicode-Collate],
1214 'EXCLUDED' => [
1215 qr{N$},
1216 qr{^data/},
1217 qr{^gendata/},
1218 qw( disableXS
1219 enableXS
1220 mklocale
1221 ),
1222 ],
4f3a742d
DR
1223 },
1224
1225 'Unicode::Normalize' => {
3ece07bc 1226 'DISTRIBUTION' => 'KHW/Unicode-Normalize-1.21.tar.gz',
4f3a742d 1227 'FILES' => q[cpan/Unicode-Normalize],
4f3a742d
DR
1228 },
1229
4f3a742d 1230 'version' => {
da891a41 1231 'DISTRIBUTION' => 'JPEACOCK/version-0.9909.tar.gz',
4fa93b19 1232 'FILES' => q[cpan/version vutil.c vutil.h vxs.inc],
4f3a742d 1233 'EXCLUDED' => [
df3ba8e7 1234 qr{^vutil/lib/},
c60b4fa6 1235 'vutil/Makefile.PL',
df3ba8e7
FC
1236 'vutil/ppport.h',
1237 'vutil/vxs.xs',
4f3a742d 1238 't/survey_locales',
4f3a742d 1239 ],
f81a37f2 1240
c872d591
SH
1241 # When adding the CPAN-distributed files for version.pm, it is necessary
1242 # to delete an entire block out of lib/version.pm, since that code is
1243 # only necessary with the CPAN release.
f81a37f2
SH
1244 'CUSTOMIZED' => [
1245 qw( lib/version.pm
f81a37f2 1246 ),
4637d007
SH
1247
1248 # Merged upstream, waiting for new CPAN release: see CPAN RT#92721
1249 qw( vutil.c
4637d007 1250 ),
f81a37f2
SH
1251 ],
1252
df3ba8e7 1253 'MAP' => {
4fa93b19
SH
1254 'vperl/' => 'cpan/version/lib/version/',
1255 'vutil/' => '',
df3ba8e7
FC
1256 '' => 'cpan/version/',
1257 },
4f3a742d
DR
1258 },
1259
4f3a742d 1260 'warnings' => {
099bebb1 1261 'FILES' => q[
4f3a742d 1262 lib/warnings
099bebb1
SH
1263 lib/warnings.{pm,t}
1264 regen/warnings.pl
4f3a742d 1265 t/lib/warnings
099bebb1 1266 ],
4f3a742d
DR
1267 },
1268
4f3a742d 1269 'Win32' => {
083231ea 1270 'DISTRIBUTION' => "JDB/Win32-0.52.tar.gz",
4f3a742d 1271 'FILES' => q[cpan/Win32],
4f3a742d
DR
1272 },
1273
1274 'Win32API::File' => {
e5240100 1275 'DISTRIBUTION' => 'CHORNY/Win32API-File-0.1202.tar.gz',
4f3a742d
DR
1276 'FILES' => q[cpan/Win32API-File],
1277 'EXCLUDED' => [
1278 qr{^ex/},
4f3a742d 1279 ],
9d20b1d3
SH
1280
1281 # Currently all EOL differences. Waiting for a new upstream release:
1282 # All the files in the GitHub repo have UNIX EOLs already.
1283 'CUSTOMIZED' => [
1284 qw( ExtUtils/Myconst2perl.pm
1285 Makefile.PL
1286 buffers.h
1287 cFile.h
1288 cFile.pc
1289 const2perl.h
1290 t/file.t
1291 t/tie.t
1292 typemap
1293 ),
1294 ],
4f3a742d
DR
1295 },
1296
4f3a742d 1297 'XSLoader' => {
681a49bf 1298 'DISTRIBUTION' => 'SAPER/XSLoader-0.16.tar.gz',
4f3a742d
DR
1299 'FILES' => q[dist/XSLoader],
1300 'EXCLUDED' => [
1301 qr{^eg/},
57f9caa0
SH
1302 qw( t/00-load.t
1303 t/01-api.t
1304 t/distchk.t
1305 t/pod.t
4f3a742d
DR
1306 t/podcover.t
1307 t/portfs.t
1308 ),
1309 'XSLoader.pm', # we use XSLoader_pm.PL
1310 ],
4f3a742d
DR
1311 },
1312
462ea751
DM
1313 # this pseudo-module represents all the files under ext/ and lib/
1314 # that aren't otherwise claimed. This means that the following two
1315 # commands will check that every file under ext/ and lib/ is
1316 # accounted for, and that there are no duplicates:
1317 #
1318 # perl Porting/Maintainers --checkmani lib ext
d8ada404 1319 # perl Porting/Maintainers --checkmani
462ea751 1320
4f3a742d 1321 '_PERLLIB' => {
2af3c4b9 1322 'FILES' => q[
79852350
AB
1323 ext/Amiga-ARexx/
1324 ext/Amiga-Exec/
09213599 1325 ext/B/
2af3c4b9
SH
1326 ext/Devel-Peek/
1327 ext/DynaLoader/
1328 ext/Errno/
7b4d95f7 1329 ext/ExtUtils-Miniperl/
2af3c4b9
SH
1330 ext/Fcntl/
1331 ext/File-DosGlob/
1332 ext/File-Find/
1333 ext/File-Glob/
1334 ext/FileCache/
1335 ext/GDBM_File/
1336 ext/Hash-Util-FieldHash/
1337 ext/Hash-Util/
1338 ext/I18N-Langinfo/
1339 ext/IPC-Open3/
1340 ext/NDBM_File/
1341 ext/ODBM_File/
1342 ext/Opcode/
1343 ext/POSIX/
1344 ext/PerlIO-encoding/
1345 ext/PerlIO-mmap/
1346 ext/PerlIO-scalar/
1347 ext/PerlIO-via/
1348 ext/Pod-Functions/
1349 ext/Pod-Html/
1350 ext/SDBM_File/
1351 ext/Sys-Hostname/
1352 ext/Tie-Hash-NamedCapture/
1353 ext/Tie-Memoize/
b3dcf775 1354 ext/VMS-DCLsym/
2af3c4b9 1355 ext/VMS-Filespec/
b3dcf775
SH
1356 ext/VMS-Stdio/
1357 ext/Win32CORE/
4f3a742d 1358 ext/XS-APItest/
2af3c4b9
SH
1359 ext/XS-Typemap/
1360 ext/arybase/
1361 ext/attributes/
1362 ext/mro/
1363 ext/re/
1364 lib/AnyDBM_File.{pm,t}
1365 lib/Benchmark.{pm,t}
38eca645 1366 lib/B/Deparse{.pm,.t,-*.t}
f3574cc6 1367 lib/B/Op_private.pm
4f3a742d 1368 lib/CORE.pod
2af3c4b9 1369 lib/Class/Struct.{pm,t}
4f3a742d
DR
1370 lib/Config.t
1371 lib/Config/Extensions.{pm,t}
1372 lib/DB.{pm,t}
2af3c4b9
SH
1373 lib/DBM_Filter.pm
1374 lib/DBM_Filter/
1375 lib/DirHandle.{pm,t}
1376 lib/English.{pm,t}
4f3a742d
DR
1377 lib/ExtUtils/Embed.pm
1378 lib/ExtUtils/XSSymSet.pm
1379 lib/ExtUtils/t/Embed.t
1380 lib/ExtUtils/typemap
2af3c4b9
SH
1381 lib/File/Basename.{pm,t}
1382 lib/File/Compare.{pm,t}
1383 lib/File/Copy.{pm,t}
1384 lib/File/stat{.pm,.t,-7896.t}
1385 lib/FileHandle.{pm,t}
1386 lib/FindBin.{pm,t}
1387 lib/Getopt/Std.{pm,t}
4f3a742d 1388 lib/Internals.t
4b6af431 1389 lib/meta_notation.{pm,t}
4f3a742d
DR
1390 lib/Net/hostent.{pm,t}
1391 lib/Net/netent.{pm,t}
1392 lib/Net/protoent.{pm,t}
1393 lib/Net/servent.{pm,t}
2af3c4b9 1394 lib/PerlIO.pm
4f3a742d
DR
1395 lib/Pod/t/InputObjects.t
1396 lib/Pod/t/Select.t
1397 lib/Pod/t/Usage.t
4f3a742d
DR
1398 lib/Pod/t/utils.t
1399 lib/SelectSaver.{pm,t}
1400 lib/Symbol.{pm,t}
1401 lib/Thread.{pm,t}
1402 lib/Tie/Array.pm
1403 lib/Tie/Array/
1404 lib/Tie/ExtraHash.t
1405 lib/Tie/Handle.pm
1406 lib/Tie/Handle/
2af3c4b9 1407 lib/Tie/Hash.{pm,t}
4f3a742d
DR
1408 lib/Tie/Scalar.{pm,t}
1409 lib/Tie/StdHandle.pm
1410 lib/Tie/SubstrHash.{pm,t}
1411 lib/Time/gmtime.{pm,t}
1412 lib/Time/localtime.{pm,t}
1413 lib/Time/tm.pm
1414 lib/UNIVERSAL.pm
1415 lib/Unicode/README
2af3c4b9 1416 lib/Unicode/UCD.{pm,t}
4f3a742d
DR
1417 lib/User/grent.{pm,t}
1418 lib/User/pwent.{pm,t}
2af3c4b9 1419 lib/_charnames.pm
4f3a742d
DR
1420 lib/blib.{pm,t}
1421 lib/bytes.{pm,t}
1422 lib/bytes_heavy.pl
1423 lib/charnames.{pm,t}
1424 lib/dbm_filter_util.pl
1425 lib/deprecate.pm
2af3c4b9 1426 lib/diagnostics.{pm,t}
4f3a742d
DR
1427 lib/dumpvar.{pl,t}
1428 lib/feature.{pm,t}
1429 lib/feature/
1430 lib/filetest.{pm,t}
1431 lib/h2ph.t
1432 lib/h2xs.t
1433 lib/integer.{pm,t}
1434 lib/less.{pm,t}
1435 lib/locale.{pm,t}
1436 lib/open.{pm,t}
1437 lib/overload/numbers.pm
1438 lib/overloading.{pm,t}
2af3c4b9 1439 lib/overload{.pm,.t,64.t}
4f3a742d
DR
1440 lib/perl5db.{pl,t}
1441 lib/perl5db/
2af3c4b9 1442 lib/sigtrap.{pm,t}
4f3a742d
DR
1443 lib/sort.{pm,t}
1444 lib/strict.{pm,t}
1445 lib/subs.{pm,t}
1446 lib/unicore/
1447 lib/utf8.{pm,t}
1448 lib/utf8_heavy.pl
1449 lib/vars{.pm,.t,_carp.t}
1450 lib/vmsish.{pm,t}
1451 ],
4f3a742d 1452 },
462ea751 1453);
b128a327 1454
97556ec3 1455# legacy CPAN flag
4f3a742d 1456for ( values %Modules ) {
97556ec3
GA
1457 $_->{CPAN} = !!$_->{DISTRIBUTION};
1458}
1459
099bebb1
SH
1460# legacy UPSTREAM flag
1461for ( keys %Modules ) {
1462 # Keep any existing UPSTREAM flag so that "overrides" can be applied
1463 next if exists $Modules{$_}{UPSTREAM};
1464
1465 if ($_ eq '_PERLLIB' or $Modules{$_}{FILES} =~ m{^\s*(?:dist|ext|lib)/}) {
1466 $Modules{$_}{UPSTREAM} = 'blead';
1467 }
1468 elsif ($Modules{$_}{FILES} =~ m{^\s*cpan/}) {
1469 $Modules{$_}{UPSTREAM} = 'cpan';
1470 }
1471 else {
1472 warn "Unexpected location of FILES for module $_: $Modules{$_}{FILES}";
1473 }
1474}
1475
d350de41 1476# legacy MAINTAINER field
099bebb1 1477for ( keys %Modules ) {
b3dcf775 1478 # Keep any existing MAINTAINER flag so that "overrides" can be applied
099bebb1
SH
1479 next if exists $Modules{$_}{MAINTAINER};
1480
1481 if ($Modules{$_}{UPSTREAM} eq 'blead') {
1482 $Modules{$_}{MAINTAINER} = 'P5P';
872818ae 1483 $Maintainers{P5P} = 'perl5-porters <perl5-porters@perl.org>';
d350de41 1484 }
099bebb1
SH
1485 elsif (exists $Modules{$_}{DISTRIBUTION}) {
1486 (my $pause_id = $Modules{$_}{DISTRIBUTION}) =~ s{/.*$}{};
1487 $Modules{$_}{MAINTAINER} = $pause_id;
d350de41
SH
1488 $Maintainers{$pause_id} = "<$pause_id\@cpan.org>";
1489 }
099bebb1
SH
1490 else {
1491 warn "No DISTRIBUTION for non-blead module $_";
1492 }
d350de41
SH
1493}
1494
b128a327 14951;