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

Reply via email to