This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
cpan/Math-BigInt - Update to version 2.003001
[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
008ae6a0
EA
11use strict;
12use warnings;
cdad3b53 13use utf8;
9b9b4b79
NC
14use File::Glob qw(:case);
15
2c95b6e4
DM
16# IGNORABLE: files which, if they appear in the root of a CPAN
17# distribution, need not appear in core (i.e. core-cpan-diff won't
18# complain if it can't find them)
19
008ae6a0 20our @IGNORABLE = qw(
79ff1055 21 .cvsignore .dualLivedDiffConfig .gitignore .github .perlcriticrc .perltidyrc
4d25f022 22 .travis.yml ANNOUNCE Announce Artistic AUTHORS BENCHMARK BUGS Build.PL
9cd8e8a5
MB
23 CHANGELOG ChangeLog Changelog CHANGES Changes CONTRIBUTING CONTRIBUTING.md
24 CONTRIBUTING.mkdn COPYING Copying cpanfile CREDITS dist.ini GOALS HISTORY
25 INSTALL INSTALL.SKIP LICENCE LICENSE Makefile.PL MANIFEST MANIFEST.SKIP
26 META.json META.yml MYMETA.json MYMETA.yml NEW NEWS NOTES perlcritic.rc
27 ppport.h README README.md README.pod README.PATCHING SIGNATURE THANKS TODO
28 Todo VERSION WHATSNEW
2c95b6e4
DM
29);
30
e30e10b5 31# Each entry in the %Modules hash roughly represents a distribution,
97556ec3 32# except when DISTRIBUTION is set, where it *exactly* represents a single
e30e10b5
DM
33# CPAN distribution.
34
35# The keys of %Modules are human descriptions of the distributions, and
36# may not exactly match a module or distribution name. Distributions
37# which have an obvious top-level module associated with them will usually
38# have a key named for that module, e.g. 'Archive::Extract' for
39# Archive-Extract-N.NN.tar.gz; the remaining keys are likely to be based
40# on the name of the distribution, e.g. 'Locale-Codes' for
41# Locale-Codes-N.NN.tar.gz'.
d350de41 42
099bebb1
SH
43# UPSTREAM indicates where patches should go. This is generally now
44# inferred from the FILES: modules with files in dist/, ext/ and lib/
45# are understood to have UPSTREAM 'blead', meaning that the copy of the
46# module in the blead sources is to be considered canonical, while
47# modules with files in cpan/ are understood to have UPSTREAM 'cpan',
48# meaning that the module on CPAN is to be patched first.
49
b3dcf775
SH
50# MAINTAINER has previously been used to indicate who the current maintainer
51# of the module is, but this is no longer stated explicitly. It is now
52# understood to be either the Perl 5 Porters if UPSTREAM is 'blead', or else
53# the CPAN author whose PAUSE user ID forms the first part of the DISTRIBUTION
a40258e5 54# value, e.g. 'BINGOS' in the case of 'BINGOS/Archive-Tar-2.00.tar.gz'.
b3dcf775
SH
55# (PAUSE's View Permissions page may be consulted to find other authors who
56# have owner or co-maint permissions for the module in question.)
d350de41 57
e30e10b5
DM
58# FILES is a list of filenames, glob patterns, and directory
59# names to be recursed down, which collectively generate a complete list
60# of the files associated with the distribution.
61
e1466347
JC
62# BUGS is an email or url to post bug reports. For modules with
63# UPSTREAM => 'blead', use perl5-porters@perl.org. rt.cpan.org
64# appears to automatically provide a URL for CPAN modules; any value
65# given here overrides the default:
66# http://rt.cpan.org/Public/Dist/Display.html?Name=$ModuleName
67
a55d270d
DM
68# DISTRIBUTION names the tarball on CPAN which (allegedly) the files
69# included in core are derived from. Note that the file's version may not
20d6f799
KE
70# necessarily match the newest version on CPAN. (For dist/ distributions,
71# which are blead-first, a request should be placed with the releaser(s) to
72# upload the corresponding cpan release, and the entry in this file should
73# only be updated when that release has been done.)
a55d270d 74
382558a5
AP
75# MAIN_MODULE names the top-level module by which the tarball is indexed on
76# CPAN in cases where this differs from the distribution's key in %Modules.
77# (If it is equal then MAIN_MODULE is optional and should be omitted.)
78
2c95b6e4
DM
79# EXCLUDED is a list of files to be excluded from a CPAN tarball before
80# comparing the remaining contents with core. Each item can either be a
81# full pathname (eg 't/foo.t') or a pattern (e.g. qr{^t/}).
82# It defaults to the empty list.
83
d43babf1 84# CUSTOMIZED is a list of files that have been customized within the
24b68a05
DG
85# Perl core. Use this whenever patching a cpan upstream distribution
86# or whenever we expect to have a file that differs from the tarball.
87# If the file in blead matches the file in the tarball from CPAN,
88# Porting/core-cpan-diff will warn about it, as it indicates an expected
fae38280 89# customization might have been lost when updating from upstream. The
f81a37f2
SH
90# path should be relative to the distribution directory. If the upstream
91# distribution should be modified to incorporate the change then be sure
92# to raise a ticket for it on rt.cpan.org and add a comment alongside the
93# list of CUSTOMIZED files noting the ticket number.
d43babf1 94
ab87ca4d
DG
95# DEPRECATED contains the *first* version of Perl in which the module
96# was considered deprecated. It should only be present if the module is
8dad89f0 97# actually deprecated. Such modules should use deprecate.pm to
ab87ca4d
DG
98# issue a warning if used. E.g.:
99#
100# use if $] >= 5.011, 'deprecate';
101#
102
2c95b6e4 103# MAP is a hash that maps CPAN paths to their core equivalents.
47e01c32 104# Each key represents a string prefix, with longest prefixes checked
2c95b6e4
DM
105# first. The first match causes that prefix to be replaced with the
106# corresponding key. For example, with the following MAP:
613f422f 107# {
4f3a742d
DR
108# 'lib/' => 'lib/',
109# '' => 'lib/Foo/',
2c95b6e4
DM
110# },
111#
112# these files are mapped as shown:
113#
114# README becomes lib/Foo/README
613f422f 115# lib/Foo.pm becomes lib/Foo.pm
2c95b6e4
DM
116#
117# The default is dependent on the type of module.
118# For distributions which appear to be stored under ext/, it defaults to:
119#
120# { '' => 'ext/Foo-Bar/' }
121#
122# otherwise, it's
123#
613f422f 124# {
4f3a742d
DR
125# 'lib/' => 'lib/',
126# '' => 'lib/Foo/Bar/',
2c95b6e4
DM
127# }
128
008ae6a0 129our %Modules = (
b128a327 130
4f3a742d 131 'Archive::Tar' => {
54f925e1 132 'DISTRIBUTION' => 'BINGOS/Archive-Tar-3.02_001.tar.gz',
589af9a6 133 'SYNCINFO' => 'jkeenan on Tue Dec 5 07:32:24 2023',
4f3a742d 134 'FILES' => q[cpan/Archive-Tar],
4f3a742d 135 'BUGS' => 'bug-archive-tar@rt.cpan.org',
c465fd2f
CBW
136 'EXCLUDED' => [
137 qw(t/07_ptardiff.t),
2db5b8da 138 qr{t/src/(long|short)/foo.txz},
54f925e1 139 qw(t/90_symlink.t),
c465fd2f 140 ],
4f3a742d
DR
141 },
142
143 'Attribute::Handlers' => {
e8b9cef0 144 'DISTRIBUTION' => 'RJBS/Attribute-Handlers-0.99.tar.gz',
4f3a742d 145 'FILES' => q[dist/Attribute-Handlers],
4f3a742d
DR
146 },
147
4f3a742d 148 'autodie' => {
42a4d650 149 'DISTRIBUTION' => 'TODDR/autodie-2.36.tar.gz',
4f3a742d
DR
150 'FILES' => q[cpan/autodie],
151 'EXCLUDED' => [
273225d4 152 qr{benchmarks},
f91d7e0d 153 qr{README\.md},
e4cce63d 154 qr{^xt/},
4f3a742d
DR
155 # All these tests depend upon external
156 # modules that don't exist when we're
157 # building the core. Hence, they can
158 # never run, and should not be merged.
ff4ad1c0 159 qw( t/author-critic.t
4f3a742d
DR
160 t/critic.t
161 t/fork.t
162 t/kwalitee.t
163 t/lex58.t
164 t/pod-coverage.t
165 t/pod.t
273225d4
CBW
166 t/release-pod-coverage.t
167 t/release-pod-syntax.t
4f3a742d
DR
168 t/socket.t
169 t/system.t
1b173b1f 170 t/no-all.t
4f3a742d
DR
171 )
172 ],
4f3a742d
DR
173 },
174
175 'AutoLoader' => {
dff36865 176 'DISTRIBUTION' => 'SMUELLER/AutoLoader-5.74.tar.gz',
4f3a742d
DR
177 'FILES' => q[cpan/AutoLoader],
178 'EXCLUDED' => ['t/00pod.t'],
414f14df 179 'CUSTOMIZED' => ['t/02AutoSplit.t'],
4f3a742d
DR
180 },
181
182 'autouse' => {
965f9517 183 'DISTRIBUTION' => 'RJBS/autouse-1.11.tar.gz',
4f3a742d
DR
184 'FILES' => q[dist/autouse],
185 'EXCLUDED' => [qr{^t/release-.*\.t}],
4f3a742d
DR
186 },
187
4f3a742d 188 'base' => {
4c13dc7e 189 'DISTRIBUTION' => 'RJBS/base-2.23.tar.gz',
4f3a742d 190 'FILES' => q[dist/base],
4f3a742d
DR
191 },
192
4f3a742d 193 'bignum' => {
b7cde0a0 194 'DISTRIBUTION' => 'PJACKLAM/bignum-0.66.tar.gz',
c287fe32 195 'FILES' => q[cpan/bignum],
4f3a742d 196 'EXCLUDED' => [
7deec013 197 qr{^xt/},
91f07087 198 qr{^t/author-},
d5c196da 199 qr{^t/release-},
c287fe32
SH
200 qw( t/00sig.t
201 t/01load.t
4f3a742d
DR
202 ),
203 ],
4f3a742d
DR
204 },
205
206 'Carp' => {
9e3f69e1 207 'DISTRIBUTION' => 'XSAWYERX/Carp-1.50.tar.gz',
4f3a742d 208 'FILES' => q[dist/Carp],
4f3a742d
DR
209 },
210
4f3a742d 211 'Compress::Raw::Bzip2' => {
73cf7e75
YO
212 'DISTRIBUTION' => 'PMQS/Compress-Raw-Bzip2-2.206.tar.gz',
213 'SYNCINFO' => 'yorton on Tue Jul 25 20:45:42 2023',
4f3a742d
DR
214 'FILES' => q[cpan/Compress-Raw-Bzip2],
215 'EXCLUDED' => [
216 qr{^t/Test/},
8284a71c 217 qr{^t/meta},
65b62fea 218 'bzip2-src/bzip2-const.patch',
4f3a742d 219 'bzip2-src/bzip2-cpp.patch',
65b62fea 220 'bzip2-src/bzip2-unsigned.patch',
4f3a742d 221 ],
4f3a742d
DR
222 },
223
224 'Compress::Raw::Zlib' => {
431d55fc
YO
225 'DISTRIBUTION' => 'PMQS/Compress-Raw-Zlib-2.206.tar.gz',
226 'SYNCINFO' => 'yorton on Tue Jul 25 20:37:04 2023',
4f3a742d
DR
227 'FILES' => q[cpan/Compress-Raw-Zlib],
228 'EXCLUDED' => [
84c82da4 229 qr{^examples/},
4f3a742d 230 qr{^t/Test/},
8284a71c 231 qr{^t/meta},
4f3a742d
DR
232 qw( t/000prereq.t
233 t/99pod.t
234 ),
235 ],
4f3a742d
DR
236 },
237
4b07058c 238 'Config::Perl::V' => {
54c84abe
YO
239 'DISTRIBUTION' => 'HMBRAND/Config-Perl-V-0.36.tgz',
240 'SYNCINFO' => 'yorton on Sat Mar 4 10:43:06 2023',
4b07058c 241 'FILES' => q[cpan/Config-Perl-V],
b4ade012
MB
242 'EXCLUDED' => [qw(
243 examples/show-v.pl
b4ade012 244 )],
4b07058c
RS
245 },
246
4f3a742d 247 'constant' => {
8b1ae794 248 'DISTRIBUTION' => 'RJBS/constant-1.33.tar.gz',
4f3a742d
DR
249 'FILES' => q[dist/constant],
250 'EXCLUDED' => [
251 qw( t/00-load.t
252 t/more-tests.t
253 t/pod-coverage.t
254 t/pod.t
255 eg/synopsis.pl
256 ),
257 ],
4f3a742d
DR
258 },
259
260 'CPAN' => {
96ea0b9b 261 'DISTRIBUTION' => 'ANDK/CPAN-2.36.tar.gz',
4f3a742d
DR
262 'FILES' => q[cpan/CPAN],
263 'EXCLUDED' => [
264 qr{^distroprefs/},
265 qr{^inc/Test/},
45a13884
SH
266 qr{^t/CPAN/},
267 qr{^t/data/},
79116533 268 qr{^t/97-},
4f3a742d 269 qw( lib/CPAN/Admin.pm
6156383d 270 scripts/cpan-mirrors
bfae5bde 271 PAUSE2015.pub
6cc23b5a 272 PAUSE2019.pub
ef977e20 273 PAUSE2021.pub
4f3a742d
DR
274 SlayMakefile
275 t/00signature.t
276 t/04clean_load.t
277 t/12cpan.t
278 t/13tarzip.t
279 t/14forkbomb.t
280 t/30shell.coverage
281 t/30shell.t
282 t/31sessions.t
283 t/41distribution.t
284 t/42distroprefs.t
285 t/43distroprefspref.t
45a13884 286 t/44cpanmeta.t
4f3a742d
DR
287 t/50pod.t
288 t/51pod.t
289 t/52podcover.t
290 t/60credentials.t
291 t/70_critic.t
bfae5bde 292 t/71_minimumversion.t
4f3a742d
DR
293 t/local_utils.pm
294 t/perlcriticrc
295 t/yaml_code.yml
296 ),
297 ],
4f3a742d
DR
298 },
299
278337cd
CBW
300 # Note: When updating CPAN-Meta the META.* files will need to be regenerated
301 # perl -Icpan/CPAN-Meta/lib Porting/makemeta
4f3a742d 302 'CPAN::Meta' => {
f33f0562 303 'DISTRIBUTION' => 'DAGOLDEN/CPAN-Meta-2.150010.tar.gz',
4f3a742d
DR
304 'FILES' => q[cpan/CPAN-Meta],
305 'EXCLUDED' => [
f907dd3c
SH
306 qw[t/00-report-prereqs.t
307 t/00-report-prereqs.dd
f33f0562 308 ],
4f3a742d
DR
309 qr{^xt},
310 qr{^history},
311 ],
4f3a742d
DR
312 },
313
b6ae0ea7 314 'CPAN::Meta::Requirements' => {
e601791b 315 'DISTRIBUTION' => 'RJBS/CPAN-Meta-Requirements-2.143.tar.gz',
b6ae0ea7
CBW
316 'FILES' => q[cpan/CPAN-Meta-Requirements],
317 'EXCLUDED' => [
c4814040 318 qw(t/00-report-prereqs.t),
54b7cb30 319 qw(t/00-report-prereqs.dd),
608e531f 320 qw(t/version-cleanup.t),
b6ae0ea7 321 qr{^xt},
b6ae0ea7 322 ],
b6ae0ea7
CBW
323 },
324
4f3a742d 325 'CPAN::Meta::YAML' => {
0d99ea03 326 'DISTRIBUTION' => 'DAGOLDEN/CPAN-Meta-YAML-0.018.tar.gz',
4f3a742d
DR
327 'FILES' => q[cpan/CPAN-Meta-YAML],
328 'EXCLUDED' => [
2954a1e9 329 't/00-report-prereqs.t',
e586de20 330 't/00-report-prereqs.dd',
4f3a742d
DR
331 qr{^xt},
332 ],
4f3a742d
DR
333 },
334
335 'Data::Dumper' => {
97a2707c 336 'DISTRIBUTION' => 'NWCLARK/Data-Dumper-2.183.tar.gz',
4f3a742d 337 'FILES' => q[dist/Data-Dumper],
4f3a742d
DR
338 },
339
340 'DB_File' => {
cdad4191
PM
341 'DISTRIBUTION' => 'PMQS/DB_File-1.859.tar.gz',
342 'SYNCINFO' => 'jkeenan on Tue Sep 5 20:46:44 2023',
4f3a742d
DR
343 'FILES' => q[cpan/DB_File],
344 'EXCLUDED' => [
345 qr{^patches/},
1e3f5c47 346 qr{^t/meta},
4f3a742d 347 qw( t/pod.t
22ce58f7 348 t/000prereq.t
4f3a742d
DR
349 fallback.h
350 fallback.xs
351 ),
352 ],
4f3a742d
DR
353 },
354
4f3a742d 355 'Devel::PPPort' => {
09b064e1 356 'DISTRIBUTION' => 'ATOOMIC/Devel-PPPort-3.68.tar.gz',
7baf245a 357 'FILES' => q[dist/Devel-PPPort],
84c82da4
SH
358 'EXCLUDED' => [
359 'PPPort.pm', # we use PPPort_pm.PL instead
bb20cabd 360 ],
4f3a742d
DR
361 },
362
97b1d6e6 363 'Devel::SelfStubber' => {
97b1d6e6
SH
364 'DISTRIBUTION' => 'FLORA/Devel-SelfStubber-1.05.tar.gz',
365 'FILES' => q[dist/Devel-SelfStubber],
366 'EXCLUDED' => [qr{^t/release-.*\.t}],
97b1d6e6
SH
367 },
368
4f3a742d 369 'Digest' => {
14956bc7 370 'DISTRIBUTION' => 'TODDR/Digest-1.20.tar.gz',
4f3a742d
DR
371 'FILES' => q[cpan/Digest],
372 'EXCLUDED' => ['digest-bench'],
4f3a742d
DR
373 },
374
375 'Digest::MD5' => {
897b79c3 376 'DISTRIBUTION' => 'TODDR/Digest-MD5-2.58.tar.gz',
4f3a742d 377 'FILES' => q[cpan/Digest-MD5],
897b79c3 378 'EXCLUDED' => [ 'rfc1321.txt', 'bin/md5sum.pl' ],
638f63b6
TC
379 'CUSTOMIZED' => [
380 # https://github.com/Dual-Life/digest-md5/pull/24
381 'MD5.pm',
5fb9d4b5
SH
382 'MD5.xs',
383
384 't/files.t'
638f63b6 385 ],
4f3a742d
DR
386 },
387
388 'Digest::SHA' => {
10c7b202 389 'DISTRIBUTION' => 'MSHELOR/Digest-SHA-6.04.tar.gz',
4f3a742d
DR
390 'FILES' => q[cpan/Digest-SHA],
391 'EXCLUDED' => [
392 qw( t/pod.t
393 t/podcover.t
394 examples/dups
395 ),
396 ],
4f3a742d
DR
397 },
398
4f3a742d 399 'Dumpvalue' => {
f6e46c4d 400 'DISTRIBUTION' => 'FLORA/Dumpvalue-1.17.tar.gz',
4f3a742d
DR
401 'FILES' => q[dist/Dumpvalue],
402 'EXCLUDED' => [qr{^t/release-.*\.t}],
4f3a742d
DR
403 },
404
4f3a742d 405 'Encode' => {
18cfa0e3
DK
406 'DISTRIBUTION' => 'DANKOGAI/Encode-3.20.tar.gz',
407 'SYNCINFO' => 'jkeenan on Fri Nov 10 15:12:07 2023',
4f3a742d 408 'FILES' => q[cpan/Encode],
4eeaed37
N
409 'EXCLUDED' => [
410 qw( t/whatwg-aliases.json
411 t/whatwg-aliases.t
412 ),
413 ],
4f3a742d
DR
414 },
415
416 'encoding::warnings' => {
4f3a742d 417 'DISTRIBUTION' => 'AUDREYT/encoding-warnings-0.11.tar.gz',
e1c786ba 418 'FILES' => q[dist/encoding-warnings],
4f3a742d
DR
419 'EXCLUDED' => [
420 qr{^inc/Module/},
94c85d8e 421 qw(t/0-signature.t),
4f3a742d 422 ],
4f3a742d
DR
423 },
424
4f3a742d 425 'Env' => {
126fc07f 426 'DISTRIBUTION' => 'FLORA/Env-1.04.tar.gz',
4f3a742d
DR
427 'FILES' => q[dist/Env],
428 'EXCLUDED' => [qr{^t/release-.*\.t}],
4f3a742d
DR
429 },
430
de84ff2b 431 'experimental' => {
d6dd17c5 432 'DISTRIBUTION' => 'LEONT/experimental-0.031.tar.gz',
de84ff2b 433 'FILES' => q[cpan/experimental],
4fdcb09b 434 'EXCLUDED' => [qr{^xt/}],
de84ff2b
RS
435 },
436
4f3a742d 437 'Exporter' => {
85fcefb8 438 'DISTRIBUTION' => 'TODDR/Exporter-5.77.tar.gz',
3110a055 439 'FILES' => q[dist/Exporter],
4f3a742d
DR
440 'EXCLUDED' => [
441 qw( t/pod.t
442 t/use.t
443 ),
444 ],
4f3a742d
DR
445 },
446
447 'ExtUtils::CBuilder' => {
0a27ddc7 448 'DISTRIBUTION' => 'AMBS/ExtUtils-CBuilder-0.280236.tar.gz',
4f3a742d 449 'FILES' => q[dist/ExtUtils-CBuilder],
a0e78e9f
SH
450 'EXCLUDED' => [
451 qw(README.mkdn),
452 qr{^xt},
453 ],
4f3a742d
DR
454 },
455
4f3a742d 456 'ExtUtils::Constant' => {
4f3a742d 457
4097fff1 458 'DISTRIBUTION' => 'NWCLARK/ExtUtils-Constant-0.25.tar.gz',
4f3a742d 459 'FILES' => q[cpan/ExtUtils-Constant],
9a94bc6f 460 'CUSTOMIZED' => [
a5f79404 461 # https://rt.cpan.org/Ticket/Display.html?id=142181
7d722840 462 'lib/ExtUtils/Constant/Base.pm',
a5f79404 463
9a94bc6f 464 # https://rt.cpan.org/Public/Bug/Display.html?id=132995
a5f79404 465 # https://rt.cpan.org/Ticket/Display.html?id=142183
9a94bc6f
DIM
466 't/Constant.t',
467 ],
4f3a742d
DR
468 'EXCLUDED' => [
469 qw( lib/ExtUtils/Constant/Aaargh56Hash.pm
470 examples/perl_keyword.pl
471 examples/perl_regcomp_posix_keyword.pl
472 ),
34c00cdf 473 ],
4f3a742d
DR
474 },
475
476 'ExtUtils::Install' => {
d0e654bb 477 'DISTRIBUTION' => 'BINGOS/ExtUtils-Install-2.22.tar.gz',
d393d7e5 478 'FILES' => q[cpan/ExtUtils-Install],
4f3a742d
DR
479 'EXCLUDED' => [
480 qw( t/lib/Test/Builder.pm
481 t/lib/Test/Builder/Module.pm
482 t/lib/Test/More.pm
483 t/lib/Test/Simple.pm
484 t/pod-coverage.t
485 t/pod.t
486 ),
487 ],
4f3a742d
DR
488 },
489
490 'ExtUtils::MakeMaker' => {
024665c4
YO
491 'DISTRIBUTION' => 'BINGOS/ExtUtils-MakeMaker-7.70.tar.gz',
492 'SYNCINFO' => 'yorton on Sun Mar 26 16:20:23 2023',
4f3a742d
DR
493 'FILES' => q[cpan/ExtUtils-MakeMaker],
494 'EXCLUDED' => [
495 qr{^t/lib/Test/},
496 qr{^(bundled|my)/},
497 qr{^t/Liblist_Kid.t},
498 qr{^t/liblist/},
78fd4358 499 qr{^\.perlcriticrc},
84c82da4
SH
500 'PATCHING',
501 'README.packaging',
ce9582af 502 'lib/ExtUtils/MakeMaker/version/vpp.pm',
4f3a742d 503 ],
4f3a742d
DR
504 },
505
273021bd 506 'ExtUtils::PL2Bat' => {
653383a8 507 'DISTRIBUTION' => 'LEONT/ExtUtils-PL2Bat-0.005.tar.gz',
273021bd
SH
508 'FILES' => q[cpan/ExtUtils-PL2Bat],
509 'EXCLUDED' => [
510 't/00-compile.t',
511 'script/pl2bat.pl'
512 ],
273021bd 513 },
d972df9b 514
4f3a742d 515 'ExtUtils::Manifest' => {
9ef80951 516 'DISTRIBUTION' => 'ETHER/ExtUtils-Manifest-1.75.tar.gz',
854a00d8 517 'FILES' => q[cpan/ExtUtils-Manifest],
4d25f022
SH
518 'EXCLUDED' => [
519 qr(^t/00-report-prereqs),
520 qr(^xt/)
521 ],
4f3a742d
DR
522 },
523
524 'ExtUtils::ParseXS' => {
5e28db93 525 'DISTRIBUTION' => 'LEONT/ExtUtils-ParseXS-3.51.tar.gz',
4f3a742d 526 'FILES' => q[dist/ExtUtils-ParseXS],
4f3a742d
DR
527 },
528
4f3a742d 529 'File::Fetch' => {
4f96d02c 530 'DISTRIBUTION' => 'BINGOS/File-Fetch-1.04.tar.gz',
4f3a742d 531 'FILES' => q[cpan/File-Fetch],
4f3a742d
DR
532 },
533
4f3a742d 534 'File::Path' => {
92acf880 535 'DISTRIBUTION' => 'JKEENAN/File-Path-2.18.tar.gz',
4f3a742d
DR
536 'FILES' => q[cpan/File-Path],
537 'EXCLUDED' => [
bfcc9519
SH
538 qw(t/Path-Class.t),
539 qr{^xt/},
4f3a742d 540 ],
4f3a742d
DR
541 },
542
4f3a742d 543 'File::Temp' => {
0df722d6 544 'DISTRIBUTION' => 'ETHER/File-Temp-0.2311.tar.gz',
4f3a742d
DR
545 'FILES' => q[cpan/File-Temp],
546 'EXCLUDED' => [
6bc10107
SH
547 qw( README.mkdn
548 misc/benchmark.pl
4f3a742d
DR
549 misc/results.txt
550 ),
6bc10107 551 qr[^t/00-report-prereqs],
814e893f 552 qr{^xt},
4f3a742d 553 ],
4f3a742d
DR
554 },
555
4f3a742d 556 'Filter::Simple' => {
e9214465 557 'DISTRIBUTION' => 'SMUELLER/Filter-Simple-0.94.tar.gz',
4f3a742d
DR
558 'FILES' => q[dist/Filter-Simple],
559 'EXCLUDED' => [
4f3a742d
DR
560 qr{^demo/}
561 ],
4f3a742d
DR
562 },
563
564 'Filter::Util::Call' => {
9799861e 565 'DISTRIBUTION' => 'RURBAN/Filter-1.64.tar.gz',
4f3a742d
DR
566 'FILES' => q[cpan/Filter-Util-Call
567 pod/perlfilter.pod
568 ],
569 'EXCLUDED' => [
570 qr{^decrypt/},
571 qr{^examples/},
572 qr{^Exec/},
573 qr{^lib/Filter/},
574 qr{^tee/},
ca215658 575 qw( .appveyor.yml
f31faee5
N
576 .cirrus.yml
577 .github/workflows/testsuite.yml
0b7fa637 578 .whitesource
ca215658 579 Call/Makefile.PL
4f3a742d
DR
580 Call/ppport.h
581 Call/typemap
582 mytest
583 t/cpp.t
584 t/decrypt.t
585 t/exec.t
cfaad56a 586 t/m4.t
4f3a742d 587 t/order.t
4f3a742d
DR
588 t/sh.t
589 t/tee.t
533d93cc 590 t/z_kwalitee.t
e765fd18 591 t/z_manifest.t
533d93cc
SH
592 t/z_meta.t
593 t/z_perl_minimum_version.t
594 t/z_pod-coverage.t
595 t/z_pod.t
4f3a742d
DR
596 ),
597 ],
598 'MAP' => {
e765fd18
SH
599 'Call/' => 'cpan/Filter-Util-Call/',
600 't/filter-util.pl' => 'cpan/Filter-Util-Call/filter-util.pl',
601 'perlfilter.pod' => 'pod/perlfilter.pod',
602 '' => 'cpan/Filter-Util-Call/',
4f3a742d 603 },
dd469d97 604 'CUSTOMIZED' => [
f4aba3e9 605 qw(pod/perlfilter.pod)
dd469d97 606 ],
4f3a742d
DR
607 },
608
3e191967 609 'FindBin' => {
85fcefb8 610 'DISTRIBUTION' => 'TODDR/FindBin-1.53.tar.gz',
3e191967
S
611 'FILES' => q[dist/FindBin],
612 },
613
4f3a742d 614 'Getopt::Long' => {
867a7409
JV
615 'DISTRIBUTION' => 'JV/Getopt-Long-2.57.tar.gz',
616 'SYNCINFO' => 'jkeenan on Sat Nov 11 13:09:21 2023',
4f3a742d
DR
617 'FILES' => q[cpan/Getopt-Long],
618 'EXCLUDED' => [
619 qr{^examples/},
048ed1a1 620 qw( lib/newgetopt.pl
974d5816 621 t/gol-compat.t
4f3a742d
DR
622 ),
623 ],
4f3a742d
DR
624 },
625
4f3a742d 626 'HTTP::Tiny' => {
e621bd31
DG
627 'DISTRIBUTION' => 'DAGOLDEN/HTTP-Tiny-0.088.tar.gz',
628 'SYNCINFO' => 'jkeenan on Sat Aug 12 14:49:17 2023',
4f3a742d
DR
629 'FILES' => q[cpan/HTTP-Tiny],
630 'EXCLUDED' => [
c93d7f35 631 'corpus/snake-oil.crt', # only used by 210_live_ssl.t
fcfb9f49 632 't/00-report-prereqs.t',
57d69a40 633 't/00-report-prereqs.dd',
4f3a742d 634 't/200_live.t',
44347bc3 635 't/200_live_local_ip.t',
fcfb9f49 636 't/210_live_ssl.t',
4f3a742d
DR
637 qr/^eg/,
638 qr/^xt/
639 ],
4f3a742d
DR
640 },
641
642 'I18N::Collate' => {
4f3a742d
DR
643 'DISTRIBUTION' => 'FLORA/I18N-Collate-1.02.tar.gz',
644 'FILES' => q[dist/I18N-Collate],
645 'EXCLUDED' => [qr{^t/release-.*\.t}],
4f3a742d
DR
646 },
647
4f3a742d 648 'I18N::LangTags' => {
4f3a742d 649 'FILES' => q[dist/I18N-LangTags],
4f3a742d
DR
650 },
651
652 'if' => {
85cede38 653 'DISTRIBUTION' => 'XSAWYERX/if-0.0608.tar.gz',
4f3a742d 654 'FILES' => q[dist/if],
4f3a742d
DR
655 },
656
657 'IO' => {
85fcefb8 658 'DISTRIBUTION' => 'TODDR/IO-1.51.tar.gz',
9da7aa9d 659 'FILES' => q[dist/IO],
4f3a742d 660 'EXCLUDED' => ['t/test.pl'],
4f3a742d
DR
661 },
662
663 'IO-Compress' => {
74397897
YO
664 'DISTRIBUTION' => 'PMQS/IO-Compress-2.206.tar.gz',
665 'SYNCINFO' => 'yorton on Tue Jul 25 20:51:33 2023',
382558a5 666 'MAIN_MODULE' => 'IO::Compress::Base',
4f3a742d 667 'FILES' => q[cpan/IO-Compress],
84c82da4
SH
668 'EXCLUDED' => [
669 qr{^examples/},
670 qr{^t/Test/},
9f58603c 671 qr{^t/999meta-},
47ff6f4e 672 't/000prereq.t',
84c82da4
SH
673 't/010examples-bzip2.t',
674 't/010examples-zlib.t',
675 't/cz-05examples.t',
676 ],
4f3a742d
DR
677 },
678
74a30e96 679 'IO::Socket::IP' => {
6ce03f50
PE
680 'DISTRIBUTION' => 'PEVANS/IO-Socket-IP-0.42.tar.gz',
681 'SYNCINFO' => 'jkeenan on Wed Aug 16 21:34:20 2023',
74a30e96
CBW
682 'FILES' => q[cpan/IO-Socket-IP],
683 'EXCLUDED' => [
684 qr{^examples/},
685 ],
686 },
687
4f3a742d 688 'IO::Zlib' => {
8ecbef79 689 'DISTRIBUTION' => 'TOMHUGHES/IO-Zlib-1.14.tar.gz',
4f3a742d 690 'FILES' => q[cpan/IO-Zlib],
4f3a742d
DR
691 },
692
693 'IPC::Cmd' => {
dc9ac3ee 694 'DISTRIBUTION' => 'BINGOS/IPC-Cmd-1.04.tar.gz',
4f3a742d 695 'FILES' => q[cpan/IPC-Cmd],
4f3a742d
DR
696 },
697
4f3a742d 698 'IPC::SysV' => {
2ce8ebb9 699 'DISTRIBUTION' => 'MHX/IPC-SysV-2.09.tar.gz',
4f3a742d
DR
700 'FILES' => q[cpan/IPC-SysV],
701 'EXCLUDED' => [
702 qw( const-c.inc
703 const-xs.inc
704 ),
705 ],
4f3a742d
DR
706 },
707
708 'JSON::PP' => {
8d788bc1 709 'DISTRIBUTION' => 'ISHIGAKI/JSON-PP-4.16.tar.gz',
4f3a742d 710 'FILES' => q[cpan/JSON-PP],
4f3a742d
DR
711 },
712
713 'lib' => {
4f3a742d 714 'DISTRIBUTION' => 'SMUELLER/lib-0.63.tar.gz',
9da7aa9d 715 'FILES' => q[dist/lib],
4f3a742d
DR
716 'EXCLUDED' => [
717 qw( forPAUSE/lib.pm
718 t/00pod.t
719 ),
720 ],
4f3a742d
DR
721 },
722
723 'libnet' => {
6755d87e
YO
724 'DISTRIBUTION' => 'SHAY/libnet-3.15.tar.gz',
725 'SYNCINFO' => 'yorton on Mon Mar 20 20:48:38 2023',
382558a5 726 'MAIN_MODULE' => 'Net::Cmd',
4f3a742d
DR
727 'FILES' => q[cpan/libnet],
728 'EXCLUDED' => [
729 qw( Configure
2901a52f 730 t/changes.t
59e3cdd4
SH
731 t/critic.t
732 t/pod.t
733 t/pod_coverage.t
4f3a742d 734 ),
84c82da4 735 qr(^demos/),
dadfa42f 736 qr(^t/external/),
4f3a742d 737 ],
4f3a742d
DR
738 },
739
4f3a742d 740 'Locale::Maketext' => {
4c6ba101 741 'DISTRIBUTION' => 'TODDR/Locale-Maketext-1.32.tar.gz',
4f3a742d
DR
742 'FILES' => q[dist/Locale-Maketext],
743 'EXCLUDED' => [
744 qw(
745 perlcriticrc
746 t/00_load.t
747 t/pod.t
748 ),
749 ],
4f3a742d
DR
750 },
751
752 'Locale::Maketext::Simple' => {
4f3a742d
DR
753 'DISTRIBUTION' => 'JESSE/Locale-Maketext-Simple-0.21.tar.gz',
754 'FILES' => q[cpan/Locale-Maketext-Simple],
8b56300e
TC
755 'CUSTOMIZED' => [
756 # CVE-2016-1238
757 qw( lib/Locale/Maketext/Simple.pm )
758 ],
4f3a742d
DR
759 },
760
4f3a742d 761 'Math::BigInt' => {
11a8a8e2
PBB
762 'DISTRIBUTION' => 'PJACKLAM/Math-BigInt-2.003001.tar.gz',
763 'SYNCINFO' => 'book on Tue Dec 26 22:44:58 2023',
6401a39e 764 'SYNCINFO' => 'jkeenan on Mon Dec 11 21:10:38 2023',
6da59fec 765 'SYNCINFO' => 'jkeenan on Fri Nov 24 20:23:52 2023',
be4fcf4f 766 'SYNCINFO' => 'jkeenan on Tue Nov 14 17:22:07 2023',
6b0f9b46 767 'FILES' => q[cpan/Math-BigInt],
4f3a742d 768 'EXCLUDED' => [
7deec013 769 qr{^xt/},
4f3a742d
DR
770 qr{^examples/},
771 qw( t/00sig.t
772 t/01load.t
4f3a742d
DR
773 ),
774 ],
4f3a742d
DR
775 },
776
777 'Math::BigInt::FastCalc' => {
41d0ddc9
PJA
778 'DISTRIBUTION' => 'PJACKLAM/Math-BigInt-FastCalc-0.5015.tar.gz',
779 'SYNCINFO' => 'jkeenan on Sun Sep 24 08:29:56 2023',
6b0f9b46 780 'FILES' => q[cpan/Math-BigInt-FastCalc],
4f3a742d 781 'EXCLUDED' => [
d44f69e7 782 qr{^inc/},
7deec013 783 qr{^xt/},
d239a8c7 784 qr{^t/Math/BigInt/Lib/TestUtil.pm},
4f3a742d
DR
785 qw( t/00sig.t
786 t/01load.t
4f3a742d
DR
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
4f3a742d 801 'Math::Complex' => {
04ae1553 802 'DISTRIBUTION' => 'ZEFRAM/Math-Complex-1.59.tar.gz',
74faf852 803 'FILES' => q[dist/Math-Complex],
4f3a742d
DR
804 'EXCLUDED' => [
805 qw( t/pod.t
806 t/pod-coverage.t
807 ),
808 ],
4f3a742d
DR
809 },
810
811 'Memoize' => {
fc931ecf 812 'DISTRIBUTION' => 'ARISTOTLE/Memoize-1.16.tar.gz',
4f3a742d 813 'FILES' => q[cpan/Memoize],
fc931ecf 814 'EXCLUDED' => [ qr{^inc/} ],
4f3a742d
DR
815 },
816
817 'MIME::Base64' => {
90f582c2 818 'DISTRIBUTION' => 'CAPOEIRAB/MIME-Base64-3.16.tar.gz',
4f3a742d 819 'FILES' => q[cpan/MIME-Base64],
90f582c2 820 'EXCLUDED' => [ qr{^xt/}, 'benchmark', 'benchmark-qp', qr{^t/00-report-prereqs} ],
4dc2cf45
TC
821 'CUSTOMIZED' => [
822 # https://github.com/Dual-Life/mime-base64/pull/17
823 'Base64.xs',
5fb9d4b5
SH
824 'lib/MIME/Base64.pm',
825
826 'lib/MIME/QuotedPrint.pm'
4dc2cf45 827 ],
4f3a742d
DR
828 },
829
4f3a742d 830 'Module::CoreList' => {
83342bd3 831 'DISTRIBUTION' => 'BINGOS/Module-CoreList-5.20231129.tar.gz',
4f3a742d 832 'FILES' => q[dist/Module-CoreList],
4f3a742d
DR
833 },
834
835 'Module::Load' => {
ffdf828c 836 'DISTRIBUTION' => 'BINGOS/Module-Load-0.36.tar.gz',
4f3a742d 837 'FILES' => q[cpan/Module-Load],
4f3a742d
DR
838 },
839
840 'Module::Load::Conditional' => {
d813268c 841 'DISTRIBUTION' => 'BINGOS/Module-Load-Conditional-0.74.tar.gz',
4f3a742d 842 'FILES' => q[cpan/Module-Load-Conditional],
4f3a742d
DR
843 },
844
845 'Module::Loaded' => {
4f3a742d
DR
846 'DISTRIBUTION' => 'BINGOS/Module-Loaded-0.08.tar.gz',
847 'FILES' => q[cpan/Module-Loaded],
4f3a742d
DR
848 },
849
850 'Module::Metadata' => {
af5b7660 851 'DISTRIBUTION' => 'ETHER/Module-Metadata-1.000038.tar.gz',
4f3a742d
DR
852 'FILES' => q[cpan/Module-Metadata],
853 'EXCLUDED' => [
b9beed70 854 qw(t/00-report-prereqs.t),
adc2cdfb 855 qw(t/00-report-prereqs.dd),
e6d414a9 856 qr{weaver.ini},
4f3a742d
DR
857 qr{^xt},
858 ],
4f3a742d
DR
859 },
860
4f3a742d 861 'Net::Ping' => {
4e5f1008 862 'DISTRIBUTION' => 'RURBAN/Net-Ping-2.75.tar.gz',
4f3a742d 863 'FILES' => q[dist/Net-Ping],
773d126d 864 'EXCLUDED' => [
185eb2d3 865 qr{^\.[awc]},
26e9d721 866 qw(README.md.PL),
773d126d
CBW
867 qw(t/020_external.t),
868 qw(t/600_pod.t),
869 qw(t/601_pod-coverage.t),
185eb2d3
CBW
870 qw(t/602_kwalitee.t),
871 qw(t/603_meta.t),
872 qw(t/604_manifest.t),
873 qw(t/appveyor-test.bat),
874
773d126d 875 ],
4f3a742d
DR
876 },
877
878 'NEXT' => {
8b9e957f 879 'DISTRIBUTION' => 'NEILB/NEXT-0.69.tar.gz',
4f3a742d
DR
880 'FILES' => q[cpan/NEXT],
881 'EXCLUDED' => [qr{^demo/}],
4f3a742d
DR
882 },
883
4f3a742d 884 'Params::Check' => {
8b21fa03 885 'DISTRIBUTION' => 'BINGOS/Params-Check-0.38.tar.gz',
4f3a742d 886 'FILES' => q[cpan/Params-Check],
4f3a742d
DR
887 },
888
889 'parent' => {
e3d88374 890 'DISTRIBUTION' => 'CORION/parent-0.241.tar.gz',
4f3a742d 891 'FILES' => q[cpan/parent],
39250dd4
SH
892 'EXCLUDED' => [
893 qr{^xt}
894 ],
4f3a742d
DR
895 },
896
4f3a742d 897 'PathTools' => {
9e3f69e1 898 'DISTRIBUTION' => 'XSAWYERX/PathTools-3.75.tar.gz',
382558a5 899 'MAIN_MODULE' => 'File::Spec',
cb8c8458 900 'FILES' => q[dist/PathTools],
76250107
SH
901 'EXCLUDED' => [
902 qr{^t/lib/Test/},
903 qw( t/rel2abs_vs_symlink.t),
904 ],
4f3a742d
DR
905 },
906
97b1d6e6 907 'Perl::OSType' => {
ea8e5adc 908 'DISTRIBUTION' => 'DAGOLDEN/Perl-OSType-1.010.tar.gz',
97b1d6e6 909 'FILES' => q[cpan/Perl-OSType],
765955c0 910 'EXCLUDED' => [qw(tidyall.ini), qr/^xt/, qr{^t/00-}],
97b1d6e6
SH
911 },
912
97b1d6e6 913 'perlfaq' => {
c9c5e76d
KE
914 'DISTRIBUTION' => 'ETHER/perlfaq-5.20230812.tar.gz',
915 'SYNCINFO' => 'jkeenan on Wed Aug 16 18:13:51 2023',
97b1d6e6 916 'FILES' => q[cpan/perlfaq],
928a385c 917 'EXCLUDED' => [ qr/^inc/, qr/^xt/, qr{^t/00-} ],
97b1d6e6
SH
918 },
919
4f3a742d 920 'PerlIO::via::QuotedPrint' => {
e7d4e29a 921 'DISTRIBUTION' => 'SHAY/PerlIO-via-QuotedPrint-0.10.tar.gz',
4f3a742d 922 'FILES' => q[cpan/PerlIO-via-QuotedPrint],
4f3a742d
DR
923 },
924
0c501878 925 'Pod::Checker' => {
1a440342 926 'DISTRIBUTION' => 'MAREKR/Pod-Checker-1.75.tar.gz',
0c501878 927 'FILES' => q[cpan/Pod-Checker],
0c501878
CBW
928 },
929
4f3a742d 930 'Pod::Escapes' => {
f347d3e3 931 'DISTRIBUTION' => 'NEILB/Pod-Escapes-1.07.tar.gz',
4f3a742d 932 'FILES' => q[cpan/Pod-Escapes],
4f3a742d
DR
933 },
934
4f3a742d 935 'Pod::Perldoc' => {
6aff4bf3 936 'DISTRIBUTION' => 'MALLEN/Pod-Perldoc-3.28.tar.gz',
00e518b3 937 'FILES' => q[cpan/Pod-Perldoc],
4f3a742d 938
fa884b76
DM
939 # Note that we use the CPAN-provided Makefile.PL, since it
940 # contains special handling of the installation of perldoc.pod
941
5fddd31d
SH
942 'EXCLUDED' => [
943 # In blead, the perldoc executable is generated by perldoc.PL
944 # instead
945 # XXX We can and should fix this, but clean up the DRY-failure in
946 # utils first
947 'perldoc',
948
cfe3eec1
GK
949 # files only used for manual testing
950 qr[^corpus/],
951
5fddd31d
SH
952 # https://rt.cpan.org/Ticket/Display.html?id=116827
953 't/02_module_pod_output.t'
954 ],
f2ee4cb8
Z
955
956 'CUSTOMIZED' => [
957 # [rt.cpan.org #88204], [rt.cpan.org #120229]
958 'lib/Pod/Perldoc.pm',
959 ],
4f3a742d
DR
960 },
961
962 'Pod::Simple' => {
3afe1500
JK
963 'DISTRIBUTION' => 'KHW/Pod-Simple-3.45.tar.gz',
964 'SYNCINFO' => 'jkeenan on Wed Aug 2 19:32:39 2023',
4f3a742d 965 'FILES' => q[cpan/Pod-Simple],
643dfa47
SH
966 'EXCLUDED' => [
967 qw{.ChangeLog.swp},
968 qr{^\.github/}
969 ],
4f3a742d
DR
970 },
971
0c501878 972 'Pod::Usage' => {
3ffe0cca 973 'DISTRIBUTION' => 'MAREKR/Pod-Usage-2.03.tar.gz',
0c501878 974 'FILES' => q[cpan/Pod-Usage],
131281c7
SH
975 'EXCLUDED' => [
976 qr{^t/00-},
977 qr{^xt/}
978 ],
0c501878
CBW
979 },
980
4f3a742d 981 'podlators' => {
a9304318 982 'DISTRIBUTION' => 'RRA/podlators-5.01.tar.gz',
382558a5 983 'MAIN_MODULE' => 'Pod::Man',
4f3a742d 984 'FILES' => q[cpan/podlators pod/perlpodstyle.pod],
a7ea90b1 985 'EXCLUDED' => [
a9304318 986 qr{^\.github/dependabot\.yml},
20616d51 987 qr{^\.github/workflows/build\.yaml},
7d722840 988 ],
4f3a742d 989
4f3a742d
DR
990 'MAP' => {
991 '' => 'cpan/podlators/',
4f3a742d 992 # this file lives outside the cpan/ directory
1efe9157 993 'pod/perlpodstyle.pod' => 'pod/perlpodstyle.pod',
4f3a742d 994 },
4f3a742d
DR
995 },
996
4f3a742d 997 'Safe' => {
e739c653 998 'DISTRIBUTION' => 'RGARCIA/Safe-2.35.tar.gz',
4f3a742d 999 'FILES' => q[dist/Safe],
4f3a742d
DR
1000 },
1001
13bb7c4d 1002 'Scalar::Util' => {
d589be28 1003 'DISTRIBUTION' => 'PEVANS/Scalar-List-Utils-1.63.tar.gz',
869a9612 1004 'FILES' => q[cpan/Scalar-List-Utils],
4f3a742d
DR
1005 },
1006
4f3a742d 1007 'Search::Dict' => {
0b0a7092 1008 'DISTRIBUTION' => 'DAGOLDEN/Search-Dict-1.07.tar.gz',
4f3a742d 1009 'FILES' => q[dist/Search-Dict],
4f3a742d
DR
1010 },
1011
1012 'SelfLoader' => {
879d999b 1013 'DISTRIBUTION' => 'SMUELLER/SelfLoader-1.24.tar.gz',
4f3a742d
DR
1014 'FILES' => q[dist/SelfLoader],
1015 'EXCLUDED' => ['t/00pod.t'],
4f3a742d
DR
1016 },
1017
4f3a742d 1018 'Socket' => {
1004cf1c 1019 'DISTRIBUTION' => 'PEVANS/Socket-2.037.tar.gz',
4f3a742d 1020 'FILES' => q[cpan/Socket],
1004cf1c 1021 'EXCLUDED' => ['.editorconfig'],
4f3a742d
DR
1022 },
1023
1024 'Storable' => {
067ce626 1025 'DISTRIBUTION' => 'NWCLARK/Storable-3.25.tar.gz',
4f3a742d 1026 'FILES' => q[dist/Storable],
76250107
SH
1027 'EXCLUDED' => [
1028 qr{^t/compat/},
1029 ],
4f3a742d
DR
1030 },
1031
4f3a742d 1032 'Sys::Syslog' => {
10934390 1033 'DISTRIBUTION' => 'SAPER/Sys-Syslog-0.36.tar.gz',
4f3a742d
DR
1034 'FILES' => q[cpan/Sys-Syslog],
1035 'EXCLUDED' => [
1036 qr{^eg/},
84c82da4
SH
1037 qw( README.win32
1038 t/data-validation.t
4f3a742d
DR
1039 t/distchk.t
1040 t/pod.t
1041 t/podcover.t
1042 t/podspell.t
1043 t/portfs.t
1044 win32/PerlLog.RES
4f3a742d
DR
1045 ),
1046 ],
4f3a742d
DR
1047 },
1048
1049 'Term::ANSIColor' => {
9c952fa3 1050 'DISTRIBUTION' => 'RRA/Term-ANSIColor-5.01.tar.gz',
4f3a742d
DR
1051 'FILES' => q[cpan/Term-ANSIColor],
1052 'EXCLUDED' => [
93d7ac13 1053 qr{^docs/},
92f80b37
CBW
1054 qr{^examples/},
1055 qr{^t/data/},
5e64492f
CBW
1056 qr{^t/docs/},
1057 qr{^t/style/},
1058 qw( t/module/aliases-env.t ),
4f3a742d 1059 ],
4f3a742d
DR
1060 },
1061
1062 'Term::Cap' => {
154a19a8 1063 'DISTRIBUTION' => 'JSTOWE/Term-Cap-1.18.tar.gz',
4f3a742d 1064 'FILES' => q[cpan/Term-Cap],
4f3a742d
DR
1065 },
1066
1067 'Term::Complete' => {
4f3a742d
DR
1068 'DISTRIBUTION' => 'FLORA/Term-Complete-1.402.tar.gz',
1069 'FILES' => q[dist/Term-Complete],
1070 'EXCLUDED' => [qr{^t/release-.*\.t}],
4f3a742d
DR
1071 },
1072
1073 'Term::ReadLine' => {
75ad3638 1074 'DISTRIBUTION' => 'FLORA/Term-ReadLine-1.14.tar.gz',
4f3a742d
DR
1075 'FILES' => q[dist/Term-ReadLine],
1076 'EXCLUDED' => [qr{^t/release-.*\.t}],
4f3a742d
DR
1077 },
1078
f754204f 1079 'Term::Table' => {
25df82dc
CG
1080 'DISTRIBUTION' => 'EXODIST/Term-Table-0.018.tar.gz',
1081 'SYNCINFO' => 'jkeenan on Wed Nov 1 19:16:24 2023',
f754204f
PE
1082 'FILES' => q[cpan/Term-Table],
1083 'EXCLUDED' => [
1084 qw( appveyor.yml ),
1085 ],
1086 },
1087
4f3a742d 1088 'Test' => {
1c22e001 1089 'DISTRIBUTION' => 'JESSE/Test-1.26.tar.gz',
48458f69 1090 'FILES' => q[dist/Test],
4f3a742d
DR
1091 },
1092
1093 'Test::Harness' => {
0a46f5ae
GK
1094 'DISTRIBUTION' => 'LEONT/Test-Harness-3.48.tar.gz',
1095 'SYNCINFO' => 'gknop on Sat Oct 21 15:01:02 2023',
4f3a742d
DR
1096 'FILES' => q[cpan/Test-Harness],
1097 'EXCLUDED' => [
1098 qr{^examples/},
4f3a742d
DR
1099 qr{^xt/},
1100 qw( Changes-2.64
8db65552 1101 MANIFEST.CUMMULATIVE
4f3a742d
DR
1102 HACKING.pod
1103 perlcriticrc
8db65552 1104 t/000-load.t
4f3a742d
DR
1105 t/lib/if.pm
1106 ),
1107 ],
4f3a742d
DR
1108 },
1109
1110 'Test::Simple' => {
cf76a266
CG
1111 'DISTRIBUTION' => 'EXODIST/Test-Simple-1.302198.tar.gz',
1112 'SYNCINFO' => 'jkeenan on Fri Dec 1 07:01:54 2023',
2ae2f22a 1113 'SYNCINFO' => 'jkeenan on Wed Nov 29 11:41:51 2023',
4f3a742d
DR
1114 'FILES' => q[cpan/Test-Simple],
1115 'EXCLUDED' => [
0b4ffce6
SH
1116 qr{^examples/},
1117 qr{^xt/},
022600ce 1118 qw( appveyor.yml
80a7dd19 1119 t/00compile.t
c6a6e1c8
CG
1120 t/00-report.t
1121 t/zzz-check-breaks.t
4f3a742d
DR
1122 ),
1123 ],
f266b743 1124 },
4f3a742d 1125
6281b77d 1126 'Test2::Suite' => {
dde38cd6
CG
1127 'DISTRIBUTION' => 'EXODIST/Test2-Suite-0.000159.tar.gz',
1128 'SYNCINFO' => 'jkeenan on Wed Nov 1 20:18:33 2023',
6281b77d
PE
1129 'FILES' => q[cpan/Test2-Suite],
1130 'EXCLUDED' => [
1131 qw( appveyor.yml
1132 perltidyrc
1133 t/00-report.t ),
34ae5b5c
GK
1134
1135 # https://github.com/Test-More/Test2-Suite/issues/208
1136 't/acceptance/Workflow-Acceptance.t',
6281b77d
PE
1137 ],
1138 },
1139
4f3a742d 1140 'Text::Abbrev' => {
5e96eee9 1141 'DISTRIBUTION' => 'FLORA/Text-Abbrev-1.02.tar.gz',
4f3a742d
DR
1142 'FILES' => q[dist/Text-Abbrev],
1143 'EXCLUDED' => [qr{^t/release-.*\.t}],
4f3a742d
DR
1144 },
1145
1146 'Text::Balanced' => {
3300a2e6 1147 'DISTRIBUTION' => 'SHAY/Text-Balanced-2.06.tar.gz',
4f3a742d 1148 'FILES' => q[cpan/Text-Balanced],
4f3a742d
DR
1149 },
1150
1151 'Text::ParseWords' => {
7d722840 1152 'DISTRIBUTION' => 'NEILB/Text-ParseWords-3.31.tar.gz',
4f3a742d 1153 'FILES' => q[cpan/Text-ParseWords],
4f3a742d
DR
1154 },
1155
4f3a742d 1156 'Text-Tabs+Wrap' => {
bf333a6b 1157 'DISTRIBUTION' => 'ARISTOTLE/Text-Tabs+Wrap-2023.0511.tar.gz',
382558a5 1158 'MAIN_MODULE' => 'Text::Tabs',
4f3a742d 1159 'FILES' => q[cpan/Text-Tabs],
e7b92d54 1160 'EXCLUDED' => [
89dbbd9d
JK
1161 qr{^xt},
1162
4f3a742d 1163 ],
e7b92d54
SH
1164 'MAP' => {
1165 '' => 'cpan/Text-Tabs/',
ab2a3ce2
SH
1166 'lib.modern/Text/Tabs.pm' => 'cpan/Text-Tabs/lib/Text/Tabs.pm',
1167 'lib.modern/Text/Wrap.pm' => 'cpan/Text-Tabs/lib/Text/Wrap.pm',
e7b92d54 1168 },
4f3a742d
DR
1169 },
1170
4e75700d
AC
1171 # Jerry Hedden does take patches that are applied to blead first, even
1172 # though that can be hard to discern from the Git history; so it's
1173 # correct for this (and Thread::Semaphore, threads, and threads::shared)
1174 # to be under dist/ rather than cpan/
4f3a742d 1175 'Thread::Queue' => {
e1578db3 1176 'DISTRIBUTION' => 'JDHEDDEN/Thread-Queue-3.13.tar.gz',
4f3a742d
DR
1177 'FILES' => q[dist/Thread-Queue],
1178 'EXCLUDED' => [
1fd4700e
JH
1179 qr{^examples/},
1180 qw( t/00_load.t
4f3a742d
DR
1181 t/99_pod.t
1182 t/test.pl
1183 ),
1184 ],
4f3a742d
DR
1185 },
1186
1187 'Thread::Semaphore' => {
51068c14 1188 'DISTRIBUTION' => 'JDHEDDEN/Thread-Semaphore-2.13.tar.gz',
4f3a742d
DR
1189 'FILES' => q[dist/Thread-Semaphore],
1190 'EXCLUDED' => [
1191 qw( examples/semaphore.pl
1192 t/00_load.t
1193 t/99_pod.t
1194 t/test.pl
1195 ),
1196 ],
4f3a742d
DR
1197 },
1198
1199 'threads' => {
40e3ceea 1200 'DISTRIBUTION' => 'JDHEDDEN/threads-2.21.tar.gz',
4f3a742d
DR
1201 'FILES' => q[dist/threads],
1202 'EXCLUDED' => [
1203 qr{^examples/},
1204 qw( t/pod.t
1205 t/test.pl
4f3a742d
DR
1206 ),
1207 ],
4f3a742d
DR
1208 },
1209
1210 'threads::shared' => {
fdfb42a0 1211 'DISTRIBUTION' => 'JDHEDDEN/threads-shared-1.59.tar.gz',
4f3a742d
DR
1212 'FILES' => q[dist/threads-shared],
1213 'EXCLUDED' => [
1214 qw( examples/class.pl
4f3a742d
DR
1215 t/pod.t
1216 t/test.pl
1217 ),
1218 ],
4f3a742d
DR
1219 },
1220
1221 'Tie::File' => {
f4dbb951 1222 'DISTRIBUTION' => 'TODDR/Tie-File-1.07.tar.gz',
c0504019 1223 'FILES' => q[dist/Tie-File],
4f3a742d
DR
1224 },
1225
4f3a742d 1226 'Tie::RefHash' => {
6fcc9782 1227 'DISTRIBUTION' => 'ETHER/Tie-RefHash-1.40.tar.gz',
4f3a742d 1228 'FILES' => q[cpan/Tie-RefHash],
e1b30ab2
SH
1229 'EXCLUDED' => [
1230 qr{^t/00-},
1231 qr{^xt/},
1232 ],
4f3a742d
DR
1233 },
1234
1235 'Time::HiRes' => {
371b09ed 1236 'DISTRIBUTION' => 'ATOOMIC/Time-HiRes-1.9764.tar.gz',
91ba54d4 1237 'FILES' => q[dist/Time-HiRes],
4f3a742d
DR
1238 },
1239
1240 'Time::Local' => {
ac63a255 1241 'DISTRIBUTION' => 'DROLSKY/Time-Local-1.35.tar.gz',
4f3a742d
DR
1242 'FILES' => q[cpan/Time-Local],
1243 'EXCLUDED' => [
ac63a255
SH
1244 qr{^dev-bin/},
1245 qr{^git/},
cc890588 1246 qr{^xt/},
34857856
SH
1247 qw( CODE_OF_CONDUCT.md
1248 azure-pipelines.yml
d82c4df6 1249 perlcriticrc
cc890588 1250 perltidyrc
ac63a255 1251 precious.toml
cc890588
SH
1252 t/00-report-prereqs.t
1253 t/00-report-prereqs.dd
1254 ),
4f3a742d 1255 ],
4f3a742d
DR
1256 },
1257
1258 'Time::Piece' => {
a5ebaea1 1259 'DISTRIBUTION' => 'ESAYM/Time-Piece-1.3401.tar.gz',
4f3a742d 1260 'FILES' => q[cpan/Time-Piece],
fd481c17 1261 'EXCLUDED' => [ qw[reverse_deps.txt] ],
1f6d16e1
TC
1262 'CUSTOMIZED' => [
1263 # https://github.com/Dual-Life/Time-Piece/pull/64
1264 'Piece.pm',
1265 'Piece.xs'
1266 ],
4f3a742d
DR
1267 },
1268
1269 'Unicode::Collate' => {
983d5bee 1270 'DISTRIBUTION' => 'SADAHIRO/Unicode-Collate-1.31.tar.gz',
4f3a742d
DR
1271 'FILES' => q[cpan/Unicode-Collate],
1272 'EXCLUDED' => [
1273 qr{N$},
1274 qr{^data/},
1275 qr{^gendata/},
1276 qw( disableXS
1277 enableXS
1278 mklocale
1279 ),
1280 ],
4f3a742d
DR
1281 },
1282
1283 'Unicode::Normalize' => {
d339f061 1284 'DISTRIBUTION' => 'KHW/Unicode-Normalize-1.26.tar.gz',
3baae3fa 1285 'FILES' => q[dist/Unicode-Normalize],
1ef95abd
SH
1286 'EXCLUDED' => [
1287 qw( MANIFEST.N
1288 Normalize.pmN
1289 disableXS
1290 enableXS
1291 ),
1292 ],
4f3a742d
DR
1293 },
1294
4f3a742d 1295 'version' => {
cd622ffb
PE
1296 'DISTRIBUTION' => 'LEONT/version-0.9930.tar.gz',
1297 'SYNCINFO' => 'LeoNerd on Mon Sep 18 21:49:09 2023',
4fa93b19 1298 'FILES' => q[cpan/version vutil.c vutil.h vxs.inc],
4f3a742d 1299 'EXCLUDED' => [
df3ba8e7 1300 qr{^vutil/lib/},
c60b4fa6 1301 'vutil/Makefile.PL',
df3ba8e7
FC
1302 'vutil/ppport.h',
1303 'vutil/vxs.xs',
ce9582af 1304 't/00impl-pp.t',
4f3a742d 1305 't/survey_locales',
d1e81356 1306 'vperl/vpp.pm',
4f3a742d 1307 ],
f81a37f2 1308
c872d591
SH
1309 # When adding the CPAN-distributed files for version.pm, it is necessary
1310 # to delete an entire block out of lib/version.pm, since that code is
1311 # only necessary with the CPAN release.
f81a37f2 1312 'CUSTOMIZED' => [
f4aba3e9
SH
1313 'lib/version.pm',
1314
1315 't/07locale.t'
ff6af44f 1316 ],
f81a37f2 1317
df3ba8e7 1318 'MAP' => {
4fa93b19 1319 'vutil/' => '',
df3ba8e7
FC
1320 '' => 'cpan/version/',
1321 },
4f3a742d
DR
1322 },
1323
4f3a742d 1324 'warnings' => {
099bebb1 1325 'FILES' => q[
4f3a742d 1326 lib/warnings
099bebb1
SH
1327 lib/warnings.{pm,t}
1328 regen/warnings.pl
4f3a742d 1329 t/lib/warnings
099bebb1 1330 ],
4f3a742d
DR
1331 },
1332
4f3a742d 1333 'Win32' => {
35f6f290 1334 'DISTRIBUTION' => "JDB/Win32-0.59.tar.gz",
4f3a742d 1335 'FILES' => q[cpan/Win32],
4f3a742d
DR
1336 },
1337
1338 'Win32API::File' => {
df61f5a9 1339 'DISTRIBUTION' => 'CHORNY/Win32API-File-0.1203.tar.gz',
4f3a742d
DR
1340 'FILES' => q[cpan/Win32API-File],
1341 'EXCLUDED' => [
1342 qr{^ex/},
4f3a742d 1343 ],
6177f132
DIM
1344 # https://rt.cpan.org/Ticket/Display.html?id=127837
1345 'CUSTOMIZED' => [
1346 qw( File.pm
1347 File.xs
1348 ),
1349 ],
4f3a742d
DR
1350 },
1351
4f3a742d 1352 'XSLoader' => {
6f2c9cc3 1353 'DISTRIBUTION' => 'SAPER/XSLoader-0.24.tar.gz',
4f3a742d
DR
1354 'FILES' => q[dist/XSLoader],
1355 'EXCLUDED' => [
1356 qr{^eg/},
57f9caa0
SH
1357 qw( t/00-load.t
1358 t/01-api.t
1359 t/distchk.t
1360 t/pod.t
4f3a742d
DR
1361 t/podcover.t
1362 t/portfs.t
1363 ),
1364 'XSLoader.pm', # we use XSLoader_pm.PL
1365 ],
4f3a742d
DR
1366 },
1367
462ea751
DM
1368 # this pseudo-module represents all the files under ext/ and lib/
1369 # that aren't otherwise claimed. This means that the following two
1370 # commands will check that every file under ext/ and lib/ is
1371 # accounted for, and that there are no duplicates:
1372 #
1373 # perl Porting/Maintainers --checkmani lib ext
d8ada404 1374 # perl Porting/Maintainers --checkmani
462ea751 1375
4f3a742d 1376 '_PERLLIB' => {
2af3c4b9 1377 'FILES' => q[
79852350
AB
1378 ext/Amiga-ARexx/
1379 ext/Amiga-Exec/
09213599 1380 ext/B/
2af3c4b9
SH
1381 ext/Devel-Peek/
1382 ext/DynaLoader/
1383 ext/Errno/
7b4d95f7 1384 ext/ExtUtils-Miniperl/
2af3c4b9
SH
1385 ext/Fcntl/
1386 ext/File-DosGlob/
1387 ext/File-Find/
1388 ext/File-Glob/
1389 ext/FileCache/
1390 ext/GDBM_File/
1391 ext/Hash-Util-FieldHash/
1392 ext/Hash-Util/
1393 ext/I18N-Langinfo/
1394 ext/IPC-Open3/
1395 ext/NDBM_File/
1396 ext/ODBM_File/
1397 ext/Opcode/
1398 ext/POSIX/
1399 ext/PerlIO-encoding/
1400 ext/PerlIO-mmap/
1401 ext/PerlIO-scalar/
1402 ext/PerlIO-via/
1403 ext/Pod-Functions/
1404 ext/Pod-Html/
1405 ext/SDBM_File/
1406 ext/Sys-Hostname/
1407 ext/Tie-Hash-NamedCapture/
1408 ext/Tie-Memoize/
b3dcf775 1409 ext/VMS-DCLsym/
2af3c4b9 1410 ext/VMS-Filespec/
b3dcf775
SH
1411 ext/VMS-Stdio/
1412 ext/Win32CORE/
4f3a742d 1413 ext/XS-APItest/
2af3c4b9 1414 ext/XS-Typemap/
2af3c4b9
SH
1415 ext/attributes/
1416 ext/mro/
1417 ext/re/
1418 lib/AnyDBM_File.{pm,t}
1419 lib/Benchmark.{pm,t}
38eca645 1420 lib/B/Deparse{.pm,.t,-*.t}
f3574cc6 1421 lib/B/Op_private.pm
4f3a742d 1422 lib/CORE.pod
2af3c4b9 1423 lib/Class/Struct.{pm,t}
4f3a742d
DR
1424 lib/Config.t
1425 lib/Config/Extensions.{pm,t}
1426 lib/DB.{pm,t}
2af3c4b9
SH
1427 lib/DBM_Filter.pm
1428 lib/DBM_Filter/
1429 lib/DirHandle.{pm,t}
1430 lib/English.{pm,t}
4f3a742d
DR
1431 lib/ExtUtils/Embed.pm
1432 lib/ExtUtils/XSSymSet.pm
1433 lib/ExtUtils/t/Embed.t
1434 lib/ExtUtils/typemap
2af3c4b9
SH
1435 lib/File/Basename.{pm,t}
1436 lib/File/Compare.{pm,t}
1437 lib/File/Copy.{pm,t}
1438 lib/File/stat{.pm,.t,-7896.t}
1439 lib/FileHandle.{pm,t}
2af3c4b9 1440 lib/Getopt/Std.{pm,t}
cb198164 1441 lib/Internals.pod
4f3a742d 1442 lib/Internals.t
4b6af431 1443 lib/meta_notation.{pm,t}
4f3a742d
DR
1444 lib/Net/hostent.{pm,t}
1445 lib/Net/netent.{pm,t}
1446 lib/Net/protoent.{pm,t}
1447 lib/Net/servent.{pm,t}
2af3c4b9 1448 lib/PerlIO.pm
4f3a742d 1449 lib/Pod/t/Usage.t
4f3a742d
DR
1450 lib/SelectSaver.{pm,t}
1451 lib/Symbol.{pm,t}
1452 lib/Thread.{pm,t}
1453 lib/Tie/Array.pm
1454 lib/Tie/Array/
1455 lib/Tie/ExtraHash.t
1456 lib/Tie/Handle.pm
1457 lib/Tie/Handle/
2af3c4b9 1458 lib/Tie/Hash.{pm,t}
4f3a742d
DR
1459 lib/Tie/Scalar.{pm,t}
1460 lib/Tie/StdHandle.pm
1461 lib/Tie/SubstrHash.{pm,t}
1462 lib/Time/gmtime.{pm,t}
1463 lib/Time/localtime.{pm,t}
1464 lib/Time/tm.pm
1465 lib/UNIVERSAL.pm
1466 lib/Unicode/README
4f543aad 1467 lib/Unicode/testnorm.t
2af3c4b9 1468 lib/Unicode/UCD.{pm,t}
4f3a742d
DR
1469 lib/User/grent.{pm,t}
1470 lib/User/pwent.{pm,t}
2af3c4b9 1471 lib/_charnames.pm
4f3a742d 1472 lib/blib.{pm,t}
6a2e756f 1473 lib/builtin.{pm,t}
3a4d94ec 1474 lib/builtin-taint.t
4f3a742d
DR
1475 lib/bytes.{pm,t}
1476 lib/bytes_heavy.pl
1477 lib/charnames.{pm,t}
1478 lib/dbm_filter_util.pl
1479 lib/deprecate.pm
2af3c4b9 1480 lib/diagnostics.{pm,t}
4f3a742d
DR
1481 lib/dumpvar.{pl,t}
1482 lib/feature.{pm,t}
1483 lib/feature/
1484 lib/filetest.{pm,t}
1485 lib/h2ph.t
1486 lib/h2xs.t
1487 lib/integer.{pm,t}
1488 lib/less.{pm,t}
1489 lib/locale.{pm,t}
706055ce 1490 lib/locale_threads.t
4f3a742d
DR
1491 lib/open.{pm,t}
1492 lib/overload/numbers.pm
1493 lib/overloading.{pm,t}
2af3c4b9 1494 lib/overload{.pm,.t,64.t}
4f3a742d
DR
1495 lib/perl5db.{pl,t}
1496 lib/perl5db/
a3b4b767 1497 lib/perlbug.t
2af3c4b9 1498 lib/sigtrap.{pm,t}
4f3a742d
DR
1499 lib/sort.{pm,t}
1500 lib/strict.{pm,t}
1501 lib/subs.{pm,t}
1502 lib/unicore/
1503 lib/utf8.{pm,t}
4f3a742d
DR
1504 lib/vars{.pm,.t,_carp.t}
1505 lib/vmsish.{pm,t}
1506 ],
4f3a742d 1507 },
462ea751 1508);
b128a327 1509
008ae6a0 1510our %DistName;
97556ec3 1511# legacy CPAN flag
9bdaf5c5
YO
1512for my $mod_name ( keys %Modules ) {
1513 my $data = $Modules{$mod_name};
1514 $data->{CPAN} = !!$data->{DISTRIBUTION};
1515 my (@files)= split /\s+/, $data->{FILES};
1516 if (@files and $files[0]=~s!^(cpan|dist)/!!) {
1517 $DistName{$files[0]} = $mod_name;
1518 $DistName{"$1/$files[0]"} = $mod_name;
1519 }
97556ec3
GA
1520}
1521
099bebb1
SH
1522# legacy UPSTREAM flag
1523for ( keys %Modules ) {
1524 # Keep any existing UPSTREAM flag so that "overrides" can be applied
1525 next if exists $Modules{$_}{UPSTREAM};
1526
1527 if ($_ eq '_PERLLIB' or $Modules{$_}{FILES} =~ m{^\s*(?:dist|ext|lib)/}) {
1528 $Modules{$_}{UPSTREAM} = 'blead';
1529 }
1530 elsif ($Modules{$_}{FILES} =~ m{^\s*cpan/}) {
1531 $Modules{$_}{UPSTREAM} = 'cpan';
1532 }
1533 else {
1534 warn "Unexpected location of FILES for module $_: $Modules{$_}{FILES}";
1535 }
1536}
1537
008ae6a0 1538our %Maintainers;
d350de41 1539# legacy MAINTAINER field
099bebb1 1540for ( keys %Modules ) {
b3dcf775 1541 # Keep any existing MAINTAINER flag so that "overrides" can be applied
099bebb1
SH
1542 next if exists $Modules{$_}{MAINTAINER};
1543
1544 if ($Modules{$_}{UPSTREAM} eq 'blead') {
1545 $Modules{$_}{MAINTAINER} = 'P5P';
872818ae 1546 $Maintainers{P5P} = 'perl5-porters <perl5-porters@perl.org>';
d350de41 1547 }
099bebb1
SH
1548 elsif (exists $Modules{$_}{DISTRIBUTION}) {
1549 (my $pause_id = $Modules{$_}{DISTRIBUTION}) =~ s{/.*$}{};
1550 $Modules{$_}{MAINTAINER} = $pause_id;
d350de41
SH
1551 $Maintainers{$pause_id} = "<$pause_id\@cpan.org>";
1552 }
099bebb1
SH
1553 else {
1554 warn "No DISTRIBUTION for non-blead module $_";
1555 }
d350de41
SH
1556}
1557
b128a327 15581;