Update ExtUtils-MakeMaker to CPAN version 7.10
authorChris 'BinGOs' Williams <chris@bingosnet.co.uk>
Mon, 14 Sep 2015 12:19:49 +0000 (13:19 +0100)
committerChris 'BinGOs' Williams <chris@bingosnet.co.uk>
Mon, 14 Sep 2015 13:37:38 +0000 (14:37 +0100)
  [DELTA]

7.10 Thu Sep 10 19:38:55 BST 2015

    Bug fixes:
    - Fix an issue with quoting of dist_ci target on Win32

7.08 Tue Sep  8 20:24:15 BST 2015

    This release reverts all the changes since v7.04 until such time
    as the regressions we have found in the "wild" of CPAN can be
    tamed

    ExtUtils::Command has been included in this release as it was
    reincorporated in v7.06

    The following bug fixes have also been included:
    - RT#100268 fix wrong variable being used
    - Check exit status for commands in "make ci" target
    - Fix distsignature dependencies for parallel make
    - The bundled Encode::Locale has been updated to 1.04

41 files changed:
MANIFEST
Porting/Maintainers.pl
cpan/ExtUtils-MakeMaker/lib/ExtUtils/Command.pm [new file with mode: 0644]
cpan/ExtUtils-MakeMaker/lib/ExtUtils/Command/MM.pm
cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist.pm
cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist/Kid.pm
cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM.pm
cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_AIX.pm
cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Any.pm
cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_BeOS.pm
cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Cygwin.pm
cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_DOS.pm
cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Darwin.pm
cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_MacOS.pm
cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_NW5.pm
cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_OS2.pm
cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_QNX.pm
cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_UWIN.pm
cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm
cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VMS.pm
cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VOS.pm
cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win32.pm
cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win95.pm
cpan/ExtUtils-MakeMaker/lib/ExtUtils/MY.pm
cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm
cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Config.pm
cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/FAQ.pod
cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Locale.pm
cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Tutorial.pod
cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/version.pm
cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/version/regex.pm
cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/version/vpp.pm
cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mkbootstrap.pm
cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mksymlists.pm
cpan/ExtUtils-MakeMaker/lib/ExtUtils/testlib.pm
cpan/ExtUtils-MakeMaker/t/cp.t [new file with mode: 0644]
cpan/ExtUtils-MakeMaker/t/eu_command.t [new file with mode: 0644]
cpan/ExtUtils-MakeMaker/t/pm_to_blib.t
cpan/ExtUtils-MakeMaker/t/prereq.t
cpan/ExtUtils-MakeMaker/t/vstrings.t
t/porting/customized.dat

index e94fad1..508f31f 100644 (file)
--- a/MANIFEST
+++ b/MANIFEST
@@ -1027,6 +1027,7 @@ cpan/ExtUtils-Install/t/lib/TieOut.pm                     Testing library to capture prints
 cpan/ExtUtils-Install/t/Packlist.t                     See if Packlist works
 cpan/ExtUtils-MakeMaker/bin/instmodsh                          Give information about installed extensions
 cpan/ExtUtils-MakeMaker/lib/ExtUtils/Command/MM.pm             Calling MM functions from the cmd line
+cpan/ExtUtils-MakeMaker/lib/ExtUtils/Command.pm
 cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist/Kid.pm            Does the real work of the above
 cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist.pm                        Locates libraries
 cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Config.pm       MakeMaker wrapper for Config
@@ -1066,8 +1067,10 @@ cpan/ExtUtils-MakeMaker/t/basic.t                                See if MakeMaker can build a module
 cpan/ExtUtils-MakeMaker/t/build_man.t                          Set if MakeMaker builds manpages
 cpan/ExtUtils-MakeMaker/t/cd.t                                 Test to see cd works
 cpan/ExtUtils-MakeMaker/t/config.t                             Test ExtUtils::MakeMaker::Config
+cpan/ExtUtils-MakeMaker/t/cp.t
 cpan/ExtUtils-MakeMaker/t/dir_target.t                         Verify if dir_target() is supported
 cpan/ExtUtils-MakeMaker/t/echo.t                               Test for ExtUtils::MakeMaker
+cpan/ExtUtils-MakeMaker/t/eu_command.t
 cpan/ExtUtils-MakeMaker/t/FIRST_MAKEFILE.t                     See if FIRST_MAKEFILE works
 cpan/ExtUtils-MakeMaker/t/fixin.t                              See if ExtUtils::MakeMaker works
 cpan/ExtUtils-MakeMaker/t/fix_libs.t                           Test for ExtUtils::MakeMaker
index 61e318f..4622aaf 100755 (executable)
@@ -462,7 +462,7 @@ use File::Glob qw(:case);
     },
 
     'ExtUtils::MakeMaker' => {
-        'DISTRIBUTION' => 'BINGOS/ExtUtils-MakeMaker-7.04.tar.gz',
+        'DISTRIBUTION' => 'BINGOS/ExtUtils-MakeMaker-7.10.tar.gz',
         'FILES'        => q[cpan/ExtUtils-MakeMaker],
         'EXCLUDED'     => [
             qr{^t/lib/Test/},
@@ -473,6 +473,12 @@ use File::Glob qw(:case);
             'PATCHING',
             'README.packaging',
         ],
+        # Upstreamed as https://github.com/Perl-Toolchain-Gang/ExtUtils-MakeMaker/commit/ede9ea4a
+        'CUSTOMIZED'   => [
+            qq[lib/ExtUtils/MakeMaker.pm],
+            qq[t/prereq.t],
+            qq[t/vstrings.t],
+        ],
     },
 
     'ExtUtils::Manifest' => {
diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Command.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Command.pm
new file mode 100644 (file)
index 0000000..ba79592
--- /dev/null
@@ -0,0 +1,377 @@
+package ExtUtils::Command;
+
+use 5.00503;
+use strict;
+require Exporter;
+use vars qw(@ISA @EXPORT @EXPORT_OK $VERSION);
+@ISA       = qw(Exporter);
+@EXPORT    = qw(cp rm_f rm_rf mv cat eqtime mkpath touch test_f test_d chmod
+                dos2unix);
+$VERSION = '7.10';
+$VERSION = eval $VERSION;
+
+my $Is_VMS   = $^O eq 'VMS';
+my $Is_VMS_mode = $Is_VMS;
+my $Is_VMS_noefs = $Is_VMS;
+my $Is_Win32 = $^O eq 'MSWin32';
+
+if( $Is_VMS ) {
+    my $vms_unix_rpt;
+    my $vms_efs;
+    my $vms_case;
+
+    if (eval { local $SIG{__DIE__}; require VMS::Feature; }) {
+        $vms_unix_rpt = VMS::Feature::current("filename_unix_report");
+        $vms_efs = VMS::Feature::current("efs_charset");
+        $vms_case = VMS::Feature::current("efs_case_preserve");
+    } else {
+        my $unix_rpt = $ENV{'DECC$FILENAME_UNIX_REPORT'} || '';
+        my $efs_charset = $ENV{'DECC$EFS_CHARSET'} || '';
+        my $efs_case = $ENV{'DECC$EFS_CASE_PRESERVE'} || '';
+        $vms_unix_rpt = $unix_rpt =~ /^[ET1]/i;
+        $vms_efs = $efs_charset =~ /^[ET1]/i;
+        $vms_case = $efs_case =~ /^[ET1]/i;
+    }
+    $Is_VMS_mode = 0 if $vms_unix_rpt;
+    $Is_VMS_noefs = 0 if ($vms_efs);
+}
+
+
+=head1 NAME
+
+ExtUtils::Command - utilities to replace common UNIX commands in Makefiles etc.
+
+=head1 SYNOPSIS
+
+  perl -MExtUtils::Command -e cat files... > destination
+  perl -MExtUtils::Command -e mv source... destination
+  perl -MExtUtils::Command -e cp source... destination
+  perl -MExtUtils::Command -e touch files...
+  perl -MExtUtils::Command -e rm_f files...
+  perl -MExtUtils::Command -e rm_rf directories...
+  perl -MExtUtils::Command -e mkpath directories...
+  perl -MExtUtils::Command -e eqtime source destination
+  perl -MExtUtils::Command -e test_f file
+  perl -MExtUtils::Command -e test_d directory
+  perl -MExtUtils::Command -e chmod mode files...
+  ...
+
+=head1 DESCRIPTION
+
+The module is used to replace common UNIX commands.  In all cases the
+functions work from @ARGV rather than taking arguments.  This makes
+them easier to deal with in Makefiles.  Call them like this:
+
+  perl -MExtUtils::Command -e some_command some files to work on
+
+and I<NOT> like this:
+
+  perl -MExtUtils::Command -e 'some_command qw(some files to work on)'
+
+For that use L<Shell::Command>.
+
+Filenames with * and ? will be glob expanded.
+
+
+=head2 FUNCTIONS
+
+=over 4
+
+=cut
+
+# VMS uses % instead of ? to mean "one character"
+my $wild_regex = $Is_VMS ? '*%' : '*?';
+sub expand_wildcards
+{
+ @ARGV = map(/[$wild_regex]/o ? glob($_) : $_,@ARGV);
+}
+
+
+=item cat
+
+    cat file ...
+
+Concatenates all files mentioned on command line to STDOUT.
+
+=cut
+
+sub cat ()
+{
+ expand_wildcards();
+ print while (<>);
+}
+
+=item eqtime
+
+    eqtime source destination
+
+Sets modified time of destination to that of source.
+
+=cut
+
+sub eqtime
+{
+ my ($src,$dst) = @ARGV;
+ local @ARGV = ($dst);  touch();  # in case $dst doesn't exist
+ utime((stat($src))[8,9],$dst);
+}
+
+=item rm_rf
+
+    rm_rf files or directories ...
+
+Removes files and directories - recursively (even if readonly)
+
+=cut
+
+sub rm_rf
+{
+ expand_wildcards();
+ require File::Path;
+ File::Path::rmtree([grep -e $_,@ARGV],0,0);
+}
+
+=item rm_f
+
+    rm_f file ...
+
+Removes files (even if readonly)
+
+=cut
+
+sub rm_f {
+    expand_wildcards();
+
+    foreach my $file (@ARGV) {
+        next unless -f $file;
+
+        next if _unlink($file);
+
+        chmod(0777, $file);
+
+        next if _unlink($file);
+
+        require Carp;
+        Carp::carp("Cannot delete $file: $!");
+    }
+}
+
+sub _unlink {
+    my $files_unlinked = 0;
+    foreach my $file (@_) {
+        my $delete_count = 0;
+        $delete_count++ while unlink $file;
+        $files_unlinked++ if $delete_count;
+    }
+    return $files_unlinked;
+}
+
+
+=item touch
+
+    touch file ...
+
+Makes files exist, with current timestamp
+
+=cut
+
+sub touch {
+    my $t    = time;
+    expand_wildcards();
+    foreach my $file (@ARGV) {
+        open(FILE,">>$file") || die "Cannot write $file:$!";
+        close(FILE);
+        utime($t,$t,$file);
+    }
+}
+
+=item mv
+
+    mv source_file destination_file
+    mv source_file source_file destination_dir
+
+Moves source to destination.  Multiple sources are allowed if
+destination is an existing directory.
+
+Returns true if all moves succeeded, false otherwise.
+
+=cut
+
+sub mv {
+    expand_wildcards();
+    my @src = @ARGV;
+    my $dst = pop @src;
+
+    if (@src > 1 && ! -d $dst) {
+        require Carp;
+        Carp::croak("Too many arguments");
+    }
+
+    require File::Copy;
+    my $nok = 0;
+    foreach my $src (@src) {
+        $nok ||= !File::Copy::move($src,$dst);
+    }
+    return !$nok;
+}
+
+=item cp
+
+    cp source_file destination_file
+    cp source_file source_file destination_dir
+
+Copies sources to the destination.  Multiple sources are allowed if
+destination is an existing directory.
+
+Returns true if all copies succeeded, false otherwise.
+
+=cut
+
+sub cp {
+    expand_wildcards();
+    my @src = @ARGV;
+    my $dst = pop @src;
+
+    if (@src > 1 && ! -d $dst) {
+        require Carp;
+        Carp::croak("Too many arguments");
+    }
+
+    require File::Copy;
+    my $nok = 0;
+    foreach my $src (@src) {
+        $nok ||= !File::Copy::copy($src,$dst);
+
+        # Win32 does not update the mod time of a copied file, just the
+        # created time which make does not look at.
+        utime(time, time, $dst) if $Is_Win32;
+    }
+    return $nok;
+}
+
+=item chmod
+
+    chmod mode files ...
+
+Sets UNIX like permissions 'mode' on all the files.  e.g. 0666
+
+=cut
+
+sub chmod {
+    local @ARGV = @ARGV;
+    my $mode = shift(@ARGV);
+    expand_wildcards();
+
+    if( $Is_VMS_mode && $Is_VMS_noefs) {
+        require File::Spec;
+        foreach my $idx (0..$#ARGV) {
+            my $path = $ARGV[$idx];
+            next unless -d $path;
+
+            # chmod 0777, [.foo.bar] doesn't work on VMS, you have to do
+            # chmod 0777, [.foo]bar.dir
+            my @dirs = File::Spec->splitdir( $path );
+            $dirs[-1] .= '.dir';
+            $path = File::Spec->catfile(@dirs);
+
+            $ARGV[$idx] = $path;
+        }
+    }
+
+    chmod(oct $mode,@ARGV) || die "Cannot chmod ".join(' ',$mode,@ARGV).":$!";
+}
+
+=item mkpath
+
+    mkpath directory ...
+
+Creates directories, including any parent directories.
+
+=cut
+
+sub mkpath
+{
+ expand_wildcards();
+ require File::Path;
+ File::Path::mkpath([@ARGV],0,0777);
+}
+
+=item test_f
+
+    test_f file
+
+Tests if a file exists.  I<Exits> with 0 if it does, 1 if it does not (ie.
+shell's idea of true and false).
+
+=cut
+
+sub test_f
+{
+ exit(-f $ARGV[0] ? 0 : 1);
+}
+
+=item test_d
+
+    test_d directory
+
+Tests if a directory exists.  I<Exits> with 0 if it does, 1 if it does
+not (ie. shell's idea of true and false).
+
+=cut
+
+sub test_d
+{
+ exit(-d $ARGV[0] ? 0 : 1);
+}
+
+=item dos2unix
+
+    dos2unix files or dirs ...
+
+Converts DOS and OS/2 linefeeds to Unix style recursively.
+
+=cut
+
+sub dos2unix {
+    require File::Find;
+    File::Find::find(sub {
+        return if -d;
+        return unless -w _;
+        return unless -r _;
+        return if -B _;
+
+        local $\;
+
+       my $orig = $_;
+       my $temp = '.dos2unix_tmp';
+       open ORIG, $_ or do { warn "dos2unix can't open $_: $!"; return };
+       open TEMP, ">$temp" or
+           do { warn "dos2unix can't create .dos2unix_tmp: $!"; return };
+        while (my $line = <ORIG>) {
+            $line =~ s/\015\012/\012/g;
+            print TEMP $line;
+        }
+       close ORIG;
+       close TEMP;
+       rename $temp, $orig;
+
+    }, @ARGV);
+}
+
+=back
+
+=head1 SEE ALSO
+
+Shell::Command which is these same functions but take arguments normally.
+
+
+=head1 AUTHOR
+
+Nick Ing-Simmons C<ni-s@cpan.org>
+
+Maintained by Michael G Schwern C<schwern@pobox.com> within the
+ExtUtils-MakeMaker package and, as a separate CPAN package, by
+Randy Kobes C<r.kobes@uwinnipeg.ca>.
+
+=cut
+
index 203b3aa..6c1898d 100644 (file)
@@ -10,7 +10,7 @@ our @ISA = qw(Exporter);
 
 our @EXPORT  = qw(test_harness pod2man perllocal_install uninstall
                   warn_if_old_packlist test_s cp_nonempty);
-our $VERSION = '7.04_01';
+our $VERSION = '7.10';
 
 my $Is_VMS = $^O eq 'VMS';
 
index 3df1793..f856657 100644 (file)
@@ -2,7 +2,7 @@ package ExtUtils::Liblist;
 
 use strict;
 
-our $VERSION = '7.04_01';
+our $VERSION = '7.10';
 
 use File::Spec;
 require ExtUtils::Liblist::Kid;
index 37bcfd4..c56f539 100644 (file)
@@ -11,7 +11,7 @@ use 5.006;
 
 use strict;
 use warnings;
-our $VERSION = '7.04_01';
+our $VERSION = '7.10';
 
 use ExtUtils::MakeMaker::Config;
 use Cwd 'cwd';
index f2aa8b4..c58e0a5 100644 (file)
@@ -3,7 +3,7 @@ package ExtUtils::MM;
 use strict;
 use ExtUtils::MakeMaker::Config;
 
-our $VERSION = '7.04_01';
+our $VERSION = '7.10';
 
 require ExtUtils::Liblist;
 require ExtUtils::MakeMaker;
index 58ea5b9..2e0739d 100644 (file)
@@ -1,7 +1,7 @@
 package ExtUtils::MM_AIX;
 
 use strict;
-our $VERSION = '7.04_01';
+our $VERSION = '7.10';
 
 require ExtUtils::MM_Unix;
 our @ISA = qw(ExtUtils::MM_Unix);
index 4c00129..570ea72 100644 (file)
@@ -1,7 +1,7 @@
 package ExtUtils::MM_Any;
 
 use strict;
-our $VERSION = '7.04_01';
+our $VERSION = '7.10';
 
 use Carp;
 use File::Spec;
@@ -1668,7 +1668,7 @@ CODE
     my $add_sign_to_dist = $self->cd('$(DISTVNAME)' => $add_sign );
 
     return sprintf <<'MAKE', $add_sign_to_dist, $touch_sig, $sign_dist
-distsignature : create_distdir
+distsignature : distmeta
        $(NOECHO) %s
        $(NOECHO) %s
        %s
index 35b76c0..847d833 100644 (file)
@@ -26,7 +26,7 @@ require ExtUtils::MM_Any;
 require ExtUtils::MM_Unix;
 
 our @ISA = qw( ExtUtils::MM_Any ExtUtils::MM_Unix );
-our $VERSION = '7.04_01';
+our $VERSION = '7.10';
 
 
 =item os_flavor
index b504c47..72cccb8 100644 (file)
@@ -9,7 +9,7 @@ require ExtUtils::MM_Unix;
 require ExtUtils::MM_Win32;
 our @ISA = qw( ExtUtils::MM_Unix );
 
-our $VERSION = '7.04_01';
+our $VERSION = '7.10';
 
 
 =head1 NAME
index 353c54f..ab3e9d8 100644 (file)
@@ -2,7 +2,7 @@ package ExtUtils::MM_DOS;
 
 use strict;
 
-our $VERSION = '7.04_01';
+our $VERSION = '7.10';
 
 require ExtUtils::MM_Any;
 require ExtUtils::MM_Unix;
index 315d1b4..8d189b5 100644 (file)
@@ -7,7 +7,7 @@ BEGIN {
     our @ISA = qw( ExtUtils::MM_Unix );
 }
 
-our $VERSION = '7.04_01';
+our $VERSION = '7.10';
 
 
 =head1 NAME
index bef2c00..27983f4 100644 (file)
@@ -2,7 +2,7 @@ package ExtUtils::MM_MacOS;
 
 use strict;
 
-our $VERSION = '7.04_01';
+our $VERSION = '7.10';
 
 sub new {
     die 'MacOS Classic (MacPerl) is no longer supported by MakeMaker';
index 4e36796..a236d11 100644 (file)
@@ -22,7 +22,7 @@ use strict;
 use ExtUtils::MakeMaker::Config;
 use File::Basename;
 
-our $VERSION = '7.04_01';
+our $VERSION = '7.10';
 
 require ExtUtils::MM_Win32;
 our @ISA = qw(ExtUtils::MM_Win32);
index c9ace00..2730ee3 100644 (file)
@@ -5,7 +5,7 @@ use strict;
 use ExtUtils::MakeMaker qw(neatvalue);
 use File::Spec;
 
-our $VERSION = '7.04_01';
+our $VERSION = '7.10';
 
 require ExtUtils::MM_Any;
 require ExtUtils::MM_Unix;
index 13e12c4..588c7ee 100644 (file)
@@ -1,7 +1,7 @@
 package ExtUtils::MM_QNX;
 
 use strict;
-our $VERSION = '7.04_01';
+our $VERSION = '7.10';
 
 require ExtUtils::MM_Unix;
 our @ISA = qw(ExtUtils::MM_Unix);
index 4af2909..9ff061a 100644 (file)
@@ -1,7 +1,7 @@
 package ExtUtils::MM_UWIN;
 
 use strict;
-our $VERSION = '7.04_01';
+our $VERSION = '7.10';
 
 require ExtUtils::MM_Unix;
 our @ISA = qw(ExtUtils::MM_Unix);
index f63145c..535b1f3 100644 (file)
@@ -15,7 +15,7 @@ use ExtUtils::MakeMaker qw($Verbose neatvalue);
 
 # If we make $VERSION an our variable parse_version() breaks
 use vars qw($VERSION);
-$VERSION = '7.04_01';
+$VERSION = '7.10';
 $VERSION = eval $VERSION;  ## no critic [BuiltinFunctions::ProhibitStringyEval]
 
 require ExtUtils::MM_Any;
@@ -676,13 +676,13 @@ Defines a check in target for RCS.
 
 sub dist_ci {
     my($self) = shift;
-    return q{
-ci :
-       $(PERLRUN) "-MExtUtils::Manifest=maniread" \\
-         -e "@all = keys %{ maniread() };" \\
-         -e "print(qq{Executing $(CI) @all\n}); system(qq{$(CI) @all});" \\
-         -e "print(qq{Executing $(RCS_LABEL) ...\n}); system(qq{$(RCS_LABEL) @all});"
-};
+    return sprintf "ci :\n\t%s\n", $self->oneliner(<<'EOF', [qw(-MExtUtils::Manifest=maniread)]);
+@all = sort keys %{ maniread() };
+print(qq{Executing $(CI) @all\n});
+system(qq{$(CI) @all}) == 0 or die $!;
+print(qq{Executing $(RCS_LABEL) ...\n});
+system(qq{$(RCS_LABEL) @all}) == 0 or die $!;
+EOF
 }
 
 =item dist_core (o)
index 45d06b0..cf66e7c 100644 (file)
@@ -15,7 +15,7 @@ BEGIN {
 
 use File::Basename;
 
-our $VERSION = '7.04_01';
+our $VERSION = '7.10';
 
 require ExtUtils::MM_Any;
 require ExtUtils::MM_Unix;
index dfec6d5..77fe4f9 100644 (file)
@@ -1,7 +1,7 @@
 package ExtUtils::MM_VOS;
 
 use strict;
-our $VERSION = '7.04_01';
+our $VERSION = '7.10';
 
 require ExtUtils::MM_Unix;
 our @ISA = qw(ExtUtils::MM_Unix);
index fbd3f49..47ce479 100644 (file)
@@ -27,7 +27,7 @@ use ExtUtils::MakeMaker qw( neatvalue );
 require ExtUtils::MM_Any;
 require ExtUtils::MM_Unix;
 our @ISA = qw( ExtUtils::MM_Any ExtUtils::MM_Unix );
-our $VERSION = '7.04_01';
+our $VERSION = '7.10';
 
 $ENV{EMXSHELL} = 'sh'; # to run `commands`
 
index cc37c24..f36e23f 100644 (file)
@@ -2,7 +2,7 @@ package ExtUtils::MM_Win95;
 
 use strict;
 
-our $VERSION = '7.04_01';
+our $VERSION = '7.10';
 
 require ExtUtils::MM_Win32;
 our @ISA = qw(ExtUtils::MM_Win32);
index f2114f9..a100b0b 100644 (file)
@@ -3,7 +3,7 @@ package ExtUtils::MY;
 use strict;
 require ExtUtils::MM;
 
-our $VERSION = '7.04_01';
+our $VERSION = '7.10';
 our @ISA = qw(ExtUtils::MM);
 
 {
index fe95b27..4f9d46f 100644 (file)
@@ -24,7 +24,7 @@ my %Recognized_Att_Keys;
 our %macro_fsentity; # whether a macro is a filesystem name
 our %macro_dep; # whether a macro is a dependency
 
-our $VERSION = '7.04_01';
+our $VERSION = '7.10';
 $VERSION = eval $VERSION;  ## no critic [BuiltinFunctions::ProhibitStringyEval]
 
 # Emulate something resembling CVS $Revision$
@@ -42,7 +42,7 @@ our @EXPORT_OK = qw($VERSION &neatvalue &mkbootstrap &mksymlists
 # purged.
 my $Is_VMS     = $^O eq 'VMS';
 my $Is_Win32   = $^O eq 'MSWin32';
-my $UNDER_CORE = $ENV{PERL_CORE};
+our $UNDER_CORE = $ENV{PERL_CORE}; # needs to be our
 
 full_setup();
 
@@ -439,7 +439,7 @@ sub new {
    }
 
     print "MakeMaker (v$VERSION)\n" if $Verbose;
-    if (-f "MANIFEST" && ! -f "Makefile" && ! $ENV{PERL_CORE}){
+    if (-f "MANIFEST" && ! -f "Makefile" && ! $UNDER_CORE){
         check_manifest();
     }
 
@@ -525,7 +525,7 @@ END
             warn sprintf "Warning: prerequisite %s %s not found.\n",
               $prereq, $required_version
                    unless $self->{PREREQ_FATAL}
-                       or $ENV{PERL_CORE};
+                       or $UNDER_CORE;
 
             $unsatisfied{$prereq} = 'not installed';
         }
@@ -533,7 +533,7 @@ END
             warn sprintf "Warning: prerequisite %s %s not found. We have %s.\n",
               $prereq, $required_version, ($pr_version || 'unknown version')
                   unless $self->{PREREQ_FATAL}
-                       or $ENV{PERL_CORE};
+                       or $UNDER_CORE;
 
             $unsatisfied{$prereq} = $required_version ? $required_version : 'unknown version' ;
         }
@@ -1175,12 +1175,9 @@ sub flush {
     binmode $fh, ':encoding(locale)' if $CAN_DECODE;
 
     for my $chunk (@{$self->{RESULT}}) {
-        my $to_write = "$chunk\n";
-        if (!$CAN_DECODE && $] > 5.008) {
-            utf8::encode $to_write;
-        }
-        print $fh "$chunk\n"
-            or die "Can't write to MakeMaker.tmp: $!";
+        my $to_write = $chunk;
+        utf8::encode $to_write if !$CAN_DECODE && $] > 5.008;
+        print $fh "$to_write\n" or die "Can't write to MakeMaker.tmp: $!";
     }
 
     close $fh
index 9001cc6..d469870 100644 (file)
@@ -2,7 +2,7 @@ package ExtUtils::MakeMaker::Config;
 
 use strict;
 
-our $VERSION = '7.04_01';
+our $VERSION = '7.10';
 
 use Config ();
 
index d2b4ab3..ac14d0d 100644 (file)
@@ -1,6 +1,6 @@
 package ExtUtils::MakeMaker::FAQ;
 
-our $VERSION = '7.04_01';
+our $VERSION = '7.10';
 
 1;
 __END__
index 23d0c6e..68fcd4c 100644 (file)
@@ -1,7 +1,7 @@
 package ExtUtils::MakeMaker::Locale;
 
 use strict;
-our $VERSION = "7.04_01";
+our $VERSION = "7.10";
 
 use base 'Exporter';
 our @EXPORT_OK = qw(
index 9cbdd9b..d5679a3 100644 (file)
@@ -1,6 +1,6 @@
 package ExtUtils::MakeMaker::Tutorial;
 
-our $VERSION = '7.04_01';
+our $VERSION = '7.10';
 
 
 =head1 NAME
index 3269f44..07743f0 100644 (file)
@@ -15,7 +15,7 @@ use strict;
 
 use vars qw(@ISA $VERSION $CLASS $STRICT $LAX *declare *qv);
 
-$VERSION = '7.04_01';
+$VERSION = '7.10';
 $CLASS = 'version';
 
 {
index a134a00..be083b3 100644 (file)
@@ -10,7 +10,7 @@ use strict;
 
 use vars qw($VERSION $CLASS $STRICT $LAX);
 
-$VERSION = '7.04_01';
+$VERSION = '7.10';
 
 #--------------------------------------------------------------------------#
 # Version regexp components
index 34bbd01..031025f 100644 (file)
@@ -128,7 +128,7 @@ use strict;
 
 use Config;
 use vars qw($VERSION $CLASS @ISA $LAX $STRICT);
-$VERSION = '7.04_01';
+$VERSION = '7.10';
 $CLASS = 'ExtUtils::MakeMaker::version::vpp';
 
 require ExtUtils::MakeMaker::version::regex;
index 97d4300..74c9199 100644 (file)
@@ -3,7 +3,7 @@ package ExtUtils::Mkbootstrap;
 # There's just too much Dynaloader incest here to turn on strict vars.
 use strict 'refs';
 
-our $VERSION = '7.04_01';
+our $VERSION = '7.10';
 
 require Exporter;
 our @ISA = ('Exporter');
index 3a9fc71..09e058e 100644 (file)
@@ -10,7 +10,7 @@ use Config;
 
 our @ISA = qw(Exporter);
 our @EXPORT = qw(&Mksymlists);
-our $VERSION = '7.04_01';
+our $VERSION = '7.10';
 
 sub Mksymlists {
     my(%spec) = @_;
index 2a5323e..74bce3d 100644 (file)
@@ -3,7 +3,7 @@ package ExtUtils::testlib;
 use strict;
 use warnings;
 
-our $VERSION = '7.04_01';
+our $VERSION = '7.10';
 
 use Cwd;
 use File::Spec;
diff --git a/cpan/ExtUtils-MakeMaker/t/cp.t b/cpan/ExtUtils-MakeMaker/t/cp.t
new file mode 100644 (file)
index 0000000..0b899bf
--- /dev/null
@@ -0,0 +1,27 @@
+#!/usr/bin/perl -w
+
+BEGIN {
+    unshift @INC, 't/lib/';
+}
+chdir 't';
+
+use ExtUtils::Command;
+use Test::More tests => 1;
+
+open FILE, ">source" or die $!;
+print FILE "stuff\n";
+close FILE;
+
+# Instead of sleeping to make the file time older
+utime time - 900, time - 900, "source";
+
+END { 1 while unlink "source", "dest"; }
+
+# Win32 bug, cp wouldn't update mtime.
+{
+    local @ARGV = qw(source dest);
+    cp();
+    my $mtime = (stat("dest"))[9];
+    my $now   = time;
+    cmp_ok( abs($mtime - $now), '<=', 1, 'cp updated mtime' );
+}
diff --git a/cpan/ExtUtils-MakeMaker/t/eu_command.t b/cpan/ExtUtils-MakeMaker/t/eu_command.t
new file mode 100644 (file)
index 0000000..269aa5c
--- /dev/null
@@ -0,0 +1,284 @@
+#!/usr/bin/perl -w
+
+BEGIN {
+    unshift @INC, 't/lib/';
+}
+chdir 't';
+
+BEGIN {
+    $Testfile = 'testfile.foo';
+}
+
+BEGIN {
+    1 while unlink $Testfile, 'newfile';
+    # forcibly remove ecmddir/temp2, but don't import mkpath
+    use File::Path ();
+    File::Path::rmtree( 'ecmddir' ) if -e 'ecmddir';
+}
+
+use Test::More tests => 40;
+use File::Spec;
+
+BEGIN {
+    # bad neighbor, but test_f() uses exit()
+    *CORE::GLOBAL::exit = '';   # quiet 'only once' warning.
+    *CORE::GLOBAL::exit = sub (;$) { return $_[0] };
+    use_ok( 'ExtUtils::Command' );
+}
+
+{
+    # concatenate this file with itself
+    # be extra careful the regex doesn't match itself
+    use TieOut;
+    my $out = tie *STDOUT, 'TieOut';
+    my $self = $0;
+    unless (-f $self) {
+        my ($vol, $dirs, $file) = File::Spec->splitpath($self);
+        my @dirs = File::Spec->splitdir($dirs);
+        unshift(@dirs, File::Spec->updir);
+        $dirs = File::Spec->catdir(@dirs);
+        $self = File::Spec->catpath($vol, $dirs, $file);
+    }
+    @ARGV = ($self, $self);
+
+    cat();
+    is( scalar( $$out =~ s/use_ok\( 'ExtUtils::Command'//g), 2,
+        'concatenation worked' );
+
+    # the truth value here is reversed -- Perl true is shell false
+    @ARGV = ( $Testfile );
+    is( test_f(), 1, 'testing non-existent file' );
+
+    # these are destructive, have to keep setting @ARGV
+    @ARGV = ( $Testfile );
+    touch();
+
+    @ARGV = ( $Testfile );
+    is( test_f(), 0, 'testing touch() and test_f()' );
+    is_deeply( \@ARGV, [$Testfile], 'test_f preserves @ARGV' );
+
+    @ARGV = ( $Testfile );
+    ok( -e $ARGV[0], 'created!' );
+
+    my ($now) = time;
+    utime ($now, $now, $ARGV[0]);
+    sleep 2;
+
+    # Just checking modify time stamp, access time stamp is set
+    # to the beginning of the day in Win95.
+    # There's a small chance of a 1 second flutter here.
+    my $stamp = (stat($ARGV[0]))[9];
+    cmp_ok( abs($now - $stamp), '<=', 1, 'checking modify time stamp' ) ||
+      diag "mtime == $stamp, should be $now";
+
+    @ARGV = qw(newfile);
+    touch();
+
+    my $new_stamp = (stat('newfile'))[9];
+    cmp_ok( abs($new_stamp - $stamp), '>=', 2,  'newer file created' );
+
+    @ARGV = ('newfile', $Testfile);
+    eqtime();
+
+    $stamp = (stat($Testfile))[9];
+    cmp_ok( abs($new_stamp - $stamp), '<=', 1, 'eqtime' );
+
+    # eqtime use to clear the contents of the file being equalized!
+    open(FILE, ">>$Testfile") || die $!;
+    print FILE "Foo";
+    close FILE;
+
+    @ARGV = ('newfile', $Testfile);
+    eqtime();
+    ok( -s $Testfile, "eqtime doesn't clear the file being equalized" );
+
+    SKIP: {
+        if ($^O eq 'amigaos' || $^O eq 'os2' || $^O eq 'MSWin32' ||
+            $^O eq 'NetWare' || $^O eq 'dos' || $^O eq 'cygwin'  ||
+            $^O eq 'MacOS'
+           ) {
+            skip( "different file permission semantics on $^O", 3);
+        }
+
+        # change a file to execute-only
+        @ARGV = ( '0100', $Testfile );
+        ExtUtils::Command::chmod();
+
+        is( ((stat($Testfile))[2] & 07777) & 0700,
+            0100, 'change a file to execute-only' );
+
+        # change a file to read-only
+        @ARGV = ( '0400', $Testfile );
+        ExtUtils::Command::chmod();
+
+        is( ((stat($Testfile))[2] & 07777) & 0700,
+            0400, 'change a file to read-only' );
+
+        # change a file to write-only
+        @ARGV = ( '0200', $Testfile );
+        ExtUtils::Command::chmod();
+
+        is( ((stat($Testfile))[2] & 07777) & 0700,
+            0200, 'change a file to write-only' );
+    }
+
+    # change a file to read-write
+    @ARGV = ( '0600', $Testfile );
+    my @orig_argv = @ARGV;
+    ExtUtils::Command::chmod();
+    is_deeply( \@ARGV, \@orig_argv, 'chmod preserves @ARGV' );
+
+    is( ((stat($Testfile))[2] & 07777) & 0700,
+        0600, 'change a file to read-write' );
+
+
+    SKIP: {
+        if ($^O eq 'amigaos' || $^O eq 'os2' || $^O eq 'MSWin32' ||
+            $^O eq 'NetWare' || $^O eq 'dos' || $^O eq 'cygwin'  ||
+            $^O eq 'MacOS'   || $^O eq 'haiku'
+           ) {
+            skip( "different file permission semantics on $^O", 5);
+        }
+
+        @ARGV = ('testdir');
+        mkpath;
+        ok( -e 'testdir' );
+
+        # change a dir to execute-only
+        @ARGV = ( '0100', 'testdir' );
+        ExtUtils::Command::chmod();
+
+        is( ((stat('testdir'))[2] & 07777) & 0700,
+            0100, 'change a dir to execute-only' );
+
+        # change a dir to read-only
+        @ARGV = ( '0400', 'testdir' );
+        ExtUtils::Command::chmod();
+
+        is( ((stat('testdir'))[2] & 07777) & 0700,
+            0400, 'change a dir to read-only' );
+
+        # change a dir to write-only
+        @ARGV = ( '0200', 'testdir' );
+        ExtUtils::Command::chmod();
+
+        is( ((stat('testdir'))[2] & 07777) & 0700,
+            0200, 'change a dir to write-only' );
+
+        @ARGV = ('testdir');
+        rm_rf;
+        ok( ! -e 'testdir', 'rm_rf can delete a read-only dir' );
+    }
+
+
+    # mkpath
+    my $test_dir = File::Spec->join( 'ecmddir', 'temp2' );
+    @ARGV = ( $test_dir );
+    ok( ! -e $ARGV[0], 'temp directory not there yet' );
+    is( test_d(), 1, 'testing non-existent directory' );
+
+    @ARGV = ( $test_dir );
+    mkpath();
+    ok( -e $ARGV[0], 'temp directory created' );
+    is( test_d(), 0, 'testing existing dir' );
+
+    @ARGV = ( $test_dir );
+    # copy a file to a nested subdirectory
+    unshift @ARGV, $Testfile;
+    @orig_argv = @ARGV;
+    cp();
+    is_deeply( \@ARGV, \@orig_argv, 'cp preserves @ARGV' );
+
+    ok( -e File::Spec->join( 'ecmddir', 'temp2', $Testfile ), 'copied okay' );
+
+    # cp should croak if destination isn't directory (not a great warning)
+    @ARGV = ( $Testfile ) x 3;
+    eval { cp() };
+
+    like( $@, qr/Too many arguments/, 'cp croaks on error' );
+
+    # move a file to a subdirectory
+    @ARGV = ( $Testfile, 'ecmddir' );
+    @orig_argv = @ARGV;
+    ok( mv() );
+    is_deeply( \@ARGV, \@orig_argv, 'mv preserves @ARGV' );
+
+    ok( ! -e $Testfile, 'moved file away' );
+    ok( -e File::Spec->join( 'ecmddir', $Testfile ), 'file in new location' );
+
+    # mv should also croak with the same wacky warning
+    @ARGV = ( $Testfile ) x 3;
+
+    eval { mv() };
+    like( $@, qr/Too many arguments/, 'mv croaks on error' );
+
+    # Test expand_wildcards()
+    {
+        my $file = $Testfile;
+        @ARGV = ();
+        chdir 'ecmddir';
+
+        # % means 'match one character' on VMS.  Everything else is ?
+        my $match_char = $^O eq 'VMS' ? '%' : '?';
+        ($ARGV[0] = $file) =~ s/.\z/$match_char/;
+
+        # this should find the file
+        ExtUtils::Command::expand_wildcards();
+
+        is_deeply( \@ARGV, [$file], 'expanded wildcard ? successfully' );
+
+        # try it with the asterisk now
+        ($ARGV[0] = $file) =~ s/.{3}\z/\*/;
+        ExtUtils::Command::expand_wildcards();
+
+        is_deeply( \@ARGV, [$file], 'expanded wildcard * successfully' );
+
+        chdir File::Spec->updir;
+    }
+
+    # remove some files
+    my @files = @ARGV = ( File::Spec->catfile( 'ecmddir', $Testfile ),
+    File::Spec->catfile( 'ecmddir', 'temp2', $Testfile ) );
+    rm_f();
+
+    ok( ! -e $_, "removed $_ successfully" ) for (@ARGV);
+
+    # rm_f dir
+    @ARGV = my $dir = File::Spec->catfile( 'ecmddir' );
+    rm_rf();
+    ok( ! -e $dir, "removed $dir successfully" );
+}
+
+{
+    { local @ARGV = 'd2utest'; mkpath; }
+    open(FILE, '>d2utest/foo');
+    binmode(FILE);
+    print FILE "stuff\015\012and thing\015\012";
+    close FILE;
+
+    open(FILE, '>d2utest/bar');
+    binmode(FILE);
+    my $bin = "\c@\c@\c@\c@\c@\c@\cA\c@\c@\c@\015\012".
+              "\@\c@\cA\c@\c@\c@8__LIN\015\012";
+    print FILE $bin;
+    close FILE;
+
+    local @ARGV = 'd2utest';
+    ExtUtils::Command::dos2unix();
+
+    open(FILE, 'd2utest/foo');
+    is( join('', <FILE>), "stuff\012and thing\012", 'dos2unix' );
+    close FILE;
+
+    open(FILE, 'd2utest/bar');
+    binmode(FILE);
+    ok( -B 'd2utest/bar' );
+    is( join('', <FILE>), $bin, 'dos2unix preserves binaries');
+    close FILE;
+}
+
+END {
+    1 while unlink $Testfile, 'newfile';
+    File::Path::rmtree( 'ecmddir' ) if -e 'ecmddir';
+    File::Path::rmtree( 'd2utest' ) if -e 'd2utest';
+}
index d00ef5f..849393c 100644 (file)
@@ -68,6 +68,8 @@ local $ENV{PERL_INSTALL_QUIET};
 
 # Rerun the Makefile.PL, pm_to_blib should rerun
 {
+    # Seems there are occasional race conditions with these tests
+    # waiting a couple of seconds appears to resolve these
     sleep 2;
     run_ok(qq{$perl Makefile.PL});
 
index 48d9d17..1a25e98 100644 (file)
@@ -44,7 +44,7 @@ ok( chdir 'Big-Dummy', "chdir'd to Big-Dummy" ) ||
         $warnings .= join '', @_;
     };
     # prerequisite warnings are disabled while building the perl core:
-    local $ENV{PERL_CORE} = 0;
+    local $ExtUtils::MakeMaker::UNDER_CORE = 0;
 
     WriteMakefile(
         NAME            => 'Big::Dummy',
index a34b938..1020f55 100644 (file)
@@ -30,7 +30,7 @@ sub capture_make {
         $warnings .= join '', @_;
     };
 
-    local $ENV{PERL_CORE} = 0;
+    local $ExtUtils::MakeMaker::UNDER_CORE = 0;
 
     WriteMakefile(
         NAME      => 'VString::Test',
index cd75026..d4aa9a0 100644 (file)
@@ -1,39 +1,8 @@
 CPAN cpan/CPAN/lib/CPAN.pm ce62c43d72f101c011184dbbc59e21c2790826f0
 Compress::Raw::Zlib cpan/Compress-Raw-Zlib/Zlib.xs 50a0176905a1702caef88abf268e0b60ae1f7382
-ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/Command/MM.pm 7f4dfd0fe884bd42412bcf04ca80ef97b39c1d54
-ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist.pm bef099988b15fb0b2a1f5ac48c01af1f7f36d329
-ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist/Kid.pm 8168e18f0e3ce3ece4bb7e7c72d57ec07c67c402
-ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm 7115e97a53559cb3ec061dd6f7f344e522724c4a
-ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Config.pm f8db8d4245bf0684b8210c811f50d7cfb1a27d78
-ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/FAQ.pod 757bffb47857521311f8f3bde43ebe165f8d5191
-ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Locale.pm 82be06851deb84c6419ad003ce9b6d1957f395f3
-ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Tutorial.pod b01a546e52a908ce4ccd0b1a36fe81de52ab0691
-ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/version.pm 91a7b2a36210cebd57ff89d202af3d2b7bce430c
-ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/version/regex.pm d4e7d722b4544be28da838912a7cc714528bc05f
-ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/version/vpp.pm 7297903505ab551731692ec79cdc0f5396e12479
-ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mkbootstrap.pm 58872d66a72515f7d5be02417dfd2b28005fd61a
-ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mksymlists.pm ab80029ab16d38d4f2e41dc88d2ceb9f3790e477
-ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM.pm 453e0abbc4bb38db4c0820ad5c4846f313b66291
-ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_AIX.pm c1b1babda8f43ae7a2caba1cb4f70f92af5a0e34
-ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Any.pm 6f90d94ad3e7aa0045a3b1a10a1bb18391f89f57
-ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_BeOS.pm cab2b3ce08b71a4ce89aa630f236eb08b852439d
-ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Cygwin.pm 61fced0faf518bf87c265fcb51ed330ba354623f
-ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Darwin.pm ae0ef51a7b6dd0b05aa61c779df7167dda5f5119
-ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_DOS.pm 9bff0fc8801d93578a5ac35d39f06cdc0e2af1ef
-ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_MacOS.pm 0544301f7121ff02fd3a11b73ca2fab22e1176d4
-ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_NW5.pm 433135eecb85b4b1d90d3027432f329436c78447
-ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_OS2.pm 1fbb5605bfb47feee4083feba8aa85e659628f70
-ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_QNX.pm 5b66d1f485a6034d96fc24ba1665b1bad9e447f1
-ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm 8cef99a9bd370ecfd07ddb0efbdcbb4101255e45
-ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_UWIN.pm 939572fde3d59ba77c2e677fe2df2bed4bed5898
-ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VMS.pm 09c2049bfd25b735e2a5bcf56a6cff7b4827f9c8
-ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VOS.pm d65d63f8217a55c36f62e249814988974f593c79
-ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win32.pm c0ae2a92a7a9f71fc5f608b4192c6255510b7ae4
-ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win95.pm 12df38eacceeed73cab94c423236bfaed0fbbfec
-ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MY.pm 22fe9596a0237252f45399a36abc83b7813bc328
-ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/testlib.pm 7fbc42ca2ebc6c677b79ae5fd5647243cf069463
-ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/t/basic.t 6cdc7701b50e586bc9c4cfb1616de8eb0b1baf34
-ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/t/pm_to_blib.t 71ebcee355691ce374fcad251b12d8b2412462b3
+ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm fd048a43fc1a53acbe133bd96ddbf1421cfb28cf
+ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/t/prereq.t 53bda2c549fd13a6b6c13a070ca6bc79883081c0
+ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/t/vstrings.t 90035a2bdbf45f15b9c3196d072d7cba7e662871
 Pod::Perldoc cpan/Pod-Perldoc/lib/Pod/Perldoc.pm dcd53fba13060dbb71b1b5861fbc5c0881c8625a
 Pod::Simple cpan/Pod-Simple/lib/Pod/Simple/BlackBox.pm 4108633c4f40f7f63c5a0245df2b07a4a2f22fec
 Pod::Simple cpan/Pod-Simple/lib/Pod/Simple/Search.pm 7a48823f9faec6d6bbef08060e679e46ccf60bc8