diff options
author | Pacho Ramos <pacho@gentoo.org> | 2012-09-16 11:06:11 +0000 |
---|---|---|
committer | Pacho Ramos <pacho@gentoo.org> | 2012-09-16 11:06:11 +0000 |
commit | 94041a81dfd6355c25d7bd1b58b14a750d99b88f (patch) | |
tree | 679224466047b425766375841404bca26bd87790 /www-client/elinks | |
parent | Version bump to 1.5.1 (diff) | |
download | gentoo-2-94041a81dfd6355c25d7bd1b58b14a750d99b88f.tar.gz gentoo-2-94041a81dfd6355c25d7bd1b58b14a750d99b88f.tar.bz2 gentoo-2-94041a81dfd6355c25d7bd1b58b14a750d99b88f.zip |
Fix build against ruby, bug #424789 by tman and patch by Ian Abbott.
(Portage version: 2.1.11.17/cvs/Linux x86_64)
Diffstat (limited to 'www-client/elinks')
-rw-r--r-- | www-client/elinks/ChangeLog | 6 | ||||
-rw-r--r-- | www-client/elinks/elinks-0.12_pre5-r2.ebuild | 11 | ||||
-rw-r--r-- | www-client/elinks/files/elinks-0.12_pre5-ruby-1.9.patch | 187 |
3 files changed, 201 insertions, 3 deletions
diff --git a/www-client/elinks/ChangeLog b/www-client/elinks/ChangeLog index 0367f1052652..f41e1db1cc58 100644 --- a/www-client/elinks/ChangeLog +++ b/www-client/elinks/ChangeLog @@ -1,6 +1,10 @@ # ChangeLog for www-client/elinks # Copyright 1999-2012 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/www-client/elinks/ChangeLog,v 1.144 2012/07/04 18:45:08 axs Exp $ +# $Header: /var/cvsroot/gentoo-x86/www-client/elinks/ChangeLog,v 1.145 2012/09/16 11:06:11 pacho Exp $ + + 16 Sep 2012; Pacho Ramos <pacho@gentoo.org> + +files/elinks-0.12_pre5-ruby-1.9.patch, elinks-0.12_pre5-r2.ebuild: + Fix build against ruby, bug #424789 by tman and patch by Ian Abbott. 04 Jul 2012; Ian Stakenvicius <axs@gentoo.org> elinks-0.12_pre5-r2.ebuild, +files/elinks-0.12_pre5-ruby-config.patch: diff --git a/www-client/elinks/elinks-0.12_pre5-r2.ebuild b/www-client/elinks/elinks-0.12_pre5-r2.ebuild index fcb793d1f4bf..9ed08994b369 100644 --- a/www-client/elinks/elinks-0.12_pre5-r2.ebuild +++ b/www-client/elinks/elinks-0.12_pre5-r2.ebuild @@ -1,6 +1,6 @@ # Copyright 1999-2012 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/www-client/elinks/elinks-0.12_pre5-r2.ebuild,v 1.3 2012/07/04 18:45:08 axs Exp $ +# $Header: /var/cvsroot/gentoo-x86/www-client/elinks/elinks-0.12_pre5-r2.ebuild,v 1.4 2012/09/16 11:06:11 pacho Exp $ EAPI=4 inherit eutils autotools flag-o-matic @@ -68,9 +68,16 @@ src_prepare() { epatch "${FILESDIR}"/${MY_P}-spidermonkey-callback.patch fi fi - epatch "${FILESDIR}"/${P}-ruby-config.patch + epatch "${FILESDIR}"/${P}-ruby-1.9.patch + # Regenerate acinclude.m4 - based on autogen.sh. + cat > acinclude.m4 <<- _EOF + dnl Automatically generated from config/m4/ files. + dnl Do not modify! + _EOF + cat config/m4/*.m4 >> acinclude.m4 sed -i -e 's/-Werror//' configure* + eautoreconf } diff --git a/www-client/elinks/files/elinks-0.12_pre5-ruby-1.9.patch b/www-client/elinks/files/elinks-0.12_pre5-ruby-1.9.patch new file mode 100644 index 000000000000..1e07bcde190a --- /dev/null +++ b/www-client/elinks/files/elinks-0.12_pre5-ruby-1.9.patch @@ -0,0 +1,187 @@ +diff -urp a/config/m4/ruby.m4 b/config/m4/ruby.m4 +--- a/config/m4/ruby.m4 2009-07-07 13:23:17.000000000 +0100 ++++ b/config/m4/ruby.m4 2012-09-10 18:23:09.000000000 +0100 +@@ -32,36 +32,40 @@ if test "$CONFIG_SCRIPTING_RUBY" = "yes" + if test "$CONFIG_SCRIPTING_RUBY" != "no"; then + + AC_MSG_CHECKING(Ruby version) +- if $CONFIG_SCRIPTING_RUBY -e 'exit((VERSION or RUBY_VERSION) >= "1.6.0")' >/dev/null 2>/dev/null; then ++ if $CONFIG_SCRIPTING_RUBY -e 'exit((VERSION rescue RUBY_VERSION) >= "1.6.0")' >/dev/null 2>/dev/null; then + ruby_version=`$CONFIG_SCRIPTING_RUBY -e 'puts "#{VERSION rescue RUBY_VERSION}"'` + AC_MSG_RESULT($ruby_version) + + AC_MSG_CHECKING(for Ruby header files) +- rubyhdrdir=`$CONFIG_SCRIPTING_RUBY -r mkmf -e 'print Config::CONFIG[["archdir"]] || $hdrdir' 2>/dev/null` ++ rubyhdrdir=`$CONFIG_SCRIPTING_RUBY -r mkmf -e 'print RbConfig::CONFIG[["rubyhdrdir"]] || RbConfig::CONFIG[["archdir"]] || $hdrdir' 2>/dev/null` + + if test "X$rubyhdrdir" != "X"; then + AC_MSG_RESULT($rubyhdrdir) + RUBY_CFLAGS="-I$rubyhdrdir" +- rubylibs=`$CONFIG_SCRIPTING_RUBY -r rbconfig -e 'print Config::CONFIG[["LIBS"]]'` ++ rubyarch=`$CONFIG_SCRIPTING_RUBY -r rbconfig -e 'print RbConfig::CONFIG[["arch"]]'` ++ if test -d "$rubyhdrdir/$rubyarch"; then ++ RUBY_CFLAGS="$RUBY_CFLAGS -I$rubyhdrdir/$rubyarch" ++ fi ++ rubylibs=`$CONFIG_SCRIPTING_RUBY -r rbconfig -e 'print RbConfig::CONFIG[["LIBS"]]'` + + if test "X$rubylibs" != "X"; then + RUBY_LIBS="$rubylibs" + fi + +- librubyarg=`$CONFIG_SCRIPTING_RUBY -r rbconfig -e 'print Config.expand(Config::CONFIG[["LIBRUBYARG"]])'` ++ librubyarg=`$CONFIG_SCRIPTING_RUBY -r rbconfig -e 'print RbConfig.expand(RbConfig::CONFIG[["LIBRUBYARG"]])'` + + if test -f "$rubyhdrdir/$librubyarg"; then + librubyarg="$rubyhdrdir/$librubyarg" + + else +- rubylibdir=`$CONFIG_SCRIPTING_RUBY -r rbconfig -e 'print Config.expand(Config::CONFIG[["libdir"]])'` ++ rubylibdir=`$CONFIG_SCRIPTING_RUBY -r rbconfig -e 'print RbConfig.expand(RbConfig::CONFIG[["libdir"]])'` + if test -f "$rubylibdir/$librubyarg"; then + librubyarg="$rubylibdir/$librubyarg" + elif test "$librubyarg" = "libruby.a"; then + dnl required on Mac OS 10.3 where libruby.a doesn't exist + librubyarg="-lruby" + else +- librubyarg=`$CONFIG_SCRIPTING_RUBY -r rbconfig -e "print '$librubyarg'.gsub(/-L\./, %'-L#{Config.expand(Config::CONFIG[\"libdir\"])}')"` ++ librubyarg=`$CONFIG_SCRIPTING_RUBY -r rbconfig -e "print '$librubyarg'.gsub(/-L\./, %'-L#{RbConfig.expand(RbConfig::CONFIG[\"libdir\"])}')"` + fi + fi + +@@ -69,7 +73,7 @@ if test "$CONFIG_SCRIPTING_RUBY" = "yes" + RUBY_LIBS="$librubyarg $RUBY_LIBS" + fi + +- rubyldflags=`$CONFIG_SCRIPTING_RUBY -r rbconfig -e 'print Config::CONFIG[["LDFLAGS"]]'` ++ rubyldflags=`$CONFIG_SCRIPTING_RUBY -r rbconfig -e 'print RbConfig::CONFIG[["LDFLAGS"]]'` + if test "X$rubyldflags" != "X"; then + LDFLAGS="$rubyldflags $LDFLAGS" + fi +@@ -86,6 +90,15 @@ if test "$CONFIG_SCRIPTING_RUBY" = "yes" + AC_MSG_RESULT(too old; need Ruby version 1.6.0 or later) + fi + fi ++ if test "$CONFIG_SCRIPTING_RUBY" = "yes"; then ++ AC_MSG_CHECKING([for rb_errinfo]) ++ AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <ruby.h>]], [[rb_errinfo();]])],have_rb_errinfo="yes",have_rb_errinfo="no") ++ AC_MSG_RESULT($have_rb_errinfo) ++ if test "$have_rb_errinfo" = "yes"; then ++ AC_DEFINE([HAVE_RB_ERRINFO], [1], ++ [Define to 1 if you have the `rb_errinfo' function.]) ++ fi ++ fi + fi + + EL_RESTORE_FLAGS +diff -urp a/src/scripting/ruby/core.c b/src/scripting/ruby/core.c +--- a/src/scripting/ruby/core.c 2009-07-07 13:23:17.000000000 +0100 ++++ b/src/scripting/ruby/core.c 2012-09-10 18:27:05.000000000 +0100 +@@ -76,10 +76,10 @@ erb_report_error(struct session *ses, in + break; + case TAG_RAISE: + case TAG_FATAL: +- eclass = CLASS_OF(ruby_errinfo); +- einfo = rb_obj_as_string(ruby_errinfo); ++ eclass = CLASS_OF(RB_ERRINFO); ++ einfo = rb_obj_as_string(RB_ERRINFO); + +- if (eclass == rb_eRuntimeError && RSTRING(einfo)->len == 0) { ++ if (eclass == rb_eRuntimeError && RSTRING_LEN(einfo) == 0) { + msg = "unhandled exception"; + + } else { +@@ -88,7 +88,7 @@ erb_report_error(struct session *ses, in + + epath = rb_class_path(eclass); + snprintf(buff, MAX_STR_LEN, "%s: %s", +- RSTRING(epath)->ptr, RSTRING(einfo)->ptr); ++ RSTRING_PTR(epath), RSTRING_PTR(einfo)); + + p = strchr(buff, '\n'); + if (p) *p = '\0'; +@@ -115,7 +115,7 @@ erb_module_message(VALUE self, VALUE str + unsigned char *message, *line_end; + + str = rb_obj_as_string(str); +- message = memacpy(RSTRING(str)->ptr, RSTRING(str)->len); ++ message = memacpy(RSTRING_PTR(str), RSTRING_LEN(str)); + if (!message) return Qnil; + + line_end = strchr(message, '\n'); +@@ -162,8 +162,8 @@ erb_stdout_p(int argc, VALUE *argv, VALU + * the inspect() method, which adds quotes to the strings, so + * gently ignore them. */ + +- ptr = RSTRING(substr)->ptr; +- len = RSTRING(substr)->len; ++ ptr = RSTRING_PTR(substr); ++ len = RSTRING_LEN(substr); + + if (*ptr == '"') + ptr++, len--; +diff -urp a/src/scripting/ruby/core.h b/src/scripting/ruby/core.h +--- a/src/scripting/ruby/core.h 2009-07-07 13:23:17.000000000 +0100 ++++ b/src/scripting/ruby/core.h 2012-09-10 18:26:25.000000000 +0100 +@@ -7,6 +7,20 @@ struct session; + + #include <ruby.h> /* for VALUE */ + ++#ifndef RSTRING_LEN ++#define RSTRING_LEN(string) (RSTRING(string)->len) ++#endif ++ ++#ifndef RSTRING_PTR ++#define RSTRING_PTR(string) (RSTRING(string)->ptr) ++#endif ++ ++#ifdef HAVE_RB_ERRINFO ++#define RB_ERRINFO (rb_errinfo()) ++#else ++#define RB_ERRINFO (ruby_errinfo) ++#endif ++ + VALUE erb_module; + + void alert_ruby_error(struct session *ses, unsigned char *msg); +diff -urp a/src/scripting/ruby/hooks.c b/src/scripting/ruby/hooks.c +--- a/src/scripting/ruby/hooks.c 2009-07-07 13:23:17.000000000 +0100 ++++ b/src/scripting/ruby/hooks.c 2012-09-10 17:53:48.000000000 +0100 +@@ -83,7 +83,7 @@ script_hook_goto_url(va_list ap, void *d + { + unsigned char *new_url; + +- new_url = memacpy(RSTRING(result)->ptr, RSTRING(result)->len); ++ new_url = memacpy(RSTRING_PTR(result), RSTRING_LEN(result)); + if (new_url) { + mem_free_set(url, new_url); + } +@@ -126,7 +126,7 @@ script_hook_follow_url(va_list ap, void + { + unsigned char *new_url; + +- new_url = memacpy(RSTRING(result)->ptr, RSTRING(result)->len); ++ new_url = memacpy(RSTRING_PTR(result), RSTRING_LEN(result)); + if (new_url) { + mem_free_set(url, new_url); + } +@@ -170,9 +170,9 @@ script_hook_pre_format_html(va_list ap, + switch (rb_type(result)) { + case T_STRING: + { +- int len = RSTRING(result)->len; ++ int len = RSTRING_LEN(result); + +- add_fragment(cached, 0, RSTRING(result)->ptr, len); ++ add_fragment(cached, 0, RSTRING_PTR(result), len); + normalize_cache_entry(cached, len); + + break; +@@ -216,7 +216,7 @@ script_hook_get_proxy(va_list ap, void * + { + unsigned char *proxy; + +- proxy = memacpy(RSTRING(result)->ptr, RSTRING(result)->len); ++ proxy = memacpy(RSTRING_PTR(result), RSTRING_LEN(result)); + if (proxy) { + mem_free_set(new_proxy_url, proxy); + } |