Author: torsten
Date: Thu Feb 24 12:08:05 2011
New Revision: 1074122

URL: http://svn.apache.org/viewvc?rev=1074122&view=rev
Log:
Check the ExtUtils::Embed version in Apache2::Build,
see http://www.gossamer-threads.com/lists/modperl/modperl/102740#102740

Modified:
    perl/modperl/trunk/Changes
    perl/modperl/trunk/lib/Apache2/Build.pm

Modified: perl/modperl/trunk/Changes
URL: 
http://svn.apache.org/viewvc/perl/modperl/trunk/Changes?rev=1074122&r1=1074121&r2=1074122&view=diff
==============================================================================
--- perl/modperl/trunk/Changes (original)
+++ perl/modperl/trunk/Changes Thu Feb 24 12:08:05 2011
@@ -12,6 +12,8 @@ Also refer to the Apache::Test changes l
 
 =item 2.0.6-dev
 
+Check for the right ExtUtils::Embed version during build [Torsten Foertsch]
+
 Take a lesson from rt.cpan.org #66085 and pass LD_LIBRARY_PATH if mod_env
 is present.  Should prevent test failures on some platforms.
 [Fred Moyer]

Modified: perl/modperl/trunk/lib/Apache2/Build.pm
URL: 
http://svn.apache.org/viewvc/perl/modperl/trunk/lib/Apache2/Build.pm?rev=1074122&r1=1074121&r2=1074122&view=diff
==============================================================================
--- perl/modperl/trunk/lib/Apache2/Build.pm (original)
+++ perl/modperl/trunk/lib/Apache2/Build.pm Thu Feb 24 12:08:05 2011
@@ -27,6 +27,42 @@ use File::Basename;
 use ExtUtils::Embed ();
 use File::Copy ();
 
+BEGIN {                                # check for a sane ExtUtils::Embed
+    unless ($ENV{MP_USE_MY_EXTUTILS_EMBED}) {
+       my ($version, $path)=(ExtUtils::Embed->VERSION,
+                             $INC{q{ExtUtils/Embed.pm}});
+       my $msg=<<"EOF";
+I have found ExtUtils::Embed $version at
+
+  $path
+
+This is probably not the right one for this perl version. Please make sure
+there is only one version of this module installed and that it is the one
+that comes with this perl version.
+
+If you insist on using the ExtUtils::Embed as is set the environment
+variable MP_USE_MY_EXTUTILS_EMBED=1 and try again.
+
+EOF
+       if (eval {require Module::CoreList}) {
+           my $req=$Module::CoreList::version{$]}->{q/ExtUtils::Embed/};
+           die "Please repair your Module::CoreList" unless $req;
+           unless ($version eq $req) {
+               $msg.=("Details: expecting ExtUtils::Embed $req ".
+                      "(according to Module::CoreList)\n\n");
+               die $msg;
+           }
+       }
+       else {
+           my $req=$Config{privlib}.'/ExtUtils/Embed.pm';
+           unless ($path eq $req) {
+               $msg.="Details: expecting ExtUtils::Embed at $req\n\n";
+               die $msg;
+           }
+       }
+    }
+}
+
 use constant IS_MOD_PERL_BUILD => grep 
     { -e "$_/Makefile.PL" && -e "$_/lib/mod_perl2.pm" } qw(. ..);
 


Reply via email to