From: VincentM on
Hi,

I did the upgrade as usual, with my config file. I rebuild the m4
config, etc.
I have a backup but still I would prefer to upgrade completely...

If I do a telnet on my server, it will tell "ESMTP Sendmail
8.13.4/8.13.6"

If I run, this command: "/usr/sbin/sendmail -bt -d0"
The version reported is 8.13.4

Everything works fine, my mail server is running and can send/receive
email, but the binary of sendmail was not upgraded.

I re-compile and here is what I found in the middle of all the
compilation stuff only for sendmail... All other components are
compiling correctly

Making all in:
/usr/local/src/daemons/sendmail-8.13.6/sendmail
Configuration: pfx=, os=Linux, rel=2.4.20-24.7, rbase=2,
rroot=2.4.20-24, arch=i686, sfx=, variant=optimized
Making in
/usr/local/src/daemons/sendmail-8.13.6/obj.Linux.2.4.20-24.7.i686/sendmail
make[1]: Entering directory
`/usr/local/src/daemons/sendmail-8.13.6/obj.Linux.2.4.20-24.7.i686/sendmail'
if [ ! -d /etc/mail ]; then mkdir -p /etc/mail; else :; fi
install -c -o bin -g bin -m 444 helpfile /etc/mail/helpfile
if [ ! -d /etc/mail ]; then mkdir -p /etc/mail; else :; fi
install -c -o root -g bin -m 0600 statistics /etc/mail/statistics
cc -o sendmail -s main.o alias.o arpadate.o bf.o collect.o conf.o
control.o convtime.o daemon.o deliver.o domain.o envelope.o err.o
headers.o macro.o map.o mci.o milter.o mime.o parseaddr.o queue.o
ratectrl.o readcf.o recipient.o sasl.o savemail.o sfsasl.o shmticklib.o
sm_resolve.o srvrsmtp.o stab.o stats.o sysexits.o timers.o tls.o
trace.o udb.o usersmtp.o util.o version.o -lssl -lcrypto -lldap
-llber -lsasl -lcrypt -lgdbm
/usr/local/src/daemons/sendmail-8.13.6/obj.Linux.2.4.20-24.7.i686/libsmutil/libsmutil.a
/usr/local/src/daemons/sendmail-8.13.6/obj.Linux.2.4.20-24.7.i686/libsm/libsm.a
-ldb -lresolv -lcrypt -lnsl -lldap -llber -lsasl -lcrypt -lgdbm -lssl
-lcrypto
sfsasl.o: In function `tls_read':
sfsasl.o(.text+0x7c4): undefined reference to `SSL_get_rfd'
sfsasl.o(.text+0x7cf): undefined reference to `SSL_get_wfd'
sfsasl.o: In function `tls_write':
sfsasl.o(.text+0x9d8): undefined reference to `SSL_get_rfd'
sfsasl.o(.text+0x9e3): undefined reference to `SSL_get_wfd'
collect2: ld returned 1 exit status
make[1]: *** [sendmail] Error 1
make[1]: Leaving directory
`/usr/local/src/daemons/sendmail-8.13.6/obj.Linux.2.4.20-24.7.i686/sendmail'


So the problem seems to be related to OpenSSL. Actually I have two
verisons of OpenSSL on the server, one in "/usr/bin/" and another one
in "/usr/local/bin" The openssl from the distro is old (0.9.6b) and the
custom one is 0.9.7d.

I don't want to remove the openssl in /usr/bin since the system is
build on it and this is a production server. How can I tell sendmail to
look into /usr/local instead of /usr/bin/? Normally, with all other
software packages I was simply specifying which openssl to use and it
worked like a charm. So, anybody can show me the right direction?

Kind regards

From: Per Hedeland on
In article <1143472238.835709.161520(a)g10g2000cwb.googlegroups.com>
"VincentM" <vincent.milette(a)gmail.com> writes:
>sfsasl.o: In function `tls_read':
>sfsasl.o(.text+0x7c4): undefined reference to `SSL_get_rfd'
>sfsasl.o(.text+0x7cf): undefined reference to `SSL_get_wfd'
>sfsasl.o: In function `tls_write':
>sfsasl.o(.text+0x9d8): undefined reference to `SSL_get_rfd'
>sfsasl.o(.text+0x9e3): undefined reference to `SSL_get_wfd'
>collect2: ld returned 1 exit status
>make[1]: *** [sendmail] Error 1
>make[1]: Leaving directory
>`/usr/local/src/daemons/sendmail-8.13.6/obj.Linux.2.4.20-24.7.i686/sendmail'
>
>
>So the problem seems to be related to OpenSSL. Actually I have two
>verisons of OpenSSL on the server, one in "/usr/bin/" and another one
>in "/usr/local/bin" The openssl from the distro is old (0.9.6b) and the
>custom one is 0.9.7d.

Sendmail doesn't care about the openssl *command* that you have in
/usr/local/bin, it wants the right header files and libraries. I think
the default when you install OpenSSL from source is to put things in
/usr/local/ssl/{bin,include,lib}, but of course that can be modified -
you may have it in /usr/local/{bin,include,lib}, in which case putting
this in your site.config.m4 should do the trick:

PREPENDDEF(`confINCDIRS', `-I/usr/local/include')
PREPENDDEF(`confLIBDIRS', `-L /usr/local/lib')

--Per Hedeland
per(a)hedeland.org
From: VincentM on
You are right, it is not related to the binaries, but it was much
easier to explain my problem this way. My apologizes!

I did not try your solution since I received a private replied from
Zorak

Here is what he suggested and it worked perfectly! My problem is solved

>Try adding this to your site.config.m4:
>
> APPENDDEF(`confLIBDIRS', `-L/usr/local/ssl/lib')
> APPENDDEF(`confLDOPTS', ```-Wl,-rpath,/usr/local/ssl/lib''')
> APPENDDEF(`confINCDIRS', `-I/usr/local/ssl/include')
>
> adjust the path names as necessary and rebuild with Build -c.
>
> (you may or may not need the -Wl,-rpath line depending how your OS
> finds dynamic libraries...)

Kind regards

From: Lone Locust of the Apocalypse on
"VincentM" <vincent.milette(a)gmail.com> writes:
>I did not try your solution since I received a private replied from
>Zorak

Per's suggestion and mine amount to the same thing -- the location
of the SSL header files and libs needs to be specified.

>> (you may or may not need the -Wl,-rpath line depending how your OS
>> finds dynamic libraries...)

Also I didn't phrase this quite right :-) ISTR that on some platforms
you don't need the -Wl,-rpath because the -L already does the
equivalent thing.

Anyway, glad your problem is resolved!