In perl.git, the branch blead has been updated <http://perl5.git.perl.org/perl.git/commitdiff/8b41fafa92716097162f11c7da4c190dfd29fba5?hp=7e87a3b73312c48707947b2c5cc27b6402302e72>
- Log ----------------------------------------------------------------- commit 8b41fafa92716097162f11c7da4c190dfd29fba5 Author: Chris 'BinGOs' Williams <[email protected]> Date: Fri Oct 24 13:15:19 2014 +0100 Fix a bug with customized.t when CUSTOMIZED is empty arrayref M t/porting/customized.t commit 7b01e4b183c6629065260ae2befad5e5d4ab6b94 Author: Chris 'BinGOs' Williams <[email protected]> Date: Fri Oct 24 12:23:00 2014 +0100 Update ExtUtils-MakeMaker to CPAN version 7.00 [DELTA] 7.00 Wed Oct 22 20:13:38 BST 2014 No changes from 6.99_18 6.99_18 Mon Oct 20 10:02:58 BST 2014 Bug fixes: - Resolve regression with taint and get_version() [RT#99580] VMS fixes: - Avoid .NOTPARALLEL on VMS as it is a syntax error for MMS and MMK - Quotes are not stripped from argv[0] on VMS so need stripping - Move MCR from PERL to PERLRUN on VMS and other *RUN variables 6.99_17 Sun Oct 12 19:37:04 BST 2014 Bug fixes: - Fix test that got broke under core since 6.99_15 6.99_16 Thu Oct 2 19:29:49 BST 2014 Dist fixes: - Move File::Copy::Recursive from bundled to where it is used, so that it will not get installed as a runtime prereq 6.99_15 Sun Sep 21 13:21:46 BST 2014 Enhancements: - If core, add ccwarnflags and ccstdflags, if available Doc fixes: - Fix internal links 6.99_14 Fri Sep 19 14:59:08 BST 2014 Bug fixes: - Fixes to fallback version module for core integration problems 6.99_13 Mon Sep 15 20:02:47 BST 2014 Enhancements: - Bundle Encode::Locale as ExtUtils::MakeMaker::Locale Bug fixes: - Make included version module have standardised dist versioning 6.99_12 Thu Sep 11 15:27:31 BST 2014 Enhancements: - Now include a fallback version module for bootstrapping Bug fixes: - Support libfoo.0.dylib style libraries on Darwin 6.99_11 Mon Sep 8 14:20:26 BST 2014 Bug fixes: - Handle chcp failure better on MSWin32 - Tests should be parallelisable once again Doc fixes: - Document that GNU make is usable on MSWin32 now 6.99_10 Thu Sep 4 14:28:01 BST 2014 Bug fixes: - Fixes for being integrated with core - Fixed the code page reset on MSWin32 - Fixed test failures on BSD with UTF8 filenames - Fixed regression with quoting of $(PERL) when command line flags are used 6.99_09 Thu Aug 28 11:01:37 BST 2014 Enhancements: - Support GNU Make on Windows - Support paths and filenames that are UTF8 encoded - MM->can_run() added for finding programs (ported from IPC::Cmd) Bug fixes: - Handle UTF8 when generating manpages correctly - Generated Makefile contents are now consistently sorted 6.99_08 Mon Aug 18 14:17:04 BST 2014 Bug fixes: - Liblist::Kid: can now handle -l:foo.so invocations properly - Scripts will no longer have the 'not running under some shell' code applied when rewriting shebang lines. - version is now used to parse prereqs versions internally - Support UTF8 encoded command-line args and Makefile.PL args - Generated META.files will now always have linefeed EOLs, even on Windows - Rewrite the version line eval handling to have less insane edge cases Doc fixes: - Documentation now includes links to Dist::Zilla, File::ShareDir and File::ShareDir::Install - Clarified support policy for < v5.8.1 in README Misc: - Updated bundled CPAN::Meta::Requirements to version 2.126 - Updated bundled ExtUtils::Manifest to version 1.65 6.99_07 Wed Jul 30 17:36:14 BST 2014 Bug fixes: - Resolve 'wide character in print' warnings 6.99_06 Mon Jul 28 15:02:25 BST 2014 Enhancements: - Improvements and tests for the spaces-in-stuff handling 6.99_05 Tue Jul 22 12:32:03 BST 2014 Enhancements: - Enable working with (including installing to) directories with spaces in names 6.99_04 Sat Jul 12 12:43:08 BST 2014 Enhancements: - No longer report each file being manified. Only summarise. 6.99_03 Fri Jul 4 11:02:21 BST 2014 Doc Fixes: - PATCHING document has been rewritten as CONTRIBUTING and TODO document has been removed Bug Fixes: - Rearranged bundled prereqs so CPAN::Meta::Requirements won't get stomped on if it is installed already, but CPAN::Meta isn't 6.99_02 Thu Jun 5 12:15:28 BST 2014 Bug fixes: * MM->parse_version will no longer warn if it could not determine the $VERSION due to syntax errors etc. 6.99_01 Tue Jun 3 22:17:30 BST 2014 Bug fixes: * Disregard some warnings during tests when cross-compiling Doc fixes: * Clarified the use and limitations of META_ADD, META_MERGE Test fixes: * Sanitise env vars in tests M MANIFEST M Makefile.SH M Porting/Maintainers.pl M cpan/ExtUtils-MakeMaker/lib/ExtUtils/Command/MM.pm M cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist.pm M cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist/Kid.pm M cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM.pm M cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_AIX.pm M cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Any.pm M cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_BeOS.pm M cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Cygwin.pm M cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_DOS.pm M cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Darwin.pm M cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_MacOS.pm M cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_NW5.pm M cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_OS2.pm M cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_QNX.pm M cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_UWIN.pm M cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm M cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VMS.pm M cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VOS.pm M cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win32.pm M cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win95.pm M cpan/ExtUtils-MakeMaker/lib/ExtUtils/MY.pm M cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm M cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Config.pm M cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/FAQ.pod A cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Locale.pm M cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Tutorial.pod A cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/version.pm A cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/version/regex.pm A cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/version/vpp.pm M cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mkbootstrap.pm M cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mksymlists.pm M cpan/ExtUtils-MakeMaker/lib/ExtUtils/testlib.pm M cpan/ExtUtils-MakeMaker/t/FIRST_MAKEFILE.t M cpan/ExtUtils-MakeMaker/t/INSTALL_BASE.t M cpan/ExtUtils-MakeMaker/t/MM_Unix.t M cpan/ExtUtils-MakeMaker/t/MakeMaker_Parameters.t M cpan/ExtUtils-MakeMaker/t/PL_FILES.t M cpan/ExtUtils-MakeMaker/t/basic.t M cpan/ExtUtils-MakeMaker/t/cd.t M cpan/ExtUtils-MakeMaker/t/echo.t A cpan/ExtUtils-MakeMaker/t/lib/MakeMaker/Test/Setup/Unicode.pm M cpan/ExtUtils-MakeMaker/t/lib/MakeMaker/Test/Setup/XS.pm M cpan/ExtUtils-MakeMaker/t/lib/MakeMaker/Test/Utils.pm M cpan/ExtUtils-MakeMaker/t/meta_convert.t M cpan/ExtUtils-MakeMaker/t/min_perl_version.t M cpan/ExtUtils-MakeMaker/t/miniperl.t M cpan/ExtUtils-MakeMaker/t/oneliner.t M cpan/ExtUtils-MakeMaker/t/parse_version.t M cpan/ExtUtils-MakeMaker/t/pm_to_blib.t M cpan/ExtUtils-MakeMaker/t/postamble.t M cpan/ExtUtils-MakeMaker/t/prereq.t M cpan/ExtUtils-MakeMaker/t/recurs.t M cpan/ExtUtils-MakeMaker/t/several_authors.t A cpan/ExtUtils-MakeMaker/t/unicode.t A cpan/ExtUtils-MakeMaker/t/vstrings.t M cpan/ExtUtils-MakeMaker/t/writemakefile_args.t M cpan/ExtUtils-MakeMaker/t/xs.t M t/porting/customized.dat commit c9955564bcb7253d7d35721945055f1e8bf7aaf2 Author: Chris 'BinGOs' Williams <[email protected]> Date: Fri Oct 24 12:16:34 2014 +0100 Update Encode to CPAN version 2.63 [DELTA] $Revision: 2.63 $ $Date: 2014/10/19 07:01:15 $ ! Encode.xs Applied: RT #99264: call_pv() can reallocate the stack https://rt.cpan.org/Ticket/Display.html?id=99264 ! Byte/Makefile.PL CN/Makefile.PL EBCDIC/Makefile.PL Encode.xs JP/Makefile.PL KR/Makefile.PL Symbol/Makefile.PL TW/Makefile.PL bin/enc2xs encengine.c Pulled: add PERL_NO_GET_CONTEXT to all dynamic libs https://github.com/dankogai/p5-encode/pull/24 M Porting/Maintainers.pl M cpan/Encode/Byte/Makefile.PL M cpan/Encode/CN/Makefile.PL M cpan/Encode/EBCDIC/Makefile.PL M cpan/Encode/Encode.pm M cpan/Encode/Encode.xs M cpan/Encode/JP/Makefile.PL M cpan/Encode/KR/Makefile.PL M cpan/Encode/Symbol/Makefile.PL M cpan/Encode/TW/Makefile.PL M cpan/Encode/bin/enc2xs M cpan/Encode/encengine.c ----------------------------------------------------------------------- Summary of changes: MANIFEST | 7 + Makefile.SH | 5 +- Porting/Maintainers.pl | 10 +- cpan/Encode/Byte/Makefile.PL | 1 + cpan/Encode/CN/Makefile.PL | 1 + cpan/Encode/EBCDIC/Makefile.PL | 1 + cpan/Encode/Encode.pm | 4 +- cpan/Encode/Encode.xs | 8 +- cpan/Encode/JP/Makefile.PL | 1 + cpan/Encode/KR/Makefile.PL | 1 + cpan/Encode/Symbol/Makefile.PL | 1 + cpan/Encode/TW/Makefile.PL | 1 + cpan/Encode/bin/enc2xs | 3 +- cpan/Encode/encengine.c | 1 + cpan/ExtUtils-MakeMaker/lib/ExtUtils/Command/MM.pm | 10 +- cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist.pm | 2 +- .../ExtUtils-MakeMaker/lib/ExtUtils/Liblist/Kid.pm | 28 +- cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM.pm | 2 +- cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_AIX.pm | 2 +- cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Any.pm | 178 +++++++++-- cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_BeOS.pm | 3 +- cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Cygwin.pm | 3 +- cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_DOS.pm | 2 +- cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Darwin.pm | 2 +- cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_MacOS.pm | 2 +- cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_NW5.pm | 2 +- cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_OS2.pm | 3 +- cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_QNX.pm | 2 +- cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_UWIN.pm | 2 +- cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm | 278 +++++++++------- cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VMS.pm | 7 +- cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VOS.pm | 2 +- cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win32.pm | 52 +-- cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win95.pm | 2 +- cpan/ExtUtils-MakeMaker/lib/ExtUtils/MY.pm | 2 +- cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm | 165 ++++++++-- .../lib/ExtUtils/MakeMaker/Config.pm | 2 +- .../lib/ExtUtils/MakeMaker/FAQ.pod | 2 +- .../lib/ExtUtils/MakeMaker/Locale.pm | 348 +++++++++++++++++++++ .../lib/ExtUtils/MakeMaker/Tutorial.pod | 2 +- .../lib/ExtUtils/MakeMaker/version.pm | 55 ++++ .../lib/ExtUtils/MakeMaker}/version/regex.pm | 10 +- .../lib/ExtUtils/MakeMaker}/version/vpp.pm | 41 +-- .../ExtUtils-MakeMaker/lib/ExtUtils/Mkbootstrap.pm | 2 +- cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mksymlists.pm | 2 +- cpan/ExtUtils-MakeMaker/lib/ExtUtils/testlib.pm | 2 +- cpan/ExtUtils-MakeMaker/t/FIRST_MAKEFILE.t | 2 +- cpan/ExtUtils-MakeMaker/t/INSTALL_BASE.t | 91 +++--- cpan/ExtUtils-MakeMaker/t/MM_Unix.t | 2 +- cpan/ExtUtils-MakeMaker/t/MakeMaker_Parameters.t | 86 +++-- cpan/ExtUtils-MakeMaker/t/PL_FILES.t | 11 +- cpan/ExtUtils-MakeMaker/t/basic.t | 101 +++--- cpan/ExtUtils-MakeMaker/t/cd.t | 8 +- cpan/ExtUtils-MakeMaker/t/echo.t | 7 +- .../MakeMaker/Test/Setup/{Recurs.pm => Unicode.pm} | 60 ++-- .../t/lib/MakeMaker/Test/Setup/XS.pm | 11 +- .../t/lib/MakeMaker/Test/Utils.pm | 8 +- cpan/ExtUtils-MakeMaker/t/meta_convert.t | 2 +- cpan/ExtUtils-MakeMaker/t/min_perl_version.t | 11 +- cpan/ExtUtils-MakeMaker/t/miniperl.t | 19 +- cpan/ExtUtils-MakeMaker/t/oneliner.t | 3 +- cpan/ExtUtils-MakeMaker/t/parse_version.t | 1 + cpan/ExtUtils-MakeMaker/t/pm_to_blib.t | 12 +- cpan/ExtUtils-MakeMaker/t/postamble.t | 6 + cpan/ExtUtils-MakeMaker/t/prereq.t | 6 + cpan/ExtUtils-MakeMaker/t/recurs.t | 10 +- cpan/ExtUtils-MakeMaker/t/several_authors.t | 15 +- cpan/ExtUtils-MakeMaker/t/unicode.t | 87 ++++++ cpan/ExtUtils-MakeMaker/t/vstrings.t | 73 +++++ cpan/ExtUtils-MakeMaker/t/writemakefile_args.t | 10 +- cpan/ExtUtils-MakeMaker/t/xs.t | 40 ++- t/porting/customized.dat | 2 - t/porting/customized.t | 1 + 73 files changed, 1450 insertions(+), 497 deletions(-) create mode 100644 cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Locale.pm create mode 100644 cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/version.pm copy cpan/{version/lib => ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker}/version/regex.pm (90%) copy cpan/{version/lib => ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker}/version/vpp.pm (94%) copy cpan/ExtUtils-MakeMaker/t/lib/MakeMaker/Test/Setup/{Recurs.pm => Unicode.pm} (50%) create mode 100644 cpan/ExtUtils-MakeMaker/t/unicode.t create mode 100644 cpan/ExtUtils-MakeMaker/t/vstrings.t diff --git a/MANIFEST b/MANIFEST index 8fb37a6..4f28c5f 100644 --- a/MANIFEST +++ b/MANIFEST @@ -970,8 +970,12 @@ cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist/Kid.pm Does the real work of the a cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist.pm Locates libraries cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Config.pm MakeMaker wrapper for Config cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/FAQ.pod MakeMaker FAQ +cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Locale.pm cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm Write Makefiles for extensions cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Tutorial.pod Writing a module with MakeMaker +cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/version.pm +cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/version/regex.pm +cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/version/vpp.pm cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mkbootstrap.pm Writes a bootstrap file (see MakeMaker) cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mksymlists.pm Writes a linker options file for extensions cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_AIX.pm MakeMaker methods for AIX @@ -1020,6 +1024,7 @@ cpan/ExtUtils-MakeMaker/t/lib/MakeMaker/Test/Setup/PL_FILES.pm MakeMaker test ut cpan/ExtUtils-MakeMaker/t/lib/MakeMaker/Test/Setup/Problem.pm MakeMaker test utilities cpan/ExtUtils-MakeMaker/t/lib/MakeMaker/Test/Setup/Recurs.pm MakeMaker test utilities cpan/ExtUtils-MakeMaker/t/lib/MakeMaker/Test/Setup/SAS.pm MakeMaker test utilities +cpan/ExtUtils-MakeMaker/t/lib/MakeMaker/Test/Setup/Unicode.pm cpan/ExtUtils-MakeMaker/t/lib/MakeMaker/Test/Setup/XS.pm MakeMaker test utilities cpan/ExtUtils-MakeMaker/t/lib/MakeMaker/Test/Utils.pm MakeMaker test utilities cpan/ExtUtils-MakeMaker/t/lib/TieIn.pm Testing library for dummy input handles @@ -1065,7 +1070,9 @@ cpan/ExtUtils-MakeMaker/t/test_boilerplate.t MakeMaker test cpan/ExtUtils-MakeMaker/t/testdata/reallylongdirectoryname/arch1/Config.pm test data for MakeMaker cpan/ExtUtils-MakeMaker/t/testdata/reallylongdirectoryname/arch2/Config.pm test data for MakeMaker cpan/ExtUtils-MakeMaker/t/testlib.t See if ExtUtils::testlib works +cpan/ExtUtils-MakeMaker/t/unicode.t cpan/ExtUtils-MakeMaker/t/VERSION_FROM.t See if MakeMaker's VERSION_FROM works +cpan/ExtUtils-MakeMaker/t/vstrings.t cpan/ExtUtils-MakeMaker/t/WriteEmptyMakefile.t See if WriteEmptyMakefile works cpan/ExtUtils-MakeMaker/t/writemakefile_args.t See if WriteMakefile works cpan/ExtUtils-MakeMaker/t/xs.t Part of MakeMaker's test suite diff --git a/Makefile.SH b/Makefile.SH index db66aeb..ede18d6 100755 --- a/Makefile.SH +++ b/Makefile.SH @@ -1315,8 +1315,9 @@ _cleaner2: -rmdir lib/IO/Compress/Adapter lib/IO/Compress lib/IO -rmdir lib/I18N/LangTags lib/I18N lib/Hash/Util lib/Hash lib/HTTP -rmdir lib/Filter/Util lib/Filter lib/File/Spec lib/ExtUtils/Typemaps - -rmdir lib/ExtUtils/ParseXS lib/ExtUtils/MakeMaker - -rmdir lib/ExtUtils/Liblist lib/ExtUtils/Constant lib/ExtUtils/Command + -rmdir lib/ExtUtils/ParseXS lib/ExtUtils/MakeMaker/version + -rmdir lib/ExtUtils/MakeMaker lib/ExtUtils/Liblist + -rmdir lib/ExtUtils/Constant lib/ExtUtils/Command -rmdir lib/ExtUtils/CBuilder/Platform/Windows -rmdir lib/ExtUtils/CBuilder/Platform lib/ExtUtils/CBuilder -rmdir lib/Exporter lib/Encode/Unicode lib/Encode/MIME/Header diff --git a/Porting/Maintainers.pl b/Porting/Maintainers.pl index 5b2a783..9a15aab 100755 --- a/Porting/Maintainers.pl +++ b/Porting/Maintainers.pl @@ -393,7 +393,7 @@ use File::Glob qw(:case); }, 'Encode' => { - 'DISTRIBUTION' => 'DANKOGAI/Encode-2.62.tar.gz', + 'DISTRIBUTION' => 'DANKOGAI/Encode-2.63.tar.gz', 'FILES' => q[cpan/Encode], }, @@ -476,7 +476,7 @@ use File::Glob qw(:case); }, 'ExtUtils::MakeMaker' => { - 'DISTRIBUTION' => 'BINGOS/ExtUtils-MakeMaker-6.98.tar.gz', + 'DISTRIBUTION' => 'BINGOS/ExtUtils-MakeMaker-7.00.tar.gz', 'FILES' => q[cpan/ExtUtils-MakeMaker], 'EXCLUDED' => [ qr{^t/lib/Test/}, @@ -488,12 +488,6 @@ use File::Glob qw(:case); 'README.packaging', ], 'CUSTOMIZED' => [ - # Already merged upstream in GitHub 0116aaf4e, just awaiting - # a new stable CPAN release - qw( t/pm_to_blib.t ), - # Already merged upstream in GitHub 46586b12c, just awaiting - # a new stable CPAN release - qw( lib/ExtUtils/Liblist/Kid.pm ), ], }, diff --git a/cpan/Encode/Byte/Makefile.PL b/cpan/Encode/Byte/Makefile.PL index 0cc5ece..85b2ccd 100644 --- a/cpan/Encode/Byte/Makefile.PL +++ b/cpan/Encode/Byte/Makefile.PL @@ -102,6 +102,7 @@ sub post_initialize $self->{'clean'}{'FILES'} .= join(' ',@files); open(XS,">$name.xs") || die "Cannot open $name.xs:$!"; print XS <<'END'; +#define PERL_NO_GET_CONTEXT #include <EXTERN.h> #include <perl.h> #include <XSUB.h> diff --git a/cpan/Encode/CN/Makefile.PL b/cpan/Encode/CN/Makefile.PL index 5e689cb..245140a 100644 --- a/cpan/Encode/CN/Makefile.PL +++ b/cpan/Encode/CN/Makefile.PL @@ -78,6 +78,7 @@ sub post_initialize $self->{'clean'}{'FILES'} .= join(' ',@files); open(XS,">$name.xs") || die "Cannot open $name.xs:$!"; print XS <<'END'; +#define PERL_NO_GET_CONTEXT #include <EXTERN.h> #include <perl.h> #include <XSUB.h> diff --git a/cpan/Encode/EBCDIC/Makefile.PL b/cpan/Encode/EBCDIC/Makefile.PL index 50ae0df..f746c0c 100644 --- a/cpan/Encode/EBCDIC/Makefile.PL +++ b/cpan/Encode/EBCDIC/Makefile.PL @@ -59,6 +59,7 @@ sub post_initialize $self->{'clean'}{'FILES'} .= join(' ',@files); open(XS,">$name.xs") || die "Cannot open $name.xs:$!"; print XS <<'END'; +#define PERL_NO_GET_CONTEXT #include <EXTERN.h> #include <perl.h> #include <XSUB.h> diff --git a/cpan/Encode/Encode.pm b/cpan/Encode/Encode.pm index f102a1a..03eded6 100644 --- a/cpan/Encode/Encode.pm +++ b/cpan/Encode/Encode.pm @@ -1,10 +1,10 @@ # -# $Id: Encode.pm,v 2.62 2014/05/31 12:12:39 dankogai Exp dankogai $ +# $Id: Encode.pm,v 2.63 2014/10/19 07:02:18 dankogai Exp $ # package Encode; use strict; use warnings; -our $VERSION = sprintf "%d.%02d", q$Revision: 2.62 $ =~ /(\d+)/g; +our $VERSION = sprintf "%d.%02d", q$Revision: 2.63 $ =~ /(\d+)/g; use constant DEBUG => !!$ENV{PERL_ENCODE_DEBUG}; use XSLoader (); XSLoader::load( __PACKAGE__, $VERSION ); diff --git a/cpan/Encode/Encode.xs b/cpan/Encode/Encode.xs index 5ee4539..755d6d9 100644 --- a/cpan/Encode/Encode.xs +++ b/cpan/Encode/Encode.xs @@ -1,5 +1,5 @@ /* - $Id: Encode.xs,v 2.29 2014/05/31 12:12:39 dankogai Exp dankogai $ + $Id: Encode.xs,v 2.30 2014/10/19 07:01:15 dankogai Exp $ */ #define PERL_NO_GET_CONTEXT @@ -19,8 +19,8 @@ encode_method(). 1 is recommended. 2 restores NI-S original */ #define ENCODE_XS_USEFP 1 -#define UNIMPLEMENTED(x,y) y x (SV *sv, char *encoding) {dTHX; \ - Perl_croak(aTHX_ "panic_unimplemented"); \ +#define UNIMPLEMENTED(x,y) y x (SV *sv, char *encoding) { \ + Perl_croak_nocontext("panic_unimplemented"); \ return (y)0; /* fool picky compilers */ \ } /**/ @@ -686,6 +686,7 @@ CODE: /* require_pv(PERLIO_FILENAME); */ eval_pv("require PerlIO::encoding", 0); + SPAGAIN; if (SvTRUE(get_sv("@", 0))) { ST(0) = &PL_sv_no; @@ -703,6 +704,7 @@ CODE: encode_t *enc = INT2PTR(encode_t *, SvIV(SvRV(obj))); SV *retval; eval_pv("require Encode::MIME::Name", 0); + SPAGAIN; if (SvTRUE(get_sv("@", 0))) { ST(0) = &PL_sv_undef; diff --git a/cpan/Encode/JP/Makefile.PL b/cpan/Encode/JP/Makefile.PL index 6ec73ea..7a7d5ac 100644 --- a/cpan/Encode/JP/Makefile.PL +++ b/cpan/Encode/JP/Makefile.PL @@ -78,6 +78,7 @@ sub post_initialize $self->{'clean'}{'FILES'} .= join(' ',@files); open(XS,">$name.xs") || die "Cannot open $name.xs:$!"; print XS <<'END'; +#define PERL_NO_GET_CONTEXT #include <EXTERN.h> #include <perl.h> #include <XSUB.h> diff --git a/cpan/Encode/KR/Makefile.PL b/cpan/Encode/KR/Makefile.PL index 0790ed0..0095ece 100644 --- a/cpan/Encode/KR/Makefile.PL +++ b/cpan/Encode/KR/Makefile.PL @@ -76,6 +76,7 @@ sub post_initialize $self->{'clean'}{'FILES'} .= join(' ',@files); open(XS,">$name.xs") || die "Cannot open $name.xs:$!"; print XS <<'END'; +#define PERL_NO_GET_CONTEXT #include <EXTERN.h> #include <perl.h> #include <XSUB.h> diff --git a/cpan/Encode/Symbol/Makefile.PL b/cpan/Encode/Symbol/Makefile.PL index 2dec60d..6be7fb6 100644 --- a/cpan/Encode/Symbol/Makefile.PL +++ b/cpan/Encode/Symbol/Makefile.PL @@ -64,6 +64,7 @@ sub post_initialize $self->{'clean'}{'FILES'} .= join(' ',@files); open(XS,">$name.xs") || die "Cannot open $name.xs:$!"; print XS <<'END'; +#define PERL_NO_GET_CONTEXT #include <EXTERN.h> #include <perl.h> #include <XSUB.h> diff --git a/cpan/Encode/TW/Makefile.PL b/cpan/Encode/TW/Makefile.PL index 69b3e96..1f94d79 100644 --- a/cpan/Encode/TW/Makefile.PL +++ b/cpan/Encode/TW/Makefile.PL @@ -74,6 +74,7 @@ sub post_initialize $self->{'clean'}{'FILES'} .= join(' ',@files); open(XS,">$name.xs") || die "Cannot open $name.xs:$!"; print XS <<'END'; +#define PERL_NO_GET_CONTEXT #include <EXTERN.h> #include <perl.h> #include <XSUB.h> diff --git a/cpan/Encode/bin/enc2xs b/cpan/Encode/bin/enc2xs index f2dda53..5e9f04a 100644 --- a/cpan/Encode/bin/enc2xs +++ b/cpan/Encode/bin/enc2xs @@ -10,7 +10,7 @@ use warnings; use Getopt::Std; use Config; my @orig_ARGV = @ARGV; -our $VERSION = do { my @r = (q$Revision: 2.13 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r }; +our $VERSION = do { my @r = (q$Revision: 2.14 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r }; # These may get re-ordered. # RAW is a do_now as inserted by &enter @@ -184,6 +184,7 @@ END if ($cname =~ /(\w+)\.xs$/) { + print C "#define PERL_NO_GET_CONTEXT\n"; print C "#include <EXTERN.h>\n"; print C "#include <perl.h>\n"; print C "#include <XSUB.h>\n"; diff --git a/cpan/Encode/encengine.c b/cpan/Encode/encengine.c index 33f2a86..bddf556 100644 --- a/cpan/Encode/encengine.c +++ b/cpan/Encode/encengine.c @@ -86,6 +86,7 @@ we add a flag to re-add the removed byte to the source we could handle */ +#define PERL_NO_GET_CONTEXT #include <EXTERN.h> #include <perl.h> #include "encode.h" diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Command/MM.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Command/MM.pm index f45d41d..69b7b01 100644 --- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Command/MM.pm +++ b/cpan/ExtUtils-MakeMaker/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 = '6.98'; +our $VERSION = '7.00'; my $Is_VMS = $^O eq 'VMS'; @@ -116,8 +116,9 @@ sub pod2man { 'section|s=s', 'release|r=s', 'center|c=s', 'date|d=s', 'fixed=s', 'fixedbold=s', 'fixeditalic=s', 'fixedbolditalic=s', 'official|o', 'quotes|q=s', 'lax|l', - 'name|n=s', 'perm_rw=i' + 'name|n=s', 'perm_rw=i', 'utf8|u' ); + delete $options{utf8} unless $Pod::Man::VERSION >= 2.17; # If there's no files, don't bother going further. return 0 unless @ARGV; @@ -130,6 +131,9 @@ sub pod2man { # This isn't a valid Pod::Man option and is only accepted for backwards # compatibility. delete $options{lax}; + my $count = scalar @ARGV / 2; + my $plural = $count == 1 ? 'document' : 'documents'; + print "Manifying $count pod $plural\n"; do {{ # so 'next' works my ($pod, $man) = splice(@ARGV, 0, 2); @@ -138,8 +142,6 @@ sub pod2man { (mtime($man) > mtime($pod)) && (mtime($man) > mtime("Makefile"))); - print "Manifying $man\n"; - my $parser = Pod::Man->new(%options); $parser->parse_from_file($pod, $man) or do { warn("Could not install $man\n"); next }; diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist.pm index 2d21e12..41a0ccb 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.98'; +our $VERSION = '7.00'; 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 7ef793f..5288c86 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.98_01'; +our $VERSION = '7.00'; use ExtUtils::MakeMaker::Config; use Cwd 'cwd'; @@ -49,7 +49,7 @@ sub _unix_os2_ext { # this is a rewrite of Andy Dougherty's extliblist in perl my ( @searchpath ); # from "-L/path" entries in $potential_libs - my ( @libpath ) = split " ", $Config{'libpth'}; + my ( @libpath ) = split " ", $Config{'libpth'} || ''; my ( @ldloadlibs, @bsloadlibs, @extralibs, @ld_run_path, %ld_run_path_seen ); my ( @libs, %libs_seen ); my ( $fullname, @fullname ); @@ -57,6 +57,7 @@ sub _unix_os2_ext { my ( $found ) = 0; foreach my $thislib ( split ' ', $potential_libs ) { + my ( $custom_name ) = ''; # Handle possible linker path arguments. if ( $thislib =~ s/^(-[LR]|-Wl,-R|-Wl,-rpath,)// ) { # save path flag type @@ -92,7 +93,14 @@ sub _unix_os2_ext { } # Handle possible library arguments. - unless ( $thislib =~ s/^-l// ) { + if ( $thislib =~ s/^-l(:)?// ) { + # Handle -l:foo.so, which means that the library will + # actually be called foo.so, not libfoo.so. This + # is used in Android by ExtUtils::Depends to allow one XS + # module to link to another. + $custom_name = $1 || ''; + } + else { warn "Unrecognized argument in LIBS ignored: '$thislib'\n"; next; } @@ -178,6 +186,8 @@ sub _unix_os2_ext { # # , the compilation tools expand the environment variables.) } + elsif ( $custom_name && -f ( $fullname = "$thispth/$thislib" ) ) { + } else { warn "$thislib not found in $thispth\n" if $verbose; next; @@ -191,7 +201,7 @@ sub _unix_os2_ext { # what do we know about this library... my $is_dyna = ( $fullname !~ /\Q$Config_libext\E\z/ ); - my $in_perl = ( $libs =~ /\B-l\Q${thislib}\E\b/s ); + my $in_perl = ( $libs =~ /\B-l:?\Q${thislib}\E\b/s ); # include the path to the lib once in the dynamic linker path # but only if it is a dynamic lib and not in Perl itself @@ -211,7 +221,7 @@ sub _unix_os2_ext { && ( $thislib eq 'm' || $thislib eq 'ndbm' ) ) ) { - push( @extralibs, "-l$thislib" ); + push( @extralibs, "-l$custom_name$thislib" ); } # We might be able to load this archive file dynamically @@ -233,11 +243,11 @@ sub _unix_os2_ext { # For SunOS4, do not add in this shared library if # it is already linked in the main perl executable - push( @ldloadlibs, "-l$thislib" ) + push( @ldloadlibs, "-l$custom_name$thislib" ) unless ( $in_perl and $^O eq 'sunos' ); } else { - push( @ldloadlibs, "-l$thislib" ); + push( @ldloadlibs, "-l$custom_name$thislib" ); } } last; # found one here so don't bother looking further @@ -332,8 +342,8 @@ sub _win32_ext { return ( '', '', '', '', ( $give_libs ? \@libs : () ) ) unless @extralibs; # make sure paths with spaces are properly quoted - @extralibs = map { /\s/ ? qq["$_"] : $_ } @extralibs; - @libs = map { /\s/ ? qq["$_"] : $_ } @libs; + @extralibs = map { qq["$_"] } @extralibs; + @libs = map { qq["$_"] } @libs; my $lib = join( ' ', @extralibs ); diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM.pm index a34015f..5cfef9c 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.98'; +our $VERSION = '7.00'; 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 7c600a6..b493d11 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.98'; +our $VERSION = '7.00'; 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 2066311..bf5cb38 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.98'; +our $VERSION = '7.00'; use Carp; use File::Spec; @@ -125,6 +125,142 @@ sub can_load_xs { } +=head3 can_run + + use ExtUtils::MM; + my $runnable = MM->can_run($Config{make}); + +If called in a scalar context it will return the full path to the binary +you asked for if it was found, or C<undef> if it was not. + +If called in a list context, it will return a list of the full paths to instances +of the binary where found in C<PATH>, or an empty list if it was not found. + +Copied from L<IPC::Cmd|IPC::Cmd/"$path = can_run( PROGRAM );">, but modified into +a method (and removed C<$INSTANCES> capability). + +=cut + +sub can_run { + my ($self, $command) = @_; + + # a lot of VMS executables have a symbol defined + # check those first + if ( $^O eq 'VMS' ) { + require VMS::DCLsym; + my $syms = VMS::DCLsym->new; + return $command if scalar $syms->getsym( uc $command ); + } + + my @possibles; + + if( File::Spec->file_name_is_absolute($command) ) { + return $self->maybe_command($command); + + } else { + for my $dir ( + File::Spec->path, + File::Spec->curdir + ) { + next if ! $dir || ! -d $dir; + my $abs = File::Spec->catfile($self->os_flavor_is('Win32') ? Win32::GetShortPathName( $dir ) : $dir, $command); + push @possibles, $abs if $abs = $self->maybe_command($abs); + } + } + return @possibles if wantarray; + return shift @possibles; +} + + +=head3 can_redirect_error + + $useredirect = MM->can_redirect_error; + +True if on an OS where qx operator (or backticks) can redirect C<STDERR> +onto C<STDOUT>. + +=cut + +sub can_redirect_error { + my $self = shift; + $self->os_flavor_is('Unix') + or ($self->os_flavor_is('Win32') and !$self->os_flavor_is('Win9x')) + or $self->os_flavor_is('OS/2') +} + + +=head3 is_make_type + + my $is_dmake = $self->is_make_type('dmake'); + +Returns true if C<<$self->make>> is the given type; possibilities are: + + gmake GNU make + dmake + nmake + bsdmake BSD pmake-derived + +=cut + +sub is_make_type { + my($self, $type) = @_; + (undef, undef, my $make_basename) = $self->splitpath($self->make); + return 1 if $make_basename =~ /\b$type\b/; # executable's filename + # 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' + and $minus_v =~ /^usage: make \[-BeikNnqrstWwX\]/im; + 0; # it wasn't whatever you asked +} + + +=head3 can_dep_space + + my $can_dep_space = $self->can_dep_space; + +Returns true if C<make> can handle (probably by quoting) +dependencies that contain a space. Currently known true for GNU make, +false for BSD pmake derivative. + +=cut + +my $cached_dep_space; +sub can_dep_space { + my $self = shift; + return $cached_dep_space if defined $cached_dep_space; + return $cached_dep_space = 1 if $self->is_make_type('gmake'); + return $cached_dep_space = 0 if $self->is_make_type('dmake'); # only on W32 + return $cached_dep_space = 0 if $self->is_make_type('bsdmake'); + return $cached_dep_space = 0; # assume no +} + + +=head3 quote_dep + + $text = $mm->quote_dep($text); + +Method that protects Makefile single-value constants (mainly filenames), +so that make will still treat them as single values even if they +inconveniently have spaces in. If the make program being used cannot +achieve such protection and the given text would need it, throws an +exception. + +=cut + +sub quote_dep { + my ($self, $arg) = @_; + die <<EOF if $arg =~ / / and not $self->can_dep_space; +Tried to use make dependency with space for make that can't: + '$arg' +EOF + $arg =~ s/( )/\\$1/g; # how GNU make does it + return $arg; +} + + =head3 split_command my @cmds = $MM->split_command($cmd, @args); @@ -781,9 +917,10 @@ END my @man_cmds; foreach my $section (qw(1 3)) { my $pods = $self->{"MAN${section}PODS"}; - push @man_cmds, $self->split_command(<<CMD, map {($_,$pods->{$_})} sort keys %$pods); - \$(NOECHO) \$(POD2MAN) --section=$section --perm_rw=\$(PERM_RW) + my $p2m = sprintf <<CMD, $] > 5.008 ? " -u" : ""; + \$(NOECHO) \$(POD2MAN) --section=$section --perm_rw=\$(PERM_RW)%s CMD + push @man_cmds, $self->split_command($p2m, map {($_,$pods->{$_})} sort keys %$pods); } $manify .= "\t\$(NOECHO) \$(NOOP)\n" unless @man_cmds; @@ -1037,8 +1174,7 @@ sub _add_requirements_to_meta_v1_4 { # Check the original args so we can tell between the user setting it # to an empty hash and it just being initialized. if( $self->{ARGS}{CONFIGURE_REQUIRES} ) { - $meta{configure_requires} - = _normalize_prereqs($self->{CONFIGURE_REQUIRES}); + $meta{configure_requires} = $self->{CONFIGURE_REQUIRES}; } else { $meta{configure_requires} = { 'ExtUtils::MakeMaker' => 0, @@ -1046,7 +1182,7 @@ sub _add_requirements_to_meta_v1_4 { } if( $self->{ARGS}{BUILD_REQUIRES} ) { - $meta{build_requires} = _normalize_prereqs($self->{BUILD_REQUIRES}); + $meta{build_requires} = $self->{BUILD_REQUIRES}; } else { $meta{build_requires} = { 'ExtUtils::MakeMaker' => 0, @@ -1056,11 +1192,11 @@ sub _add_requirements_to_meta_v1_4 { if( $self->{ARGS}{TEST_REQUIRES} ) { $meta{build_requires} = { %{ $meta{build_requires} }, - %{ _normalize_prereqs($self->{TEST_REQUIRES}) }, + %{ $self->{TEST_REQUIRES} }, }; } - $meta{requires} = _normalize_prereqs($self->{PREREQ_PM}) + $meta{requires} = $self->{PREREQ_PM} if defined $self->{PREREQ_PM}; $meta{requires}{perl} = _normalize_version($self->{MIN_PERL_VERSION}) if $self->{MIN_PERL_VERSION}; @@ -1074,8 +1210,7 @@ sub _add_requirements_to_meta_v2 { # Check the original args so we can tell between the user setting it # to an empty hash and it just being initialized. if( $self->{ARGS}{CONFIGURE_REQUIRES} ) { - $meta{prereqs}{configure}{requires} - = _normalize_prereqs($self->{CONFIGURE_REQUIRES}); + $meta{prereqs}{configure}{requires} = $self->{CONFIGURE_REQUIRES}; } else { $meta{prereqs}{configure}{requires} = { 'ExtUtils::MakeMaker' => 0, @@ -1083,7 +1218,7 @@ sub _add_requirements_to_meta_v2 { } if( $self->{ARGS}{BUILD_REQUIRES} ) { - $meta{prereqs}{build}{requires} = _normalize_prereqs($self->{BUILD_REQUIRES}); + $meta{prereqs}{build}{requires} = $self->{BUILD_REQUIRES}; } else { $meta{prereqs}{build}{requires} = { 'ExtUtils::MakeMaker' => 0, @@ -1091,10 +1226,10 @@ sub _add_requirements_to_meta_v2 { } if( $self->{ARGS}{TEST_REQUIRES} ) { - $meta{prereqs}{test}{requires} = _normalize_prereqs($self->{TEST_REQUIRES}); + $meta{prereqs}{test}{requires} = $self->{TEST_REQUIRES}; } - $meta{prereqs}{runtime}{requires} = _normalize_prereqs($self->{PREREQ_PM}) + $meta{prereqs}{runtime}{requires} = $self->{PREREQ_PM} if $self->{ARGS}{PREREQ_PM}; $meta{prereqs}{runtime}{requires}{perl} = _normalize_version($self->{MIN_PERL_VERSION}) if $self->{MIN_PERL_VERSION}; @@ -1102,15 +1237,6 @@ sub _add_requirements_to_meta_v2 { return %meta; } -sub _normalize_prereqs { - my ($hash) = @_; - my %prereqs; - while ( my ($k,$v) = each %$hash ) { - $prereqs{$k} = _normalize_version($v); - } - return \%prereqs; -} - # Adapted from Module::Build::Base sub _normalize_version { my ($version) = @_; @@ -1993,7 +2119,7 @@ sub init_VERSION { if (defined $self->{VERSION}) { if ( $self->{VERSION} !~ /^\s*v?[\d_\.]+\s*$/ ) { require version; - my $normal = eval { version->parse( $self->{VERSION} ) }; + my $normal = eval { version->new( $self->{VERSION} ) }; $self->{VERSION} = $normal if defined $normal; } $self->{VERSION} =~ s/^\s+//; @@ -2060,7 +2186,7 @@ Defines at least these macros. sub init_tools { my $self = shift; - $self->{ECHO} ||= $self->oneliner('print qq{@ARGV}', ['-l']); + $self->{ECHO} ||= $self->oneliner('binmode STDOUT, qq{:raw}; print qq{@ARGV}', ['-l']); $self->{ECHO_N} ||= $self->oneliner('print qq{@ARGV}'); $self->{TOUCH} ||= $self->oneliner('touch', ["-MExtUtils::Command"]); @@ -2722,7 +2848,7 @@ Used by perldepend() in MM_Unix and MM_VMS via _perl_header_files_fragment() sub _perl_header_files { my $self = shift; - my $header_dir = $self->{PERL_SRC} || $self->catdir($Config{archlibexp}, 'CORE'); + my $header_dir = $self->{PERL_SRC} || $ENV{PERL_SRC} || $self->catdir($Config{archlibexp}, 'CORE'); opendir my $dh, $header_dir or die "Failed to opendir '$header_dir' to find header files: $!"; @@ -2759,7 +2885,7 @@ sub _perl_header_files_fragment { return join("\\\n", "PERL_HDRS = ", map { - sprintf( " \$(PERL_INC)%s%s ", $separator, $_ ) + sprintf( " \$(PERL_INCDEP)%s%s ", $separator, $_ ) } $self->_perl_header_files() ) . "\n\n" . "\$(OBJECT) : \$(PERL_HDRS)\n"; diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_BeOS.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_BeOS.pm index 060ce36..0b1ad0d 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.98'; +our $VERSION = '7.00'; =item os_flavor @@ -50,6 +50,7 @@ sub init_linker { $self->{PERL_ARCHIVE} ||= File::Spec->catdir('$(PERL_INC)',$Config{libperl}); + $self->{PERL_ARCHIVEDEP} ||= ''; $self->{PERL_ARCHIVE_AFTER} ||= ''; $self->{EXPORT_LIST} ||= ''; } diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Cygwin.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Cygwin.pm index d8f3e3a..0843e5a 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.98'; +our $VERSION = '7.00'; =head1 NAME @@ -94,6 +94,7 @@ sub init_linker { '$(PERL_INC)' .'/'. ("$Config{libperl}" or "libperl.a"); } + $self->{PERL_ARCHIVEDEP} ||= ''; $self->{PERL_ARCHIVE_AFTER} ||= ''; $self->{EXPORT_LIST} ||= ''; } diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_DOS.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_DOS.pm index 4f52a98..839c20f 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.98'; +our $VERSION = '7.00'; 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 861a544..c537721 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.98'; +our $VERSION = '7.00'; =head1 NAME diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_MacOS.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_MacOS.pm index cd3a12a..7107d24 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.98'; +our $VERSION = '7.00'; 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 f6b0b5b..585d607 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.98'; +our $VERSION = '7.00'; 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 52bc4d1..23c17de 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.98'; +our $VERSION = '7.00'; require ExtUtils::MM_Any; require ExtUtils::MM_Unix; @@ -129,6 +129,7 @@ sub init_linker { $self->{PERL_ARCHIVE} = "\$(PERL_INC)/libperl\$(LIB_EXT)"; + $self->{PERL_ARCHIVEDEP} ||= ''; $self->{PERL_ARCHIVE_AFTER} = $OS2::is_aout ? '' : '$(PERL_INC)/libperl_override$(LIB_EXT)'; diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_QNX.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_QNX.pm index 7b74bf4..379a677 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.98'; +our $VERSION = '7.00'; 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 5b97300..5c87daf 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.98'; +our $VERSION = '7.00'; 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 4140432..9fa6704 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.98'; +$VERSION = '7.00'; $VERSION = eval $VERSION; ## no critic [BuiltinFunctions::ProhibitStringyEval] require ExtUtils::MM_Any; @@ -190,6 +190,19 @@ sub cflags { @cflags{qw(cc ccflags optimize shellflags)} = @Config{qw(cc ccflags optimize shellflags)}; + + # Perl 5.21.4 adds the (gcc) warning (-Wall ...) and std (-std=c89) + # flags to the %Config, and the modules in the core can be built + # with those. + my @ccextraflags = qw(ccwarnflags ccstdflags); + if ($ENV{PERL_CORE}) { + for my $x (@ccextraflags) { + if (exists $Config{$x}) { + $cflags{$x} = $Config{$x}; + } + } + } + my($optdebug) = ""; $cflags{shellflags} ||= ''; @@ -258,6 +271,10 @@ sub cflags { $self->{CCFLAGS} .= ' -DPERL_POLLUTE '; } + for my $x (@ccextraflags) { + $self->{CCFLAGS} .= $cflags{$x} if exists $cflags{$x}; + } + my $pollute = ''; if ($Config{usemymalloc} and not $Config{bincompat5005} and not $Config{ccflags} =~ /-DPERL_POLLUTE_MALLOC\b/ @@ -387,10 +404,10 @@ sub constants { } $self->installvars), qw( PERL_LIB - PERL_ARCHLIB + PERL_ARCHLIB PERL_ARCHLIBDEP LIBPERL_A MYEXTLIB FIRST_MAKEFILE MAKEFILE_OLD MAKE_APERL_FILE - PERLMAINCC PERL_SRC PERL_INC + PERLMAINCC PERL_SRC PERL_INC PERL_INCDEP PERL FULLPERL ABSPERL PERLRUN FULLPERLRUN ABSPERLRUN PERLRUNINST FULLPERLRUNINST ABSPERLRUNINST @@ -404,6 +421,8 @@ sub constants { # pathnames can have sharp signs in them; escape them so # make doesn't think it is a comment-start character. $self->{$macro} =~ s/#/\\#/g; + $self->{$macro} = $self->quote_dep($self->{$macro}) + if $ExtUtils::MakeMaker::macro_dep{$macro}; push @m, "$macro = $self->{$macro}\n"; } @@ -443,7 +462,7 @@ MAN3PODS = ".$self->wraplist(sort keys %{$self->{MAN3PODS}})." push @m, q{ # Where is the Config information that we are using/depend on -CONFIGDEP = $(PERL_ARCHLIB)$(DFSEP)Config.pm $(PERL_INC)$(DFSEP)config.h +CONFIGDEP = $(PERL_ARCHLIBDEP)$(DFSEP)Config.pm $(PERL_INCDEP)$(DFSEP)config.h } if -e File::Spec->catfile( $self->{PERL_INC}, 'config.h' ); @@ -460,11 +479,11 @@ INST_DYNAMIC = $self->{INST_DYNAMIC} INST_BOOT = $self->{INST_BOOT} }; - push @m, qq{ # Extra linker info EXPORT_LIST = $self->{EXPORT_LIST} PERL_ARCHIVE = $self->{PERL_ARCHIVE} +PERL_ARCHIVEDEP = $self->{PERL_ARCHIVEDEP} PERL_ARCHIVE_AFTER = $self->{PERL_ARCHIVE_AFTER} }; @@ -878,8 +897,8 @@ $(BOOTSTRAP) : $(FIRST_MAKEFILE) $(BOOTDEP) $(INST_ARCHAUTODIR)$(DFSEP).exists $(NOECHO) $(PERLRUN) \ "-MExtUtils::Mkbootstrap" \ -e "Mkbootstrap('$(BASEEXT)','$(BSLOADLIBS)');" - $(NOECHO) $(TOUCH) %s - $(CHMOD) $(PERM_RW) %s + $(NOECHO) $(TOUCH) "%s" + $(CHMOD) $(PERM_RW) "%s" MAKE_FRAG } @@ -911,7 +930,7 @@ OTHERLDFLAGS = '.$ld_opt.$otherldflags.' INST_DYNAMIC_DEP = '.$inst_dynamic_dep.' INST_DYNAMIC_FIX = '.$ld_fix.' -$(INST_DYNAMIC): $(OBJECT) $(MYEXTLIB) $(INST_ARCHAUTODIR)$(DFSEP).exists $(EXPORT_LIST) $(PERL_ARCHIVE) $(PERL_ARCHIVE_AFTER) $(INST_DYNAMIC_DEP) +$(INST_DYNAMIC): $(OBJECT) $(MYEXTLIB) $(INST_ARCHAUTODIR)$(DFSEP).exists $(EXPORT_LIST) $(PERL_ARCHIVEDEP) $(PERL_ARCHIVE_AFTER) $(INST_DYNAMIC_DEP) '); if ($armaybe ne ':'){ $ldfrom = 'tmp$(LIB_EXT)'; @@ -940,13 +959,13 @@ $(INST_DYNAMIC): $(OBJECT) $(MYEXTLIB) $(INST_ARCHAUTODIR)$(DFSEP).exists $(EXPO # platforms. We peek at lddlflags to see if we need -Wl,-R # or -R to add paths to the run-time library search path. if ($Config{'lddlflags'} =~ /-Wl,-R/) { - $libs .= ' -L$(PERL_INC) -Wl,-R$(INSTALLARCHLIB)/CORE -Wl,-R$(PERL_ARCHLIB)/CORE -lperl'; + $libs .= ' "-L$(PERL_INC)" "-Wl,-R$(INSTALLARCHLIB)/CORE" "-Wl,-R$(PERL_ARCHLIB)/CORE" -lperl'; } elsif ($Config{'lddlflags'} =~ /-R/) { - $libs .= ' -L$(PERL_INC) -R$(INSTALLARCHLIB)/CORE -R$(PERL_ARCHLIB)/CORE -lperl'; + $libs .= ' "-L$(PERL_INC)" "-R$(INSTALLARCHLIB)/CORE" "-R$(PERL_ARCHLIB)/CORE" -lperl'; } elsif ( $Is{Android} ) { # The Android linker will not recognize symbols from # libperl unless the module explicitly depends on it. - $libs .= ' -L$(PERL_INC) -lperl'; + $libs .= ' "-L$(PERL_INC)" -lperl'; } } @@ -1043,7 +1062,7 @@ WARNING next unless $self->maybe_command($abs); print "Executing $abs\n" if ($trace >= 2); - my $version_check = qq{$abs -le "require $ver; print qq{VER_OK}"}; + my $version_check = qq{"$abs" -le "require $ver; print qq{VER_OK}"}; # To avoid using the unportable 2>&1 to suppress STDERR, # we close it before running the command. @@ -1191,10 +1210,6 @@ sub _fixin_replace_shebang { $shb .= ' ' . $arg if defined $arg; $shb .= "\n"; } - $shb .= qq{ -eval 'exec $interpreter $arg -S \$0 \${1+"\$\@"}' - if 0; # not running under some shell -} unless $Is{Win32}; # this won't work on win32, so don't } else { warn "Can't find $cmd in PATH, $file unchanged" @@ -1712,6 +1727,8 @@ EOP $self->{PERL_LIB} = File::Spec->rel2abs($self->{PERL_LIB}); $self->{PERL_ARCHLIB} = File::Spec->rel2abs($self->{PERL_ARCHLIB}); } + $self->{PERL_INCDEP} = $self->{PERL_INC}; + $self->{PERL_ARCHLIBDEP} = $self->{PERL_ARCHLIB}; # We get SITELIBEXP and SITEARCHEXP directly via # Get_from_Config. When we are running standard modules, these @@ -1805,6 +1822,7 @@ Unix has no need of special linker flags. sub init_linker { my($self) = shift; $self->{PERL_ARCHIVE} ||= ''; + $self->{PERL_ARCHIVEDEP} ||= ''; $self->{PERL_ARCHIVE_AFTER} ||= ''; $self->{EXPORT_LIST} ||= ''; } @@ -1909,8 +1927,18 @@ sub init_PERL { $self->{PERL} ||= $self->find_perl(5.0, \@perls, \@defpath, $Verbose ); - # don't check if perl is executable, maybe they have decided to - # supply switches with perl + + my $perl = $self->{PERL}; + $perl =~ s/^"//; + my $perlflags = ''; + my $stripped_perl; + while ($perl) { + ($stripped_perl = $perl) =~ s/"$//; + last if -x $stripped_perl; + last unless $perl =~ s/(\s+\S+)$//; + $perlflags = $1.$perlflags; + } + $self->{PERL} = $stripped_perl; # When built for debugging, VMS doesn't create perl.exe but ndbgperl.exe. my $perl_name = 'perl'; @@ -1920,13 +1948,15 @@ sub init_PERL { # XXX This logic is flawed. If "miniperl" is anywhere in the path # it will get confused. It should be fixed to work only on the filename. # Define 'FULLPERL' to be a non-miniperl (used in test: target) - ($self->{FULLPERL} = $self->{PERL}) =~ s/\Q$miniperl\E$/$perl_name$Config{exe_ext}/i - unless $self->{FULLPERL}; + unless ($self->{FULLPERL}) { + ($self->{FULLPERL} = $self->{PERL}) =~ s/\Q$miniperl\E$/$perl_name$Config{exe_ext}/i; + $self->{FULLPERL} = qq{"$self->{FULLPERL}"}.$perlflags; + } + # Can't have an image name with quotes, and findperl will have + # already escaped spaces. + $self->{FULLPERL} =~ tr/"//d if $Is{VMS}; - # Little hack to get around VMS's find_perl putting "MCR" in front - # sometimes. $self->{ABSPERL} = $self->{PERL}; - my $has_mcr = $self->{ABSPERL} =~ s/^MCR\s*//; if( $self->file_name_is_absolute($self->{ABSPERL}) ) { $self->{ABSPERL} = '$(PERL)'; } @@ -1936,9 +1966,12 @@ sub init_PERL { # Quote the perl command if it contains whitespace $self->{ABSPERL} = $self->quote_literal($self->{ABSPERL}) if $self->{ABSPERL} =~ /\s/; - - $self->{ABSPERL} = 'MCR '.$self->{ABSPERL} if $has_mcr; } + $self->{PERL} = qq{"$self->{PERL}"}.$perlflags; + + # Can't have an image name with quotes, and findperl will have + # already escaped spaces. + $self->{PERL} =~ tr/"//d if $Is{VMS}; # Are we building the core? $self->{PERL_CORE} = $ENV{PERL_CORE} unless exists $self->{PERL_CORE}; @@ -1948,14 +1981,16 @@ sub init_PERL { foreach my $perl (qw(PERL FULLPERL ABSPERL)) { my $run = $perl.'RUN'; - $self->{$run} = "\$($perl)"; + $self->{$run} = qq{\$($perl)}; + $self->{$run} = 'MCR ' . $self->{$run} if $Is{VMS}; # Make sure perl can find itself before it's installed. $self->{$run} .= q{ "-I$(PERL_LIB)" "-I$(PERL_ARCHLIB)"} if $self->{UNINSTALLED_PERL} || $self->{PERL_CORE}; $self->{$perl.'RUNINST'} = - sprintf q{$(%sRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)"}, $perl; + sprintf q{$(%sRUN)%s "-I$(INST_ARCHLIB)" "-I$(INST_LIB)"}, + $perl, $perlflags; } return 1; @@ -2079,54 +2114,54 @@ pure_perl_install :: all }; push @m, -q{ read }.$self->catfile('$(PERL_ARCHLIB)','auto','$(FULLEXT)','.packlist').q{ \ - write }.$self->catfile('$(DESTINSTALLARCHLIB)','auto','$(FULLEXT)','.packlist').q{ \ +q{ read "}.$self->catfile('$(PERL_ARCHLIB)','auto','$(FULLEXT)','.packlist').q{" \ + write "}.$self->catfile('$(DESTINSTALLARCHLIB)','auto','$(FULLEXT)','.packlist').q{" \ } unless $self->{NO_PACKLIST}; push @m, -q{ $(INST_LIB) $(DESTINSTALLPRIVLIB) \ - $(INST_ARCHLIB) $(DESTINSTALLARCHLIB) \ - $(INST_BIN) $(DESTINSTALLBIN) \ - $(INST_SCRIPT) $(DESTINSTALLSCRIPT) \ - $(INST_MAN1DIR) $(DESTINSTALLMAN1DIR) \ - $(INST_MAN3DIR) $(DESTINSTALLMAN3DIR) +q{ "$(INST_LIB)" "$(DESTINSTALLPRIVLIB)" \ + "$(INST_ARCHLIB)" "$(DESTINSTALLARCHLIB)" \ + "$(INST_BIN)" "$(DESTINSTALLBIN)" \ + "$(INST_SCRIPT)" "$(DESTINSTALLSCRIPT)" \ + "$(INST_MAN1DIR)" "$(DESTINSTALLMAN1DIR)" \ + "$(INST_MAN3DIR)" "$(DESTINSTALLMAN3DIR)" $(NOECHO) $(WARN_IF_OLD_PACKLIST) \ - }.$self->catdir('$(SITEARCHEXP)','auto','$(FULLEXT)').q{ + "}.$self->catdir('$(SITEARCHEXP)','auto','$(FULLEXT)').q{" pure_site_install :: all $(NOECHO) $(MOD_INSTALL) \ }; push @m, -q{ read }.$self->catfile('$(SITEARCHEXP)','auto','$(FULLEXT)','.packlist').q{ \ - write }.$self->catfile('$(DESTINSTALLSITEARCH)','auto','$(FULLEXT)','.packlist').q{ \ +q{ read "}.$self->catfile('$(SITEARCHEXP)','auto','$(FULLEXT)','.packlist').q{" \ + write "}.$self->catfile('$(DESTINSTALLSITEARCH)','auto','$(FULLEXT)','.packlist').q{" \ } unless $self->{NO_PACKLIST}; push @m, -q{ $(INST_LIB) $(DESTINSTALLSITELIB) \ - $(INST_ARCHLIB) $(DESTINSTALLSITEARCH) \ - $(INST_BIN) $(DESTINSTALLSITEBIN) \ - $(INST_SCRIPT) $(DESTINSTALLSITESCRIPT) \ - $(INST_MAN1DIR) $(DESTINSTALLSITEMAN1DIR) \ - $(INST_MAN3DIR) $(DESTINSTALLSITEMAN3DIR) +q{ "$(INST_LIB)" "$(DESTINSTALLSITELIB)" \ + "$(INST_ARCHLIB)" "$(DESTINSTALLSITEARCH)" \ + "$(INST_BIN)" "$(DESTINSTALLSITEBIN)" \ + "$(INST_SCRIPT)" "$(DESTINSTALLSITESCRIPT)" \ + "$(INST_MAN1DIR)" "$(DESTINSTALLSITEMAN1DIR)" \ + "$(INST_MAN3DIR)" "$(DESTINSTALLSITEMAN3DIR)" $(NOECHO) $(WARN_IF_OLD_PACKLIST) \ - }.$self->catdir('$(PERL_ARCHLIB)','auto','$(FULLEXT)').q{ + "}.$self->catdir('$(PERL_ARCHLIB)','auto','$(FULLEXT)').q{" pure_vendor_install :: all $(NOECHO) $(MOD_INSTALL) \ }; push @m, -q{ read }.$self->catfile('$(VENDORARCHEXP)','auto','$(FULLEXT)','.packlist').q{ \ - write }.$self->catfile('$(DESTINSTALLVENDORARCH)','auto','$(FULLEXT)','.packlist').q{ \ +q{ read "}.$self->catfile('$(VENDORARCHEXP)','auto','$(FULLEXT)','.packlist').q{" \ + write "}.$self->catfile('$(DESTINSTALLVENDORARCH)','auto','$(FULLEXT)','.packlist').q{" \ } unless $self->{NO_PACKLIST}; push @m, -q{ $(INST_LIB) $(DESTINSTALLVENDORLIB) \ - $(INST_ARCHLIB) $(DESTINSTALLVENDORARCH) \ - $(INST_BIN) $(DESTINSTALLVENDORBIN) \ - $(INST_SCRIPT) $(DESTINSTALLVENDORSCRIPT) \ - $(INST_MAN1DIR) $(DESTINSTALLVENDORMAN1DIR) \ - $(INST_MAN3DIR) $(DESTINSTALLVENDORMAN3DIR) +q{ "$(INST_LIB)" "$(DESTINSTALLVENDORLIB)" \ + "$(INST_ARCHLIB)" "$(DESTINSTALLVENDORARCH)" \ + "$(INST_BIN)" "$(DESTINSTALLVENDORBIN)" \ + "$(INST_SCRIPT)" "$(DESTINSTALLVENDORSCRIPT)" \ + "$(INST_MAN1DIR)" "$(DESTINSTALLVENDORMAN1DIR)" \ + "$(INST_MAN3DIR)" "$(DESTINSTALLVENDORMAN3DIR)" }; @@ -2144,37 +2179,37 @@ doc_vendor_install :: all push @m, q{ doc_perl_install :: all - $(NOECHO) $(ECHO) Appending installation info to $(DESTINSTALLARCHLIB)/perllocal.pod - -$(NOECHO) $(MKPATH) $(DESTINSTALLARCHLIB) + $(NOECHO) $(ECHO) Appending installation info to "$(DESTINSTALLARCHLIB)/perllocal.pod" + -$(NOECHO) $(MKPATH) "$(DESTINSTALLARCHLIB)" -$(NOECHO) $(DOC_INSTALL) \ "Module" "$(NAME)" \ - "installed into" "$(INSTALLPRIVLIB)" \ + "installed into" $(INSTALLPRIVLIB) \ LINKTYPE "$(LINKTYPE)" \ VERSION "$(VERSION)" \ EXE_FILES "$(EXE_FILES)" \ - >> }.$self->catfile('$(DESTINSTALLARCHLIB)','perllocal.pod').q{ + >> "}.$self->catfile('$(DESTINSTALLARCHLIB)','perllocal.pod').q{" doc_site_install :: all - $(NOECHO) $(ECHO) Appending installation info to $(DESTINSTALLARCHLIB)/perllocal.pod - -$(NOECHO) $(MKPATH) $(DESTINSTALLARCHLIB) + $(NOECHO) $(ECHO) Appending installation info to "$(DESTINSTALLARCHLIB)/perllocal.pod" + -$(NOECHO) $(MKPATH) "$(DESTINSTALLARCHLIB)" -$(NOECHO) $(DOC_INSTALL) \ "Module" "$(NAME)" \ - "installed into" "$(INSTALLSITELIB)" \ + "installed into" $(INSTALLSITELIB) \ LINKTYPE "$(LINKTYPE)" \ VERSION "$(VERSION)" \ EXE_FILES "$(EXE_FILES)" \ - >> }.$self->catfile('$(DESTINSTALLARCHLIB)','perllocal.pod').q{ + >> "}.$self->catfile('$(DESTINSTALLARCHLIB)','perllocal.pod').q{" doc_vendor_install :: all - $(NOECHO) $(ECHO) Appending installation info to $(DESTINSTALLARCHLIB)/perllocal.pod - -$(NOECHO) $(MKPATH) $(DESTINSTALLARCHLIB) + $(NOECHO) $(ECHO) Appending installation info to "$(DESTINSTALLARCHLIB)/perllocal.pod" + -$(NOECHO) $(MKPATH) "$(DESTINSTALLARCHLIB)" -$(NOECHO) $(DOC_INSTALL) \ "Module" "$(NAME)" \ - "installed into" "$(INSTALLVENDORLIB)" \ + "installed into" $(INSTALLVENDORLIB) \ LINKTYPE "$(LINKTYPE)" \ VERSION "$(VERSION)" \ EXE_FILES "$(EXE_FILES)" \ - >> }.$self->catfile('$(DESTINSTALLARCHLIB)','perllocal.pod').q{ + >> "}.$self->catfile('$(DESTINSTALLARCHLIB)','perllocal.pod').q{" } unless $self->{NO_PERLLOCAL}; @@ -2183,13 +2218,13 @@ uninstall :: uninstall_from_$(INSTALLDIRS)dirs $(NOECHO) $(NOOP) uninstall_from_perldirs :: - $(NOECHO) $(UNINSTALL) }.$self->catfile('$(PERL_ARCHLIB)','auto','$(FULLEXT)','.packlist').q{ + $(NOECHO) $(UNINSTALL) "}.$self->catfile('$(PERL_ARCHLIB)','auto','$(FULLEXT)','.packlist').q{" uninstall_from_sitedirs :: - $(NOECHO) $(UNINSTALL) }.$self->catfile('$(SITEARCHEXP)','auto','$(FULLEXT)','.packlist').q{ + $(NOECHO) $(UNINSTALL) "}.$self->catfile('$(SITEARCHEXP)','auto','$(FULLEXT)','.packlist').q{" uninstall_from_vendordirs :: - $(NOECHO) $(UNINSTALL) }.$self->catfile('$(VENDORARCHEXP)','auto','$(FULLEXT)','.packlist').q{ + $(NOECHO) $(UNINSTALL) "}.$self->catfile('$(VENDORARCHEXP)','auto','$(FULLEXT)','.packlist').q{" }; join("",@m); @@ -2343,7 +2378,7 @@ $(MAP_TARGET) :: static $(MAKE_APERL_FILE) $(MAKE_APERL_FILE) : $(FIRST_MAKEFILE) pm_to_blib $(NOECHO) $(ECHO) Writing \"$(MAKE_APERL_FILE)\" for this $(MAP_TARGET) $(NOECHO) $(PERLRUNINST) \ - Makefile.PL DIR=}, $dir, q{ \ + Makefile.PL DIR="}, $dir, q{" \ MAKEFILE=$(MAKE_APERL_FILE) LINKTYPE=static \ MAKEAPERL=1 NORECURS=1 CCCDLFLAGS=}; @@ -2521,20 +2556,20 @@ $tmp/perlmain.c: $makefilename}, q{ -e "writemain(grep s#.*/auto/##s, split(q| |, q|$(MAP_STATIC)|))" > $@t && $(MV) $@t $@ }; - push @m, "\t", q{$(NOECHO) $(PERL) $(INSTALLSCRIPT)/fixpmain + push @m, "\t", q{$(NOECHO) $(PERL) "$(INSTALLSCRIPT)/fixpmain" } if (defined (&Dos::UseLFN) && Dos::UseLFN()==0); push @m, q{ doc_inst_perl : - $(NOECHO) $(ECHO) Appending installation info to $(DESTINSTALLARCHLIB)/perllocal.pod - -$(NOECHO) $(MKPATH) $(DESTINSTALLARCHLIB) + $(NOECHO) $(ECHO) Appending installation info to "$(DESTINSTALLARCHLIB)/perllocal.pod" + -$(NOECHO) $(MKPATH) "$(DESTINSTALLARCHLIB)" -$(NOECHO) $(DOC_INSTALL) \ "Perl binary" "$(MAP_TARGET)" \ MAP_STATIC "$(MAP_STATIC)" \ MAP_EXTRA "`cat $(INST_ARCHAUTODIR)/extralibs.all`" \ MAP_LIBPERL "$(MAP_LIBPERL)" \ - >> }.$self->catfile('$(DESTINSTALLARCHLIB)','perllocal.pod').q{ + >> "}.$self->catfile('$(DESTINSTALLARCHLIB)','perllocal.pod').q{" }; @@ -2542,7 +2577,7 @@ doc_inst_perl : inst_perl : pure_inst_perl doc_inst_perl pure_inst_perl : $(MAP_TARGET) - }.$self->{CP}.q{ $(MAP_TARGET) }.$self->catfile('$(DESTINSTALLBIN)','$(MAP_TARGET)').q{ + }.$self->{CP}.q{ $(MAP_TARGET) "}.$self->catfile('$(DESTINSTALLBIN)','$(MAP_TARGET)').q{" clean :: map_clean @@ -2651,17 +2686,24 @@ sub parse_abstract { local $/ = "\n"; open(my $fh, '<', $parsefile) or die "Could not open '$parsefile': $!"; my $inpod = 0; + my $pod_encoding; my $package = $self->{DISTNAME}; $package =~ s/-/::/g; while (<$fh>) { $inpod = /^=(?!cut)/ ? 1 : /^=cut/ ? 0 : $inpod; next if !$inpod; chop; + + if ( /^=encoding\s*(.*)$/i ) { + $pod_encoding = $1; + } + if ( /^($package(?:\.pm)? \s+ -+ \s+)(.*)/x ) { $result = $2; next; } next unless $result; + if ( $result && ( /^\s*$/ || /^\=/ ) ) { last; } @@ -2669,6 +2711,11 @@ sub parse_abstract { } close $fh; + if ( $pod_encoding and !( $] < 5.008 or !$Config{useperlio} ) ) { + require Encode; + $result = Encode::decode($pod_encoding, $result); + } + return $result; } @@ -2721,43 +2768,32 @@ sub parse_version { if ( defined $result && $result !~ /^v?[\d_\.]+$/ ) { require version; - my $normal = eval { version->parse( $result ) }; + my $normal = eval { version->new( $result ) }; $result = $normal if defined $normal; } $result = "undef" unless defined $result; return $result; } -sub get_version -{ - my ($self, $parsefile, $sigil, $name) = @_; - my $eval = qq{ - package ExtUtils::MakeMaker::_version; - no strict; - BEGIN { eval { - # Ensure any version() routine which might have leaked - # into this package has been deleted. Interferes with - # version->import() - undef *version; - require version; - "version"->import; - } } - - local $sigil$name; - \$$name=undef; - do { - $_ - }; - \$$name; - }; - $eval = $1 if $eval =~ m{^(.+)}s; - local $^W = 0; - my $result = eval($eval); ## no critic - warn "Could not eval '$eval' in $parsefile: $@" if $@; - $result; +sub get_version { + my ($self, $parsefile, $sigil, $name) = @_; + my $line = $_; # from the while() loop in parse_version + { + package ExtUtils::MakeMaker::_version; + undef *version; # in case of unexpected version() sub + eval { + require version; + version::->import; + }; + no strict; + local *{$name}; + local $^W = 0; + $line = $1 if $line =~ m{^(.+)}s; + eval($line); ## no critic + return ${$name}; + } } - =item pasthru (o) Defines the string that is passed to recursive make calls in @@ -2821,7 +2857,7 @@ sub perldepend { # Check for unpropogated config.sh changes. Should never happen. # We do NOT just update config.h because that is not sufficient. # An out of date config.h is not fatal but complains loudly! -$(PERL_INC)/config.h: $(PERL_SRC)/config.sh +$(PERL_INCDEP)/config.h: $(PERL_SRC)/config.sh -$(NOECHO) $(ECHO) "Warning: $(PERL_INC)/config.h out of date with $(PERL_SRC)/config.sh"; $(FALSE) $(PERL_ARCHLIB)/Config.pm: $(PERL_SRC)/config.sh @@ -2837,7 +2873,7 @@ MAKE_FRAG push @m, $self->_perl_header_files_fragment("/"); # Directory separator between $(PERL_INC)/header.h } - push @m, join(" ", values %{$self->{XS}})." : \$(XSUBPPDEPS)\n" if %{$self->{XS}}; + push @m, join(" ", sort values %{$self->{XS}})." : \$(XSUBPPDEPS)\n" if %{$self->{XS}}; return join "\n", @m; } @@ -2960,11 +2996,11 @@ PPD_PERLVERS foreach my $prereq (sort keys %prereqs) { my $name = $prereq; $name .= '::' unless $name =~ /::/; - my $version = $prereqs{$prereq}+0; # force numification + my $version = $prereqs{$prereq}; my %attrs = ( NAME => $name ); $attrs{VERSION} = $version if $version; - my $attrs = join " ", map { qq[$_="$attrs{$_}"] } keys %attrs; + my $attrs = join " ", map { qq[$_="$attrs{$_}"] } sort keys %attrs; $ppd_xml .= qq( <REQUIRE $attrs />\n); } @@ -3198,6 +3234,17 @@ sub oneliner { =item quote_literal +Quotes macro literal value suitable for being used on a command line so +that when expanded by make, will be received by command as given to +this method: + + my $quoted = $mm->quote_literal(q{it isn't}); + # returns: + # 'it isn'\''t' + print MAKEFILE "target:\n\techo $quoted\n"; + # when run "make target", will output: + # it isn't + =cut sub quote_literal { @@ -3287,7 +3334,7 @@ END # If this extension has its own library (eg SDBM_File) # then copy that to $(INST_STATIC) and add $(OBJECT) into it. push(@m, <<'MAKE_FRAG') if $self->{MYEXTLIB}; - $(CP) $(MYEXTLIB) $@ + $(CP) $(MYEXTLIB) "$@" MAKE_FRAG my $ar; @@ -3301,12 +3348,12 @@ MAKE_FRAG push @m, sprintf <<'MAKE_FRAG', $ar; $(%s) $(AR_STATIC_ARGS) $@ $(OBJECT) && $(RANLIB) $@ $(CHMOD) $(PERM_RWX) $@ - $(NOECHO) $(ECHO) "$(EXTRALIBS)" > $(INST_ARCHAUTODIR)/extralibs.ld + $(NOECHO) $(ECHO) "$(EXTRALIBS)" > "$(INST_ARCHAUTODIR)/extralibs.ld" MAKE_FRAG # Old mechanism - still available: push @m, <<'MAKE_FRAG' if $self->{PERL_SRC} && $self->{EXTRALIBS}; - $(NOECHO) $(ECHO) "$(EXTRALIBS)" >> $(PERL_SRC)/ext.libs + $(NOECHO) $(ECHO) "$(EXTRALIBS)" >> "$(PERL_SRC)/ext.libs" MAKE_FRAG join('', @m); @@ -3545,7 +3592,8 @@ sub tool_xsubpp { } } push(@tmdeps, "typemap") if -f "typemap"; - my(@tmargs) = map("-typemap $_", @tmdeps); + my @tmargs = map(qq{-typemap "$_"}, @tmdeps); + $_ = $self->quote_dep($_) for @tmdeps; if( exists $self->{XSOPT} ){ unshift( @tmargs, $self->{XSOPT} ); } @@ -3561,17 +3609,19 @@ sub tool_xsubpp { $self->{XSPROTOARG} = "" unless defined $self->{XSPROTOARG}; + my $xsdirdep = $self->quote_dep($xsdir); + # -dep for use when dependency not command return qq{ XSUBPPDIR = $xsdir -XSUBPP = \$(XSUBPPDIR)\$(DFSEP)xsubpp +XSUBPP = "\$(XSUBPPDIR)\$(DFSEP)xsubpp" XSUBPPRUN = \$(PERLRUN) \$(XSUBPP) XSPROTOARG = $self->{XSPROTOARG} -XSUBPPDEPS = @tmdeps \$(XSUBPP) +XSUBPPDEPS = @tmdeps $xsdirdep\$(DFSEP)xsubpp XSUBPPARGS = @tmargs XSUBPP_EXTRA_ARGS = }; -}; +} =item all_target diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VMS.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VMS.pm index 331cbcd..51d801e 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.98'; +our $VERSION = '7.00'; require ExtUtils::MM_Any; require ExtUtils::MM_Unix; @@ -240,8 +240,8 @@ sub find_perl { $rslt = `\@temp_mmvms.com`; unlink('temp_mmvms.com'); if ($rslt =~ /VER_OK/) { - print "Using PERL=MCR $vmsfile\n" if $trace; - return "MCR $vmsfile"; + print "Using PERL=$vmsfile\n" if $trace; + return $vmsfile; } } print "Unable to find a perl $ver (by these names: @$names, in these dirs: @$dirs)\n"; @@ -1893,6 +1893,7 @@ sub init_linker { $ENV{$shr} ? $ENV{$shr} : "Sys\$Share:$shr.$Config{'dlext'}"; } + $self->{PERL_ARCHIVEDEP} ||= ''; $self->{PERL_ARCHIVE_AFTER} ||= ''; } diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VOS.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VOS.pm index 648ba54..c9cf997 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.98'; +our $VERSION = '7.00'; 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 e056d2e..c64b49f 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.98'; +our $VERSION = '7.00'; $ENV{EMXSHELL} = 'sh'; # to run `commands` @@ -128,7 +128,7 @@ sub maybe_command { =item B<init_DIRFILESEP> -Using \ for Windows. +Using \ for Windows, except for "gmake" where it is /. =cut @@ -137,7 +137,8 @@ sub init_DIRFILESEP { # The ^ makes sure its not interpreted as an escape in nmake $self->{DIRFILESEP} = $self->is_make_type('nmake') ? '^\\' : - $self->is_make_type('dmake') ? '\\\\' + $self->is_make_type('dmake') ? '\\\\' : + $self->is_make_type('gmake') ? '/' : '\\'; } @@ -346,27 +347,27 @@ sub dynamic_lib { OTHERLDFLAGS = '.$otherldflags.' INST_DYNAMIC_DEP = '.$inst_dynamic_dep.' -$(INST_DYNAMIC): $(OBJECT) $(MYEXTLIB) $(BOOTSTRAP) $(INST_ARCHAUTODIR)$(DFSEP).exists $(EXPORT_LIST) $(PERL_ARCHIVE) $(INST_DYNAMIC_DEP) +$(INST_DYNAMIC): $(OBJECT) $(MYEXTLIB) $(BOOTSTRAP) $(INST_ARCHAUTODIR)$(DFSEP).exists $(EXPORT_LIST) $(PERL_ARCHIVEDEP) $(INST_DYNAMIC_DEP) '); if ($GCC) { push(@m, q{ }.$DLLTOOL.q{ --def $(EXPORT_LIST) --output-exp dll.exp - $(LD) -o $@ -Wl,--base-file -Wl,dll.base $(LDDLFLAGS) }.$ldfrom.q{ $(OTHERLDFLAGS) $(MYEXTLIB) $(PERL_ARCHIVE) $(LDLOADLIBS) dll.exp + $(LD) -o $@ -Wl,--base-file -Wl,dll.base $(LDDLFLAGS) }.$ldfrom.q{ $(OTHERLDFLAGS) $(MYEXTLIB) "$(PERL_ARCHIVE)" $(LDLOADLIBS) dll.exp }.$DLLTOOL.q{ --def $(EXPORT_LIST) --base-file dll.base --output-exp dll.exp - $(LD) -o $@ $(LDDLFLAGS) }.$ldfrom.q{ $(OTHERLDFLAGS) $(MYEXTLIB) $(PERL_ARCHIVE) $(LDLOADLIBS) dll.exp }); + $(LD) -o $@ $(LDDLFLAGS) }.$ldfrom.q{ $(OTHERLDFLAGS) $(MYEXTLIB) "$(PERL_ARCHIVE)" $(LDLOADLIBS) dll.exp }); } elsif ($BORLAND) { push(@m, q{ $(LD) $(LDDLFLAGS) $(OTHERLDFLAGS) }.$ldfrom.q{,$@,,} .($self->is_make_type('dmake') - ? q{$(PERL_ARCHIVE:s,/,\,) $(LDLOADLIBS:s,/,\,) } + ? q{"$(PERL_ARCHIVE:s,/,\,)" $(LDLOADLIBS:s,/,\,) } .q{$(MYEXTLIB:s,/,\,),$(EXPORT_LIST:s,/,\,)} - : q{$(subst /,\,$(PERL_ARCHIVE)) $(subst /,\,$(LDLOADLIBS)) } + : q{"$(subst /,\,$(PERL_ARCHIVE))" $(subst /,\,$(LDLOADLIBS)) } .q{$(subst /,\,$(MYEXTLIB)),$(subst /,\,$(EXPORT_LIST))}) .q{,$(RESFILES)}); } else { # VC push(@m, q{ $(LD) -out:$@ $(LDDLFLAGS) }.$ldfrom.q{ $(OTHERLDFLAGS) } - .q{$(MYEXTLIB) $(PERL_ARCHIVE) $(LDLOADLIBS) -def:$(EXPORT_LIST)}); + .q{$(MYEXTLIB) "$(PERL_ARCHIVE)" $(LDLOADLIBS) -def:$(EXPORT_LIST)}); # Embed the manifest file if it exists push(@m, q{ @@ -401,6 +402,7 @@ sub init_linker { my $self = shift; $self->{PERL_ARCHIVE} = "\$(PERL_INC)\\$Config{libperl}"; + $self->{PERL_ARCHIVEDEP} = "\$(PERL_INCDEP)\\$Config{libperl}"; $self->{PERL_ARCHIVE_AFTER} = ''; $self->{EXPORT_LIST} = '$(BASEEXT).def'; } @@ -421,6 +423,29 @@ sub perl_script { return; } +sub can_dep_space { + my $self = shift; + 1; # with Win32::GetShortPathName +} + +=item quote_dep + +=cut + +sub quote_dep { + my ($self, $arg) = @_; + if ($arg =~ / / and not $self->is_make_type('gmake')) { + require Win32; + $arg = Win32::GetShortPathName($arg); + die <<EOF if not defined $arg or $arg =~ / /; +Tried to use make dependency with space for non-GNU make: + '$arg' +Fallback to short pathname failed. +EOF + return $arg; + } + return $self->SUPER::quote_dep($arg); +} =item xs_o @@ -622,16 +647,7 @@ PERLTYPE = $self->{PERLTYPE} } -sub is_make_type { - my($self, $type) = @_; - return !! ($self->make =~ /\b$type(?:\.exe)?$/); -} - 1; __END__ =back - -=cut - - diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win95.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win95.pm index 9c79580..9a8e7d7 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.98'; +our $VERSION = '7.00'; 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 37f0e9e..83c5215 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.98'; +our $VERSION = '7.00'; our @ISA = qw(ExtUtils::MM); { diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm index d2fabf6..b585b99 100644 --- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm +++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm @@ -7,8 +7,12 @@ BEGIN {require 5.006;} require Exporter; use ExtUtils::MakeMaker::Config; +use ExtUtils::MakeMaker::version; # ensure we always have or fake version.pm use Carp; use File::Path; +my $CAN_DECODE = eval { require ExtUtils::MakeMaker::Locale; }; # 2 birds, 1 stone +eval { ExtUtils::MakeMaker::Locale::reinit('UTF-8') } + if $CAN_DECODE and $ExtUtils::MakeMaker::Locale::ENCODING_LOCALE eq 'US-ASCII'; our $Verbose = 0; # exported our @Parent; # needs to be localized @@ -17,8 +21,10 @@ our @MM_Sections; our @Overridable; my @Prepend_parent; 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 = '6.98'; +our $VERSION = '7.00'; $VERSION = eval $VERSION; ## no critic [BuiltinFunctions::ProhibitStringyEval] # Emulate something resembling CVS $Revision$ @@ -36,6 +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}; full_setup(); @@ -250,14 +257,12 @@ my $PACKNAME = 'PACK000'; sub full_setup { $Verbose ||= 0; - my @attrib_help = qw/ + my @dep_macros = qw/ + PERL_INCDEP PERL_ARCHLIBDEP PERL_ARCHIVEDEP + /; - AUTHOR ABSTRACT ABSTRACT_FROM BINARY_LOCATION - C CAPI CCFLAGS CONFIG CONFIGURE DEFINE DIR DISTNAME DISTVNAME - DL_FUNCS DL_VARS - EXCLUDE_EXT EXE_FILES FIRST_MAKEFILE - FULLPERL FULLPERLRUN FULLPERLRUNINST - FUNCLIST H IMPORTS + my @fs_macros = qw/ + FULLPERL XSUBPPDIR INST_ARCHLIB INST_SCRIPT INST_BIN INST_LIB INST_MAN1DIR INST_MAN3DIR INSTALLDIRS @@ -273,22 +278,41 @@ sub full_setup { PERL_LIB PERL_ARCHLIB SITELIBEXP SITEARCHEXP - INC INCLUDE_EXT LDFROM LIB LIBPERL_A LIBS LICENSE - LINKTYPE MAKE MAKEAPERL MAKEFILE MAKEFILE_OLD MAN1PODS MAN3PODS MAP_TARGET + MAKE LIBPERL_A LIB PERL_SRC PERL_INC + PPM_INSTALL_EXEC PPM_UNINSTALL_EXEC + PPM_INSTALL_SCRIPT PPM_UNINSTALL_SCRIPT + /; + + my @attrib_help = qw/ + + AUTHOR ABSTRACT ABSTRACT_FROM BINARY_LOCATION + C CAPI CCFLAGS CONFIG CONFIGURE DEFINE DIR DISTNAME DISTVNAME + DL_FUNCS DL_VARS + EXCLUDE_EXT EXE_FILES FIRST_MAKEFILE + FULLPERLRUN FULLPERLRUNINST + FUNCLIST H IMPORTS + + INC INCLUDE_EXT LDFROM LIBS LICENSE + LINKTYPE MAKEAPERL MAKEFILE MAKEFILE_OLD MAN1PODS MAN3PODS MAP_TARGET META_ADD META_MERGE MIN_PERL_VERSION BUILD_REQUIRES CONFIGURE_REQUIRES MYEXTLIB NAME NEEDS_LINKING NOECHO NO_META NO_MYMETA NO_PACKLIST NO_PERLLOCAL NORECURS NO_VC OBJECT OPTIMIZE PERL_MALLOC_OK PERL PERLMAINCC PERLRUN PERLRUNINST PERL_CORE - PERL_SRC PERM_DIR PERM_RW PERM_RWX MAGICXS - PL_FILES PM PM_FILTER PMLIBDIRS PMLIBPARENTDIRS POLLUTE PPM_INSTALL_EXEC PPM_UNINSTALL_EXEC - PPM_INSTALL_SCRIPT PPM_UNINSTALL_SCRIPT PREREQ_FATAL PREREQ_PM PREREQ_PRINT PRINT_PREREQ + PERM_DIR PERM_RW PERM_RWX MAGICXS + PL_FILES PM PM_FILTER PMLIBDIRS PMLIBPARENTDIRS POLLUTE + PREREQ_FATAL PREREQ_PM PREREQ_PRINT PRINT_PREREQ SIGN SKIP TEST_REQUIRES TYPEMAPS UNINST VERSION VERSION_FROM XS XSOPT XSPROTOARG XS_VERSION clean depend dist dynamic_lib linkext macro realclean tool_autosplit + MAN1EXT MAN3EXT + MACPERL_SRC MACPERL_LIB MACLIBS_68K MACLIBS_PPC MACLIBS_SC MACLIBS_MRC MACLIBS_ALL_68K MACLIBS_ALL_PPC MACLIBS_SHARED /; + push @attrib_help, @fs_macros; + @macro_fsentity{@fs_macros, @dep_macros} = (1) x (@fs_macros+@dep_macros); + @macro_dep{@dep_macros} = (1) x @dep_macros; # IMPORTS is used under OS/2 and Win32 @@ -449,7 +473,7 @@ sub new { # simulate "use warnings FATAL => 'all'" for vintage perls die @_; }; - version->parse( $self->{MIN_PERL_VERSION} ) + version->new( $self->{MIN_PERL_VERSION} ) }; $self->{MIN_PERL_VERSION} = $normal if defined $normal && !$@; } @@ -502,7 +526,7 @@ END if ( defined $required_version && $required_version =~ /^v?[\d_\.]+$/ || $required_version !~ /^v?[\d_\.]+$/ ) { require version; - my $normal = eval { version->parse( $required_version ) }; + my $normal = eval { version->new( $required_version ) }; $required_version = $normal if defined $normal; } $installed_file = $prereq; @@ -585,10 +609,7 @@ END $self->{$key} = $self->{PARENT}{$key}; - unless ($Is_VMS && $key =~ /PERL$/) { - $self->{$key} = $self->catdir("..",$self->{$key}) - unless $self->file_name_is_absolute($self->{$key}); - } else { + if ($Is_VMS && $key =~ /PERL$/) { # PERL or FULLPERL will be a command verb or even a # command with an argument instead of a full file # specification under VMS. So, don't turn the command @@ -598,6 +619,14 @@ END $cmd[1] = $self->catfile('[-]',$cmd[1]) unless (@cmd < 2) || $self->file_name_is_absolute($cmd[1]); $self->{$key} = join(' ', @cmd); + } else { + my $value = $self->{$key}; + # not going to test in FS so only stripping start + $value =~ s/^"// if $key =~ /PERL$/; + $value = $self->catdir("..", $value) + unless $self->file_name_is_absolute($value); + $value = qq{"$value} if $key =~ /PERL$/; + $self->{$key} = $value; } } if ($self->{PARENT}) { @@ -821,7 +850,7 @@ END foreach my $key (sort keys %$att){ next if $key eq 'ARGS'; - my ($v) = neatvalue($att->{$key}); + my $v; if ($key eq 'PREREQ_PM') { # CPAN.pm takes prereqs from this field in 'Makefile' # and does not know about BUILD_REQUIRES @@ -938,6 +967,7 @@ sub check_manifest { sub parse_args{ my($self, @args) = @_; + @args = map { Encode::decode(locale => $_) } @args if $CAN_DECODE; foreach (@args) { unless (m/(.*?)=(.*)/) { ++$Verbose if m/^verb/; @@ -1162,6 +1192,10 @@ sub flush { unlink($finalname, "MakeMaker.tmp", $Is_VMS ? 'Descrip.MMS' : ()); open(my $fh,">", "MakeMaker.tmp") or die "Unable to open MakeMaker.tmp: $!"; + if ($] > 5.008 and $Config{useperlio}) { + binmode $fh, ':utf8'; + binmode $fh, ':encoding(locale)' if $CAN_DECODE; + } for my $chunk (@{$self->{RESULT}}) { print $fh "$chunk\n" @@ -1242,28 +1276,62 @@ sub neatvalue { push @m, "]"; return join "", @m; } - return "$v" unless $t eq 'HASH'; + return $v unless $t eq 'HASH'; my(@m, $key, $val); - while (($key,$val) = each %$v){ + for my $key (sort keys %$v) { last unless defined $key; # cautious programming in case (undef,undef) is true - push(@m,"$key=>".neatvalue($val)) ; + push @m,"$key=>".neatvalue($v->{$key}); } return "{ ".join(', ',@m)." }"; } +sub _find_magic_vstring { + my $value = shift; + return $value if $UNDER_CORE; + 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; +} + + # Look for weird version numbers, warn about them and set them to 0 # before CPAN::Meta chokes. sub clean_versions { my($self, $key) = @_; - my $reqs = $self->{$key}; for my $module (keys %$reqs) { - my $version = $reqs->{$module}; - - if( !defined $version or $version !~ /^v?[\d_\.]+$/ ) { - carp "Unparsable version '$version' for prerequisite $module"; + my $v = $reqs->{$module}; + my $printable = _find_magic_vstring($v); + $v = $printable if length $printable; + my $version = eval { + local $SIG{__WARN__} = sub { + # simulate "use warnings FATAL => 'all'" for vintage perls + die @_; + }; + version->new($v)->stringify; + }; + if( $@ || $reqs->{$module} eq '' ) { + if ( $] < 5.008 && $v !~ /^v?[\d_\.]+$/ ) { + $v = sprintf "v%vd", $v unless $v eq ''; + } + carp "Unparsable version '$v' for prerequisite $module"; $reqs->{$module} = 0; } + else { + $reqs->{$module} = $version; + } } } @@ -1318,15 +1386,19 @@ won't have to face the possibly bewildering errors resulting from using the wrong one. On POSIX systems, that program will likely be GNU Make; on Microsoft -Windows, it will be either Microsoft NMake or DMake. Note that this -module does not support generating Makefiles for GNU Make on Windows. +Windows, it will be either Microsoft NMake, DMake or GNU Make. See the section on the L</"MAKE"> parameter for details. -MakeMaker is object oriented. Each directory below the current +ExtUtils::MakeMaker (EUMM) is object oriented. Each directory below the current directory that contains a Makefile.PL is treated as a separate object. This makes it possible to write an unlimited number of Makefiles with a single invocation of WriteMakefile(). +All inputs to WriteMakefile are Unicode characters, not just octets. EUMM +seeks to handle all of these correctly. It is currently still not possible +to portably use Unicode characters in module names, because this requires +Perl to handle Unicode filenames, which is not yet the case on Windows. + =head2 How To Write A Makefile.PL See L<ExtUtils::MakeMaker::Tutorial>. @@ -2195,6 +2267,20 @@ own. META_MERGE will merge its value with the default. Unless you want to override the defaults, prefer META_MERGE so as to get the advantage of any future defaults. +Where prereqs are concerned, if META_MERGE is used, prerequisites are merged +with their counterpart C<WriteMakefile()> argument +(PREREQ_PM is merged into {prereqs}{runtime}{requires}, +BUILD_REQUIRES into C<{prereqs}{build}{requires}>, +CONFIGURE_REQUIRES into C<{prereqs}{configure}{requires}>, +and TEST_REQUIRES into C<{prereqs}{test}{requires})>. +When prereqs are specified with META_ADD, the only prerequisites added to the +file come from the metadata, not C<WriteMakefile()> arguments. + +Note that these configuration options are only used for generating F<META.yml> +and F<META.json> -- they are NOT used for F<MYMETA.yml> and F<MYMETA.json>. +Therefore data in these fields should NOT be used for dynamic (user-side) +configuration. + By default CPAN Meta specification C<1.4> is used. In order to use CPAN Meta specification C<2.0>, indicate with C<meta-spec> the version you want to use. @@ -2232,9 +2318,9 @@ name of the library (see SDBM_File) The package representing the distribution. For example, C<Test::More> or C<ExtUtils::MakeMaker>. It will be used to derive information about -the distribution such as the L<DISTNAME>, installation locations +the distribution such as the L</DISTNAME>, installation locations within the Perl library and where XS files will be looked for by -default (see L<XS>). +default (see L</XS>). C<NAME> I<must> be a valid Perl package name and it I<must> have an associated C<.pm> file. For example, C<Foo::Bar> is a valid C<NAME> @@ -3092,6 +3178,12 @@ If no $default is provided an empty string will be used instead. =back **** PATCH TRUNCATED AT 2000 LINES -- 1892 NOT SHOWN **** -- Perl5 Master Repository
