Hi all,

Got one reply, which was all I needed. I actually had the right idea,
which was to either put the ncurses stuff (or symlink it) in /usr/lib 
(I did try this - at least I thought I did ...), or  to compile in a runtime 
library path - I had been using ld -L/usr/local/lib, but as was pointed 
out to me (and as the man page says ...) actually -R/usr/local/lib is 
needed also.

I tried both solutions: symlinking libncurses to /usr/lib works fine,
but that's painful to do on every machine, so I reconfigured instead
using

env LDFLAGS='-L/usr/local/lib -R/usr/local/lib' ./configure

recompiled and reinstalled, and it works perfectly.

However, I still don't understand why ssh worked fine out of the 
box on some Solaris 7 machines and not on others. Yes, they are
not going to be identical, but I set up all the machines and I am 
almost obsessed with putting 3rd-party stuff on /usr/local, which I
then share from a server to all machines. Not only were all the
machines in question using the same ssh binaries, but none of them
had ncurses libraries in /usr/lib. So they should *all* have failed,
as far as I can see. *shrug* - it works now, that's the main thing!

Thanks to: 

David Knight French 

who told me where I was going wrong, and who also pointed out that Solaris 8 
has crle, which is similar to ldconfig on linux and *BSD systems, which
would have been useful here.

Original query follows ...
> Date: Thu, 12 Oct 2000 17:11:44 +1100
> From: Brett Holman <[EMAIL PROTECTED]>
> Subject: ssh2/solaris: libncurses problem
> Reply-To: [EMAIL PROTECTED]
> 
> 
> Hi all,
> 
> I have SSH1/SSH2 (2.3.0) installed on a mostly Solaris 7 cluster 
> (some Solaris 2.4 and Tru64 4.0F also). With the Solaris hosts I 
> keep getting these messages with ss2h/scp2/sftp2 etc just before the
> password is asked for:
> 
> ld.so.1: ssh-signer2: fatal: libncurses.so.5: open failed: No such
> file or directory
> 
> This not fatal (despite what it says), except for sftp2, where the 
> following additional message is observed, after the password prompt:
> 
> ld.so.1: sftp-server: fatal: libncurses.so.5: open failed: No such
> file or directory
>           Warning: ssh_packet_wrapper_input: invalid packet received:
> len 1265200240 closing the offending input channel.
> 
> At the sftp> prompt, an 'ls' just hangs forever.
> 
> libncurses.so.5 *does* exist, in /usr/local/lib. It seems to be 
> something to do with the SUID nature of ssh-signer2 - the
> value of LD_LIBRARY_PATH is not passed when SUID binaries are
> executed, and the problem doesn't occur when I try it as root
> (with same environment variables etc). It doesn't happen between
> my Tru64 hosts, or going from Tru64 to Solaris, but happens nearly
> always going from Solaris to any other hosts. The exceptions are:
> (1) one Solaris 7 host which should be identical to the others; and
> (2) a very similar cluster (Solaris 7, Tru64 mix) I maintain at 
> another site - the problem doesn't exist there at all, although
> revisions and patch levels are much the same.
> 
> No errors during compile (this is ssh 2.3.0 - same happened with
> 2.2.0), although if I use gcc instead of Sun's cc, there are many
> warnings like this:
> 
> ld: warning: symbol `acs_map' has differing sizes:
>         (file /usr/ccs/lib/libtermcap.so value=0x4; file
> /usr/local/lib/libncurses.so value=0x200);
>         /usr/ccs/lib/libtermcap.so definition taken
> ld: warning: symbol `numnames' has differing sizes:
>         (file /usr/ccs/lib/libtermcap.so value=0x88; file
> /usr/local/lib/libncurses.so value=0xa0);
>         /usr/ccs/lib/libtermcap.so definition taken
> ld: warning: symbol `ospeed' has differing sizes:
>         (file /usr/ccs/lib/libtermcap.so value=0x2; file
> /usr/local/lib/libncurses.so value=0x4);
>         /usr/ccs/lib/libtermcap.so definition taken
> ld: warning: symbol `strcodes' has differing sizes:
>         (file /usr/ccs/lib/libtermcap.so value=0x62c; file
> /usr/local/lib/libncurses.so value=0x67c);
>         /usr/ccs/lib/libtermcap.so definition taken
> ld: warning: symbol `boolfnames' has differing sizes:
>         (file /usr/ccs/lib/libtermcap.so value=0x98; file
> /usr/local/lib/libncurses.so value=0xb4);
>         /usr/ccs/lib/libtermcap.so definition taken
> ld: warning: symbol `boolcodes' has differing sizes:
>         (file /usr/ccs/lib/libtermcap.so value=0x98; file
> /usr/local/lib/libncurses.so value=0xb4);
>         /usr/ccs/lib/libtermcap.so definition taken
> ld: warning: symbol `strnames' has differing sizes:
>         (file /usr/ccs/lib/libtermcap.so value=0x62c; file
> /usr/local/lib/libncurses.so value=0x67c);
>         /usr/ccs/lib/libtermcap.so definition taken
> ld: warning: symbol `ttytype' has differing sizes:
>         (file /usr/ccs/lib/libtermcap.so value=0x400; file
> /usr/local/lib/libncurses.so value=0x100);
>         /usr/ccs/lib/libtermcap.so definition taken
> ld: warning: symbol `boolnames' has differing sizes:
>         (file /usr/ccs/lib/libtermcap.so value=0x98; file
> /usr/local/lib/libncurses.so value=0xb4);
>         /usr/ccs/lib/libtermcap.so definition taken
> ld: warning: symbol `strfnames' has differing sizes:
>         (file /usr/ccs/lib/libtermcap.so value=0x62c; file
> /usr/local/lib/libncurses.so value=0x67c);
>         /usr/ccs/lib/libtermcap.so definition taken
> ld: warning: symbol `numcodes' has differing sizes:
>         (file /usr/ccs/lib/libtermcap.so value=0x88; file
> /usr/local/lib/libncurses.so value=0xa0);
>         /usr/ccs/lib/libtermcap.so definition taken
> ld: warning: symbol `curses_version' has differing types:
>         (file /usr/ccs/lib/libtermcap.so type=OBJT; file
> /usr/local/lib/libncurses.so type=FUNC);
>         /usr/ccs/lib/libtermcap.so definition taken
> ld: warning: symbol `numfnames' has differing sizes:
>         (file /usr/ccs/lib/libtermcap.so value=0x88; file
> /usr/local/lib/libncurses.so value=0xa0);
>         /usr/ccs/lib/libtermcap.so definition taken
> 
> (/usr/ccs/lib/libtermcap.so turns out to be a link to /usr/lib/libcurses.so.1)
> This would seem to be relevant, but I'm not sure how. 
> 
> I've tried updating ncurses, installing GNU termlib, compiling
> with gcc and cc, setting ld -L /usr/local/lib in the Makefiles so the path
> to libncurses is "built in", static linking, putting the ncurses
> libs in /usr/lib, not setting LD_LIBRARY_PATH at all and probably other 
> things I've forgotten by now. Web searches and the archives of this list
> haven't turned up anything so far.
> 
> This is driving me crazy - I can't understand why it compiles
> out the box on one Solaris 7 box and gives me this weird error
> on another, very similar Solaris 7 box. Any help would be 
> very much appreciated!
> 
> Thanks,
> -- 
> ________________________________________________________________________
> Brett Holman                           [EMAIL PROTECTED]
> IT Manager, School of Earth Sciences * IT Support, Astrophysics Group
> The University of Melbourne, Parkville, Victoria 3052, AUSTRALIA
> http://astro.ph.unimelb.edu.au/~bholman/ * Remember: KLAATU BARADA NIKTO
-- 
________________________________________________________________________
Brett Holman                             [EMAIL PROTECTED]
IT Manager, School of Earth Sciences * IT Support, Astrophysics Group
The University of Melbourne, Parkville, Victoria 3052, AUSTRALIA
http://astro.ph.unimelb.edu.au/~bholman/ * Remember: KLAATU BARADA NIKTO

Reply via email to