There are periodic emailings on the list with Racket's openssl FFI dlopen failing as it does not find the correct version. Specifically the "SSLv23_client_method: implementation not found; no arguments provided" failure.<div>
<div><br></div><div>The following email explains why a simple soft link does not solve this issue. It appears to be an issue with library naming by the OpenSSL folks and ldconfigs caching of the "latest" version.</div>
<div><br></div><div><a href="http://sources.redhat.com/ml/libc-alpha/2004-09/msg00090.html">http://sources.redhat.com/ml/libc-alpha/2004-09/msg00090.html</a><br></div><div><br></div><div>e.g. $ ln -s libssl.so.1.0.0.g libssl.so.1.0 won't work as ldconfig refuses to cache it. One can verify with a ldconfig -p | grep ssl</div>
<div><br></div><div>I'm running Racket stuff on the AWS EC2 cloud and what one gets with the standard EC2 Linux AMI is the following for SSL libraries.</div><div><br></div><div><div>[racket@ip-12-83-65-11 sp]$ ls /usr/lib/*ssl*</div>
<div>-rwxr-xr-x 1 root root 206648 Nov 11 22:50 /usr/lib/libssl3.so</div></div><div><div>lrwxrwxrwx 1 root root 16 Mar 15 18:30 /usr/lib/libssl.so.10 -> libssl.so.1.0.0g</div><div>-rwxr-xr-x 1 root root 346784 Feb 2 17:29 /usr/lib/libssl.so.1.0.0g</div>
</div><div><br></div><div><div>[racket@ip-12-83-65-11 sp]$ ldconfig -p | grep ssl</div><div> libssl3.so (libc6) => /usr/lib/libssl3.so</div><div> libssl.so.10 (libc6) => /usr/lib/libssl.so.10</div></div>
<div><br></div><div>One option is to modify the Racket collection source and add libssl.so.1.0.0g. But I suspect enumerable versions, libssl.so.1.0.0h,i,j... et al to keep popping up pretty regular.</div><div><br></div><div>
However, I assume on purpose for this very issue and not by typo, the standard AWS EC2 Linux image provides a libssl.so.10 soft link (notice ten "10" and not "1.0" ), which is lexically a later version as far as ldconfig is concerned, hence is cached by ldconfig.</div>
<div><br></div><div>Given all that, I'm recommending that libssl.so.10 be added to the list libraries sought by Racket's SSL FFI.</div><div><br></div><div>Ray</div>
</div>