From c080cf55b5ad88c4056e6e9a4f858e0dfbf642b1 Mon Sep 17 00:00:00 2001 From: afresh1 Date: Mon, 24 Mar 2014 14:59:14 +0000 Subject: Import perl-5.18.2 OK espie@ sthen@ deraadt@ --- gnu/usr.bin/perl/Porting/Maintainers.pm | 31 +- gnu/usr.bin/perl/Porting/README.pod | 355 +++++++++++++++ gnu/usr.bin/perl/Porting/acknowledgements.pl | 4 +- gnu/usr.bin/perl/Porting/bisect-runner.pl | 32 +- gnu/usr.bin/perl/Porting/bump-perl-version | 12 +- gnu/usr.bin/perl/Porting/checkAUTHORS.pl | 51 ++- gnu/usr.bin/perl/Porting/checkcfgvar.pl | 4 - gnu/usr.bin/perl/Porting/checkpodencoding.pl | 10 +- gnu/usr.bin/perl/Porting/cmpVERSION.pl | 85 ++-- gnu/usr.bin/perl/Porting/config.sh | 48 +- gnu/usr.bin/perl/Porting/config_h.pl | 7 +- gnu/usr.bin/perl/Porting/core-cpan-diff | 41 +- gnu/usr.bin/perl/Porting/corelist-perldelta.pl | 8 +- gnu/usr.bin/perl/Porting/corelist.pl | 145 +++++- gnu/usr.bin/perl/Porting/epigraphs.pod | 498 +++++++++++++++++---- gnu/usr.bin/perl/Porting/exec-bit.txt | 3 - gnu/usr.bin/perl/Porting/leakfinder.pl | 166 +++++++ gnu/usr.bin/perl/Porting/makemeta | 140 ++++-- gnu/usr.bin/perl/Porting/manisort | 1 + gnu/usr.bin/perl/Porting/new-perldelta.pl | 2 +- gnu/usr.bin/perl/Porting/perldelta_template.pod | 130 +++--- gnu/usr.bin/perl/Porting/perlhist_calculate.pl | 42 +- gnu/usr.bin/perl/Porting/pod_lib.pl | 222 ++++++++- gnu/usr.bin/perl/Porting/pod_rules.pl | 5 + .../perl/Porting/release_announcement_template.txt | 19 +- .../perl/Porting/release_managers_guide.pod | 284 ++++++++---- gnu/usr.bin/perl/Porting/release_schedule.pod | 85 ++-- gnu/usr.bin/perl/Porting/sync-with-cpan | 296 +++++++++--- gnu/usr.bin/perl/Porting/todo.pod | 126 ++++-- 29 files changed, 2257 insertions(+), 595 deletions(-) create mode 100644 gnu/usr.bin/perl/Porting/README.pod create mode 100644 gnu/usr.bin/perl/Porting/leakfinder.pl (limited to 'gnu/usr.bin/perl/Porting') diff --git a/gnu/usr.bin/perl/Porting/Maintainers.pm b/gnu/usr.bin/perl/Porting/Maintainers.pm index 3e6697f887e..896e7c8cbab 100644 --- a/gnu/usr.bin/perl/Porting/Maintainers.pm +++ b/gnu/usr.bin/perl/Porting/Maintainers.pm @@ -22,7 +22,7 @@ use vars qw(@ISA @EXPORT_OK $VERSION); show_results process_options files_to_modules finish_tap_output reload_manifest); -$VERSION = 0.06; +$VERSION = 0.09; require Exporter; @@ -92,8 +92,9 @@ sub expand_glob { sub filter_excluded { my ($m, @files) = @_; + my $excluded = $Modules{$m}{EXCLUDED}; return @files - unless my $excluded = $Modules{$m}{EXCLUDED}; + unless $excluded and @$excluded; my ($pat) = map { qr/$_/ } join '|' => map { ref $_ ? $_ : qr/\b\Q$_\E$/ @@ -301,6 +302,8 @@ sub show_results { } } } elsif ($Check or $Checkmani) { + require Test::More; + Test::More->import; if( @Files ) { missing_maintainers( $Checkmani @@ -346,22 +349,14 @@ sub maintainers_files { sub duplicated_maintainers { maintainers_files(); - for my $f (keys %files) { - if ($files{$f} > 1) { - print "not ok ".++$TestCounter." - File $f appears $files{$f} times in Maintainers.pl\n"; - } else { - print "ok ".++$TestCounter." - File $f appears $files{$f} times in Maintainers.pl\n"; - } + for my $f (sort keys %files) { + cmp_ok($files{$f}, '<=', 1, "File $f appears $files{$f} times in Maintainers.pl"); } } sub warn_maintainer { my $name = shift; - if ($files{$name}) { - print "ok ".++$TestCounter." - $name has a maintainer\n"; - } else { - print "not ok ".++$TestCounter." - $name has NO maintainer\n"; - } + ok($files{$name}, "$name has a maintainer"); } sub missing_maintainers { @@ -376,17 +371,13 @@ sub missing_maintainers { sub superfluous_maintainers { maintainers_files(); - for my $f (keys %files) { - if ($MANIFEST{$f}) { - print "ok ".++$TestCounter." - Maintained file $f appears in MANIFEST\n"; - } else { - print "not ok ".++$TestCounter." - File $f has has a maintainer but is not in MANIFEST\n"; - } + for my $f (sort keys %files) { + ok($MANIFEST{$f}, "File $f has a maintainer and is in MANIFEST"); } } sub finish_tap_output { - print "1..".$TestCounter."\n"; + done_testing(); } 1; diff --git a/gnu/usr.bin/perl/Porting/README.pod b/gnu/usr.bin/perl/Porting/README.pod new file mode 100644 index 00000000000..a714193a742 --- /dev/null +++ b/gnu/usr.bin/perl/Porting/README.pod @@ -0,0 +1,355 @@ +=head1 NAME + +README.pod - README for the F directory in the Perl 5 core distribution. + +=head1 FILES + +=head2 F + +Generates the text which goes in the Acknowledgements section in +a perldelta. You pass in the previous version and it guesses the next +version, fetches information from the repository and outputs the +text. + +=head2 F + +Program to prepare dual-life distributions for insertion into the Perl 5 +F and F directories. Now thought to be largely superseded. + +=head2 F, F and F + +Use C to pinpoint changes. + +=head2 F + +A utility to find, and optionally bump, references to the perl version +number in various files within the perl source. + +=head2 F + +Performs pathname portability checks, including whether there are naming +conflicts when names are truncated to the DOSish, case-ignoring 8.3 format. + +=head2 F + +Used by F to ensure the F list is up to date. + +=head2 F + +Checks that all the URLs in the Perl source are valid. + +=head2 F + +Used by F to ensure changed modules have had their +versions updated. + +=head2 F + +Check source code for ANSI-C violations. + +=head2 F + +Check that the various F-clones have (at least) all the same +symbols as the top-level F so that the (potentially) needed +symbols are not lagging after how F thinks the world is laid out. +VMS is probably not handled properly here, due to their own rather elaborate +DCL scripting. + +=head2 F + +Scans the commit logs for commits that are potentially, illegitimately +touching modules that are primarily maintained outside of the perl core. Also +checks for commits that span multiple distributions in F or F. +Makes sure that updated CPAN distributions also update +F, but otherwise ignores changes to that file (and +F). + +=head2 F + +Check if POD files contain non-ASCII without specifying +encoding. Run it as: C. + +=head2 F + +Command line tool to update cherrymaint; a tool for selecting commits from +blead to cherry-pick into stable perl versions. + +=head2 F + +Compare the current Perl source tree and a given tag for modules that have +identical version numbers but different contents. + +=head2 F + +This file is a sample F file. If you are unable to successfully run +F, copy this file to F and edit it to suit your system. + +=head2 F + +Used when importing changes from F. This script reorders +F after metaconfig. + +=head2 F + +This file is a sample F file. F is normally +produced by running the F script. It holds all the definitions +figured out by F. If you are unable to successfully run +F on your system, copy this sample file to F +at the top of the perl source tree and edit it to suit your system. +Then propagate those values by running C. This sample +file is normally updated each time F is updated. + +=head2 F + +Compare CPAN modules with their equivalent in core. +Originally based on App::DualLivedDiff by Steffen Mueller. + +=head2 F + +Reports, in a perl source tree, which dual-lived core modules have not the +same version than the corresponding module on CPAN. + +=head2 F + +Prints a table of differences between two Perl versions with respect to +modules included in the distribution. + +=head2 F + +Generates info for Module::CoreList from this perl tree. + +=head2 F + +Generates a list of the module changes for the Perl you are currently +building. Also generates a diff between the corelist sections of two +F files. + +=head2 F + +List of Perl release epigraphs. + +=head2 F + +This file contains a list of files that F will ensure get an +executable bit. + +=head2 F + +Brute force testing for F. + +=head2 F + +Expand C macros using the C preprocessor. + +=head2 F + +This script finds reentrant variants of functions used in an executable and +shared objects. + +=head2 F + +This script contains the subroutine to generate a F<.patch file> for a +committish (the SHA1 checksum of a commit, a number made of 40 hexadecimal +digits which acts the internal unique identifier for this commit +(lilypond.org). Related file: F + +=head2 F + +This script, a rough draft, aids in generating a perldelta file +from a series of git commits. + +=head2 F + +This script, given a Perforce change number, outputs the equivalent git commit +id. + +=head2 F + +This script creates a tag for every p4raw-id. + +=head2 F + +This file is built by F. This file contains a description of all +the shell variables whose value is determined by the Configure script. +It later gets incorporated into the pod for F. + +=head2 F + +This file contains a specification as to how to write a perldelta pod. +Related file: F + +=head2 F + +This script executes every line in every file in the build directory and its +subdirectories to determine if the number of SVs goes up and reports it as a +leak to STDOUT. WARNING! some harm could be done if a line contains something +similar to C<`rm *`>. + +=head2 F + +This script shows information about the maintainers of core files/modules. + +Related files: F, F + +=head2 F + +A package associating core files/modules with maintainers. Related files: +F, F + +=head2 F + +A package to search and show information about which core files/modules are +associated with maintainers. Related files: F, F + +=head2 F + +This script creates a release checklist as a simple HTML document. + +=head2 F + +Generate a F<.patch> file to STDOUT for a commit ID specified on the +command-line. + +=head2 F + +This script generates the list of registered CPAN sites in F. + +=head2 F + +This script is a quick and dirty snapshot generator for the perl5.git.perl.org +web page to use to generate the snapshot files. + +=head2 F + +This script creates F and F files. + +=head2 F + +This script builds a Perl release tarball. + +=head2 F + +This script outputs a list of files in F which don't exist and a +list of files that exist and aren't in F. + +=head2 F + +This script sorts the files in F. + +=head2 F + +This script automates the process for creating perldelta.pl. + +=head2 F + +This script outputs the added tests between the two versions of Perl. + +=head2 F + +Template for F. + +=head2 F + +Generates info for F from this perl tree. + +=head2 F + +When Cd into other programs in the Perl 5 core +distribution, provides functions useful during testing. + +=head2 F + +Generate the sections of files listed in C<%Targets> from F. +Mostly these are rules in Makefiles. + + --verbose gives slightly more output + --build-all tries to build everything + --build-foo updates foo as follows + --showfiles shows the files to be changed + --test exit if perl.pod, MANIFEST are consistent, and regenerated + files are up to date, die otherwise. + +=head2 F + +Applies F to a file. + +=head2 F + +Pumpkin - Notes on handling the Perl Patch Pumpkin And Porting Perl. +Many of these are out of date or superseded by other documents in +this directory. + +=head2 F + +The y2038 implementation for perl. This is an implementation of POSIX time.h +which solves the year 2038 bug on systems where time_t is only 32 bits. It is +implemented in bog-standard ANSI C. The latest version can be found at +L. + +=head2 F + +Release announcment for minor releasements of the 5.17 development series. + +=head2 F + +Releasing a new version of perl 5.x. Note that things change at each release, +so there may be new things not covered here, or tools may need updating. + +=head2 F + +This schedule lists the projected or historical development and release +schedules for the next, current and previous stable versions of Perl. Dates +with all question marks will only be releases if deemed necessary by the +Pumpking. + +=head2 F + +Shell script to list patches in RT. + +=head2 F + +This is a script for sorting the warning and error messages in +F. POD formatting, printf-style escapes, non-letter characters, +and case are ignored, as explained in L. + +=head2 F + +Test suite profiling on Tru 64. + +=head2 F + +Script for cleaning out the "known noise" from Third Degree reports: either +noise caused by F itself, or F leaks. + +=head2 F