On Tue, Jan 31, 2012 at 4:21 AM, Steve Hay <steve...@planit.com> wrote:
> Not entirely successful with a standard build perl either: Initially I
> have httpd.exe crash on startup. Reverting the change made in rev.
> 1145161 for httpd-2.3 fixes that, as I reported once before -
> http://marc.info/?l=apache-modperl-dev&m=132206963528352&w=2. (I'm using
> httpd-2.2.21, which is the current stable version.)
>
> However, I then find that all tests pass but the entire test sequence
> gets re-run again every time it reaches the end, so "nmake test" is
> never-ending! Could that be an Apache-Test problem?
>
> (I did see some warnings produced from the Makefile.PL: both
> Apache-Reload and Apache-SizeLimit complained "Use of uninitialized
> value in concatenation (.) or string at lib/Apache2/Build.pm line 1749"
> and "Note (probably harmless): No library found for
> /src/modules/perl/.lib", and Apache-Test complained "Argument "3.39_01"
> isn't numeric in numeric ge (>=) at ./Makefile.PL line 129" and
> "Unparsable version '' for prerequisite Apache::Test at
> lib/ModPerl/BuildMM.pm line 153".)


Guessing MP_LIBNAME is not getting set correctly.

1747 sub modperl_libs_MSWin32 {
1748     my $self = shift;
1749     "$self->{cwd}/src/modules/perl/$self->{MP_LIBNAME}.lib";
1750 }

Here are the relevant changes from 2.0.5:

svn diff -r1023553 lib/Apache2/Build.pm

Index: lib/Apache2/Build.pm
===================================================================
--- lib/Apache2/Build.pm        (revision 1023553)
+++ lib/Apache2/Build.pm        (working copy)
@@ -27,6 +27,42 @@
 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(. ..);

@@ -240,7 +276,8 @@
 }

 my %threaded_mpms = map { $_ => 1 }
-        qw(worker winnt beos mpmt_os2 netware leader perchild threadpool);
+        qw(worker winnt beos mpmt_os2 netware leader perchild threadpool
+           dynamic);
 sub mpm_is_threaded {
     my $self = shift;
     my $mpm_name = $self->mpm_name();
@@ -255,8 +292,16 @@
     # XXX: hopefully apxs will work on win32 one day
     return $self->{mpm_name} = 'winnt' if WIN32;

-    my $mpm_name = $self->apxs('-q' => 'MPM_NAME');
+    my $mpm_name;

+    # httpd >= 2.3
+    if ($self->httpd_version_as_int =~ m/^2[3-9]\d+/) {
+        $mpm_name = 'dynamic';
+    }
+    else {
+        $mpm_name = $self->apxs('-q' => 'MPM_NAME');
+    }
+
     # building against the httpd source dir
     unless (($mpm_name and $self->httpd_is_source_tree)) {
         if ($self->dir) {
@@ -1108,7 +1153,18 @@

 sub apr_generation {
     my ($self) = @_;
-    return $self->httpd_version_as_int =~ m/2[1-9]\d+/ ? 1 : 0;
+
+    my $httpd_v = $self->httpd_version_as_int;
+
+    if ($httpd_v =~ m/2[4-9]\d+/) {
+        return 2;
+    }
+    elsif ($httpd_v =~ m/2[1-3]\d+/) {
+        return 1;
+    }
+    else {
+        return;
+    }
 }

 # returns an array of apr/apu linking flags (--link-ld --libs) if found
@@ -1168,7 +1224,8 @@
         $self->{$key} = $self->{$mp_key};
     }

-    my $config = $self->apr_generation ? "$what-1-config" : "$what-config";
+    my $apr_generation = $self->apr_generation;
+    my $config = $apr_generation ? "$what-${apr_generation}-config" :
"$what-config";
     if (!$self->{$key}) {
         my @tries = ();
@@ -1536,9 +1593,12 @@

     require ExtUtils::MakeMaker;
     my $mm = bless { @mm_init_vars }, 'MM';
-    $mm->init_main;
-    $mm->init_others;

+    # Fake initialize MakeMaker
+    foreach my $m (qw(init_main init_others init_tools)) {
+        $mm->$m() if $mm->can($m);
+    }
+
     for (qw(rm_f mv ld ar cp test_f)) {
         my $val = $mm->{"\U$_"};
         if ($val) {








>
>
> -----Original Message-----
> From: Steve Hay [mailto:steve...@planit.com]
> Sent: 31 January 2012 09:41
> To: Fred Moyer; mod_perl Dev
> Subject: RE: [RELEASE CANDIDATE]: mod_perl-2.0.6 RC1
>
> The tests are hanging for me - each time it gets as far as
> t/modules/include.t and then hangs. If I kill the hung perl.exe then the
> next test hangs and so on... The error_log contains nothing unusual.
>
> This was using VC++ 2010 on Win7 x64 with httpd-2.2.21 and bleadperl
> (commit 3673acb0ce) built with MYMALLOC and no PERL_IMPLICIT_SYS. I will
> try again with an out-of-the-box configuration of perl.
>
>
> -----Original Message-----
> From: Fred Moyer [mailto:f...@redhotpenguin.com]
> Sent: 31 January 2012 06:41
> To: mod_perl Dev
> Subject: [RELEASE CANDIDATE]: mod_perl-2.0.6 RC1
>
> The mod_perl 2.0.6 first release candidate has arrived! Bundled with
> Apache-Test 1.37, Apache-Reload 0.11, and Apache-SizeLimit 0.96.
>
> Please download, test, and report back on this release candiate.
> Committers please give a +1 if you are satisfied with the results on
> your platform (please report any failing tests you find though still).
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@perl.apache.org For additional
> commands, e-mail: dev-h...@perl.apache.org
>

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@perl.apache.org
For additional commands, e-mail: dev-h...@perl.apache.org

Reply via email to