>> After telling Configure (I ftp'd the full 5.001n and ran Configure from
>> scratch) to use /usr/local as the prefix, it proceeded to put everything
>> in /usr/local/lib, instead of /usr/local/lib/perl5. Perl puts *way* too
>> much stuff in its lib area to *not* use its own subdir under lib. Maybe this
>> was a goof in Configure?
>
>It certainly wasn't intentional. It might be a side effect of the
>hpux hints file. If you could track this down, I'd appreciate it.
Well, the hpux hints file uses the same values that the old hpux_9 one did.
Running Configure to the point of selecting a library path on both 5.001m
and 5.001n:
* Both times I was offered /opt/perl5 as a default prefix, and entered in
/usr/local instead.
* 5.001m Configure offered /usr/local/lib/perl5 as a default library path.
5.001n Configure offered /usr/local/lib.
Ummmm, wait a minute. The new hints/hpux.sh file actually sets not only prefix,
but privlib, archlib, and man3dir, as well. hints/hpux_9.sh in 5.001m only
set prefix.
Because of this, the eval of prefixit causes dflt to be set to the value of
privlib. Right before the call to prefixit, privlib is still /opt/perl5/lib.
But the default offered is /usr/local/lib. So, since privlib is set, we are
defaulting to a variant of it (in which $oldprefix, /opt/perl5, is stream-
edited into $prefix, /usr/local), instead of the second option for dflt:
lib/$package, where $package is perl5.
Let me back up, I'm confusing myself. :-)
When prefixit is evaluated, $1 .. $3 are (dflt privlib lib/perl5)
First thing, $3 is shown to be neither "" or none, so second case is exec'd
tp is then eval'd to "$oldprefix-$2-", which matches the second case,
resulting in $1 (dflt) being set to $privlib stream-edited to change
oldprefix to prefix, and we get /usr/local/lib from /opt/perl5/lib
In 5.001m, privlib was not set, so:
When prefixit is evaluated, $1 .. $3 are (dflt privlib lib/perl5)
First thing, $3 is shown to be neither "" or none, so second case is exec'd
tp is then eval'd to "$oldprefix-$2-", which matches the first case, since
there is nothing in $privlib to fill in between the two -. As a result,
the eval sets dflt to $prefix/$3, or /usr/local/lib/perl5, which is what
we want.
There are two ways to fix this. One is obvious-- choose to either not give
defaults to privlib and the others, only prefix *OR* default privlib to
/opt/perl5/lib/perl5 so that the result is still correct.
The second is to unset the remaining few defaults iff prefix is altered in
it's turn. That is, when you ask for the prefix to use rather than the default,
and their answer is in fact different from the default, unset privlib, and
probably archlib. The problem here, is, that since the default of prefix
already included "perl5", it was assumed that the rest of the definitions
adequately distinguished their directories as perl5-specific. And they do.
Right up to the point where I changed prefix to no longer contain "perl5".
Wow. My first real "bug". Why on earth did it have to be in Configure? I have
a head-ache... where's my asprin...
Randy
P.S. Upon looking, just before I sent this, I see that leaving man3dir at
its hint/hpux.sh default will still put those pages in /usr/local/man/man3,
again removing any reference to perl5. Whichever route you take, should also
cover this value as well, I suppose.
--
^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^
Randy J. Ray -- U S WEST Technologies IAD/CSS/DPDS Phone: (303)595-2869
Denver, CO rjray@lookout.ecte.uswc.uswest.com
I don't suffer from insanity. I enjoy every minute of it.