Subject: Re: binary package linkage
To: None <port-vax@netbsd.org>
From: James K. Lowden <jklowden@schemamania.org>
List: port-vax
Date: 01/13/2003 19:41:14
On Sun, 12 Jan 2003 15:56:40 -0800 (PDT), Brian Chase <vaxzilla@jarai.org>
wrote:
> On Fri, 10 Jan 2003, Brian Chase wrote:
> > On Fri, 10 Jan 2003, James K. Lowden wrote:
> > > but last night, the report looked like this (from memory):
> > >
> > >          -ltermcap.0 => libtermcap.so.0
> > >          -lintl.0 => libintl.so.0
> > >          -lc.12 => libc.so.12
>
> I've just managed to get my system drive rebuilt.  The very first
> package I've installed is bash-2.05nb1.tgz, and it is working properly
> for me:
> 
>   radiant# rehash
>   radiant# which bash
>   /usr/pkg/bin/bash
>   radiant# ldd /usr/pkg/bin/bash
>   /usr/pkg/bin/bash:
>            -ltermcap.0 => /usr/lib/libtermcap.so.0
>            -lintl.0 => /usr/lib/libintl.so.0
>            -lc.12 => /usr/lib/libc.so.12
>   radiant# bash
>   bash-2.05#

Brian, 

Thanks for checking back with me.  I see my error now; I'm sorry for the
noise.  I hope I didn't cause you any extra effort.   (Actually, it's at
least two errors, the second one being posting anything to a message list
"from memory".)

Retracing my own steps, it seems I fetched the old package, for 1.5, even
though I'm running 1.6.  I was off only by 1/4 inch!   Long story follows,
in case you're interested.  

In the beginning, I fetched:

ftp://ftp.netbsd.org/pub/NetBSD/packages/1.5/vax/All/bash-2.04.tgz

It's still there.  

$ ls /usr/pkgsrc/distfiles/bash*
/usr/pkgsrc/distfiles/bash-2.04.tgz
/usr/pkgsrc/distfiles/bash-2.05b.tar.gz

So, tonight I extracted it into my home directory for examination.  

$ pwd
/usr/users/home/jklowden
$ tar xzf /usr/pkgsrc/distfiles/bash-2.04.tgz bin/bash
$ ldd bin/bash 
bin/bash:
        -ltermcap.0 => not found (0x0)
        -lc.12 => not found (0x0)
[then, to double-check...]
# cd /usr/pkg/bin
# ls bash
bash
# mv bash bash.ok
# mv ~jklowden/bin/bash .
# bash
/usr/libexec/ld.so: bash: libtermcap.so.0.4: No such file or directory
# ldd `which bash`
/usr/pkg/bin/bash:
        -ltermcap.0 => not found (0x0)
        -lc.12 => not found (0x0)
# rm bash
# mv bash.ok bash
# bash
bash-2.05b# exit

I misread or misunderstood the output of ldd.  I saw "-ltermcap.0 => not
found" and thought there was no path information.  See, I thought ldd
would show *requested* libraries, and that the absence of path information
on the left side (of =>) indicated something about how it was linked. 
Evidently not.  Live and learn.  

If the needed libraries were installed, would a NetBSD/VAX binary built
for 1.5 be expected to run on 1.6?  I expect the answer is "yes", but as
you can see I know less about this than I thought I did.  

Thanks again and regards, 

--jkl