Hi. I have submitted this issue a while back to rt.cpan.org, but I have not gotten any response.
I am the maintainer of Apache::AuthCookie. As most of us probably already know, Apache 2.4 has a very different authentication API from previous Apache versions. As a result, in order to release a version of Apache::AuthCookie that passes tests on Apache 2.4 and previous versions, it is necessary to have conditional config sections that are only enabled for Apache 2.4 or later. Currently Apache::Test defines APACHE2 if running under apache 2.0 or later. The attached patch also defines APACHE24 if running under apache 2 with a minor version >= 4. I shipped a patch for AuthCookie to the debian folks that works under Apache 2.4, but I also need this patch in Apache::Test in order to make it so that the test suite will work on all Apache versions (2.4 as well as 2.2 and earlier) Example in AuthCookie t/conf/extra.conf.in: <IfDefine APACHE24> # Apache 2.4+ Auth API PerlAddAuthzProvider user My::Auth->authz </IfDefine> ... <IfDefine APACHE2> ... <IfDefine !APACHE24> # Pre Apache 2.4 Auth API. PerlAuthzHandler .... </IfDefine> </IfDefine> Hopefully this makes it clear why this is needed, and why I'd like to see this in Apache::Test before mod_perl for apache 2.4 is finalized. Regards, Michael Schout
diff --git a/Apache-Test/lib/Apache/TestServer.pm b/Apache-Test/lib/Apache/TestServer.pm index 254aec6..a3bc3ab 100644 --- a/Apache-Test/lib/Apache/TestServer.pm +++ b/Apache-Test/lib/Apache/TestServer.pm @@ -85,6 +85,15 @@ sub post_config { $self->{rev} = 0; # unknown } + ($self->{revminor}) = $self->{version} =~ m|/\d\.(\d)|; + + if ($self->{revminor}) { + debug "Matched Apache revminor $self->{version} $self->{revminor}"; + } + else { + $self->{revminor} = 0; + } + $self; } @@ -126,7 +135,14 @@ sub pid_file { sub dversion { my $self = shift; - "-D APACHE$self->{rev}"; + + my $dv = "-D APACHE$self->{rev}"; + + if ($self->{rev} == 2 and $self->{revminor} >= 4) { + $dv .= " -D APACHE24"; + } + + return $dv; } sub config_defines {