cURL / Mailing Lists / curl-users / Single Mail

curl-users

RE: Can't get curl to compile with SSL option, PLEASE HELP!!!

From: <sales_at_nitromax.com>
Date: Thu, 18 Nov 2004 04:03:19 -0600

 
Well, still having trouble... I have followed your directions below, and
here's what happens...

cd openssl-0.9.7e
  ./config no-shared
  make
  make install

That part works fine. Then curl-7.12.2

./configure --with-ssl=/usr/local/ssl
  make

The result of make is this at the end:

gcc -g -O2 -o .libs/curl main.o hugehelp.o urlglob.o writeout.o writeenv.o
getpass.o homedir.o strtoofft.o timeval.o -L/usr/local/ssl/lib
../lib/.libs/libcurl.so -lssl -lcrypto -ldl -lz -Wl,--rpath
-Wl,/usr/local/lib
../lib/.libs/libcurl.so: undefined reference to `DES_set_odd_parity'
../lib/.libs/libcurl.so: undefined reference to `UI_OpenSSL'
../lib/.libs/libcurl.so: undefined reference to `DES_set_key'
../lib/.libs/libcurl.so: undefined reference to `DES_ecb_encrypt'
collect2: ld returned 1 exit status
make[2]: *** [curl] Error 1
make[2]: Leaving directory `/backup/system/curl-7.12.0/src'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/backup/system/curl-7.12.0/src'
make: *** [all-recursive] Error 1

The only way I can get around this error, from hours of trying different
things, is to go to delete the /usr/lib/libcrypto.so file which looks like
this:

lrwxrwxrwx 1 root root 29 Nov 17 21:24 libcrypto.so ->
../../lib/libcrypto.so.0.9.6b*

That 9.6b file resides in the /lib directory.

After doing that I run make for curl again and the errors go away, but but
make test just keeps skipping all of the tests. So I had to again run:

./configure --with-ssl=/usr/local/ssl

The result is this:

configure: Configured to build curl/libcurl:

  curl version: 7.12.2
  Host setup: i686-pc-linux-gnu
  Install prefix: /usr/local
  Compiler: gcc
  SSL support: enabled
  zlib support: enabled
  krb4 support: no (--with-krb4*)
  GSSAPI support: no (--with-gssapi)
  SNPEGO support: no (--with-spnego)
  c-ares support: no (--enable-ares)
  ipv6 support: no (--enable-ipv6)
  IDN support: no (--with-libidn)
  Build libcurl: Shared=yes, Static=yes
  Built-in manual: enabled

I then ran make clean, make, and make test, and here's the final resul of
that:

TESTDONE: 205 tests out of 210 reported OK: 97%
TESTFAIL: These test cases failed: 300 301 304 306 509
TESTDONE: 216 tests were considered.
TESTINFO: 6 tests were skipped due to these restraints:
TESTINFO: "curl lacks idn support" 1 times (165)
TESTINFO: "curl lacks netrc_debug support" 5 times (130, 131, 132, 133, 134)
make[1]: *** [quiet-test] Error 1
make[1]: Leaving directory `/backup/system/curl-7.12.2/tests'
make: *** [test] Error 2

Then I ran make install and all seems well. But when I run a command line
like: curl https://somesite.com, I get this:

Segmentation fault (core dumped)

If I configure curl without ssl support all works well, but I don't have ssl
support.

It seems like the key to making the DES errors go away is that libcrypto.so
file. Shouldn't there be an libcrypto.so.0.9.7e executible file like the
libcrypto.so.0.9.6b file? I noticed that while runing the make command for
openssl that there is code displayed while it's compiling that says this:

/usr/bin/ranlib ../libcrypto.a || echo Never mind.
TOP=`pwd`/.. ./fips_check_sha1 fingerprint.sha1 fips.c fips_err_wrapper.c
fips.h fips_err.h
if [ -n "" ]; then \
        (cd ..; make libcrypto.so.0.9.7); \
fi
make[1]: Leaving directory `/backup/system/openssl-0.9.7e/fips'
making all in ssl...

So that gave me the idea to try and run that make statement in the temp
directory where you run the make command for openssl.

 make libcrypto.so.0.9.7

I have tried this and make creates the libcrypto.so symlink to the
libcrypto.so.0.9.7 file, which make also creates, but it makes that stuff
right in the temporary install directory where you unzip openssl and run the
make command. Perhaps the make command is looking to see if the libcrypto.a
file is there, or not, and depending on what it finds, or doesn't find, it
then creates the libcrypto.so.0.9.7. I tried removing the libcrypto.a file
and went thru all the steps over again and nothing.

When I look in the /usr/local directory the ssl directory is actually a
symbolic link as follows:

lrwxrwxrwx 1 root root 4 May 7 2003 ssl -> /usr/

The server I am attempting to get this working on is a RedHat 7.3 system
which is mostly run with Cpanel. I don't' know if that would help any. I
have tried to follow the info found at this web address:
http://rei1.m-plify.net/howtoon-openssl.html. I hope I have not messed
things up now. Bottom line is that I can get curl compiled, just NOT with
SSL support.

I probably have openssl installed in a number of places now. Is there a
fairly simple way of removing them all and then start over fresh? I sure
wish I could figure this out. Do you see anything here that I am missing?
Thanks again for your time in answering my questions!

CR...

 

-----Original Message-----
From: Peter Sylvester [mailto:Peter.Sylvester_at_edelweb.fr]
Sent: Wednesday, November 17, 2004 7:51 AM
To: sales_at_nitromax.com
Subject: RE: Can't get curl to compile with SSL option, PLEASE HELP!!!

It seems that you have several version of
openssl 0.9.6 and 0.9.7 on you machine.

If your include files don't match what you
link against, then you usually have a problem
because no binary compatibility is ensured.

By removing an .so you probably now use a .a
which may not be the version you need.

You have said that you have installed 0.9.7e

Where does it reside?

Do

  gzip -dc openssl-0.9.7e.tar.gz|tar -xf -
  cd openssl-0.9.7e
  ./config no-shared
  make
  make install (need to be root or access to /usr/local/ssl

in curl:

  ./configure --with-ssl=/usr/local/ssl
  make
  make test

at the first gcc line of the make, it should -I/usr/local/ssl/include
Received on 2004-11-18