On Thu, 27 Nov 2003, Stas Bekman wrote: > Randy Kobes wrote: [ ... ] > > Actually, ModPerl::Registry appearing as a > > lib/ModPerl/Registry.pm and Apache::Response appearing as a > > lib/Apache2/Apache/Response.pm does happen with Win32, > > which is different than Unix, where both appear > > under a lib/Apache2/. > > So is that a MakeMaker thing. It's a definite a bug and it needs to be fixed. > > Though I'd check blib/ first. If the two don't reside > under the same directory it may as well be a bug in > ModPerl::BuildMM which arranges for 2.0 modules to be > under Apache2/ subdir.
I think it is a ModPerl::BuildMM thing - this patch ======================================================== Index: lib/ModPerl/BuildMM.pm =================================================================== RCS file: /home/cvs/modperl-2.0/lib/ModPerl/BuildMM.pm,v retrieving revision 1.12 diff -u -r1.12 BuildMM.pm --- lib/ModPerl/BuildMM.pm 11 Sep 2003 01:31:22 -0000 1.12 +++ lib/ModPerl/BuildMM.pm 28 Nov 2003 04:24:26 -0000 @@ -235,7 +235,7 @@ #unless already specified with \$(INST_LIB) #or already in Apache2/ unless ($v =~ /Apache2/) { - $v =~ s|(blib/lib)|$1/Apache2|; + $v =~ s{(blib)(/|\\)(lib)}{$1$2$3$2Apache2}; } $pm->{$k} = $v; ================================================================== arranges for everything to be put under an Apache2/. One consideration about this - if someone has a Win32 build under the current system (where some files are under an Apache2/, and others aren't), and then installs a build with a patch like above applied where everything gets put under an Apache2/, there'll be duplicates of some files. I think using Apache2.pm will pick up the newer files installed under an Apache2/, in preference to the older ones which weren't, as @INC will have D:/Perl/site/lib/Apache2 before D:/Perl/site/lib, so that should be OK. However, perhaps we should think about unlinking the old files not under an Apache2/? > > That's why, if you miss loading > > the Apache2.pm module, ModPerl::Registry is found, > > but not Apache::Response. > > It's just that Patricio's report had: > > (@INC contains: D:/Perl/lib D:/Perl/site/lib . > D:/Apache/Apache2/ D:/Apache/Apache2/lib/perl) > > with Apache2 in it, so for a moment I thought that he had > Apache2 included. I had interpreted that to mean Apache was installed under D:\Apache\Apache2\ (the Win32 installer isn't clear when installing Apache that it will be unpacked into its own directory). > Does the ppm that you maintain include startup.pl or some > other file, where we could include 'use Apache2;' on > behalf of users? I guess they will still have to include > it from httpd.conf, unless you supply the latter and we > should just put it there then. No, it doesn't include a startup.pl - I had thought about that, but was worried about messing with potentially already-present files. What I could do though is, in the post-install script that installs mod_perl.so, have a warning printed out, like you get when building mod_perl, to use Apache2 somewhere. -- best regards, randy -- Reporting bugs: http://perl.apache.org/bugs/ Mail list info: http://perl.apache.org/maillist/modperl.html