twww-client/elinks: Add 0.12 with libressl support. - parlay - yet another gentoo overlay HTML git clone https://git.parazyd.org/parlay DIR Log DIR Files DIR Refs DIR README --- DIR commit 9a02e53f07f8ddd3a57f38d4dd4bb29ec68b57db DIR parent 21d07082abb72a7af84a004c97829f1154da41d5 HTML Author: parazyd <parazyd@dyne.org> Date: Wed, 26 Oct 2016 11:58:19 +0200 www-client/elinks: Add 0.12 with libressl support. Diffstat: A www-client/elinks/Manifest | 3 +++ A www-client/elinks/elinks-0.12_pre6… | 190 ++++++++++++++++++++++++++++++ A www-client/elinks/files/elinks-0.1… | 79 +++++++++++++++++++++++++++++++ A www-client/elinks/files/elinks-0.1… | 16 ++++++++++++++++ A www-client/elinks/files/elinks-0.1… | 30 ++++++++++++++++++++++++++++++ A www-client/elinks/files/elinks-0.1… | 12 ++++++++++++ A www-client/elinks/files/elinks-0.1… | 187 +++++++++++++++++++++++++++++++ A www-client/elinks/files/elinks-0.1… | 124 +++++++++++++++++++++++++++++++ A www-client/elinks/files/elinks-0.1… | 12 ++++++++++++ A www-client/elinks/files/elinks-999… | 51 +++++++++++++++++++++++++++++++ A www-client/elinks/files/libressl.p… | 18 ++++++++++++++++++ 11 files changed, 722 insertions(+), 0 deletions(-) --- DIR diff --git a/www-client/elinks/Manifest b/www-client/elinks/Manifest t@@ -0,0 +1,3 @@ +DIST elinks-0.10.4.conf.bz2 5370 SHA256 cb0fcd10cc592697de5d8d9358447a770d2b4613b17b629c0f0e05965baa6209 SHA512 defdc743d78f9620eac60f4cfc1c07ecc6d18d1d771899b6eec184bea818d612ef110219127284a5b7c53ca07746fc90fbeb97344b3aef7f1f894ed839443296 WHIRLPOOL c6dd65a281a0f48461ddac18e9981c029acd4906a294a02cfcf40429a18b443dee92a7c3317e704dc61fb519df3fa80da14c49a3f138640e223b64372669aa3a +DIST elinks-0.12_pre5-js185-patches.tar.bz2 13820 SHA256 64f7c4a657128983d054bd0d2027e11facd42fcc86bd8dfdf5b27ffbacbd54c8 SHA512 1552aeacdecb0a2db357402e0474d6b4810c767609d1d399b3350a4bcdc21ba9c0bde5a5d0bffd1d7b27d41ac46e3e85ae2527d715a1645a2dd51ab14b8eab3c WHIRLPOOL e6f7746407cd6654c19d4bc71dc4d0fd63070a78f7bc7c43f11f6e388268de963748597b0a2fd03cd22632651800b990ec0819d54799be9bfc4589332e11dbdd +DIST elinks-0.12pre6.tar.bz2 2854500 SHA256 383646375b8a325bef5a132c8300caab90eb0b842c5f8eff68febc00e29acada SHA512 bff70faafea7c4739695a7fad8f659109894b318588f5a035a5594a6053238789259ce6067c2f5cb97448f138db143adebb23f84bf689bea209ba37573484b7f WHIRLPOOL 2501e7ed557dfcc5ca4175bda3452d8c1dc42c2db2f18a0263373b6f28966619e3b3c75b0ed3d9cb4e04d177bd5d88ecdedda541531adfcd35b6ef4fe4920ed1 DIR diff --git a/www-client/elinks/elinks-0.12_pre6-r99.ebuild b/www-client/elinks/elinks-0.12_pre6-r99.ebuild t@@ -0,0 +1,190 @@ +# Copyright 1999-2016 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI="5" +inherit eutils autotools flag-o-matic + +MY_P="${P/_/}" +DESCRIPTION="Advanced and well-established text-mode web browser" +HOMEPAGE="http://elinks.or.cz/" +SRC_URI="http://elinks.or.cz/download/${MY_P}.tar.bz2 + https://dev.gentoo.org/~spock/portage/distfiles/elinks-0.10.4.conf.bz2 + https://dev.gentoo.org/~axs/distfiles/${PN}-0.12_pre5-js185-patches.tar.bz2" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd ~x86-freebsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~x64-solaris ~x86-solaris" +IUSE="bittorrent bzip2 debug finger ftp gc gopher gpm guile idn ipv6 + javascript libressl lua +mouse nls nntp perl ruby samba ssl unicode X xml zlib" +RESTRICT="test" + +DEPEND=" + bzip2? ( >=app-arch/bzip2-1.0.2 ) + gc? ( dev-libs/boehm-gc ) + ssl? ( + !libressl? ( dev-libs/openssl:0= ) + libressl? ( dev-libs/libressl:0= ) + ) + xml? ( >=dev-libs/expat-1.95.4 ) + X? ( x11-libs/libX11 x11-libs/libXt ) + zlib? ( >=sys-libs/zlib-1.1.4 ) + lua? ( >=dev-lang/lua-5:0 ) + gpm? ( >=sys-libs/ncurses-5.2:0 >=sys-libs/gpm-1.20.0-r5 ) + guile? ( >=dev-scheme/guile-1.6.4-r1[deprecated,discouraged] ) + idn? ( net-dns/libidn ) + perl? ( dev-lang/perl ) + ruby? ( dev-lang/ruby:= dev-ruby/rubygems ) + samba? ( net-fs/samba ) + javascript? ( dev-lang/spidermonkey:0 )" +RDEPEND="${DEPEND}" + +S="${WORKDIR}/${MY_P}" + +src_prepare() { + cd "${WORKDIR}" + epatch "${FILESDIR}"/${PN}-0.10.4.conf-syscharset.diff + mv "${PN}-0.10.4.conf" "${PN}.conf" + if ! use ftp ; then + sed -i -e 's/\(.*protocol.ftp.*\)/# \1/' ${PN}.conf + fi + sed -i -e 's/\(.*set protocol.ftp.use_epsv.*\)/# \1/' ${PN}.conf + cd "${S}" + + if use lua && has_version ">=dev-lang/lua-5.1"; then + epatch "${FILESDIR}"/${PN}-0.11.2-lua-5.1.patch + fi + + epatch "${FILESDIR}"/${PN}-9999-parallel-make.patch + epatch "${FILESDIR}"/${PN}-0.12_pre5-compilation-fix.patch + + if use javascript ; then + if has_version ">=dev-lang/spidermonkey-1.8"; then + if has_version ">=dev-lang/spidermonkey-1.8.5"; then + epatch "${WORKDIR}"/patches/${PN}-0.12_pre5-js185-1-heartbeat.patch + epatch "${WORKDIR}"/patches/${PN}-0.12_pre5-js185-2-up.patch + epatch "${WORKDIR}"/patches/${PN}-0.12_pre5-js185-3-histback.patch + epatch "${FILESDIR}"/${PN}-0.12_pre5-sm185-jsval-fixes.patch +# if has_version ">=dev-lang/spidermonkey-1.8.7"; then +# # fix lib order in configure check and add mozjs187 +# # (these seds are necessary so that @preserved-libs copies are not used) +# sed -i -e 's:for spidermonkeylib in js .*$:for spidermonkeylib in mozjs187 mozjs185 mozjs js smjs; do:' \ +# configure.in || die +# else + # fix lib order in configure check + # (these seds are necessary so that @preserved-libs copies are not used) + sed -i -e 's:for spidermonkeylib in js .*$:for spidermonkeylib in mozjs185 mozjs js smjs; do:' \ + configure.in || die +# fi + else + # fix lib order in configure check + # (these seds are necessary so that @preserved-libs copies are not used) + epatch "${FILESDIR}"/${MY_P}-spidermonkey-callback.patch + sed -i -e 's:for spidermonkeylib in js .*$:for spidermonkeylib in mozjs js smjs; do:' \ + configure.in || die + fi + fi + fi + epatch "${FILESDIR}"/${PN}-0.12_pre5-ruby-1.9.patch + + epatch "${FILESDIR}"/libressl.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 +} + +src_configure() { + # NOTE about GNUTSL SSL support (from the README -- 25/12/2002) + # As GNUTLS is not yet 100% stable and its support in ELinks is not so well + # tested yet, it's recommended for users to give a strong preference to OpenSSL whenever possible. + local myconf="" + + if use debug ; then + myconf="--enable-debug" + else + myconf="--enable-fastmem" + fi + + if use ssl ; then + myconf="${myconf} --with-openssl=${EPREFIX}/usr" + else + myconf="${myconf} --without-openssl --without-gnutls" + fi + + econf \ + --sysconfdir="${EPREFIX}"/etc/elinks \ + --enable-leds \ + --enable-88-colors \ + --enable-256-colors \ + --enable-true-color \ + --enable-html-highlight \ + $(use_with gpm) \ + $(use_with zlib) \ + $(use_with bzip2 bzlib) \ + $(use_with gc) \ + $(use_with X x) \ + $(use_with lua) \ + $(use_with guile) \ + $(use_with perl) \ + $(use_with ruby) \ + $(use_with idn) \ + $(use_with javascript spidermonkey) \ + $(use_enable bittorrent) \ + $(use_enable nls) \ + $(use_enable ipv6) \ + $(use_enable ftp) \ + $(use_enable gopher) \ + $(use_enable nntp) \ + $(use_enable finger) \ + $(use_enable samba smb) \ + $(use_enable mouse) \ + $(use_enable xml xbel) \ + ${myconf} +} + +src_compile() { + emake V=1 +} + +src_install() { + emake V=1 DESTDIR="${D}" install + + insopts -m 644 ; insinto /etc/elinks + doins "${WORKDIR}"/elinks.conf + newins contrib/keybind-full.conf keybind-full.sample + newins contrib/keybind.conf keybind.conf.sample + + dodoc AUTHORS BUGS ChangeLog INSTALL NEWS README SITES THANKS TODO doc/*.* + docinto contrib ; dodoc contrib/{README,colws.diff,elinks[-.]vim*} + insinto /usr/share/doc/${PF}/contrib/lua ; doins contrib/lua/{*.lua,elinks-remote} + insinto /usr/share/doc/${PF}/contrib/conv ; doins contrib/conv/*.* + insinto /usr/share/doc/${PF}/contrib/guile ; doins contrib/guile/*.scm + + # Remove some conflicting files on OSX. The files provided by OSX 10.4 + # are more or less the same. -- Fabian Groffen (2005-06-30) + rm -f "${ED}"/usr/share/locale/locale.alias "${ED}"/usr/lib/charset.alias || die +} + +pkg_postinst() { + einfo "This ebuild provides a default config for ELinks." + einfo "Please check /etc/elinks/elinks.conf" + einfo + einfo "You may want to convert your html.cfg and links.cfg of" + einfo "Links or older ELinks versions to the new ELinks elinks.conf" + einfo "using /usr/share/doc/${PF}/contrib/conv/conf-links2elinks.pl" + einfo + einfo "Please have a look at /etc/elinks/keybind-full.sample and" + einfo "/etc/elinks/keybind.conf.sample for some bindings examples." + einfo + einfo "You will have to set your TERM variable to 'xterm-256color'" + einfo "to be able to use 256 colors in elinks." + echo +} DIR diff --git a/www-client/elinks/files/elinks-0.10.4.conf-syscharset.diff b/www-client/elinks/files/elinks-0.10.4.conf-syscharset.diff t@@ -0,0 +1,79 @@ +--- elinks-0.10.4.conf 2005-04-08 15:29:49.000000000 -0700 ++++ elinks-0.10.4-syscharset.conf 2006-11-04 00:26:26.000000000 -0800 +@@ -12,8 +12,6 @@ + # obsolete config.saving_style. You shouldn't touch it. + set config.saving_style_w = 1 + +- ## terminal.linux.charset <codepage> +- set terminal.linux.charset = "us-ascii" + ## terminal.linux.transparency [0|1] + set terminal.linux.transparency = 1 + ## terminal.linux.colors [0|1] +@@ -29,8 +27,6 @@ + ## terminal.linux.type <num> + set terminal.linux.type = 2 + +- ## terminal.vt100.charset <codepage> +- set terminal.vt100.charset = "us-ascii" + ## terminal.vt100.transparency [0|1] + set terminal.vt100.transparency = 1 + ## terminal.vt100.colors [0|1] +@@ -46,8 +42,6 @@ + ## terminal.vt100.type <num> + set terminal.vt100.type = 1 + +- ## terminal.vt110.charset <codepage> +- set terminal.vt110.charset = "us-ascii" + ## terminal.vt110.transparency [0|1] + set terminal.vt110.transparency = 1 + ## terminal.vt110.colors [0|1] +@@ -63,8 +57,6 @@ + ## terminal.vt110.type <num> + set terminal.vt110.type = 1 + +- ## terminal.xterm.charset <codepage> +- set terminal.xterm.charset = "us-ascii" + ## terminal.xterm.transparency [0|1] + set terminal.xterm.transparency = 1 + ## terminal.xterm.colors [0|1] +@@ -80,8 +72,6 @@ + ## terminal.xterm.type <num> + set terminal.xterm.type = 1 + +- ## terminal.xterm-color.charset <codepage> +- set terminal.xterm-color.charset = "us-ascii" + ## terminal.xterm-color.transparency [0|1] + set terminal.xterm-color.transparency = 1 + ## terminal.xterm-color.colors [0|1] +@@ -96,8 +86,7 @@ + set terminal.xterm-color.m11_hack = 0 + ## terminal.xterm-color.type <num> + set terminal.xterm-color.type = 1 +- ## terminal.screen.charset <codepage> +- set terminal.screen.charset = "us-ascii" ++ + ## terminal.screen.transparency [0|1] + set terminal.screen.transparency = 1 + ## terminal.screen.colors [0|1] +@@ -270,10 +259,6 @@ + + + +- ## document.codepage.assume <codepage> +- # Default document codepage. +- set document.codepage.assume = "ISO-8859-1" +- + ## document.codepage.force_assumed [0|1] + # Ignore charset info sent by server. + set document.codepage.force_assumed = 0 +@@ -343,10 +328,6 @@ + + + +- ## document.dump.codepage <codepage> +- # Codepage used in dump output. +- set document.dump.codepage = "us-ascii" +- + ## document.dump.width <num> + # Width of screen in characters when dumping a HTML document. + set document.dump.width = 80 DIR diff --git a/www-client/elinks/files/elinks-0.11.2-lua-5.1.patch b/www-client/elinks/files/elinks-0.11.2-lua-5.1.patch t@@ -0,0 +1,16 @@ +diff -Naurp elinks-0.11.2/src/scripting/lua/core.c elinks-0.11.2-lua/src/scripting/lua/core.c +--- elinks-0.11.2/src/scripting/lua/core.c 2006-11-19 14:46:37.000000000 +0100 ++++ elinks-0.11.2-lua/src/scripting/lua/core.c 2007-03-10 15:34:47.000000000 +0100 +@@ -646,11 +646,7 @@ init_lua(struct module *module) + { + L = lua_open(); + +- luaopen_base(L); +- luaopen_table(L); +- luaopen_io(L); +- luaopen_string(L); +- luaopen_math(L); ++ luaL_openlibs(L); + + lua_register(L, LUA_ALERT, l_alert); + lua_register(L, "current_url", l_current_url); DIR diff --git a/www-client/elinks/files/elinks-0.11.5-makefile.patch b/www-client/elinks/files/elinks-0.11.5-makefile.patch t@@ -0,0 +1,30 @@ +diff -Naurp elinks-0.11.5-orig/Makefile.lib elinks-0.11.5/Makefile.lib +--- elinks-0.11.5-orig/Makefile.lib 2008-11-30 13:30:08.000000000 +0100 ++++ elinks-0.11.5/Makefile.lib 2008-11-30 19:50:46.000000000 +0100 +@@ -95,9 +95,14 @@ endif + + # All files in $(OBJS) and any $(subdir)/lib.o are linked into lib.o. + # Sort them to filter out duplicated and get uniform order. ++SUBDIR_LIB_O_DEPS = \ ++ $(foreach subdir,$(sort $(SUBDIRS)),$(subdir)/$(LIB_O_NAME)) ++ + LIB_O_DEPS = \ +- $(sort $(filter-out $(LIB_O_NAME),$(OBJS))) \ +- $(foreach subdir,$(sort $(SUBDIRS)),$(wildcard $(subdir)/$(LIB_O_NAME))) ++ $(sort $(filter-out $(LIB_O_NAME),$(OBJS))) $(SUBDIR_LIB_O_DEPS) ++ ++$(SUBDIR_LIB_O_DEPS): ++ @$(call ncmd,recmake,$(subst /$(LIB_O_NAME),,$@),all) || exit 1; + + $(LIB_O_NAME): $(LIB_O_DEPS) + $(call cmd,ld_objs) +@@ -222,7 +227,8 @@ $(RULES_LOCAL): + + # Default deps + rule_deps = $(1)-recursive $(1)-default $(1)-local +-all: $(call rule_deps,all) ++all: all-default all-local ++ @$(MAKE) all-recursive + install: $(call rule_deps,install) + clean: $(call rule_deps,clean) + cleanall: $(call rule_deps,cleanall) DIR diff --git a/www-client/elinks/files/elinks-0.12_pre5-compilation-fix.patch b/www-client/elinks/files/elinks-0.12_pre5-compilation-fix.patch t@@ -0,0 +1,12 @@ +diff -Naurp elinks-0.12pre5-orig//src/intl/charsets.c elinks-0.12pre5/src/intl/charsets.c +--- elinks-0.12pre5-orig//src/intl/charsets.c 2010-04-04 12:19:02.000000000 +0200 ++++ elinks-0.12pre5/src/intl/charsets.c 2010-04-04 12:19:20.000000000 +0200 +@@ -821,7 +821,7 @@ free_utf_table(void) + + /* Cast away const. */ + for (i = 128; i < 256; i++) +- mem_free((unsigned char *) utf_table[i].u.str); ++ mem_free(utf_table[i].u.str); + } + + static struct conv_table * DIR 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 t@@ -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); + } DIR diff --git a/www-client/elinks/files/elinks-0.12_pre5-sm185-jsval-fixes.patch b/www-client/elinks/files/elinks-0.12_pre5-sm185-jsval-fixes.patch t@@ -0,0 +1,124 @@ +--- a/src/scripting/smjs/action_object.c 2012-06-28 11:46:58.000000000 -0400 ++++ b/src/scripting/smjs/action_object.c 2012-06-28 11:52:42.000000000 -0400 +@@ -50,7 +50,7 @@ + assert(smjs_ctx); + if_assert_failed return JS_FALSE; + +- value = JS_FALSE; ++ value = JSVAL_FALSE; + + if (JS_TRUE != JS_ValueToObject(ctx, argv[-2], &fn_obj)) { + JS_SET_RVAL(ctx, rval, value); +@@ -76,7 +76,7 @@ + + do_action(hop->ses, hop->action_id, 1); + +- value = JS_TRUE; ++ value = JSVAL_TRUE; + JS_SET_RVAL(ctx, rval, value); + + return JS_TRUE; +--- a/src/scripting/smjs/bookmarks.c 2012-06-28 11:57:40.000000000 -0400 ++++ b/src/scripting/smjs/bookmarks.c 2012-06-28 12:08:20.000000000 -0400 +@@ -250,11 +250,20 @@ + + /* @bookmark_folder_class.getProperty */ + static JSBool ++#if JS_VERSION >= 185 ++bookmark_folder_get_property(JSContext *ctx, JSObject *obj, jsid iid, jsval *vp) ++#else + bookmark_folder_get_property(JSContext *ctx, JSObject *obj, jsid id, jsval *vp) ++#endif + { + struct bookmark *bookmark; + struct bookmark *folder; + unsigned char *title = NULL; ++#if JS_VERSION >= 185 ++ jsval id; ++ if (!JS_IdToValue(ctx,iid,&id)) ++ return JS_FALSE; ++#endif + + /* This can be called if @obj if not itself an instance of the + * appropriate class but has one in its prototype chain. Fail +--- a/src/scripting/smjs/elinks_object.c 2012-06-28 12:11:15.000000000 -0400 ++++ b/src/scripting/smjs/elinks_object.c 2012-06-28 12:14:50.000000000 -0400 +@@ -185,7 +185,7 @@ + method, rval)) + return JS_FALSE; + +- if (JSVAL_VOID == *rval) ++ if (JSVAL_IS_VOID(*rval)) + return JS_FALSE; + + return JS_CallFunctionValue(smjs_ctx, smjs_elinks_object, +--- a/src/scripting/smjs/globhist.c 2012-06-28 12:20:25.000000000 -0400 ++++ b/src/scripting/smjs/globhist.c 2012-06-28 12:20:15.000000000 -0400 +@@ -201,11 +201,20 @@ + + /* @smjs_globhist_class.getProperty */ + static JSBool +-smjs_globhist_get_property(JSContext *ctx, JSObject *obj, jsid id, jsval *vp) ++#if JS_VERSION >= 185 ++smjs_globhist_get_property(JSContext *ctx, JSObject *obj, jsid iid, jsval *vp) ++#else ++smjs_globhist_get_property(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) ++#endif + { + JSObject *jsobj; + unsigned char *uri_string; + struct global_history_item *history_item; ++#if JS_VERSION >= 185 ++ jsval id; ++ if (!JS_IdToValue(ctx,iid,&id)) ++ return JS_FALSE; ++#endif + + uri_string = JS_EncodeString(ctx, JS_ValueToString(ctx, id)); + if (!uri_string) goto ret_null; +--- a/src/scripting/smjs/keybinding.c 2012-06-28 12:21:39.000000000 -0400 ++++ b/src/scripting/smjs/keybinding.c.new 2012-06-28 12:48:00.000000000 -0400 +@@ -17,11 +17,20 @@ + + /* @keymap_class.getProperty */ + static JSBool +-keymap_get_property(JSContext *ctx, JSObject *obj, jsid id, jsval *vp) ++#if JS_VERSION >= 185 ++keymap_get_property(JSContext *ctx, JSObject *obj, jsid iid, jsval *vp) ++#else ++keymap_get_property(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) ++#endif + { + unsigned char *action_str; + const unsigned char *keystroke_str; + int *data; ++#if JS_VERSION >= 185 ++ jsval id; ++ if (!JS_IdToValue(ctx,iid,&id)) ++ return JS_FALSE; ++#endif + + /* This can be called if @obj if not itself an instance of the + * appropriate class but has one in its prototype chain. Fail +@@ -70,11 +79,20 @@ + + /* @keymap_class.setProperty */ + static JSBool +-keymap_set_property(JSContext *ctx, JSObject *obj, jsid id, JSBool strict, jsval *vp) ++#if JS_VERSION >= 185 ++keymap_set_property(JSContext *ctx, JSObject *obj, jsid iid, JSBool strict, jsval *vp) ++#else ++keymap_set_property(JSContext *ctx, JSObject *obj, jsval id, JSBool strict, jsval *vp) ++#endif + { + int *data; + unsigned char *keymap_str; + const unsigned char *keystroke_str; ++#if JS_VERSION >= 185 ++ jsval id; ++ if (!JS_IdToValue(ctx,iid,&id)) ++ return JS_FALSE; ++#endif + + /* This can be called if @obj if not itself an instance of the + * appropriate class but has one in its prototype chain. Fail DIR diff --git a/www-client/elinks/files/elinks-0.12pre5-spidermonkey-callback.patch b/www-client/elinks/files/elinks-0.12pre5-spidermonkey-callback.patch t@@ -0,0 +1,12 @@ +diff -Naurp elinks-0.12pre5-orig/src/ecmascript/spidermonkey.c elinks-0.12pre5/src/ecmascript/spidermonkey.c +--- elinks-0.12pre5-orig/src/ecmascript/spidermonkey.c 2011-06-12 01:03:02.427000686 +0200 ++++ elinks-0.12pre5/src/ecmascript/spidermonkey.c 2011-06-12 01:03:31.368000736 +0200 +@@ -130,7 +130,7 @@ setup_safeguard(struct ecmascript_interp + JSContext *ctx) + { + interpreter->exec_start = time(NULL); +- JS_SetBranchCallback(ctx, safeguard); ++ JS_SetOperationCallback(ctx, safeguard); + } + + DIR diff --git a/www-client/elinks/files/elinks-9999-parallel-make.patch b/www-client/elinks/files/elinks-9999-parallel-make.patch t@@ -0,0 +1,51 @@ +--- a/Makefile.lib 2014-05-30 13:45:11.756422117 -0400 ++++ b/Makefile.lib 2014-05-30 13:47:22.626423230 -0400 +@@ -117,7 +117,7 @@ + $(sort $(filter-out $(LIB_O_NAME),$(OBJS))) \ + $(foreach subdir,$(sort $(SUBDIRS)),$(wildcard $(subdir)/$(LIB_O_NAME))) + +-$(LIB_O_NAME): $(LIB_O_DEPS) ++$(LIB_O_NAME): all-recursive.built $(LIB_O_DEPS) + $(call cmd,ld_objs) + + DEP_FILES_1 = $(foreach src,$(OBJS),.deps/$(src)) +@@ -260,21 +260,36 @@ + # remaining subdirectories, but return an error at the end. + $(RULES_REC): + ifneq (,$(findstring k,$(MAKEFLAGS))) +- @suberr=0; \ ++ @+suberr=0; \ + $(foreach subdir,$(sort $(SUBDIRS)), \ + $(call ncmd,recmake,$(subdir),$(subst -recursive,,$@)) || suberr=1;) \ + exit $$suberr + else +- @$(foreach subdir,$(sort $(SUBDIRS)), \ ++ @+$(foreach subdir,$(sort $(SUBDIRS)), \ + $(call ncmd,recmake,$(subdir),$(subst -recursive,,$@)) || exit 1;) + endif + ++all-recursive.built: ++ifneq (,$(findstring k,$(MAKEFLAGS))) ++ @+suberr=0; \ ++ $(foreach subdir,$(sort $(SUBDIRS)), \ ++ $(call ncmd,recmake,$(subdir),$(subst -recursive.built,,$@)) || suberr=1;) \ ++ [ $$suberr == 0 ] && touch $@; \ ++ exit $$suberr ++else ++ @+$(foreach subdir,$(sort $(SUBDIRS)), \ ++ $(call ncmd,recmake,$(subdir),$(subst -recursive.built,,$@)) || exit 1;) \ ++ touch $@ ++endif ++ ++CLEAN += all-recursive.built ++ + # Dummy -local rules + $(RULES_LOCAL): + + # Default deps + rule_deps = $(1)-recursive $(1)-default $(1)-local +-all: $(call rule_deps,all) ++all: $(subst recursive,recursive.built,$(call rule_deps,all)) + install: $(call rule_deps,install) + clean: $(call rule_deps,clean) + cleanall: $(call rule_deps,cleanall) DIR diff --git a/www-client/elinks/files/libressl.patch b/www-client/elinks/files/libressl.patch t@@ -0,0 +1,18 @@ +diff --git a/elinks-0.12pre6/src/network/ssl/ssl.c b/elinks-0.12pre6/src/network/ssl/ssl.c +index c008121..dedce62 100644 +--- a/elinks-0.12pre6/src/network/ssl/ssl.c ++++ b/elinks-0.12pre6/src/network/ssl/ssl.c +@@ -50,11 +50,13 @@ init_openssl(struct module *module) + * cannot initialize the PRNG and so every attempt to use SSL fails. + * It's actually an OpenSSL FAQ, and according to them, it's up to the + * application coders to seed the RNG. -- William Yodlowsky */ ++#ifdef HAVE_SSL_RAND_EGD + if (RAND_egd(RAND_file_name(f_randfile, sizeof(f_randfile))) < 0) { + /* Not an EGD, so read and write to it */ + if (RAND_load_file(f_randfile, -1)) + RAND_write_file(f_randfile); + } ++#endif + + SSLeay_add_ssl_algorithms(); + context = SSL_CTX_new(SSLv23_client_method());