[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index][Thread Index][Top&Search][Original]

Module installation (ExtUtils::Install) in 5.005_03 vs 5.004_04



Hi Nick,

Well, I wish that the powers that be had at least provided for a
mechanism to get the previous behavior. In order to prevent a
potential problem for some careless installers, they have created
problems for careful ones.

It is a given that I build applications like perl for all the
platforms that we support in 'build' directories. Only once the
applications have been thoroughly tested on all platforms,
are the files transferred to the 'production' directories.

Nick, can you think of any reason why I should not comment out
the relevant code in ExtUtils::Install?

Nick Ing-Simmons wrote:

> Ben Pavon <ben.pavon@hsc.hac.com> writes:

> > Hi,
> >
> > We currently have perl5.004_04/Tk800.013 as production.
> >
> > I have noticed some odd behavior while building perl5.005_03/Tk800.017.
> >
> > In order to support multiple UNIX platforms (e.g. Solaris 2.5.1,
> > HP-UX 10.20, etc) in an efficient manner, we separate software into
> > platform independent (/tools/GNU/share) and platform dependent
> > (/tools/GNU/local) directories.
> >
> > The following layout is used for perl5.004_04:
> >
> >   @INC:
> >     /tools/GNU/local/lib/perl5.004
> >     /tools/GNU/share/lib/perl5.004
> >     /tools/GNU/local/lib/site_perl
> >     /tools/GNU/share/lib/site_perl
> >
> > which leads to the following Perl/Tk installation:
> >
> >  /tools/GNU/share/lib/site_perl/Tk.pm
> >  /tools/GNU/share/lib/site_perl/Tk/*
> >  /tools/GNU/share/lib/site_perl/auto/Tk/*
> >
> >  /tools/GNU/local/lib/site_perl/Tk/*
> >  /tools/GNU/local/lib/site_perl/auto/Tk/*
> >
> > After reading the perl5.005_03 documentation, I decided to use
> > the following layout:
> >
> >   @INC:
> >     /tools/GNU/local/lib/perl5.00503
> >     /tools/GNU/share/lib/perl5.00503
> >     /tools/GNU/local/lib/site_perl/perl5.005
> >     /tools/GNU/share/lib/site_perl/perl5.005
> >
> > I was expecting Perl/Tk to populate
> >
> >  /tools/GNU/share/lib/site_perl/perl5.005/Tk.pm
> >  /tools/GNU/share/lib/site_perl/perl5.005/Tk/*
> >  /tools/GNU/share/lib/site_perl/perl5.005/auto/Tk/*
> >
> >  /tools/GNU/local/lib/site_perl/perl5.005/Tk/*
> >  /tools/GNU/local/lib/site_perl/perl5.005/auto/Tk/*
> >
> > Instead the installation was
> >
> >  /tools/GNU/local/lib/site_perl/perl5.005/Tk.pm
> >  /tools/GNU/local/lib/site_perl/perl5.005/Tk/*
> >  /tools/GNU/local/lib/site_perl/perl5.005/auto/Tk/*
> >
> > Any idea why it is so? How can I get the previous behavior?
> >
> > I am including the relevant sections from Config.pm
> >
> > ##### /tools/GNU/local/lib/perl5.00503/Config.pm m|GNU/share|
> >     38: installprivlib='/tools/GNU/share/lib/perl5.00503'
> >     44: privlibexp='/tools/GNU/share/lib/perl5.00503'
> >    442: installman1dir='/tools/GNU/share/man/man1'
> >    443: installman3dir='/tools/GNU/share/lib/perl5.00503/man/man3'
> >    444: installscript='/tools/GNU/share/bin'
> >    446: installsitelib='/tools/GNU/share/lib/site_perl/perl5.005'
> >    481: man1dir='/tools/GNU/share/man/man1'
> >    482: man1direxp='/tools/GNU/share/man/man1'
> >    484: man3dir='/tools/GNU/share/lib/perl5.00503/man/man3'
> >    485: man3direxp='/tools/GNU/share/lib/perl5.00503/man/man3'
> >    528: privlib='/tools/GNU/share/lib/perl5.00503'
> >    537: scriptdir='/tools/GNU/share/bin'
> >    538: scriptdirexp='/tools/GNU/share/bin'
> >    553: sitelib='/tools/GNU/share/lib/site_perl/perl5.005'
> >    554: sitelibexp='/tools/GNU/share/lib/site_perl/perl5.005'
> >
> > ##### /tools/GNU/local/lib/perl5.00503/Config.pm m|GNU/local|
> >     29: archlibexp='/tools/GNU/local/lib/perl5.00503'
> >     37: installarchlib='/tools/GNU/local/lib/perl5.00503'
> >     43: prefix='/tools/GNU/local'
> >     75: archlib='/tools/GNU/local/lib/perl5.00503'
> >     80: bin='/tools/GNU/local/bin'
> >     81: binexp='/tools/GNU/local/bin'
> >    441: installbin='/tools/GNU/local/bin'
> >    445: installsitearch='/tools/GNU/local/lib/site_perl/perl5.005'
> >    514: pager='/tools/GNU/local/bin/less'
> >    527: prefixexp='/tools/GNU/local'
> >    551: sitearch='/tools/GNU/local/lib/site_perl/perl5.005'
> >    552: sitearchexp='/tools/GNU/local/lib/site_perl/perl5.005'
>
> --

>
> It is not Tk specific.
>
> MakeMaker has 'decided' that all the .pm files for an extension
> with binaries go in the same place as the binaries.
>
> It makes a certain kind of sense - in these days of pm/xs version checks
> it is "safe":
>
> Consider HPUX and Solaris (say) sharing a .../share/...
> As soon as you install Tk800.017 on HPUX any apps on the Solaris
> box (still has Tk800.014 in its .../local/...) will start to fail
> until such time as Tk800.017 is installed there too.
>
> No fun to be hauled up in front of a VP when the
> crashed app. looses 3 weeks work and costs money in penalty clauses.
>
> I reclaim the space by hard linking the the .pm files to each other.
>
> --
> Nick Ing-Simmons <nik@tiuk.ti.com>
> Via, but not speaking for: Texas Instruments Ltd.

--
__END__

------------------------------------------------------------------------
  Ben Pavon 310.364.9827                         ben.pavon@hsc.hac.com
------------------------------------------------------------------------

Benny says "Do it right, do it once!"



Follow-Ups from:
Nick Ing-Simmons <nick@ing-simmons.net>

[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index][Thread Index][Top&Search][Original]