I'm having an issue compiling openssh2.9 with non standard paths to
the openssl and zlib libraries on Solaris 7.
I am compiling openssh into /work. I have a openssl in /work/openssl
and a zlib installation in /work/zlib.
I already have a packaged install of zlib and ssl in /usr/local. For
all political and pratical purposes, I am not allowed to use the ones
in /usr/local. I am to use the versions installed in the /work
directory. Let's leave it at that.
# ./configure --prefix=/work/openssh
--with-default-path=/work/openssh:/work/zlib:/work/zlib/lib:/usr/bin:/bin:/usr/sbin:/sbin
--with-cppflags=-I/work/openssl --with-ldflags"=-L/work/zlib/lib
-R/work/openssl -L/work/openssl -R/work/zlib"
--with-ssl-dir=/work/openssl --with-libs=/work/zlib/lib/libz.a
OpenSSH has been configured with the following workions:
User binaries: /work/openssh/bin
etc...
sshd default user PATH:
/work/openssh:/work/zlib/include:/work/zlib/lib:/usr/bin:/bin:/usr/sbin:/sbin
etc...
Compiler: gcc
Compiler flags: -g -O2 -Wall
Preprocessor flags: -I/usr/local/ssl/include -I/usr/local/include
-I/work/openssl/include/
Linker flags: -R/usr/local/ssl/lib -L/usr/local/ssl/lib
-L/usr/local/lib -R/usr/local/lib -L/work/zlib -L/work/openssl/ssl/lib
-R/work/zlib/libz.a
Where is the /usr/local directories from? I can manually remove them
from the Makefile, but that would not explain why they show up
initially. I even took all references to /usr/local out of $PATH and
$LD_LIBRARY_PATH.
If I were to go ahead and compile it I would get a sshd that
links to the libz.so in /usr/local instead of the libz.a in
/work/zlib. The zlib in /work/zlib was compiled from the source and
the "make tests and make install" reported no errors.
# ldd /work/openssh/sbin/sshd
libpam.so.1 => /usr/lib/libpam.so.1
libz.so => /usr/local/lib/libz.so
libsocket.so.1 =>/usr/lib/libsocket.so.1
etc..
I want the ssh binaries to be dependent on the openssl and zlib in
/work instead of the ones installed in /usr/local. Any ideas?
Thanks.