diff options
author | Alex Legler <a3li@gentoo.org> | 2009-06-14 10:43:17 +0000 |
---|---|---|
committer | Alex Legler <a3li@gentoo.org> | 2009-06-14 10:43:17 +0000 |
commit | a9bace0d733809883e62d6dc834ed4ef45524534 (patch) | |
tree | e57ec48bf2c57f392cc189b195272843fc78a89f /dev-lang/ruby | |
parent | [kde-base/kde-env] Drop KDE 4.2.3 (diff) | |
download | gentoo-2-a9bace0d733809883e62d6dc834ed4ef45524534.tar.gz gentoo-2-a9bace0d733809883e62d6dc834ed4ef45524534.tar.bz2 gentoo-2-a9bace0d733809883e62d6dc834ed4ef45524534.zip |
Removing _p114 and stale patches, bug 274108.
(Portage version: 2.2_rc33/cvs/Linux i686)
Diffstat (limited to 'dev-lang/ruby')
-rw-r--r-- | dev-lang/ruby/ChangeLog | 9 | ||||
-rw-r--r-- | dev-lang/ruby/files/ruby-1.8.6-openssl.patch | 157 | ||||
-rw-r--r-- | dev-lang/ruby/files/ruby-1.8.6-shortname_constants.patch | 38 | ||||
-rw-r--r-- | dev-lang/ruby/files/ruby-1.8.6_p111-r13657.patch | 53 | ||||
-rw-r--r-- | dev-lang/ruby/files/ruby-1.8.6_p287-entity_expansion_limit.diff | 103 | ||||
-rw-r--r-- | dev-lang/ruby/ruby-1.8.6_p114.ebuild | 170 |
6 files changed, 8 insertions, 522 deletions
diff --git a/dev-lang/ruby/ChangeLog b/dev-lang/ruby/ChangeLog index 2c47982f17da..92064ebf7657 100644 --- a/dev-lang/ruby/ChangeLog +++ b/dev-lang/ruby/ChangeLog @@ -1,6 +1,13 @@ # ChangeLog for dev-lang/ruby # Copyright 1999-2009 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/dev-lang/ruby/ChangeLog,v 1.410 2009/06/11 14:47:47 klausman Exp $ +# $Header: /var/cvsroot/gentoo-x86/dev-lang/ruby/ChangeLog,v 1.411 2009/06/14 10:43:16 a3li Exp $ + + 14 Jun 2009; Alex Legler <a3li@gentoo.org> -ruby-1.8.6_p114.ebuild, + -files/ruby-1.8.6-openssl.patch, + -files/ruby-1.8.6-shortname_constants.patch, + -files/ruby-1.8.6_p111-r13657.patch, + -files/ruby-1.8.6_p287-entity_expansion_limit.diff: + Removing vulnerable old Ruby version and stale patches, bug 274108. 11 Jun 2009; Tobias Klausmann <klausman@gentoo.org> ruby-1.8.6_p369.ebuild: diff --git a/dev-lang/ruby/files/ruby-1.8.6-openssl.patch b/dev-lang/ruby/files/ruby-1.8.6-openssl.patch deleted file mode 100644 index 03c35a626c2c..000000000000 --- a/dev-lang/ruby/files/ruby-1.8.6-openssl.patch +++ /dev/null @@ -1,157 +0,0 @@ -This patch backports changes from ruby 1.8.7 which only includes the -openssl prototypes for functions that are not in the system openssl -library. This fixes #254307 and protects against similar issues with -future openssl versions. - -diff -u ruby-1.8.6_p287-r10/work/ruby-1.8.6-p287/ext/openssl/extconf.rb ruby-1.8.7_p72-r1/work/ruby-1.8.7-p72/ext/openssl/extconf.rb ---- ruby-1.8.6_p287-r10/work/ruby-1.8.6-p287/ext/openssl/openssl_missing.c 2007-02-13 00:01:19.000000000 +0100 -+++ ruby-1.8.7_p72-r1/work/ruby-1.8.7-p72/ext/openssl/openssl_missing.c 2008-05-19 05:00:52.000000000 +0200 -@@ -22,17 +22,15 @@ - #include "openssl_missing.h" - - #if !defined(HAVE_HMAC_CTX_COPY) --int -+void - HMAC_CTX_copy(HMAC_CTX *out, HMAC_CTX *in) - { -- if (!out || !in) return 0; -+ if (!out || !in) return; - memcpy(out, in, sizeof(HMAC_CTX)); - -- if (!EVP_MD_CTX_copy(&out->md_ctx, &in->md_ctx) -- || !EVP_MD_CTX_copy(&out->i_ctx, &in->i_ctx) -- || !EVP_MD_CTX_copy(&out->o_ctx, &in->o_ctx)) -- return 0; -- return 1; -+ EVP_MD_CTX_copy(&out->md_ctx, &in->md_ctx); -+ EVP_MD_CTX_copy(&out->i_ctx, &in->i_ctx); -+ EVP_MD_CTX_copy(&out->o_ctx, &in->o_ctx); - } - #endif /* HAVE_HMAC_CTX_COPY */ - #endif /* NO_HMAC */ -diff -u ruby-1.8.6_p287-r10/work/ruby-1.8.6-p287/ext/openssl/openssl_missing.h ruby-1.8.7_p72-r1/work/ruby-1.8.7-p72/ext/openssl/openssl_missing.h ---- ruby-1.8.6_p287-r10/work/ruby-1.8.6-p287/ext/openssl/openssl_missing.h 2008-08-04 06:43:34.000000000 +0200 -+++ ruby-1.8.7_p72-r1/work/ruby-1.8.7-p72/ext/openssl/openssl_missing.h 2008-08-04 06:44:17.000000000 +0200 -@@ -60,14 +60,33 @@ - (char *(*)())d2i_PKCS7_RECIP_INFO, (char *)ri) - #endif - -+#if !defined(HAVE_EVP_MD_CTX_INIT) - void HMAC_CTX_init(HMAC_CTX *ctx); --int HMAC_CTX_copy(HMAC_CTX *out, HMAC_CTX *in); -+#endif -+ -+#if !defined(HAVE_HMAC_CTX_COPY) -+void HMAC_CTX_copy(HMAC_CTX *out, HMAC_CTX *in); -+#endif -+ -+#if !defined(HAVE_HMAC_CTX_CLEANUP) - void HMAC_CTX_cleanup(HMAC_CTX *ctx); -+#endif - -+#if !defined(HAVE_EVP_MD_CTX_CREATE) - EVP_MD_CTX *EVP_MD_CTX_create(void); -+#endif -+ -+#if !defined(HAVE_EVP_MD_CTX_INIT) - void EVP_MD_CTX_init(EVP_MD_CTX *ctx); -+#endif -+ -+#if !defined(HAVE_EVP_MD_CTX_CLEANUP) - int EVP_MD_CTX_cleanup(EVP_MD_CTX *ctx); -+#endif -+ -+#if !defined(HAVE_EVP_MD_CTX_DESTROY) - void EVP_MD_CTX_destroy(EVP_MD_CTX *ctx); -+#endif - - #if !defined(HAVE_EVP_CIPHER_CTX_COPY) - int EVP_CIPHER_CTX_copy(EVP_CIPHER_CTX *out, EVP_CIPHER_CTX *in); -@@ -111,19 +130,54 @@ - #define OPENSSL_cleanse(p, l) memset(p, 0, l) - #endif - -+#if !defined(HAVE_X509_STORE_SET_EX_DATA) - void *X509_STORE_get_ex_data(X509_STORE *str, int idx); - int X509_STORE_set_ex_data(X509_STORE *str, int idx, void *data); -+#endif -+ -+#if !defined(HAVE_X509_CRL_SET_VERSION) - int X509_CRL_set_version(X509_CRL *x, long version); -+#endif -+ -+#if !defined(HAVE_X509_CRL_SET_ISSUER_NAME) - int X509_CRL_set_issuer_name(X509_CRL *x, X509_NAME *name); -+#endif -+ -+#if !defined(HAVE_X509_CRL_SORT) - int X509_CRL_sort(X509_CRL *c); -+#endif -+ -+#if !defined(HAVE_X509_CRL_ADD0_REVOKED) - int X509_CRL_add0_revoked(X509_CRL *crl, X509_REVOKED *rev); -+#endif -+ -+#if !defined(HAVE_BN_MOD_SQR) - int BN_mod_sqr(BIGNUM *r, const BIGNUM *a, const BIGNUM *m, BN_CTX *ctx); -+#endif -+ -+#if !defined(HAVE_BN_MOD_ADD) - int BN_mod_add(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, const BIGNUM *m, BN_CTX *ctx); -+#endif -+ -+#if !defined(HAVE_BN_MOD_SUB) - int BN_mod_sub(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, const BIGNUM *m, BN_CTX *ctx); -+#endif -+ -+#if !defined(HAVE_BN_RAND_RANGE) - int BN_rand_range(BIGNUM *r, BIGNUM *range); -+#endif -+ -+#if !defined(HAVE_BN_PSEUDO_RAND_RANGE) - int BN_pseudo_rand_range(BIGNUM *r, BIGNUM *range); -+#endif -+ -+#if !defined(HAVE_CONF_GET1_DEFAULT_CONFIG_FILE) - char *CONF_get1_default_config_file(void); -+#endif -+ -+#if !defined(HAVE_PEM_DEF_CALLBACK) - int PEM_def_callback(char *buf, int num, int w, void *key); -+#endif - - #if defined(__cplusplus) - } -diff -u ruby-1.8.6_p287-r10/work/ruby-1.8.6-p287/ext/openssl/ossl_hmac.c ruby-1.8.7_p72-r1/work/ruby-1.8.7-p72/ext/openssl/ossl_hmac.c ---- ruby-1.8.6_p287-r10/work/ruby-1.8.6-p287/ext/openssl/ossl_hmac.c 2007-03-12 05:12:32.000000000 +0100 -+++ ruby-1.8.7_p72-r1/work/ruby-1.8.7-p72/ext/openssl/ossl_hmac.c 2008-05-19 05:00:52.000000000 +0200 -@@ -81,12 +87,15 @@ - GetHMAC(self, ctx1); - SafeGetHMAC(other, ctx2); - -- if (!HMAC_CTX_copy(ctx1, ctx2)) { -- ossl_raise(eHMACError, NULL); -- } -+ HMAC_CTX_copy(ctx1, ctx2); - return self; - } - -+/* -+ * call-seq: -+ * hmac.update(string) -> self -+ * -+ */ - static VALUE - ossl_hmac_update(VALUE self, VALUE data) - { -@@ -104,9 +113,7 @@ - { - HMAC_CTX final; - -- if (!HMAC_CTX_copy(&final, ctx)) { -- ossl_raise(eHMACError, NULL); -- } -+ HMAC_CTX_copy(&final, ctx); - if (!(*buf = OPENSSL_malloc(HMAC_size(&final)))) { - HMAC_CTX_cleanup(&final); - OSSL_Debug("Allocating %d mem", HMAC_size(&final)); diff --git a/dev-lang/ruby/files/ruby-1.8.6-shortname_constants.patch b/dev-lang/ruby/files/ruby-1.8.6-shortname_constants.patch deleted file mode 100644 index 760c62f78ddc..000000000000 --- a/dev-lang/ruby/files/ruby-1.8.6-shortname_constants.patch +++ /dev/null @@ -1,38 +0,0 @@ -Changeset 18485 from Ruby SVN to fix bug #247790 - ---- node.h 2008/08/11 02:52:57 18484 -+++ node.h 2008/08/11 05:42:31 18485 -@@ -319,7 +319,7 @@ - #define NEW_MODULE(n,b) NEW_NODE(NODE_MODULE,n,NEW_SCOPE(b),0) - #define NEW_COLON2(c,i) NEW_NODE(NODE_COLON2,c,i,0) - #define NEW_COLON3(i) NEW_NODE(NODE_COLON3,0,i,0) --#define NEW_CREF(c) (NEW_NODE(NODE_CREF,0,0,c)) -+#define NEW_CREF(c,n) NEW_NODE(NODE_CREF,c,0,n) - #define NEW_DOT2(b,e) NEW_NODE(NODE_DOT2,b,e,0) - #define NEW_DOT3(b,e) NEW_NODE(NODE_DOT3,b,e,0) - #define NEW_ATTRSET(a) NEW_NODE(NODE_ATTRSET,a,0,0) ---- eval.c 2008/08/11 02:52:57 18484 -+++ eval.c 2008/08/11 05:42:31 18485 -@@ -1065,7 +1065,7 @@ - - NODE *ruby_cref = 0; - NODE *ruby_top_cref; --#define PUSH_CREF(c) ruby_cref = NEW_NODE(NODE_CREF,(c),0,ruby_cref) -+#define PUSH_CREF(c) ruby_cref = NEW_CREF(c,ruby_cref) - #define POP_CREF() ruby_cref = ruby_cref->nd_next - - #define PUSH_SCOPE() do { \ ---- class.c 2008/08/11 02:52:57 18484 -+++ class.c 2008/08/11 05:42:31 18485 -@@ -62,7 +62,10 @@ - NODE *fbody = body->nd_body; - - if (fbody && nd_type(fbody) == NODE_SCOPE) { -- fbody = rb_copy_node_scope(fbody, ruby_cref); -+ NODE *cref = (NODE*)fbody->nd_rval; -+ -+ if (cref) cref = cref->nd_next; -+ fbody = rb_copy_node_scope(fbody, NEW_CREF(data->klass, cref)); - } - st_insert(data->tbl, mid, (st_data_t)NEW_METHOD(fbody, body->nd_noex)); - return ST_CONTINUE; diff --git a/dev-lang/ruby/files/ruby-1.8.6_p111-r13657.patch b/dev-lang/ruby/files/ruby-1.8.6_p111-r13657.patch deleted file mode 100644 index 2e0228be0471..000000000000 --- a/dev-lang/ruby/files/ruby-1.8.6_p111-r13657.patch +++ /dev/null @@ -1,53 +0,0 @@ -Index: branches/ruby_1_8/ext/openssl/lib/net/telnets.rb -=================================================================== ---- branches/ruby_1_8/ext/openssl/lib/net/telnets.rb (revision 13656) -+++ branches/ruby_1_8/ext/openssl/lib/net/telnets.rb (revision 13657) -@@ -134,6 +134,9 @@ - @sock.verify_callback = @options['VerifyCallback'] - @sock.verify_depth = @options['VerifyDepth'] - @sock.connect -+ if @options['VerifyMode'] != OpenSSL::SSL::VERIFY_NONE -+ @sock.post_connection_check(@options['Host']) -+ end - @ssl = true - end - '' -Index: branches/ruby_1_8/ext/openssl/lib/net/ftptls.rb -=================================================================== ---- branches/ruby_1_8/ext/openssl/lib/net/ftptls.rb (revision 13656) -+++ branches/ruby_1_8/ext/openssl/lib/net/ftptls.rb (revision 13657) -@@ -29,13 +29,23 @@ - - module Net - class FTPTLS < FTP -+ def connect(host, port=FTP_PORT) -+ @hostname = host -+ super -+ end -+ - def login(user = "anonymous", passwd = nil, acct = nil) -+ store = OpenSSL::X509::Store.new -+ store.set_default_paths - ctx = OpenSSL::SSL::SSLContext.new('SSLv23') -+ ctx.cert_store = store -+ ctx.verify_mode = OpenSSL::SSL::VERIFY_PEER - ctx.key = nil - ctx.cert = nil - voidcmd("AUTH TLS") - @sock = OpenSSL::SSL::SSLSocket.new(@sock, ctx) - @sock.connect -+ @sock.post_connection_check(@hostname) - super(user, passwd, acct) - voidcmd("PBSZ 0") - end ---- branches/ruby_1_8/lib/net/imap.rb (revision 13656) -+++ branches/ruby_1_8/lib/net/imap.rb (revision 13657) -@@ -900,6 +900,7 @@ - end - @sock = SSLSocket.new(@sock, context) - @sock.connect # start ssl session. -+ @sock.post_connection_check(@host) if verify - else - @usessl = false - end - diff --git a/dev-lang/ruby/files/ruby-1.8.6_p287-entity_expansion_limit.diff b/dev-lang/ruby/files/ruby-1.8.6_p287-entity_expansion_limit.diff deleted file mode 100644 index a82790341505..000000000000 --- a/dev-lang/ruby/files/ruby-1.8.6_p287-entity_expansion_limit.diff +++ /dev/null @@ -1,103 +0,0 @@ -Fix for a security issue in the REXML library from the ruby-core list: -http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-core/18414 -https://bugs.gentoo.org/show_bug.cgi?id=236060 - -Index: lib/rexml/document.rb -=================================================================== ---- lib/rexml/document.rb (revision 18834) -+++ lib/rexml/document.rb (working copy) -@@ -32,6 +32,7 @@ - # @param context if supplied, contains the context of the document; - # this should be a Hash. - def initialize( source = nil, context = {} ) -+ @entity_expansion_count = 0 - super() - @context = context - return if source.nil? -@@ -200,6 +201,27 @@ - Parsers::StreamParser.new( source, listener ).parse - end - -+ @@entity_expansion_limit = 10_000 -+ -+ # Set the entity expansion limit. By defualt the limit is set to 10000. -+ def Document::entity_expansion_limit=( val ) -+ @@entity_expansion_limit = val -+ end -+ -+ # Get the entity expansion limit. By defualt the limit is set to 10000. -+ def Document::entity_expansion_limit -+ return @@entity_expansion_limit -+ end -+ -+ attr_reader :entity_expansion_count -+ -+ def record_entity_expansion -+ @entity_expansion_count += 1 -+ if @entity_expansion_count > @@entity_expansion_limit -+ raise "number of entity expansions exceeded, processing aborted." -+ end -+ end -+ - private - def build( source ) - Parsers::TreeParser.new( source, self ).parse -Index: lib/rexml/entity.rb -=================================================================== ---- lib/rexml/entity.rb (revision 18834) -+++ lib/rexml/entity.rb (working copy) -@@ -73,6 +73,7 @@ - # all entities -- both %ent; and &ent; entities. This differs from - # +value()+ in that +value+ only replaces %ent; entities. - def unnormalized -+ document.record_entity_expansion unless document.nil? - v = value() - return nil if v.nil? - @unnormalized = Text::unnormalize(v, parent) -Index: test/rexml/test_document.rb -=================================================================== ---- test/rexml/test_document.rb (revision 0) -+++ test/rexml/test_document.rb (revision 0) -@@ -0,0 +1,42 @@ -+require "rexml/document" -+require "test/unit" -+ -+class REXML::TestDocument < Test::Unit::TestCase -+ def test_new -+ doc = REXML::Document.new(<<EOF) -+<?xml version="1.0" encoding="UTF-8"?> -+<message>Hello world!</message> -+EOF -+ assert_equal("Hello world!", doc.root.children.first.value) -+ end -+ -+ XML_WITH_NESTED_ENTITY = <<EOF -+<?xml version="1.0" encoding="UTF-8"?> -+<!DOCTYPE member [ -+ <!ENTITY a "&b;&b;&b;&b;&b;&b;&b;&b;&b;&b;"> -+ <!ENTITY b "&c;&c;&c;&c;&c;&c;&c;&c;&c;&c;"> -+ <!ENTITY c "&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;"> -+ <!ENTITY d "&e;&e;&e;&e;&e;&e;&e;&e;&e;&e;"> -+ <!ENTITY e "&f;&f;&f;&f;&f;&f;&f;&f;&f;&f;"> -+ <!ENTITY f "&g;&g;&g;&g;&g;&g;&g;&g;&g;&g;"> -+ <!ENTITY g "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"> -+]> -+<member> -+&a; -+</member> -+EOF -+ -+ def test_entity_expansion_limit -+ doc = REXML::Document.new(XML_WITH_NESTED_ENTITY) -+ assert_raise(RuntimeError) do -+ doc.root.children.first.value -+ end -+ REXML::Document.entity_expansion_limit = 100 -+ assert_equal(100, REXML::Document.entity_expansion_limit) -+ doc = REXML::Document.new(XML_WITH_NESTED_ENTITY) -+ assert_raise(RuntimeError) do -+ doc.root.children.first.value -+ end -+ assert_equal(101, doc.entity_expansion_count) -+ end -+end diff --git a/dev-lang/ruby/ruby-1.8.6_p114.ebuild b/dev-lang/ruby/ruby-1.8.6_p114.ebuild deleted file mode 100644 index 6c77cdfd6e7f..000000000000 --- a/dev-lang/ruby/ruby-1.8.6_p114.ebuild +++ /dev/null @@ -1,170 +0,0 @@ -# Copyright 1999-2009 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/dev-lang/ruby/ruby-1.8.6_p114.ebuild,v 1.14 2009/05/10 18:52:51 a3li Exp $ - -WANT_AUTOCONF="latest" -WANT_AUTOMAKE="latest" - -ONIGURUMA="onigd2_5_9" - -inherit autotools eutils flag-o-matic multilib versionator - -MY_P="${PN}-$(replace_version_separator 3 '-')" -S=${WORKDIR}/${MY_P} - -SLOT=$(get_version_component_range 1-2) -MY_SUFFIX=$(delete_version_separator 1 ${SLOT}) - -DESCRIPTION="An object-oriented scripting language" -HOMEPAGE="http://www.ruby-lang.org/" -SRC_URI="mirror://ruby/${SLOT}/${MY_P}.tar.bz2 - cjk? ( http://www.geocities.jp/kosako3/oniguruma/archive/${ONIGURUMA}.tar.gz )" - -LICENSE="|| ( Ruby GPL-2 )" -KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 s390 sh sparc ~sparc-fbsd x86 ~x86-fbsd" -IUSE="berkdb cjk debug doc emacs examples gdbm ipv6 rubytests socks5 ssl threads tk xemacs" - -RDEPEND=" - berkdb? ( sys-libs/db ) - gdbm? ( sys-libs/gdbm ) - ssl? ( dev-libs/openssl ) - socks5? ( >=net-proxy/dante-1.1.13 ) - tk? ( dev-lang/tk ) - >=dev-ruby/ruby-config-0.3.1 - !=dev-lang/ruby-cvs-${SLOT}* - !dev-ruby/rdoc - !dev-ruby/rexml" -DEPEND="${RDEPEND}" -PDEPEND="emacs? ( app-emacs/ruby-mode ) - xemacs? ( app-xemacs/ruby-modes )" - -PROVIDE="virtual/ruby" - -src_unpack() { - unpack ${A} - - if use cjk ; then - einfo "Applying ${ONIGURUMA}" - pushd "${WORKDIR}/oniguruma" - econf --with-rubydir="${S}" || die "oniguruma econf failed" - emake $MY_SUFFIX || die "oniguruma emake failed" - popd - fi - - cd "${S}/ext/dl" - epatch "${FILESDIR}/${PN}-1.8.6-memory-leak.diff" - cd "${S}" - - epatch "${FILESDIR}/${PN}-1.8.6_p111-r13657.patch" - - # Fix a hardcoded lib path in configure script - sed -i -e "s:\(RUBY_LIB_PREFIX=\"\${prefix}/\)lib:\1$(get_libdir):" \ - configure.in || die "sed failed" - - eautoreconf -} - -src_compile() { - # -fomit-frame-pointer makes ruby segfault, see bug #150413. - filter-flags -fomit-frame-pointer - # In many places aliasing rules are broken; play it safe - # as it's risky with newer compilers to leave it as it is. - append-flags -fno-strict-aliasing - - # Socks support via dante - if use socks5 ; then - # Socks support can't be disabled as long as SOCKS_SERVER is - # set and socks library is present, so need to unset - # SOCKS_SERVER in that case. - unset SOCKS_SERVER - fi - - # Increase GC_MALLOC_LIMIT if set (default is 8000000) - if [ -n "${RUBY_GC_MALLOC_LIMIT}" ] ; then - append-flags "-DGC_MALLOC_LIMIT=${RUBY_GC_MALLOC_LIMIT}" - fi - - econf --program-suffix=$MY_SUFFIX --enable-shared \ - $(use_enable socks5 socks) \ - $(use_enable doc install-doc) \ - $(use_enable threads pthread) \ - $(use_enable ipv6) \ - $(use_enable debug) \ - $(use_with berkdb dbm) \ - $(use_with gdbm) \ - $(use_with ssl openssl) \ - $(use_with tk) \ - ${myconf} \ - --with-sitedir=/usr/$(get_libdir)/ruby/site_ruby \ - || die "econf failed" - - emake EXTLDFLAGS="${LDFLAGS}" || die "emake failed" -} - -src_test() { - emake -j1 test || die "make test failed" - - elog "Ruby's make test has been run. Ruby also ships with a make check" - elog "that cannot be run until after ruby has been installed." - elog - if use rubytests; then - elog "You have enabled rubytests, so they will be installed to" - elog "/usr/share/${PN}-${SLOT}/test. To run them you must be a user other" - elog "than root, and you must place them into a writeable directory." - elog "Then call: " - elog - elog "ruby -C /location/of/tests runner.rb" - else - elog "Enable the rubytests USE flag to install the make check tests" - fi -} - -src_install() { - LD_LIBRARY_PATH="${D}/usr/$(get_libdir)" - RUBYLIB="${S}:${D}/usr/$(get_libdir)/ruby/${SLOT}" - for d in $(find "${S}/ext" -type d) ; do - RUBYLIB="${RUBYLIB}:$d" - done - export LD_LIBRARY_PATH RUBYLIB - - emake DESTDIR="${D}" install || die "make install failed" - - MINIRUBY=$(echo -e 'include Makefile\ngetminiruby:\n\t@echo $(MINIRUBY)'|make -f - getminiruby) - keepdir $(${MINIRUBY} -rrbconfig -e "print Config::CONFIG['sitelibdir']") - keepdir $(${MINIRUBY} -rrbconfig -e "print Config::CONFIG['sitearchdir']") - - if use doc; then - make DESTDIR="${D}" install-doc || die "make install-doc failed" - fi - - if use examples; then - dodir /usr/share/doc/${PF} - cp -pPR sample "${D}/usr/share/doc/${PF}" - fi - - dosym libruby$MY_SUFFIX$(get_libname ${PV%_*}) /usr/$(get_libdir)/libruby$(get_libname ${PV%.*}) - dosym libruby$MY_SUFFIX$(get_libname ${PV%_*}) /usr/$(get_libdir)/libruby$(get_libname ${PV%_*}) - - dodoc ChangeLog NEWS README* ToDo - - if use rubytests; then - dodir /usr/share/${PN}-${SLOT} - cp -pPR test "${D}/usr/share/${PN}-${SLOT}" - fi -} - -pkg_postinst() { - - if [[ ! -n $(readlink "${ROOT}"usr/bin/ruby) ]] ; then - "${ROOT}usr/sbin/ruby-config" ruby$MY_SUFFIX - fi - elog - elog "You can change the default ruby interpreter by ${ROOT}usr/sbin/ruby-config" - elog -} - -pkg_postrm() { - if [[ ! -n $(readlink "${ROOT}"usr/bin/ruby) ]] ; then - "${ROOT}usr/sbin/ruby-config" ruby$MY_SUFFIX - fi -} |