twww-client/elinks: Add 0.12 with libressl support. - parlay - yet another gentoo overlay
 (HTM) git clone https://git.parazyd.org/parlay
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
       ---
 (DIR) commit 9a02e53f07f8ddd3a57f38d4dd4bb29ec68b57db
 (DIR) parent 21d07082abb72a7af84a004c97829f1154da41d5
 (HTM) 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());