This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
d37b2ed6385f75fd1fa29d7e11b674e230decbb0
[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     'craig'     => 'Craig Berry <craigberry@mac.com>',
18     'elizabeth' => 'Elizabeth Mattijsen <liz@dijkmat.nl>',
19     'jand'      => '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.132661.tar.gz',
379         'FILES'        => q[cpan/CPAN-Meta],
380         'EXCLUDED'     => [
381             qw(t/00-compile.t),
382             qw[t/00-report-prereqs.t],
383             qw(cpanfile),
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         'UPSTREAM'     => undef, # rjbs has asked mhx to have blead be upstream
447     },
448
449     'Devel::SelfStubber' => {
450         'DISTRIBUTION' => 'FLORA/Devel-SelfStubber-1.05.tar.gz',
451         'FILES'        => q[dist/Devel-SelfStubber],
452         'EXCLUDED'     => [qr{^t/release-.*\.t}],
453         'UPSTREAM'     => 'blead',
454     },
455
456     'diagnostics' => {
457         'FILES'      => q[lib/diagnostics.{pm,t}],
458         'UPSTREAM'   => 'blead',
459     },
460
461     'Digest' => {
462         'DISTRIBUTION' => 'GAAS/Digest-1.17.tar.gz',
463         'FILES'        => q[cpan/Digest],
464         'EXCLUDED'     => ['digest-bench'],
465         'UPSTREAM'     => "cpan",
466     },
467
468     'Digest::MD5' => {
469         'DISTRIBUTION' => 'GAAS/Digest-MD5-2.53.tar.gz',
470         'FILES'        => q[cpan/Digest-MD5],
471         'EXCLUDED'     => ['rfc1321.txt'],
472         'UPSTREAM'     => "cpan",
473     },
474
475     'Digest::SHA' => {
476         'DISTRIBUTION' => 'MSHELOR/Digest-SHA-5.85.tar.gz',
477         'FILES'        => q[cpan/Digest-SHA],
478         'EXCLUDED'     => [
479             qw( t/pod.t
480                 t/podcover.t
481                 examples/dups
482                 ),
483         ],
484         'UPSTREAM' => 'cpan',
485     },
486
487     'DirHandle' => {
488         'FILES'      => q[lib/DirHandle.{pm,t}],
489         'UPSTREAM'   => 'blead',
490     },
491
492     'Dumpvalue' => {
493         'DISTRIBUTION' => 'FLORA/Dumpvalue-1.17.tar.gz',
494         'FILES'        => q[dist/Dumpvalue],
495         'EXCLUDED'     => [qr{^t/release-.*\.t}],
496         'UPSTREAM'     => 'blead',
497     },
498
499     'DynaLoader' => {
500         'FILES'      => q[ext/DynaLoader],
501         'UPSTREAM'   => 'blead',
502     },
503
504     'Encode' => {
505         'DISTRIBUTION' => 'DANKOGAI/Encode-2.55.tar.gz',
506         'FILES'        => q[cpan/Encode],
507         'UPSTREAM'     => 'cpan',
508     },
509
510     'encoding::warnings' => {
511         'DISTRIBUTION' => 'AUDREYT/encoding-warnings-0.11.tar.gz',
512         'FILES'        => q[cpan/encoding-warnings],
513         'EXCLUDED'     => [
514             qr{^inc/Module/},
515             qw(t/0-signature.t),
516         ],
517         'UPSTREAM' => undef,
518     },
519
520     'English' => {
521         'FILES'      => q[lib/English.{pm,t}],
522         'UPSTREAM'   => 'blead',
523     },
524
525     'Env' => {
526         'DISTRIBUTION' => 'FLORA/Env-1.04.tar.gz',
527         'FILES'        => q[dist/Env],
528         'EXCLUDED'     => [qr{^t/release-.*\.t}],
529         'UPSTREAM'     => 'blead',
530     },
531
532     'Errno' => {
533         'FILES'      => q[ext/Errno],
534         'UPSTREAM'   => 'blead',
535     },
536
537     'Exporter' => {
538         'DISTRIBUTION' => 'TODDR/Exporter-5.68.tar.gz',
539         'FILES'        => q[dist/Exporter],
540         'EXCLUDED' => [
541             qw( t/pod.t
542                 t/use.t
543                 ),
544         ],
545         'UPSTREAM' => 'blead',
546     },
547
548     'ExtUtils::CBuilder' => {
549         'DISTRIBUTION' => 'AMBS/ExtUtils/ExtUtils-CBuilder-0.280212.tar.gz',
550         'FILES'        => q[dist/ExtUtils-CBuilder],
551         'EXCLUDED'     => [
552             qw(README.mkdn),
553             qr{^xt},
554         ],
555         'UPSTREAM'     => 'blead',
556     },
557
558     'ExtUtils::Command' => {
559         'DISTRIBUTION' => 'FLORA/ExtUtils-Command-1.18.tar.gz',
560         'FILES'        => q[dist/ExtUtils-Command],
561         'EXCLUDED'     => [qr{^t/release-}],
562         'UPSTREAM'     => 'blead',
563     },
564
565     'ExtUtils::Constant' => {
566
567         # Nick has confirmed that while we have diverged from CPAN,
568         # this package isn't primarily maintained in core
569         # Another release will happen "Sometime"
570         'DISTRIBUTION' => '',    #'NWCLARK/ExtUtils-Constant-0.16.tar.gz',
571         'FILES'    => q[cpan/ExtUtils-Constant],
572         'EXCLUDED' => [
573             qw( lib/ExtUtils/Constant/Aaargh56Hash.pm
574                 examples/perl_keyword.pl
575                 examples/perl_regcomp_posix_keyword.pl
576                 ),
577         ],
578         'UPSTREAM' => undef,
579     },
580
581     'ExtUtils::Install' => {
582         'DISTRIBUTION' => 'YVES/ExtUtils-Install-1.54.tar.gz',
583         'FILES'        => q[dist/ExtUtils-Install],
584         'EXCLUDED'     => [
585             qw( t/lib/Test/Builder.pm
586                 t/lib/Test/Builder/Module.pm
587                 t/lib/Test/More.pm
588                 t/lib/Test/Simple.pm
589                 t/pod-coverage.t
590                 t/pod.t
591                 ),
592         ],
593         'UPSTREAM' => 'blead',
594     },
595
596     'ExtUtils::MakeMaker' => {
597         'DISTRIBUTION' => 'BINGOS/ExtUtils-MakeMaker-6.78.tar.gz',
598         'FILES'        => q[cpan/ExtUtils-MakeMaker],
599         'EXCLUDED'     => [
600             qr{^t/lib/Test/},
601             qr{^(bundled|my)/},
602             qr{^t/Liblist_Kid.t},
603             qr{^t/liblist/},
604             qr{^\.perlcriticrc},
605         ],
606         'UPSTREAM' => 'cpan',
607     },
608
609     'ExtUtils::Manifest' => {
610         'DISTRIBUTION' => 'FLORA/ExtUtils-Manifest-1.63.tar.gz',
611         'FILES'        => q[dist/ExtUtils-Manifest],
612         'EXCLUDED'     => [qr(t/release-.*\.t)],
613         'UPSTREAM'     => 'blead',
614     },
615
616     'ExtUtils::ParseXS' => {
617         'DISTRIBUTION' => 'SMUELLER/ExtUtils-ParseXS-3.22.tar.gz',
618         'FILES'        => q[dist/ExtUtils-ParseXS],
619         'UPSTREAM'     => 'blead',
620     },
621
622     'Fcntl' => {
623         'FILES'      => q[ext/Fcntl],
624         'UPSTREAM'   => 'blead',
625     },
626
627     'File::Basename' => {
628         'FILES'      => q[lib/File/Basename.{pm,t}],
629         'UPSTREAM'   => 'blead',
630     },
631
632     'File::Compare' => {
633         'FILES'      => q[lib/File/Compare.{pm,t}],
634         'UPSTREAM'   => 'blead',
635     },
636
637     'File::Copy' => {
638         'FILES'      => q[lib/File/Copy.{pm,t}],
639         'UPSTREAM'   => 'blead',
640     },
641
642     'File::DosGlob' => {
643         'FILES'      => q[ext/File-DosGlob],
644         'UPSTREAM'   => 'blead',
645     },
646
647     'File::Fetch' => {
648         'DISTRIBUTION' => 'BINGOS/File-Fetch-0.44.tar.gz',
649         'FILES'        => q[cpan/File-Fetch],
650         'UPSTREAM'     => 'cpan',
651     },
652
653     'File::Find' => {
654         'FILES'      => q[ext/File-Find],
655         'UPSTREAM'   => 'blead',
656     },
657
658     'File::Glob' => {
659         'FILES'      => q[ext/File-Glob],
660         'UPSTREAM'   => 'blead',
661     },
662
663     'File::Path' => {
664         'DISTRIBUTION' => 'DLAND/File-Path-2.09.tar.gz',
665         'FILES'        => q[cpan/File-Path],
666         'EXCLUDED'     => [
667             qw( eg/setup-extra-tests
668                 t/pod.t
669                 )
670         ],
671         'MAP' => {
672             ''   => 'cpan/File-Path/lib/File/',
673             't/' => 'cpan/File-Path/t/',
674         },
675         'UPSTREAM' => undef,
676     },
677
678     'File::stat' => {
679         'FILES'      => q[lib/File/stat{.pm,*.t}],
680         'UPSTREAM'   => 'blead',
681     },
682
683     'File::Temp' => {
684         'DISTRIBUTION' => 'DAGOLDEN/File-Temp-0.2302.tar.gz',
685         'FILES'        => q[cpan/File-Temp],
686         'EXCLUDED'     => [
687             qw( misc/benchmark.pl
688                 misc/results.txt
689                 ),
690             qw(t/00-compile.t),
691             qw[t/00-report-prereqs.t],
692             qr{^xt},
693         ],
694         'UPSTREAM' => 'cpan',
695     },
696
697     'FileCache' => {
698         'FILES'      => q[ext/FileCache],
699         'UPSTREAM'   => 'blead',
700     },
701
702     'FileHandle' => {
703         'FILES'      => q[lib/FileHandle.{pm,t}],
704         'UPSTREAM'   => 'blead',
705     },
706
707     'Filter::Simple' => {
708         'DISTRIBUTION' => 'SMUELLER/Filter-Simple-0.88.tar.gz',
709         'FILES'        => q[dist/Filter-Simple],
710         'EXCLUDED'     => [
711             qr{^demo/}
712         ],
713         'UPSTREAM' => 'blead',
714     },
715
716     'Filter::Util::Call' => {
717         'DISTRIBUTION' => 'RURBAN/Filter-1.49.tar.gz',
718         'FILES'        => q[cpan/Filter-Util-Call
719                  pod/perlfilter.pod
720                 ],
721         'EXCLUDED' => [
722             qr{^decrypt/},
723             qr{^examples/},
724             qr{^Exec/},
725             qr{^lib/Filter/},
726             qr{^tee/},
727             qw( Call/Makefile.PL
728                 Call/ppport.h
729                 Call/typemap
730                 mytest
731                 t/cpp.t
732                 t/decrypt.t
733                 t/exec.t
734                 t/order.t
735                 t/pod.t
736                 t/sh.t
737                 t/tee.t
738                 t/z_kwalitee.t
739                 t/z_meta.t
740                 t/z_perl_minimum_version.t
741                 t/z_pod-coverage.t
742                 t/z_pod.t
743                 ),
744         ],
745         'MAP' => {
746             'Call/'          => 'cpan/Filter-Util-Call/',
747             'filter-util.pl' => 'cpan/Filter-Util-Call/filter-util.pl',
748             'perlfilter.pod' => 'pod/perlfilter.pod',
749             ''               => 'cpan/Filter-Util-Call/',
750         },
751         'UPSTREAM' => 'cpan',
752     },
753
754     'FindBin' => {
755         'FILES'      => q[lib/FindBin.{pm,t}],
756         'UPSTREAM'   => 'blead',
757     },
758
759     'GDBM_File' => {
760         'FILES'      => q[ext/GDBM_File],
761         'UPSTREAM'   => 'blead',
762     },
763
764     'Getopt::Long' => {
765         'DISTRIBUTION' => 'JV/Getopt-Long-2.42.tar.gz',
766         'FILES'        => q[cpan/Getopt-Long],
767         'EXCLUDED'     => [
768             qr{^examples/},
769             qw( perl-Getopt-Long.spec
770                 lib/newgetopt.pl
771                 t/gol-compat.t
772                 ),
773         ],
774         'UPSTREAM' => 'cpan',
775     },
776
777     'Getopt::Std' => {
778         'FILES'      => q[lib/Getopt/Std.{pm,t}],
779         'UPSTREAM'   => 'blead',
780     },
781
782     'Hash::Util' => {
783         'FILES'      => q[ext/Hash-Util],
784         'UPSTREAM'   => 'blead',
785     },
786
787     'Hash::Util::FieldHash' => {
788         'FILES'      => q[ext/Hash-Util-FieldHash],
789         'UPSTREAM'   => 'blead',
790     },
791
792     'HTTP::Tiny' => {
793         'DISTRIBUTION' => 'DAGOLDEN/HTTP-Tiny-0.036.tar.gz',
794         'FILES'        => q[cpan/HTTP-Tiny],
795         'EXCLUDED'     => [
796             'cpanfile',
797             't/00-compile.t',
798             't/00-report-prereqs.t',
799             't/200_live.t',
800             't/200_live_local_ip.t',
801             't/210_live_ssl.t',
802             qr/^eg/,
803             qr/^xt/
804         ],
805         'UPSTREAM' => 'cpan',
806     },
807
808     'I18N::Collate' => {
809         'DISTRIBUTION' => 'FLORA/I18N-Collate-1.02.tar.gz',
810         'FILES'        => q[dist/I18N-Collate],
811         'EXCLUDED'     => [qr{^t/release-.*\.t}],
812         'UPSTREAM'     => 'blead',
813     },
814
815     'I18N::Langinfo' => {
816         'FILES'      => q[ext/I18N-Langinfo],
817         'UPSTREAM'   => 'blead',
818     },
819
820     'I18N::LangTags' => {
821         'FILES'        => q[dist/I18N-LangTags],
822         'UPSTREAM'     => 'blead',
823     },
824
825     'if' => {
826         'DISTRIBUTION' => 'ILYAZ/modules/if-0.0601.tar.gz',
827         'FILES'        => q[dist/if],
828         'UPSTREAM'     => 'blead',
829     },
830
831     'IO' => {
832         'DISTRIBUTION' => 'GBARR/IO-1.25.tar.gz',
833         'FILES'        => q[dist/IO/],
834         'EXCLUDED'     => ['t/test.pl'],
835         'UPSTREAM'     => 'blead',
836     },
837
838     'IO-Compress' => {
839         'DISTRIBUTION' => 'PMQS/IO-Compress-2.062.tar.gz',
840         'FILES'        => q[cpan/IO-Compress],
841         'EXCLUDED'     => [qr{t/Test/}],
842         'UPSTREAM'     => 'cpan',
843     },
844
845     'IO::Zlib' => {
846         'DISTRIBUTION' => 'TOMHUGHES/IO-Zlib-1.10.tar.gz',
847         'FILES'        => q[cpan/IO-Zlib],
848         'UPSTREAM'     => undef,
849     },
850
851     'IPC::Cmd' => {
852         'DISTRIBUTION' => 'BINGOS/IPC-Cmd-0.84.tar.gz',
853         'FILES'        => q[cpan/IPC-Cmd],
854         'UPSTREAM'     => 'cpan',
855     },
856
857     'IPC::Open3' => {
858         'FILES'      => q[ext/IPC-Open3],
859         'UPSTREAM'   => 'blead',
860     },
861
862     'IPC::SysV' => {
863         'DISTRIBUTION' => 'MHX/IPC-SysV-2.04.tar.gz',
864         'FILES'        => q[cpan/IPC-SysV],
865         'EXCLUDED'     => [
866             qw( const-c.inc
867                 const-xs.inc
868                 ),
869         ],
870         'UPSTREAM' => 'cpan',
871     },
872
873     'JSON::PP' => {
874         'DISTRIBUTION' => 'MAKAMAKA/JSON-PP-2.27202.tar.gz',
875         'FILES'        => q[cpan/JSON-PP],
876         'EXCLUDED'     => [
877             't/900_pod.t',    # Pod testing
878         ],
879
880         # Waiting to be merged upstream: see PERL RT#119825
881         'CUSTOMIZED'   => [
882             'lib/JSON/PP.pm',
883         ],
884
885         'UPSTREAM' => 'cpan',
886     },
887
888     'lib' => {
889         'DISTRIBUTION' => 'SMUELLER/lib-0.63.tar.gz',
890         'FILES'        => q[dist/lib/],
891         'EXCLUDED'     => [
892             qw( forPAUSE/lib.pm
893                 t/00pod.t
894                 ),
895         ],
896         'UPSTREAM' => 'blead',
897     },
898
899     'libnet' => {
900         'DISTRIBUTION' => 'SHAY/libnet-1.23.tar.gz',
901         'FILES'        => q[cpan/libnet],
902         'EXCLUDED'     => [
903             qw( Configure
904                 install-nomake
905                 ),
906         ],
907         # Customized for perl since we cannot use either an auto-generated
908         # script or the version in the CPAN distro.
909         'CUSTOMIZED' => ['Makefile.PL'],
910         'UPSTREAM'   => 'cpan',
911     },
912
913     'Locale-Codes' => {
914         'DISTRIBUTION' => 'SBECK/Locale-Codes-3.27.tar.gz',
915         'FILES'        => q[cpan/Locale-Codes],
916         'EXCLUDED'     => [
917             qw( t/pod_coverage.t
918                 t/pod.t),
919             qr{^t/runtests},
920             qr{^t/runtests\.bat},
921             qr{^internal/},
922             qr{^examples/},
923         ],
924         'UPSTREAM' => 'cpan',
925     },
926
927     'Locale::Maketext' => {
928         'DISTRIBUTION' => 'TODDR/Locale-Maketext-1.23.tar.gz',
929         'FILES'        => q[dist/Locale-Maketext],
930         'EXCLUDED'     => [
931             qw(
932                 perlcriticrc
933                 t/00_load.t
934                 t/pod.t
935                 ),
936         ],
937         'UPSTREAM' => 'blead',
938     },
939
940     'Locale::Maketext::Simple' => {
941         'DISTRIBUTION' => 'JESSE/Locale-Maketext-Simple-0.21.tar.gz',
942         'FILES'        => q[cpan/Locale-Maketext-Simple],
943         'EXCLUDED'     => [qr{^inc/}],
944         'UPSTREAM'     => 'cpan',
945     },
946
947     'mad' => {
948         'MAINTAINER' => 'lwall',
949         'FILES'      => q[mad],
950         'UPSTREAM'   => undef,
951     },
952
953     'Math::BigInt' => {
954         'DISTRIBUTION' => 'PJACKLAM/Math-BigInt-1.997.tar.gz',
955         'FILES'        => q[dist/Math-BigInt],
956         'EXCLUDED'     => [
957             qr{^inc/},
958             qr{^examples/},
959             qw( t/00sig.t
960                 t/01load.t
961                 t/02pod.t
962                 t/03podcov.t
963                 ),
964         ],
965         'UPSTREAM' => 'blead',
966     },
967
968     'Math::BigInt::FastCalc' => {
969         'DISTRIBUTION' => 'PJACKLAM/Math-BigInt-FastCalc-0.30.tar.gz',
970         'FILES'        => q[dist/Math-BigInt-FastCalc],
971         'EXCLUDED'     => [
972             qr{^inc/},
973             qw( t/00sig.t
974                 t/01load.t
975                 t/02pod.t
976                 t/03podcov.t
977                 ),
978
979             # instead we use the versions of these test
980             # files that come with Math::BigInt:
981             qw( t/bigfltpm.inc
982                 t/bigfltpm.t
983                 t/bigintpm.inc
984                 t/bigintpm.t
985                 t/mbimbf.inc
986                 t/mbimbf.t
987                 ),
988         ],
989         'UPSTREAM' => 'blead',
990     },
991
992     'Math::BigRat' => {
993         'DISTRIBUTION' => 'PJACKLAM/Math-BigRat-0.2602.tar.gz',
994         'FILES'        => q[dist/Math-BigRat],
995         'EXCLUDED'     => [
996             qr{^inc/},
997             qw( t/00sig.t
998                 t/01load.t
999                 t/02pod.t
1000                 t/03podcov.t
1001                 ),
1002         ],
1003         'UPSTREAM' => 'blead',
1004     },
1005
1006     'Math::Complex' => {
1007         'DISTRIBUTION' => 'ZEFRAM/Math-Complex-1.59.tar.gz',
1008         'FILES'        => q[cpan/Math-Complex],
1009         'EXCLUDED'     => [
1010             qw( t/pod.t
1011                 t/pod-coverage.t
1012                 ),
1013         ],
1014         'UPSTREAM' => 'cpan',
1015     },
1016
1017     'Memoize' => {
1018         'DISTRIBUTION' => 'MJD/Memoize-1.03.tgz',
1019         'FILES'        => q[cpan/Memoize],
1020         'EXCLUDED'     => ['article.html'],
1021         'UPSTREAM'     => 'cpan',
1022     },
1023
1024     'MIME::Base64' => {
1025         'DISTRIBUTION' => 'GAAS/MIME-Base64-3.14.tar.gz',
1026         'FILES'        => q[cpan/MIME-Base64],
1027         'EXCLUDED'     => ['t/bad-sv.t'],
1028         'UPSTREAM'     => 'cpan',
1029     },
1030
1031     #
1032     # To update Module-Build in blead see
1033     # https://github.com/Perl-Toolchain-Gang/Module-Build/blob/master/devtools/patching_blead.pod
1034     #
1035
1036     'Module::Build' => {
1037         'DISTRIBUTION' => 'LEONT/Module-Build-0.4007.tar.gz',
1038         'FILES'        => q[cpan/Module-Build],
1039         'EXCLUDED'     => [
1040             qw( t/par.t
1041                 t/signature.t
1042                 ),
1043             qr{^contrib/},
1044             qr{^inc},
1045         ],
1046         # Generated file, not part of the CPAN distro:
1047         'CUSTOMIZED' => ['lib/Module/Build/ConfigData.pm'],
1048         'DEPRECATED' => '5.019000',
1049         'UPSTREAM'   => 'cpan',
1050     },
1051
1052     'Module::CoreList' => {
1053         'DISTRIBUTION' => 'BINGOS/Module-CoreList-2.99.tar.gz',
1054         'FILES'        => q[dist/Module-CoreList],
1055         'UPSTREAM'     => 'blead',
1056     },
1057
1058     'Module::Load' => {
1059         'DISTRIBUTION' => 'BINGOS/Module-Load-0.24.tar.gz',
1060         'FILES'        => q[cpan/Module-Load],
1061         'UPSTREAM'     => 'cpan',
1062     },
1063
1064     'Module::Load::Conditional' => {
1065         'DISTRIBUTION' => 'BINGOS/Module-Load-Conditional-0.58.tar.gz',
1066         'FILES'        => q[cpan/Module-Load-Conditional],
1067         'UPSTREAM'     => 'cpan',
1068     },
1069
1070     'Module::Loaded' => {
1071         'DISTRIBUTION' => 'BINGOS/Module-Loaded-0.08.tar.gz',
1072         'FILES'        => q[cpan/Module-Loaded],
1073         'UPSTREAM'     => 'cpan',
1074     },
1075
1076     'Module::Metadata' => {
1077         'DISTRIBUTION' => 'ETHER/Module-Metadata-1.000018.tar.gz',
1078         'FILES'        => q[cpan/Module-Metadata],
1079         'EXCLUDED'     => [
1080             qr{^maint},
1081             qr{^xt},
1082         ],
1083         'UPSTREAM' => 'cpan',
1084     },
1085
1086     'mro' => {
1087         'FILES'      => q[ext/mro],
1088         'UPSTREAM'   => 'blead',
1089     },
1090
1091     'NDBM_File' => {
1092         'FILES'      => q[ext/NDBM_File],
1093         'UPSTREAM'   => 'blead',
1094     },
1095
1096     'Net::Ping' => {
1097         'DISTRIBUTION' => 'SMPETERS/Net-Ping-2.41.tar.gz',
1098         'FILES'        => q[dist/Net-Ping],
1099         'EXCLUDED'     => [
1100             qr{^.travis.yml},
1101             qr{^README.md},
1102         ],
1103         'UPSTREAM'     => 'blead',
1104     },
1105
1106     'NEXT' => {
1107         'DISTRIBUTION' => 'FLORA/NEXT-0.65.tar.gz',
1108         'FILES'        => q[cpan/NEXT],
1109         'EXCLUDED'     => [qr{^demo/}],
1110         'UPSTREAM'     => 'cpan',
1111     },
1112
1113     'ODBM_File' => {
1114         'FILES'      => q[ext/ODBM_File],
1115         'UPSTREAM'   => 'blead',
1116     },
1117
1118     'Opcode' => {
1119         'FILES'      => q[ext/Opcode],
1120         'UPSTREAM'   => 'blead',
1121     },
1122
1123     'overload' => {
1124         'FILES'      => q[lib/overload{.pm,.t,64.t}],
1125         'UPSTREAM'   => 'blead',
1126     },
1127
1128     'Package::Constants' => {
1129         'DISTRIBUTION' => 'KANE/Package-Constants-0.02.tar.gz',
1130         'FILES'        => q[cpan/Package-Constants],
1131         'UPSTREAM'     => 'cpan',
1132     },
1133
1134     'Params::Check' => {
1135         'DISTRIBUTION' => 'BINGOS/Params-Check-0.38.tar.gz',
1136         'EXCLUDED'     => ['Params-Check-0.26.tar.gz'],
1137         'FILES'        => q[cpan/Params-Check],
1138         'UPSTREAM'     => 'cpan',
1139     },
1140
1141     'parent' => {
1142         'DISTRIBUTION' => 'CORION/parent-0.228.tar.gz',
1143         'FILES'        => q[cpan/parent],
1144         'UPSTREAM'     => undef,
1145     },
1146
1147     'Parse::CPAN::Meta' => {
1148         'DISTRIBUTION' => 'DAGOLDEN/Parse-CPAN-Meta-1.4409.tar.gz',
1149         'FILES'        => q[cpan/Parse-CPAN-Meta],
1150         'EXCLUDED'     => [
1151             qw(t/00-compile.t),
1152             qw[t/00-report-prereqs.t],
1153             qw(cpanfile),
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(cpanfile), 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'   => undef,
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'     => undef,
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'     => undef,
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.2.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.32.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'     => undef,
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.28.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
1515         # Waiting to be merged upstream: see CPAN RT#64353
1516         'CUSTOMIZED' => [ 't/source.t' ],
1517
1518         'UPSTREAM'   => 'cpan',
1519     },
1520
1521     'Test::Simple' => {
1522         'DISTRIBUTION' => 'MSCHWERN/Test-Simple-0.98.tar.gz',
1523         'FILES'        => q[cpan/Test-Simple],
1524         'EXCLUDED'     => [
1525             qw( .perlcriticrc
1526                 .perltidyrc
1527                 t/00compile.t
1528                 t/pod.t
1529                 t/pod-coverage.t
1530                 t/Builder/reset_outputs.t
1531                 lib/Test/Builder/IO/Scalar.pm
1532                 ),
1533         ],
1534
1535         'CUSTOMIZED'   => [
1536             # Waiting to be merged upstream: see CPAN RT#79762
1537             't/fail-more.t',
1538
1539             # Waiting to be merged upstream: see PERL RT#119825
1540             'lib/Test/Builder.pm',
1541             'lib/Test/Builder/Module.pm',
1542             'lib/Test/More.pm',
1543             'lib/Test/Simple.pm',
1544         ],
1545
1546         'UPSTREAM' => 'cpan',
1547     },
1548
1549     'Text::Abbrev' => {
1550         'DISTRIBUTION' => 'FLORA/Text-Abbrev-1.02.tar.gz',
1551         'FILES'        => q[dist/Text-Abbrev],
1552         'EXCLUDED'     => [qr{^t/release-.*\.t}],
1553         'UPSTREAM'     => 'blead',
1554     },
1555
1556     'Text::Balanced' => {
1557         'DISTRIBUTION' => 'ADAMK/Text-Balanced-2.02.tar.gz',
1558         'FILES'        => q[cpan/Text-Balanced],
1559         'EXCLUDED'     => [
1560             qw( t/97_meta.t
1561                 t/98_pod.t
1562                 t/99_pmv.t
1563                 ),
1564         ],
1565
1566         # Waiting to be merged upstream: see CPAN RT#87788
1567         'CUSTOMIZED'   => [
1568             qw( t/01_compile.t
1569                 t/02_extbrk.t
1570                 t/03_extcbk.t
1571                 t/04_extdel.t
1572                 t/05_extmul.t
1573                 t/06_extqlk.t
1574                 t/07_exttag.t
1575                 t/08_extvar.t
1576                 t/09_gentag.t
1577                 ),
1578         ],
1579
1580         'UPSTREAM' => 'cpan',
1581     },
1582
1583     'Text::ParseWords' => {
1584         'DISTRIBUTION' => 'CHORNY/Text-ParseWords-3.29.tar.gz',
1585         'FILES'        => q[cpan/Text-ParseWords],
1586         'EXCLUDED'     => ['t/pod.t'],
1587
1588         # Waiting to be merged upstream: see CPAN RT#50929
1589         'CUSTOMIZED'   => [
1590             qw( t/ParseWords.t
1591                 t/taint.t
1592                 ),
1593         ],
1594
1595         # For the benefit of make_ext.pl, we have to have this accessible:
1596         'MAP' => {
1597             'ParseWords.pm' => 'cpan/Text-ParseWords/lib/Text/ParseWords.pm',
1598             ''              => 'cpan/Text-ParseWords/',
1599         },
1600         'UPSTREAM' => undef,
1601     },
1602
1603     'Text-Tabs+Wrap' => {
1604         'DISTRIBUTION' => 'MUIR/modules/Text-Tabs+Wrap-2013.0523.tar.gz',
1605         'FILES'        => q[cpan/Text-Tabs],
1606         'EXCLUDED'   => [
1607             qr/^lib\.old/,
1608             't/dnsparks.t',    # see af6492bf9e
1609         ],
1610         'MAP'          => {
1611             ''                        => 'cpan/Text-Tabs/',
1612             'lib.modern/Text/Tabs.pm' => 'cpan/Text-Tabs/lib/Text/Tabs.pm',
1613             'lib.modern/Text/Wrap.pm' => 'cpan/Text-Tabs/lib/Text/Wrap.pm',
1614         },
1615         'UPSTREAM'   => 'cpan',
1616     },
1617
1618     'Thread::Queue' => {
1619         'DISTRIBUTION' => 'JDHEDDEN/Thread-Queue-3.02.tar.gz',
1620         'FILES'        => q[dist/Thread-Queue],
1621         'EXCLUDED'     => [
1622             qr{^examples/},
1623             qw( t/00_load.t
1624                 t/99_pod.t
1625                 t/test.pl
1626                 ),
1627         ],
1628         'UPSTREAM' => 'blead',
1629     },
1630
1631     'Thread::Semaphore' => {
1632         'DISTRIBUTION' => 'JDHEDDEN/Thread-Semaphore-2.12.tar.gz',
1633         'FILES'        => q[dist/Thread-Semaphore],
1634         'EXCLUDED'     => [
1635             qw( examples/semaphore.pl
1636                 t/00_load.t
1637                 t/99_pod.t
1638                 t/test.pl
1639                 ),
1640         ],
1641         'UPSTREAM' => 'blead',
1642     },
1643
1644     'threads' => {
1645         'DISTRIBUTION' => 'JDHEDDEN/threads-1.89.tar.gz',
1646         'FILES'        => q[dist/threads],
1647         'EXCLUDED'     => [
1648             qr{^examples/},
1649             qw( t/pod.t
1650                 t/test.pl
1651                 threads.h
1652                 ),
1653         ],
1654         'UPSTREAM' => 'blead',
1655     },
1656
1657     'threads::shared' => {
1658         'DISTRIBUTION' => 'JDHEDDEN/threads-shared-1.43.tar.gz',
1659         'FILES'        => q[dist/threads-shared],
1660         'EXCLUDED'     => [
1661             qw( examples/class.pl
1662                 shared.h
1663                 t/pod.t
1664                 t/test.pl
1665                 ),
1666         ],
1667         'UPSTREAM' => 'blead',
1668     },
1669
1670     'Tie::File' => {
1671         'DISTRIBUTION' => 'TODDR/Tie-File-0.98.tar.gz',
1672         'FILES'        => q[dist/Tie-File],
1673         'UPSTREAM'     => 'blead',
1674     },
1675
1676     'Tie::Hash' => {
1677         'FILES'      => q[lib/Tie/Hash.{pm,t}],
1678         'UPSTREAM'   => 'blead',
1679     },
1680
1681     'Tie::Hash::NamedCapture' => {
1682         'FILES'      => q[ext/Tie-Hash-NamedCapture],
1683         'UPSTREAM'   => 'blead',
1684     },
1685
1686     'Tie::Memoize' => {
1687         'FILES'      => q[ext/Tie-Memoize],
1688         'UPSTREAM'   => 'blead',
1689     },
1690
1691     'Tie::RefHash' => {
1692         'DISTRIBUTION' => 'FLORA/Tie-RefHash-1.39.tar.gz',
1693         'FILES'        => q[cpan/Tie-RefHash],
1694         'UPSTREAM'     => 'cpan',
1695     },
1696
1697     'Time::HiRes' => {
1698         'DISTRIBUTION' => 'ZEFRAM/Time-HiRes-1.9726.tar.gz',
1699         'FILES'        => q[cpan/Time-HiRes],
1700         'UPSTREAM'     => 'cpan',
1701     },
1702
1703     'Time::Local' => {
1704         'DISTRIBUTION' => 'DROLSKY/Time-Local-1.2300.tar.gz',
1705         'FILES'        => q[cpan/Time-Local],
1706         'EXCLUDED'     => [
1707             qw( t/pod-coverage.t
1708                 t/pod.t
1709                 ),
1710             qr{^t/release-.*\.t},
1711         ],
1712         'UPSTREAM' => 'cpan',
1713     },
1714
1715     'Time::Piece' => {
1716         'DISTRIBUTION' => 'RJBS/Time-Piece-1.23.tar.gz',
1717         'FILES'        => q[cpan/Time-Piece],
1718         'UPSTREAM'     => undef,
1719     },
1720
1721     'Unicode::Collate' => {
1722         'DISTRIBUTION' => 'SADAHIRO/Unicode-Collate-0.99.tar.gz',
1723         'FILES'        => q[cpan/Unicode-Collate],
1724         'EXCLUDED'     => [
1725             qr{N$},
1726             qr{^data/},
1727             qr{^gendata/},
1728             qw( disableXS
1729                 enableXS
1730                 mklocale
1731                 ),
1732         ],
1733         'UPSTREAM' => 'cpan',
1734     },
1735
1736     'Unicode::Normalize' => {
1737         'DISTRIBUTION' => 'SADAHIRO/Unicode-Normalize-1.16.tar.gz',
1738         'FILES'        => q[cpan/Unicode-Normalize],
1739         'EXCLUDED'     => [
1740             qw( MANIFEST.N
1741                 Normalize.pmN
1742                 disableXS
1743                 enableXS
1744                 ),
1745         ],
1746         'UPSTREAM' => 'cpan',
1747     },
1748
1749     'Unicode::UCD' => {
1750         'FILES'      => q[lib/Unicode/UCD.{pm,t}],
1751         'UPSTREAM'   => 'blead',
1752     },
1753
1754     'version' => {
1755         'DISTRIBUTION' => 'JPEACOCK/version-0.9904.tar.gz',
1756         'FILES'        => q[cpan/version],
1757         'EXCLUDED' => [
1758             qr{^vutil/},
1759             'lib/version/typemap',
1760             't/survey_locales',
1761             'vperl/vpp.pm',
1762         ],
1763
1764         # Waiting to be merged upstream: see CPAN RT#87513
1765         'CUSTOMIZED'   => [
1766             qw( lib/version.pm
1767                 t/07locale.t
1768                 t/08_corelist.t
1769                 ),
1770         ],
1771
1772         'UPSTREAM' => undef,
1773     },
1774
1775     'vms' => {
1776         'MAINTAINER' => 'craig',
1777         'FILES'      => q[vms configure.com README.vms],
1778         'UPSTREAM'   => undef,
1779     },
1780
1781     'VMS::DCLsym' => {
1782         'MAINTAINER' => 'craig',
1783         'FILES'      => q[ext/VMS-DCLsym],
1784         'UPSTREAM'   => undef,
1785     },
1786
1787     'VMS::Filespec' => {
1788         'FILES'      => q[ext/VMS-Filespec],
1789         'UPSTREAM'   => undef,
1790     },
1791
1792     'VMS::Stdio' => {
1793         'MAINTAINER' => 'craig',
1794         'FILES'      => q[ext/VMS-Stdio],
1795         'UPSTREAM'   => undef,
1796     },
1797
1798     'warnings' => {
1799         'MAINTAINER' => 'pmqs',
1800         'FILES'      => q[regen/warnings.pl
1801                  lib/warnings.{pm,t}
1802                  lib/warnings
1803                  t/lib/warnings
1804                 ],
1805         'UPSTREAM' => 'blead',
1806     },
1807
1808     'win32' => {
1809         'MAINTAINER' => 'jand',
1810         'FILES'      => q[win32 t/win32 README.win32 ext/Win32CORE],
1811         'UPSTREAM'   => undef,
1812     },
1813
1814     'Win32' => {
1815         'DISTRIBUTION' => "JDB/Win32-0.47.tar.gz",
1816         'FILES'        => q[cpan/Win32],
1817         'UPSTREAM'     => 'cpan',
1818     },
1819
1820     'Win32API::File' => {
1821         'DISTRIBUTION' => 'CHORNY/Win32API-File-0.1201.tar.gz',
1822         'FILES'        => q[cpan/Win32API-File],
1823         'EXCLUDED'     => [
1824             qr{^ex/},
1825             't/pod.t',
1826         ],
1827         'UPSTREAM' => 'cpan',
1828     },
1829
1830     'XS::Typemap' => {
1831         'FILES'      => q[ext/XS-Typemap],
1832         'UPSTREAM'   => 'blead',
1833     },
1834
1835     'XSLoader' => {
1836         'DISTRIBUTION' => 'SAPER/XSLoader-0.16.tar.gz',
1837         'FILES'        => q[dist/XSLoader],
1838         'EXCLUDED'     => [
1839             qr{^eg/},
1840             qw( t/00-load.t
1841                 t/01-api.t
1842                 t/distchk.t
1843                 t/pod.t
1844                 t/podcover.t
1845                 t/portfs.t
1846                 ),
1847             'XSLoader.pm',    # we use XSLoader_pm.PL
1848         ],
1849         # Revert UPSTREAM to 'blead' after 0.17 is released
1850         'UPSTREAM' => undef,
1851     },
1852
1853     # this pseudo-module represents all the files under ext/ and lib/
1854     # that aren't otherwise claimed. This means that the following two
1855     # commands will check that every file under ext/ and lib/ is
1856     # accounted for, and that there are no duplicates:
1857     #
1858     #    perl Porting/Maintainers --checkmani lib ext
1859     #    perl Porting/Maintainers --checkmani
1860
1861     '_PERLLIB' => {
1862         'FILES'      => q[
1863                 ext/arybase/
1864                 ext/ExtUtils-Miniperl/
1865                 ext/XS-APItest/
1866                 lib/CORE.pod
1867                 lib/Config.t
1868                 lib/Config/Extensions.{pm,t}
1869                 lib/DB.{pm,t}
1870                 lib/ExtUtils/Embed.pm
1871                 lib/ExtUtils/XSSymSet.pm
1872                 lib/ExtUtils/t/Embed.t
1873                 lib/ExtUtils/typemap
1874                 lib/Internals.t
1875                 lib/Net/hostent.{pm,t}
1876                 lib/Net/netent.{pm,t}
1877                 lib/Net/protoent.{pm,t}
1878                 lib/Net/servent.{pm,t}
1879                 lib/Pod/t/InputObjects.t
1880                 lib/Pod/t/Select.t
1881                 lib/Pod/t/Usage.t
1882                 lib/Pod/t/utils.t
1883                 lib/SelectSaver.{pm,t}
1884                 lib/Symbol.{pm,t}
1885                 lib/Thread.{pm,t}
1886                 lib/Tie/Array.pm
1887                 lib/Tie/Array/
1888                 lib/Tie/ExtraHash.t
1889                 lib/Tie/Handle.pm
1890                 lib/Tie/Handle/
1891                 lib/Tie/Scalar.{pm,t}
1892                 lib/Tie/StdHandle.pm
1893                 lib/Tie/SubstrHash.{pm,t}
1894                 lib/Time/gmtime.{pm,t}
1895                 lib/Time/localtime.{pm,t}
1896                 lib/Time/tm.pm
1897                 lib/UNIVERSAL.pm
1898                 lib/Unicode/README
1899                 lib/User/grent.{pm,t}
1900                 lib/User/pwent.{pm,t}
1901                 lib/blib.{pm,t}
1902                 lib/bytes.{pm,t}
1903                 lib/bytes_heavy.pl
1904                 lib/_charnames.pm
1905                 lib/charnames.{pm,t}
1906                 lib/dbm_filter_util.pl
1907                 lib/deprecate.pm
1908                 lib/dumpvar.{pl,t}
1909                 lib/feature.{pm,t}
1910                 lib/feature/
1911                 lib/filetest.{pm,t}
1912                 lib/h2ph.t
1913                 lib/h2xs.t
1914                 lib/integer.{pm,t}
1915                 lib/less.{pm,t}
1916                 lib/locale.{pm,t}
1917                 lib/open.{pm,t}
1918                 lib/overload/numbers.pm
1919                 lib/overloading.{pm,t}
1920                 lib/perl5db.{pl,t}
1921                 lib/perl5db/
1922                 lib/sort.{pm,t}
1923                 lib/strict.{pm,t}
1924                 lib/subs.{pm,t}
1925                 lib/unicore/
1926                 lib/utf8.{pm,t}
1927                 lib/utf8_heavy.pl
1928                 lib/vars{.pm,.t,_carp.t}
1929                 lib/vmsish.{pm,t}
1930                 ],
1931         'UPSTREAM' => 'blead',
1932     },
1933 );
1934
1935 # legacy CPAN flag
1936 for ( values %Modules ) {
1937     $_->{CPAN} = !!$_->{DISTRIBUTION};
1938 }
1939
1940 # legacy MAINTAINER field
1941 for ( values %Modules ) {
1942     next if exists $_->{MAINTAINER};
1943     if (not exists $_->{DISTRIBUTION} or (defined $_->{UPSTREAM} and $_->{UPSTREAM} eq 'blead')) {
1944         $_->{MAINTAINER} = 'p5p';
1945         $Maintainers{p5p} = 'perl5-porters <perl5-porters@perl.org>';
1946     }
1947     else {
1948         (my $pause_id = $_->{DISTRIBUTION}) =~ s{/.*$}{};
1949         $_->{MAINTAINER} = $pause_id;
1950         $Maintainers{$pause_id} = "<$pause_id\@cpan.org>";
1951     }
1952 }
1953
1954 1;