[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