From 086d266ea8272798d568b471154febf43422f202 Mon Sep 17 00:00:00 2001 From: Julian Ospald Date: Mon, 5 Oct 2015 11:36:44 +0200 Subject: [PATCH] dev-lang/ruby: add libressl support Backporting upstream patch. --- dev-lang/ruby/files/ruby-2.2.3-libressl.patch | 58 ++++++ dev-lang/ruby/ruby-2.2.3-r1.ebuild | 243 ++++++++++++++++++++++++++ 2 files changed, 301 insertions(+) create mode 100644 dev-lang/ruby/files/ruby-2.2.3-libressl.patch create mode 100644 dev-lang/ruby/ruby-2.2.3-r1.ebuild diff --git a/dev-lang/ruby/files/ruby-2.2.3-libressl.patch b/dev-lang/ruby/files/ruby-2.2.3-libressl.patch new file mode 100644 index 0000000..d451823 --- /dev/null +++ b/dev-lang/ruby/files/ruby-2.2.3-libressl.patch @@ -0,0 +1,58 @@ +From 25455e611c9d7165152737989037a69c5dd3ecf1 Mon Sep 17 00:00:00 2001 +From: nobu +Date: Thu, 12 Feb 2015 09:34:02 +0000 +Subject: [PATCH] openssl: check RAND_edg to support libressl + +* ext/openssl/extconf.rb: check RAND_edg to support libressl. +* ext/openssl/ossl_rand.c (ossl_rand_egd): define only if RAND_edg + is available. [Fix GH-829] + +git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49576 b2dd03c8-39d4-4d8f-98ff-823fe69b080e +--- + ext/openssl/extconf.rb | 1 + + ext/openssl/ossl_rand.c | 4 ++++ + 3 files changed, 12 insertions(+) + +diff --git a/ext/openssl/extconf.rb b/ext/openssl/extconf.rb +index e272cba..3a1fa71 100644 +--- a/ext/openssl/extconf.rb ++++ b/ext/openssl/extconf.rb +@@ -87,6 +87,7 @@ + have_func("PEM_def_callback") + have_func("PKCS5_PBKDF2_HMAC") + have_func("PKCS5_PBKDF2_HMAC_SHA1") ++have_func("RAND_egd") + have_func("X509V3_set_nconf") + have_func("X509V3_EXT_nconf_nid") + have_func("X509_CRL_add0_revoked") +diff --git a/ext/openssl/ossl_rand.c b/ext/openssl/ossl_rand.c +index 29cbf8c..27466fe 100644 +--- a/ext/openssl/ossl_rand.c ++++ b/ext/openssl/ossl_rand.c +@@ -148,6 +148,7 @@ ossl_rand_pseudo_bytes(VALUE self, VALUE len) + return str; + } + ++#ifdef HAVE_RAND_EGD + /* + * call-seq: + * egd(filename) -> true +@@ -186,6 +187,7 @@ ossl_rand_egd_bytes(VALUE self, VALUE filename, VALUE len) + } + return Qtrue; + } ++#endif /* HAVE_RAND_EGD */ + + /* + * call-seq: +@@ -219,8 +221,10 @@ Init_ossl_rand(void) + rb_define_module_function(mRandom, "write_random_file", ossl_rand_write_file, 1); + rb_define_module_function(mRandom, "random_bytes", ossl_rand_bytes, 1); + rb_define_module_function(mRandom, "pseudo_bytes", ossl_rand_pseudo_bytes, 1); ++#ifdef HAVE_RAND_EGD + rb_define_module_function(mRandom, "egd", ossl_rand_egd, 1); + rb_define_module_function(mRandom, "egd_bytes", ossl_rand_egd_bytes, 2); ++#endif /* HAVE_RAND_EGD */ + rb_define_module_function(mRandom, "status?", ossl_rand_status, 0); + } + diff --git a/dev-lang/ruby/ruby-2.2.3-r1.ebuild b/dev-lang/ruby/ruby-2.2.3-r1.ebuild new file mode 100644 index 0000000..2016e53 --- /dev/null +++ b/dev-lang/ruby/ruby-2.2.3-r1.ebuild @@ -0,0 +1,243 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 + +#PATCHSET=1 + +inherit autotools eutils flag-o-matic multilib versionator + +MY_P="${PN}-$(get_version_component_range 1-3)" +S=${WORKDIR}/${MY_P} + +SLOT=$(get_version_component_range 1-2) +MY_SUFFIX=$(delete_version_separator 1 ${SLOT}) +RUBYVERSION=2.2.0 + +if [[ -n ${PATCHSET} ]]; then + if [[ ${PVR} == ${PV} ]]; then + PATCHSET="${PV}-r0.${PATCHSET}" + else + PATCHSET="${PVR}.${PATCHSET}" + fi +else + PATCHSET="${PVR}" +fi + +DESCRIPTION="An object-oriented scripting language" +HOMEPAGE="http://www.ruby-lang.org/" +SRC_URI="mirror://ruby/2.2/${MY_P}.tar.xz + https://dev.gentoo.org/~flameeyes/ruby-team/${PN}-patches-${PATCHSET%-r*}.tar.bz2" + +LICENSE="|| ( Ruby-BSD BSD-2 )" +KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd" +IUSE="berkdb debug doc examples gdbm ipv6 jemalloc libressl +rdoc rubytests socks5 ssl xemacs ncurses +readline" + +RDEPEND=" + berkdb? ( sys-libs/db:= ) + gdbm? ( sys-libs/gdbm ) + jemalloc? ( dev-libs/jemalloc ) + ssl? ( + !libressl? ( dev-libs/openssl:0 ) + libressl? ( dev-libs/libressl ) + ) + socks5? ( >=net-proxy/dante-1.1.13 ) + ncurses? ( sys-libs/ncurses:0= ) + readline? ( sys-libs/readline:0 ) + dev-libs/libyaml + virtual/libffi + sys-libs/zlib + >=app-eselect/eselect-ruby-20141227 + !