Prev: sendmail 8.13.6 causes lots of "Broken pipe"
Next: Sendmail 8.13.6 - Resource temporarily unavailable
From: VincentM on 27 Mar 2006 10:10 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 27 Mar 2006 17:51 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 29 Mar 2006 10:45 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 29 Mar 2006 15:45
"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! |