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 9package Maintainers; 10 11use utf8; 12use File::Glob qw(:case); 13 14# IGNORABLE: files which, if they appear in the root of a CPAN 15# distribution, need not appear in core (i.e. core-cpan-diff won't 16# complain if it can't find them) 17 18@IGNORABLE = qw( 19 .cvsignore .dualLivedDiffConfig .gitignore .perlcriticrc .perltidyrc 20 .travis.yml ANNOUNCE Announce Artistic AUTHORS BENCHMARK BUGS Build.PL 21 CHANGELOG ChangeLog Changelog CHANGES Changes CONTRIBUTING CONTRIBUTING.md 22 CONTRIBUTING.mkdn COPYING Copying cpanfile CREDITS dist.ini GOALS HISTORY 23 INSTALL INSTALL.SKIP LICENCE LICENSE Makefile.PL MANIFEST MANIFEST.SKIP 24 META.json META.yml MYMETA.json MYMETA.yml NEW NEWS NOTES perlcritic.rc 25 ppport.h README README.md README.pod README.PATCHING SIGNATURE THANKS TODO 26 Todo VERSION WHATSNEW 27); 28 29# Each entry in the %Modules hash roughly represents a distribution, 30# except when DISTRIBUTION is set, where it *exactly* represents a single 31# CPAN distribution. 32 33# The keys of %Modules are human descriptions of the distributions, and 34# may not exactly match a module or distribution name. Distributions 35# which have an obvious top-level module associated with them will usually 36# have a key named for that module, e.g. 'Archive::Extract' for 37# Archive-Extract-N.NN.tar.gz; the remaining keys are likely to be based 38# on the name of the distribution, e.g. 'Locale-Codes' for 39# Locale-Codes-N.NN.tar.gz'. 40 41# UPSTREAM indicates where patches should go. This is generally now 42# inferred from the FILES: modules with files in dist/, ext/ and lib/ 43# are understood to have UPSTREAM 'blead', meaning that the copy of the 44# module in the blead sources is to be considered canonical, while 45# modules with files in cpan/ are understood to have UPSTREAM 'cpan', 46# meaning that the module on CPAN is to be patched first. 47 48# MAINTAINER has previously been used to indicate who the current maintainer 49# of the module is, but this is no longer stated explicitly. It is now 50# understood to be either the Perl 5 Porters if UPSTREAM is 'blead', or else 51# the CPAN author whose PAUSE user ID forms the first part of the DISTRIBUTION 52# value, e.g. 'BINGOS' in the case of 'BINGOS/Archive-Tar-2.00.tar.gz'. 53# (PAUSE's View Permissions page may be consulted to find other authors who 54# have owner or co-maint permissions for the module in question.) 55 56# FILES is a list of filenames, glob patterns, and directory 57# names to be recursed down, which collectively generate a complete list 58# of the files associated with the distribution. 59 60# BUGS is an email or url to post bug reports. For modules with 61# UPSTREAM => 'blead', use perl5-porters@perl.org. rt.cpan.org 62# appears to automatically provide a URL for CPAN modules; any value 63# given here overrides the default: 64# http://rt.cpan.org/Public/Dist/Display.html?Name=$ModuleName 65 66# DISTRIBUTION names the tarball on CPAN which (allegedly) the files 67# included in core are derived from. Note that the file's version may not 68# necessarily match the newest version on CPAN. 69 70# EXCLUDED is a list of files to be excluded from a CPAN tarball before 71# comparing the remaining contents with core. Each item can either be a 72# full pathname (eg 't/foo.t') or a pattern (e.g. qr{^t/}). 73# It defaults to the empty list. 74 75# CUSTOMIZED is a list of files that have been customized within the 76# Perl core. Use this whenever patching a cpan upstream distribution 77# or whenever we expect to have a file that differs from the tarball. 78# If the file in blead matches the file in the tarball from CPAN, 79# Porting/core-cpan-diff will warn about it, as it indicates an expected 80# customization might have been lost when updating from upstream. The 81# path should be relative to the distribution directory. If the upstream 82# distribution should be modified to incorporate the change then be sure 83# to raise a ticket for it on rt.cpan.org and add a comment alongside the 84# list of CUSTOMIZED files noting the ticket number. 85 86# DEPRECATED contains the *first* version of Perl in which the module 87# was considered deprecated. It should only be present if the module is 88# actually deprecated. Such modules should use deprecate.pm to 89# issue a warning if used. E.g.: 90# 91# use if $] >= 5.011, 'deprecate'; 92# 93 94# MAP is a hash that maps CPAN paths to their core equivalents. 95# Each key represents a string prefix, with longest prefixes checked 96# first. The first match causes that prefix to be replaced with the 97# corresponding key. For example, with the following MAP: 98# { 99# 'lib/' => 'lib/', 100# '' => 'lib/Foo/', 101# }, 102# 103# these files are mapped as shown: 104# 105# README becomes lib/Foo/README 106# lib/Foo.pm becomes lib/Foo.pm 107# 108# The default is dependent on the type of module. 109# For distributions which appear to be stored under ext/, it defaults to: 110# 111# { '' => 'ext/Foo-Bar/' } 112# 113# otherwise, it's 114# 115# { 116# 'lib/' => 'lib/', 117# '' => 'lib/Foo/Bar/', 118# } 119 120%Modules = ( 121 122 'Archive::Tar' => { 123 'DISTRIBUTION' => 'BINGOS/Archive-Tar-2.30.tar.gz', 124 'FILES' => q[cpan/Archive-Tar], 125 'BUGS' => 'bug-archive-tar@rt.cpan.org', 126 'EXCLUDED' => [ 127 qw(t/07_ptardiff.t), 128 ], 129 }, 130 131 'Attribute::Handlers' => { 132 'DISTRIBUTION' => 'RJBS/Attribute-Handlers-0.99.tar.gz', 133 'FILES' => q[dist/Attribute-Handlers], 134 }, 135 136 'autodie' => { 137 'DISTRIBUTION' => 'PJF/autodie-2.29.tar.gz', 138 'FILES' => q[cpan/autodie], 139 'EXCLUDED' => [ 140 qr{benchmarks}, 141 qr{README\.md}, 142 # All these tests depend upon external 143 # modules that don't exist when we're 144 # building the core. Hence, they can 145 # never run, and should not be merged. 146 qw( t/author-critic.t 147 t/critic.t 148 t/fork.t 149 t/kwalitee.t 150 t/lex58.t 151 t/pod-coverage.t 152 t/pod.t 153 t/release-pod-coverage.t 154 t/release-pod-syntax.t 155 t/socket.t 156 t/system.t 157 ) 158 ], 159 'CUSTOMIZED' => [ 160 # CPAN RT 105344 161 't/mkdir.t', 162 # smartmatch changes 163 'lib/autodie/exception.pm', 164 'lib/autodie/hints.pm', 165 't/exceptions.t', 166 't/lib/Hints_pod_examples.pm', 167 ], 168 }, 169 170 'AutoLoader' => { 171 'DISTRIBUTION' => 'SMUELLER/AutoLoader-5.74.tar.gz', 172 'FILES' => q[cpan/AutoLoader], 173 'EXCLUDED' => ['t/00pod.t'], 174 }, 175 176 'autouse' => { 177 'DISTRIBUTION' => 'RJBS/autouse-1.11.tar.gz', 178 'FILES' => q[dist/autouse], 179 'EXCLUDED' => [qr{^t/release-.*\.t}], 180 }, 181 182 'B::Debug' => { 183 'DISTRIBUTION' => 'RURBAN/B-Debug-1.26.tar.gz', 184 'FILES' => q[cpan/B-Debug], 185 'EXCLUDED' => ['t/pod.t'], 186 'DEPRECATED' => '5.027003', 187 }, 188 189 'base' => { 190 'DISTRIBUTION' => 'RJBS/base-2.23.tar.gz', 191 'FILES' => q[dist/base], 192 }, 193 194 'bignum' => { 195 'DISTRIBUTION' => 'PJACKLAM/bignum-0.49.tar.gz', 196 'FILES' => q[cpan/bignum], 197 'EXCLUDED' => [ 198 qr{^t/author-}, 199 qw( t/00sig.t 200 t/01load.t 201 t/02pod.t 202 t/03podcov.t 203 ), 204 ], 205 }, 206 207 'Carp' => { 208 'DISTRIBUTION' => 'RJBS/Carp-1.38.tar.gz', 209 'FILES' => q[dist/Carp], 210 }, 211 212 'Compress::Raw::Bzip2' => { 213 'DISTRIBUTION' => 'PMQS/Compress-Raw-Bzip2-2.074.tar.gz', 214 'FILES' => q[cpan/Compress-Raw-Bzip2], 215 'EXCLUDED' => [ 216 qr{^t/Test/}, 217 'bzip2-src/bzip2-const.patch', 218 'bzip2-src/bzip2-cpp.patch', 219 'bzip2-src/bzip2-unsigned.patch', 220 ], 221 }, 222 223 'Compress::Raw::Zlib' => { 224 'DISTRIBUTION' => 'PMQS/Compress-Raw-Zlib-2.076.tar.gz', 225 226 'FILES' => q[cpan/Compress-Raw-Zlib], 227 'EXCLUDED' => [ 228 qr{^examples/}, 229 qr{^t/Test/}, 230 qw( t/000prereq.t 231 t/99pod.t 232 ), 233 ], 234 }, 235 236 'Config::Perl::V' => { 237 'DISTRIBUTION' => 'HMBRAND/Config-Perl-V-0.29.tgz', 238 'FILES' => q[cpan/Config-Perl-V], 239 'EXCLUDED' => [qw( 240 examples/show-v.pl 241 )], 242 }, 243 244 'constant' => { 245 'DISTRIBUTION' => 'RJBS/constant-1.33.tar.gz', 246 'FILES' => q[dist/constant], 247 'EXCLUDED' => [ 248 qw( t/00-load.t 249 t/more-tests.t 250 t/pod-coverage.t 251 t/pod.t 252 eg/synopsis.pl 253 ), 254 ], 255 }, 256 257 'CPAN' => { 258 'DISTRIBUTION' => 'ANDK/CPAN-2.20-TRIAL.tar.gz', 259 'FILES' => q[cpan/CPAN], 260 'EXCLUDED' => [ 261 qr{^distroprefs/}, 262 qr{^inc/Test/}, 263 qr{^t/CPAN/}, 264 qr{^t/data/}, 265 qr{^t/97-}, 266 qw( lib/CPAN/Admin.pm 267 scripts/cpan-mirrors 268 PAUSE2015.pub 269 PAUSE2019.pub 270 SlayMakefile 271 t/00signature.t 272 t/04clean_load.t 273 t/12cpan.t 274 t/13tarzip.t 275 t/14forkbomb.t 276 t/30shell.coverage 277 t/30shell.t 278 t/31sessions.t 279 t/41distribution.t 280 t/42distroprefs.t 281 t/43distroprefspref.t 282 t/44cpanmeta.t 283 t/50pod.t 284 t/51pod.t 285 t/52podcover.t 286 t/60credentials.t 287 t/70_critic.t 288 t/71_minimumversion.t 289 t/local_utils.pm 290 t/perlcriticrc 291 t/yaml_code.yml 292 ), 293 ], 294 }, 295 296 # Note: When updating CPAN-Meta the META.* files will need to be regenerated 297 # perl -Icpan/CPAN-Meta/lib Porting/makemeta 298 'CPAN::Meta' => { 299 'DISTRIBUTION' => 'DAGOLDEN/CPAN-Meta-2.150010.tar.gz', 300 'FILES' => q[cpan/CPAN-Meta], 301 'EXCLUDED' => [ 302 qw[t/00-report-prereqs.t 303 t/00-report-prereqs.dd 304 ], 305 qr{^xt}, 306 qr{^history}, 307 ], 308 }, 309 310 'CPAN::Meta::Requirements' => { 311 'DISTRIBUTION' => 'DAGOLDEN/CPAN-Meta-Requirements-2.140.tar.gz', 312 'FILES' => q[cpan/CPAN-Meta-Requirements], 313 'EXCLUDED' => [ 314 qw(t/00-report-prereqs.t), 315 qw(t/00-report-prereqs.dd), 316 qw(t/version-cleanup.t), 317 qr{^xt}, 318 ], 319 }, 320 321 'CPAN::Meta::YAML' => { 322 'DISTRIBUTION' => 'DAGOLDEN/CPAN-Meta-YAML-0.018.tar.gz', 323 'FILES' => q[cpan/CPAN-Meta-YAML], 324 'EXCLUDED' => [ 325 't/00-report-prereqs.t', 326 't/00-report-prereqs.dd', 327 qr{^xt}, 328 ], 329 }, 330 331 'Data::Dumper' => { 332 'DISTRIBUTION' => 'SMUELLER/Data-Dumper-2.161.tar.gz', 333 'FILES' => q[dist/Data-Dumper], 334 }, 335 336 'DB_File' => { 337 'DISTRIBUTION' => 'PMQS/DB_File-1.840.tar.gz', 338 'FILES' => q[cpan/DB_File], 339 'EXCLUDED' => [ 340 qr{^patches/}, 341 qw( t/pod.t 342 fallback.h 343 fallback.xs 344 ), 345 ], 346 }, 347 348 'Devel::PPPort' => { 349 'DISTRIBUTION' => 'WOLFSAGE/Devel-PPPort-3.36.tar.gz', 350 'FILES' => q[dist/Devel-PPPort], 351 'EXCLUDED' => [ 352 'PPPort.pm', # we use PPPort_pm.PL instead 353 ], 354 'CUSTOMIZED' => [ qw[ parts/embed.fnc ] ], 355 }, 356 357 'Devel::SelfStubber' => { 358 'DISTRIBUTION' => 'FLORA/Devel-SelfStubber-1.05.tar.gz', 359 'FILES' => q[dist/Devel-SelfStubber], 360 'EXCLUDED' => [qr{^t/release-.*\.t}], 361 }, 362 363 'Digest' => { 364 'DISTRIBUTION' => 'GAAS/Digest-1.17.tar.gz', 365 'FILES' => q[cpan/Digest], 366 'EXCLUDED' => ['digest-bench'], 367 'CUSTOMIZED' => [ 368 # CVE-2016-1238 369 qw( Digest.pm ) 370 ], 371 }, 372 373 'Digest::MD5' => { 374 'DISTRIBUTION' => 'GAAS/Digest-MD5-2.55.tar.gz', 375 'FILES' => q[cpan/Digest-MD5], 376 'EXCLUDED' => ['rfc1321.txt'], 377 }, 378 379 'Digest::SHA' => { 380 'DISTRIBUTION' => 'MSHELOR/Digest-SHA-6.01.tar.gz', 381 'FILES' => q[cpan/Digest-SHA], 382 'EXCLUDED' => [ 383 qw( t/pod.t 384 t/podcover.t 385 examples/dups 386 ), 387 ], 388 }, 389 390 'Dumpvalue' => { 391 'DISTRIBUTION' => 'FLORA/Dumpvalue-1.17.tar.gz', 392 'FILES' => q[dist/Dumpvalue], 393 'EXCLUDED' => [qr{^t/release-.*\.t}], 394 }, 395 396 'Encode' => { 397 'DISTRIBUTION' => 'DANKOGAI/Encode-2.97.tar.gz', 398 'FILES' => q[cpan/Encode], 399 'CUSTOMIZED' => [ 400 # TODO test passes on blead 401 't/truncated_utf8.t', 402 ], 403 }, 404 405 'encoding::warnings' => { 406 'DISTRIBUTION' => 'AUDREYT/encoding-warnings-0.11.tar.gz', 407 'FILES' => q[dist/encoding-warnings], 408 'EXCLUDED' => [ 409 qr{^inc/Module/}, 410 qw(t/0-signature.t), 411 ], 412 }, 413 414 'Env' => { 415 'DISTRIBUTION' => 'FLORA/Env-1.04.tar.gz', 416 'FILES' => q[dist/Env], 417 'EXCLUDED' => [qr{^t/release-.*\.t}], 418 }, 419 420 'experimental' => { 421 'DISTRIBUTION' => 'LEONT/experimental-0.019.tar.gz', 422 'FILES' => q[cpan/experimental], 423 'EXCLUDED' => [ 424 qr{^xt/}, 425 qr{nytprof.*} 426 ], 427 'EXCLUDED' => [qr{^xt/}], 428 'CUSTOMIZED' => [ 429 # smartmatch changes 430 't/basic.t', 431 ], 432 }, 433 434 'Exporter' => { 435 'DISTRIBUTION' => 'TODDR/Exporter-5.72.tar.gz', 436 'FILES' => q[dist/Exporter], 437 'EXCLUDED' => [ 438 qw( t/pod.t 439 t/use.t 440 ), 441 ], 442 }, 443 444 'ExtUtils::CBuilder' => { 445 'DISTRIBUTION' => 'AMBS/ExtUtils-CBuilder-0.280230.tar.gz', 446 'FILES' => q[dist/ExtUtils-CBuilder], 447 'EXCLUDED' => [ 448 qw(README.mkdn), 449 qr{^xt}, 450 ], 451 }, 452 453 'ExtUtils::Constant' => { 454 455 'DISTRIBUTION' => 'NWCLARK/ExtUtils-Constant-0.24.tar.gz', 456 'FILES' => q[cpan/ExtUtils-Constant], 457 'EXCLUDED' => [ 458 qw( lib/ExtUtils/Constant/Aaargh56Hash.pm 459 examples/perl_keyword.pl 460 examples/perl_regcomp_posix_keyword.pl 461 ), 462 ], 463 }, 464 465 'ExtUtils::Install' => { 466 'DISTRIBUTION' => 'BINGOS/ExtUtils-Install-2.14.tar.gz', 467 'FILES' => q[cpan/ExtUtils-Install], 468 'EXCLUDED' => [ 469 qw( t/lib/Test/Builder.pm 470 t/lib/Test/Builder/Module.pm 471 t/lib/Test/More.pm 472 t/lib/Test/Simple.pm 473 t/pod-coverage.t 474 t/pod.t 475 ), 476 ], 477 }, 478 479 'ExtUtils::MakeMaker' => { 480 'DISTRIBUTION' => 'BINGOS/ExtUtils-MakeMaker-7.34.tar.gz', 481 'FILES' => q[cpan/ExtUtils-MakeMaker], 482 'EXCLUDED' => [ 483 qr{^t/lib/Test/}, 484 qr{^(bundled|my)/}, 485 qr{^t/Liblist_Kid.t}, 486 qr{^t/liblist/}, 487 qr{^\.perlcriticrc}, 488 'PATCHING', 489 'README.packaging', 490 'lib/ExtUtils/MakeMaker/version/vpp.pm', 491 ], 492 }, 493 494 'ExtUtils::Manifest' => { 495 'DISTRIBUTION' => 'ETHER/ExtUtils-Manifest-1.70.tar.gz', 496 'FILES' => q[cpan/ExtUtils-Manifest], 497 'EXCLUDED' => [ 498 qr(^t/00-report-prereqs), 499 qr(^xt/) 500 ], 501 }, 502 503 'ExtUtils::ParseXS' => { 504 'DISTRIBUTION' => 'SMUELLER/ExtUtils-ParseXS-3.35.tar.gz', 505 'FILES' => q[dist/ExtUtils-ParseXS], 506 }, 507 508 'File::Fetch' => { 509 'DISTRIBUTION' => 'BINGOS/File-Fetch-0.56.tar.gz', 510 'FILES' => q[cpan/File-Fetch], 511 }, 512 513 'File::Path' => { 514 'DISTRIBUTION' => 'JKEENAN/File-Path-2.15.tar.gz', 515 'FILES' => q[cpan/File-Path], 516 'EXCLUDED' => [ 517 qw(t/Path-Class.t), 518 qr{^xt/}, 519 ], 520 }, 521 522 'File::Temp' => { 523 'DISTRIBUTION' => 'DAGOLDEN/File-Temp-0.2304.tar.gz', 524 'FILES' => q[cpan/File-Temp], 525 'EXCLUDED' => [ 526 qw( misc/benchmark.pl 527 misc/results.txt 528 ), 529 qw[t/00-report-prereqs.t], 530 qr{^xt}, 531 ], 532 }, 533 534 'Filter::Simple' => { 535 'DISTRIBUTION' => 'SMUELLER/Filter-Simple-0.94.tar.gz', 536 'FILES' => q[dist/Filter-Simple], 537 'EXCLUDED' => [ 538 qr{^demo/} 539 ], 540 }, 541 542 'Filter::Util::Call' => { 543 'DISTRIBUTION' => 'RURBAN/Filter-1.58.tar.gz', 544 'FILES' => q[cpan/Filter-Util-Call 545 pod/perlfilter.pod 546 ], 547 'EXCLUDED' => [ 548 qr{^decrypt/}, 549 qr{^examples/}, 550 qr{^Exec/}, 551 qr{^lib/Filter/}, 552 qr{^tee/}, 553 qw( Call/Makefile.PL 554 Call/ppport.h 555 Call/typemap 556 mytest 557 t/cpp.t 558 t/decrypt.t 559 t/exec.t 560 t/order.t 561 t/sh.t 562 t/tee.t 563 t/z_kwalitee.t 564 t/z_manifest.t 565 t/z_meta.t 566 t/z_perl_minimum_version.t 567 t/z_pod-coverage.t 568 t/z_pod.t 569 ), 570 ], 571 'MAP' => { 572 'Call/' => 'cpan/Filter-Util-Call/', 573 't/filter-util.pl' => 'cpan/Filter-Util-Call/filter-util.pl', 574 'perlfilter.pod' => 'pod/perlfilter.pod', 575 '' => 'cpan/Filter-Util-Call/', 576 }, 577 }, 578 579 'Getopt::Long' => { 580 'DISTRIBUTION' => 'JV/Getopt-Long-2.50.tar.gz', 581 'FILES' => q[cpan/Getopt-Long], 582 'EXCLUDED' => [ 583 qr{^examples/}, 584 qw( perl-Getopt-Long.spec 585 lib/newgetopt.pl 586 t/gol-compat.t 587 ), 588 ], 589 }, 590 591 'HTTP::Tiny' => { 592 'DISTRIBUTION' => 'DAGOLDEN/HTTP-Tiny-0.070.tar.gz', 593 'FILES' => q[cpan/HTTP-Tiny], 594 'EXCLUDED' => [ 595 't/00-report-prereqs.t', 596 't/00-report-prereqs.dd', 597 't/200_live.t', 598 't/200_live_local_ip.t', 599 't/210_live_ssl.t', 600 qr/^eg/, 601 qr/^xt/ 602 ], 603 }, 604 605 'I18N::Collate' => { 606 'DISTRIBUTION' => 'FLORA/I18N-Collate-1.02.tar.gz', 607 'FILES' => q[dist/I18N-Collate], 608 'EXCLUDED' => [qr{^t/release-.*\.t}], 609 }, 610 611 'I18N::LangTags' => { 612 'FILES' => q[dist/I18N-LangTags], 613 }, 614 615 'if' => { 616 'DISTRIBUTION' => 'XSAWYERX/if-0.0608.tar.gz', 617 'FILES' => q[dist/if], 618 }, 619 620 'IO' => { 621 'DISTRIBUTION' => 'GBARR/IO-1.25.tar.gz', 622 'FILES' => q[dist/IO/], 623 'EXCLUDED' => ['t/test.pl'], 624 }, 625 626 'IO-Compress' => { 627 'DISTRIBUTION' => 'PMQS/IO-Compress-2.074.tar.gz', 628 'FILES' => q[cpan/IO-Compress], 629 'EXCLUDED' => [ 630 qr{^examples/}, 631 qr{^t/Test/}, 632 't/010examples-bzip2.t', 633 't/010examples-zlib.t', 634 't/cz-05examples.t', 635 ], 636 }, 637 638 'IO::Socket::IP' => { 639 'DISTRIBUTION' => 'PEVANS/IO-Socket-IP-0.39.tar.gz', 640 'FILES' => q[cpan/IO-Socket-IP], 641 'EXCLUDED' => [ 642 qr{^examples/}, 643 ], 644 }, 645 646 'IO::Zlib' => { 647 'DISTRIBUTION' => 'TOMHUGHES/IO-Zlib-1.10.tar.gz', 648 'FILES' => q[cpan/IO-Zlib], 649 }, 650 651 'IPC::Cmd' => { 652 'DISTRIBUTION' => 'BINGOS/IPC-Cmd-1.00.tar.gz', 653 'FILES' => q[cpan/IPC-Cmd], 654 }, 655 656 'IPC::SysV' => { 657 'DISTRIBUTION' => 'MHX/IPC-SysV-2.07.tar.gz', 658 'FILES' => q[cpan/IPC-SysV], 659 'EXCLUDED' => [ 660 qw( const-c.inc 661 const-xs.inc 662 ), 663 ], 664 }, 665 666 'JSON::PP' => { 667 'DISTRIBUTION' => 'ISHIGAKI/JSON-PP-2.97001.tar.gz', 668 'FILES' => q[cpan/JSON-PP], 669 }, 670 671 'lib' => { 672 'DISTRIBUTION' => 'SMUELLER/lib-0.63.tar.gz', 673 'FILES' => q[dist/lib/], 674 'EXCLUDED' => [ 675 qw( forPAUSE/lib.pm 676 t/00pod.t 677 ), 678 ], 679 }, 680 681 'libnet' => { 682 'DISTRIBUTION' => 'SHAY/libnet-3.11.tar.gz', 683 'FILES' => q[cpan/libnet], 684 'EXCLUDED' => [ 685 qw( Configure 686 t/changes.t 687 t/critic.t 688 t/pod.t 689 t/pod_coverage.t 690 ), 691 qr(^demos/), 692 qr(^t/external/), 693 ], 694 }, 695 696 'Locale-Codes' => { 697 'DISTRIBUTION' => 'SBECK/Locale-Codes-3.56.tar.gz', 698 'FILES' => q[cpan/Locale-Codes], 699 'EXCLUDED' => [ 700 qw( README.first 701 t/pod_coverage.ign 702 t/pod_coverage.t 703 t/pod.t), 704 qr{^t/runtests}, 705 qr{^t/runtests\.bat}, 706 qr{^internal/}, 707 qr{^examples/}, 708 ], 709 }, 710 711 'Locale::Maketext' => { 712 'DISTRIBUTION' => 'TODDR/Locale-Maketext-1.28.tar.gz', 713 'FILES' => q[dist/Locale-Maketext], 714 'EXCLUDED' => [ 715 qw( 716 perlcriticrc 717 t/00_load.t 718 t/pod.t 719 ), 720 ], 721 }, 722 723 'Locale::Maketext::Simple' => { 724 'DISTRIBUTION' => 'JESSE/Locale-Maketext-Simple-0.21.tar.gz', 725 'FILES' => q[cpan/Locale-Maketext-Simple], 726 'CUSTOMIZED' => [ 727 # CVE-2016-1238 728 qw( lib/Locale/Maketext/Simple.pm ) 729 ], 730 }, 731 732 'Math::BigInt' => { 733 'DISTRIBUTION' => 'PJACKLAM/Math-BigInt-1.999811.tar.gz', 734 'FILES' => q[cpan/Math-BigInt], 735 'EXCLUDED' => [ 736 qr{^examples/}, 737 qr{^t/author-}, 738 qw( t/00sig.t 739 t/01load.t 740 t/02pod.t 741 t/03podcov.t 742 ), 743 ], 744 }, 745 746 'Math::BigInt::FastCalc' => { 747 'DISTRIBUTION' => 'PJACKLAM/Math-BigInt-FastCalc-0.5006.tar.gz', 748 'FILES' => q[cpan/Math-BigInt-FastCalc], 749 'EXCLUDED' => [ 750 qr{^t/author-}, 751 qr{^t/Math/BigInt/Lib/TestUtil.pm}, 752 qw( t/00sig.t 753 t/01load.t 754 t/02pod.t 755 t/03podcov.t 756 ), 757 758 # instead we use the versions of these test 759 # files that come with Math::BigInt: 760 qw( t/bigfltpm.inc 761 t/bigfltpm.t 762 t/bigintpm.inc 763 t/bigintpm.t 764 t/mbimbf.inc 765 t/mbimbf.t 766 ), 767 ], 768 }, 769 770 'Math::BigRat' => { 771 'DISTRIBUTION' => 'PJACKLAM/Math-BigRat-0.2613.tar.gz', 772 'FILES' => q[cpan/Math-BigRat], 773 'EXCLUDED' => [ 774 qr{^t/author-}, 775 qw( t/00sig.t 776 t/01load.t 777 t/02pod.t 778 t/03podcov.t 779 ), 780 ], 781 }, 782 783 'Math::Complex' => { 784 'DISTRIBUTION' => 'ZEFRAM/Math-Complex-1.59.tar.gz', 785 'FILES' => q[cpan/Math-Complex], 786 'CUSTOMIZED' => [ 787 'lib/Math/Complex.pm', # CPAN RT 118467 788 't/Complex.t', # CPAN RT 118467 789 't/Trig.t', # CPAN RT 118467 790 ], 791 'EXCLUDED' => [ 792 qw( t/pod.t 793 t/pod-coverage.t 794 ), 795 ], 796 }, 797 798 'Memoize' => { 799 'DISTRIBUTION' => 'MJD/Memoize-1.03.tgz', 800 'FILES' => q[cpan/Memoize], 801 'EXCLUDED' => ['article.html'], 802 'CUSTOMIZED' => [ 803 # CVE-2016-1238 804 qw( Memoize.pm ) 805 ], 806 }, 807 808 'MIME::Base64' => { 809 'DISTRIBUTION' => 'GAAS/MIME-Base64-3.15.tar.gz', 810 'FILES' => q[cpan/MIME-Base64], 811 'EXCLUDED' => ['t/bad-sv.t'], 812 }, 813 814 'Module::CoreList' => { 815 'DISTRIBUTION' => 'BINGOS/Module-CoreList-5.20180420.tar.gz', 816 'FILES' => q[dist/Module-CoreList], 817 }, 818 819 'Module::Load' => { 820 'DISTRIBUTION' => 'BINGOS/Module-Load-0.32.tar.gz', 821 'FILES' => q[cpan/Module-Load], 822 }, 823 824 'Module::Load::Conditional' => { 825 'DISTRIBUTION' => 'BINGOS/Module-Load-Conditional-0.68.tar.gz', 826 'FILES' => q[cpan/Module-Load-Conditional], 827 }, 828 829 'Module::Loaded' => { 830 'DISTRIBUTION' => 'BINGOS/Module-Loaded-0.08.tar.gz', 831 'FILES' => q[cpan/Module-Loaded], 832 }, 833 834 'Module::Metadata' => { 835 'DISTRIBUTION' => 'ETHER/Module-Metadata-1.000033.tar.gz', 836 'FILES' => q[cpan/Module-Metadata], 837 'EXCLUDED' => [ 838 qw(t/00-report-prereqs.t), 839 qw(t/00-report-prereqs.dd), 840 qr{weaver.ini}, 841 qr{^xt}, 842 ], 843 }, 844 845 'Net::Ping' => { 846 'DISTRIBUTION' => 'RURBAN/Net-Ping-2.61.tar.gz', 847 'FILES' => q[dist/Net-Ping], 848 'EXCLUDED' => [ 849 qw(README.md.PL), 850 qw(t/020_external.t), 851 qw(t/600_pod.t), 852 qw(t/601_pod-coverage.t), 853 ], 854 'CUSTOMIZED' => [ 855 qw( t/000_load.t 856 t/001_new.t 857 t/500_ping_icmp.t), 858 ], 859 860 }, 861 862 'NEXT' => { 863 'DISTRIBUTION' => 'NEILB/NEXT-0.67.tar.gz', 864 'FILES' => q[cpan/NEXT], 865 'EXCLUDED' => [qr{^demo/}], 866 'CUSTOMIZED' => [ qw(lib/NEXT.pm t/next.t) ], 867 }, 868 869 'Params::Check' => { 870 'DISTRIBUTION' => 'BINGOS/Params-Check-0.38.tar.gz', 871 'FILES' => q[cpan/Params-Check], 872 }, 873 874 'parent' => { 875 'DISTRIBUTION' => 'CORION/parent-0.236.tar.gz', 876 'FILES' => q[cpan/parent], 877 'EXCLUDED' => [ 878 qr{^xt} 879 ], 880 }, 881 882 'PathTools' => { 883 'DISTRIBUTION' => 'XSAWYERX/PathTools-3.74.tar.gz', 884 'FILES' => q[dist/PathTools], 885 'EXCLUDED' => [ 886 qr{^t/lib/Test/}, 887 qw( t/rel2abs_vs_symlink.t), 888 ], 889 }, 890 891 'Perl::OSType' => { 892 'DISTRIBUTION' => 'DAGOLDEN/Perl-OSType-1.010.tar.gz', 893 'FILES' => q[cpan/Perl-OSType], 894 'EXCLUDED' => [qw(tidyall.ini), qr/^xt/, qr{^t/00-}], 895 }, 896 897 'perlfaq' => { 898 'DISTRIBUTION' => 'LLAP/perlfaq-5.021011.tar.gz', 899 'FILES' => q[cpan/perlfaq], 900 'EXCLUDED' => [ 901 qw( inc/CreateQuestionList.pm 902 inc/perlfaq.tt 903 t/00-compile.t), 904 qr{^xt/}, 905 ], 906 907 'CUSTOMIZED' => [ qw[ lib/perlfaq5.pod lib/perlfaq8.pod ] ], 908 }, 909 910 'PerlIO::via::QuotedPrint' => { 911 'DISTRIBUTION' => 'SHAY/PerlIO-via-QuotedPrint-0.08.tar.gz', 912 'FILES' => q[cpan/PerlIO-via-QuotedPrint], 913 }, 914 915 'Pod::Checker' => { 916 'DISTRIBUTION' => 'MAREKR/Pod-Checker-1.73.tar.gz', 917 'FILES' => q[cpan/Pod-Checker], 918 'CUSTOMIZED' => [ qw[ 919 t/pod/contains_bad_pod.xr 920 t/pod/selfcheck.t 921 t/pod/testcmp.pl 922 t/pod/testpchk.pl 923 ] ], 924 }, 925 926 'Pod::Escapes' => { 927 'DISTRIBUTION' => 'NEILB/Pod-Escapes-1.07.tar.gz', 928 'FILES' => q[cpan/Pod-Escapes], 929 }, 930 931 'Pod::Parser' => { 932 'DISTRIBUTION' => 'MAREKR/Pod-Parser-1.63.tar.gz', 933 'FILES' => q[cpan/Pod-Parser], 934 }, 935 936 'Pod::Perldoc' => { 937 'DISTRIBUTION' => 'MALLEN/Pod-Perldoc-3.28.tar.gz', 938 'FILES' => q[cpan/Pod-Perldoc], 939 940 # Note that we use the CPAN-provided Makefile.PL, since it 941 # contains special handling of the installation of perldoc.pod 942 943 'EXCLUDED' => [ 944 # In blead, the perldoc executable is generated by perldoc.PL 945 # instead 946 # XXX We can and should fix this, but clean up the DRY-failure in 947 # utils first 948 'perldoc', 949 950 # https://rt.cpan.org/Ticket/Display.html?id=116827 951 't/02_module_pod_output.t' 952 ], 953 954 'CUSTOMIZED' => [ 955 # [rt.cpan.org #88204], [rt.cpan.org #120229] 956 'lib/Pod/Perldoc.pm', 957 ], 958 }, 959 960 'Pod::Simple' => { 961 'DISTRIBUTION' => 'KHW/Pod-Simple-3.35.tar.gz', 962 'FILES' => q[cpan/Pod-Simple], 963 }, 964 965 'Pod::Usage' => { 966 'DISTRIBUTION' => 'MAREKR/Pod-Usage-1.69.tar.gz', 967 'FILES' => q[cpan/Pod-Usage], 968 }, 969 970 'podlators' => { 971 'DISTRIBUTION' => 'RRA/podlators-4.10.tar.gz', 972 'FILES' => q[cpan/podlators pod/perlpodstyle.pod], 973 'EXCLUDED' => [ 974 qr{^docs/metadata/}, 975 ], 976 977 'MAP' => { 978 '' => 'cpan/podlators/', 979 # this file lives outside the cpan/ directory 980 'pod/perlpodstyle.pod' => 'pod/perlpodstyle.pod', 981 }, 982 983 'CUSTOMIZED' => [ qw[ pod/perlpodstyle.pod ] ], 984 }, 985 986 'Safe' => { 987 'DISTRIBUTION' => 'RGARCIA/Safe-2.35.tar.gz', 988 'FILES' => q[dist/Safe], 989 }, 990 991 'Scalar::Util' => { 992 'DISTRIBUTION' => 'PEVANS/Scalar-List-Utils-1.50.tar.gz', 993 'FILES' => q[cpan/Scalar-List-Utils], 994 }, 995 996 'Search::Dict' => { 997 'DISTRIBUTION' => 'DAGOLDEN/Search-Dict-1.07.tar.gz', 998 'FILES' => q[dist/Search-Dict], 999 }, 1000 1001 'SelfLoader' => { 1002 'DISTRIBUTION' => 'SMUELLER/SelfLoader-1.24.tar.gz', 1003 'FILES' => q[dist/SelfLoader], 1004 'EXCLUDED' => ['t/00pod.t'], 1005 }, 1006 1007 'Socket' => { 1008 'DISTRIBUTION' => 'PEVANS/Socket-2.027.tar.gz', 1009 'FILES' => q[cpan/Socket], 1010 }, 1011 1012 'Storable' => { 1013 'DISTRIBUTION' => 'AMS/Storable-2.51.tar.gz', 1014 'FILES' => q[dist/Storable], 1015 'EXCLUDED' => [ 1016 qr{^t/compat/}, 1017 ], 1018 }, 1019 1020 'Sys::Syslog' => { 1021 'DISTRIBUTION' => 'SAPER/Sys-Syslog-0.35.tar.gz', 1022 'FILES' => q[cpan/Sys-Syslog], 1023 'EXCLUDED' => [ 1024 qr{^eg/}, 1025 qw( README.win32 1026 t/data-validation.t 1027 t/distchk.t 1028 t/pod.t 1029 t/podcover.t 1030 t/podspell.t 1031 t/portfs.t 1032 win32/PerlLog.RES 1033 ), 1034 ], 1035 }, 1036 1037 'Term::ANSIColor' => { 1038 'DISTRIBUTION' => 'RRA/Term-ANSIColor-4.06.tar.gz', 1039 'FILES' => q[cpan/Term-ANSIColor], 1040 'EXCLUDED' => [ 1041 qr{^docs/}, 1042 qr{^examples/}, 1043 qr{^t/data/}, 1044 qr{^t/docs/}, 1045 qr{^t/style/}, 1046 qw( t/module/aliases-env.t ), 1047 ], 1048 }, 1049 1050 'Term::Cap' => { 1051 'DISTRIBUTION' => 'JSTOWE/Term-Cap-1.17.tar.gz', 1052 'FILES' => q[cpan/Term-Cap], 1053 }, 1054 1055 'Term::Complete' => { 1056 'DISTRIBUTION' => 'FLORA/Term-Complete-1.402.tar.gz', 1057 'FILES' => q[dist/Term-Complete], 1058 'EXCLUDED' => [qr{^t/release-.*\.t}], 1059 }, 1060 1061 'Term::ReadLine' => { 1062 'DISTRIBUTION' => 'FLORA/Term-ReadLine-1.14.tar.gz', 1063 'FILES' => q[dist/Term-ReadLine], 1064 'EXCLUDED' => [qr{^t/release-.*\.t}], 1065 }, 1066 1067 'Test' => { 1068 'DISTRIBUTION' => 'JESSE/Test-1.26.tar.gz', 1069 'FILES' => q[dist/Test], 1070 }, 1071 1072 'Test::Harness' => { 1073 'DISTRIBUTION' => 'LEONT/Test-Harness-3.42.tar.gz', 1074 'FILES' => q[cpan/Test-Harness], 1075 'EXCLUDED' => [ 1076 qr{^examples/}, 1077 qr{^xt/}, 1078 qw( Changes-2.64 1079 MANIFEST.CUMMULATIVE 1080 HACKING.pod 1081 perlcriticrc 1082 t/000-load.t 1083 t/lib/if.pm 1084 ), 1085 ], 1086 }, 1087 1088 'Test::Simple' => { 1089 'DISTRIBUTION' => 'EXODIST/Test-Simple-1.302133.tar.gz', 1090 'FILES' => q[cpan/Test-Simple], 1091 'EXCLUDED' => [ 1092 qr{^examples/}, 1093 qr{^xt/}, 1094 qw( appveyor.yml 1095 t/00compile.t 1096 t/00-report.t 1097 t/zzz-check-breaks.t 1098 ), 1099 ], 1100 }, 1101 1102 'Text::Abbrev' => { 1103 'DISTRIBUTION' => 'FLORA/Text-Abbrev-1.02.tar.gz', 1104 'FILES' => q[dist/Text-Abbrev], 1105 'EXCLUDED' => [qr{^t/release-.*\.t}], 1106 }, 1107 1108 'Text::Balanced' => { 1109 'DISTRIBUTION' => 'SHAY/Text-Balanced-2.03.tar.gz', 1110 'FILES' => q[cpan/Text-Balanced], 1111 'EXCLUDED' => [ 1112 qw( t/97_meta.t 1113 t/98_pod.t 1114 t/99_pmv.t 1115 ), 1116 ], 1117 }, 1118 1119 'Text::ParseWords' => { 1120 'DISTRIBUTION' => 'CHORNY/Text-ParseWords-3.30.tar.gz', 1121 'FILES' => q[cpan/Text-ParseWords], 1122 }, 1123 1124 'Text-Tabs+Wrap' => { 1125 'DISTRIBUTION' => 'MUIR/modules/Text-Tabs+Wrap-2013.0523.tar.gz', 1126 'FILES' => q[cpan/Text-Tabs], 1127 'EXCLUDED' => [ 1128 qr/^lib\.old/, 1129 't/dnsparks.t', # see af6492bf9e 1130 ], 1131 'MAP' => { 1132 '' => 'cpan/Text-Tabs/', 1133 'lib.modern/Text/Tabs.pm' => 'cpan/Text-Tabs/lib/Text/Tabs.pm', 1134 'lib.modern/Text/Wrap.pm' => 'cpan/Text-Tabs/lib/Text/Wrap.pm', 1135 }, 1136 }, 1137 1138 # Jerry Hedden does take patches that are applied to blead first, even 1139 # though that can be hard to discern from the Git history; so it's 1140 # correct for this (and Thread::Semaphore, threads, and threads::shared) 1141 # to be under dist/ rather than cpan/ 1142 'Thread::Queue' => { 1143 'DISTRIBUTION' => 'JDHEDDEN/Thread-Queue-3.12.tar.gz', 1144 'FILES' => q[dist/Thread-Queue], 1145 'EXCLUDED' => [ 1146 qr{^examples/}, 1147 qw( t/00_load.t 1148 t/99_pod.t 1149 t/test.pl 1150 ), 1151 ], 1152 }, 1153 1154 'Thread::Semaphore' => { 1155 'DISTRIBUTION' => 'JDHEDDEN/Thread-Semaphore-2.13.tar.gz', 1156 'FILES' => q[dist/Thread-Semaphore], 1157 'EXCLUDED' => [ 1158 qw( examples/semaphore.pl 1159 t/00_load.t 1160 t/99_pod.t 1161 t/test.pl 1162 ), 1163 ], 1164 }, 1165 1166 'threads' => { 1167 'DISTRIBUTION' => 'JDHEDDEN/threads-2.21.tar.gz', 1168 'FILES' => q[dist/threads], 1169 'EXCLUDED' => [ 1170 qr{^examples/}, 1171 qw( t/pod.t 1172 t/test.pl 1173 threads.h 1174 ), 1175 ], 1176 }, 1177 1178 'threads::shared' => { 1179 'DISTRIBUTION' => 'JDHEDDEN/threads-shared-1.58.tar.gz', 1180 'FILES' => q[dist/threads-shared], 1181 'EXCLUDED' => [ 1182 qw( examples/class.pl 1183 shared.h 1184 t/pod.t 1185 t/test.pl 1186 ), 1187 ], 1188 }, 1189 1190 'Tie::File' => { 1191 'DISTRIBUTION' => 'TODDR/Tie-File-1.00.tar.gz', 1192 'FILES' => q[dist/Tie-File], 1193 }, 1194 1195 'Tie::RefHash' => { 1196 'DISTRIBUTION' => 'FLORA/Tie-RefHash-1.39.tar.gz', 1197 'FILES' => q[cpan/Tie-RefHash], 1198 }, 1199 1200 'Time::HiRes' => { 1201 'DISTRIBUTION' => 'JHI/Time-HiRes-1.9759.tar.gz', 1202 'FILES' => q[dist/Time-HiRes], 1203 }, 1204 1205 'Time::Local' => { 1206 'DISTRIBUTION' => 'DROLSKY/Time-Local-1.25.tar.gz', 1207 'FILES' => q[cpan/Time-Local], 1208 'EXCLUDED' => [ 1209 qr{^xt/}, 1210 qw( perlcriticrc 1211 perltidyrc 1212 tidyall.ini 1213 t/00-report-prereqs.t 1214 t/00-report-prereqs.dd 1215 ), 1216 ], 1217 }, 1218 1219 'Time::Piece' => { 1220 'DISTRIBUTION' => 'ESAYM/Time-Piece-1.3204.tar.gz', 1221 'FILES' => q[cpan/Time-Piece], 1222 'EXCLUDED' => [ qw[reverse_deps.txt] ], 1223 }, 1224 1225 'Unicode::Collate' => { 1226 'DISTRIBUTION' => 'SADAHIRO/Unicode-Collate-1.25.tar.gz', 1227 'FILES' => q[cpan/Unicode-Collate], 1228 'EXCLUDED' => [ 1229 qr{N$}, 1230 qr{^data/}, 1231 qr{^gendata/}, 1232 qw( disableXS 1233 enableXS 1234 mklocale 1235 ), 1236 ], 1237 }, 1238 1239 'Unicode::Normalize' => { 1240 'DISTRIBUTION' => 'KHW/Unicode-Normalize-1.25.tar.gz', 1241 'FILES' => q[dist/Unicode-Normalize], 1242 'EXCLUDED' => [ 1243 qw( MANIFEST.N 1244 Normalize.pmN 1245 disableXS 1246 enableXS 1247 ), 1248 ], 1249 }, 1250 1251 'version' => { 1252 'DISTRIBUTION' => 'JPEACOCK/version-0.9918.tar.gz', 1253 'FILES' => q[cpan/version vutil.c vutil.h vxs.inc], 1254 'EXCLUDED' => [ 1255 qr{^vutil/lib/}, 1256 'vutil/Makefile.PL', 1257 'vutil/ppport.h', 1258 'vutil/vxs.xs', 1259 't/00impl-pp.t', 1260 't/survey_locales', 1261 'vperl/vpp.pm', 1262 ], 1263 1264 # When adding the CPAN-distributed files for version.pm, it is necessary 1265 # to delete an entire block out of lib/version.pm, since that code is 1266 # only necessary with the CPAN release. 1267 'CUSTOMIZED' => [ 1268 qw( lib/version.pm 1269 vxs.inc 1270 ), 1271 ], 1272 1273 'MAP' => { 1274 'vutil/' => '', 1275 '' => 'cpan/version/', 1276 }, 1277 }, 1278 1279 'warnings' => { 1280 'FILES' => q[ 1281 lib/warnings 1282 lib/warnings.{pm,t} 1283 regen/warnings.pl 1284 t/lib/warnings 1285 ], 1286 }, 1287 1288 'Win32' => { 1289 'DISTRIBUTION' => "JDB/Win32-0.52.tar.gz", 1290 'FILES' => q[cpan/Win32], 1291 }, 1292 1293 'Win32API::File' => { 1294 'DISTRIBUTION' => 'CHORNY/Win32API-File-0.1203.tar.gz', 1295 'FILES' => q[cpan/Win32API-File], 1296 'EXCLUDED' => [ 1297 qr{^ex/}, 1298 ], 1299 }, 1300 1301 'XSLoader' => { 1302 'DISTRIBUTION' => 'SAPER/XSLoader-0.24.tar.gz', 1303 'FILES' => q[dist/XSLoader], 1304 'EXCLUDED' => [ 1305 qr{^eg/}, 1306 qw( t/00-load.t 1307 t/01-api.t 1308 t/distchk.t 1309 t/pod.t 1310 t/podcover.t 1311 t/portfs.t 1312 ), 1313 'XSLoader.pm', # we use XSLoader_pm.PL 1314 ], 1315 }, 1316 1317 # this pseudo-module represents all the files under ext/ and lib/ 1318 # that aren't otherwise claimed. This means that the following two 1319 # commands will check that every file under ext/ and lib/ is 1320 # accounted for, and that there are no duplicates: 1321 # 1322 # perl Porting/Maintainers --checkmani lib ext 1323 # perl Porting/Maintainers --checkmani 1324 1325 '_PERLLIB' => { 1326 'FILES' => q[ 1327 ext/Amiga-ARexx/ 1328 ext/Amiga-Exec/ 1329 ext/B/ 1330 ext/Devel-Peek/ 1331 ext/DynaLoader/ 1332 ext/Errno/ 1333 ext/ExtUtils-Miniperl/ 1334 ext/Fcntl/ 1335 ext/File-DosGlob/ 1336 ext/File-Find/ 1337 ext/File-Glob/ 1338 ext/FileCache/ 1339 ext/GDBM_File/ 1340 ext/Hash-Util-FieldHash/ 1341 ext/Hash-Util/ 1342 ext/I18N-Langinfo/ 1343 ext/IPC-Open3/ 1344 ext/NDBM_File/ 1345 ext/ODBM_File/ 1346 ext/Opcode/ 1347 ext/POSIX/ 1348 ext/PerlIO-encoding/ 1349 ext/PerlIO-mmap/ 1350 ext/PerlIO-scalar/ 1351 ext/PerlIO-via/ 1352 ext/Pod-Functions/ 1353 ext/Pod-Html/ 1354 ext/SDBM_File/ 1355 ext/Sys-Hostname/ 1356 ext/Tie-Hash-NamedCapture/ 1357 ext/Tie-Memoize/ 1358 ext/VMS-DCLsym/ 1359 ext/VMS-Filespec/ 1360 ext/VMS-Stdio/ 1361 ext/Win32CORE/ 1362 ext/XS-APItest/ 1363 ext/XS-Typemap/ 1364 ext/arybase/ 1365 ext/attributes/ 1366 ext/mro/ 1367 ext/re/ 1368 lib/AnyDBM_File.{pm,t} 1369 lib/Benchmark.{pm,t} 1370 lib/B/Deparse{.pm,.t,-*.t} 1371 lib/B/Op_private.pm 1372 lib/CORE.pod 1373 lib/Class/Struct.{pm,t} 1374 lib/Config.t 1375 lib/Config/Extensions.{pm,t} 1376 lib/DB.{pm,t} 1377 lib/DBM_Filter.pm 1378 lib/DBM_Filter/ 1379 lib/DirHandle.{pm,t} 1380 lib/English.{pm,t} 1381 lib/ExtUtils/Embed.pm 1382 lib/ExtUtils/XSSymSet.pm 1383 lib/ExtUtils/t/Embed.t 1384 lib/ExtUtils/typemap 1385 lib/File/Basename.{pm,t} 1386 lib/File/Compare.{pm,t} 1387 lib/File/Copy.{pm,t} 1388 lib/File/stat{.pm,.t,-7896.t} 1389 lib/FileHandle.{pm,t} 1390 lib/FindBin.{pm,t} 1391 lib/Getopt/Std.{pm,t} 1392 lib/Internals.pod 1393 lib/Internals.t 1394 lib/meta_notation.{pm,t} 1395 lib/Net/hostent.{pm,t} 1396 lib/Net/netent.{pm,t} 1397 lib/Net/protoent.{pm,t} 1398 lib/Net/servent.{pm,t} 1399 lib/PerlIO.pm 1400 lib/Pod/t/InputObjects.t 1401 lib/Pod/t/Select.t 1402 lib/Pod/t/Usage.t 1403 lib/Pod/t/utils.t 1404 lib/SelectSaver.{pm,t} 1405 lib/Symbol.{pm,t} 1406 lib/Thread.{pm,t} 1407 lib/Tie/Array.pm 1408 lib/Tie/Array/ 1409 lib/Tie/ExtraHash.t 1410 lib/Tie/Handle.pm 1411 lib/Tie/Handle/ 1412 lib/Tie/Hash.{pm,t} 1413 lib/Tie/Scalar.{pm,t} 1414 lib/Tie/StdHandle.pm 1415 lib/Tie/SubstrHash.{pm,t} 1416 lib/Time/gmtime.{pm,t} 1417 lib/Time/localtime.{pm,t} 1418 lib/Time/tm.pm 1419 lib/UNIVERSAL.pm 1420 lib/Unicode/README 1421 lib/Unicode/UCD.{pm,t} 1422 lib/User/grent.{pm,t} 1423 lib/User/pwent.{pm,t} 1424 lib/_charnames.pm 1425 lib/blib.{pm,t} 1426 lib/bytes.{pm,t} 1427 lib/bytes_heavy.pl 1428 lib/charnames.{pm,t} 1429 lib/dbm_filter_util.pl 1430 lib/deprecate.pm 1431 lib/diagnostics.{pm,t} 1432 lib/dumpvar.{pl,t} 1433 lib/feature.{pm,t} 1434 lib/feature/ 1435 lib/filetest.{pm,t} 1436 lib/h2ph.t 1437 lib/h2xs.t 1438 lib/integer.{pm,t} 1439 lib/less.{pm,t} 1440 lib/locale.{pm,t} 1441 lib/locale_threads.t 1442 lib/open.{pm,t} 1443 lib/overload/numbers.pm 1444 lib/overloading.{pm,t} 1445 lib/overload{.pm,.t,64.t} 1446 lib/perl5db.{pl,t} 1447 lib/perl5db/ 1448 lib/perlbug.t 1449 lib/sigtrap.{pm,t} 1450 lib/sort.{pm,t} 1451 lib/strict.{pm,t} 1452 lib/subs.{pm,t} 1453 lib/unicore/ 1454 lib/utf8.{pm,t} 1455 lib/utf8_heavy.pl 1456 lib/vars{.pm,.t,_carp.t} 1457 lib/vmsish.{pm,t} 1458 ], 1459 }, 1460 'openbsd' => { 1461 'FILES' => q[lib/Config_git.pl], 1462 }, 1463); 1464 1465# legacy CPAN flag 1466for ( values %Modules ) { 1467 $_->{CPAN} = !!$_->{DISTRIBUTION}; 1468} 1469 1470# legacy UPSTREAM flag 1471for ( keys %Modules ) { 1472 # Keep any existing UPSTREAM flag so that "overrides" can be applied 1473 next if exists $Modules{$_}{UPSTREAM}; 1474 1475 if ($_ eq '_PERLLIB' or $Modules{$_}{FILES} =~ m{^\s*(?:dist|ext|lib)/}) { 1476 $Modules{$_}{UPSTREAM} = 'blead'; 1477 } 1478 elsif ($Modules{$_}{FILES} =~ m{^\s*cpan/}) { 1479 $Modules{$_}{UPSTREAM} = 'cpan'; 1480 } 1481 else { 1482 warn "Unexpected location of FILES for module $_: $Modules{$_}{FILES}"; 1483 } 1484} 1485 1486# legacy MAINTAINER field 1487for ( keys %Modules ) { 1488 # Keep any existing MAINTAINER flag so that "overrides" can be applied 1489 next if exists $Modules{$_}{MAINTAINER}; 1490 1491 if ($Modules{$_}{UPSTREAM} eq 'blead') { 1492 $Modules{$_}{MAINTAINER} = 'P5P'; 1493 $Maintainers{P5P} = 'perl5-porters <perl5-porters@perl.org>'; 1494 } 1495 elsif (exists $Modules{$_}{DISTRIBUTION}) { 1496 (my $pause_id = $Modules{$_}{DISTRIBUTION}) =~ s{/.*$}{}; 1497 $Modules{$_}{MAINTAINER} = $pause_id; 1498 $Maintainers{$pause_id} = "<$pause_id\@cpan.org>"; 1499 } 1500 else { 1501 warn "No DISTRIBUTION for non-blead module $_"; 1502 } 1503} 1504 15051; 1506