Torsten Foertsch wrote:
> Hi,
> 
> is this really necessary in mod_perl2.pm?

I think the decision was made because a ton of legacy applications (like
CGI.pm) would be looking for $mod_perl::VERSION to decide which generation
they were after.  whether this is a good idea or not... well, taking it away
now is probably a bad thing, so let's keep it, especially since that's not
the real problem...

see, $mod_perl::VERSION would report as a 2.0 version if someone
specifically loaded mod_perl2.pm.  now, there's no reason for libapreq-1.33
to be doing that since it's specifically for mp1, which means...

> 
> $mod_perl::VERSION = $mod_perl2::VERSION;
> $INC{"mod_perl.pm"} = File::Spec::Functions::devnull(); 
> 
> It makes libapreq fail to build when mp1 and mp2 are installed.
> 
> 0 [EMAIL PROTECTED]:~/work/libapreq-1.33$ perl Makefile.PL
> mod_perl 1.x ( < 1.99) is required at Makefile.PL line 34.
> BEGIN failed--compilation aborted at Makefile.PL line 36.

the problem is actually in Apache-Test - Apache::Test tries to load up a
bunch of mp2 classes when it itself is loaded, thus taking over the
mod_perl.pm slot in %INC.  we've run into this problem before with
$mod_perl::VERSION incorrectly lingering and have tried to correct for it,
but apparently it didn't work.

so, please try the attached patch to Apache::Test.  hopefully this fixes
things once and for all (without breaking more stuff :)

--Geoff
Index: lib/Apache/Test.pm
===================================================================
--- lib/Apache/Test.pm	(revision 329848)
+++ lib/Apache/Test.pm	(working copy)
@@ -22,6 +22,18 @@
 use Config;
 use Apache::TestConfig ();
 
+BEGIN {
+    # Apache::Test loads a bunch of mp2 stuff while getting itself
+    # together.  because we need to choose one of mp1 or mp2 to load
+    # check first (and we choose mp2) $mod_perl::VERSION == 2.0
+    # just because someone loaded Apache::Test.  This Is Bad.  so,
+    # let's try to correct for that here by removing mod_perl from
+    # %INC after the above use() statements settle in.  nobody 
+    # should be relying on us loading up mod_perl.pm anyway...
+
+    delete $INC{'mod_perl.pm'};
+}
+
 use vars qw(@ISA @EXPORT %EXPORT_TAGS $VERSION %SubTests @SkipReasons);
 
 $VERSION = '1.28';

Reply via email to