5/25/11

Compile ruby 1.9.2 using RVM on Debian Wheezy


UPDATE 18/07/11 : seems no longer needed with ruby-1.9.2-p290

Thin needs openssl support but sslv2 is broken on Debian Wheezy.
So we need a patch to disable sslv2
I made it from this one :

diff --git a/ext/openssl/extconf.rb b/ext/openssl/extconf.rb
index 55e4142..1ab64fa 100644
--- a/ext/openssl/extconf.rb
+++ b/ext/openssl/extconf.rb
@@ -33,6 +33,14 @@ if with_config("debug") or enable_config("debug")
   end
 end
 
+## 
+## From openssl 1.0, SSLv2 becomes disable by default.
+## If you want to use SSLv2 in ruby, you need config with --enable-opensslv2.
+##
+if enable_config("opensslv2")
+  $defs << "-DENABLE_OPENSSLV2"
+end
+
 message "=== Checking for system dependent stuff... ===\n"
 have_library("nsl", "t_open")
 have_library("socket", "socket")
diff --git a/ext/openssl/ossl_ssl.c b/ext/openssl/ossl_ssl.c
index eb7ae29..3155d81 100644
--- a/ext/openssl/ossl_ssl.c
+++ b/ext/openssl/ossl_ssl.c
@@ -107,9 +107,11 @@ struct {
     OSSL_SSL_METHOD_ENTRY(TLSv1),
     OSSL_SSL_METHOD_ENTRY(TLSv1_server),
     OSSL_SSL_METHOD_ENTRY(TLSv1_client),
+#if defined(ENABLE_OPENSSLV2)
     OSSL_SSL_METHOD_ENTRY(SSLv2),
     OSSL_SSL_METHOD_ENTRY(SSLv2_server),
     OSSL_SSL_METHOD_ENTRY(SSLv2_client),
+#endif
     OSSL_SSL_METHOD_ENTRY(SSLv3),
     OSSL_SSL_METHOD_ENTRY(SSLv3_server),
     OSSL_SSL_METHOD_ENTRY(SSLv3_client),
Use with :
rvm install 1.9.2 --patch path/to/my_patch

1 Commentaire

Patrizio a dit...

Many thanks for this! You saved my day :)

Post a Comment