On Mon, 9 Dec 2002, J.D. Laub wrote:

> This issue was entered into the bug system (see
> http://rt.cpan.org/NoAuth/Bug.html?id=1771)

[Hmm.  Will rt track this without an id in the subject line?  What if I
change the subject line to include a [PATCH] tag?  Hmm.]

[I have cc'd perl5-build because the attached metaconfig patch ought to
be applied so that it will show up in the next version of
Porting/Glossary, and, ultimately, in the documentation for installstyle
in Config.pm.]

> $Config{installstyle} contains either 'lib' (when $Config{prefix}
> contains something like '/opt/perl/') or 'lib/perl5' (when
> $Config{prefix} contains something like '/usr/local/').  MM_Unix
> should utilize the installstyle for the default libstyle instead of
> hardcoding 'lib/perl5'.

I don't think so.  Installstyle was the beginning of an attempt on my part
to rationalize such things, but I eventually gave up because I couldn't
figure out a way to make it completely work.  It was also intended
primarily to be used by hypothetical tools wanting to manipulate an entire
distribution.  Here's a metaconfig patch expanding on the documentation:

--- metaconfig/U/installdirs/installstyle.U     Fri Sep  6 14:07:51 2002
+++ metaconfig/U/installdirs/installstyle.U.new Tue Dec 10 09:26:32 2002
@@ -32,6 +32,22 @@
 ?S:    is useful if $prefix is shared by many packages, e.g. if
 ?S:    $prefix=/usr/local.
 ?S:
+?S:    Unfortunately, while this "style" variable is used to set
+?S:    defaults for all three directory hierarchies (core, vendor, and
+?S:    site), there is no guarantee that the same style is actually
+?S:    appropriate for all those directories.  For example, $prefix
+?S:    might be /opt/perl, but $siteprefix might be /usr/local.
+?S:    (Perhaps, in retrospect, the "lib" style should never have been
+?S:    supported, but it did seem like a nice idea at the time.)
+?S:
+?S:    The situation is even less clear for tools such as MakeMaker
+?S:    that can be used to install additional modules into
+?S:    non-standard places.  For example, if a user intends to install
+?S:    a module into a private directory (perhaps by setting PREFIX on
+?S:    the Makefile.PL command line), then there is no reason to
+?S:    assume that the Configure-time $installstyle setting will be
+?S:    relevant for that PREFIX.
+?S:
 ?S:    This may later be extended to include other information, so
 ?S:    be careful with pattern-matching on the results.
 ?S:

> I ran across this problem while installing under my home dir
> (/home/jdl/perltest/).  After I installed a module that used
> MakeMaker, the modules weren't found because the 'perl5' part of the
> module's install dir wasn't in @INC.  After running the attached
> patch & re-installing the module, things work fine.

Obviously, failing to find a freshly-installed module is bad.  However, 
I'd want to see a precise demonstration of exactly what went wrong before
coming to any conclusion.

In particular, if perl were installed into $prefix=/usr/perl5, such that
installstyle="lib", I would not necessarily want MakeMaker to install my
private modules into ~/lib. I'd probably want it to put them into
~/lib/perl5. 

-- 
    Andy Dougherty              [EMAIL PROTECTED]

Reply via email to