develooper Front page | perl.perl5.porters | Postings from March 2003

rfc: a generic solution for dual-life CPAN packages

From:
Stas Bekman
Date:
March 25, 2003 19:45
Subject:
rfc: a generic solution for dual-life CPAN packages
Message ID:
3E8121DE.7000702@stason.org
Currently CPAN.pm has a special logic to make sure that if a requested package 
is found in the core perl distribution and in another package, that another 
package takes the precedence if its VERSION number is the same or higher than 
the VERSION number of that package in the core perl distro.

Now I working on a helper package for mod_perl CPAN modules (to reduce the 
craft in Makefile.PL) and I want it to be on CPAN, but also include it in the 
mod_perl 1.0 and 2.0 core (also living on CPAN). I foresee a problem with 
CPAN.pm, as it's going to see the same package in 3 different packages and 
which is going to be picked by CPAN.pm is undefined, since we have no special 
case logic for mod_perl-core packages. And we don't want CPAN.pm to try to 
install mod_perl 1.0, when I just want to fetch that single package.

I suppose that this will always do the right thing if the standalone package 
will have a higher version, than the one in the core, but that's not a good 
solution, since it'll require an unnecessary update on user's behalf and it 
creates a lot of confusion.

What should be the right approach?

Perhaps, we have to introduce a new special package variable, recognized by 
CPAN and CPANPLUS (and search.cpan.org), to designate the MASTER package. e.g. 
if the master package name is ModPerl-Foo, ModPerl/Foo.pm will include:

$CPAN_MASTER_PACKAGE = 'ModPerl-Foo';

notice that this is 'ModPerl-Foo' and not 'ModPerl::Foo', because it lets CPAN 
to make the right choice between these three packages that include ModPerl::Foo:

mod_perl-1.27.tgz
mod_perl-1.99_09.tgz
ModPerl-Foo-0.01.tgz

we want ModPerl-Foo-0.01.tgz to be picked.

Once we have this logic in place, we no longer need to make a special case for 
the perl core, but let every package that has a dual (or a ternary) life 
define its master package.

__________________________________________________________________
Stas Bekman            JAm_pH ------> Just Another mod_perl Hacker
http://stason.org/     mod_perl Guide ---> http://perl.apache.org
mailto:stas@stason.org http://use.perl.org http://apacheweek.com
http://modperlbook.org http://apache.org   http://ticketmaster.com




nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About