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 {