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