diff options
author | Chris 'BinGOs' Williams <chris@bingosnet.co.uk> | 2013-08-27 13:04:44 +0100 |
---|---|---|
committer | Chris 'BinGOs' Williams <chris@bingosnet.co.uk> | 2013-08-27 14:41:00 +0100 |
commit | d67fe576510286c2425bd5e8c2d7a43992d58d21 (patch) | |
tree | c784897d2663cc6048d9e129114c31ed6d7b28ef /cpan | |
parent | 8c24c1f7e93a2af859ae46bb1481ed452edcbf85 (diff) | |
download | perl-d67fe576510286c2425bd5e8c2d7a43992d58d21.tar.gz |
Update ExtUtils-MakerMaker to CPAN version 6.74
[DELTA]
6.74 Tue Aug 27 12:43:05 BST 2013
No changes from 6.73_12
6.73_12 Fri Aug 23 10:49:13 BST 2013
Bug Fixes:
* Preserve runtime requires when PREREQ_PM argument is empty or undef
(miyagawa)
* RT#88037 regen run of Makefile.PL will use same -MCross arg as
initial .PL run (bulk88)
6.73_11 Sat Aug 17 22:51:14 BST 2013
Bug Fixes:
* RT#87911 prepend SUFFIX with a '.' if one isn't supplied
6.73_10 Fri Aug 16 16:40:09 BST 2013
Bug Fixes:
* RT#87839 resolve bootstrap problems when required prereqs
are missing
6.73_09 Fri Aug 9 19:58:32 BST 2013
Bug Fixes:
* Bundle code from Text::ParseWords to handle splitting
PERL_MM_OPT (actually removing Text::ParseWords this time).
6.73_08 Fri Aug 9 19:49:27 BST 2013
Bug Fixes:
* Bundle code from Text::ParseWords to handle splitting
PERL_MM_OPT.
6.73_07 Wed Aug 7 16:07:04 BST 2013
Bug Fixes:
* Set ACTIVEPERL_CONFIG_SILENT=1 during tests to make
ActivePerl less vocal about things
6.73_06 Tue Aug 6 00:50:08 BST 2013
New features:
* RT#70201 replace -M with Time::HiRes::stat
Bug Fixes:
* Split PERL_MM_OPT like a shell would, instead of split ' '
Win32 Fixes:
* Correct an oversight with Liblist Kid fix
6.73_05 Mon Aug 5 17:44:00 BST 2013
Win32 fixes:
* Fix hash randomisation problems with Liblist Kid
6.73_04 Thu Aug 1 22:34:31 BST 2013
Doc fixes:
* Corrected example for PM => {}
6.73_03 Tue Jul 30 22:09:52 BST 2013
Bug Fixes:
* Fix clean_subdirs target that was generating
warning on BSD
6.73_02 Fri Jul 26 13:32:43 BST 2013
Misc:
* Updated bundled Parse::CPAN::Meta
6.73_01 Wed Jul 24 23:49:56 BST 2013
Bug Fixes:
* Robustified parse_version()
Diffstat (limited to 'cpan')
31 files changed, 239 insertions, 51 deletions
diff --git a/cpan/ExtUtils-MakeMaker/Changes b/cpan/ExtUtils-MakeMaker/Changes index 469d2518a8..88abfe4c71 100644 --- a/cpan/ExtUtils-MakeMaker/Changes +++ b/cpan/ExtUtils-MakeMaker/Changes @@ -1,3 +1,68 @@ +6.74 Tue Aug 27 12:43:05 BST 2013 + No changes from 6.73_12 + +6.73_12 Fri Aug 23 10:49:13 BST 2013 + Bug Fixes: + * Preserve runtime requires when PREREQ_PM argument is empty or undef + (miyagawa) + * RT#88037 regen run of Makefile.PL will use same -MCross arg as + initial .PL run (bulk88) + +6.73_11 Sat Aug 17 22:51:14 BST 2013 + Bug Fixes: + * RT#87911 prepend SUFFIX with a '.' if one isn't supplied + +6.73_10 Fri Aug 16 16:40:09 BST 2013 + Bug Fixes: + * RT#87839 resolve bootstrap problems when required prereqs + are missing + +6.73_09 Fri Aug 9 19:58:32 BST 2013 + Bug Fixes: + * Bundle code from Text::ParseWords to handle splitting + PERL_MM_OPT (actually removing Text::ParseWords this time). + +6.73_08 Fri Aug 9 19:49:27 BST 2013 + Bug Fixes: + * Bundle code from Text::ParseWords to handle splitting + PERL_MM_OPT. + +6.73_07 Wed Aug 7 16:07:04 BST 2013 + Bug Fixes: + * Set ACTIVEPERL_CONFIG_SILENT=1 during tests to make + ActivePerl less vocal about things + +6.73_06 Tue Aug 6 00:50:08 BST 2013 + New features: + * RT#70201 replace -M with Time::HiRes::stat + + Bug Fixes: + * Split PERL_MM_OPT like a shell would, instead of split ' ' + + Win32 Fixes: + * Correct an oversight with Liblist Kid fix + +6.73_05 Mon Aug 5 17:44:00 BST 2013 + Win32 fixes: + * Fix hash randomisation problems with Liblist Kid + +6.73_04 Thu Aug 1 22:34:31 BST 2013 + Doc fixes: + * Corrected example for PM => {} + +6.73_03 Tue Jul 30 22:09:52 BST 2013 + Bug Fixes: + * Fix clean_subdirs target that was generating + warning on BSD + +6.73_02 Fri Jul 26 13:32:43 BST 2013 + Misc: + * Updated bundled Parse::CPAN::Meta + +6.73_01 Wed Jul 24 23:49:56 BST 2013 + Bug Fixes: + * Robustified parse_version() + 6.72 Wed Jul 24 18:38:19 BST 2013 No changes from 6.71_01 diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Command/MM.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Command/MM.pm index cfd78eaea2..1711f8981a 100644 --- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Command/MM.pm +++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Command/MM.pm @@ -10,10 +10,14 @@ our @ISA = qw(Exporter); our @EXPORT = qw(test_harness pod2man perllocal_install uninstall warn_if_old_packlist); -our $VERSION = '6.72'; +our $VERSION = '6.74'; my $Is_VMS = $^O eq 'VMS'; +eval "require Time::HiRes"; +*mtime = $@ ? + sub { [ stat($_[0])]->[9] } : + sub { [Time::HiRes::stat($_[0])]->[9] } ; =head1 NAME @@ -131,8 +135,8 @@ sub pod2man { my ($pod, $man) = splice(@ARGV, 0, 2); next if ((-e $man) && - (-M $man < -M $pod) && - (-M $man < -M "Makefile")); + (mtime($man) > mtime($pod)) && + (mtime($man) > mtime("Makefile"))); print "Manifying $man\n"; diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist.pm index fb6ea97001..431548ae7c 100644 --- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist.pm +++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist.pm @@ -2,7 +2,7 @@ package ExtUtils::Liblist; use strict; -our $VERSION = '6.72'; +our $VERSION = '6.74'; 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 565d89687a..0b976f47c4 100644 --- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist/Kid.pm +++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist/Kid.pm @@ -11,7 +11,7 @@ use 5.006; use strict; use warnings; -our $VERSION = '6.72'; +our $VERSION = '6.74'; use ExtUtils::MakeMaker::Config; use Cwd 'cwd'; @@ -422,11 +422,11 @@ sub _win32_try_attach_extension { } sub _win32_lib_extensions { - my %extensions; - $extensions{ $Config{'lib_ext'} } = 1 if $Config{'lib_ext'}; - $extensions{".dll.a"} = 1 if $extensions{".a"}; - $extensions{".lib"} = 1; - return [ keys %extensions ]; + my @extensions; + push @extensions, $Config{'lib_ext'} if $Config{'lib_ext'}; + push @extensions, '.dll.a' if grep { m!^\.a$! } @extensions; + push @extensions, '.lib' unless grep { m!^\.lib$! } @extensions; + return \@extensions; } sub _debug { diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM.pm index 819fc00c0d..18f0e1098f 100644 --- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM.pm +++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM.pm @@ -3,7 +3,7 @@ package ExtUtils::MM; use strict; use ExtUtils::MakeMaker::Config; -our $VERSION = '6.72'; +our $VERSION = '6.74'; 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 b6856dfaf6..0a19649349 100644 --- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_AIX.pm +++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_AIX.pm @@ -1,7 +1,7 @@ package ExtUtils::MM_AIX; use strict; -our $VERSION = '6.72'; +our $VERSION = '6.74'; require ExtUtils::MM_Unix; our @ISA = qw(ExtUtils::MM_Unix); diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Any.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Any.pm index 3795ab1f2d..9a26890ad3 100644 --- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Any.pm +++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Any.pm @@ -1,7 +1,7 @@ package ExtUtils::MM_Any; use strict; -our $VERSION = '6.72'; +our $VERSION = '6.74'; use Carp; use File::Spec; @@ -578,7 +578,7 @@ clean :: clean_subdirs # Leave Makefile.old around for realclean push @m, <<'MAKE'; - - $(NOECHO) $(RM_F) $(MAKEFILE_OLD) + $(NOECHO) $(RM_F) $(MAKEFILE_OLD) - $(MV) $(FIRST_MAKEFILE) $(MAKEFILE_OLD) $(DEV_NULL) MAKE @@ -1087,7 +1087,7 @@ sub _add_requirements_to_meta_v2 { } $meta{prereqs}{runtime}{requires} = _normalize_prereqs($self->{PREREQ_PM}) - if defined $self->{PREREQ_PM}; + if $self->{ARGS}{PREREQ_PM}; $meta{prereqs}{runtime}{requires}{perl} = _normalize_version($self->{MIN_PERL_VERSION}) if $self->{MIN_PERL_VERSION}; diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_BeOS.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_BeOS.pm index 65f1b32b66..596b908156 100644 --- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_BeOS.pm +++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_BeOS.pm @@ -26,7 +26,7 @@ require ExtUtils::MM_Any; require ExtUtils::MM_Unix; our @ISA = qw( ExtUtils::MM_Any ExtUtils::MM_Unix ); -our $VERSION = '6.72'; +our $VERSION = '6.74'; =item os_flavor diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Cygwin.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Cygwin.pm index 0f7a1612a9..af1be93fc9 100644 --- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Cygwin.pm +++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Cygwin.pm @@ -9,7 +9,7 @@ require ExtUtils::MM_Unix; require ExtUtils::MM_Win32; our @ISA = qw( ExtUtils::MM_Unix ); -our $VERSION = '6.72'; +our $VERSION = '6.74'; =head1 NAME diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_DOS.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_DOS.pm index ce6a9d6300..cfeff27c2c 100644 --- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_DOS.pm +++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_DOS.pm @@ -2,7 +2,7 @@ package ExtUtils::MM_DOS; use strict; -our $VERSION = '6.72'; +our $VERSION = '6.74'; 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 fe165ec922..a7f8ffadd8 100644 --- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Darwin.pm +++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Darwin.pm @@ -7,7 +7,7 @@ BEGIN { our @ISA = qw( ExtUtils::MM_Unix ); } -our $VERSION = '6.72'; +our $VERSION = '6.74'; =head1 NAME diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_MacOS.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_MacOS.pm index c81d357cb3..ebc20740ba 100644 --- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_MacOS.pm +++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_MacOS.pm @@ -2,7 +2,7 @@ package ExtUtils::MM_MacOS; use strict; -our $VERSION = '6.72'; +our $VERSION = '6.74'; sub new { die <<'UNSUPPORTED'; diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_NW5.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_NW5.pm index bbc47ed6bf..5bf2660716 100644 --- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_NW5.pm +++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_NW5.pm @@ -22,7 +22,7 @@ use strict; use ExtUtils::MakeMaker::Config; use File::Basename; -our $VERSION = '6.72'; +our $VERSION = '6.74'; require ExtUtils::MM_Win32; our @ISA = qw(ExtUtils::MM_Win32); diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_OS2.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_OS2.pm index a6a31bb566..6c4ef808ac 100644 --- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_OS2.pm +++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_OS2.pm @@ -5,7 +5,7 @@ use strict; use ExtUtils::MakeMaker qw(neatvalue); use File::Spec; -our $VERSION = '6.72'; +our $VERSION = '6.74'; 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 cf1d0ba7ca..b352bae9bf 100644 --- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_QNX.pm +++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_QNX.pm @@ -1,7 +1,7 @@ package ExtUtils::MM_QNX; use strict; -our $VERSION = '6.72'; +our $VERSION = '6.74'; 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 0d25e2c35f..d79419cc37 100644 --- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_UWIN.pm +++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_UWIN.pm @@ -1,7 +1,7 @@ package ExtUtils::MM_UWIN; use strict; -our $VERSION = '6.72'; +our $VERSION = '6.74'; 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 110d6650cb..100951f3f8 100644 --- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm +++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm @@ -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 = '6.72'; +$VERSION = '6.74'; $VERSION = eval $VERSION; ## no critic [BuiltinFunctions::ProhibitStringyEval] require ExtUtils::MM_Any; @@ -583,7 +583,6 @@ sub init_dist { ($self->{DISTNAME} = $self->{NAME}) =~ s{::}{-}g unless $self->{DISTNAME}; $self->{DISTVNAME} ||= $self->{DISTNAME}.'-'.$self->{VERSION}; - } =item dist (o) @@ -601,6 +600,9 @@ sub dist { my($self, %attribs) = @_; my $make = ''; + if ( $attribs{SUFFIX} && $attribs{SUFFIX} !~ m!^\.! ) { + $attribs{SUFFIX} = '.' . $attribs{SUFFIX}; + } foreach my $key (qw( TAR TARFLAGS ZIP ZIPFLAGS COMPRESS SUFFIX SHAR PREOP POSTOP TO_UNIX @@ -2522,8 +2524,12 @@ $(OBJECT) : $(FIRST_MAKEFILE) my $newer_than_target = $Is{VMS} ? '$(MMS$SOURCE_LIST)' : '$?'; my $mpl_args = join " ", map qq["$_"], @ARGV; - - $m .= sprintf <<'MAKE_FRAG', $newer_than_target, $mpl_args; + my $cross = ''; + if (defined $::Cross::platform) { + # Inherited from win32/buildext.pl + $cross = "-MCross=$::Cross::platform "; + } + $m .= sprintf <<'MAKE_FRAG', $newer_than_target, $cross, $mpl_args; # We take a very conservative approach here, but it's worth it. # We move Makefile to Makefile.old here to avoid gnu make looping. $(FIRST_MAKEFILE) : Makefile.PL $(CONFIGDEP) @@ -2532,7 +2538,7 @@ $(FIRST_MAKEFILE) : Makefile.PL $(CONFIGDEP) -$(NOECHO) $(RM_F) $(MAKEFILE_OLD) -$(NOECHO) $(MV) $(FIRST_MAKEFILE) $(MAKEFILE_OLD) - $(MAKE) $(USEMAKEFILE) $(MAKEFILE_OLD) clean $(DEV_NULL) - $(PERLRUN) Makefile.PL %s + $(PERLRUN) %sMakefile.PL %s $(NOECHO) $(ECHO) "==> Your Makefile has been rebuilt. <==" $(NOECHO) $(ECHO) "==> Please rerun the $(MAKE) command. <==" $(FALSE) @@ -2645,15 +2651,11 @@ sub parse_version { next if $inpod || /^\s*#/; chop; next if /^\s*(if|unless|elsif)/; - s{\;\s*(?<![\\\$])\#.+?$}{}g; if ( m{^ \s* package \s+ \w[\w\:\']* \s+ (v?[0-9._]+) \s* ; }x ) { local $^W = 0; $result = $1; } - elsif ( m{(?<!\\) ([\$*]) (([\w\:\']*) \bVERSION)\b .* [!><=][!><=]}x ) { - next; - } - elsif ( m{(?<!\\) ([\$*]) (([\w\:\']*) \bVERSION)\b .* =}x ) { + elsif ( m{(?<!\\) ([\$*]) (([\w\:\']*) \bVERSION)\b .* (?<![<>=!])\=[^=]}x ) { $result = $self->get_version($parsefile, $1, $2); } else { diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VMS.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VMS.pm index 2538e63a3c..acf3dd6d0d 100644 --- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VMS.pm +++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VMS.pm @@ -15,7 +15,7 @@ BEGIN { use File::Basename; -our $VERSION = '6.72'; +our $VERSION = '6.74'; require ExtUtils::MM_Any; require ExtUtils::MM_Unix; diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VOS.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VOS.pm index 0bda8b7ef7..738032303e 100644 --- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VOS.pm +++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VOS.pm @@ -1,7 +1,7 @@ package ExtUtils::MM_VOS; use strict; -our $VERSION = '6.72'; +our $VERSION = '6.74'; 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 0a06233fa9..3310db5bd4 100644 --- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win32.pm +++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win32.pm @@ -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 = '6.72'; +our $VERSION = '6.74'; $ENV{EMXSHELL} = 'sh'; # to run `commands` diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win95.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win95.pm index b07b9aaa33..a89ee5bc56 100644 --- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win95.pm +++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win95.pm @@ -2,7 +2,7 @@ package ExtUtils::MM_Win95; use strict; -our $VERSION = '6.72'; +our $VERSION = '6.74'; 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 008e403a2f..c314562639 100644 --- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MY.pm +++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MY.pm @@ -3,7 +3,7 @@ package ExtUtils::MY; use strict; require ExtUtils::MM; -our $VERSION = '6.72'; +our $VERSION = '6.74'; our @ISA = qw(ExtUtils::MM); { diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm index 692f86f979..5049ef9ee5 100644 --- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm +++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm @@ -18,7 +18,7 @@ our @Overridable; my @Prepend_parent; my %Recognized_Att_Keys; -our $VERSION = '6.72'; +our $VERSION = '6.74'; $VERSION = eval $VERSION; ## no critic [BuiltinFunctions::ProhibitStringyEval] # Emulate something resembling CVS $Revision$ @@ -585,8 +585,9 @@ END } my @fm = grep /^FIRST_MAKEFILE=/, @ARGV; parse_args($self,@fm) if @fm; - } else { - parse_args($self,split(' ', $ENV{PERL_MM_OPT} || ''),@ARGV); + } + else { + parse_args($self, _shellwords($ENV{PERL_MM_OPT} || ''),@ARGV); } @@ -799,6 +800,83 @@ END return @result; } +# _shellwords and _parseline borrowed from Text::ParseWords +sub _shellwords { + my (@lines) = @_; + my @allwords; + + foreach my $line (@lines) { + $line =~ s/^\s+//; + my @words = _parse_line('\s+', 0, $line); + pop @words if (@words and !defined $words[-1]); + return() unless (@words || !length($line)); + push(@allwords, @words); + } + return(@allwords); +} + +sub _parse_line { + my($delimiter, $keep, $line) = @_; + my($word, @pieces); + + no warnings 'uninitialized'; # we will be testing undef strings + + while (length($line)) { + # This pattern is optimised to be stack conservative on older perls. + # Do not refactor without being careful and testing it on very long strings. + # See Perl bug #42980 for an example of a stack busting input. + $line =~ s/^ + (?: + # double quoted string + (") # $quote + ((?>[^\\"]*(?:\\.[^\\"]*)*))" # $quoted + | # --OR-- + # singe quoted string + (') # $quote + ((?>[^\\']*(?:\\.[^\\']*)*))' # $quoted + | # --OR-- + # unquoted string + ( # $unquoted + (?:\\.|[^\\"'])*? + ) + # followed by + ( # $delim + \Z(?!\n) # EOL + | # --OR-- + (?-x:$delimiter) # delimiter + | # --OR-- + (?!^)(?=["']) # a quote + ) + )//xs or return; # extended layout + my ($quote, $quoted, $unquoted, $delim) = (($1 ? ($1,$2) : ($3,$4)), $5, $6); + + + return() unless( defined($quote) || length($unquoted) || length($delim)); + + if ($keep) { + $quoted = "$quote$quoted$quote"; + } + else { + $unquoted =~ s/\\(.)/$1/sg; + if (defined $quote) { + $quoted =~ s/\\(.)/$1/sg if ($quote eq '"'); + #$quoted =~ s/\\([\\'])/$1/g if ( $PERL_SINGLE_QUOTE && $quote eq "'"); + } + } + $word .= substr($line, 0, 0); # leave results tainted + $word .= defined $quote ? $quoted : $unquoted; + + if (length($delim)) { + push(@pieces, $word); + push(@pieces, $delim) if ($keep eq 'delimiters'); + undef $word; + } + if (!length($line)) { + push(@pieces, $word); + } + } + return(@pieces); +} sub check_manifest { print "Checking if your kit is complete...\n"; @@ -2284,7 +2362,7 @@ is there for backwards compatibility (and it's somewhat DWIM). Hashref of .pm files and *.pl files to be installed. e.g. - {'name_of_file.pm' => '$(INST_LIBDIR)/install_as.pm'} + {'name_of_file.pm' => '$(INST_LIB)/install_as.pm'} By default this will include *.pm and *.pl and the files found in the PMLIBDIRS directories. Defining PM in the @@ -2921,9 +2999,11 @@ If no $default is provided an empty string will be used instead. =item PERL_MM_OPT Command line options used by C<MakeMaker-E<gt>new()>, and thus by -C<WriteMakefile()>. The string is split on whitespace, and the result +C<WriteMakefile()>. The string is split as the shell would, and the result is processed before any actual command line arguments are processed. + PERL_MM_OPT='CCFLAGS="-Wl,-rpath -Wl,/foo/bar/lib" LIBS="-lwibble -lwobble"' + =item PERL_MM_USE_DEFAULT If set to a true value then MakeMaker's prompt function will diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Config.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Config.pm index 0c4eb7d465..3e7b432ddc 100644 --- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Config.pm +++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Config.pm @@ -2,7 +2,7 @@ package ExtUtils::MakeMaker::Config; use strict; -our $VERSION = '6.72'; +our $VERSION = '6.74'; use Config (); diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/FAQ.pod b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/FAQ.pod index 1b863cc117..ba8188b9b0 100644 --- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/FAQ.pod +++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/FAQ.pod @@ -1,6 +1,6 @@ package ExtUtils::MakeMaker::FAQ; -our $VERSION = '6.72'; +our $VERSION = '6.74'; 1; __END__ diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Tutorial.pod b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Tutorial.pod index b69fe6ac43..baded39fd0 100644 --- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Tutorial.pod +++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Tutorial.pod @@ -1,6 +1,6 @@ package ExtUtils::MakeMaker::Tutorial; -our $VERSION = '6.72'; +our $VERSION = '6.74'; =head1 NAME diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mkbootstrap.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mkbootstrap.pm index c97498dc9c..55ed7f87e9 100644 --- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mkbootstrap.pm +++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mkbootstrap.pm @@ -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 = '6.72'; +our $VERSION = '6.74'; require Exporter; our @ISA = ('Exporter'); diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mksymlists.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mksymlists.pm index 69647a80d4..697290ee86 100644 --- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mksymlists.pm +++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mksymlists.pm @@ -10,7 +10,7 @@ use Config; our @ISA = qw(Exporter); our @EXPORT = qw(&Mksymlists); -our $VERSION = '6.72'; +our $VERSION = '6.74'; sub Mksymlists { my(%spec) = @_; diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/testlib.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/testlib.pm index f19164eb13..b6b76ad717 100644 --- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/testlib.pm +++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/testlib.pm @@ -3,7 +3,7 @@ package ExtUtils::testlib; use strict; use warnings; -our $VERSION = '6.72'; +our $VERSION = '6.74'; use Cwd; use File::Spec; diff --git a/cpan/ExtUtils-MakeMaker/t/lib/MakeMaker/Test/Utils.pm b/cpan/ExtUtils-MakeMaker/t/lib/MakeMaker/Test/Utils.pm index 9f7e3f1be5..1b929b1226 100644 --- a/cpan/ExtUtils-MakeMaker/t/lib/MakeMaker/Test/Utils.pm +++ b/cpan/ExtUtils-MakeMaker/t/lib/MakeMaker/Test/Utils.pm @@ -38,6 +38,9 @@ our @EXPORT = qw(which_perl perl_lib makefile_name makefile_backup # Inform the BSDPAN hacks not to register modules installed for testing. $default_env_keys{PORTOBJFORMAT} = 1 if $Is_FreeBSD; + # https://github.com/Perl-Toolchain-Gang/ExtUtils-MakeMaker/issues/65 + $default_env_keys{ACTIVEPERL_CONFIG_SILENT} = 1; + # Remember the ENV values because on VMS %ENV is global # to the user, not the process. my %restore_env_keys; diff --git a/cpan/ExtUtils-MakeMaker/t/writemakefile_args.t b/cpan/ExtUtils-MakeMaker/t/writemakefile_args.t index 421a311c18..c3133a29bb 100644 --- a/cpan/ExtUtils-MakeMaker/t/writemakefile_args.t +++ b/cpan/ExtUtils-MakeMaker/t/writemakefile_args.t @@ -8,7 +8,7 @@ BEGIN { } use strict; -use Test::More tests => 39; +use Test::More tests => 43; use TieOut; use MakeMaker::Test::Utils; @@ -239,4 +239,38 @@ VERIFY is( $warnings, '' ); is_deeply( $mm->{AUTHOR}, ["test1","test2"] ); + # PERL_MM_OPT + { + local $ENV{PERL_MM_OPT} = 'CCFLAGS="-Wl,-rpath -Wl,/foo/bar/lib" LIBS="-lwibble -lwobble"'; + $mm = WriteMakefile( + NAME => 'Big::Dummy', + VERSION => '1.00', + ); + + is( $mm->{CCFLAGS}, "-Wl,-rpath -Wl,/foo/bar/lib", 'parse_args() splits like shell' ); + is_deeply( $mm->{LIBS}, ['-lwibble -lwobble'], 'parse_args() splits like shell' ); + } + + # PERL_MM_OPT + { + local $ENV{PERL_MM_OPT} = 'INSTALL_BASE=/how/we/have/not/broken/local/lib'; + $mm = WriteMakefile( + NAME => 'Big::Dummy', + VERSION => '1.00', + ); + + is( $mm->{INSTALL_BASE}, "/how/we/have/not/broken/local/lib", 'parse_args() splits like shell' ); + } + + # PERL_MM_OPT + { + local $ENV{PERL_MM_OPT} = 'INSTALL_BASE="/Users/miyagawa/tmp/car1 foo/foo bar"'; + $mm = WriteMakefile( + NAME => 'Big::Dummy', + VERSION => '1.00', + ); + + is( $mm->{INSTALL_BASE}, "/Users/miyagawa/tmp/car1 foo/foo bar", 'parse_args() splits like shell' ); + } + } |