This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
f324379af9373065ca3f6a6e8254e8cbbe126d88
[perl5.git] / Porting / Maintainers.pl
1 #!perl
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
7 # and in CPAN.
8
9 package Maintainers;
10
11 use utf8;
12 use File::Glob qw(:case);
13
14 %Maintainers = (
15     'ABIGAIL'   => 'Abigail <abigail@abigail.be>',
16     'AVAR'      => 'Ævar Arnfjörð Bjarmason <avar@cpan.org>',
17     'CBERRY'    => 'Craig Berry <craigberry@mac.com>',
18     'ELIZABETH' => 'Elizabeth Mattijsen <liz@dijkmat.nl>',
19     'JDB'       => 'Jan Dubois <jand@activestate.com>',
20     'laun'      => 'Wolfgang Laun <Wolfgang.Laun@alcatel.at>',
21     'LWALL'     => 'Larry Wall <lwall@cpan.org>',
22     'MJD'       => 'Mark-Jason Dominus <mjd@plover.com>',
23     'PMQS'      => 'Paul Marquess <pmqs@cpan.org>',
24     'PVHP'      => 'Peter Prymmer <pvhp@best.com>',
25     'SARTAK'    => 'Shawn M Moore <sartak@gmail.com>',
26     'SBURKE'    => 'Sean Burke <sburke@cpan.org>',
27     'SMCCAM'    => 'Stephen McCamant <smccam@cpan.org>',
28 );
29
30 # IGNORABLE: files which, if they appear in the root of a CPAN
31 # distribution, need not appear in core (i.e. core-cpan-diff won't
32 # complain if it can't find them)
33
34 @IGNORABLE = qw(
35     .cvsignore .dualLivedDiffConfig .gitignore
36     ANNOUNCE Announce Artistic AUTHORS BENCHMARK BUGS Build.PL
37     CHANGELOG ChangeLog Changelog CHANGES Changes CONTRIBUTING COPYING Copying
38     cpanfile CREDITS dist.ini GOALS HISTORY INSTALL INSTALL.SKIP LICENSE
39     Makefile.PL MANIFEST MANIFEST.SKIP META.json META.yml MYMETA.json
40     MYMETA.yml NEW NOTES perlcritic.rc ppport.h README README.PATCHING
41     SIGNATURE THANKS TODO Todo VERSION WHATSNEW
42 );
43
44 # Each entry in the  %Modules hash roughly represents a distribution,
45 # except when DISTRIBUTION is set, where it *exactly* represents a single
46 # CPAN distribution.
47
48 # The keys of %Modules are human descriptions of the distributions, and
49 # may not exactly match a module or distribution name. Distributions
50 # which have an obvious top-level module associated with them will usually
51 # have a key named for that module, e.g. 'Archive::Extract' for
52 # Archive-Extract-N.NN.tar.gz; the remaining keys are likely to be based
53 # on the name of the distribution, e.g. 'Locale-Codes' for
54 # Locale-Codes-N.NN.tar.gz'.
55
56 # MAINTAINER indicates who the current maintainer of the module is.  For
57 # modules with no MAINTAINER field given, this is understood to be either
58 # the Perl 5 Porters if there is no DISTRIBUTION field or the UPSTREAM
59 # field is set to 'blead', or else the CPAN author whose PAUSE user ID
60 # forms the first part of the DISTRIBUTION value, e.g. 'BINGOS' in the
61 # case of 'BINGOS/Archive-Tar-1.92.tar.gz'.  (PAUSE's View Permissions
62 # page may be consulted to find other authors who have owner or co-maint
63 # permissions for the module in question.)  The few explicitly listed
64 # MAINTAINERs refer to authors whose email address is listed in the
65 # %Maintainers hash above.
66
67 # FILES is a list of filenames, glob patterns, and directory
68 # names to be recursed down, which collectively generate a complete list
69 # of the files associated with the distribution.
70
71 # UPSTREAM indicates where patches should go. undef implies
72 # that this hasn't been discussed for the module at hand.
73 # "blead" indicates that the copy of the module in the blead
74 # sources is to be considered canonical, "cpan" means that the
75 # module on CPAN is to be patched first.
76
77 # BUGS is an email or url to post bug reports.  For modules with
78 # UPSTREAM => 'blead', use perl5-porters@perl.org.  rt.cpan.org
79 # appears to automatically provide a URL for CPAN modules; any value
80 # given here overrides the default:
81 # http://rt.cpan.org/Public/Dist/Display.html?Name=$ModuleName
82
83 # DISTRIBUTION names the tarball on CPAN which (allegedly) the files
84 # included in core are derived from. Note that the file's version may not
85 # necessarily match the newest version on CPAN.
86
87 # EXCLUDED is a list of files to be excluded from a CPAN tarball before
88 # comparing the remaining contents with core. Each item can either be a
89 # full pathname (eg 't/foo.t') or a pattern (e.g. qr{^t/}).
90 # It defaults to the empty list.
91
92 # CUSTOMIZED is a list of files that have been customized within the
93 # Perl core.  Use this whenever patching a cpan upstream distribution
94 # or whenever we expect to have a file that differs from the tarball.
95 # If the file in blead matches the file in the tarball from CPAN,
96 # Porting/core-cpan-diff will warn about it, as it indicates an expected
97 # customization might have been lost when updating from upstream.  The
98 # path should be relative to the distribution directory.  If the upstream
99 # distribution should be modified to incorporate the change then be sure
100 # to raise a ticket for it on rt.cpan.org and add a comment alongside the
101 # list of CUSTOMIZED files noting the ticket number.
102
103 # DEPRECATED contains the *first* version of Perl in which the module
104 # was considered deprecated.  It should only be present if the module is
105 # actually deprecated.  Such modules should use deprecated.pm to
106 # issue a warning if used.  E.g.:
107 #
108 #     use if $] >= 5.011, 'deprecate';
109 #
110
111 # MAP is a hash that maps CPAN paths to their core equivalents.
112 # Each key represents a string prefix, with longest prefixes checked
113 # first. The first match causes that prefix to be replaced with the
114 # corresponding key. For example, with the following MAP:
115 #   {
116 #     'lib/'     => 'lib/',
117 #     ''     => 'lib/Foo/',
118 #   },
119 #
120 # these files are mapped as shown:
121 #
122 #    README     becomes lib/Foo/README
123 #    lib/Foo.pm becomes lib/Foo.pm
124 #
125 # The default is dependent on the type of module.
126 # For distributions which appear to be stored under ext/, it defaults to:
127 #
128 #   { '' => 'ext/Foo-Bar/' }
129 #
130 # otherwise, it's
131 #
132 #   {
133 #     'lib/'     => 'lib/',
134 #     ''     => 'lib/Foo/Bar/',
135 #   }
136
137 %Modules = (
138
139     'AnyDBM_File' => {
140         'FILES'       => q[lib/AnyDBM_File.{pm,t}],
141         'UPSTREAM'    => 'blead',
142     },
143
144     'Archive::Tar' => {
145         'DISTRIBUTION' => 'BINGOS/Archive-Tar-1.92.tar.gz',
146         'FILES'        => q[cpan/Archive-Tar],
147         'UPSTREAM'     => 'cpan',
148         'BUGS'         => 'bug-archive-tar@rt.cpan.org',
149     },
150
151     'Attribute::Handlers' => {
152         'DISTRIBUTION' => 'SMUELLER/Attribute-Handlers-0.93.tar.gz',
153         'FILES'        => q[dist/Attribute-Handlers],
154         'UPSTREAM'     => 'blead',
155     },
156
157     'attributes' => {
158         'FILES'      => q[ext/attributes],
159         'UPSTREAM'   => 'blead',
160     },
161
162     'autodie' => {
163         'DISTRIBUTION' => 'PJF/autodie-2.22.tar.gz',
164         'FILES'        => q[cpan/autodie],
165         'EXCLUDED'     => [
166             qr{benchmarks},
167             # All these tests depend upon external
168             # modules that don't exist when we're
169             # building the core.  Hence, they can
170             # never run, and should not be merged.
171             qw( t/author-critic.t
172                 t/boilerplate.t
173                 t/critic.t
174                 t/fork.t
175                 t/kwalitee.t
176                 t/lex58.t
177                 t/pod-coverage.t
178                 t/pod.t
179                 t/release-pod-coverage.t
180                 t/release-pod-syntax.t
181                 t/socket.t
182                 t/system.t
183                 )
184         ],
185         'CUSTOMIZED'   => [
186             # Waiting to be merged upstream: see CPAN RT#87237
187             qw( t/utf8_open.t ),
188         ],
189         'UPSTREAM'   => 'cpan',
190     },
191
192     'AutoLoader' => {
193         'DISTRIBUTION' => 'SMUELLER/AutoLoader-5.73.tar.gz',
194         'FILES'        => q[cpan/AutoLoader],
195         'EXCLUDED'     => ['t/00pod.t'],
196         'UPSTREAM'     => 'cpan',
197     },
198
199     'autouse' => {
200         'DISTRIBUTION' => 'FLORA/autouse-1.07.tar.gz',
201         'FILES'        => q[dist/autouse],
202         'EXCLUDED'     => [qr{^t/release-.*\.t}],
203         'UPSTREAM'     => 'blead',
204     },
205
206     'B' => {
207         'FILES'      => q[ext/B],
208         'EXCLUDED'   => [
209             qw( B/Concise.pm
210                 t/concise.t
211                 ),
212         ],
213         'UPSTREAM' => 'blead',
214     },
215
216     'B::Concise' => {
217         'MAINTAINER' => 'SMCCAM',
218         'FILES'      => q[ext/B/B/Concise.pm ext/B/t/concise.t],
219         'UPSTREAM'   => 'blead',
220     },
221
222     'B::Debug' => {
223         'DISTRIBUTION' => 'RURBAN/B-Debug-1.18.tar.gz',
224         'FILES'        => q[cpan/B-Debug],
225         'EXCLUDED'     => ['t/pod.t'],
226         'UPSTREAM'     => 'cpan',
227     },
228
229     'B::Deparse' => {
230         'MAINTAINER' => 'SMCCAM',
231         'FILES'      => q[dist/B-Deparse],
232         'UPSTREAM'   => 'blead',
233     },
234
235     'base' => {
236         'DISTRIBUTION' => 'RGARCIA/base-2.18.tar.gz',
237         'FILES'        => q[dist/base],
238         'UPSTREAM'     => 'blead',
239     },
240
241     'Benchmark' => {
242         'FILES'      => q[lib/Benchmark.{pm,t}],
243         'UPSTREAM'   => 'blead',
244     },
245
246     'bignum' => {
247         'DISTRIBUTION' => 'FLORA/bignum-0.32.tar.gz',
248         'FILES'        => q[dist/bignum],
249         'EXCLUDED'     => [
250             qr{^inc/Module/},
251             qw( t/pod.t
252                 t/pod_cov.t
253                 ),
254         ],
255         'UPSTREAM' => 'blead',
256     },
257
258     'Carp' => {
259         'DISTRIBUTION' => 'ZEFRAM/Carp-1.32.tar.gz',
260         'FILES'        => q[dist/Carp],
261         'UPSTREAM'     => 'blead',
262     },
263
264     'CGI' => {
265         'DISTRIBUTION' => 'MARKSTOS/CGI.pm-3.63.tar.gz',
266         'FILES'        => q[cpan/CGI],
267         'EXCLUDED'     => [
268             qw( cgi_docs.html
269                 examples/WORLD_WRITABLE/18.157.1.253.sav
270                 t/gen-tests/gen-start-end-tags.pl
271                 t/fast.t
272                 ),
273         ],
274         'UPSTREAM'   => 'cpan',
275     },
276
277     'Class::Struct' => {
278         'FILES'      => q[lib/Class/Struct.{pm,t}],
279         'UPSTREAM'   => 'blead',
280     },
281
282     'Compress::Raw::Bzip2' => {
283         'DISTRIBUTION' => 'PMQS/Compress-Raw-Bzip2-2.062.tar.gz',
284         'FILES'        => q[cpan/Compress-Raw-Bzip2],
285         'EXCLUDED'     => [
286             qr{^t/Test/},
287             'bzip2-src/bzip2-cpp.patch',
288         ],
289         'UPSTREAM' => 'cpan',
290     },
291
292     'Compress::Raw::Zlib' => {
293         'DISTRIBUTION' => 'PMQS/Compress-Raw-Zlib-2.062.tar.gz',
294
295         'FILES'    => q[cpan/Compress-Raw-Zlib],
296         'EXCLUDED' => [
297             qr{^t/Test/},
298             qw( t/000prereq.t
299                 t/99pod.t
300                 ),
301         ],
302         'UPSTREAM' => 'cpan',
303     },
304
305     'Config::Perl::V' => {
306         'DISTRIBUTION' => 'HMBRAND/Config-Perl-V-0.19.tgz',
307         'FILES'        => q[cpan/Config-Perl-V],
308         'EXCLUDED'     => ['examples/show-v.pl'],
309         'UPSTREAM'     => 'cpan',
310     },
311
312     'constant' => {
313         'DISTRIBUTION' => 'SAPER/constant-1.27.tar.gz',
314         'FILES'        => q[dist/constant],
315         'EXCLUDED'     => [
316             qw( t/00-load.t
317                 t/more-tests.t
318                 t/pod-coverage.t
319                 t/pod.t
320                 eg/synopsis.pl
321                 ),
322         ],
323         'UPSTREAM' => 'blead',
324     },
325
326     'CPAN' => {
327         'DISTRIBUTION' => 'ANDK/CPAN-2.03-TRIAL.tar.gz',
328         'FILES'        => q[cpan/CPAN],
329         'EXCLUDED'     => [
330             qr{^distroprefs/},
331             qr{^inc/Test/},
332             qr{^t/CPAN/authors/},
333             qw( lib/CPAN/Admin.pm
334                 scripts/cpan-mirrors
335                 PAUSE2015.pub
336                 SlayMakefile
337                 t/00signature.t
338                 t/04clean_load.t
339                 t/12cpan.t
340                 t/13tarzip.t
341                 t/14forkbomb.t
342                 t/30shell.coverage
343                 t/30shell.t
344                 t/31sessions.t
345                 t/41distribution.t
346                 t/42distroprefs.t
347                 t/44cpanmeta.t
348                 t/43distroprefspref.t
349                 t/50pod.t
350                 t/51pod.t
351                 t/52podcover.t
352                 t/60credentials.t
353                 t/70_critic.t
354                 t/71_minimumversion.t
355                 t/CPAN/CpanTestDummies-1.55.pm
356                 t/CPAN/TestConfig.pm
357                 t/CPAN/TestMirroredBy
358                 t/CPAN/TestPatch.txt
359                 t/CPAN/modules/02packages.details.txt
360                 t/CPAN/modules/03modlist.data
361                 t/data/META-dynamic.json
362                 t/data/META-dynamic.yml
363                 t/data/META-static.json
364                 t/data/META-static.yml
365                 t/data/MYMETA.json
366                 t/data/MYMETA.yml
367                 t/local_utils.pm
368                 t/perlcriticrc
369                 t/yaml_code.yml
370                 ),
371         ],
372         'UPSTREAM' => 'cpan',
373     },
374
375     # Note: When updating CPAN-Meta the META.* files will need to be regenerated
376     # perl -Icpan/CPAN-Meta/lib Porting/makemeta
377     'CPAN::Meta' => {
378         'DISTRIBUTION' => 'DAGOLDEN/CPAN-Meta-2.132830.tar.gz',
379         'FILES'        => q[cpan/CPAN-Meta],
380         'EXCLUDED'     => [
381             qw(t/00-compile.t),
382             qw[t/00-report-prereqs.t],
383             qr{t/README-data.txt},
384             qr{^xt},
385             qr{^history},
386         ],
387         'UPSTREAM' => 'cpan',
388     },
389
390     'CPAN::Meta::Requirements' => {
391         'DISTRIBUTION' => 'DAGOLDEN/CPAN-Meta-Requirements-2.125.tar.gz',
392         'FILES'        => q[cpan/CPAN-Meta-Requirements],
393         'EXCLUDED'     => [
394             qw(t/00-compile.t),
395             qw(t/00-report-prereqs.t),
396             qr{^xt},
397             qr{^history},
398         ],
399         'UPSTREAM' => 'cpan',
400     },
401
402     'CPAN::Meta::YAML' => {
403         'DISTRIBUTION' => 'DAGOLDEN/CPAN-Meta-YAML-0.010.tar.gz',
404         'FILES'        => q[cpan/CPAN-Meta-YAML],
405         'EXCLUDED'     => [
406             't/00-compile.t',
407             't/04_scalar.t',    # requires YAML.pm
408             qr{^xt},
409         ],
410         'UPSTREAM' => 'cpan',
411     },
412
413     'Data::Dumper' => {
414         'DISTRIBUTION' => 'SMUELLER/Data-Dumper-2.145.tar.gz',
415         'FILES'        => q[dist/Data-Dumper],
416         'UPSTREAM'     => 'blead',
417     },
418
419     'DB_File' => {
420         'DISTRIBUTION' => 'PMQS/DB_File-1.829.tar.gz',
421         'FILES'        => q[cpan/DB_File],
422         'EXCLUDED'     => [
423             qr{^patches/},
424             qw( t/pod.t
425                 fallback.h
426                 fallback.xs
427                 ),
428         ],
429         'UPSTREAM' => 'cpan',
430     },
431
432     'DBM_Filter' => {
433         'FILES'      => q[lib/DBM_Filter.pm lib/DBM_Filter],
434         'UPSTREAM'   => 'blead',
435     },
436
437     'Devel::Peek' => {
438         'FILES'      => q[ext/Devel-Peek],
439         'UPSTREAM'   => 'blead',
440     },
441
442     'Devel::PPPort' => {
443         'DISTRIBUTION' => 'MHX/Devel-PPPort-3.21.tar.gz',
444         'FILES'        => q[cpan/Devel-PPPort],
445         'EXCLUDED'     => ['PPPort.pm'],    # we use PPPort_pm.PL instead
446
447         # RJBS has asked MHX to have UPSTREAM be 'blead'
448         # (move this from cpan/ to dist/ if that happens)
449         'UPSTREAM'     => 'cpan',
450     },
451
452     'Devel::SelfStubber' => {
453         'DISTRIBUTION' => 'FLORA/Devel-SelfStubber-1.05.tar.gz',
454         'FILES'        => q[dist/Devel-SelfStubber],
455         'EXCLUDED'     => [qr{^t/release-.*\.t}],
456         'UPSTREAM'     => 'blead',
457     },
458
459     'diagnostics' => {
460         'FILES'      => q[lib/diagnostics.{pm,t}],
461         'UPSTREAM'   => 'blead',
462     },
463
464     'Digest' => {
465         'DISTRIBUTION' => 'GAAS/Digest-1.17.tar.gz',
466         'FILES'        => q[cpan/Digest],
467         'EXCLUDED'     => ['digest-bench'],
468         'UPSTREAM'     => "cpan",
469     },
470
471     'Digest::MD5' => {
472         'DISTRIBUTION' => 'GAAS/Digest-MD5-2.53.tar.gz',
473         'FILES'        => q[cpan/Digest-MD5],
474         'EXCLUDED'     => ['rfc1321.txt'],
475         'UPSTREAM'     => "cpan",
476     },
477
478     'Digest::SHA' => {
479         'DISTRIBUTION' => 'MSHELOR/Digest-SHA-5.85.tar.gz',
480         'FILES'        => q[cpan/Digest-SHA],
481         'EXCLUDED'     => [
482             qw( t/pod.t
483                 t/podcover.t
484                 examples/dups
485                 ),
486         ],
487         'UPSTREAM' => 'cpan',
488     },
489
490     'DirHandle' => {
491         'FILES'      => q[lib/DirHandle.{pm,t}],
492         'UPSTREAM'   => 'blead',
493     },
494
495     'Dumpvalue' => {
496         'DISTRIBUTION' => 'FLORA/Dumpvalue-1.17.tar.gz',
497         'FILES'        => q[dist/Dumpvalue],
498         'EXCLUDED'     => [qr{^t/release-.*\.t}],
499         'UPSTREAM'     => 'blead',
500     },
501
502     'DynaLoader' => {
503         'FILES'      => q[ext/DynaLoader],
504         'UPSTREAM'   => 'blead',
505     },
506
507     'Encode' => {
508         'DISTRIBUTION' => 'DANKOGAI/Encode-2.55.tar.gz',
509         'FILES'        => q[cpan/Encode],
510         'UPSTREAM'     => 'cpan',
511     },
512
513     'encoding::warnings' => {
514         'DISTRIBUTION' => 'AUDREYT/encoding-warnings-0.11.tar.gz',
515         'FILES'        => q[cpan/encoding-warnings],
516         'EXCLUDED'     => [
517             qr{^inc/Module/},
518             qw(t/0-signature.t),
519         ],
520         'UPSTREAM' => 'cpan',
521     },
522
523     'English' => {
524         'FILES'      => q[lib/English.{pm,t}],
525         'UPSTREAM'   => 'blead',
526     },
527
528     'Env' => {
529         'DISTRIBUTION' => 'FLORA/Env-1.04.tar.gz',
530         'FILES'        => q[dist/Env],
531         'EXCLUDED'     => [qr{^t/release-.*\.t}],
532         'UPSTREAM'     => 'blead',
533     },
534
535     'Errno' => {
536         'FILES'      => q[ext/Errno],
537         'UPSTREAM'   => 'blead',
538     },
539
540     'Exporter' => {
541         'DISTRIBUTION' => 'TODDR/Exporter-5.68.tar.gz',
542         'FILES'        => q[dist/Exporter],
543         'EXCLUDED' => [
544             qw( t/pod.t
545                 t/use.t
546                 ),
547         ],
548         'UPSTREAM' => 'blead',
549     },
550
551     'ExtUtils::CBuilder' => {
552         'DISTRIBUTION' => 'AMBS/ExtUtils/ExtUtils-CBuilder-0.280212.tar.gz',
553         'FILES'        => q[dist/ExtUtils-CBuilder],
554         'EXCLUDED'     => [
555             qw(README.mkdn),
556             qr{^xt},
557         ],
558         'UPSTREAM'     => 'blead',
559     },
560
561     'ExtUtils::Command' => {
562         'DISTRIBUTION' => 'FLORA/ExtUtils-Command-1.18.tar.gz',
563         'FILES'        => q[dist/ExtUtils-Command],
564         'EXCLUDED'     => [qr{^t/release-}],
565         'UPSTREAM'     => 'blead',
566     },
567
568     'ExtUtils::Constant' => {
569
570         # Nick has confirmed that while we have diverged from CPAN,
571         # this package isn't primarily maintained in core
572         # Another release will happen "Sometime"
573         'DISTRIBUTION' => '',    #'NWCLARK/ExtUtils-Constant-0.16.tar.gz',
574         'FILES'    => q[cpan/ExtUtils-Constant],
575         'EXCLUDED' => [
576             qw( lib/ExtUtils/Constant/Aaargh56Hash.pm
577                 examples/perl_keyword.pl
578                 examples/perl_regcomp_posix_keyword.pl
579                 ),
580         ],
581         'UPSTREAM' => 'cpan',
582     },
583
584     'ExtUtils::Install' => {
585         'DISTRIBUTION' => 'YVES/ExtUtils-Install-1.54.tar.gz',
586         'FILES'        => q[dist/ExtUtils-Install],
587         'EXCLUDED'     => [
588             qw( t/lib/Test/Builder.pm
589                 t/lib/Test/Builder/Module.pm
590                 t/lib/Test/More.pm
591                 t/lib/Test/Simple.pm
592                 t/pod-coverage.t
593                 t/pod.t
594                 ),
595         ],
596         'UPSTREAM' => 'blead',
597     },
598
599     'ExtUtils::MakeMaker' => {
600         'DISTRIBUTION' => 'BINGOS/ExtUtils-MakeMaker-6.80.tar.gz',
601         'FILES'        => q[cpan/ExtUtils-MakeMaker],
602         'EXCLUDED'     => [
603             qr{^t/lib/Test/},
604             qr{^(bundled|my)/},
605             qr{^t/Liblist_Kid.t},
606             qr{^t/liblist/},
607             qr{^\.perlcriticrc},
608         ],
609         'UPSTREAM' => 'cpan',
610     },
611
612     'ExtUtils::Manifest' => {
613         'DISTRIBUTION' => 'FLORA/ExtUtils-Manifest-1.63.tar.gz',
614         'FILES'        => q[dist/ExtUtils-Manifest],
615         'EXCLUDED'     => [qr(t/release-.*\.t)],
616         'UPSTREAM'     => 'blead',
617     },
618
619     'ExtUtils::ParseXS' => {
620         'DISTRIBUTION' => 'SMUELLER/ExtUtils-ParseXS-3.22.tar.gz',
621         'FILES'        => q[dist/ExtUtils-ParseXS],
622         'UPSTREAM'     => 'blead',
623     },
624
625     'Fcntl' => {
626         'FILES'      => q[ext/Fcntl],
627         'UPSTREAM'   => 'blead',
628     },
629
630     'File::Basename' => {
631         'FILES'      => q[lib/File/Basename.{pm,t}],
632         'UPSTREAM'   => 'blead',
633     },
634
635     'File::Compare' => {
636         'FILES'      => q[lib/File/Compare.{pm,t}],
637         'UPSTREAM'   => 'blead',
638     },
639
640     'File::Copy' => {
641         'FILES'      => q[lib/File/Copy.{pm,t}],
642         'UPSTREAM'   => 'blead',
643     },
644
645     'File::DosGlob' => {
646         'FILES'      => q[ext/File-DosGlob],
647         'UPSTREAM'   => 'blead',
648     },
649
650     'File::Fetch' => {
651         'DISTRIBUTION' => 'BINGOS/File-Fetch-0.44.tar.gz',
652         'FILES'        => q[cpan/File-Fetch],
653         'UPSTREAM'     => 'cpan',
654     },
655
656     'File::Find' => {
657         'FILES'      => q[ext/File-Find],
658         'UPSTREAM'   => 'blead',
659     },
660
661     'File::Glob' => {
662         'FILES'      => q[ext/File-Glob],
663         'UPSTREAM'   => 'blead',
664     },
665
666     'File::Path' => {
667         'DISTRIBUTION' => 'DLAND/File-Path-2.09.tar.gz',
668         'FILES'        => q[cpan/File-Path],
669         'EXCLUDED'     => [
670             qw( eg/setup-extra-tests
671                 t/pod.t
672                 )
673         ],
674         'MAP' => {
675             ''   => 'cpan/File-Path/lib/File/',
676             't/' => 'cpan/File-Path/t/',
677         },
678         'UPSTREAM' => 'cpan',
679     },
680
681     'File::stat' => {
682         'FILES'      => q[lib/File/stat{.pm,*.t}],
683         'UPSTREAM'   => 'blead',
684     },
685
686     'File::Temp' => {
687         'DISTRIBUTION' => 'DAGOLDEN/File-Temp-0.2304.tar.gz',
688         'FILES'        => q[cpan/File-Temp],
689         'EXCLUDED'     => [
690             qw( misc/benchmark.pl
691                 misc/results.txt
692                 ),
693             qw[t/00-report-prereqs.t],
694             qr{^xt},
695         ],
696         'UPSTREAM' => 'cpan',
697     },
698
699     'FileCache' => {
700         'FILES'      => q[ext/FileCache],
701         'UPSTREAM'   => 'blead',
702     },
703
704     'FileHandle' => {
705         'FILES'      => q[lib/FileHandle.{pm,t}],
706         'UPSTREAM'   => 'blead',
707     },
708
709     'Filter::Simple' => {
710         'DISTRIBUTION' => 'SMUELLER/Filter-Simple-0.88.tar.gz',
711         'FILES'        => q[dist/Filter-Simple],
712         'EXCLUDED'     => [
713             qr{^demo/}
714         ],
715         'UPSTREAM' => 'blead',
716     },
717
718     'Filter::Util::Call' => {
719         'DISTRIBUTION' => 'RURBAN/Filter-1.49.tar.gz',
720         'FILES'        => q[cpan/Filter-Util-Call
721                  pod/perlfilter.pod
722                 ],
723         'EXCLUDED' => [
724             qr{^decrypt/},
725             qr{^examples/},
726             qr{^Exec/},
727             qr{^lib/Filter/},
728             qr{^tee/},
729             qw( Call/Makefile.PL
730                 Call/ppport.h
731                 Call/typemap
732                 mytest
733                 t/cpp.t
734                 t/decrypt.t
735                 t/exec.t
736                 t/order.t
737                 t/pod.t
738                 t/sh.t
739                 t/tee.t
740                 t/z_kwalitee.t
741                 t/z_meta.t
742                 t/z_perl_minimum_version.t
743                 t/z_pod-coverage.t
744                 t/z_pod.t
745                 ),
746         ],
747         'MAP' => {
748             'Call/'          => 'cpan/Filter-Util-Call/',
749             'filter-util.pl' => 'cpan/Filter-Util-Call/filter-util.pl',
750             'perlfilter.pod' => 'pod/perlfilter.pod',
751             ''               => 'cpan/Filter-Util-Call/',
752         },
753         'UPSTREAM' => 'cpan',
754     },
755
756     'FindBin' => {
757         'FILES'      => q[lib/FindBin.{pm,t}],
758         'UPSTREAM'   => 'blead',
759     },
760
761     'GDBM_File' => {
762         'FILES'      => q[ext/GDBM_File],
763         'UPSTREAM'   => 'blead',
764     },
765
766     'Getopt::Long' => {
767         'DISTRIBUTION' => 'JV/Getopt-Long-2.42.tar.gz',
768         'FILES'        => q[cpan/Getopt-Long],
769         'EXCLUDED'     => [
770             qr{^examples/},
771             qw( perl-Getopt-Long.spec
772                 lib/newgetopt.pl
773                 t/gol-compat.t
774                 ),
775         ],
776         'UPSTREAM' => 'cpan',
777     },
778
779     'Getopt::Std' => {
780         'FILES'      => q[lib/Getopt/Std.{pm,t}],
781         'UPSTREAM'   => 'blead',
782     },
783
784     'Hash::Util' => {
785         'FILES'      => q[ext/Hash-Util],
786         'UPSTREAM'   => 'blead',
787     },
788
789     'Hash::Util::FieldHash' => {
790         'FILES'      => q[ext/Hash-Util-FieldHash],
791         'UPSTREAM'   => 'blead',
792     },
793
794     'HTTP::Tiny' => {
795         'DISTRIBUTION' => 'DAGOLDEN/HTTP-Tiny-0.036.tar.gz',
796         'FILES'        => q[cpan/HTTP-Tiny],
797         'EXCLUDED'     => [
798             't/00-compile.t',
799             't/00-report-prereqs.t',
800             't/200_live.t',
801             't/200_live_local_ip.t',
802             't/210_live_ssl.t',
803             qr/^eg/,
804             qr/^xt/
805         ],
806         'UPSTREAM' => 'cpan',
807     },
808
809     'I18N::Collate' => {
810         'DISTRIBUTION' => 'FLORA/I18N-Collate-1.02.tar.gz',
811         'FILES'        => q[dist/I18N-Collate],
812         'EXCLUDED'     => [qr{^t/release-.*\.t}],
813         'UPSTREAM'     => 'blead',
814     },
815
816     'I18N::Langinfo' => {
817         'FILES'      => q[ext/I18N-Langinfo],
818         'UPSTREAM'   => 'blead',
819     },
820
821     'I18N::LangTags' => {
822         'FILES'        => q[dist/I18N-LangTags],
823         'UPSTREAM'     => 'blead',
824     },
825
826     'if' => {
827         'DISTRIBUTION' => 'ILYAZ/modules/if-0.0601.tar.gz',
828         'FILES'        => q[dist/if],
829         'UPSTREAM'     => 'blead',
830     },
831
832     'IO' => {
833         'DISTRIBUTION' => 'GBARR/IO-1.25.tar.gz',
834         'FILES'        => q[dist/IO/],
835         'EXCLUDED'     => ['t/test.pl'],
836         'UPSTREAM'     => 'blead',
837     },
838
839     'IO-Compress' => {
840         'DISTRIBUTION' => 'PMQS/IO-Compress-2.062.tar.gz',
841         'FILES'        => q[cpan/IO-Compress],
842         'EXCLUDED'     => [qr{t/Test/}],
843         'UPSTREAM'     => 'cpan',
844     },
845
846     'IO::Zlib' => {
847         'DISTRIBUTION' => 'TOMHUGHES/IO-Zlib-1.10.tar.gz',
848         'FILES'        => q[cpan/IO-Zlib],
849         'UPSTREAM'     => 'cpan',
850     },
851
852     'IPC::Cmd' => {
853         'DISTRIBUTION' => 'BINGOS/IPC-Cmd-0.84.tar.gz',
854         'FILES'        => q[cpan/IPC-Cmd],
855         'UPSTREAM'     => 'cpan',
856     },
857
858     'IPC::Open3' => {
859         'FILES'      => q[ext/IPC-Open3],
860         'UPSTREAM'   => 'blead',
861     },
862
863     'IPC::SysV' => {
864         'DISTRIBUTION' => 'MHX/IPC-SysV-2.04.tar.gz',
865         'FILES'        => q[cpan/IPC-SysV],
866         'EXCLUDED'     => [
867             qw( const-c.inc
868                 const-xs.inc
869                 ),
870         ],
871         'UPSTREAM' => 'cpan',
872     },
873
874     'JSON::PP' => {
875         'DISTRIBUTION' => 'MAKAMAKA/JSON-PP-2.27202.tar.gz',
876         'FILES'        => q[cpan/JSON-PP],
877         'EXCLUDED'     => [
878             't/900_pod.t',    # Pod testing
879         ],
880
881         # Waiting to be merged upstream: see PERL RT#119825
882         'CUSTOMIZED'   => [
883             'lib/JSON/PP.pm',
884         ],
885
886         'UPSTREAM' => 'cpan',
887     },
888
889     'lib' => {
890         'DISTRIBUTION' => 'SMUELLER/lib-0.63.tar.gz',
891         'FILES'        => q[dist/lib/],
892         'EXCLUDED'     => [
893             qw( forPAUSE/lib.pm
894                 t/00pod.t
895                 ),
896         ],
897         'UPSTREAM' => 'blead',
898     },
899
900     'libnet' => {
901         'DISTRIBUTION' => 'SHAY/libnet-1.23.tar.gz',
902         'FILES'        => q[cpan/libnet],
903         'EXCLUDED'     => [
904             qw( Configure
905                 install-nomake
906                 ),
907         ],
908         # Customized for perl since we cannot use either an auto-generated
909         # script or the version in the CPAN distro.
910         'CUSTOMIZED' => ['Makefile.PL'],
911         'UPSTREAM'   => 'cpan',
912     },
913
914     'Locale-Codes' => {
915         'DISTRIBUTION' => 'SBECK/Locale-Codes-3.27.tar.gz',
916         'FILES'        => q[cpan/Locale-Codes],
917         'EXCLUDED'     => [
918             qw( t/pod_coverage.t
919                 t/pod.t),
920             qr{^t/runtests},
921             qr{^t/runtests\.bat},
922             qr{^internal/},
923             qr{^examples/},
924         ],
925         'UPSTREAM' => 'cpan',
926     },
927
928     'Locale::Maketext' => {
929         'DISTRIBUTION' => 'TODDR/Locale-Maketext-1.23.tar.gz',
930         'FILES'        => q[dist/Locale-Maketext],
931         'EXCLUDED'     => [
932             qw(
933                 perlcriticrc
934                 t/00_load.t
935                 t/pod.t
936                 ),
937         ],
938         'UPSTREAM' => 'blead',
939     },
940
941     'Locale::Maketext::Simple' => {
942         'DISTRIBUTION' => 'JESSE/Locale-Maketext-Simple-0.21.tar.gz',
943         'FILES'        => q[cpan/Locale-Maketext-Simple],
944         'EXCLUDED'     => [qr{^inc/}],
945         'UPSTREAM'     => 'cpan',
946     },
947
948     'mad' => {
949         'MAINTAINER' => 'LWALL',
950         'FILES'      => q[mad],
951         'UPSTREAM'   => undef,
952     },
953
954     'Math::BigInt' => {
955         'DISTRIBUTION' => 'PJACKLAM/Math-BigInt-1.997.tar.gz',
956         'FILES'        => q[dist/Math-BigInt],
957         'EXCLUDED'     => [
958             qr{^inc/},
959             qr{^examples/},
960             qw( t/00sig.t
961                 t/01load.t
962                 t/02pod.t
963                 t/03podcov.t
964                 ),
965         ],
966         'UPSTREAM' => 'blead',
967     },
968
969     'Math::BigInt::FastCalc' => {
970         'DISTRIBUTION' => 'PJACKLAM/Math-BigInt-FastCalc-0.30.tar.gz',
971         'FILES'        => q[dist/Math-BigInt-FastCalc],
972         'EXCLUDED'     => [
973             qr{^inc/},
974             qw( t/00sig.t
975                 t/01load.t
976                 t/02pod.t
977                 t/03podcov.t
978                 ),
979
980             # instead we use the versions of these test
981             # files that come with Math::BigInt:
982             qw( t/bigfltpm.inc
983                 t/bigfltpm.t
984                 t/bigintpm.inc
985                 t/bigintpm.t
986                 t/mbimbf.inc
987                 t/mbimbf.t
988                 ),
989         ],
990         'UPSTREAM' => 'blead',
991     },
992
993     'Math::BigRat' => {
994         'DISTRIBUTION' => 'PJACKLAM/Math-BigRat-0.2602.tar.gz',
995         'FILES'        => q[dist/Math-BigRat],
996         'EXCLUDED'     => [
997             qr{^inc/},
998             qw( t/00sig.t
999                 t/01load.t
1000                 t/02pod.t
1001                 t/03podcov.t
1002                 ),
1003         ],
1004         'UPSTREAM' => 'blead',
1005     },
1006
1007     'Math::Complex' => {
1008         'DISTRIBUTION' => 'ZEFRAM/Math-Complex-1.59.tar.gz',
1009         'FILES'        => q[cpan/Math-Complex],
1010         'EXCLUDED'     => [
1011             qw( t/pod.t
1012                 t/pod-coverage.t
1013                 ),
1014         ],
1015         'UPSTREAM' => 'cpan',
1016     },
1017
1018     'Memoize' => {
1019         'DISTRIBUTION' => 'MJD/Memoize-1.03.tgz',
1020         'FILES'        => q[cpan/Memoize],
1021         'EXCLUDED'     => ['article.html'],
1022         'UPSTREAM'     => 'cpan',
1023     },
1024
1025     'MIME::Base64' => {
1026         'DISTRIBUTION' => 'GAAS/MIME-Base64-3.14.tar.gz',
1027         'FILES'        => q[cpan/MIME-Base64],
1028         'EXCLUDED'     => ['t/bad-sv.t'],
1029         'UPSTREAM'     => 'cpan',
1030     },
1031
1032     #
1033     # To update Module-Build in blead see
1034     # https://github.com/Perl-Toolchain-Gang/Module-Build/blob/master/devtools/patching_blead.pod
1035     #
1036
1037     'Module::Build' => {
1038         'DISTRIBUTION' => 'LEONT/Module-Build-0.4007.tar.gz',
1039         'FILES'        => q[cpan/Module-Build],
1040         'EXCLUDED'     => [
1041             qw( t/par.t
1042                 t/signature.t
1043                 ),
1044             qr{^contrib/},
1045             qr{^inc},
1046         ],
1047         # Generated file, not part of the CPAN distro:
1048         'CUSTOMIZED' => ['lib/Module/Build/ConfigData.pm'],
1049         'DEPRECATED' => '5.019000',
1050         'UPSTREAM'   => 'cpan',
1051     },
1052
1053     'Module::CoreList' => {
1054         'DISTRIBUTION' => 'BINGOS/Module-CoreList-2.99.tar.gz',
1055         'FILES'        => q[dist/Module-CoreList],
1056         'UPSTREAM'     => 'blead',
1057     },
1058
1059     'Module::Load' => {
1060         'DISTRIBUTION' => 'BINGOS/Module-Load-0.24.tar.gz',
1061         'FILES'        => q[cpan/Module-Load],
1062         'UPSTREAM'     => 'cpan',
1063     },
1064
1065     'Module::Load::Conditional' => {
1066         'DISTRIBUTION' => 'BINGOS/Module-Load-Conditional-0.58.tar.gz',
1067         'FILES'        => q[cpan/Module-Load-Conditional],
1068         'UPSTREAM'     => 'cpan',
1069     },
1070
1071     'Module::Loaded' => {
1072         'DISTRIBUTION' => 'BINGOS/Module-Loaded-0.08.tar.gz',
1073         'FILES'        => q[cpan/Module-Loaded],
1074         'UPSTREAM'     => 'cpan',
1075     },
1076
1077     'Module::Metadata' => {
1078         'DISTRIBUTION' => 'ETHER/Module-Metadata-1.000019.tar.gz',
1079         'FILES'        => q[cpan/Module-Metadata],
1080         'EXCLUDED'     => [
1081             qr{^maint},
1082             qr{^xt},
1083         ],
1084         'UPSTREAM' => 'cpan',
1085     },
1086
1087     'mro' => {
1088         'FILES'      => q[ext/mro],
1089         'UPSTREAM'   => 'blead',
1090     },
1091
1092     'NDBM_File' => {
1093         'FILES'      => q[ext/NDBM_File],
1094         'UPSTREAM'   => 'blead',
1095     },
1096
1097     'Net::Ping' => {
1098         'DISTRIBUTION' => 'SMPETERS/Net-Ping-2.41.tar.gz',
1099         'FILES'        => q[dist/Net-Ping],
1100         'EXCLUDED'     => [
1101             qr{^.travis.yml},
1102             qr{^README.md},
1103         ],
1104         'UPSTREAM'     => 'blead',
1105     },
1106
1107     'NEXT' => {
1108         'DISTRIBUTION' => 'FLORA/NEXT-0.65.tar.gz',
1109         'FILES'        => q[cpan/NEXT],
1110         'EXCLUDED'     => [qr{^demo/}],
1111         'UPSTREAM'     => 'cpan',
1112     },
1113
1114     'ODBM_File' => {
1115         'FILES'      => q[ext/ODBM_File],
1116         'UPSTREAM'   => 'blead',
1117     },
1118
1119     'Opcode' => {
1120         'FILES'      => q[ext/Opcode],
1121         'UPSTREAM'   => 'blead',
1122     },
1123
1124     'overload' => {
1125         'FILES'      => q[lib/overload{.pm,.t,64.t}],
1126         'UPSTREAM'   => 'blead',
1127     },
1128
1129     'Package::Constants' => {
1130         'DISTRIBUTION' => 'KANE/Package-Constants-0.02.tar.gz',
1131         'FILES'        => q[cpan/Package-Constants],
1132         'UPSTREAM'     => 'cpan',
1133     },
1134
1135     'Params::Check' => {
1136         'DISTRIBUTION' => 'BINGOS/Params-Check-0.38.tar.gz',
1137         'EXCLUDED'     => ['Params-Check-0.26.tar.gz'],
1138         'FILES'        => q[cpan/Params-Check],
1139         'UPSTREAM'     => 'cpan',
1140     },
1141
1142     'parent' => {
1143         'DISTRIBUTION' => 'CORION/parent-0.228.tar.gz',
1144         'FILES'        => q[cpan/parent],
1145         'UPSTREAM'     => 'cpan',
1146     },
1147
1148     'Parse::CPAN::Meta' => {
1149         'DISTRIBUTION' => 'DAGOLDEN/Parse-CPAN-Meta-1.4409.tar.gz',
1150         'FILES'        => q[cpan/Parse-CPAN-Meta],
1151         'EXCLUDED'     => [
1152             qw(t/00-compile.t),
1153             qw[t/00-report-prereqs.t],
1154             qr{^xt},
1155         ],
1156         'UPSTREAM'     => 'cpan',
1157     },
1158
1159     'PathTools' => {
1160         'DISTRIBUTION' => 'SMUELLER/PathTools-3.40.tar.gz',
1161         'FILES'        => q[dist/Cwd],
1162         'EXCLUDED'     => [qr{^t/lib/Test/}],
1163         'UPSTREAM'     => "blead",
1164
1165         # NOTE: PathTools is in dist/Cwd/ instead of dist/PathTools because it
1166         # contains Cwd.xs and something, possibly Makefile.SH, makes an assumption
1167         # that the leafname of some file corresponds with the pathname of the
1168         # directory.
1169     },
1170
1171     'Perl::OSType' => {
1172         'DISTRIBUTION' => 'DAGOLDEN/Perl-OSType-1.006.tar.gz',
1173         'FILES'        => q[cpan/Perl-OSType],
1174         'EXCLUDED'     => [qw(tidyall.ini), qr/^xt/, qr{^t/00-}],
1175         'UPSTREAM'     => 'cpan',
1176     },
1177
1178     'perldtrace' => {
1179         'MAINTAINER' => 'SARTAK',
1180         'FILES'      => q[pod/perldtrace.pod],
1181         'UPSTREAM'   => 'blead',
1182     },
1183
1184     'perlebcdic' => {
1185         'MAINTAINER' => 'PVHP',
1186         'FILES'      => q[pod/perlebcdic.pod],
1187         'UPSTREAM'   => undef,
1188     },
1189
1190     'perlfaq' => {
1191         'DISTRIBUTION' => 'LLAP/perlfaq-5.0150044.tar.gz',
1192         'FILES'        => q[cpan/perlfaq],
1193         'EXCLUDED'     => [
1194             qw( t/release-pod-syntax.t
1195                 t/release-eol.t
1196                 t/release-no-tabs.t
1197                 )
1198         ],
1199         'UPSTREAM' => 'cpan',
1200     },
1201
1202     'PerlIO' => {
1203         'FILES'      => q[lib/PerlIO.pm],
1204         'UPSTREAM'   => 'blead',
1205     },
1206
1207     'PerlIO::encoding' => {
1208         'FILES'      => q[ext/PerlIO-encoding],
1209         'UPSTREAM'   => 'blead',
1210     },
1211
1212     'PerlIO::mmap' => {
1213         'FILES'      => q[ext/PerlIO-mmap],
1214         'UPSTREAM'   => 'blead',
1215     },
1216
1217     'PerlIO::scalar' => {
1218         'FILES'      => q[ext/PerlIO-scalar],
1219         'UPSTREAM'   => 'blead',
1220     },
1221
1222     'PerlIO::via' => {
1223         'FILES'      => q[ext/PerlIO-via],
1224         'UPSTREAM'   => 'blead',
1225     },
1226
1227     'PerlIO::via::QuotedPrint' => {
1228         'DISTRIBUTION' => 'ELIZABETH/PerlIO-via-QuotedPrint-0.07.tar.gz',
1229         'FILES'        => q[cpan/PerlIO-via-QuotedPrint],
1230
1231         # Waiting to be merged upstream: see CPAN RT#54047
1232         'CUSTOMIZED'   => [
1233             qw( t/QuotedPrint.t
1234                 ),
1235         ],
1236
1237         'UPSTREAM'     => 'cpan',
1238     },
1239
1240     'perlpacktut' => {
1241         'MAINTAINER' => 'laun',
1242         'FILES'      => q[pod/perlpacktut.pod],
1243         'UPSTREAM'   => undef,
1244     },
1245
1246     'perlpodspec' => {
1247         'MAINTAINER' => 'SBURKE',
1248         'FILES'      => q[pod/perlpodspec.pod],
1249         'UPSTREAM'   => undef,
1250     },
1251
1252     'perlre' => {
1253         'MAINTAINER' => 'ABIGAIL',
1254         'FILES'      => q[pod/perlrecharclass.pod
1255                  pod/perlrebackslash.pod],
1256         'UPSTREAM' => undef,
1257     },
1258
1259     'perlreapi' => {
1260         'MAINTAINER' => 'AVAR',
1261         'FILES'      => q[pod/perlreapi.pod],
1262         'UPSTREAM'   => undef,
1263     },
1264
1265     'perlreftut' => {
1266         'MAINTAINER' => 'MJD',
1267         'FILES'      => q[pod/perlreftut.pod],
1268         'UPSTREAM'   => 'blead',
1269     },
1270
1271     'perlthrtut' => {
1272         'MAINTAINER' => 'ELIZABETH',
1273         'FILES'      => q[pod/perlthrtut.pod],
1274         'UPSTREAM'   => undef,
1275     },
1276
1277     'Pod::Checker' => {
1278         'DISTRIBUTION' => 'MAREKR/Pod-Checker-1.60.tar.gz',
1279         'FILES'        => q[cpan/Pod-Checker],
1280         'UPSTREAM'     => 'cpan',
1281     },
1282
1283     'Pod::Escapes' => {
1284         'DISTRIBUTION' => 'SBURKE/Pod-Escapes-1.04.tar.gz',
1285         'FILES'        => q[cpan/Pod-Escapes],
1286         'UPSTREAM'     => 'cpan',
1287     },
1288
1289     'Pod::Functions' => {
1290         'FILES'      => q[ext/Pod-Functions],
1291         'UPSTREAM'   => 'blead',
1292     },
1293
1294     'Pod::Html' => {
1295         'FILES'      => q[ext/Pod-Html],
1296         'UPSTREAM'   => 'blead',
1297     },
1298
1299     'Pod::Parser' => {
1300         'DISTRIBUTION' => 'MAREKR/Pod-Parser-1.61.tar.gz',
1301         'FILES'        => q[cpan/Pod-Parser],
1302         'UPSTREAM'     => 'cpan',
1303     },
1304
1305     'Pod::Perldoc' => {
1306         'DISTRIBUTION' => 'MALLEN/Pod-Perldoc-3.20.tar.gz',
1307         'FILES'        => q[cpan/Pod-Perldoc],
1308
1309         # in blead, the perldoc executable is generated by perldoc.PL
1310         # instead
1311         # XXX We can and should fix this, but clean up the DRY-failure in utils
1312         # first
1313         'EXCLUDED' => ['perldoc'],
1314         'UPSTREAM' => 'cpan',
1315     },
1316
1317     'Pod::Simple' => {
1318         'DISTRIBUTION' => 'DWHEELER/Pod-Simple-3.28.tar.gz',
1319         'FILES'        => q[cpan/Pod-Simple],
1320         'UPSTREAM'     => 'cpan',
1321     },
1322
1323     'Pod::Usage' => {
1324         'DISTRIBUTION' => 'MAREKR/Pod-Usage-1.63.tar.gz',
1325         'FILES'        => q[cpan/Pod-Usage],
1326         'UPSTREAM'     => 'cpan',
1327     },
1328
1329     'podlators' => {
1330         'DISTRIBUTION' => 'RRA/podlators-2.5.3.tar.gz',
1331         'FILES'        => q[cpan/podlators pod/perlpodstyle.pod],
1332
1333         # The perl distribution has pod2man.PL and pod2text.PL,  which are
1334         # run to create pod2man and pod2text, while the CPAN distribution
1335         # just has the post-generated pod2man and pod2text files.
1336         # The following entries attempt to codify that odd fact.
1337         'CUSTOMIZED' => [
1338             qw( scripts/pod2man.PL
1339                 scripts/pod2text.PL
1340                 ),
1341         ],
1342         'MAP' => {
1343             ''                 => 'cpan/podlators/',
1344             'scripts/pod2man'  => 'cpan/podlators/scripts/pod2man.PL',
1345             'scripts/pod2text' => 'cpan/podlators/scripts/pod2text.PL',
1346
1347             # this file lives outside the cpan/ directory
1348             'pod/perlpodstyle.pod' => 'pod/perlpodstyle.pod',
1349         },
1350         'UPSTREAM' => 'cpan',
1351     },
1352
1353     'POSIX' => {
1354         'FILES'      => q[ext/POSIX],
1355         'UPSTREAM'   => 'blead',
1356     },
1357
1358     're' => {
1359         'FILES'      => q[ext/re],
1360         'UPSTREAM'   => 'blead',
1361     },
1362
1363     's2p' => {
1364         'MAINTAINER' => 'laun',
1365         'FILES'      => q[x2p/s2p.PL],
1366         'UPSTREAM'   => undef,
1367     },
1368
1369     'Safe' => {
1370         'DISTRIBUTION' => 'RGARCIA/Safe-2.35.tar.gz',
1371         'FILES'        => q[dist/Safe],
1372         'UPSTREAM'     => 'blead',
1373     },
1374
1375     'Scalar-List-Utils' => {
1376         'DISTRIBUTION' => 'PEVANS/Scalar-List-Utils-1.34.tar.gz',
1377         'FILES'    => q[cpan/List-Util],
1378         'EXCLUDED' => [
1379             qr{^inc/Module/},
1380             qr{^inc/Test/},
1381             'mytypemap',
1382         ],
1383         'UPSTREAM' => 'cpan',
1384     },
1385
1386     'SDBM_File' => {
1387         'FILES'      => q[ext/SDBM_File],
1388         'UPSTREAM'   => 'blead',
1389     },
1390
1391     'Search::Dict' => {
1392         'DISTRIBUTION' => 'DAGOLDEN/Search-Dict-1.07.tar.gz',
1393         'FILES'        => q[dist/Search-Dict],
1394         'EXCLUDED'     => [qr{^t/release-.*\.t},qr{^README\..*}],
1395         'UPSTREAM'     => 'blead',
1396     },
1397
1398     'SelfLoader' => {
1399         'DISTRIBUTION' => 'SMUELLER/SelfLoader-1.20.tar.gz',
1400         'FILES'        => q[dist/SelfLoader],
1401         'EXCLUDED'     => ['t/00pod.t'],
1402         'UPSTREAM'     => 'blead',
1403     },
1404
1405     'sigtrap' => {
1406         'FILES'      => q[lib/sigtrap.{pm,t}],
1407         'UPSTREAM'   => 'blead',
1408     },
1409
1410     'Socket' => {
1411         'DISTRIBUTION' => 'PEVANS/Socket-2.012.tar.gz',
1412         'FILES'        => q[cpan/Socket],
1413         'UPSTREAM'     => 'cpan',
1414     },
1415
1416     'Storable' => {
1417         'DISTRIBUTION' => 'AMS/Storable-2.45.tar.gz',
1418         'FILES'        => q[dist/Storable],
1419         'EXCLUDED'     => [qr{^t/Test/}],
1420         'UPSTREAM'     => 'blead',
1421     },
1422
1423     'Sys::Hostname' => {
1424         'FILES'      => q[ext/Sys-Hostname],
1425         'UPSTREAM'   => 'blead',
1426     },
1427
1428     'Sys::Syslog' => {
1429         'DISTRIBUTION' => 'SAPER/Sys-Syslog-0.33.tar.gz',
1430         'FILES'        => q[cpan/Sys-Syslog],
1431         'EXCLUDED'     => [
1432             qr{^eg/},
1433             qw( t/data-validation.t
1434                 t/distchk.t
1435                 t/pod.t
1436                 t/podcover.t
1437                 t/podspell.t
1438                 t/portfs.t
1439                 win32/PerlLog.RES
1440                 ),
1441         ],
1442         'UPSTREAM'   => 'cpan',
1443     },
1444
1445     'Term::ANSIColor' => {
1446         'DISTRIBUTION' => 'RRA/Term-ANSIColor-4.02.tar.gz',
1447         'FILES'        => q[cpan/Term-ANSIColor],
1448         'EXCLUDED'     => [
1449             qr{^tests/},
1450             qr{^examples/},
1451             qr{^t/data/},
1452             qw( t/aliases-env.t
1453                 t/critic.t
1454                 t/minimum-version.t
1455                 t/pod-spelling.t
1456                 t/pod-coverage.t
1457                 t/pod.t
1458                 t/strict.t
1459                 t/synopsis.t
1460                 ),
1461         ],
1462         'UPSTREAM' => 'cpan',
1463     },
1464
1465     'Term::Cap' => {
1466         'DISTRIBUTION' => 'JSTOWE/Term-Cap-1.12.tar.gz',
1467         'FILES'        => q[cpan/Term-Cap],
1468
1469         # Waiting to be merged upstream: see CPAN RT#73447
1470         'CUSTOMIZED'   => [
1471             qw( Cap.pm
1472                 test.pl
1473                 ),
1474         ],
1475
1476         'UPSTREAM'     => 'cpan',
1477     },
1478
1479     'Term::Complete' => {
1480         'DISTRIBUTION' => 'FLORA/Term-Complete-1.402.tar.gz',
1481         'FILES'        => q[dist/Term-Complete],
1482         'EXCLUDED'     => [qr{^t/release-.*\.t}],
1483         'UPSTREAM'     => 'blead',
1484     },
1485
1486     'Term::ReadLine' => {
1487         'DISTRIBUTION' => 'FLORA/Term-ReadLine-1.14.tar.gz',
1488         'FILES'        => q[dist/Term-ReadLine],
1489         'EXCLUDED'     => [qr{^t/release-.*\.t}],
1490         'UPSTREAM'     => 'blead',
1491     },
1492
1493     'Test' => {
1494         'DISTRIBUTION' => 'JESSE/Test-1.26.tar.gz',
1495         'FILES'        => q[cpan/Test],
1496         'UPSTREAM'     => 'cpan',
1497     },
1498
1499     'Test::Harness' => {
1500         'DISTRIBUTION' => 'OVID/Test-Harness-3.29.tar.gz',
1501         'FILES'        => q[cpan/Test-Harness],
1502         'EXCLUDED'     => [
1503             qr{^examples/},
1504             qr{^inc/},
1505             qr{^t/lib/Test/},
1506             qr{^xt/},
1507             qw( Changes-2.64
1508                 NotBuild.PL
1509                 HACKING.pod
1510                 perlcriticrc
1511                 t/lib/if.pm
1512                 ),
1513         ],
1514         'UPSTREAM'   => 'cpan',
1515     },
1516
1517     'Test::Simple' => {
1518         'DISTRIBUTION' => 'MSCHWERN/Test-Simple-0.98.tar.gz',
1519         'FILES'        => q[cpan/Test-Simple],
1520         'EXCLUDED'     => [
1521             qw( .perlcriticrc
1522                 .perltidyrc
1523                 t/00compile.t
1524                 t/pod.t
1525                 t/pod-coverage.t
1526                 t/Builder/reset_outputs.t
1527                 lib/Test/Builder/IO/Scalar.pm
1528                 ),
1529         ],
1530
1531         'CUSTOMIZED'   => [
1532             # Waiting to be merged upstream: see CPAN RT#79762
1533             't/fail-more.t',
1534
1535             # Waiting to be merged upstream: see PERL RT#119825
1536             'lib/Test/Builder.pm',
1537             'lib/Test/Builder/Module.pm',
1538             'lib/Test/More.pm',
1539             'lib/Test/Simple.pm',
1540         ],
1541
1542         'UPSTREAM' => 'cpan',
1543     },
1544
1545     'Text::Abbrev' => {
1546         'DISTRIBUTION' => 'FLORA/Text-Abbrev-1.02.tar.gz',
1547         'FILES'        => q[dist/Text-Abbrev],
1548         'EXCLUDED'     => [qr{^t/release-.*\.t}],
1549         'UPSTREAM'     => 'blead',
1550     },
1551
1552     'Text::Balanced' => {
1553         'DISTRIBUTION' => 'ADAMK/Text-Balanced-2.02.tar.gz',
1554         'FILES'        => q[cpan/Text-Balanced],
1555         'EXCLUDED'     => [
1556             qw( t/97_meta.t
1557                 t/98_pod.t
1558                 t/99_pmv.t
1559                 ),
1560         ],
1561
1562         # Waiting to be merged upstream: see CPAN RT#87788
1563         'CUSTOMIZED'   => [
1564             qw( t/01_compile.t
1565                 t/02_extbrk.t
1566                 t/03_extcbk.t
1567                 t/04_extdel.t
1568                 t/05_extmul.t
1569                 t/06_extqlk.t
1570                 t/07_exttag.t
1571                 t/08_extvar.t
1572                 t/09_gentag.t
1573                 ),
1574         ],
1575
1576         'UPSTREAM' => 'cpan',
1577     },
1578
1579     'Text::ParseWords' => {
1580         'DISTRIBUTION' => 'CHORNY/Text-ParseWords-3.29.tar.gz',
1581         'FILES'        => q[cpan/Text-ParseWords],
1582         'EXCLUDED'     => ['t/pod.t'],
1583
1584         # Waiting to be merged upstream: see CPAN RT#50929
1585         'CUSTOMIZED'   => [
1586             qw( t/ParseWords.t
1587                 t/taint.t
1588                 ),
1589         ],
1590
1591         # For the benefit of make_ext.pl, we have to have this accessible:
1592         'MAP' => {
1593             'ParseWords.pm' => 'cpan/Text-ParseWords/lib/Text/ParseWords.pm',
1594             ''              => 'cpan/Text-ParseWords/',
1595         },
1596         'UPSTREAM' => 'cpan',
1597     },
1598
1599     'Text-Tabs+Wrap' => {
1600         'DISTRIBUTION' => 'MUIR/modules/Text-Tabs+Wrap-2013.0523.tar.gz',
1601         'FILES'        => q[cpan/Text-Tabs],
1602         'EXCLUDED'   => [
1603             qr/^lib\.old/,
1604             't/dnsparks.t',    # see af6492bf9e
1605         ],
1606         'MAP'          => {
1607             ''                        => 'cpan/Text-Tabs/',
1608             'lib.modern/Text/Tabs.pm' => 'cpan/Text-Tabs/lib/Text/Tabs.pm',
1609             'lib.modern/Text/Wrap.pm' => 'cpan/Text-Tabs/lib/Text/Wrap.pm',
1610         },
1611         'UPSTREAM'   => 'cpan',
1612     },
1613
1614     'Thread::Queue' => {
1615         'DISTRIBUTION' => 'JDHEDDEN/Thread-Queue-3.02.tar.gz',
1616         'FILES'        => q[dist/Thread-Queue],
1617         'EXCLUDED'     => [
1618             qr{^examples/},
1619             qw( t/00_load.t
1620                 t/99_pod.t
1621                 t/test.pl
1622                 ),
1623         ],
1624         'UPSTREAM' => 'blead',
1625     },
1626
1627     'Thread::Semaphore' => {
1628         'DISTRIBUTION' => 'JDHEDDEN/Thread-Semaphore-2.12.tar.gz',
1629         'FILES'        => q[dist/Thread-Semaphore],
1630         'EXCLUDED'     => [
1631             qw( examples/semaphore.pl
1632                 t/00_load.t
1633                 t/99_pod.t
1634                 t/test.pl
1635                 ),
1636         ],
1637         'UPSTREAM' => 'blead',
1638     },
1639
1640     'threads' => {
1641         'DISTRIBUTION' => 'JDHEDDEN/threads-1.89.tar.gz',
1642         'FILES'        => q[dist/threads],
1643         'EXCLUDED'     => [
1644             qr{^examples/},
1645             qw( t/pod.t
1646                 t/test.pl
1647                 threads.h
1648                 ),
1649         ],
1650         'UPSTREAM' => 'blead',
1651     },
1652
1653     'threads::shared' => {
1654         'DISTRIBUTION' => 'JDHEDDEN/threads-shared-1.43.tar.gz',
1655         'FILES'        => q[dist/threads-shared],
1656         'EXCLUDED'     => [
1657             qw( examples/class.pl
1658                 shared.h
1659                 t/pod.t
1660                 t/test.pl
1661                 ),
1662         ],
1663         'UPSTREAM' => 'blead',
1664     },
1665
1666     'Tie::File' => {
1667         'DISTRIBUTION' => 'TODDR/Tie-File-0.98.tar.gz',
1668         'FILES'        => q[dist/Tie-File],
1669         'UPSTREAM'     => 'blead',
1670     },
1671
1672     'Tie::Hash' => {
1673         'FILES'      => q[lib/Tie/Hash.{pm,t}],
1674         'UPSTREAM'   => 'blead',
1675     },
1676
1677     'Tie::Hash::NamedCapture' => {
1678         'FILES'      => q[ext/Tie-Hash-NamedCapture],
1679         'UPSTREAM'   => 'blead',
1680     },
1681
1682     'Tie::Memoize' => {
1683         'FILES'      => q[ext/Tie-Memoize],
1684         'UPSTREAM'   => 'blead',
1685     },
1686
1687     'Tie::RefHash' => {
1688         'DISTRIBUTION' => 'FLORA/Tie-RefHash-1.39.tar.gz',
1689         'FILES'        => q[cpan/Tie-RefHash],
1690         'UPSTREAM'     => 'cpan',
1691     },
1692
1693     'Time::HiRes' => {
1694         'DISTRIBUTION' => 'ZEFRAM/Time-HiRes-1.9726.tar.gz',
1695         'FILES'        => q[cpan/Time-HiRes],
1696         'UPSTREAM'     => 'cpan',
1697     },
1698
1699     'Time::Local' => {
1700         'DISTRIBUTION' => 'DROLSKY/Time-Local-1.2300.tar.gz',
1701         'FILES'        => q[cpan/Time-Local],
1702         'EXCLUDED'     => [
1703             qw( t/pod-coverage.t
1704                 t/pod.t
1705                 ),
1706             qr{^t/release-.*\.t},
1707         ],
1708         'UPSTREAM' => 'cpan',
1709     },
1710
1711     'Time::Piece' => {
1712         'DISTRIBUTION' => 'RJBS/Time-Piece-1.23.tar.gz',
1713         'FILES'        => q[cpan/Time-Piece],
1714         'UPSTREAM'     => 'cpan',
1715     },
1716
1717     'Unicode::Collate' => {
1718         'DISTRIBUTION' => 'SADAHIRO/Unicode-Collate-0.99.tar.gz',
1719         'FILES'        => q[cpan/Unicode-Collate],
1720         'EXCLUDED'     => [
1721             qr{N$},
1722             qr{^data/},
1723             qr{^gendata/},
1724             qw( disableXS
1725                 enableXS
1726                 mklocale
1727                 ),
1728         ],
1729         'UPSTREAM' => 'cpan',
1730     },
1731
1732     'Unicode::Normalize' => {
1733         'DISTRIBUTION' => 'SADAHIRO/Unicode-Normalize-1.17.tar.gz',
1734         'FILES'        => q[cpan/Unicode-Normalize],
1735         'EXCLUDED'     => [
1736             qw( MANIFEST.N
1737                 Normalize.pmN
1738                 disableXS
1739                 enableXS
1740                 ),
1741         ],
1742         'UPSTREAM' => 'cpan',
1743     },
1744
1745     'Unicode::UCD' => {
1746         'FILES'      => q[lib/Unicode/UCD.{pm,t}],
1747         'UPSTREAM'   => 'blead',
1748     },
1749
1750     'version' => {
1751         'DISTRIBUTION' => 'JPEACOCK/version-0.9904.tar.gz',
1752         'FILES'        => q[cpan/version],
1753         'EXCLUDED' => [
1754             qr{^vutil/},
1755             'lib/version/typemap',
1756             't/survey_locales',
1757             'vperl/vpp.pm',
1758         ],
1759
1760         # Waiting to be merged upstream: see CPAN RT#87513
1761         'CUSTOMIZED'   => [
1762             qw( lib/version.pm
1763                 t/07locale.t
1764                 t/08_corelist.t
1765                 ),
1766         ],
1767
1768         # Change to 'cpan' when [cpan #88458] is resolved
1769         'UPSTREAM' => 'blead',
1770     },
1771
1772     'vms' => {
1773         'MAINTAINER' => 'CBERRY',
1774         'FILES'      => q[vms configure.com README.vms],
1775         'UPSTREAM'   => undef,
1776     },
1777
1778     'VMS::DCLsym' => {
1779         'MAINTAINER' => 'CBERRY',
1780         'FILES'      => q[ext/VMS-DCLsym],
1781         'UPSTREAM'   => 'blead',
1782     },
1783
1784     'VMS::Filespec' => {
1785         'FILES'      => q[ext/VMS-Filespec],
1786         'UPSTREAM'   => 'blead',
1787     },
1788
1789     'VMS::Stdio' => {
1790         'MAINTAINER' => 'CBERRY',
1791         'FILES'      => q[ext/VMS-Stdio],
1792         'UPSTREAM'   => 'blead',
1793     },
1794
1795     'warnings' => {
1796         'MAINTAINER' => 'PMQS',
1797         'FILES'      => q[regen/warnings.pl
1798                  lib/warnings.{pm,t}
1799                  lib/warnings
1800                  t/lib/warnings
1801                 ],
1802         'UPSTREAM' => 'blead',
1803     },
1804
1805     'win32' => {
1806         'MAINTAINER' => 'JDB',
1807         'FILES'      => q[win32 t/win32 README.win32],
1808         'UPSTREAM'   => undef,
1809     },
1810
1811     'Win32' => {
1812         'DISTRIBUTION' => "JDB/Win32-0.47.tar.gz",
1813         'FILES'        => q[cpan/Win32],
1814         'UPSTREAM'     => 'cpan',
1815     },
1816
1817     'Win32API::File' => {
1818         'DISTRIBUTION' => 'CHORNY/Win32API-File-0.1201.tar.gz',
1819         'FILES'        => q[cpan/Win32API-File],
1820         'EXCLUDED'     => [
1821             qr{^ex/},
1822             't/pod.t',
1823         ],
1824         'UPSTREAM' => 'cpan',
1825     },
1826
1827     'Win32CORE' => {
1828         'MAINTAINER' => 'JDB',
1829         'FILES'      => q[ext/Win32CORE],
1830         'UPSTREAM'   => 'blead',
1831     },
1832
1833     'XS::Typemap' => {
1834         'FILES'      => q[ext/XS-Typemap],
1835         'UPSTREAM'   => 'blead',
1836     },
1837
1838     'XSLoader' => {
1839         'DISTRIBUTION' => 'SAPER/XSLoader-0.16.tar.gz',
1840         'FILES'        => q[dist/XSLoader],
1841         'EXCLUDED'     => [
1842             qr{^eg/},
1843             qw( t/00-load.t
1844                 t/01-api.t
1845                 t/distchk.t
1846                 t/pod.t
1847                 t/podcover.t
1848                 t/portfs.t
1849                 ),
1850             'XSLoader.pm',    # we use XSLoader_pm.PL
1851         ],
1852         'UPSTREAM' => 'blead',
1853     },
1854
1855     # this pseudo-module represents all the files under ext/ and lib/
1856     # that aren't otherwise claimed. This means that the following two
1857     # commands will check that every file under ext/ and lib/ is
1858     # accounted for, and that there are no duplicates:
1859     #
1860     #    perl Porting/Maintainers --checkmani lib ext
1861     #    perl Porting/Maintainers --checkmani
1862
1863     '_PERLLIB' => {
1864         'FILES'      => q[
1865                 ext/arybase/
1866                 ext/ExtUtils-Miniperl/
1867                 ext/XS-APItest/
1868                 lib/CORE.pod
1869                 lib/Config.t
1870                 lib/Config/Extensions.{pm,t}
1871                 lib/DB.{pm,t}
1872                 lib/ExtUtils/Embed.pm
1873                 lib/ExtUtils/XSSymSet.pm
1874                 lib/ExtUtils/t/Embed.t
1875                 lib/ExtUtils/typemap
1876                 lib/Internals.t
1877                 lib/Net/hostent.{pm,t}
1878                 lib/Net/netent.{pm,t}
1879                 lib/Net/protoent.{pm,t}
1880                 lib/Net/servent.{pm,t}
1881                 lib/Pod/t/InputObjects.t
1882                 lib/Pod/t/Select.t
1883                 lib/Pod/t/Usage.t
1884                 lib/Pod/t/utils.t
1885                 lib/SelectSaver.{pm,t}
1886                 lib/Symbol.{pm,t}
1887                 lib/Thread.{pm,t}
1888                 lib/Tie/Array.pm
1889                 lib/Tie/Array/
1890                 lib/Tie/ExtraHash.t
1891                 lib/Tie/Handle.pm
1892                 lib/Tie/Handle/
1893                 lib/Tie/Scalar.{pm,t}
1894                 lib/Tie/StdHandle.pm
1895                 lib/Tie/SubstrHash.{pm,t}
1896                 lib/Time/gmtime.{pm,t}
1897                 lib/Time/localtime.{pm,t}
1898                 lib/Time/tm.pm
1899                 lib/UNIVERSAL.pm
1900                 lib/Unicode/README
1901                 lib/User/grent.{pm,t}
1902                 lib/User/pwent.{pm,t}
1903                 lib/blib.{pm,t}
1904                 lib/bytes.{pm,t}
1905                 lib/bytes_heavy.pl
1906                 lib/_charnames.pm
1907                 lib/charnames.{pm,t}
1908                 lib/dbm_filter_util.pl
1909                 lib/deprecate.pm
1910                 lib/dumpvar.{pl,t}
1911                 lib/feature.{pm,t}
1912                 lib/feature/
1913                 lib/filetest.{pm,t}
1914                 lib/h2ph.t
1915                 lib/h2xs.t
1916                 lib/integer.{pm,t}
1917                 lib/less.{pm,t}
1918                 lib/locale.{pm,t}
1919                 lib/open.{pm,t}
1920                 lib/overload/numbers.pm
1921                 lib/overloading.{pm,t}
1922                 lib/perl5db.{pl,t}
1923                 lib/perl5db/
1924                 lib/sort.{pm,t}
1925                 lib/strict.{pm,t}
1926                 lib/subs.{pm,t}
1927                 lib/unicore/
1928                 lib/utf8.{pm,t}
1929                 lib/utf8_heavy.pl
1930                 lib/vars{.pm,.t,_carp.t}
1931                 lib/vmsish.{pm,t}
1932                 ],
1933         'UPSTREAM' => 'blead',
1934     },
1935 );
1936
1937 # legacy CPAN flag
1938 for ( values %Modules ) {
1939     $_->{CPAN} = !!$_->{DISTRIBUTION};
1940 }
1941
1942 # legacy MAINTAINER field
1943 for ( values %Modules ) {
1944     next if exists $_->{MAINTAINER};
1945     if (not exists $_->{DISTRIBUTION} or (defined $_->{UPSTREAM} and $_->{UPSTREAM} eq 'blead')) {
1946         $_->{MAINTAINER} = 'P5P';
1947         $Maintainers{P5P} = 'perl5-porters <perl5-porters@perl.org>';
1948     }
1949     else {
1950         (my $pause_id = $_->{DISTRIBUTION}) =~ s{/.*$}{};
1951         $_->{MAINTAINER} = $pause_id;
1952         $Maintainers{$pause_id} = "<$pause_id\@cpan.org>";
1953     }
1954 }
1955
1956 1;