I guess we really need to think harder about third party module support. I know I've struggled with this lately as has Stas, although ModPerl::MM::WriteMakefile seems to sorta work.
maybe we should just revisit third party modules alltogether and come up with a feature list and API, then implement from scratch - possibly as a ModPerl::MM subclass or something.
Well, nobody has followed up on my proposal and related problems, so may be you should first take a look at it.
http://marc.theaimsgroup.com/?l=apache-modperl-dev&m=104411330329305&w=2
If I didn't have the questions, I'd have committed it long time ago. Your advice is that I'm after.
since you asked :)
ok, I think what I'd really like to see for third party modules is something as simple as
use ModPerl::MM::Dist qw(WriteMakefile);
WriteMakefile (
# standard MakeMaker stuff
'NAME' => 'Apache::Clean',
'VERSION_FROM' => 'Clean.pm',
'PREREQ_PM' => { HTML::Clean => 0.8,
mod_perl => 1.99 },# override mod_perl specific defaults 'Apache::Test' => 0, # Apache::Test harness is built by default 'AUTO_APACHE2' => 0, # installs to Apache/ or Apache2 by default )
what I'm really talking about is adding a single line to a standard Makefile.PL (the use() one) and everything is good to go automagically. this will ease the burden considerably on module writers.
the overridden_method stuff really doesn't appeal to me, and I can't say that I see why it needs to be that way if we were to design things better (though it may mean more work for us).
can't we just import what we want into the MY:: namespace? my latest Makefile.PL
http://search.cpan.org/src/GEOFF/Apache-Clean-2.02b/Makefile.PL
does everything I want it to - the only thing I can immediately see that's missing are XS hooks. but at any rate, the
*MY::constants = \&ModPerl::MM::MY::constants;
was both essential and worked just fine. can't we do something similar behind the scenes in a subclass so that it's all transparent?
Maybe a good design is to have ModPerl::MM as the base class, then make ::Build for the mod_perl proper build stuff and ::Dist for third party modules (or ::CPAN or something).
anyway, those are my initial thoughts.
--Geoff
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
