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