diff options
author | Chris 'BinGOs' Williams <chris@bingosnet.co.uk> | 2019-06-02 09:41:35 +0100 |
---|---|---|
committer | Chris 'BinGOs' Williams <chris@bingosnet.co.uk> | 2019-06-02 09:41:35 +0100 |
commit | 3000ebb8835feceffa00b8081072ed74a39db7e3 (patch) | |
tree | b9c4cb3c392fdd0ec5d53596b3608b3a2f4008d1 /cpan/ExtUtils-MakeMaker | |
parent | c8b94fe0369af7071d2cfe1221aeb0b9f6c4d284 (diff) | |
download | perl-3000ebb8835feceffa00b8081072ed74a39db7e3.tar.gz |
Update ExtUtils-MakeMaker to CPAN version 7.36
[DELTA]
7.36 Sun Apr 28 16:28:20 BST 2019
No changes since v7.35_14
This release was made possible by the kind
sponsors of the 2019 Perl Toolchain Summit
held in Marlow, UK:
Booking.com, cPanel, MaxMind, FastMail, ZipRecruiter,
Cogendo, Elastic, OpenCage Data, Bluehost, Perl Services,
Zoopla, Archer Education, OpusVL, Oetiker+Partner, YEF
7.35_14 Sun Apr 28 14:12:22 BST 2019
Win32 fixes:
- Add ExtUtils::PL2Bat path to pl2bat when PERL_CORE
7.35_13 Sun Apr 28 11:57:57 BST 2019
Bug fixes:
- Suppress warnings from EUMM::Locale code page workaround
7.35_12 Sat Apr 27 22:37:26 BST 2019
Enhancements:
- add AppVeyor CI configuration
see <https://github.com/rivy/CI.AppVeyor.helpers-perl> for more information
Bug fixes:
- Resolve RTs 127028 && 127316 on Mojave system perl
- Honour man page disablement under INSTALL_BASE
- fix `dmake` warning by removing dmake-superfluous ".NOTPARALLEL" target
- suppress inherited AUTOLOAD warning for 'Win32::ConsoleCP()'
- fix perl image (aka, executable) quoting for `dmake` builds
- skip broken test for Win32 strawberry perl v5.10 (and some earlier versions)
- add workaround to ExtUtils::MakeMaker::Locale for code pages 'cp65000' and 'cp65001'
7.35_11 Thu Apr 25 11:53:59 BST 2019
Bug fixes:
- Fix RT#128004 gcc AIX builds broken
7.35_10 Wed Feb 20 10:03:50 GMT 2019
Test fixes:
- Skip "merged /usr" tests on MSWin32
7.35_09 Mon Feb 18 10:05:42 GMT 2019
Bug fixes:
- stringify version before comparing
Test fixes:
- Changed wording of skip message for xsstatic
QA fixes:
- travis is deprecating container-based environments
7.35_08 Thu Dec 6 10:22:02 GMT 2018
Enhancements:
- propagate all variables used by Buildroot to subdirs
7.35_07 Fri Nov 23 11:34:27 GMT 2018
Bug fixes:
- Avoid mangling /bin non-perl shebangs on merged-/usr systems
VMS fixes:
- Handle PERL_ARCHLIBDEP and DESTINSTALL... macros on VMS.
- Remove trailing space from multi-in.PL in PL_FILES.t
- Skip "merged /usr" tests on VMS.
7.35_06 Thu Jul 19 20:30:55 BST 2018
Enhancements:
- Override shebang with PERL_MM_SHEBANG=relocatable env var
Bug fixes:
- Refactored Liblist::Kid tests, enabling UNIX testing
7.35_05 Tue Jul 10 09:44:25 BST 2018
Win32 fixes:
- add Visual C parallel building support
7.35_04 Mon Jul 9 10:21:59 BST 2018
Bug fixes:
- Fix manification on MSWin32
Doc fixes:
- Mention manifypods target in FAQ for
man creation on non-un*x OS
7.35_03 Fri Apr 27 14:28:21 BST 2018
Enhancements:
- Allow specifying extra inputs for PL_FILES scripts
7.35_02 Tue Apr 24 11:38:39 BST 2018
Core fixes:
- Win32 fixes for gmake 4.2.1 in quoting literals
7.35_01 Thu Apr 19 13:17:35 BST 2018
Core fixes:
- use tr instead of eval on $VERSION
- Fix PUREPERL_ONLY warnings
Diffstat (limited to 'cpan/ExtUtils-MakeMaker')
42 files changed, 300 insertions, 124 deletions
diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Command.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Command.pm index 4924c81fbe..52c47d2ccf 100644 --- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Command.pm +++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Command.pm @@ -7,8 +7,8 @@ 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.34'; -$VERSION = eval $VERSION; +$VERSION = '7.36'; +$VERSION =~ tr/_//d; my $Is_VMS = $^O eq 'VMS'; my $Is_VMS_mode = $Is_VMS; diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Command/MM.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Command/MM.pm index 0323ed40fa..4e07ea5e59 100644 --- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Command/MM.pm +++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Command/MM.pm @@ -10,8 +10,8 @@ our @ISA = qw(Exporter); our @EXPORT = qw(test_harness pod2man perllocal_install uninstall warn_if_old_packlist test_s cp_nonempty); -our $VERSION = '7.34'; -$VERSION = eval $VERSION; +our $VERSION = '7.36'; +$VERSION =~ tr/_//d; my $Is_VMS = $^O eq 'VMS'; diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist.pm index 700cb7347a..44c4c399ff 100644 --- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist.pm +++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist.pm @@ -2,8 +2,8 @@ package ExtUtils::Liblist; use strict; -our $VERSION = '7.34'; -$VERSION = eval $VERSION; +our $VERSION = '7.36'; +$VERSION =~ tr/_//d; use File::Spec; require ExtUtils::Liblist::Kid; diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist/Kid.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist/Kid.pm index a6da855862..d6565422d0 100644 --- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist/Kid.pm +++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist/Kid.pm @@ -11,8 +11,8 @@ use 5.006; use strict; use warnings; -our $VERSION = '7.34'; -$VERSION = eval $VERSION; +our $VERSION = '7.36'; +$VERSION =~ tr/_//d; use ExtUtils::MakeMaker::Config; use Cwd 'cwd'; @@ -49,8 +49,10 @@ sub _unix_os2_ext { # $potential_libs # this is a rewrite of Andy Dougherty's extliblist in perl + require Text::ParseWords; + my ( @searchpath ); # from "-L/path" entries in $potential_libs - my ( @libpath ) = split " ", $Config{'libpth'} || ''; + my ( @libpath ) = Text::ParseWords::quotewords( '\s+', 0, $Config{'libpth'} || '' ); my ( @ldloadlibs, @bsloadlibs, @extralibs, @ld_run_path, %ld_run_path_seen ); my ( @libs, %libs_seen ); my ( $fullname, @fullname ); @@ -63,7 +65,7 @@ sub _unix_os2_ext { $potential_libs =~ s/(^|\s)(-F)\s*(\S+)/$1-Wl,$2 -Wl,$3/g; } - foreach my $thislib ( split ' ', $potential_libs ) { + foreach my $thislib ( Text::ParseWords::quotewords( '\s+', 0, $potential_libs) ) { my ( $custom_name ) = ''; # Handle possible linker path arguments. @@ -88,6 +90,7 @@ sub _unix_os2_ext { $thislib = $self->catdir( $pwd, $thislib ); } push( @searchpath, $thislib ); + $thislib = qq{"$thislib"} if $thislib =~ / /; # protect spaces if there push( @extralibs, "$ptype$thislib" ); push( @ldloadlibs, "$rtype$thislib" ); next; diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM.pm index b2c360bca3..340ff2da3d 100644 --- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM.pm +++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM.pm @@ -3,8 +3,8 @@ package ExtUtils::MM; use strict; use ExtUtils::MakeMaker::Config; -our $VERSION = '7.34'; -$VERSION = eval $VERSION; +our $VERSION = '7.36'; +$VERSION =~ tr/_//d; require ExtUtils::Liblist; require ExtUtils::MakeMaker; diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_AIX.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_AIX.pm index b114ee49d3..c771b9b2b1 100644 --- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_AIX.pm +++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_AIX.pm @@ -1,8 +1,8 @@ package ExtUtils::MM_AIX; use strict; -our $VERSION = '7.34'; -$VERSION = eval $VERSION; +our $VERSION = '7.36'; +$VERSION =~ tr/_//d; use ExtUtils::MakeMaker::Config; require ExtUtils::MM_Unix; @@ -50,7 +50,9 @@ sub xs_dlsyms_ext { sub xs_dlsyms_arg { my($self, $file) = @_; - return qq{-bE:${file}}; + my $arg = qq{-bE:${file}}; + $arg = '-Wl,'.$arg if $Config{lddlflags} =~ /-Wl,-bE:/; + return $arg; } sub init_others { diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Any.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Any.pm index 1a3893c30b..6d459bbeaf 100644 --- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Any.pm +++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Any.pm @@ -1,8 +1,8 @@ package ExtUtils::MM_Any; use strict; -our $VERSION = '7.34'; -$VERSION = eval $VERSION; +our $VERSION = '7.36'; +$VERSION =~ tr/_//d; use Carp; use File::Spec; @@ -195,7 +195,7 @@ sub can_redirect_error { my $is_dmake = $self->is_make_type('dmake'); -Returns true if C<<$self->make>> is the given type; possibilities are: +Returns true if C<< $self->make >> is the given type; possibilities are: gmake GNU make dmake @@ -1090,7 +1090,7 @@ END my @man_cmds; foreach my $section (qw(1 3)) { my $pods = $self->{"MAN${section}PODS"}; - my $p2m = sprintf <<'CMD', $section, $] > 5.008 ? " -u" : ""; + my $p2m = sprintf <<'CMD', $section, "$]" > 5.008 ? " -u" : ""; $(NOECHO) $(POD2MAN) --section=%s --perm_rw=$(PERM_RW)%s CMD push @man_cmds, $self->split_command($p2m, map {($_,$pods->{$_})} sort keys %$pods); @@ -2214,7 +2214,9 @@ sub init_INSTALL_from_INSTALL_BASE { my $key = "INSTALL".$dir.$uc_thing; $install{$key} ||= - $self->catdir('$(INSTALL_BASE)', @{$map{$thing}}); + ($thing =~ /^man.dir$/ and not $Config{lc $key}) + ? 'none' + : $self->catdir('$(INSTALL_BASE)', @{$map{$thing}}); } } diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_BeOS.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_BeOS.pm index 6fb7911390..4b72d4dd8f 100644 --- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_BeOS.pm +++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_BeOS.pm @@ -26,8 +26,8 @@ require ExtUtils::MM_Any; require ExtUtils::MM_Unix; our @ISA = qw( ExtUtils::MM_Any ExtUtils::MM_Unix ); -our $VERSION = '7.34'; -$VERSION = eval $VERSION; +our $VERSION = '7.36'; +$VERSION =~ tr/_//d; =item os_flavor @@ -58,6 +58,8 @@ sub init_linker { =back +=cut + 1; __END__ diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Cygwin.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Cygwin.pm index 934e65f913..f1ca8f2cbb 100644 --- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Cygwin.pm +++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Cygwin.pm @@ -9,8 +9,8 @@ require ExtUtils::MM_Unix; require ExtUtils::MM_Win32; our @ISA = qw( ExtUtils::MM_Unix ); -our $VERSION = '7.34'; -$VERSION = eval $VERSION; +our $VERSION = '7.36'; +$VERSION =~ tr/_//d; =head1 NAME @@ -86,7 +86,7 @@ sub init_linker { if ($Config{useshrplib} eq 'true') { my $libperl = '$(PERL_INC)' .'/'. "$Config{libperl}"; - if( $] >= 5.006002 ) { + if( "$]" >= 5.006002 ) { $libperl =~ s/(dll\.)?a$/dll.a/; } $self->{PERL_ARCHIVE} = $libperl; diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_DOS.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_DOS.pm index 33a8b199df..1cff5729eb 100644 --- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_DOS.pm +++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_DOS.pm @@ -2,8 +2,8 @@ package ExtUtils::MM_DOS; use strict; -our $VERSION = '7.34'; -$VERSION = eval $VERSION; +our $VERSION = '7.36'; +$VERSION =~ tr/_//d; require ExtUtils::MM_Any; require ExtUtils::MM_Unix; diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Darwin.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Darwin.pm index f5359dca09..3f01443cc5 100644 --- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Darwin.pm +++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Darwin.pm @@ -7,8 +7,8 @@ BEGIN { our @ISA = qw( ExtUtils::MM_Unix ); } -our $VERSION = '7.34'; -$VERSION = eval $VERSION; +our $VERSION = '7.36'; +$VERSION =~ tr/_//d; =head1 NAME diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_MacOS.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_MacOS.pm index 5646ae3340..0029b87f15 100644 --- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_MacOS.pm +++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_MacOS.pm @@ -2,8 +2,8 @@ package ExtUtils::MM_MacOS; use strict; -our $VERSION = '7.34'; -$VERSION = eval $VERSION; +our $VERSION = '7.36'; +$VERSION =~ tr/_//d; sub new { die 'MacOS Classic (MacPerl) is no longer supported by MakeMaker'; diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_NW5.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_NW5.pm index c88c4fabe9..038c22f98f 100644 --- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_NW5.pm +++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_NW5.pm @@ -22,8 +22,8 @@ use strict; use ExtUtils::MakeMaker::Config; use File::Basename; -our $VERSION = '7.34'; -$VERSION = eval $VERSION; +our $VERSION = '7.36'; +$VERSION =~ tr/_//d; require ExtUtils::MM_Win32; our @ISA = qw(ExtUtils::MM_Win32); @@ -192,7 +192,7 @@ MAKE_FRAG } # Reconstruct the X.Y.Z version. my $version = join '.', map { sprintf "%d", $_ } - $] =~ /(\d)\.(\d{3})(\d{2})/; + "$]" =~ /(\d)\.(\d{3})(\d{2})/; push @m, sprintf <<'EOF', $from, $version, $to, $exportlist; $(LD) $(LDFLAGS) %s -desc "Perl %s Extension ($(BASEEXT)) XS_VERSION: $(XS_VERSION)" -nlmversion $(NLM_VERSION) -o %s $(MYEXTLIB) $(PERL_INC)\Main.lib -commandfile %s $(CHMOD) 755 $@ diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_OS2.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_OS2.pm index dfa6dca491..e212cb876b 100644 --- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_OS2.pm +++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_OS2.pm @@ -5,8 +5,8 @@ use strict; use ExtUtils::MakeMaker qw(neatvalue); use File::Spec; -our $VERSION = '7.34'; -$VERSION = eval $VERSION; +our $VERSION = '7.36'; +$VERSION =~ tr/_//d; require ExtUtils::MM_Any; require ExtUtils::MM_Unix; diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_QNX.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_QNX.pm index 362d7d920f..813de3b14a 100644 --- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_QNX.pm +++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_QNX.pm @@ -1,8 +1,8 @@ package ExtUtils::MM_QNX; use strict; -our $VERSION = '7.34'; -$VERSION = eval $VERSION; +our $VERSION = '7.36'; +$VERSION =~ tr/_//d; require ExtUtils::MM_Unix; our @ISA = qw(ExtUtils::MM_Unix); diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_UWIN.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_UWIN.pm index cc95c415e8..d531422197 100644 --- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_UWIN.pm +++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_UWIN.pm @@ -1,8 +1,8 @@ package ExtUtils::MM_UWIN; use strict; -our $VERSION = '7.34'; -$VERSION = eval $VERSION; +our $VERSION = '7.36'; +$VERSION =~ tr/_//d; require ExtUtils::MM_Unix; our @ISA = qw(ExtUtils::MM_Unix); diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm index fe53be12ef..a0a2ee102f 100644 --- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm +++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm @@ -14,8 +14,8 @@ use ExtUtils::MakeMaker qw($Verbose neatvalue _sprintf562); # If we make $VERSION an our variable parse_version() breaks use vars qw($VERSION); -$VERSION = '7.34'; -$VERSION = eval $VERSION; ## no critic [BuiltinFunctions::ProhibitStringyEval] +$VERSION = '7.36'; +$VERSION =~ tr/_//d; require ExtUtils::MM_Any; our @ISA = qw(ExtUtils::MM_Any); @@ -37,6 +37,10 @@ BEGIN { grep( $^O eq $_, qw(bsdos interix dragonfly) ) ); $Is{Android} = $^O =~ /android/; + if ( $^O eq 'darwin' && $^X eq '/usr/bin/perl' ) { + my @osvers = split /\./, $Config{osvers}; + $Is{ApplCor} = ( $osvers[0] >= 18 ); + } } BEGIN { @@ -54,7 +58,7 @@ ExtUtils::MM_Unix - methods used by ExtUtils::MakeMaker =head1 SYNOPSIS -C<require ExtUtils::MM_Unix;> + require ExtUtils::MM_Unix; =head1 DESCRIPTION @@ -132,6 +136,10 @@ sub c_o { my $command = '$(CCCMD)'; my $flags = '$(CCCDLFLAGS) "-I$(PERL_INC)" $(PASTHRU_DEFINE) $(DEFINE)'; + if ( $Is{ApplCor} ) { + $flags =~ s/"-I(\$\(PERL_INC\))"/-iwithsysroot "$1"/; + } + if (my $cpp = $Config{cpprun}) { my $cpp_cmd = $self->const_cccmd; $cpp_cmd =~ s/^CCCMD\s*=\s*\$\(CC\)/$cpp/; @@ -151,8 +159,11 @@ EOF my @exts = qw(c cpp cxx cc); push @exts, 'C' if !$Is{OS2} and !$Is{Win32} and !$Is{Dos}; #Case-specific $m_o = $self->{XSMULTI} ? $self->xs_obj_opt('$*$(OBJ_EXT)') : ''; + my $dbgout = $self->dbgoutflag; for my $ext (@exts) { - push @m, "\n.$ext\$(OBJ_EXT) :\n\t$command $flags \$*.$ext" . ( $m_o ? " $m_o" : '' ) . "\n"; + push @m, "\n.$ext\$(OBJ_EXT) :\n\t$command $flags " + .($dbgout?"$dbgout ":'') + ."\$*.$ext" . ( $m_o ? " $m_o" : '' ) . "\n"; } return join "", @m; } @@ -170,6 +181,16 @@ sub xs_obj_opt { "-o $output_file"; } +=item dbgoutflag + +Returns a CC flag that tells the CC to emit a separate debugging symbol file +when compiling an object file. + +=cut + +sub dbgoutflag { + ''; +} =item cflags (o) @@ -461,12 +482,20 @@ MAN1PODS = ".$self->wraplist(sort keys %{$self->{MAN1PODS}})." MAN3PODS = ".$self->wraplist(sort keys %{$self->{MAN3PODS}})." "; + push @m, q{ +SDKROOT := $(shell xcrun --show-sdk-path) +PERL_SYSROOT = $(SDKROOT) +} if $Is{ApplCor} && $self->{'PERL_INC'} =~ m!^/System/Library/Perl/!; push @m, q{ # Where is the Config information that we are using/depend on -CONFIGDEP = $(PERL_ARCHLIBDEP)$(DFSEP)Config.pm $(PERL_INCDEP)$(DFSEP)config.h -} if -e $self->catfile( $self->{PERL_INC}, 'config.h' ); +CONFIGDEP = $(PERL_ARCHLIBDEP)$(DFSEP)Config.pm $(PERL_SYSROOT)$(PERL_INCDEP)$(DFSEP)config.h +} if $Is{ApplCor}; + push @m, q{ +# Where is the Config information that we are using/depend on +CONFIGDEP = $(PERL_ARCHLIBDEP)$(DFSEP)Config.pm $(PERL_INCDEP)$(DFSEP)config.h +} if -e $self->catfile( $self->{PERL_INC}, 'config.h' ) && !$Is{ApplCor}; push @m, qq{ # Where to build things @@ -1090,7 +1119,6 @@ Finds the executables PERL and FULLPERL sub find_perl { my($self, $ver, $names, $dirs, $trace) = @_; - if ($trace >= 2){ print "Looking for perl $ver by these names: @$names @@ -1243,12 +1271,15 @@ sub _fixin_replace_shebang { my ( $self, $file, $line ) = @_; # Now figure out the interpreter name. - my ( $cmd, $arg ) = split ' ', $line, 2; - $cmd =~ s!^.*/!!; + my ( $origcmd, $arg ) = split ' ', $line, 2; + (my $cmd = $origcmd) =~ s!^.*/!!; # Now look (in reverse) for interpreter in absolute PATH (unless perl). my $interpreter; - if ( $cmd =~ m{^perl(?:\z|[^a-z])} ) { + if ( defined $ENV{PERL_MM_SHEBANG} && $ENV{PERL_MM_SHEBANG} eq "relocatable" ) { + $interpreter = "/usr/bin/env perl"; + } + elsif ( $cmd =~ m{^perl(?:\z|[^a-z])} ) { if ( $Config{startperl} =~ m,^\#!.*/perl, ) { $interpreter = $Config{startperl}; $interpreter =~ s,^\#!,,; @@ -1270,6 +1301,24 @@ sub _fixin_replace_shebang { $interpreter = $maybefile; } } + + # If the shebang is absolute and exists in PATH, but was not + # the first one found, leave it alone if it's actually the + # same file as first one. This avoids packages built on + # merged-/usr systems with /usr/bin before /bin in the path + # breaking when installed on systems without merged /usr + if ($origcmd ne $interpreter and $self->file_name_is_absolute($origcmd)) { + my $origdir = dirname($origcmd); + if ($self->maybe_command($origcmd) && grep { $_ eq $origdir } @absdirs) { + my ($odev, $oino) = stat $origcmd; + my ($idev, $iino) = stat $interpreter; + if ($odev == $idev && $oino == $iino) { + warn "$origcmd is the same as $interpreter, leaving alone" + if $Verbose; + $interpreter = $origcmd; + } + } + } } # Figure out how to invoke interpreter on this machine. @@ -2043,6 +2092,11 @@ sub init_PERL { # already escaped spaces. $self->{FULLPERL} =~ tr/"//d if $Is{VMS}; + # `dmake` can fail for image (aka, executable) names which start with double-quotes + # * push quote inward by at least one character (or the drive prefix, if present) + # * including any initial directory separator preserves the `file_name_is_absolute` property + $self->{FULLPERL} =~ s/^"(\S(:\\|:)?)/$1"/ if $self->is_make_type('dmake'); + # Little hack to get around VMS's find_perl putting "MCR" in front # sometimes. $self->{ABSPERL} = $self->{PERL}; @@ -2065,6 +2119,11 @@ sub init_PERL { # already escaped spaces. $self->{PERL} =~ tr/"//d if $Is{VMS}; + # `dmake` can fail for image (aka, executable) names which start with double-quotes + # * push quote inward by at least one character (or the drive prefix, if present) + # * including any initial directory separator preserves the `file_name_is_absolute` property + $self->{PERL} =~ s/^"(\S(:\\|:)?)/$1"/ if $self->is_make_type('dmake'); + # Are we building the core? $self->{PERL_CORE} = $ENV{PERL_CORE} unless exists $self->{PERL_CORE}; $self->{PERL_CORE} = 0 unless defined $self->{PERL_CORE}; @@ -2872,7 +2931,7 @@ sub parse_abstract { } close $fh; - if ( $pod_encoding and !( $] < 5.008 or !$Config{useperlio} ) ) { + if ( $pod_encoding and !( "$]" < 5.008 or !$Config{useperlio} ) ) { # Have to wrap in an eval{} for when running under PERL_CORE # Encode isn't available during build phase and parsing # ABSTRACT isn't important there @@ -2894,7 +2953,7 @@ It will return the string "undef" if it can't figure out what $VERSION is. $VERSION should be for all to see, so C<our $VERSION> or plain $VERSION are okay, but C<my $VERSION> is not. -C<<package Foo VERSION>> is also checked for. The first version +C<package Foo VERSION> is also checked for. The first version declaration found is used, but this may change as it differs from how Perl does it. @@ -3151,7 +3210,7 @@ PPD_PERLVERS } my $archname = $Config{archname}; - if ($] >= 5.008) { + if ("$]" >= 5.008) { # archname did not change from 5.6 to 5.8, but those versions may # not be not binary compatible so now we append the part of the # version that changes when binary compatibility may change @@ -3268,9 +3327,11 @@ sub processPL { my $m = ''; foreach my $plfile (sort keys %$pl_files) { - my $list = ref($pl_files->{$plfile}) - ? $pl_files->{$plfile} - : [$pl_files->{$plfile}]; + my $targets = $pl_files->{$plfile}; + my $list = + ref($targets) eq 'HASH' ? [ sort keys %$targets ] : + ref($targets) eq 'ARRAY' ? $pl_files->{$plfile} : + [$pl_files->{$plfile}]; foreach my $target (@$list) { if( $Is{VMS} ) { @@ -3294,13 +3355,27 @@ sub processPL { $perlrun = 'PERLRUNINST'; } + my $extra_inputs = ''; + if( ref($targets) eq 'HASH' ) { + my $inputs = ref($targets->{$target}) + ? $targets->{$target} + : [$targets->{$target}]; + + for my $input (@$inputs) { + if( $Is{VMS} ) { + $input = vmsify($self->eliminate_macros($input)); + } + $extra_inputs .= ' '.$input; + } + } + $m .= <<MAKE_FRAG; pure_all :: $target \$(NOECHO) \$(NOOP) -$target :: $plfile $pm_dep - \$($perlrun) $plfile $target +$target :: $plfile $pm_dep $extra_inputs + \$($perlrun) $plfile $target $extra_inputs MAKE_FRAG } @@ -3957,13 +4032,15 @@ sub xs_o { my ($self) = @_; return '' unless $self->needs_linking(); my $m_o = $self->{XSMULTI} ? $self->xs_obj_opt('$*$(OBJ_EXT)') : ''; + my $dbgout = $self->dbgoutflag; + $dbgout = $dbgout ? "$dbgout " : ''; my $frag = ''; # dmake makes noise about ambiguous rule - $frag .= sprintf <<'EOF', $m_o unless $self->is_make_type('dmake'); + $frag .= sprintf <<'EOF', $dbgout, $m_o unless $self->is_make_type('dmake'); .xs$(OBJ_EXT) : $(XSUBPPRUN) $(XSPROTOARG) $(XSUBPPARGS) $*.xs > $*.xsc $(MV) $*.xsc $*.c - $(CCCMD) $(CCCDLFLAGS) "-I$(PERL_INC)" $(PASTHRU_DEFINE) $(DEFINE) $*.c %s + $(CCCMD) $(CCCDLFLAGS) "-I$(PERL_INC)" $(PASTHRU_DEFINE) $(DEFINE) %s$*.c %s EOF if ($self->{XSMULTI}) { for my $ext ($self->_xs_list_basenames) { @@ -3977,16 +4054,17 @@ EOF $self->_xsbuild_replace_macro($cccmd, 'xs', $ext, 'INC'); my $define = '$(DEFINE)'; $self->_xsbuild_replace_macro($define, 'xs', $ext, 'DEFINE'); - # 1 2 3 4 - $frag .= _sprintf562 <<'EOF', $ext, $cccmd, $m_o, $define; + # 1 2 3 4 5 + $frag .= _sprintf562 <<'EOF', $ext, $cccmd, $m_o, $define, $dbgout; %1$s$(OBJ_EXT): %1$s.xs $(XSUBPPRUN) $(XSPROTOARG) $(XSUBPPARGS) $*.xs > $*.xsc $(MV) $*.xsc $*.c - %2$s $(CCCDLFLAGS) "-I$(PERL_INC)" $(PASTHRU_DEFINE) %4$s $*.c %3$s + %2$s $(CCCDLFLAGS) "-I$(PERL_INC)" $(PASTHRU_DEFINE) %4$s %5$s$*.c %3$s EOF } } + $frag =~ s/"-I(\$\(PERL_INC\))"/-iwithsysroot "$1"/sg if $Is{ApplCor}; $frag; } diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VMS.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VMS.pm index b6fbccfe34..24e5346263 100644 --- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VMS.pm +++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VMS.pm @@ -15,8 +15,8 @@ BEGIN { use File::Basename; -our $VERSION = '7.34'; -$VERSION = eval $VERSION; +our $VERSION = '7.36'; +$VERSION =~ tr/_//d; require ExtUtils::MM_Any; require ExtUtils::MM_Unix; @@ -587,9 +587,10 @@ sub constants { # Cleanup paths for directories in MMS macros. foreach my $macro ( qw [ INST_BIN INST_SCRIPT INST_LIB INST_ARCHLIB - PERL_LIB PERL_ARCHLIB + PERL_LIB PERL_ARCHLIB PERL_ARCHLIBDEP PERL_INC PERL_SRC ], - (map { 'INSTALL'.$_ } $self->installvars) + (map { 'INSTALL'.$_ } $self->installvars), + (map { 'DESTINSTALL'.$_ } $self->installvars) ) { next unless defined $self->{$macro}; diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VOS.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VOS.pm index 66c7ff7472..9f7c89a747 100644 --- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VOS.pm +++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VOS.pm @@ -1,8 +1,8 @@ package ExtUtils::MM_VOS; use strict; -our $VERSION = '7.34'; -$VERSION = eval $VERSION; +our $VERSION = '7.36'; +$VERSION =~ tr/_//d; require ExtUtils::MM_Unix; our @ISA = qw(ExtUtils::MM_Unix); diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win32.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win32.pm index 43c974d5b4..253b2ca6d8 100644 --- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win32.pm +++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win32.pm @@ -27,8 +27,8 @@ 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.34'; -$VERSION = eval $VERSION; +our $VERSION = '7.36'; +$VERSION =~ tr/_//d; $ENV{EMXSHELL} = 'sh'; # to run `commands` @@ -77,7 +77,7 @@ Changes the path separator with . sub replace_manpage_separator { my($self,$man) = @_; - $man =~ s,/+,.,g; + $man =~ s,[/\\]+,.,g; $man; } @@ -143,7 +143,7 @@ sub init_tools { $self->{DEV_NULL} ||= '> NUL'; $self->{FIXIN} ||= $self->{PERL_CORE} ? - "\$(PERLRUN) $self->{PERL_SRC}\\win32\\bin\\pl2bat.pl" : + "\$(PERLRUN) -I$self->{PERL_SRC}\\cpan\\ExtUtils-PL2Bat\\lib $self->{PERL_SRC}\\win32\\bin\\pl2bat.pl" : 'pl2bat.bat'; $self->SUPER::init_tools; @@ -506,7 +506,7 @@ sub quote_literal { $text =~ s{\\\\"}{\\\\\\\\\\"}g; # \\" -> \\\\\" $text =~ s{(?<!\\)\\"}{\\\\\\"}g; # \" -> \\\" $text =~ s{(?<!\\)"}{\\"}g; # " -> \" - $text = qq{"$text"} if $text =~ /[ \t]/; + $text = qq{"$text"} if $text =~ /[ \t#]/; # hash because gmake 4.2.1 # Apply the Command Prompt parsing rules (cmd.exe) my @text = split /("[^"]*")/, $text; @@ -595,6 +595,16 @@ sub os_flavor { return('Win32'); } +=item dbgoutflag + +Returns a CC flag that tells the CC to emit a separate debugging symbol file +when compiling an object file. + +=cut + +sub dbgoutflag { + $MSVC ? '-Fd$(*).pdb' : ''; +} =item cflags diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win95.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win95.pm index 85a80c638b..440c3a7f84 100644 --- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win95.pm +++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win95.pm @@ -2,8 +2,8 @@ package ExtUtils::MM_Win95; use strict; -our $VERSION = '7.34'; -$VERSION = eval $VERSION; +our $VERSION = '7.36'; +$VERSION =~ tr/_//d; require ExtUtils::MM_Win32; our @ISA = qw(ExtUtils::MM_Win32); diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MY.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MY.pm index a193f3a045..73f9e10893 100644 --- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MY.pm +++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MY.pm @@ -3,8 +3,8 @@ package ExtUtils::MY; use strict; require ExtUtils::MM; -our $VERSION = '7.34'; -$VERSION = eval $VERSION; +our $VERSION = '7.36'; +$VERSION =~ tr/_//d; our @ISA = qw(ExtUtils::MM); { diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm index 90d9eac49c..90790d4d6d 100644 --- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm +++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm @@ -24,8 +24,8 @@ 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.34'; -$VERSION = eval $VERSION; ## no critic [BuiltinFunctions::ProhibitStringyEval] +our $VERSION = '7.36'; +$VERSION =~ tr/_//d; # Emulate something resembling CVS $Revision$ (our $Revision = $VERSION) =~ s{_}{}; @@ -316,7 +316,7 @@ sub full_setup { PERLRUNINST PERL_CORE PERM_DIR PERM_RW PERM_RWX MAGICXS PL_FILES PM PM_FILTER PMLIBDIRS PMLIBPARENTDIRS POLLUTE - PREREQ_FATAL PREREQ_PM PREREQ_PRINT PRINT_PREREQ + PREREQ_FATAL PREREQ_PM PREREQ_PRINT PRINT_PREREQ PUREPERL_ONLY SIGN SKIP TEST_REQUIRES TYPEMAPS UNINST VERSION VERSION_FROM XS XSBUILD XSMULTI XSOPT XSPROTOARG XS_VERSION clean depend dist dynamic_lib linkext macro realclean tool_autosplit @@ -398,7 +398,7 @@ sub full_setup { ); # 5.5.3 doesn't have any concept of vendor libs - push @Get_from_Config, qw( vendorarchexp vendorlibexp ) if $] >= 5.006; + push @Get_from_Config, qw( vendorarchexp vendorlibexp ) if "$]" >= 5.006; foreach my $item (@attrib_help){ $Recognized_Att_Keys{$item} = 1; @@ -534,7 +534,7 @@ sub new { # simulate "use warnings FATAL => 'all'" for vintage perls die @_; }; - !$self->{MIN_PERL_VERSION} or $self->{MIN_PERL_VERSION} <= $] + !$self->{MIN_PERL_VERSION} or $self->{MIN_PERL_VERSION} <= "$]" }; if (!$perl_version_ok) { if (!defined $perl_version_ok) { @@ -693,6 +693,7 @@ END } else { my $value = $self->{$key}; # not going to test in FS so only stripping start + $value =~ s/"// if $key =~ /PERL$/ and $self->is_make_type('dmake'); $value =~ s/^"// if $key =~ /PERL$/; $value = $self->catdir("..", $value) unless $self->file_name_is_absolute($value); @@ -702,7 +703,8 @@ END } if ($self->{PARENT}) { $self->{PARENT}->{CHILDREN}->{$newclass} = $self; - foreach my $opt (qw(POLLUTE PERL_CORE LINKTYPE LD OPTIMIZE)) { + foreach my $opt (qw(POLLUTE PERL_CORE LINKTYPE AR FULL_AR CC CCFLAGS + OPTIMIZE LD LDDLFLAGS LDFLAGS PERL_ARCHLIB DESTDIR)) { if (exists $self->{PARENT}->{$opt} and not exists $self->{$opt}) { @@ -1264,7 +1266,7 @@ sub write_file_via_tmp { die "write_file_via_tmp: 2nd arg must be ref" unless ref $contents; for my $chunk (@$contents) { my $to_write = $chunk; - utf8::encode $to_write if !$CAN_DECODE && $] > 5.008; + utf8::encode $to_write if !$CAN_DECODE && "$]" > 5.008; print $fh "$to_write\n" or die "Can't write to MakeMaker.tmp: $!"; } close $fh or die "Can't write to MakeMaker.tmp: $!"; @@ -2599,6 +2601,20 @@ In this case the program will be run multiple times using each target file. perl bin/foobar.PL bin/foobar1 perl bin/foobar.PL bin/foobar2 +If an output file depends on extra input files beside the script itself, +a hash ref can be used in version 7.36 and above: + + PL_FILES => { 'foo.PL' => { + 'foo.out' => 'foo.in', + 'bar.out' => [qw(bar1.in bar2.in)], + } + +In this case the extra input files will be passed to the program after +the target file: + + perl foo.PL foo.out foo.in + perl foo.PL bar.out bar1.in bar2.in + PL files are normally run B<after> pm_to_blib and include INST_LIB and INST_ARCH in their C<@INC>, so the just built modules can be accessed... unless the PL file is making a module (or anything else in diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Config.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Config.pm index 0d4f8b1e61..f437a65e5d 100644 --- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Config.pm +++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Config.pm @@ -2,8 +2,8 @@ package ExtUtils::MakeMaker::Config; use strict; -our $VERSION = '7.34'; -$VERSION = eval $VERSION; +our $VERSION = '7.36'; +$VERSION =~ tr/_//d; use Config (); diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/FAQ.pod b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/FAQ.pod index 0ceb4f766e..a5449c2dcf 100644 --- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/FAQ.pod +++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/FAQ.pod @@ -1,7 +1,7 @@ package ExtUtils::MakeMaker::FAQ; -our $VERSION = '7.34'; -$VERSION = eval $VERSION; +our $VERSION = '7.36'; +$VERSION =~ tr/_//d; 1; __END__ @@ -84,7 +84,8 @@ installation. =item How do I keep from installing man pages? Recent versions of MakeMaker will only install man pages on Unix-like -operating systems. +operating systems by default. To generate manpages on non-Unix operating +systems, make the "manifypods" target. For an individual module: diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Locale.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Locale.pm index 6d97df06f6..bf59fdc6e9 100644 --- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Locale.pm +++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Locale.pm @@ -1,8 +1,8 @@ package ExtUtils::MakeMaker::Locale; use strict; -our $VERSION = "7.34"; -$VERSION = eval $VERSION; +our $VERSION = "7.36"; +$VERSION =~ tr/_//d; use base 'Exporter'; our @EXPORT_OK = qw( @@ -47,7 +47,10 @@ sub _init { unless (defined &GetInputCP) { eval { require Win32; - eval { Win32::GetConsoleCP() }; + eval { + local $SIG{__WARN__} = sub {} if ( "$]" < 5.014 ); # suppress deprecation warning for inherited AUTOLOAD of Win32::GetConsoleCP() + Win32::GetConsoleCP(); + }; # manually "import" it since Win32->import refuses *GetInputCP = sub { &Win32::GetConsoleCP } if defined &Win32::GetConsoleCP; *GetOutputCP = sub { &Win32::GetConsoleOutputCP } if defined &Win32::GetConsoleOutputCP; @@ -96,6 +99,13 @@ sub _init { $ENCODING_LOCALE ||= $ENCODING_CONSOLE_IN; } + # Workaround of Encode < v2.71 for "cp65000" and "cp65001" + # The "cp65000" and "cp65001" aliases were added in [Encode v2.71](https://github.com/dankogai/p5-encode/commit/7874bd95aa10967a3b5dbae333d16bcd703ac6c6) + # via commit <https://github.com/dankogai/p5-encode/commit/84b9c1101d5251d37e226f80d1c6781718779047>. + # This will avoid test failures for Win32 machines using the UTF-7 or UTF-8 code pages. + $ENCODING_LOCALE = 'UTF-7' if $ENCODING_LOCALE && lc($ENCODING_LOCALE) eq "cp65000"; + $ENCODING_LOCALE = 'utf-8-strict' if $ENCODING_LOCALE && lc($ENCODING_LOCALE) eq "cp65001"; + if ($^O eq "darwin") { $ENCODING_LOCALE_FS ||= "UTF-8"; } diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Tutorial.pod b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Tutorial.pod index b49e444833..7c36252cc8 100644 --- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Tutorial.pod +++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Tutorial.pod @@ -1,7 +1,7 @@ package ExtUtils::MakeMaker::Tutorial; -our $VERSION = '7.34'; -$VERSION = eval $VERSION; +our $VERSION = '7.36'; +$VERSION =~ tr/_//d; =head1 NAME diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/version.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/version.pm index c59be1eeee..b6d3550e30 100644 --- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/version.pm +++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/version.pm @@ -15,8 +15,8 @@ use strict; use vars qw(@ISA $VERSION $CLASS $STRICT $LAX *declare *qv); -$VERSION = '7.34'; -$VERSION = eval $VERSION; +$VERSION = '7.36'; +$VERSION =~ tr/_//d; $CLASS = 'version'; { @@ -35,7 +35,7 @@ $CLASS = 'version'; *version::_VERSION = \&ExtUtils::MakeMaker::version::vpp::_VERSION; *version::vcmp = \&ExtUtils::MakeMaker::version::vpp::vcmp; *version::new = \&ExtUtils::MakeMaker::version::vpp::new; - if ($] >= 5.009000) { + if ("$]" >= 5.009000) { no strict 'refs'; *version::stringify = \&ExtUtils::MakeMaker::version::vpp::stringify; *{'version::(""'} = \&ExtUtils::MakeMaker::version::vpp::stringify; diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/version/regex.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/version/regex.pm index f0eb14eacb..951a4c2397 100644 --- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/version/regex.pm +++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/version/regex.pm @@ -10,8 +10,8 @@ use strict; use vars qw($VERSION $CLASS $STRICT $LAX); -$VERSION = '7.34'; -$VERSION = eval $VERSION; +$VERSION = '7.36'; +$VERSION =~ tr/_//d; #--------------------------------------------------------------------------# # Version regexp components diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mkbootstrap.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mkbootstrap.pm index 0d4c1a2090..ea5eae5787 100644 --- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mkbootstrap.pm +++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mkbootstrap.pm @@ -3,8 +3,8 @@ package ExtUtils::Mkbootstrap; # There's just too much Dynaloader incest here to turn on strict vars. use strict 'refs'; -our $VERSION = '7.34'; -$VERSION = eval $VERSION; +our $VERSION = '7.36'; +$VERSION =~ tr/_//d; require Exporter; our @ISA = ('Exporter'); @@ -84,7 +84,7 @@ ExtUtils::Mkbootstrap - make a bootstrap file for use by DynaLoader =head1 SYNOPSIS -C<Mkbootstrap> + Mkbootstrap =head1 DESCRIPTION diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mksymlists.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mksymlists.pm index 0ec5f9dbdf..6e0b063f19 100644 --- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mksymlists.pm +++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mksymlists.pm @@ -10,8 +10,8 @@ use Config; our @ISA = qw(Exporter); our @EXPORT = qw(&Mksymlists); -our $VERSION = '7.34'; -$VERSION = eval $VERSION; +our $VERSION = '7.36'; +$VERSION =~ tr/_//d; sub Mksymlists { my(%spec) = @_; @@ -148,7 +148,7 @@ sub _write_win32 { # linked to directly from C. GSAR 97-07-10 #bcc dropped in 5.16, so dont create useless extra symbols for export table - unless($] >= 5.016) { + unless("$]" >= 5.016) { if ($Config::Config{'cc'} =~ /^bcc/i) { push @syms, "_$_", "$_ = _$_" for (@{$data->{DL_VARS}}, @{$data->{FUNCLIST}}); diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/testlib.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/testlib.pm index 01b46ee45a..18a70c5e11 100644 --- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/testlib.pm +++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/testlib.pm @@ -3,8 +3,8 @@ package ExtUtils::testlib; use strict; use warnings; -our $VERSION = '7.34'; -$VERSION = eval $VERSION; +our $VERSION = '7.36'; +$VERSION =~ tr/_//d; use Cwd; use File::Spec; diff --git a/cpan/ExtUtils-MakeMaker/t/03-xsstatic.t b/cpan/ExtUtils-MakeMaker/t/03-xsstatic.t index bfe3dc96c3..faf56e3339 100644 --- a/cpan/ExtUtils-MakeMaker/t/03-xsstatic.t +++ b/cpan/ExtUtils-MakeMaker/t/03-xsstatic.t @@ -20,7 +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|darwin)$!; -plan skip_all => 'Skipped when not PERL_CORE or in git repo' unless $ENV{PERL_CORE} or $release; +plan skip_all => 'Skipped when not PERL_CORE nor in git repo' unless $ENV{PERL_CORE} or $release; my @tests = list_static(); plan skip_all => "No tests" unless @tests; plan tests => 6 * @tests; diff --git a/cpan/ExtUtils-MakeMaker/t/MM_Cygwin.t b/cpan/ExtUtils-MakeMaker/t/MM_Cygwin.t index 4e7336c1ed..a37cb62765 100644 --- a/cpan/ExtUtils-MakeMaker/t/MM_Cygwin.t +++ b/cpan/ExtUtils-MakeMaker/t/MM_Cygwin.t @@ -80,7 +80,7 @@ like( $res, qr/manifypods.*foo.*foo.1/s, '... should add MAN3PODS targets' ); # init_linker { my $libperl = $Config{libperl} || 'libperl.a'; - $libperl =~ s/\.a/.dll.a/ if $] >= 5.006002; + $libperl =~ s/\.a/.dll.a/ if "$]" >= 5.006002; $libperl = "\$(PERL_INC)/$libperl"; my $export = ''; diff --git a/cpan/ExtUtils-MakeMaker/t/PL_FILES.t b/cpan/ExtUtils-MakeMaker/t/PL_FILES.t index 51aed5e5d0..7e627db543 100644 --- a/cpan/ExtUtils-MakeMaker/t/PL_FILES.t +++ b/cpan/ExtUtils-MakeMaker/t/PL_FILES.t @@ -13,7 +13,7 @@ use ExtUtils::MM; use Test::More !MM->can_run(make()) && $ENV{PERL_CORE} && $Config{'usecrosscompile'} ? (skip_all => "cross-compiling and make not available") - : (tests => 10); + : (tests => 12); use File::Spec; use File::Temp qw[tempdir]; use File::Path; @@ -36,6 +36,8 @@ WriteMakefile( NAME => 'PL::Module', PL_FILES => { 'single.PL' => 'single.out', 'multi.PL' => [qw(1.out 2.out)], + 'single-in.PL' => { 'single-in.out' => 'single.in' }, + 'multi-in.PL' => { 'multi-in.out' => [qw(1.in 2.in)] }, 'Bar_pm.PL' => '$(INST_LIB)/PL/Bar.pm', 'Bar2.pm.PL' => 'Bar2.pm', }, @@ -53,6 +55,11 @@ END 'multi.PL' => _gen_pl_files(), 'Bar_pm.PL' => _gen_pm_files(), 'Bar2.pm.PL' => _gen_pm_files(), + 'single-in.PL' => _gen_pm_files(1), + 'multi-in.PL' => _gen_pm_files(2), + 'single.in' => '', + '1.in' => '', + '2.in' => '', 'lib/PL/Foo.pm' => <<'END', # Module to load to ensure PL_FILES have blib in @INC. package PL::Foo; @@ -76,7 +83,11 @@ cmp_ok( $?, '==', 0 ); my $make_out = run("$make"); is( $?, 0 ) || diag $make_out; -foreach my $file (qw(single.out 1.out 2.out blib/lib/PL/Bar.pm blib/lib/PL/Bar2.pm)) { +foreach my $file (qw( + single.out 1.out 2.out + single-in.out multi-in.out + blib/lib/PL/Bar.pm blib/lib/PL/Bar2.pm +)) { ok( -e $file, "$file was created" ); } @@ -105,7 +116,8 @@ END } sub _gen_pm_files { - my $test = <<'END'; + my $inputs = (shift || 0) + 1; + my $test = sprintf <<'END', $inputs; #!/usr/bin/perl -w # Ensure we do NOT have blib in @INC when building a module @@ -114,7 +126,7 @@ eval { require PL::Foo; }; # Had a bug where PL_FILES weren't sent the file to generate die "argv empty\n" unless @ARGV; -die "too many in argv: @ARGV\n" unless @ARGV == 1; +die "wrong number in argv: @ARGV\n" unless @ARGV == %d; my $file = $ARGV[0]; open OUT, ">$file" or die $!; diff --git a/cpan/ExtUtils-MakeMaker/t/basic.t b/cpan/ExtUtils-MakeMaker/t/basic.t index 534bf219f6..7c87c75212 100644 --- a/cpan/ExtUtils-MakeMaker/t/basic.t +++ b/cpan/ExtUtils-MakeMaker/t/basic.t @@ -35,7 +35,11 @@ my $Is_VMS = $^O eq 'VMS'; my $OLD_CP; # crude but... my $w32worked; # or whether we had to fallback to chcp if ($^O eq "MSWin32") { - eval { require Win32; $w32worked = $OLD_CP = Win32::GetConsoleCP() }; + eval { + require Win32; + local $SIG{__WARN__} = sub {} if ( "$]" < 5.014 ); # suppress deprecation warning for inherited AUTOLOAD of Win32::GetConsoleCP() + $w32worked = $OLD_CP = Win32::GetConsoleCP(); + }; $OLD_CP = $1 if !$w32worked and qx(chcp) =~ /(\d+)$/ and $? == 0; if (defined $OLD_CP) { if ($w32worked) { @@ -128,7 +132,7 @@ like( $ppd_html, qr{^\s*<REQUIRE NAME="strict::" />}m, ' <REQUIRE>' ); unlike( $ppd_html, qr{^\s*<REQUIRE NAME="warnings::" />}m, 'no <REQUIRE> for build_require' ); my $archname = $Config{archname}; -if( $] >= 5.008 ) { +if( "$]" >= 5.008 ) { # XXX This is a copy of the internal logic, so it's not a great test $archname .= "-$Config{PERL_REVISION}.$Config{PERL_VERSION}"; } diff --git a/cpan/ExtUtils-MakeMaker/t/fixin.t b/cpan/ExtUtils-MakeMaker/t/fixin.t index 061e456247..6c6ada5619 100644 --- a/cpan/ExtUtils-MakeMaker/t/fixin.t +++ b/cpan/ExtUtils-MakeMaker/t/fixin.t @@ -9,7 +9,7 @@ BEGIN { use File::Spec; -use Test::More tests => 22; +use Test::More tests => 30; use Config; use TieOut; @@ -123,3 +123,35 @@ END } ); } + +SKIP: { + eval { chmod(0755, "usrbin/interp") } + or skip "no chmod", 8; + skip "Not relevant on VMS or MSWin32", 8 if $^O eq 'VMS' || $^O eq 'MSWin32'; + + my $dir = getcwd(); + local $ENV{PATH} = join $Config{path_sep}, map "$dir/$_", qw(usrbin bin); + + test_fixin(<<END, +#!$dir/bin/interp + +blah blah blah +END + sub { + is $_[0], "#!$dir/usrbin/interp\n", 'interpreter updated to one found in PATH'; + } + ); + + eval { symlink("../usrbin/interp", "bin/interp") } + or skip "no symlinks", 4; + + test_fixin(<<END, +#!$dir/bin/interp + +blah blah blah +END + sub { + is $_[0], "#!$dir/bin/interp\n", 'symlinked interpreter later in PATH not mangled'; + } + ); +} diff --git a/cpan/ExtUtils-MakeMaker/t/lib/MakeMaker/Test/Setup/BFD.pm b/cpan/ExtUtils-MakeMaker/t/lib/MakeMaker/Test/Setup/BFD.pm index 3d093fcfbd..cfe49e5465 100644 --- a/cpan/ExtUtils-MakeMaker/t/lib/MakeMaker/Test/Setup/BFD.pm +++ b/cpan/ExtUtils-MakeMaker/t/lib/MakeMaker/Test/Setup/BFD.pm @@ -54,6 +54,9 @@ program - this is a program 1; END + 'Big-Dummy/usrbin/interp' => <<'END', +This is a dummy interpreter +END 'Big-Dummy/test.pl' => <<'END', print "1..1\n"; diff --git a/cpan/ExtUtils-MakeMaker/t/lib/MakeMaker/Test/Utils.pm b/cpan/ExtUtils-MakeMaker/t/lib/MakeMaker/Test/Utils.pm index ce73b30b77..76c1ad5010 100644 --- a/cpan/ExtUtils-MakeMaker/t/lib/MakeMaker/Test/Utils.pm +++ b/cpan/ExtUtils-MakeMaker/t/lib/MakeMaker/Test/Utils.pm @@ -407,7 +407,7 @@ sub hash2files { $file = File::Spec->catfile(File::Spec->curdir, $prefix, split m{\/}, $file); my $dir = dirname($file); mkpath $dir; - my $utf8 = ($] < 5.008 or !$Config{useperlio}) ? "" : ":utf8"; + my $utf8 = ("$]" < 5.008 or !$Config{useperlio}) ? "" : ":utf8"; open(FILE, ">$utf8", $file) || die "Can't create $file: $!"; print FILE $text; close FILE; diff --git a/cpan/ExtUtils-MakeMaker/t/parse_version.t b/cpan/ExtUtils-MakeMaker/t/parse_version.t index 2dbd064c03..dc9919a551 100644 --- a/cpan/ExtUtils-MakeMaker/t/parse_version.t +++ b/cpan/ExtUtils-MakeMaker/t/parse_version.t @@ -53,7 +53,7 @@ if( $Has_Version ) { $versions{q[$VERSION = v1.2.3]} = 'v1.2.3'; } -if( $] >= 5.011001 ) { +if( "$]" >= 5.011001 ) { $versions{'package Foo 1.23;' } = '1.23'; $versions{'package Foo::Bar 1.23;' } = '1.23'; $versions{'package Foo v1.2.3;' } = 'v1.2.3'; @@ -81,7 +81,7 @@ our $VERSION = 2.34; END } -if( $] >= 5.014 ) { +if( "$]" >= 5.014 ) { $versions{'package Foo 1.23 { }' } = '1.23'; $versions{'package Foo::Bar 1.23 { }' } = '1.23'; $versions{'package Foo v1.2.3 { }' } = 'v1.2.3'; @@ -110,7 +110,7 @@ our $VERSION = 2.34; END } -if ( $] > 5.009 && $] < 5.012 ) { +if ( "$]" < 5.012 ) { delete $versions{'$VERSION = -1.0'}; } diff --git a/cpan/ExtUtils-MakeMaker/t/unicode.t b/cpan/ExtUtils-MakeMaker/t/unicode.t index 557ac77540..14a0c8501b 100644 --- a/cpan/ExtUtils-MakeMaker/t/unicode.t +++ b/cpan/ExtUtils-MakeMaker/t/unicode.t @@ -14,7 +14,7 @@ use File::Path; use utf8; BEGIN { plan skip_all => 'Need perlio and perl 5.8+.' - if $] < 5.008 or !$Config{useperlio}; + if "$]" < 5.008 or !$Config{useperlio}; plan skip_all => 'cross-compiling and make not available' if !MM->can_run(make()) && $ENV{PERL_CORE} && $Config{'usecrosscompile'}; @@ -76,7 +76,7 @@ END { ok( chdir $DIRNAME, "chdir'd to $DIRNAME" ) || diag("chdir failed: $!"); -if ($] >= 5.008) { +if ("$]" >= 5.008) { eval { require ExtUtils::MakeMaker::Locale; }; note "ExtUtils::MakeMaker::Locale vars: $ExtUtils::MakeMaker::Locale::ENCODING_LOCALE;$ExtUtils::MakeMaker::Locale::ENCODING_LOCALE_FS;$ExtUtils::MakeMaker::Locale::ENCODING_CONSOLE_IN;$ExtUtils::MakeMaker::Locale::ENCODING_CONSOLE_OUT\n" unless $@; note "Locale env vars: " . join(';', map { diff --git a/cpan/ExtUtils-MakeMaker/t/vstrings.t b/cpan/ExtUtils-MakeMaker/t/vstrings.t index 9f88399ebd..63ef8e292b 100644 --- a/cpan/ExtUtils-MakeMaker/t/vstrings.t +++ b/cpan/ExtUtils-MakeMaker/t/vstrings.t @@ -93,7 +93,7 @@ sub run_test { local $_; SKIP: { skip "No vstring test <5.8", 2 - if $] < 5.008 && $pkg eq 'BareV2String' && $descrip =~ m!^2-part!; + if "$]" < 5.008 && $pkg eq 'BareV2String' && $descrip =~ m!^2-part!; my $warnings; eval { $warnings = capture_make("Fake::$pkg" => $version); }; is($@, '', "$descrip not fatal") or skip "$descrip WM failed", 1; |