Update ExtUtils-MakeMaker to CPAN version 7.32
authorChris 'BinGOs' Williams <chris@bingosnet.co.uk>
Sat, 17 Feb 2018 10:42:32 +0000 (10:42 +0000)
committerChris 'BinGOs' Williams <chris@bingosnet.co.uk>
Sat, 17 Feb 2018 10:42:32 +0000 (10:42 +0000)
  [DELTA]

7.32  Fri Feb 16 20:10:58 GMT 2018

    No changes since v7.31_08

7.31_08 Mon Feb 12 12:19:11 GMT 2018

    VMS fixes:
    - Fix 8-space line prefixes in MM_VMS.pm

7.31_07 Tue Jan 16 16:09:04 GMT 2018

    Bug fixes:
    - Change warning text for libscan() README.pod

7.31_06 Tue Jan 16 10:28:11 GMT 2018

    Bug fixes:
    - Teach libscan() to exclude README.pod

    Doc fixes:
    - Documented when XSMULTI and XSBUILD are available
    - Documented more version requirements for attributes

7.31_05 Sat Nov 25 09:22:51 GMT 2017 (LPW Edition)

    Doc fixes:
    - Spelling fixes
    - clarify behaviour if VENDORLIB and no VENDORARCH

7.31_04 Thu Oct  5 12:22:24 BST 2017

    Darwin/NeXT fixes:
    - Escape ld -framework flags

7.31_03 Mon Jul 10 09:34:26 BST 2017

    Bug fixes:
    - Filter out non-XS .a files for static builds

7.31_02 Mon Jun 26 13:53:15 BST 2017

    VMS fixes:
    - Fixes for .PL tests
    - VMS override for static_lib_pure_cmd
    - Make the new subdirsstatic test portable

7.31_01 Wed Jun 14 15:57:52 BST 2017

    Test fixes:
    - Skip static test unless in perl core or in a .git directory

38 files changed:
Porting/Maintainers.pl
cpan/ExtUtils-MakeMaker/lib/ExtUtils/Command.pm
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/Mkbootstrap.pm
cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mksymlists.pm
cpan/ExtUtils-MakeMaker/lib/ExtUtils/testlib.pm
cpan/ExtUtils-MakeMaker/t/03-xsstatic.t
cpan/ExtUtils-MakeMaker/t/MM_Unix.t
cpan/ExtUtils-MakeMaker/t/basic.t
cpan/ExtUtils-MakeMaker/t/lib/MakeMaker/Test/Setup/XS.pm
cpan/ExtUtils-MakeMaker/t/parse_version.t

index 7a15308..3624020 100755 (executable)
@@ -473,7 +473,7 @@ use File::Glob qw(:case);
     },
 
     'ExtUtils::MakeMaker' => {
-        'DISTRIBUTION' => 'BINGOS/ExtUtils-MakeMaker-7.30.tar.gz',
+        'DISTRIBUTION' => 'BINGOS/ExtUtils-MakeMaker-7.32.tar.gz',
         'FILES'        => q[cpan/ExtUtils-MakeMaker],
         'EXCLUDED'     => [
             qr{^t/lib/Test/},
index 05752e7..3eaa30a 100644 (file)
@@ -7,7 +7,7 @@ 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.30';
+$VERSION = '7.32';
 $VERSION = eval $VERSION;
 
 my $Is_VMS   = $^O eq 'VMS';
index be1eda5..6463d99 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.30';
+our $VERSION = '7.32';
 $VERSION = eval $VERSION;
 
 my $Is_VMS = $^O eq 'VMS';
@@ -205,7 +205,7 @@ Key/value pairs are extra information about the module.  Fields include:
     installed into      which directory your module was out into
     LINKTYPE            dynamic or static linking
     VERSION             module version number
-    EXE_FILES           any executables installed in a space seperated
+    EXE_FILES           any executables installed in a space separated
                         list
 
 =cut
index 15eed3c..8fc0ed1 100644 (file)
@@ -2,7 +2,7 @@ package ExtUtils::Liblist;
 
 use strict;
 
-our $VERSION = '7.30';
+our $VERSION = '7.32';
 $VERSION = eval $VERSION;
 
 use File::Spec;
index c3e097e..92e73ed 100644 (file)
@@ -11,7 +11,7 @@ use 5.006;
 
 use strict;
 use warnings;
-our $VERSION = '7.30';
+our $VERSION = '7.32';
 $VERSION = eval $VERSION;
 
 use ExtUtils::MakeMaker::Config;
@@ -57,6 +57,11 @@ sub _unix_os2_ext {
     my ( $pwd )   = cwd();    # from Cwd.pm
     my ( $found ) = 0;
 
+    if ( $^O eq 'darwin' or $^O eq 'next' )  {
+        # 'escape' Mach-O ld -framework flags, so they aren't dropped later on
+        $potential_libs =~ s/(^|\s)(-(?:weak_|reexport_|lazy_)?framework)\s+(\S+)/$1-Wl,$2 -Wl,$3/g;
+    }
+
     foreach my $thislib ( split ' ', $potential_libs ) {
         my ( $custom_name ) = '';
 
index b428153..3a6d1d8 100644 (file)
@@ -3,7 +3,7 @@ package ExtUtils::MM;
 use strict;
 use ExtUtils::MakeMaker::Config;
 
-our $VERSION = '7.30';
+our $VERSION = '7.32';
 $VERSION = eval $VERSION;
 
 require ExtUtils::Liblist;
index 4ff2802..70eb653 100644 (file)
@@ -1,7 +1,7 @@
 package ExtUtils::MM_AIX;
 
 use strict;
-our $VERSION = '7.30';
+our $VERSION = '7.32';
 $VERSION = eval $VERSION;
 
 use ExtUtils::MakeMaker::Config;
index 2bcb4ab..bf403ab 100644 (file)
@@ -1,7 +1,7 @@
 package ExtUtils::MM_Any;
 
 use strict;
-our $VERSION = '7.30';
+our $VERSION = '7.32';
 $VERSION = eval $VERSION;
 
 use Carp;
@@ -2899,13 +2899,19 @@ Takes a path to a file or dir and returns an empty string if we don't
 want to include this file in the library.  Otherwise it returns the
 the $path unchanged.
 
-Mainly used to exclude version control administrative directories from
-installation.
+Mainly used to exclude version control administrative directories
+and base-level F<README.pod> from installation.
 
 =cut
 
 sub libscan {
     my($self,$path) = @_;
+
+    if ($path =~ m<^README\.pod$>i) {
+        warn "WARNING: Older versions of ExtUtils::MakeMaker may errantly install $path as part of this distribution. It is recommended to avoid using this path in CPAN modules.\n";
+        return '';
+    }
+
     my($dirs,$file) = ($self->splitpath($path))[1,2];
     return '' if grep /^(?:RCS|CVS|SCCS|\.svn|_darcs)$/,
                      $self->splitdir($dirs), $file;
index f9ea372..0388970 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.30';
+our $VERSION = '7.32';
 $VERSION = eval $VERSION;
 
 
index b4535c6..ab66061 100644 (file)
@@ -9,7 +9,7 @@ require ExtUtils::MM_Unix;
 require ExtUtils::MM_Win32;
 our @ISA = qw( ExtUtils::MM_Unix );
 
-our $VERSION = '7.30';
+our $VERSION = '7.32';
 $VERSION = eval $VERSION;
 
 
index 5c882b5..63abe91 100644 (file)
@@ -2,7 +2,7 @@ package ExtUtils::MM_DOS;
 
 use strict;
 
-our $VERSION = '7.30';
+our $VERSION = '7.32';
 $VERSION = eval $VERSION;
 
 require ExtUtils::MM_Any;
@@ -51,6 +51,14 @@ sub replace_manpage_separator {
     return $man;
 }
 
+=item xs_static_lib_is_xs
+
+=cut
+
+sub xs_static_lib_is_xs {
+    return 1;
+}
+
 =back
 
 =head1 AUTHOR
index 0231a2d..7257d9d 100644 (file)
@@ -7,7 +7,7 @@ BEGIN {
     our @ISA = qw( ExtUtils::MM_Unix );
 }
 
-our $VERSION = '7.30';
+our $VERSION = '7.32';
 $VERSION = eval $VERSION;
 
 
@@ -24,7 +24,7 @@ ExtUtils::MM_Darwin - special behaviors for OS X
 See L<ExtUtils::MM_Unix> for L<ExtUtils::MM_Any> for documentation on the
 methods overridden here.
 
-=head2 Overriden Methods
+=head2 Overridden Methods
 
 =head3 init_dist
 
index ff843c7..872cb8f 100644 (file)
@@ -2,7 +2,7 @@ package ExtUtils::MM_MacOS;
 
 use strict;
 
-our $VERSION = '7.30';
+our $VERSION = '7.32';
 $VERSION = eval $VERSION;
 
 sub new {
index 911deca..8ee44ef 100644 (file)
@@ -22,7 +22,7 @@ use strict;
 use ExtUtils::MakeMaker::Config;
 use File::Basename;
 
-our $VERSION = '7.30';
+our $VERSION = '7.32';
 $VERSION = eval $VERSION;
 
 require ExtUtils::MM_Win32;
@@ -137,6 +137,14 @@ sub static_lib_pure_cmd {
                                   : '-type library -o $@ ' . $src));
 }
 
+=item xs_static_lib_is_xs
+
+=cut
+
+sub xs_static_lib_is_xs {
+    return 1;
+}
+
 =item dynamic_lib
 
 Override of utility methods for OS-specific work.
index 691a366..8801e6b 100644 (file)
@@ -5,7 +5,7 @@ use strict;
 use ExtUtils::MakeMaker qw(neatvalue);
 use File::Spec;
 
-our $VERSION = '7.30';
+our $VERSION = '7.32';
 $VERSION = eval $VERSION;
 
 require ExtUtils::MM_Any;
@@ -131,6 +131,14 @@ sub os_flavor {
     return('OS/2');
 }
 
+=item xs_static_lib_is_xs
+
+=cut
+
+sub xs_static_lib_is_xs {
+    return 1;
+}
+
 =back
 
 =cut
index 25e4d94..3af0df3 100644 (file)
@@ -1,7 +1,7 @@
 package ExtUtils::MM_QNX;
 
 use strict;
-our $VERSION = '7.30';
+our $VERSION = '7.32';
 $VERSION = eval $VERSION;
 
 require ExtUtils::MM_Unix;
index 6b40ed8..e231c07 100644 (file)
@@ -1,7 +1,7 @@
 package ExtUtils::MM_UWIN;
 
 use strict;
-our $VERSION = '7.30';
+our $VERSION = '7.32';
 $VERSION = eval $VERSION;
 
 require ExtUtils::MM_Unix;
index 6233513..e902e8e 100644 (file)
@@ -14,7 +14,7 @@ use ExtUtils::MakeMaker qw($Verbose neatvalue _sprintf562);
 
 # If we make $VERSION an our variable parse_version() breaks
 use vars qw($VERSION);
-$VERSION = '7.30';
+$VERSION = '7.32';
 $VERSION = eval $VERSION;  ## no critic [BuiltinFunctions::ProhibitStringyEval]
 
 require ExtUtils::MM_Any;
@@ -2530,78 +2530,13 @@ $(MAKE_APERL_FILE) : static $(FIRST_MAKEFILE) pm_to_blib
     $linkcmd =~ s,(perl\.exp),\$(PERL_INC)/$1,;
 
     # Which *.a files could we make use of...
-    my %static;
-    require File::Find;
-    # don't use File::Spec here because on Win32 F::F still uses "/"
-    my $installed_version = join('/',
-       'auto', $self->{FULLEXT}, "$self->{BASEEXT}$self->{LIB_EXT}"
-    );
-    File::Find::find(sub {
-       if ($File::Find::name =~ m{/auto/share\z}) {
-           # in a subdir of auto/share, prune because e.g.
-           # Alien::pkgconfig uses File::ShareDir to put .a files
-           # there. do not want
-           $File::Find::prune = 1;
-           return;
-       }
-
-       return unless m/\Q$self->{LIB_EXT}\E$/;
-
-       return unless -f 'extralibs.ld'; # this checks is a "proper" XS installation
-
-        # Skip perl's libraries.
-        return if m/^libperl/ or m/^perl\Q$self->{LIB_EXT}\E$/;
-
-       # Skip purified versions of libraries
-        # (e.g., DynaLoader_pure_p1_c0_032.a)
-       return if m/_pure_\w+_\w+_\w+\.\w+$/ and -f "$File::Find::dir/.pure";
-
-       if( exists $self->{INCLUDE_EXT} ){
-               my $found = 0;
-
-               (my $xx = $File::Find::name) =~ s,.*?/auto/,,s;
-               $xx =~ s,/?$_,,;
-               $xx =~ s,/,::,g;
-
-               # Throw away anything not explicitly marked for inclusion.
-               # DynaLoader is implied.
-               foreach my $incl ((@{$self->{INCLUDE_EXT}},'DynaLoader')){
-                       if( $xx eq $incl ){
-                               $found++;
-                               last;
-                       }
-               }
-               return unless $found;
-       }
-       elsif( exists $self->{EXCLUDE_EXT} ){
-               (my $xx = $File::Find::name) =~ s,.*?/auto/,,s;
-               $xx =~ s,/?$_,,;
-               $xx =~ s,/,::,g;
-
-               # Throw away anything explicitly marked for exclusion
-               foreach my $excl (@{$self->{EXCLUDE_EXT}}){
-                       return if( $xx eq $excl );
-               }
-       }
-
-       # don't include the installed version of this extension. I
-       # leave this line here, although it is not necessary anymore:
-       # I patched minimod.PL instead, so that Miniperl.pm won't
-       # include duplicates
-
-       # Once the patch to minimod.PL is in the distribution, I can
-       # drop it
-       return if $File::Find::name =~ m:\Q$installed_version\E\z:;
-       use Cwd 'cwd';
-       $static{cwd() . "/" . $_}++;
-    }, grep( -d $_, map { $self->catdir($_, 'auto') } @{$searchdirs || []}) );
-
+    my $staticlib21 = $self->_find_static_libs($searchdirs);
     # We trust that what has been handed in as argument, will be buildable
     $static = [] unless $static;
-    @static{@{$static}} = (1) x @{$static};
+    @$staticlib21{@{$static}} = (1) x @{$static};
 
     $extra = [] unless $extra && ref $extra eq 'ARRAY';
-    for (sort keys %static) {
+    for (sort keys %$staticlib21) {
        next unless /\Q$self->{LIB_EXT}\E\z/;
        $_ = dirname($_) . "/extralibs.ld";
        push @$extra, $_;
@@ -2615,7 +2550,7 @@ $(MAKE_APERL_FILE) : static $(FIRST_MAKEFILE) pm_to_blib
 # MAP_STATIC doesn't look into subdirs yet. Once "all" is made and we
 # regenerate the Makefiles, MAP_STATIC and the dependencies for
 # extralibs.all are computed correctly
-    my @map_static = reverse sort keys %static;
+    my @map_static = reverse sort keys %$staticlib21;
     push @m, "
 MAP_LINKCMD   = $linkcmd
 MAP_STATIC    = ", join(" \\\n\t", map { qq{"$_"} } @map_static), "
@@ -2727,6 +2662,92 @@ map_clean :
     join '', @m;
 }
 
+# utility method
+sub _find_static_libs {
+    my ($self, $searchdirs) = @_;
+    # don't use File::Spec here because on Win32 F::F still uses "/"
+    my $installed_version = join('/',
+       'auto', $self->{FULLEXT}, "$self->{BASEEXT}$self->{LIB_EXT}"
+    );
+    my %staticlib21;
+    require File::Find;
+    File::Find::find(sub {
+       if ($File::Find::name =~ m{/auto/share\z}) {
+           # in a subdir of auto/share, prune because e.g.
+           # Alien::pkgconfig uses File::ShareDir to put .a files
+           # there. do not want
+           $File::Find::prune = 1;
+           return;
+       }
+
+       return unless m/\Q$self->{LIB_EXT}\E$/;
+
+       return unless -f 'extralibs.ld'; # this checks is a "proper" XS installation
+
+        # Skip perl's libraries.
+        return if m/^libperl/ or m/^perl\Q$self->{LIB_EXT}\E$/;
+
+       # Skip purified versions of libraries
+        # (e.g., DynaLoader_pure_p1_c0_032.a)
+       return if m/_pure_\w+_\w+_\w+\.\w+$/ and -f "$File::Find::dir/.pure";
+
+       if( exists $self->{INCLUDE_EXT} ){
+               my $found = 0;
+
+               (my $xx = $File::Find::name) =~ s,.*?/auto/,,s;
+               $xx =~ s,/?$_,,;
+               $xx =~ s,/,::,g;
+
+               # Throw away anything not explicitly marked for inclusion.
+               # DynaLoader is implied.
+               foreach my $incl ((@{$self->{INCLUDE_EXT}},'DynaLoader')){
+                       if( $xx eq $incl ){
+                               $found++;
+                               last;
+                       }
+               }
+               return unless $found;
+       }
+       elsif( exists $self->{EXCLUDE_EXT} ){
+               (my $xx = $File::Find::name) =~ s,.*?/auto/,,s;
+               $xx =~ s,/?$_,,;
+               $xx =~ s,/,::,g;
+
+               # Throw away anything explicitly marked for exclusion
+               foreach my $excl (@{$self->{EXCLUDE_EXT}}){
+                       return if( $xx eq $excl );
+               }
+       }
+
+       # don't include the installed version of this extension. I
+       # leave this line here, although it is not necessary anymore:
+       # I patched minimod.PL instead, so that Miniperl.pm won't
+       # include duplicates
+
+       # Once the patch to minimod.PL is in the distribution, I can
+       # drop it
+       return if $File::Find::name =~ m:\Q$installed_version\E\z:;
+       return if !$self->xs_static_lib_is_xs($_);
+       use Cwd 'cwd';
+       $staticlib21{cwd() . "/" . $_}++;
+    }, grep( -d $_, map { $self->catdir($_, 'auto') } @{$searchdirs || []}) );
+    return \%staticlib21;
+}
+
+=item xs_static_lib_is_xs (o)
+
+Called by a utility method of makeaperl. Checks whether a given file
+is an XS library by seeing whether it defines any symbols starting
+with C<boot_>.
+
+=cut
+
+sub xs_static_lib_is_xs {
+    my ($self, $libfile) = @_;
+    my $devnull = File::Spec->devnull;
+    return `nm $libfile 2>$devnull` =~ /\bboot_/;
+}
+
 =item makefile (o)
 
 Defines how to rewrite the Makefile.
index 609423b..901f86a 100644 (file)
@@ -15,7 +15,7 @@ BEGIN {
 
 use File::Basename;
 
-our $VERSION = '7.30';
+our $VERSION = '7.32';
 $VERSION = eval $VERSION;
 
 require ExtUtils::MM_Any;
@@ -1242,6 +1242,29 @@ sub xs_make_static_lib {
 }
 
 
+=item static_lib_pure_cmd (override)
+
+Use VMS commands to manipulate object library.
+
+=cut
+
+sub static_lib_pure_cmd {
+    my ($self, $from) = @_;
+
+    sprintf <<'MAKE_FRAG', $from;
+       If F$Search("$(MMS$TARGET)").eqs."" Then Library/Object/Create $(MMS$TARGET)
+       Library/Object/Replace $(MMS$TARGET) %s
+MAKE_FRAG
+}
+
+=item xs_static_lib_is_xs
+
+=cut
+
+sub xs_static_lib_is_xs {
+    return 1;
+}
+
 =item extra_clean_files
 
 Clean up some OS specific files.  Plus the temp file used to shorten
@@ -1286,7 +1309,7 @@ sub tarfile_target {
 $(DISTVNAME).tar$(SUFFIX) : distdir
        $(PREOP)
        $(TO_UNIX)
-        $(TAR) "$(TARFLAGS)" $(DISTVNAME).tar [.$(DISTVNAME)...]
+       $(TAR) "$(TARFLAGS)" $(DISTVNAME).tar [.$(DISTVNAME)...]
        $(RM_RF) $(DISTVNAME)
        $(COMPRESS) $(DISTVNAME).tar
        $(POSTOP)
@@ -1336,7 +1359,7 @@ pure_install :: pure_$(INSTALLDIRS)_install
        $(NOECHO) $(NOOP)
 
 doc_install :: doc_$(INSTALLDIRS)_install
-        $(NOECHO) $(NOOP)
+       $(NOECHO) $(NOOP)
 
 pure__install : pure_site_install
        $(NOECHO) $(ECHO) "INSTALLDIRS not defined, defaulting to INSTALLDIRS=site"
index 86775c6..3e572bf 100644 (file)
@@ -1,7 +1,7 @@
 package ExtUtils::MM_VOS;
 
 use strict;
-our $VERSION = '7.30';
+our $VERSION = '7.32';
 $VERSION = eval $VERSION;
 
 require ExtUtils::MM_Unix;
index 815871d..cb9dc9a 100644 (file)
@@ -27,7 +27,7 @@ use ExtUtils::MakeMaker qw(neatvalue _sprintf562);
 require ExtUtils::MM_Any;
 require ExtUtils::MM_Unix;
 our @ISA = qw( ExtUtils::MM_Any ExtUtils::MM_Unix );
-our $VERSION = '7.30';
+our $VERSION = '7.32';
 $VERSION = eval $VERSION;
 
 $ENV{EMXSHELL} = 'sh'; # to run `commands`
index 1fd2959..22203b0 100644 (file)
@@ -2,7 +2,7 @@ package ExtUtils::MM_Win95;
 
 use strict;
 
-our $VERSION = '7.30';
+our $VERSION = '7.32';
 $VERSION = eval $VERSION;
 
 require ExtUtils::MM_Win32;
index a671c08..0e6d4e8 100644 (file)
@@ -3,7 +3,7 @@ package ExtUtils::MY;
 use strict;
 require ExtUtils::MM;
 
-our $VERSION = '7.30';
+our $VERSION = '7.32';
 $VERSION = eval $VERSION;
 our @ISA = qw(ExtUtils::MM);
 
index 3d4913e..6de9c0a 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.30';
+our $VERSION = '7.32';
 $VERSION = eval $VERSION;  ## no critic [BuiltinFunctions::ProhibitStringyEval]
 
 # Emulate something resembling CVS $Revision$
@@ -1817,7 +1817,7 @@ located in the C<x86> directory relative to the PPD itself.
 
 =item BUILD_REQUIRES
 
-Available in version 6.5503 and above.
+Available in version 6.55_03 and above.
 
 A hash of modules that are needed to build your module but not run it.
 
@@ -2069,6 +2069,8 @@ Defaults to $Config{installprivlib}.
 
 =item INSTALLSCRIPT
 
+Available in version 6.30_02 and above.
+
 Used by 'make install' which copies files from INST_SCRIPT to this
 directory if INSTALLDIRS=perl.
 
@@ -2105,7 +2107,9 @@ directory if INSTALLDIRS is set to site (default).
 =item INSTALLVENDORARCH
 
 Used by 'make install', which copies files from INST_ARCHLIB to this
-directory if INSTALLDIRS is set to vendor.
+directory if INSTALLDIRS is set to vendor. Note that if you do not set
+this, the value of INSTALLVENDORLIB will be used, which is probably not
+what you want.
 
 =item INSTALLVENDORBIN
 
@@ -2128,6 +2132,8 @@ If set to 'none', no man pages will be installed.
 
 =item INSTALLVENDORSCRIPT
 
+Available in version 6.30_02 and above.
+
 Used by 'make install' which copies files from INST_SCRIPT to this
 directory if INSTALLDIRS is set to vendor.
 
@@ -2233,11 +2239,15 @@ linkext below).
 
 =item MAGICXS
 
+Available in version 6.8305 and above.
+
 When this is set to C<1>, C<OBJECT> will be automagically derived from
 C<O_FILES>.
 
 =item MAKE
 
+Available in version 6.30_01 and above.
+
 Variant of make you intend to run the generated Makefile with.  This
 parameter lets Makefile.PL know what make quirks to account for when
 generating the Makefile.
@@ -2409,6 +2419,8 @@ Defaults to false.
 
 =item NO_MYMETA
 
+Available in version 6.57_02 and above.
+
 When true, suppresses the generation of MYMETA.yml and MYMETA.json module
 meta-data files during 'perl Makefile.PL'.
 
@@ -2416,12 +2428,16 @@ Defaults to false.
 
 =item NO_PACKLIST
 
+Available in version 6.7501 and above.
+
 When true, suppresses the writing of C<packlist> files for installs.
 
 Defaults to false.
 
 =item NO_PERLLOCAL
 
+Available in version 6.7501 and above.
+
 When true, suppresses the appending of installations to C<perllocal>.
 
 Defaults to false.
@@ -2539,6 +2555,8 @@ avoided, it may be undefined)
 
 =item PERM_DIR
 
+Available in version 6.51_01 and above.
+
 Desired permission for directories. Defaults to C<755>.
 
 =item PERM_RW
@@ -2660,10 +2678,14 @@ the installation of a package.
 
 =item PPM_UNINSTALL_EXEC
 
+Available in version 6.8502 and above.
+
 Name of the executable used to run C<PPM_UNINSTALL_SCRIPT> below. (e.g. perl)
 
 =item PPM_UNINSTALL_SCRIPT
 
+Available in version 6.8502 and above.
+
 Name of the script that gets executed by the Perl Package Manager before
 the removal of a package.
 
@@ -2761,6 +2783,8 @@ Overridable by PREFIX
 
 =item SIGN
 
+Available in version 6.18 and above.
+
 When true, perform the generation and addition to the MANIFEST of the
 SIGNATURE file in the distdir during 'make distdir', via 'cpansign
 -s'.
@@ -2881,6 +2905,8 @@ deleted by a make clean.
 
 =item XSBUILD
 
+Available in version 7.12 and above.
+
 Hashref with options controlling the operation of C<XSMULTI>:
 
   {
@@ -2913,6 +2939,8 @@ C<$(OBJ_EXT)> appended.
 
 =item XSMULTI
 
+Available in version 7.12 and above.
+
 When this is set to C<1>, multiple XS files may be placed under F<lib/>
 next to their corresponding C<*.pm> files (this is essential for compiling
 with the correct C<VERSION> values). This feature should be considered
index 1246b0e..40fae2b 100644 (file)
@@ -2,7 +2,7 @@ package ExtUtils::MakeMaker::Config;
 
 use strict;
 
-our $VERSION = '7.30';
+our $VERSION = '7.32';
 $VERSION = eval $VERSION;
 
 use Config ();
index fdbce6e..60ccd61 100644 (file)
@@ -1,6 +1,6 @@
 package ExtUtils::MakeMaker::FAQ;
 
-our $VERSION = '7.30';
+our $VERSION = '7.32';
 $VERSION = eval $VERSION;
 
 1;
@@ -613,7 +613,7 @@ ExtUtils::Makemaker, ExtUtils::Liblist and ExtUtils::MM_{Current OS}
 NOTE: The methods in MY are simply copied into PACK### rather than
 MY being a superclass of PACK###.  I don't remember the rationale.
 
-NOTE: ExtUtils::Liblist should be removed from the inheritence hiearchy
+NOTE: ExtUtils::Liblist should be removed from the inheritance hiearchy
 and simply be called as functions.
 
 NOTE: Modules like File::Spec and Exporter have been omitted for clarity.
index 49f85c7..88d6738 100644 (file)
@@ -1,7 +1,7 @@
 package ExtUtils::MakeMaker::Locale;
 
 use strict;
-our $VERSION = "7.30";
+our $VERSION = "7.32";
 $VERSION = eval $VERSION;
 
 use base 'Exporter';
index b308546..cad711d 100644 (file)
@@ -1,6 +1,6 @@
 package ExtUtils::MakeMaker::Tutorial;
 
-our $VERSION = '7.30';
+our $VERSION = '7.32';
 $VERSION = eval $VERSION;
 
 
@@ -128,7 +128,7 @@ You would use the following C<test> directive:
     test => {TESTS => 't/*.t t/*/*/*.t'}
 
 Note that in the above example, tests in the first subdirectory will not be
-run. To run all tests in the intermediary subdirectory preceeding the one
+run. To run all tests in the intermediary subdirectory preceding the one
 the test files are in, you need to explicitly note it:
 
     test => {TESTS => 't/*.t t/*/*.t t/*/*/*.t'}
index e258bda..b3469d2 100644 (file)
@@ -15,7 +15,7 @@ use strict;
 
 use vars qw(@ISA $VERSION $CLASS $STRICT $LAX *declare *qv);
 
-$VERSION = '7.30';
+$VERSION = '7.32';
 $VERSION = eval $VERSION;
 $CLASS = 'version';
 
index ae1915e..6335c1c 100644 (file)
@@ -10,7 +10,7 @@ use strict;
 
 use vars qw($VERSION $CLASS $STRICT $LAX);
 
-$VERSION = '7.30';
+$VERSION = '7.32';
 $VERSION = eval $VERSION;
 
 #--------------------------------------------------------------------------#
index a9d5df1..20b16c1 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.30';
+our $VERSION = '7.32';
 $VERSION = eval $VERSION;
 
 require Exporter;
index 26dddc2..16d805d 100644 (file)
@@ -10,7 +10,7 @@ use Config;
 
 our @ISA = qw(Exporter);
 our @EXPORT = qw(&Mksymlists);
-our $VERSION = '7.30';
+our $VERSION = '7.32';
 $VERSION = eval $VERSION;
 
 sub Mksymlists {
index 29d05d5..4a09c1e 100644 (file)
@@ -3,7 +3,7 @@ package ExtUtils::testlib;
 use strict;
 use warnings;
 
-our $VERSION = '7.30';
+our $VERSION = '7.32';
 $VERSION = eval $VERSION;
 
 use Cwd;
index 8e18ab3..f27ad7e 100644 (file)
@@ -3,10 +3,15 @@
 use strict;
 use warnings;
 use Config;
+
+my $release;
+
 BEGIN {
+    $release = ( -d '.git' ? 1 : 0 );
     chdir 't' or die "chdir(t): $!\n";
     unshift @INC, 'lib/';
 }
+
 use MakeMaker::Test::Utils;
 use MakeMaker::Test::Setup::XS;
 use Test::More;
@@ -15,6 +20,7 @@ plan skip_all => "ExtUtils::CBuilder not installed or couldn't find a compiler"
   unless have_compiler();
 plan skip_all => 'Shared perl library' if $Config{useshrplib} eq 'true';
 plan skip_all => $^O if $^O =~ m!^(MSWin32|cygwin|haiku)$!;
+plan skip_all => 'Skipped when not PERL_CORE or in git repo' unless $ENV{PERL_CORE} or $release;
 my @tests = list_static();
 plan skip_all => "No tests" unless @tests;
 plan tests => 6 * @tests;
index 9a8d18f..388bc54 100644 (file)
@@ -12,7 +12,7 @@ BEGIN {
         plan skip_all => 'Non-Unix platform';
     }
     else {
-        plan tests => 110;
+        plan tests => 113;
     }
 }
 
@@ -150,6 +150,9 @@ is ($t->has_link_code(),1); is ($t->{HAS_LINK_CODE},1);
 ###############################################################################
 # libscan
 
+is ($t->libscan('Readme.pod'),      '', 'libscan excludes base Readme.pod');
+is ($t->libscan('README.pod'),      '', 'libscan excludes base README.pod');
+is ($t->libscan('lib/Foo/README.pod'),      'lib/Foo/README.pod', 'libscan accepts README.pod in a subdirectory');
 is ($t->libscan('foo/RCS/bar'),     '', 'libscan on RCS');
 is ($t->libscan('CVS/bar/car'),     '', 'libscan on CVS');
 is ($t->libscan('SCCS'),            '', 'libscan on SCCS');
index 41ecd99..534bf21 100644 (file)
@@ -367,7 +367,7 @@ note "META file validity"; SKIP: {
       "MANIFEST has META.yml"
     );
     is( $manifest->{'meta.json'}, 'Module JSON meta-data (added by MakeMaker)',
-      "MANFIEST has META.json"
+      "MANIFEST has META.json"
     );
 
     # Test NO_META META.yml suppression
@@ -441,6 +441,7 @@ note "META file validity"; SKIP: {
 # Make sure init_dirscan doesn't go into the distdir
 # also with a "messup.PL" that will make a build fail
 open $fh, '>', 'messup.PL' or die "messup.PL: $!";
+print $fh 'print "Extracting messup (with variable substitutions)\n";' . "\n";
 print $fh 'die';
 close $fh;
 @mpl_out = run(qq{$perl Makefile.PL "PREFIX=$DUMMYINST"});
index eb99074..3d1f57e 100644 (file)
@@ -151,6 +151,9 @@ $label2files{static} = +{
   ),
   "blib/arch/auto/share/dist/x-y/libwhatevs$MM->{LIB_EXT}" => 'hi there', # mimic what File::ShareDir can do
   "blib/arch/auto/Alien/ROOT/root/lib/root/root$MM->{LIB_EXT}" => 'hi there', # mimic Alien::ROOT that installs a .a without extralibs.ld
+  # next two mimic dist that installs a .a WITH extralibs.ld but that is still not XS
+  "blib/arch/auto/Dist/File$MM->{LIB_EXT}" => 'hi there',
+  "blib/arch/auto/Dist/extralibs.ld" => '',
 };
 
 $label2files{subdirs} = +{
@@ -215,20 +218,22 @@ $label2files{subdirsstatic} = +{
 };
 
 # to mimic behaviour of CGI-Deurl-XS version 0.08
+my $OTHERMAKEFILE = File::Spec->catfile('Other', makefile_name());
 $label2files{subdirsskip} = +{
   %{ $label2files{subdirscomplex} }, # make copy
   'Makefile.PL' => sprintf(
     $MAKEFILEPL,
     'Test', 'Test.pm', qq{},
-    <<'EOF',
-MYEXTLIB => 'Other$(DIRFILESEP)libparser$(LIB_EXT)',
-EOF
-  ) . <<'EOF',
+    q[
+MYEXTLIB => '] . File::Spec->catfile('Other', 'libparser$(LIB_EXT)') . q[',
+     ]
+  )
+  . q[
 sub MY::postamble {
     my ($self) = @_;
-    return '$(MYEXTLIB) : Other$(DIRFILESEP)Makefile'."\n\t".$self->cd('Other', '$(MAKE) $(PASSTHRU)')."\n";
+    return '$(MYEXTLIB) : ] . $OTHERMAKEFILE . q['."\n\t".$self->cd('Other', '$(MAKE) $(PASSTHRU)')."\n";
 }
-EOF
+     ],
   'Other/Makefile.PL' => sprintf(
     $MAKEFILEPL,
     'Other', 'Other.pm', qq{},
index 0e6a842..2dbd064 100644 (file)
@@ -23,7 +23,7 @@ my %versions = (q[$VERSION = '1.00']            => '1.00',
                 '$VERSION = undef'              => 'undef',
                 '$wibble  = 1.0'                => undef,
                 q[my $VERSION = '1.01']         => 'undef',
-                q[local $VERISON = '1.02']      => 'undef',
+                q[local $VERSION = '1.02']      => 'undef',
                 q[local $FOO::VERSION = '1.30'] => 'undef',
                 q[if( $Foo::VERSION >= 3.00 ) {]=> 'undef',
                 q[our $VERSION = '1.23';]       => '1.23',