[prev in list] [next in list] [prev in thread] [next in thread] 

List:       perl5-porters
Subject:    bundling modules (was Re: Perl 5.10.1)
From:       Nicholas Clark <nick () ccl4 ! org>
Date:       2009-06-30 14:43:33
Message-ID: 20090630144333.GB33745 () plum ! flirble ! org
[Download RAW message or body]

On Wed, Jun 24, 2009 at 12:14:23PM +0200, Rafael Garcia-Suarez wrote:
> 2009/6/24 Ovid :
> > So Nick's suggestion of bundling everything is a compromise for those (like
> > myself) who would like to see the core language brought into the modern age
> > (it's soooooo close ... :) and those (like yourself) who have a more
> > conservative approach that's likely to be reassuring to existing code bases
> > (the darkpan is important).
> 
> A bundle is good, but when producing a bundle, keep in mind a couple of
> points:
> 
> * until 5.12 and its re-ordered @INC is out, modules distributed with
> the core can't be superseded by newer versions without overwriting the
> files, which is a big problem if you're installing the whole bundle as
> a single rpm (for example)

I believe that this can be mitigated by configuring with a vendor prefix,
and installing the bundled modules to that, rather than either "perl",
or "siteperl"

Additionally, if OS vendors did this for <5.11, they'd avoid a lot of the
shadowing, aliasing and overwriting problems that currently happen.

I just built maint-5.10 with

./Configure -Dcc=ccache\ gcc -Dld=gcc -Dprefix=~/Sandpit/snap5.9.x-$patch  \
-Dvendorprefix=~/Sandpit/snap5.9.x-$patch -de && make -j3 perl

and I get this:

  @INC:
    lib
    /home/nicholas/Sandpit/snap5.9.x-37847/lib/perl5/5.10.0/i686-linux
    /home/nicholas/Sandpit/snap5.9.x-37847/lib/perl5/5.10.0
    /home/nicholas/Sandpit/snap5.9.x-37847/lib/perl5/site_perl/5.10.0/i686-linux
    /home/nicholas/Sandpit/snap5.9.x-37847/lib/perl5/site_perl/5.10.0
    /home/nicholas/Sandpit/snap5.9.x-37847/lib/perl5/vendor_perl/5.10.0/i686-linux
    /home/nicholas/Sandpit/snap5.9.x-37847/lib/perl5/vendor_perl/5.10.0
    /home/nicholas/Sandpit/snap5.9.x-37847/lib/perl5/vendor_perl
    .


hence bundled modules installed to .../vendor_perl can be overridden by
the user installing to site_perl. As best I can see, there's no reason not
to do this if you're planning on bundling modules, *and* planning on letting
(or coping with) your end users upgrading them too.

Nicholas Clark


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic