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