Subject: Re: perl modules need better, non-open dependencies
To: Jeremy C. Reed <reed@reedmedia.net>
From: Frederick Bruckman <fredb@immanent.net>
List: tech-pkg
Date: 04/10/2004 08:38:35
On Fri, 9 Apr 2004, Jeremy C. Reed wrote:

> On Sat, 10 Apr 2004, grant beattie wrote:
>
> > what planet is your perl installation on if it's looking in both 5.8.3
> > *and* 5.6.1 directories? that certainly doesn't seem right.
>
> This is perl built from pkgsrc:

> Characteristics of this binary (from libperl):
>   Compile-time options: DEBUGGING USE_LARGE_FILES
>   Built under linux
>   Compiled at Apr  6 2004 19:21:24
>   @INC:
>     /usr/lib/perl5/site_perl/5.8.3/i386-linux
>     /usr/lib/perl5/site_perl/5.8.3
>     /usr/lib/perl5/site_perl/5.6.1
>     /usr/lib/perl5/site_perl
>     /usr/lib/perl5/5.8.3/i386-linux
>     /usr/lib/perl5/5.8.3
>     .

Here's one that wasn't built from pkgsrc:

Characteristics of this binary (from libperl):
  Compile-time options: USE_LARGE_FILES
  Built under netbsd
  Compiled at Feb 29 2004 09:43:20
  @INC:
    /usr/mm/lib/perl5/site_perl/5.8.3/i386-netbsd
    /usr/mm/lib/perl5/site_perl/5.8.3
    /usr/mm/lib/perl5/site_perl/5.8.0/i386-netbsd
    /usr/mm/lib/perl5/site_perl/5.8.0
    /usr/mm/lib/perl5/site_perl
    /usr/mm/lib/perl5/5.8.3/i386-netbsd
    /usr/mm/lib/perl5/5.8.3
    /usr/mm/lib/perl5/site_perl/5.8.3/i386-netbsd
    /usr/mm/lib/perl5/site_perl/5.8.3
    /usr/mm/lib/perl5/site_perl/5.8.0/i386-netbsd
    /usr/mm/lib/perl5/site_perl/5.8.0
    /usr/mm/lib/perl5/site_perl

(5.8.0 was installed first, then later upgraded to 5.8.3.) Further
inspection shows that ".../site_perl" has only third-party and
CPAN-installed modules. So I infer that it's a *feature*, so you don't
have to reinstall all your third party modules after upgrading perl.

The build-time indeterminism in pkgsrc perl is from pkgsrc abusing
"site_perl" for packaged modules, when we should rather be using the
"vendor" directories for that. It's easy enough to set that in the top
level pkgsrc Makefile. I haven't looked at what modification would be
required to the module packages.

If we were to put all the modules in designated "vendorlib" and
"vendorprefix" directories, then the site_perl gathering would be
mostly irrelevant, unless you use CPAN on your pkgsrc perl, in which
case it would mostly just work.

Frederick