blob: 88b93c0b8b1abd71a179a4ec1c94534c5c06a951 [file] [log] [blame]
# Copyright 1999-2015 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 )
)
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
# 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
}