From d30904ea89ef5f920299395ea0ab60d94e6487fc Mon Sep 17 00:00:00 2001 From: Robin Gloster Date: Fri, 27 Nov 2015 16:12:27 +0000 Subject: [PATCH] ruby: fix build with libressl2.3 --- .../interpreters/ruby/patchsets.nix | 45 ++++++++++++++----- .../interpreters/ruby/ssl_v3.patch | 16 +++++++ 2 files changed, 49 insertions(+), 12 deletions(-) create mode 100644 pkgs/development/interpreters/ruby/ssl_v3.patch diff --git a/pkgs/development/interpreters/ruby/patchsets.nix b/pkgs/development/interpreters/ruby/patchsets.nix index 5f270dfe9c71..286301dc0a5d 100644 --- a/pkgs/development/interpreters/ruby/patchsets.nix +++ b/pkgs/development/interpreters/ruby/patchsets.nix @@ -1,7 +1,8 @@ { patchSet, useRailsExpress, ops, patchLevel }: -let self = rec { +rec { "1.9.3" = [ + ./ssl_v3.patch ./ruby19-parallel-install.patch ./bitperfect-rdoc.patch ] ++ ops useRailsExpress [ @@ -25,13 +26,17 @@ let self = rec { "${patchSet}/patches/ruby/1.9.3/p${patchLevel}/railsexpress/18-fix-missing-c-return-event.patch" "${patchSet}/patches/ruby/1.9.3/p${patchLevel}/railsexpress/19-fix-process-daemon-call.patch" ]; - "2.0.0" = ops useRailsExpress [ + "2.0.0" = [ + ./ssl_v3.patch + ] ++ ops useRailsExpress [ "${patchSet}/patches/ruby/2.0.0/p${patchLevel}/railsexpress/01-zero-broken-tests.patch" "${patchSet}/patches/ruby/2.0.0/p${patchLevel}/railsexpress/02-railsexpress-gc.patch" "${patchSet}/patches/ruby/2.0.0/p${patchLevel}/railsexpress/03-display-more-detailed-stack-trace.patch" "${patchSet}/patches/ruby/2.0.0/p${patchLevel}/railsexpress/04-show-full-backtrace-on-stack-overflow.patch" ]; - "2.1.0" = ops useRailsExpress [ + "2.1.0" = [ + ./ssl_v3.patch + ] ++ ops useRailsExpress [ "${patchSet}/patches/ruby/2.1.0/railsexpress/01-current-2.1.1-fixes.patch" "${patchSet}/patches/ruby/2.1.0/railsexpress/02-zero-broken-tests.patch" "${patchSet}/patches/ruby/2.1.0/railsexpress/03-improve-gc-stats.patch" @@ -45,7 +50,9 @@ let self = rec { "${patchSet}/patches/ruby/2.1.0/railsexpress/11-funny-falcon-method-cache.patch" "${patchSet}/patches/ruby/2.1.0/railsexpress/12-backport-r44370.patch" ]; - "2.1.1" = ops useRailsExpress [ + "2.1.1" = [ + ./ssl_v3.patch + ] ++ ops useRailsExpress [ "${patchSet}/patches/ruby/2.1.0/railsexpress/01-zero-broken-tests.patch" "${patchSet}/patches/ruby/2.1.0/railsexpress/02-improve-gc-stats.patch" "${patchSet}/patches/ruby/2.1.0/railsexpress/03-display-more-detailed-stack-trace.patch" @@ -58,7 +65,9 @@ let self = rec { "${patchSet}/patches/ruby/2.1.0/railsexpress/11-funny-falcon-method-cache.patch" "${patchSet}/patches/ruby/2.1.0/railsexpress/12-backport-r44370.patch" ]; - "2.1.2" = ops useRailsExpress [ + "2.1.2" = [ + ./ssl_v3.patch + ] ++ ops useRailsExpress [ "${patchSet}/patches/ruby/2.1.2/railsexpress/01-zero-broken-tests.patch" "${patchSet}/patches/ruby/2.1.2/railsexpress/02-improve-gc-stats.patch" "${patchSet}/patches/ruby/2.1.2/railsexpress/03-display-more-detailed-stack-trace.patch" @@ -70,7 +79,9 @@ let self = rec { "${patchSet}/patches/ruby/2.1.2/railsexpress/09-aman-opt-aset-aref-str.patch" "${patchSet}/patches/ruby/2.1.2/railsexpress/10-funny-falcon-method-cache.patch" ]; - "2.1.3" = ops useRailsExpress [ + "2.1.3" = [ + ./ssl_v3.patch + ] ++ ops useRailsExpress [ "${patchSet}/patches/ruby/2.1.3/railsexpress/01-zero-broken-tests.patch" "${patchSet}/patches/ruby/2.1.3/railsexpress/02-improve-gc-stats.patch" "${patchSet}/patches/ruby/2.1.3/railsexpress/03-display-more-detailed-stack-trace.patch" @@ -80,7 +91,9 @@ let self = rec { "${patchSet}/patches/ruby/2.1.3/railsexpress/07-aman-opt-aset-aref-str.patch" "${patchSet}/patches/ruby/2.1.3/railsexpress/08-funny-falcon-method-cache.patch" ]; - "2.1.6" = ops useRailsExpress [ + "2.1.6" = [ + ./ssl_v3.patch + ] ++ ops useRailsExpress [ "${patchSet}/patches/ruby/2.1.6/railsexpress/01-zero-broken-tests.patch" "${patchSet}/patches/ruby/2.1.6/railsexpress/02-improve-gc-stats.patch" "${patchSet}/patches/ruby/2.1.6/railsexpress/03-display-more-detailed-stack-trace.patch" @@ -91,7 +104,9 @@ let self = rec { "${patchSet}/patches/ruby/2.1.6/railsexpress/08-funny-falcon-method-cache.patch" "${patchSet}/patches/ruby/2.1.6/railsexpress/09-heap-dump-support.patch" ]; - "2.1.7" = ops useRailsExpress [ + "2.1.7" = [ + ./ssl_v3.patch + ] ++ ops useRailsExpress [ "${patchSet}/patches/ruby/2.1.7/railsexpress/01-zero-broken-tests.patch" "${patchSet}/patches/ruby/2.1.7/railsexpress/02-improve-gc-stats.patch" "${patchSet}/patches/ruby/2.1.7/railsexpress/03-display-more-detailed-stack-trace.patch" @@ -102,22 +117,28 @@ let self = rec { "${patchSet}/patches/ruby/2.1.7/railsexpress/08-funny-falcon-method-cache.patch" "${patchSet}/patches/ruby/2.1.7/railsexpress/09-heap-dump-support.patch" ]; - "2.2.0" = ops useRailsExpress [ + "2.2.0" = [ + ./ssl_v3.patch + ] ++ ops useRailsExpress [ "${patchSet}/patches/ruby/2.2.0/railsexpress/01-zero-broken-tests.patch" "${patchSet}/patches/ruby/2.2.0/railsexpress/02-improve-gc-stats.patch" "${patchSet}/patches/ruby/2.2.0/railsexpress/03-display-more-detailed-stack-trace.patch" "${patchSet}/patches/ruby/2.2.0/railsexpress/04-backport-401c8bb.patch" "${patchSet}/patches/ruby/2.2.0/railsexpress/05-fix-packed-bitfield-compat-warning-for-older-gccs.patch" ]; - "2.2.2" = ops useRailsExpress [ + "2.2.2" = [ + ./ssl_v3.patch + ] ++ ops useRailsExpress [ "${patchSet}/patches/ruby/2.2.2/railsexpress/01-zero-broken-tests.patch" "${patchSet}/patches/ruby/2.2.2/railsexpress/02-improve-gc-stats.patch" "${patchSet}/patches/ruby/2.2.2/railsexpress/03-display-more-detailed-stack-trace.patch" "${patchSet}/patches/ruby/2.2.2/railsexpress/04-backported-bugfixes-222.patch" ]; - "2.2.3" = ops useRailsExpress [ + "2.2.3" = [ + ./ssl_v3.patch + ] ++ ops useRailsExpress [ "${patchSet}/patches/ruby/2.2.3/railsexpress/01-zero-broken-tests.patch" "${patchSet}/patches/ruby/2.2.3/railsexpress/02-improve-gc-stats.patch" "${patchSet}/patches/ruby/2.2.3/railsexpress/03-display-more-detailed-stack-trace.patch" ]; -}; in self +} diff --git a/pkgs/development/interpreters/ruby/ssl_v3.patch b/pkgs/development/interpreters/ruby/ssl_v3.patch new file mode 100644 index 000000000000..faa402165751 --- /dev/null +++ b/pkgs/development/interpreters/ruby/ssl_v3.patch @@ -0,0 +1,16 @@ +--- a/ext/openssl/ossl_ssl.c 2015-11-26 16:41:03.775058140 +0000 ++++ b/ext/openssl/ossl_ssl.c 2015-11-26 16:40:56.191907346 +0000 +@@ -138,9 +138,12 @@ + OSSL_SSL_METHOD_ENTRY(SSLv2_server), + OSSL_SSL_METHOD_ENTRY(SSLv2_client), + #endif ++#if defined(HAVE_SSLV3_METHOD) && defined(HAVE_SSLV3_SERVER_METHOD) && \ ++ defined(HAVE_SSLV3_CLIENT_METHOD) + OSSL_SSL_METHOD_ENTRY(SSLv3), + OSSL_SSL_METHOD_ENTRY(SSLv3_server), + OSSL_SSL_METHOD_ENTRY(SSLv3_client), ++#endif + OSSL_SSL_METHOD_ENTRY(SSLv23), + OSSL_SSL_METHOD_ENTRY(SSLv23_server), + OSSL_SSL_METHOD_ENTRY(SSLv23_client), +