On Tue, Jan 31, 2012 at 4:21 AM, Steve Hay <[email protected]> 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:[email protected]]
> 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:[email protected]]
> 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: [email protected] For additional
> commands, e-mail: [email protected]
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]