diff options
author | Karl Berry <karl@freefriends.org> | 2017-04-18 23:10:57 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2017-04-18 23:10:57 +0000 |
commit | 40b4b6e177c62a14c166dbba6adf3abc415af4b2 (patch) | |
tree | 2996bf29509c806bd8064fb6cf38092c1b375ff8 /Master/tlpkg/tlperl/lib/ExtUtils | |
parent | 8e743c86b6872f30b7a35c72aa944455157d4b3f (diff) |
tlperl 5.24.1 from siep
git-svn-id: svn://tug.org/texlive/trunk@43914 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/tlpkg/tlperl/lib/ExtUtils')
60 files changed, 257 insertions, 1301 deletions
diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder.pm b/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder.pm index 17a49633984..6ce0c687943 100644 --- a/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder.pm +++ b/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder.pm @@ -1,10 +1,12 @@ package ExtUtils::CBuilder; -$ExtUtils::CBuilder::VERSION = '0.280221'; +$ExtUtils::CBuilder::VERSION = '0.280225'; use File::Spec (); use File::Path (); use File::Basename (); use Perl::OSType qw/os_type/; +use warnings; +use strict; use vars qw(@ISA); # We only use this once - don't waste a symbol table entry on it. @@ -18,17 +20,18 @@ my $load = sub { { my @package = split /::/, __PACKAGE__; - + my $ostype = os_type(); if (grep {-e File::Spec->catfile($_, @package, 'Platform', $^O) . '.pm'} @INC) { - $load->(__PACKAGE__ . "::Platform::$^O"); - - } elsif ( $ostype && grep {-e File::Spec->catfile($_, @package, 'Platform', $ostype) . '.pm'} @INC) { - $load->(__PACKAGE__ . "::Platform::$ostype"); - + $load->(__PACKAGE__ . "::Platform::$^O"); + + } elsif ( $ostype && + grep {-e File::Spec->catfile($_, @package, 'Platform', $ostype) . '.pm'} @INC) { + $load->(__PACKAGE__ . "::Platform::$ostype"); + } else { - $load->(__PACKAGE__ . "::Base"); + $load->(__PACKAGE__ . "::Base"); } } diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Base.pm b/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Base.pm index 7df61e4c54b..60b2f432dfb 100644 --- a/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Base.pm +++ b/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Base.pm @@ -1,6 +1,7 @@ package ExtUtils::CBuilder::Base; -$ExtUtils::CBuilder::Base::VERSION = '0.280221'; +$ExtUtils::CBuilder::Base::VERSION = '0.280225'; use strict; +use warnings; use File::Spec; use File::Basename; use Cwd (); @@ -128,20 +129,20 @@ sub arg_exec_file { sub arg_defines { my ($self, %args) = @_; - return map "-D$_=$args{$_}", keys %args; + return map "-D$_=$args{$_}", sort keys %args; } sub compile { my ($self, %args) = @_; die "Missing 'source' argument to compile()" unless defined $args{source}; - + my $cf = $self->{config}; # For convenience - + my $object_file = $args{object_file} ? $args{object_file} : $self->object_file($args{source}); - my $include_dirs_ref = + my $include_dirs_ref = (exists($args{include_dirs}) && ref($args{include_dirs}) ne "ARRAY") ? [ $args{include_dirs} ] : $args{include_dirs}; @@ -149,9 +150,9 @@ sub compile { @{ $include_dirs_ref || [] }, $self->perl_inc(), ); - + my @defines = $self->arg_defines( %{$args{defines} || {}} ); - + my @extra_compiler_flags = $self->split_like_shell($args{extra_compiler_flags}); my @cccdlflags = $self->split_like_shell($cf->{cccdlflags}); @@ -168,7 +169,7 @@ sub compile { $self->arg_object_file($object_file), ); my @cc = $self->split_like_shell($args{'C++'} ? $cf->{cxx} : $cf->{cc}); - + $self->do_system(@cc, @flags, $args{source}) or die "error building $object_file from '$args{source}'"; @@ -222,7 +223,7 @@ sub lib_file { my ($self, $dl_file, %args) = @_; $dl_file =~ s/\.[^.]+$//; $dl_file =~ tr/"//d; - + if (defined $args{module_name} and length $args{module_name}) { # Need to create with the same name as DynaLoader will load with. require DynaLoader; @@ -232,7 +233,7 @@ sub lib_file { $dl_file = File::Spec->catpath($dev, $lib_dir, $lib); } } - + $dl_file .= ".$self->{config}{dlext}"; return $dl_file; @@ -266,7 +267,7 @@ sub prelink { sub _prepare_mksymlists_args { my $args = shift; ($args->{dl_file} = $args->{dl_name}) =~ s/.*::// unless $args->{dl_file}; - + my %mksymlists_args = ( DL_VARS => $args->{dl_vars} || [], DL_FUNCS => $args->{dl_funcs} || {}, @@ -294,16 +295,16 @@ sub _do_link { my ($self, $type, %args) = @_; my $cf = $self->{config}; # For convenience - + my $objects = delete $args{objects}; $objects = [$objects] unless ref $objects; my $out = $args{$type} || $self->$type($objects->[0], %args); - + my @temp_files; @temp_files = $self->prelink(%args, dl_name => $args{module_name}) if $args{lddl} && $self->need_prelink; - + my @linker_flags = ( $self->split_like_shell($args{extra_linker_flags}), $self->extra_link_args_after_prelink( @@ -316,10 +317,10 @@ sub _do_link { : $self->arg_exec_file($out); my @shrp = $self->split_like_shell($cf->{shrpenv}); my @ld = $self->split_like_shell($cf->{ld}); - + $self->do_system(@shrp, @ld, @output, @$objects, @linker_flags) or die "error building $out from @$objects"; - + return wantarray ? ($out, @temp_files) : $out; } @@ -332,17 +333,17 @@ sub do_system { sub split_like_shell { my ($self, $string) = @_; - + return () unless defined($string); return @$string if UNIVERSAL::isa($string, 'ARRAY'); $string =~ s/^\s+|\s+$//g; return () unless length($string); - + # Text::ParseWords replaces all 'escaped' characters with themselves, which completely # breaks paths under windows. As such, we forcibly replace backwards slashes with forward # slashes on windows. $string =~ s@\\@/@g if $^O eq 'MSWin32'; - + return Text::ParseWords::shellwords($string); } diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/Unix.pm b/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/Unix.pm index a05ae4bca6f..399e254aa0c 100644 --- a/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/Unix.pm +++ b/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/Unix.pm @@ -1,5 +1,6 @@ package ExtUtils::CBuilder::Platform::Unix; -$ExtUtils::CBuilder::Platform::Unix::VERSION = '0.280221'; +$ExtUtils::CBuilder::Platform::Unix::VERSION = '0.280225'; +use warnings; use strict; use ExtUtils::CBuilder::Base; @@ -20,19 +21,19 @@ sub link_executable { sub link { my $self = shift; my $cf = $self->{config}; - + # Some platforms (notably Mac OS X 10.3, but some others too) expect # the syntax "FOO=BAR /bin/command arg arg" to work in %Config # (notably $Config{ld}). It usually works in system(SCALAR), but we # use system(LIST). We fix it up here with 'env'. - + local $cf->{ld} = $cf->{ld}; if (ref $cf->{ld}) { unshift @{$cf->{ld}}, 'env' if $cf->{ld}[0] =~ /^\s*\w+=/; } else { $cf->{ld} =~ s/^(\s*\w+=)/env $1/; } - + return $self->SUPER::link(@_); } diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/VMS.pm b/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/VMS.pm index 6285e33692d..e9d9f6fc2fd 100644 --- a/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/VMS.pm +++ b/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/VMS.pm @@ -1,5 +1,6 @@ package ExtUtils::CBuilder::Platform::VMS; -$ExtUtils::CBuilder::Platform::VMS::VERSION = '0.280221'; +$ExtUtils::CBuilder::Platform::VMS::VERSION = '0.280225'; +use warnings; use strict; use ExtUtils::CBuilder::Base; @@ -27,11 +28,11 @@ sub arg_defines { return '' unless keys(%args) || @config_defines; - return ('/define=(' - . join(',', + return ('/define=(' + . join(',', @config_defines, - map "\"$_" . ( length($args{$_}) ? "=$args{$_}" : '') . "\"", - keys %args) + map "\"$_" . ( length($args{$_}) ? "=$args{$_}" : '') . "\"", + sort keys %args) . ')'); } @@ -50,7 +51,7 @@ sub arg_include_dirs { # We override the compile method because we consume the includes and defines # parts of ccflags in the process of compiling but don't save those parts # anywhere, so $self->{config}{ccflags} needs to be reset for each compile -# operation. +# operation. sub compile { my ($self, %args) = @_; @@ -63,10 +64,10 @@ sub compile { sub _do_link { my ($self, $type, %args) = @_; - + my $objects = delete $args{objects}; $objects = [$objects] unless ref $objects; - + if ($args{lddl}) { # prelink will call Mksymlists, which creates the extension-specific @@ -77,7 +78,7 @@ sub _do_link { # We now add the rest of what we need to the linker options file. We # should replicate the functionality of C<ExtUtils::MM_VMS::dlsyms>, # but there is as yet no infrastructure for handling object libraries, - # so for now we depend on object files being listed individually on the + # so for now we depend on object files being listed individually on the # command line, which should work for simple cases. We do bring in our # own version of C<ExtUtils::Liblist::Kid::ext> so that any additional # libraries (including PERLSHR) can be added to the options file. @@ -85,7 +86,7 @@ sub _do_link { my @optlibs = $self->_liblist_ext( $args{'libs'} ); my $optfile = 'sys$disk:[]' . $temp_files[0]; - open my $opt_fh, '>>', $optfile + open my $opt_fh, '>>', $optfile or die "_do_link: Unable to open $optfile: $!"; for my $lib (@optlibs) {print $opt_fh "$lib\n" if length $lib } close $opt_fh; @@ -136,7 +137,7 @@ sub _liblist_ext { # which a system-wide logical may point. if ($self->perl_src) { my($lib,$locspec,$type); - foreach $lib (@crtls) { + foreach $lib (@crtls) { if (($locspec,$type) = $lib =~ m{^([\w\$-]+)(/\w+)?} and $locspec =~ /perl/i) { if (lc $type eq '/share') { $locspec .= $self->{'config'}{'exe_ext'}; } elsif (lc $type eq '/library') { $locspec .= $self->{'config'}{'lib_ext'}; } @@ -188,8 +189,8 @@ sub _liblist_ext { next; } warn "Resolving directory $dir\n" if $verbose; - if (!File::Spec->file_name_is_absolute($dir)) { - $dir = catdir($cwd,$dir); + if (!File::Spec->file_name_is_absolute($dir)) { + $dir = catdir($cwd,$dir); } } @dirs = grep { length($_) } @dirs; @@ -243,14 +244,14 @@ sub _liblist_ext { $type = 'SHR'; $name = $fullname unless $fullname =~ /exe;?\d*$/i; } - elsif (not length($ctype) and # If we've got a lib already, + elsif (not length($ctype) and # If we've got a lib already, # don't bother ( -f ($fullname = VMS::Filespec::rmsexpand($name,$lib_ext)) or -f ($fullname = VMS::Filespec::rmsexpand($name,'.olb')))) { $type = 'OLB'; $name = $fullname unless $fullname =~ /olb;?\d*$/i; } - elsif (not length($ctype) and # If we've got a lib already, + elsif (not length($ctype) and # If we've got a lib already, # don't bother ( -f ($fullname = VMS::Filespec::rmsexpand($name,$obj_ext)) or -f ($fullname = VMS::Filespec::rmsexpand($name,'.obj')))) { @@ -264,9 +265,9 @@ sub _liblist_ext { last if $ctype eq 'SHR'; } } - if ($ctype) { + if ($ctype) { push @{$found{$ctype}}, $cand; - warn "\tFound as $cand (really $fullname), type $ctype\n" + warn "\tFound as $cand (really $fullname), type $ctype\n" if $verbose > 1; push @flibs, $name unless $libs_seen{$fullname}++; next LIB; diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/Windows.pm b/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/Windows.pm index 472c8012da3..80b8f29cd2d 100644 --- a/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/Windows.pm +++ b/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/Windows.pm @@ -1,5 +1,5 @@ package ExtUtils::CBuilder::Platform::Windows; -$ExtUtils::CBuilder::Platform::Windows::VERSION = '0.280221'; +$ExtUtils::CBuilder::Platform::Windows::VERSION = '0.280225'; use strict; use warnings; @@ -57,7 +57,7 @@ sub split_like_shell { # array) to the target program and make the program parse it itself, # we don't actually need to do any processing here. (my $self, local $_) = @_; - + return @$_ if defined() && UNIVERSAL::isa($_, 'ARRAY'); return unless defined() && length(); return ($_); @@ -76,7 +76,7 @@ sub do_system { sub arg_defines { my ($self, %args) = @_; s/"/\\"/g foreach values %args; - return map qq{"-D$_=$args{$_}"}, keys %args; + return map qq{"-D$_=$args{$_}"}, sort keys %args; } sub compile { @@ -85,7 +85,7 @@ sub compile { die "Missing 'source' argument to compile()" unless defined $args{source}; - $args{include_dirs} = [ $args{include_dirs} ] + $args{include_dirs} = [ $args{include_dirs} ] if exists($args{include_dirs}) && ref($args{include_dirs}) ne "ARRAY"; my ($basename, $srcdir) = @@ -151,7 +151,7 @@ sub link { # if running in perl source tree, look for libs there, not installed my $lddlflags = $cf->{lddlflags}; my $perl_src = $self->perl_src(); - $lddlflags =~ s/\Q$cf->{archlibexp}\E[\\\/]CORE/$perl_src/ if $perl_src; + $lddlflags =~ s/\Q$cf->{archlibexp}\E[\\\/]CORE/$perl_src\/lib\/CORE/ if $perl_src; my %spec = ( srcdir => $to, diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/Windows/BCC.pm b/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/Windows/BCC.pm index cbba074146a..513c4acaeea 100644 --- a/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/Windows/BCC.pm +++ b/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/Windows/BCC.pm @@ -1,5 +1,8 @@ package ExtUtils::CBuilder::Platform::Windows::BCC; -$ExtUtils::CBuilder::Platform::Windows::BCC::VERSION = '0.280220'; +$ExtUtils::CBuilder::Platform::Windows::BCC::VERSION = '0.280225'; +use strict; +use warnings; + sub format_compiler_cmd { my ($self, %spec) = @_; diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/Windows/GCC.pm b/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/Windows/GCC.pm index eb37a0e1711..19851df352e 100644 --- a/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/Windows/GCC.pm +++ b/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/Windows/GCC.pm @@ -1,5 +1,8 @@ package ExtUtils::CBuilder::Platform::Windows::GCC; -$ExtUtils::CBuilder::Platform::Windows::GCC::VERSION = '0.280220'; +$ExtUtils::CBuilder::Platform::Windows::GCC::VERSION = '0.280225'; +use warnings; +use strict; + sub format_compiler_cmd { my ($self, %spec) = @_; diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/Windows/MSVC.pm b/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/Windows/MSVC.pm index 8457485e22f..c8d675f4978 100644 --- a/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/Windows/MSVC.pm +++ b/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/Windows/MSVC.pm @@ -1,5 +1,8 @@ package ExtUtils::CBuilder::Platform::Windows::MSVC; -$ExtUtils::CBuilder::Platform::Windows::MSVC::VERSION = '0.280220'; +$ExtUtils::CBuilder::Platform::Windows::MSVC::VERSION = '0.280225'; +use warnings; +use strict; + sub arg_exec_file { my ($self, $file) = @_; return "/OUT:$file"; diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/aix.pm b/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/aix.pm index c40dfaa5f46..488d3e68bc9 100644 --- a/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/aix.pm +++ b/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/aix.pm @@ -1,5 +1,6 @@ package ExtUtils::CBuilder::Platform::aix; -$ExtUtils::CBuilder::Platform::aix::VERSION = '0.280221'; +$ExtUtils::CBuilder::Platform::aix::VERSION = '0.280225'; +use warnings; use strict; use ExtUtils::CBuilder::Platform::Unix; use File::Spec; diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/android.pm b/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/android.pm index 8ceb1454d6d..b9e6af3129c 100644 --- a/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/android.pm +++ b/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/android.pm @@ -1,5 +1,6 @@ package ExtUtils::CBuilder::Platform::android; -$ExtUtils::CBuilder::Platform::android::VERSION = '0.280221'; +$ExtUtils::CBuilder::Platform::android::VERSION = '0.280225'; +use warnings; use strict; use File::Spec; use ExtUtils::CBuilder::Platform::Unix; diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/cygwin.pm b/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/cygwin.pm index 9f1e7fea397..339840f8c19 100644 --- a/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/cygwin.pm +++ b/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/cygwin.pm @@ -1,5 +1,6 @@ package ExtUtils::CBuilder::Platform::cygwin; -$ExtUtils::CBuilder::Platform::cygwin::VERSION = '0.280221'; +$ExtUtils::CBuilder::Platform::cygwin::VERSION = '0.280225'; +use warnings; use strict; use File::Spec; use ExtUtils::CBuilder::Platform::Unix; diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/darwin.pm b/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/darwin.pm index 391040bb934..04a87da3311 100644 --- a/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/darwin.pm +++ b/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/darwin.pm @@ -1,5 +1,6 @@ package ExtUtils::CBuilder::Platform::darwin; -$ExtUtils::CBuilder::Platform::darwin::VERSION = '0.280221'; +$ExtUtils::CBuilder::Platform::darwin::VERSION = '0.280225'; +use warnings; use strict; use ExtUtils::CBuilder::Platform::Unix; diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/dec_osf.pm b/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/dec_osf.pm index 5d4bdf78b13..d503e8614bf 100644 --- a/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/dec_osf.pm +++ b/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/dec_osf.pm @@ -1,5 +1,6 @@ package ExtUtils::CBuilder::Platform::dec_osf; -$ExtUtils::CBuilder::Platform::dec_osf::VERSION = '0.280221'; +$ExtUtils::CBuilder::Platform::dec_osf::VERSION = '0.280225'; +use warnings; use strict; use ExtUtils::CBuilder::Platform::Unix; use File::Spec; diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/os2.pm b/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/os2.pm index a5d81ca3311..8d0e3eb0dc2 100644 --- a/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/os2.pm +++ b/Master/tlpkg/tlperl/lib/ExtUtils/CBuilder/Platform/os2.pm @@ -1,5 +1,6 @@ package ExtUtils::CBuilder::Platform::os2; -$ExtUtils::CBuilder::Platform::os2::VERSION = '0.280221'; +$ExtUtils::CBuilder::Platform::os2::VERSION = '0.280225'; +use warnings; use strict; use ExtUtils::CBuilder::Platform::Unix; diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/Command.pm b/Master/tlpkg/tlperl/lib/ExtUtils/Command.pm index 7f3161a73a1..34e85decfbe 100644 --- a/Master/tlpkg/tlperl/lib/ExtUtils/Command.pm +++ b/Master/tlpkg/tlperl/lib/ExtUtils/Command.pm @@ -7,7 +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 = '1.20'; +$VERSION = '7.10_02'; +$VERSION = eval $VERSION; my $Is_VMS = $^O eq 'VMS'; my $Is_VMS_mode = $Is_VMS; @@ -19,7 +20,10 @@ if( $Is_VMS ) { my $vms_efs; my $vms_case; - if (eval { local $SIG{__DIE__}; require VMS::Feature; }) { + if (eval { local $SIG{__DIE__}; + local @INC = @INC; + pop @INC if $INC[-1] eq '.'; + require VMS::Feature; }) { $vms_unix_rpt = VMS::Feature::current("filename_unix_report"); $vms_efs = VMS::Feature::current("efs_charset"); $vms_case = VMS::Feature::current("efs_case_preserve"); @@ -373,3 +377,4 @@ ExtUtils-MakeMaker package and, as a separate CPAN package, by Randy Kobes C<r.kobes@uwinnipeg.ca>. =cut + diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/Command/MM.pm b/Master/tlpkg/tlperl/lib/ExtUtils/Command/MM.pm index 203b3aa1d81..b4385fc8c60 100644 --- a/Master/tlpkg/tlperl/lib/ExtUtils/Command/MM.pm +++ b/Master/tlpkg/tlperl/lib/ExtUtils/Command/MM.pm @@ -10,7 +10,7 @@ our @ISA = qw(Exporter); our @EXPORT = qw(test_harness pod2man perllocal_install uninstall warn_if_old_packlist test_s cp_nonempty); -our $VERSION = '7.04_01'; +our $VERSION = '7.10_02'; my $Is_VMS = $^O eq 'VMS'; diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/Embed.pm b/Master/tlpkg/tlperl/lib/ExtUtils/Embed.pm index 3f983c11832..9305b5dc133 100644 --- a/Master/tlpkg/tlperl/lib/ExtUtils/Embed.pm +++ b/Master/tlpkg/tlperl/lib/ExtUtils/Embed.pm @@ -10,7 +10,7 @@ use vars qw(@ISA @EXPORT $VERSION use strict; # This is not a dual-life module, so no need for development version numbers -$VERSION = '1.32'; +$VERSION = '1.33'; @ISA = qw(Exporter); @EXPORT = qw(&xsinit &ldopts @@ -350,7 +350,8 @@ This will generate code for linking with C<DynaLoader> and each static extension found in C<$Config{static_ext}>. The code is written to the default file name F<perlxsi.c>. - perl -MExtUtils::Embed -e xsinit -- -o xsinit.c -std DBI DBD::Oracle + perl -MExtUtils::Embed -e xsinit -- -o xsinit.c \ + -std DBI DBD::Oracle Here, code is written for all the currently linked extensions along with code for C<DBI> and C<DBD::Oracle>. @@ -424,9 +425,11 @@ are picked up from the F<extralibs.ld> file in the same directory. perl -MExtUtils::Embed -e ldopts -- -std Socket -This will do the same as the above example, along with printing additional arguments for linking with the C<Socket> extension. +This will do the same as the above example, along with printing additional +arguments for linking with the C<Socket> extension. - perl -MExtUtils::Embed -e ldopts -- -std Msql -- -L/usr/msql/lib -lmsql + perl -MExtUtils::Embed -e ldopts -- -std Msql -- \ + -L/usr/msql/lib -lmsql Any arguments after the second '--' token are additional linker arguments that will be examined for potential conflict. If there is no diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/Liblist.pm b/Master/tlpkg/tlperl/lib/ExtUtils/Liblist.pm index 3df17939933..ed38f8fe5d9 100644 --- a/Master/tlpkg/tlperl/lib/ExtUtils/Liblist.pm +++ b/Master/tlpkg/tlperl/lib/ExtUtils/Liblist.pm @@ -2,7 +2,7 @@ package ExtUtils::Liblist; use strict; -our $VERSION = '7.04_01'; +our $VERSION = '7.10_02'; use File::Spec; require ExtUtils::Liblist::Kid; diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/Liblist/Kid.pm b/Master/tlpkg/tlperl/lib/ExtUtils/Liblist/Kid.pm index 37bcfd45129..93183a3792a 100644 --- a/Master/tlpkg/tlperl/lib/ExtUtils/Liblist/Kid.pm +++ b/Master/tlpkg/tlperl/lib/ExtUtils/Liblist/Kid.pm @@ -11,7 +11,7 @@ use 5.006; use strict; use warnings; -our $VERSION = '7.04_01'; +our $VERSION = '7.10_02'; use ExtUtils::MakeMaker::Config; use Cwd 'cwd'; diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/MM.pm b/Master/tlpkg/tlperl/lib/ExtUtils/MM.pm index f2aa8b4fc0d..a8a176bc394 100644 --- a/Master/tlpkg/tlperl/lib/ExtUtils/MM.pm +++ b/Master/tlpkg/tlperl/lib/ExtUtils/MM.pm @@ -3,7 +3,7 @@ package ExtUtils::MM; use strict; use ExtUtils::MakeMaker::Config; -our $VERSION = '7.04_01'; +our $VERSION = '7.10_02'; require ExtUtils::Liblist; require ExtUtils::MakeMaker; diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/MM_AIX.pm b/Master/tlpkg/tlperl/lib/ExtUtils/MM_AIX.pm index 58ea5b917f5..bb7e6105a5f 100644 --- a/Master/tlpkg/tlperl/lib/ExtUtils/MM_AIX.pm +++ b/Master/tlpkg/tlperl/lib/ExtUtils/MM_AIX.pm @@ -1,7 +1,7 @@ package ExtUtils::MM_AIX; use strict; -our $VERSION = '7.04_01'; +our $VERSION = '7.10_02'; require ExtUtils::MM_Unix; our @ISA = qw(ExtUtils::MM_Unix); diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/MM_Any.pm b/Master/tlpkg/tlperl/lib/ExtUtils/MM_Any.pm index 4c00129af16..7679dc415a6 100644 --- a/Master/tlpkg/tlperl/lib/ExtUtils/MM_Any.pm +++ b/Master/tlpkg/tlperl/lib/ExtUtils/MM_Any.pm @@ -1,7 +1,7 @@ package ExtUtils::MM_Any; use strict; -our $VERSION = '7.04_01'; +our $VERSION = '7.10_02'; use Carp; use File::Spec; @@ -202,19 +202,28 @@ Returns true if C<<$self->make>> is the given type; possibilities are: =cut +my %maketype2true; +# undocumented - so t/cd.t can still do its thing +sub _clear_maketype_cache { %maketype2true = () } + sub is_make_type { my($self, $type) = @_; + return $maketype2true{$type} if defined $maketype2true{$type}; (undef, undef, my $make_basename) = $self->splitpath($self->make); - return 1 if $make_basename =~ /\b$type\b/i; # executable's filename - return 0 if $make_basename =~ /\b(dmake|nmake)\b/i; # Never fall through for dmake/nmake + return $maketype2true{$type} = 1 + if $make_basename =~ /\b$type\b/i; # executable's filename + return $maketype2true{$type} = 0 + if $make_basename =~ /\b[gdn]make\b/i; # Never fall through for dmake/nmake/gmake # now have to run with "-v" and guess my $redirect = $self->can_redirect_error ? '2>&1' : ''; my $make = $self->make || $self->{MAKE}; my $minus_v = `"$make" -v $redirect`; - return 1 if $type eq 'gmake' and $minus_v =~ /GNU make/i; - return 1 if $type eq 'bsdmake' + return $maketype2true{$type} = 1 + if $type eq 'gmake' and $minus_v =~ /GNU make/i; + return $maketype2true{$type} = 1 + if $type eq 'bsdmake' and $minus_v =~ /^usage: make \[-BeikNnqrstWwX\]/im; - 0; # it wasn't whatever you asked + $maketype2true{$type} = 0; # it wasn't whatever you asked } @@ -1668,7 +1677,7 @@ CODE my $add_sign_to_dist = $self->cd('$(DISTVNAME)' => $add_sign ); return sprintf <<'MAKE', $add_sign_to_dist, $touch_sig, $sign_dist -distsignature : create_distdir +distsignature : distmeta $(NOECHO) %s $(NOECHO) %s %s diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/MM_BeOS.pm b/Master/tlpkg/tlperl/lib/ExtUtils/MM_BeOS.pm index 35b76c0fdf0..3015f2dd655 100644 --- a/Master/tlpkg/tlperl/lib/ExtUtils/MM_BeOS.pm +++ b/Master/tlpkg/tlperl/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 = '7.04_01'; +our $VERSION = '7.10_02'; =item os_flavor diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/MM_Cygwin.pm b/Master/tlpkg/tlperl/lib/ExtUtils/MM_Cygwin.pm index b504c479f3c..659d430ffde 100644 --- a/Master/tlpkg/tlperl/lib/ExtUtils/MM_Cygwin.pm +++ b/Master/tlpkg/tlperl/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 = '7.04_01'; +our $VERSION = '7.10_02'; =head1 NAME diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/MM_DOS.pm b/Master/tlpkg/tlperl/lib/ExtUtils/MM_DOS.pm index 353c54ff9df..e89c632cb1a 100644 --- a/Master/tlpkg/tlperl/lib/ExtUtils/MM_DOS.pm +++ b/Master/tlpkg/tlperl/lib/ExtUtils/MM_DOS.pm @@ -2,7 +2,7 @@ package ExtUtils::MM_DOS; use strict; -our $VERSION = '7.04_01'; +our $VERSION = '7.10_02'; require ExtUtils::MM_Any; require ExtUtils::MM_Unix; diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/MM_Darwin.pm b/Master/tlpkg/tlperl/lib/ExtUtils/MM_Darwin.pm index 315d1b4dfb1..b6e7c5b86ce 100644 --- a/Master/tlpkg/tlperl/lib/ExtUtils/MM_Darwin.pm +++ b/Master/tlpkg/tlperl/lib/ExtUtils/MM_Darwin.pm @@ -7,7 +7,7 @@ BEGIN { our @ISA = qw( ExtUtils::MM_Unix ); } -our $VERSION = '7.04_01'; +our $VERSION = '7.10_02'; =head1 NAME diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/MM_MacOS.pm b/Master/tlpkg/tlperl/lib/ExtUtils/MM_MacOS.pm index bef2c00424d..7323bf12551 100644 --- a/Master/tlpkg/tlperl/lib/ExtUtils/MM_MacOS.pm +++ b/Master/tlpkg/tlperl/lib/ExtUtils/MM_MacOS.pm @@ -2,7 +2,7 @@ package ExtUtils::MM_MacOS; use strict; -our $VERSION = '7.04_01'; +our $VERSION = '7.10_02'; sub new { die 'MacOS Classic (MacPerl) is no longer supported by MakeMaker'; diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/MM_NW5.pm b/Master/tlpkg/tlperl/lib/ExtUtils/MM_NW5.pm index 4e36796dc8b..967b5d4c8d6 100644 --- a/Master/tlpkg/tlperl/lib/ExtUtils/MM_NW5.pm +++ b/Master/tlpkg/tlperl/lib/ExtUtils/MM_NW5.pm @@ -22,7 +22,7 @@ use strict; use ExtUtils::MakeMaker::Config; use File::Basename; -our $VERSION = '7.04_01'; +our $VERSION = '7.10_02'; require ExtUtils::MM_Win32; our @ISA = qw(ExtUtils::MM_Win32); diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/MM_OS2.pm b/Master/tlpkg/tlperl/lib/ExtUtils/MM_OS2.pm index c9ace00b0b5..598087ca19f 100644 --- a/Master/tlpkg/tlperl/lib/ExtUtils/MM_OS2.pm +++ b/Master/tlpkg/tlperl/lib/ExtUtils/MM_OS2.pm @@ -5,7 +5,7 @@ use strict; use ExtUtils::MakeMaker qw(neatvalue); use File::Spec; -our $VERSION = '7.04_01'; +our $VERSION = '7.10_02'; require ExtUtils::MM_Any; require ExtUtils::MM_Unix; diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/MM_QNX.pm b/Master/tlpkg/tlperl/lib/ExtUtils/MM_QNX.pm index 13e12c4a9f5..1bdc6e0f97f 100644 --- a/Master/tlpkg/tlperl/lib/ExtUtils/MM_QNX.pm +++ b/Master/tlpkg/tlperl/lib/ExtUtils/MM_QNX.pm @@ -1,7 +1,7 @@ package ExtUtils::MM_QNX; use strict; -our $VERSION = '7.04_01'; +our $VERSION = '7.10_02'; require ExtUtils::MM_Unix; our @ISA = qw(ExtUtils::MM_Unix); diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/MM_UWIN.pm b/Master/tlpkg/tlperl/lib/ExtUtils/MM_UWIN.pm index 4af2909b80b..6d85d944df4 100644 --- a/Master/tlpkg/tlperl/lib/ExtUtils/MM_UWIN.pm +++ b/Master/tlpkg/tlperl/lib/ExtUtils/MM_UWIN.pm @@ -1,7 +1,7 @@ package ExtUtils::MM_UWIN; use strict; -our $VERSION = '7.04_01'; +our $VERSION = '7.10_02'; require ExtUtils::MM_Unix; our @ISA = qw(ExtUtils::MM_Unix); diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/MM_Unix.pm b/Master/tlpkg/tlperl/lib/ExtUtils/MM_Unix.pm index f63145ce116..009b18ee085 100644 --- a/Master/tlpkg/tlperl/lib/ExtUtils/MM_Unix.pm +++ b/Master/tlpkg/tlperl/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 = '7.04_01'; +$VERSION = '7.10_02'; $VERSION = eval $VERSION; ## no critic [BuiltinFunctions::ProhibitStringyEval] require ExtUtils::MM_Any; @@ -317,8 +317,8 @@ sub const_cccmd { =item const_config (o) -Defines a couple of constants in the Makefile that are imported from -%Config. +Sets SHELL if needed, then defines a couple of constants in the Makefile +that are imported from %Config. =cut @@ -326,7 +326,8 @@ sub const_config { # --- Constants Sections --- my($self) = shift; - my @m = <<"END"; + my @m = $self->specify_shell(); # Usually returns empty string + push @m, <<"END"; # These definitions are from config.sh (via $INC{'Config.pm'}). # They may have been overridden via Makefile.PL or on the command line. @@ -676,13 +677,13 @@ Defines a check in target for RCS. sub dist_ci { my($self) = shift; - return q{ -ci : - $(PERLRUN) "-MExtUtils::Manifest=maniread" \\ - -e "@all = keys %{ maniread() };" \\ - -e "print(qq{Executing $(CI) @all\n}); system(qq{$(CI) @all});" \\ - -e "print(qq{Executing $(RCS_LABEL) ...\n}); system(qq{$(RCS_LABEL) @all});" -}; + return sprintf "ci :\n\t%s\n", $self->oneliner(<<'EOF', [qw(-MExtUtils::Manifest=maniread)]); +@all = sort keys %{ maniread() }; +print(qq{Executing $(CI) @all\n}); +system(qq{$(CI) @all}) == 0 or die $!; +print(qq{Executing $(RCS_LABEL) ...\n}); +system(qq{$(RCS_LABEL) @all}) == 0 or die $!; +EOF } =item dist_core (o) @@ -3176,6 +3177,16 @@ MAKE_FRAG return $m; } +=item specify_shell + +Specify SHELL if needed - not done on Unix. + +=cut + +sub specify_shell { + return ''; +} + =item quote_paren Backslashes parentheses C<()> in command line arguments. diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/MM_VMS.pm b/Master/tlpkg/tlperl/lib/ExtUtils/MM_VMS.pm index 45d06b00c52..60dd8713fc2 100644 --- a/Master/tlpkg/tlperl/lib/ExtUtils/MM_VMS.pm +++ b/Master/tlpkg/tlperl/lib/ExtUtils/MM_VMS.pm @@ -15,7 +15,7 @@ BEGIN { use File::Basename; -our $VERSION = '7.04_01'; +our $VERSION = '7.10_02'; require ExtUtils::MM_Any; require ExtUtils::MM_Unix; @@ -1764,7 +1764,8 @@ sub oneliner { $cmd =~ s{^\n+}{}; $cmd =~ s{\n+$}{}; - $cmd = $self->quote_literal($cmd); + my @cmds = split /\n/, $cmd; + $cmd = join " \n\t -e ", map $self->quote_literal($_), @cmds; $cmd = $self->escape_newlines($cmd); # Switches must be quoted else they will be lowercased. diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/MM_VOS.pm b/Master/tlpkg/tlperl/lib/ExtUtils/MM_VOS.pm index dfec6d5c9f9..07ad95f409a 100644 --- a/Master/tlpkg/tlperl/lib/ExtUtils/MM_VOS.pm +++ b/Master/tlpkg/tlperl/lib/ExtUtils/MM_VOS.pm @@ -1,7 +1,7 @@ package ExtUtils::MM_VOS; use strict; -our $VERSION = '7.04_01'; +our $VERSION = '7.10_02'; require ExtUtils::MM_Unix; our @ISA = qw(ExtUtils::MM_Unix); diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/MM_Win32.pm b/Master/tlpkg/tlperl/lib/ExtUtils/MM_Win32.pm index fbd3f49f910..0a2fb606f45 100644 --- a/Master/tlpkg/tlperl/lib/ExtUtils/MM_Win32.pm +++ b/Master/tlpkg/tlperl/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 = '7.04_01'; +our $VERSION = '7.10_02'; $ENV{EMXSHELL} = 'sh'; # to run `commands` @@ -232,6 +232,17 @@ sub platform_constants { return $make_frag; } +=item specify_shell + +Set SHELL to $ENV{COMSPEC} only if make is type 'gmake'. + +=cut + +sub specify_shell { + my $self = shift; + return '' unless $self->is_make_type('gmake'); + "\nSHELL = $ENV{COMSPEC}\n"; +} =item constants diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/MM_Win95.pm b/Master/tlpkg/tlperl/lib/ExtUtils/MM_Win95.pm index cc37c24140f..096f28d7e27 100644 --- a/Master/tlpkg/tlperl/lib/ExtUtils/MM_Win95.pm +++ b/Master/tlpkg/tlperl/lib/ExtUtils/MM_Win95.pm @@ -2,7 +2,7 @@ package ExtUtils::MM_Win95; use strict; -our $VERSION = '7.04_01'; +our $VERSION = '7.10_02'; require ExtUtils::MM_Win32; our @ISA = qw(ExtUtils::MM_Win32); diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/MY.pm b/Master/tlpkg/tlperl/lib/ExtUtils/MY.pm index f2114f9c138..5a080ea8c47 100644 --- a/Master/tlpkg/tlperl/lib/ExtUtils/MY.pm +++ b/Master/tlpkg/tlperl/lib/ExtUtils/MY.pm @@ -3,7 +3,7 @@ package ExtUtils::MY; use strict; require ExtUtils::MM; -our $VERSION = '7.04_01'; +our $VERSION = '7.10_02'; our @ISA = qw(ExtUtils::MM); { diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/MakeMaker.pm b/Master/tlpkg/tlperl/lib/ExtUtils/MakeMaker.pm index fe95b2784ad..42b174fe347 100644 --- a/Master/tlpkg/tlperl/lib/ExtUtils/MakeMaker.pm +++ b/Master/tlpkg/tlperl/lib/ExtUtils/MakeMaker.pm @@ -24,7 +24,7 @@ my %Recognized_Att_Keys; our %macro_fsentity; # whether a macro is a filesystem name our %macro_dep; # whether a macro is a dependency -our $VERSION = '7.04_01'; +our $VERSION = '7.10_02'; $VERSION = eval $VERSION; ## no critic [BuiltinFunctions::ProhibitStringyEval] # Emulate something resembling CVS $Revision$ @@ -42,7 +42,7 @@ our @EXPORT_OK = qw($VERSION &neatvalue &mkbootstrap &mksymlists # purged. my $Is_VMS = $^O eq 'VMS'; my $Is_Win32 = $^O eq 'MSWin32'; -my $UNDER_CORE = $ENV{PERL_CORE}; +our $UNDER_CORE = $ENV{PERL_CORE}; # needs to be our full_setup(); @@ -439,7 +439,7 @@ sub new { } print "MakeMaker (v$VERSION)\n" if $Verbose; - if (-f "MANIFEST" && ! -f "Makefile" && ! $ENV{PERL_CORE}){ + if (-f "MANIFEST" && ! -f "Makefile" && ! $UNDER_CORE){ check_manifest(); } @@ -525,7 +525,7 @@ END warn sprintf "Warning: prerequisite %s %s not found.\n", $prereq, $required_version unless $self->{PREREQ_FATAL} - or $ENV{PERL_CORE}; + or $UNDER_CORE; $unsatisfied{$prereq} = 'not installed'; } @@ -533,7 +533,7 @@ END warn sprintf "Warning: prerequisite %s %s not found. We have %s.\n", $prereq, $required_version, ($pr_version || 'unknown version') unless $self->{PREREQ_FATAL} - or $ENV{PERL_CORE}; + or $UNDER_CORE; $unsatisfied{$prereq} = $required_version ? $required_version : 'unknown version' ; } @@ -1175,12 +1175,9 @@ sub flush { binmode $fh, ':encoding(locale)' if $CAN_DECODE; for my $chunk (@{$self->{RESULT}}) { - my $to_write = "$chunk\n"; - if (!$CAN_DECODE && $] > 5.008) { - utf8::encode $to_write; - } - print $fh "$chunk\n" - or die "Can't write to MakeMaker.tmp: $!"; + my $to_write = $chunk; + utf8::encode $to_write if !$CAN_DECODE && $] > 5.008; + print $fh "$to_write\n" or die "Can't write to MakeMaker.tmp: $!"; } close $fh diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/MakeMaker/Config.pm b/Master/tlpkg/tlperl/lib/ExtUtils/MakeMaker/Config.pm index 9001cc62685..707e3bf7c03 100644 --- a/Master/tlpkg/tlperl/lib/ExtUtils/MakeMaker/Config.pm +++ b/Master/tlpkg/tlperl/lib/ExtUtils/MakeMaker/Config.pm @@ -2,7 +2,7 @@ package ExtUtils::MakeMaker::Config; use strict; -our $VERSION = '7.04_01'; +our $VERSION = '7.10_02'; use Config (); diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/MakeMaker/FAQ.pod b/Master/tlpkg/tlperl/lib/ExtUtils/MakeMaker/FAQ.pod index d2b4ab354f5..d3aa100fb9f 100644 --- a/Master/tlpkg/tlperl/lib/ExtUtils/MakeMaker/FAQ.pod +++ b/Master/tlpkg/tlperl/lib/ExtUtils/MakeMaker/FAQ.pod @@ -1,6 +1,6 @@ package ExtUtils::MakeMaker::FAQ; -our $VERSION = '7.04_01'; +our $VERSION = '7.10_01'; 1; __END__ diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/MakeMaker/Locale.pm b/Master/tlpkg/tlperl/lib/ExtUtils/MakeMaker/Locale.pm index 23d0c6ecfe9..68fcd4c5b84 100644 --- a/Master/tlpkg/tlperl/lib/ExtUtils/MakeMaker/Locale.pm +++ b/Master/tlpkg/tlperl/lib/ExtUtils/MakeMaker/Locale.pm @@ -1,7 +1,7 @@ package ExtUtils::MakeMaker::Locale; use strict; -our $VERSION = "7.04_01"; +our $VERSION = "7.10"; use base 'Exporter'; our @EXPORT_OK = qw( diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/MakeMaker/Tutorial.pod b/Master/tlpkg/tlperl/lib/ExtUtils/MakeMaker/Tutorial.pod index 9cbdd9b2ec5..7e53baa525b 100644 --- a/Master/tlpkg/tlperl/lib/ExtUtils/MakeMaker/Tutorial.pod +++ b/Master/tlpkg/tlperl/lib/ExtUtils/MakeMaker/Tutorial.pod @@ -1,6 +1,6 @@ package ExtUtils::MakeMaker::Tutorial; -our $VERSION = '7.04_01'; +our $VERSION = '7.10_01'; =head1 NAME diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/MakeMaker/version.pm b/Master/tlpkg/tlperl/lib/ExtUtils/MakeMaker/version.pm index 3269f444415..35cd2ab9b30 100644 --- a/Master/tlpkg/tlperl/lib/ExtUtils/MakeMaker/version.pm +++ b/Master/tlpkg/tlperl/lib/ExtUtils/MakeMaker/version.pm @@ -15,7 +15,7 @@ use strict; use vars qw(@ISA $VERSION $CLASS $STRICT $LAX *declare *qv); -$VERSION = '7.04_01'; +$VERSION = '7.10_01'; $CLASS = 'version'; { diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/MakeMaker/version/regex.pm b/Master/tlpkg/tlperl/lib/ExtUtils/MakeMaker/version/regex.pm deleted file mode 100644 index a134a00a42a..00000000000 --- a/Master/tlpkg/tlperl/lib/ExtUtils/MakeMaker/version/regex.pm +++ /dev/null @@ -1,123 +0,0 @@ -#--------------------------------------------------------------------------# -# This is a modified copy of version.pm 0.9909, bundled exclusively for -# use by ExtUtils::Makemaker and its dependencies to bootstrap when -# version.pm is not available. It should not be used by ordinary modules. -#--------------------------------------------------------------------------# - -package ExtUtils::MakeMaker::version::regex; - -use strict; - -use vars qw($VERSION $CLASS $STRICT $LAX); - -$VERSION = '7.04_01'; - -#--------------------------------------------------------------------------# -# Version regexp components -#--------------------------------------------------------------------------# - -# Fraction part of a decimal version number. This is a common part of -# both strict and lax decimal versions - -my $FRACTION_PART = qr/\.[0-9]+/; - -# First part of either decimal or dotted-decimal strict version number. -# Unsigned integer with no leading zeroes (except for zero itself) to -# avoid confusion with octal. - -my $STRICT_INTEGER_PART = qr/0|[1-9][0-9]*/; - -# First part of either decimal or dotted-decimal lax version number. -# Unsigned integer, but allowing leading zeros. Always interpreted -# as decimal. However, some forms of the resulting syntax give odd -# results if used as ordinary Perl expressions, due to how perl treats -# octals. E.g. -# version->new("010" ) == 10 -# version->new( 010 ) == 8 -# version->new( 010.2) == 82 # "8" . "2" - -my $LAX_INTEGER_PART = qr/[0-9]+/; - -# Second and subsequent part of a strict dotted-decimal version number. -# Leading zeroes are permitted, and the number is always decimal. -# Limited to three digits to avoid overflow when converting to decimal -# form and also avoid problematic style with excessive leading zeroes. - -my $STRICT_DOTTED_DECIMAL_PART = qr/\.[0-9]{1,3}/; - -# Second and subsequent part of a lax dotted-decimal version number. -# Leading zeroes are permitted, and the number is always decimal. No -# limit on the numerical value or number of digits, so there is the -# possibility of overflow when converting to decimal form. - -my $LAX_DOTTED_DECIMAL_PART = qr/\.[0-9]+/; - -# Alpha suffix part of lax version number syntax. Acts like a -# dotted-decimal part. - -my $LAX_ALPHA_PART = qr/_[0-9]+/; - -#--------------------------------------------------------------------------# -# Strict version regexp definitions -#--------------------------------------------------------------------------# - -# Strict decimal version number. - -my $STRICT_DECIMAL_VERSION = - qr/ $STRICT_INTEGER_PART $FRACTION_PART? /x; - -# Strict dotted-decimal version number. Must have both leading "v" and -# at least three parts, to avoid confusion with decimal syntax. - -my $STRICT_DOTTED_DECIMAL_VERSION = - qr/ v $STRICT_INTEGER_PART $STRICT_DOTTED_DECIMAL_PART{2,} /x; - -# Complete strict version number syntax -- should generally be used -# anchored: qr/ \A $STRICT \z /x - -$STRICT = - qr/ $STRICT_DECIMAL_VERSION | $STRICT_DOTTED_DECIMAL_VERSION /x; - -#--------------------------------------------------------------------------# -# Lax version regexp definitions -#--------------------------------------------------------------------------# - -# Lax decimal version number. Just like the strict one except for -# allowing an alpha suffix or allowing a leading or trailing -# decimal-point - -my $LAX_DECIMAL_VERSION = - qr/ $LAX_INTEGER_PART (?: \. | $FRACTION_PART $LAX_ALPHA_PART? )? - | - $FRACTION_PART $LAX_ALPHA_PART? - /x; - -# Lax dotted-decimal version number. Distinguished by having either -# leading "v" or at least three non-alpha parts. Alpha part is only -# permitted if there are at least two non-alpha parts. Strangely -# enough, without the leading "v", Perl takes .1.2 to mean v0.1.2, -# so when there is no "v", the leading part is optional - -my $LAX_DOTTED_DECIMAL_VERSION = - qr/ - v $LAX_INTEGER_PART (?: $LAX_DOTTED_DECIMAL_PART+ $LAX_ALPHA_PART? )? - | - $LAX_INTEGER_PART? $LAX_DOTTED_DECIMAL_PART{2,} $LAX_ALPHA_PART? - /x; - -# Complete lax version number syntax -- should generally be used -# anchored: qr/ \A $LAX \z /x -# -# The string 'undef' is a special case to make for easier handling -# of return values from ExtUtils::MM->parse_version - -$LAX = - qr/ undef | $LAX_DECIMAL_VERSION | $LAX_DOTTED_DECIMAL_VERSION /x; - -#--------------------------------------------------------------------------# - -# Preloaded methods go here. -sub is_strict { defined $_[0] && $_[0] =~ qr/ \A $STRICT \z /x } -sub is_lax { defined $_[0] && $_[0] =~ qr/ \A $LAX \z /x } - -1; diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/MakeMaker/version/vpp.pm b/Master/tlpkg/tlperl/lib/ExtUtils/MakeMaker/version/vpp.pm deleted file mode 100644 index 34bbd01bf1f..00000000000 --- a/Master/tlpkg/tlperl/lib/ExtUtils/MakeMaker/version/vpp.pm +++ /dev/null @@ -1,1028 +0,0 @@ -#--------------------------------------------------------------------------# -# This is a modified copy of version.pm 0.9909, bundled exclusively for -# use by ExtUtils::Makemaker and its dependencies to bootstrap when -# version.pm is not available. It should not be used by ordinary modules. -#--------------------------------------------------------------------------# - -package ExtUtils::MakeMaker::charstar; -# a little helper class to emulate C char* semantics in Perl -# so that prescan_version can use the same code as in C - -use overload ( - '""' => \&thischar, - '0+' => \&thischar, - '++' => \&increment, - '--' => \&decrement, - '+' => \&plus, - '-' => \&minus, - '*' => \&multiply, - 'cmp' => \&cmp, - '<=>' => \&spaceship, - 'bool' => \&thischar, - '=' => \&clone, -); - -sub new { - my ($self, $string) = @_; - my $class = ref($self) || $self; - - my $obj = { - string => [split(//,$string)], - current => 0, - }; - return bless $obj, $class; -} - -sub thischar { - my ($self) = @_; - my $last = $#{$self->{string}}; - my $curr = $self->{current}; - if ($curr >= 0 && $curr <= $last) { - return $self->{string}->[$curr]; - } - else { - return ''; - } -} - -sub increment { - my ($self) = @_; - $self->{current}++; -} - -sub decrement { - my ($self) = @_; - $self->{current}--; -} - -sub plus { - my ($self, $offset) = @_; - my $rself = $self->clone; - $rself->{current} += $offset; - return $rself; -} - -sub minus { - my ($self, $offset) = @_; - my $rself = $self->clone; - $rself->{current} -= $offset; - return $rself; -} - -sub multiply { - my ($left, $right, $swapped) = @_; - my $char = $left->thischar(); - return $char * $right; -} - -sub spaceship { - my ($left, $right, $swapped) = @_; - unless (ref($right)) { # not an object already - $right = $left->new($right); - } - return $left->{current} <=> $right->{current}; -} - -sub cmp { - my ($left, $right, $swapped) = @_; - unless (ref($right)) { # not an object already - if (length($right) == 1) { # comparing single character only - return $left->thischar cmp $right; - } - $right = $left->new($right); - } - return $left->currstr cmp $right->currstr; -} - -sub bool { - my ($self) = @_; - my $char = $self->thischar; - return ($char ne ''); -} - -sub clone { - my ($left, $right, $swapped) = @_; - $right = { - string => [@{$left->{string}}], - current => $left->{current}, - }; - return bless $right, ref($left); -} - -sub currstr { - my ($self, $s) = @_; - my $curr = $self->{current}; - my $last = $#{$self->{string}}; - if (defined($s) && $s->{current} < $last) { - $last = $s->{current}; - } - - my $string = join('', @{$self->{string}}[$curr..$last]); - return $string; -} - -package ExtUtils::MakeMaker::version::vpp; - -use 5.006002; -use strict; - -use Config; -use vars qw($VERSION $CLASS @ISA $LAX $STRICT); -$VERSION = '7.04_01'; -$CLASS = 'ExtUtils::MakeMaker::version::vpp'; - -require ExtUtils::MakeMaker::version::regex; -*ExtUtils::MakeMaker::version::vpp::is_strict = \&ExtUtils::MakeMaker::version::regex::is_strict; -*ExtUtils::MakeMaker::version::vpp::is_lax = \&ExtUtils::MakeMaker::version::regex::is_lax; -*LAX = \$ExtUtils::MakeMaker::version::regex::LAX; -*STRICT = \$ExtUtils::MakeMaker::version::regex::STRICT; - -use overload ( - '""' => \&stringify, - '0+' => \&numify, - 'cmp' => \&vcmp, - '<=>' => \&vcmp, - 'bool' => \&vbool, - '+' => \&vnoop, - '-' => \&vnoop, - '*' => \&vnoop, - '/' => \&vnoop, - '+=' => \&vnoop, - '-=' => \&vnoop, - '*=' => \&vnoop, - '/=' => \&vnoop, - 'abs' => \&vnoop, -); - -eval "use warnings"; -if ($@) { - eval ' - package - warnings; - sub enabled {return $^W;} - 1; - '; -} - -sub import { - no strict 'refs'; - my ($class) = shift; - - # Set up any derived class - unless ($class eq $CLASS) { - local $^W; - *{$class.'::declare'} = \&{$CLASS.'::declare'}; - *{$class.'::qv'} = \&{$CLASS.'::qv'}; - } - - my %args; - if (@_) { # any remaining terms are arguments - map { $args{$_} = 1 } @_ - } - else { # no parameters at all on use line - %args = - ( - qv => 1, - 'UNIVERSAL::VERSION' => 1, - ); - } - - my $callpkg = caller(); - - if (exists($args{declare})) { - *{$callpkg.'::declare'} = - sub {return $class->declare(shift) } - unless defined(&{$callpkg.'::declare'}); - } - - if (exists($args{qv})) { - *{$callpkg.'::qv'} = - sub {return $class->qv(shift) } - unless defined(&{$callpkg.'::qv'}); - } - - if (exists($args{'UNIVERSAL::VERSION'})) { - local $^W; - *UNIVERSAL::VERSION - = \&{$CLASS.'::_VERSION'}; - } - - if (exists($args{'VERSION'})) { - *{$callpkg.'::VERSION'} = \&{$CLASS.'::_VERSION'}; - } - - if (exists($args{'is_strict'})) { - *{$callpkg.'::is_strict'} = \&{$CLASS.'::is_strict'} - unless defined(&{$callpkg.'::is_strict'}); - } - - if (exists($args{'is_lax'})) { - *{$callpkg.'::is_lax'} = \&{$CLASS.'::is_lax'} - unless defined(&{$callpkg.'::is_lax'}); - } -} - -my $VERSION_MAX = 0x7FFFFFFF; - -# implement prescan_version as closely to the C version as possible -use constant TRUE => 1; -use constant FALSE => 0; - -sub isDIGIT { - my ($char) = shift->thischar(); - return ($char =~ /\d/); -} - -sub isALPHA { - my ($char) = shift->thischar(); - return ($char =~ /[a-zA-Z]/); -} - -sub isSPACE { - my ($char) = shift->thischar(); - return ($char =~ /\s/); -} - -sub BADVERSION { - my ($s, $errstr, $error) = @_; - if ($errstr) { - $$errstr = $error; - } - return $s; -} - -sub prescan_version { - my ($s, $strict, $errstr, $sqv, $ssaw_decimal, $swidth, $salpha) = @_; - my $qv = defined $sqv ? $$sqv : FALSE; - my $saw_decimal = defined $ssaw_decimal ? $$ssaw_decimal : 0; - my $width = defined $swidth ? $$swidth : 3; - my $alpha = defined $salpha ? $$salpha : FALSE; - - my $d = $s; - - if ($qv && isDIGIT($d)) { - goto dotted_decimal_version; - } - - if ($d eq 'v') { # explicit v-string - $d++; - if (isDIGIT($d)) { - $qv = TRUE; - } - else { # degenerate v-string - # requires v1.2.3 - return BADVERSION($s,$errstr,"Invalid version format (dotted-decimal versions require at least three parts)"); - } - -dotted_decimal_version: - if ($strict && $d eq '0' && isDIGIT($d+1)) { - # no leading zeros allowed - return BADVERSION($s,$errstr,"Invalid version format (no leading zeros)"); - } - - while (isDIGIT($d)) { # integer part - $d++; - } - - if ($d eq '.') - { - $saw_decimal++; - $d++; # decimal point - } - else - { - if ($strict) { - # require v1.2.3 - return BADVERSION($s,$errstr,"Invalid version format (dotted-decimal versions require at least three parts)"); - } - else { - goto version_prescan_finish; - } - } - - { - my $i = 0; - my $j = 0; - while (isDIGIT($d)) { # just keep reading - $i++; - while (isDIGIT($d)) { - $d++; $j++; - # maximum 3 digits between decimal - if ($strict && $j > 3) { - return BADVERSION($s,$errstr,"Invalid version format (maximum 3 digits between decimals)"); - } - } - if ($d eq '_') { - if ($strict) { - return BADVERSION($s,$errstr,"Invalid version format (no underscores)"); - } - if ( $alpha ) { - return BADVERSION($s,$errstr,"Invalid version format (multiple underscores)"); - } - $d++; - $alpha = TRUE; - } - elsif ($d eq '.') { - if ($alpha) { - return BADVERSION($s,$errstr,"Invalid version format (underscores before decimal)"); - } - $saw_decimal++; - $d++; - } - elsif (!isDIGIT($d)) { - last; - } - $j = 0; - } - - if ($strict && $i < 2) { - # requires v1.2.3 - return BADVERSION($s,$errstr,"Invalid version format (dotted-decimal versions require at least three parts)"); - } - } - } # end if dotted-decimal - else - { # decimal versions - my $j = 0; - # special $strict case for leading '.' or '0' - if ($strict) { - if ($d eq '.') { - return BADVERSION($s,$errstr,"Invalid version format (0 before decimal required)"); - } - if ($d eq '0' && isDIGIT($d+1)) { - return BADVERSION($s,$errstr,"Invalid version format (no leading zeros)"); - } - } - - # and we never support negative version numbers - if ($d eq '-') { - return BADVERSION($s,$errstr,"Invalid version format (negative version number)"); - } - - # consume all of the integer part - while (isDIGIT($d)) { - $d++; - } - - # look for a fractional part - if ($d eq '.') { - # we found it, so consume it - $saw_decimal++; - $d++; - } - elsif (!$d || $d eq ';' || isSPACE($d) || $d eq '}') { - if ( $d == $s ) { - # found nothing - return BADVERSION($s,$errstr,"Invalid version format (version required)"); - } - # found just an integer - goto version_prescan_finish; - } - elsif ( $d == $s ) { - # didn't find either integer or period - return BADVERSION($s,$errstr,"Invalid version format (non-numeric data)"); - } - elsif ($d eq '_') { - # underscore can't come after integer part - if ($strict) { - return BADVERSION($s,$errstr,"Invalid version format (no underscores)"); - } - elsif (isDIGIT($d+1)) { - return BADVERSION($s,$errstr,"Invalid version format (alpha without decimal)"); - } - else { - return BADVERSION($s,$errstr,"Invalid version format (misplaced underscore)"); - } - } - elsif ($d) { - # anything else after integer part is just invalid data - return BADVERSION($s,$errstr,"Invalid version format (non-numeric data)"); - } - - # scan the fractional part after the decimal point - if ($d && !isDIGIT($d) && ($strict || ! ($d eq ';' || isSPACE($d) || $d eq '}') )) { - # $strict or lax-but-not-the-end - return BADVERSION($s,$errstr,"Invalid version format (fractional part required)"); - } - - while (isDIGIT($d)) { - $d++; $j++; - if ($d eq '.' && isDIGIT($d-1)) { - if ($alpha) { - return BADVERSION($s,$errstr,"Invalid version format (underscores before decimal)"); - } - if ($strict) { - return BADVERSION($s,$errstr,"Invalid version format (dotted-decimal versions must begin with 'v')"); - } - $d = $s; # start all over again - $qv = TRUE; - goto dotted_decimal_version; - } - if ($d eq '_') { - if ($strict) { - return BADVERSION($s,$errstr,"Invalid version format (no underscores)"); - } - if ( $alpha ) { - return BADVERSION($s,$errstr,"Invalid version format (multiple underscores)"); - } - if ( ! isDIGIT($d+1) ) { - return BADVERSION($s,$errstr,"Invalid version format (misplaced underscore)"); - } - $width = $j; - $d++; - $alpha = TRUE; - } - } - } - -version_prescan_finish: - while (isSPACE($d)) { - $d++; - } - - if ($d && !isDIGIT($d) && (! ($d eq ';' || $d eq '}') )) { - # trailing non-numeric data - return BADVERSION($s,$errstr,"Invalid version format (non-numeric data)"); - } - - if (defined $sqv) { - $$sqv = $qv; - } - if (defined $swidth) { - $$swidth = $width; - } - if (defined $ssaw_decimal) { - $$ssaw_decimal = $saw_decimal; - } - if (defined $salpha) { - $$salpha = $alpha; - } - return $d; -} - -sub scan_version { - my ($s, $rv, $qv) = @_; - my $start; - my $pos; - my $last; - my $errstr; - my $saw_decimal = 0; - my $width = 3; - my $alpha = FALSE; - my $vinf = FALSE; - my @av; - - $s = new ExtUtils::MakeMaker::charstar $s; - - while (isSPACE($s)) { # leading whitespace is OK - $s++; - } - - $last = prescan_version($s, FALSE, \$errstr, \$qv, \$saw_decimal, - \$width, \$alpha); - - if ($errstr) { - # 'undef' is a special case and not an error - if ( $s ne 'undef') { - require Carp; - Carp::croak($errstr); - } - } - - $start = $s; - if ($s eq 'v') { - $s++; - } - $pos = $s; - - if ( $qv ) { - $$rv->{qv} = $qv; - } - if ( $alpha ) { - $$rv->{alpha} = $alpha; - } - if ( !$qv && $width < 3 ) { - $$rv->{width} = $width; - } - - while (isDIGIT($pos)) { - $pos++; - } - if (!isALPHA($pos)) { - my $rev; - - for (;;) { - $rev = 0; - { - # this is atoi() that delimits on underscores - my $end = $pos; - my $mult = 1; - my $orev; - - # the following if() will only be true after the decimal - # point of a version originally created with a bare - # floating point number, i.e. not quoted in any way - # - if ( !$qv && $s > $start && $saw_decimal == 1 ) { - $mult *= 100; - while ( $s < $end ) { - $orev = $rev; - $rev += $s * $mult; - $mult /= 10; - if ( (abs($orev) > abs($rev)) - || (abs($rev) > $VERSION_MAX )) { - warn("Integer overflow in version %d", - $VERSION_MAX); - $s = $end - 1; - $rev = $VERSION_MAX; - $vinf = 1; - } - $s++; - if ( $s eq '_' ) { - $s++; - } - } - } - else { - while (--$end >= $s) { - $orev = $rev; - $rev += $end * $mult; - $mult *= 10; - if ( (abs($orev) > abs($rev)) - || (abs($rev) > $VERSION_MAX )) { - warn("Integer overflow in version"); - $end = $s - 1; - $rev = $VERSION_MAX; - $vinf = 1; - } - } - } - } - - # Append revision - push @av, $rev; - if ( $vinf ) { - $s = $last; - last; - } - elsif ( $pos eq '.' ) { - $s = ++$pos; - } - elsif ( $pos eq '_' && isDIGIT($pos+1) ) { - $s = ++$pos; - } - elsif ( $pos eq ',' && isDIGIT($pos+1) ) { - $s = ++$pos; - } - elsif ( isDIGIT($pos) ) { - $s = $pos; - } - else { - $s = $pos; - last; - } - if ( $qv ) { - while ( isDIGIT($pos) ) { - $pos++; - } - } - else { - my $digits = 0; - while ( ( isDIGIT($pos) || $pos eq '_' ) && $digits < 3 ) { - if ( $pos ne '_' ) { - $digits++; - } - $pos++; - } - } - } - } - if ( $qv ) { # quoted versions always get at least three terms - my $len = $#av; - # This for loop appears to trigger a compiler bug on OS X, as it - # loops infinitely. Yes, len is negative. No, it makes no sense. - # Compiler in question is: - # gcc version 3.3 20030304 (Apple Computer, Inc. build 1640) - # for ( len = 2 - len; len > 0; len-- ) - # av_push(MUTABLE_AV(sv), newSViv(0)); - # - $len = 2 - $len; - while ($len-- > 0) { - push @av, 0; - } - } - - # need to save off the current version string for later - if ( $vinf ) { - $$rv->{original} = "v.Inf"; - $$rv->{vinf} = 1; - } - elsif ( $s > $start ) { - $$rv->{original} = $start->currstr($s); - if ( $qv && $saw_decimal == 1 && $start ne 'v' ) { - # need to insert a v to be consistent - $$rv->{original} = 'v' . $$rv->{original}; - } - } - else { - $$rv->{original} = '0'; - push(@av, 0); - } - - # And finally, store the AV in the hash - $$rv->{version} = \@av; - - # fix RT#19517 - special case 'undef' as string - if ($s eq 'undef') { - $s += 5; - } - - return $s; -} - -sub new { - my $class = shift; - unless (defined $class or $#_ > 1) { - require Carp; - Carp::croak('Usage: version::new(class, version)'); - } - - my $self = bless ({}, ref ($class) || $class); - my $qv = FALSE; - - if ( $#_ == 1 ) { # must be CVS-style - $qv = TRUE; - } - my $value = pop; # always going to be the last element - - if ( ref($value) && eval('$value->isa("version")') ) { - # Can copy the elements directly - $self->{version} = [ @{$value->{version} } ]; - $self->{qv} = 1 if $value->{qv}; - $self->{alpha} = 1 if $value->{alpha}; - $self->{original} = ''.$value->{original}; - return $self; - } - - if ( not defined $value or $value =~ /^undef$/ ) { - # RT #19517 - special case for undef comparison - # or someone forgot to pass a value - push @{$self->{version}}, 0; - $self->{original} = "0"; - return ($self); - } - - - if (ref($value) =~ m/ARRAY|HASH/) { - require Carp; - Carp::croak("Invalid version format (non-numeric data)"); - } - - $value = _un_vstring($value); - - if ($Config{d_setlocale} && eval { require POSIX } ) { - require locale; - my $currlocale = POSIX::setlocale(&POSIX::LC_ALL); - - # if the current locale uses commas for decimal points, we - # just replace commas with decimal places, rather than changing - # locales - if ( POSIX::localeconv()->{decimal_point} eq ',' ) { - $value =~ tr/,/./; - } - } - - # exponential notation - if ( $value =~ /\d+.?\d*e[-+]?\d+/ ) { - $value = sprintf("%.9f",$value); - $value =~ s/(0+)$//; # trim trailing zeros - } - - my $s = scan_version($value, \$self, $qv); - - if ($s) { # must be something left over - warn("Version string '%s' contains invalid data; " - ."ignoring: '%s'", $value, $s); - } - - return ($self); -} - -*parse = \&new; - -sub numify { - my ($self) = @_; - unless (_verify($self)) { - require Carp; - Carp::croak("Invalid version object"); - } - my $width = $self->{width} || 3; - my $alpha = $self->{alpha} || ""; - my $len = $#{$self->{version}}; - my $digit = $self->{version}[0]; - my $string = sprintf("%d.", $digit ); - - for ( my $i = 1 ; $i < $len ; $i++ ) { - $digit = $self->{version}[$i]; - if ( $width < 3 ) { - my $denom = 10**(3-$width); - my $quot = int($digit/$denom); - my $rem = $digit - ($quot * $denom); - $string .= sprintf("%0".$width."d_%d", $quot, $rem); - } - else { - $string .= sprintf("%03d", $digit); - } - } - - if ( $len > 0 ) { - $digit = $self->{version}[$len]; - if ( $alpha && $width == 3 ) { - $string .= "_"; - } - $string .= sprintf("%0".$width."d", $digit); - } - else # $len = 0 - { - $string .= sprintf("000"); - } - - return $string; -} - -sub normal { - my ($self) = @_; - unless (_verify($self)) { - require Carp; - Carp::croak("Invalid version object"); - } - my $alpha = $self->{alpha} || ""; - my $len = $#{$self->{version}}; - my $digit = $self->{version}[0]; - my $string = sprintf("v%d", $digit ); - - for ( my $i = 1 ; $i < $len ; $i++ ) { - $digit = $self->{version}[$i]; - $string .= sprintf(".%d", $digit); - } - - if ( $len > 0 ) { - $digit = $self->{version}[$len]; - if ( $alpha ) { - $string .= sprintf("_%0d", $digit); - } - else { - $string .= sprintf(".%0d", $digit); - } - } - - if ( $len <= 2 ) { - for ( $len = 2 - $len; $len != 0; $len-- ) { - $string .= sprintf(".%0d", 0); - } - } - - return $string; -} - -sub stringify { - my ($self) = @_; - unless (_verify($self)) { - require Carp; - Carp::croak("Invalid version object"); - } - return exists $self->{original} - ? $self->{original} - : exists $self->{qv} - ? $self->normal - : $self->numify; -} - -sub vcmp { - require UNIVERSAL; - my ($left,$right,$swap) = @_; - my $class = ref($left); - unless ( UNIVERSAL::isa($right, $class) ) { - $right = $class->new($right); - } - - if ( $swap ) { - ($left, $right) = ($right, $left); - } - unless (_verify($left)) { - require Carp; - Carp::croak("Invalid version object"); - } - unless (_verify($right)) { - require Carp; - Carp::croak("Invalid version format"); - } - my $l = $#{$left->{version}}; - my $r = $#{$right->{version}}; - my $m = $l < $r ? $l : $r; - my $lalpha = $left->is_alpha; - my $ralpha = $right->is_alpha; - my $retval = 0; - my $i = 0; - while ( $i <= $m && $retval == 0 ) { - $retval = $left->{version}[$i] <=> $right->{version}[$i]; - $i++; - } - - # tiebreaker for alpha with identical terms - if ( $retval == 0 - && $l == $r - && $left->{version}[$m] == $right->{version}[$m] - && ( $lalpha || $ralpha ) ) { - - if ( $lalpha && !$ralpha ) { - $retval = -1; - } - elsif ( $ralpha && !$lalpha) { - $retval = +1; - } - } - - # possible match except for trailing 0's - if ( $retval == 0 && $l != $r ) { - if ( $l < $r ) { - while ( $i <= $r && $retval == 0 ) { - if ( $right->{version}[$i] != 0 ) { - $retval = -1; # not a match after all - } - $i++; - } - } - else { - while ( $i <= $l && $retval == 0 ) { - if ( $left->{version}[$i] != 0 ) { - $retval = +1; # not a match after all - } - $i++; - } - } - } - - return $retval; -} - -sub vbool { - my ($self) = @_; - return vcmp($self,$self->new("0"),1); -} - -sub vnoop { - require Carp; - Carp::croak("operation not supported with version object"); -} - -sub is_alpha { - my ($self) = @_; - return (exists $self->{alpha}); -} - -sub qv { - my $value = shift; - my $class = $CLASS; - if (@_) { - $class = ref($value) || $value; - $value = shift; - } - - $value = _un_vstring($value); - $value = 'v'.$value unless $value =~ /(^v|\d+\.\d+\.\d)/; - my $obj = $CLASS->new($value); - return bless $obj, $class; -} - -*declare = \&qv; - -sub is_qv { - my ($self) = @_; - return (exists $self->{qv}); -} - - -sub _verify { - my ($self) = @_; - if ( ref($self) - && eval { exists $self->{version} } - && ref($self->{version}) eq 'ARRAY' - ) { - return 1; - } - else { - return 0; - } -} - -sub _is_non_alphanumeric { - my $s = shift; - $s = new ExtUtils::MakeMaker::charstar $s; - while ($s) { - return 0 if isSPACE($s); # early out - return 1 unless (isALPHA($s) || isDIGIT($s) || $s =~ /[.-]/); - $s++; - } - return 0; -} - -sub _un_vstring { - my $value = shift; - # may be a v-string - if ( length($value) >= 3 && $value !~ /[._]/ - && _is_non_alphanumeric($value)) { - my $tvalue; - if ( $] ge 5.008_001 ) { - $tvalue = _find_magic_vstring($value); - $value = $tvalue if length $tvalue; - } - elsif ( $] ge 5.006_000 ) { - $tvalue = sprintf("v%vd",$value); - if ( $tvalue =~ /^v\d+(\.\d+){2,}$/ ) { - # must be a v-string - $value = $tvalue; - } - } - } - return $value; -} - -sub _find_magic_vstring { - my $value = shift; - my $tvalue = ''; - require B; - my $sv = B::svref_2object(\$value); - my $magic = ref($sv) eq 'B::PVMG' ? $sv->MAGIC : undef; - while ( $magic ) { - if ( $magic->TYPE eq 'V' ) { - $tvalue = $magic->PTR; - $tvalue =~ s/^v?(.+)$/v$1/; - last; - } - else { - $magic = $magic->MOREMAGIC; - } - } - return $tvalue; -} - -sub _VERSION { - my ($obj, $req) = @_; - my $class = ref($obj) || $obj; - - no strict 'refs'; - if ( exists $INC{"$class.pm"} and not %{"$class\::"} and $] >= 5.008) { - # file but no package - require Carp; - Carp::croak( "$class defines neither package nor VERSION" - ."--version check failed"); - } - - my $version = eval "\$$class\::VERSION"; - if ( defined $version ) { - local $^W if $] <= 5.008; - $version = ExtUtils::MakeMaker::version::vpp->new($version); - } - - if ( defined $req ) { - unless ( defined $version ) { - require Carp; - my $msg = $] < 5.006 - ? "$class version $req required--this is only version " - : "$class does not define \$$class\::VERSION" - ."--version check failed"; - - if ( $ENV{VERSION_DEBUG} ) { - Carp::confess($msg); - } - else { - Carp::croak($msg); - } - } - - $req = ExtUtils::MakeMaker::version::vpp->new($req); - - if ( $req > $version ) { - require Carp; - if ( $req->is_qv ) { - Carp::croak( - sprintf ("%s version %s required--". - "this is only version %s", $class, - $req->normal, $version->normal) - ); - } - else { - Carp::croak( - sprintf ("%s version %s required--". - "this is only version %s", $class, - $req->stringify, $version->stringify) - ); - } - } - } - - return defined $version ? $version->stringify : undef; -} - -1; #this line is important and will help the module return a true value diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/Mkbootstrap.pm b/Master/tlpkg/tlperl/lib/ExtUtils/Mkbootstrap.pm index 97d4300814e..dc2310e0f98 100644 --- a/Master/tlpkg/tlperl/lib/ExtUtils/Mkbootstrap.pm +++ b/Master/tlpkg/tlperl/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 = '7.04_01'; +our $VERSION = '7.10_02'; require Exporter; our @ISA = ('Exporter'); diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/Mksymlists.pm b/Master/tlpkg/tlperl/lib/ExtUtils/Mksymlists.pm index 3a9fc71361a..37180b89605 100644 --- a/Master/tlpkg/tlperl/lib/ExtUtils/Mksymlists.pm +++ b/Master/tlpkg/tlperl/lib/ExtUtils/Mksymlists.pm @@ -10,7 +10,7 @@ use Config; our @ISA = qw(Exporter); our @EXPORT = qw(&Mksymlists); -our $VERSION = '7.04_01'; +our $VERSION = '7.10_02'; sub Mksymlists { my(%spec) = @_; diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/ParseXS.pm b/Master/tlpkg/tlperl/lib/ExtUtils/ParseXS.pm index 0987500ba4d..32d74e18e8d 100644 --- a/Master/tlpkg/tlperl/lib/ExtUtils/ParseXS.pm +++ b/Master/tlpkg/tlperl/lib/ExtUtils/ParseXS.pm @@ -11,7 +11,7 @@ use Symbol; our $VERSION; BEGIN { - $VERSION = '3.28'; + $VERSION = '3.31'; } use ExtUtils::ParseXS::Constants $VERSION; use ExtUtils::ParseXS::CountLines $VERSION; @@ -579,7 +579,7 @@ EOF } ); } else { - print "\t$class *"; + print "\t" . map_type($self, "$class *"); $self->{var_types}->{"THIS"} = "$class *"; $self->generate_init( { type => "$class *", @@ -1577,6 +1577,25 @@ sub QuoteArgs { return join (' ', ($cmd, @args)); } +# code copied from CPAN::HandleConfig::safe_quote +# - that has doc saying leave if start/finish with same quote, but no code +# given text, will conditionally quote it to protect from shell +{ + my ($quote, $use_quote) = $^O eq 'MSWin32' + ? (q{"}, q{"}) + : (q{"'}, q{'}); + sub _safe_quote { + my ($self, $command) = @_; + # Set up quote/default quote + if (defined($command) + and $command =~ /\s/ + and $command !~ /[$quote]/) { + return qq{$use_quote$command$use_quote} + } + return $command; + } +} + sub INCLUDE_COMMAND_handler { my $self = shift; $_ = shift; @@ -1598,7 +1617,8 @@ sub INCLUDE_COMMAND_handler { # If $^X is used in INCLUDE_COMMAND, we know it's supposed to be # the same perl interpreter as we're currently running - s/^\s*\$\^X/$^X/; + my $X = $self->_safe_quote($^X); # quotes if has spaces + s/^\s*\$\^X/$X/; # open the new file open ($self->{FH}, "-|", $_) diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/ParseXS/Constants.pm b/Master/tlpkg/tlperl/lib/ExtUtils/ParseXS/Constants.pm index 5603613489c..2319a24c2c8 100644 --- a/Master/tlpkg/tlperl/lib/ExtUtils/ParseXS/Constants.pm +++ b/Master/tlpkg/tlperl/lib/ExtUtils/ParseXS/Constants.pm @@ -3,7 +3,7 @@ use strict; use warnings; use Symbol; -our $VERSION = '3.28'; +our $VERSION = '3.31'; =head1 NAME diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/ParseXS/CountLines.pm b/Master/tlpkg/tlperl/lib/ExtUtils/ParseXS/CountLines.pm index b30812c5f9a..222a95c245d 100644 --- a/Master/tlpkg/tlperl/lib/ExtUtils/ParseXS/CountLines.pm +++ b/Master/tlpkg/tlperl/lib/ExtUtils/ParseXS/CountLines.pm @@ -1,7 +1,7 @@ package ExtUtils::ParseXS::CountLines; use strict; -our $VERSION = '3.28'; +our $VERSION = '3.31'; our $SECTION_END_MARKER; diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/ParseXS/Eval.pm b/Master/tlpkg/tlperl/lib/ExtUtils/ParseXS/Eval.pm index b4f41cb2fac..73153326e91 100644 --- a/Master/tlpkg/tlperl/lib/ExtUtils/ParseXS/Eval.pm +++ b/Master/tlpkg/tlperl/lib/ExtUtils/ParseXS/Eval.pm @@ -2,7 +2,7 @@ package ExtUtils::ParseXS::Eval; use strict; use warnings; -our $VERSION = '3.28'; +our $VERSION = '3.31'; =head1 NAME diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/ParseXS/Utilities.pm b/Master/tlpkg/tlperl/lib/ExtUtils/ParseXS/Utilities.pm index 37094cb3337..41a9f6de57c 100644 --- a/Master/tlpkg/tlperl/lib/ExtUtils/ParseXS/Utilities.pm +++ b/Master/tlpkg/tlperl/lib/ExtUtils/ParseXS/Utilities.pm @@ -5,7 +5,7 @@ use Exporter; use File::Spec; use ExtUtils::ParseXS::Constants (); -our $VERSION = '3.28'; +our $VERSION = '3.31'; our (@ISA, @EXPORT_OK); @ISA = qw(Exporter); diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/Typemaps.pm b/Master/tlpkg/tlperl/lib/ExtUtils/Typemaps.pm index f9b568daf48..48d623ef71d 100644 --- a/Master/tlpkg/tlperl/lib/ExtUtils/Typemaps.pm +++ b/Master/tlpkg/tlperl/lib/ExtUtils/Typemaps.pm @@ -2,7 +2,7 @@ package ExtUtils::Typemaps; use 5.006001; use strict; use warnings; -our $VERSION = '3.28'; +our $VERSION = '3.31'; require ExtUtils::ParseXS; require ExtUtils::ParseXS::Constants; diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/Typemaps/Cmd.pm b/Master/tlpkg/tlperl/lib/ExtUtils/Typemaps/Cmd.pm index c0d13c68ba6..ffed504f9ff 100644 --- a/Master/tlpkg/tlperl/lib/ExtUtils/Typemaps/Cmd.pm +++ b/Master/tlpkg/tlperl/lib/ExtUtils/Typemaps/Cmd.pm @@ -2,7 +2,7 @@ package ExtUtils::Typemaps::Cmd; use 5.006001; use strict; use warnings; -our $VERSION = '3.28'; +our $VERSION = '3.31'; use ExtUtils::Typemaps; diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/Typemaps/InputMap.pm b/Master/tlpkg/tlperl/lib/ExtUtils/Typemaps/InputMap.pm index 3a7c6fe6fda..86c646d543e 100644 --- a/Master/tlpkg/tlperl/lib/ExtUtils/Typemaps/InputMap.pm +++ b/Master/tlpkg/tlperl/lib/ExtUtils/Typemaps/InputMap.pm @@ -2,7 +2,7 @@ package ExtUtils::Typemaps::InputMap; use 5.006001; use strict; use warnings; -our $VERSION = '3.28'; +our $VERSION = '3.31'; =head1 NAME diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/Typemaps/OutputMap.pm b/Master/tlpkg/tlperl/lib/ExtUtils/Typemaps/OutputMap.pm index 758ad5ef056..32cf9f93270 100644 --- a/Master/tlpkg/tlperl/lib/ExtUtils/Typemaps/OutputMap.pm +++ b/Master/tlpkg/tlperl/lib/ExtUtils/Typemaps/OutputMap.pm @@ -2,7 +2,7 @@ package ExtUtils::Typemaps::OutputMap; use 5.006001; use strict; use warnings; -our $VERSION = '3.28'; +our $VERSION = '3.31'; =head1 NAME diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/Typemaps/Type.pm b/Master/tlpkg/tlperl/lib/ExtUtils/Typemaps/Type.pm index 47a26624b12..abe93cb8ebe 100644 --- a/Master/tlpkg/tlperl/lib/ExtUtils/Typemaps/Type.pm +++ b/Master/tlpkg/tlperl/lib/ExtUtils/Typemaps/Type.pm @@ -4,7 +4,7 @@ use strict; use warnings; require ExtUtils::Typemaps; -our $VERSION = '3.28'; +our $VERSION = '3.31'; =head1 NAME diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/testlib.pm b/Master/tlpkg/tlperl/lib/ExtUtils/testlib.pm index 2a5323e1709..1756998c4d1 100644 --- a/Master/tlpkg/tlperl/lib/ExtUtils/testlib.pm +++ b/Master/tlpkg/tlperl/lib/ExtUtils/testlib.pm @@ -3,7 +3,7 @@ package ExtUtils::testlib; use strict; use warnings; -our $VERSION = '7.04_01'; +our $VERSION = '7.10_02'; use Cwd; use File::Spec; diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/typemap b/Master/tlpkg/tlperl/lib/ExtUtils/typemap index 0b09641f8d6..4bfba95e9e0 100644 --- a/Master/tlpkg/tlperl/lib/ExtUtils/typemap +++ b/Master/tlpkg/tlperl/lib/ExtUtils/typemap @@ -378,7 +378,19 @@ T_PACKEDARRAY T_ARRAY { U32 ix_$var; - EXTEND(SP,size_$var); + SSize_t extend_size = + /* The weird way this is written is because g++ is dumb + * enough to warn "comparison is always false" on something + * like: + * + * sizeof(a) > sizeof(b) && a > B_t_MAX + * + * (where the LH condition is false) + */ + (size_$var > (sizeof(size_$var) > sizeof(SSize_t) + ? SSize_t_MAX : size_$var)) + ? -1 : (SSize_t)size_$var; + EXTEND(SP, extend_size); for (ix_$var = 0; ix_$var < size_$var; ix_$var++) { ST(ix_$var) = sv_newmortal(); DO_ARRAY_ELEM @@ -388,32 +400,48 @@ T_STDIO { GV *gv = newGVgen("$Package"); PerlIO *fp = PerlIO_importFILE($var,0); - if ( fp && do_open(gv, "+<&", 3, FALSE, 0, 0, fp) ) - sv_setsv($arg, sv_bless(newRV((SV*)gv), gv_stashpv("$Package",1))); + if ( fp && do_open(gv, "+<&", 3, FALSE, 0, 0, fp) ) { + SV *rv = newRV_inc((SV*)gv); + rv = sv_bless(rv, GvSTASH(gv)); + ${"$var" eq "RETVAL" ? \"$arg = sv_2mortal(rv);" + : \"sv_setsv($arg, rv);\n\t\tSvREFCNT_dec_NN(rv);"} + }${"$var" ne "RETVAL" ? \" else - $arg = &PL_sv_undef; + sv_setsv($arg, &PL_sv_undef);\n" : \""} } T_IN { GV *gv = newGVgen("$Package"); - if ( do_open(gv, "<&", 2, FALSE, 0, 0, $var) ) - sv_setsv($arg, sv_bless(newRV((SV*)gv), gv_stashpv("$Package",1))); + if ( do_open(gv, "<&", 2, FALSE, 0, 0, $var) ) { + SV *rv = newRV_inc((SV*)gv); + rv = sv_bless(rv, GvSTASH(gv)); + ${"$var" eq "RETVAL" ? \"$arg = sv_2mortal(rv);" + : \"sv_setsv($arg, rv);\n\t\tSvREFCNT_dec_NN(rv);"} + }${"$var" ne "RETVAL" ? \" else - $arg = &PL_sv_undef; + sv_setsv($arg, &PL_sv_undef);\n" : \""} } T_INOUT { GV *gv = newGVgen("$Package"); - if ( do_open(gv, "+<&", 3, FALSE, 0, 0, $var) ) - sv_setsv($arg, sv_bless(newRV((SV*)gv), gv_stashpv("$Package",1))); + if ( do_open(gv, "+<&", 3, FALSE, 0, 0, $var) ) { + SV *rv = newRV_inc((SV*)gv); + rv = sv_bless(rv, GvSTASH(gv)); + ${"$var" eq "RETVAL" ? \"$arg = sv_2mortal(rv);" + : \"sv_setsv($arg, rv);\n\t\tSvREFCNT_dec_NN(rv);"} + }${"$var" ne "RETVAL" ? \" else - $arg = &PL_sv_undef; + sv_setsv($arg, &PL_sv_undef);\n" : \""} } T_OUT { GV *gv = newGVgen("$Package"); - if ( do_open(gv, "+>&", 3, FALSE, 0, 0, $var) ) - sv_setsv($arg, sv_bless(newRV((SV*)gv), gv_stashpv("$Package",1))); + if ( do_open(gv, "+>&", 3, FALSE, 0, 0, $var) ) { + SV *rv = newRV_inc((SV*)gv); + rv = sv_bless(rv, GvSTASH(gv)); + ${"$var" eq "RETVAL" ? \"$arg = sv_2mortal(rv);" + : \"sv_setsv($arg, rv);\n\t\tSvREFCNT_dec_NN(rv);"} + }${"$var" ne "RETVAL" ? \" else - $arg = &PL_sv_undef; + sv_setsv($arg, &PL_sv_undef);\n" : \""} } diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/xsubpp b/Master/tlpkg/tlperl/lib/ExtUtils/xsubpp index e2ac71a3234..d596cdff42a 100644 --- a/Master/tlpkg/tlperl/lib/ExtUtils/xsubpp +++ b/Master/tlpkg/tlperl/lib/ExtUtils/xsubpp @@ -1,5 +1,6 @@ #!perl use 5.006; +BEGIN { pop @INC if $INC[-1] eq '.' } use strict; eval { require ExtUtils::ParseXS; |