Skip to content

Instantly share code, notes, and snippets.

@richardkmichael
Last active December 15, 2015 21:09
Show Gist options
  • Select an option

  • Save richardkmichael/5323594 to your computer and use it in GitHub Desktop.

Select an option

Save richardkmichael/5323594 to your computer and use it in GitHub Desktop.
OpenSSL version required by Ruby 1.9.3-p392 (fd5c678ff)
>= 0.9.6 (typo?)
https://github.com/ruby/ruby/blob/fd5c678ff76ccb815ee52a4035d5549d3d2da74e/ext/openssl/extconf.rb#L61
>= 0.9.7
https://github.com/ruby/ruby/blob/fd5c678ff76ccb815ee52a4035d5549d3d2da74e/ext/openssl/ossl.h#L37
[Closed bug - wont fix](http://bugs.ruby-lang.org/issues/5655)
Ruby 1.9.3p0 on MacOS Lion, recommended solution: install OpenSSL using MacPorts or Homebrew. But surely Lion has a OpenSSL >= 0.9.7?
Warning: nginx will link against `libcrypto` (for hashing functions) even when the https module is not compiled.
pg gem segfaulting because postgres' libpq links against system OpenSSL while ruby links against RVM OpenSSL:
https://groups.google.com/forum/#!msg/ruby-pg/oCo8hDHR16A/0y3KdxrPNSMJ
https://bitbucket.org/ged/ruby-pg/issue/103/installation-problems-not-related-to-libpq
will ffi solve this problem (assuming it has an interface to the required library: libpq)? probably not, as it's libpq via the loader which is the problem, regardless of how we got there. [review dynamic linking]
https://github.com/ffi/ffi
could we debug this with f/s/dtrace? watch the loader open both versions of libssl/libcrypto?
could LD_PRELOAD* help us? (what is LD_PRELOAD on a mac?)
```
$ ls -l /usr/lib/libcrypto.*
-rwxr-xr-x 1 root wheel 3363872 Jun 25 2010 /usr/lib/libcrypto.0.9.7.dylib
-rwxr-xr-x 1 root wheel 4299888 Apr 23 2011 /usr/lib/libcrypto.0.9.8.dylib
-rwxr-xr-x 1 root wheel 805072 May 29 2009 /usr/lib/libcrypto.0.9.dylib
lrwxr-xr-x 1 root wheel 21 Oct 12 2011 /usr/lib/libcrypto.dylib -> libcrypto.0.9.8.dylib
$ ls -l /usr/lib/libssl*
-rwxr-xr-x 1 root wheel 699088 Jun 25 2010 /usr/lib/libssl.0.9.7.dylib
-rwxr-xr-x 1 root wheel 932816 Apr 23 2011 /usr/lib/libssl.0.9.8.dylib
-rwxr-xr-x 1 root wheel 219120 May 29 2009 /usr/lib/libssl.0.9.dylib
lrwxr-xr-x 1 root wheel 18 Oct 12 2011 /usr/lib/libssl.dylib -> libssl.0.9.8.dylib
$ strings /usr/lib/libssl*.dylib | sort | uniq | grep 0\.9\.
DTLSv1 part of OpenSSL 0.9.8r 8 Feb 2011
OpenSSL 0.9.6l 04 Nov 2003
$ openssl version -a
OpenSSL 1.0.1e 11 Feb 2013
built on: Tue Feb 26 04:58:17 PST 2013
platform: darwin64-x86_64-cc
options: bn(64,64) rc4(ptr,char) des(idx,cisc,16,int) idea(int) blowfish(idx)
compiler: /usr/bin/gcc-4.2 -fPIC -fno-common -DOPENSSL_PIC -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -arch
x86_64 -O3 -DL_ENDIAN -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -D
SHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM
OPENSSLDIR: "/opt/local/etc/openssl"
OpenSSL 0.9.7l 28 Sep 2006
OpenSSL 0.9.8r 8 Feb 2011
SSLv2 part of OpenSSL 0.9.6l 04 Nov 2003
SSLv2 part of OpenSSL 0.9.7l 28 Sep 2006
SSLv2 part of OpenSSL 0.9.8r 8 Feb 2011
SSLv2/3 compatibility part of OpenSSL 0.9.6l 04 Nov 2003
SSLv2/3 compatibility part of OpenSSL 0.9.7l 28 Sep 2006
SSLv3 part of OpenSSL 0.9.6l 04 Nov 2003
SSLv3 part of OpenSSL 0.9.7l 28 Sep 2006
SSLv3 part of OpenSSL 0.9.8r 8 Feb 2011
TLSv1 part of OpenSSL 0.9.6l 04 Nov 2003
TLSv1 part of OpenSSL 0.9.7l 28 Sep 2006
TLSv1 part of OpenSSL 0.9.8r 8 Feb 2011
```
@richardkmichael

Copy link
Copy Markdown
Author

@mpapis From your experience compiling Ruby in RVM, do you have any information about specifically which version of OpenSSL is required by Ruby?

@mpapis

mpapis commented Apr 16, 2013

Copy link
Copy Markdown

openssl 0.9.8 < ruby-2.0.0 < openssl 1+

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment