You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gentoo-overlay/app-text/info2html/info2html-2.0.ebuild

73 lines
1.9 KiB

# Copyright 1999-2007 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
inherit eutils webapp
DESCRIPTION="Converts GNU .info files to HTML"
HOMEPAGE="http://info2html.sourceforge.net/"
SRC_URI="mirror://sourceforge/info2html/${P}.tar"
LICENSE="freedist"
# webapp.eclass deals with SLOTting
#SLOT="0"
IUSE=""
KEYWORDS="alpha amd64 hppa sparc x86"
RDEPEND="dev-lang/perl"
src_unpack() {
local infos state line i
unpack ${A}
cd ${S}
# filter user-provided data to prevent cross-frame/site scripting attacks
# bug #91354 (fix from Werner Fink)
epatch "${FILESDIR}"/info2html-2.0-xss.patch
# Fixup INFODIR for paths in /etc/profile.env INFOPATH
infos=$(grep "^export INFOPATH=" /etc/profile.env | tail -n 1 |\
sed -e "s:^export INFOPATH=:INFOPATH=:;s:'::g")
# Default path to /usr/share/info and /usr/local/share/info
[[ -z ${infos} ]] && export infos="/usr/share/info"
infos=( ${INFOPATH//:/ } )
mv ${S}/info2html.conf ${S}/info2html.conf.orig
touch ${S}/info2html.conf
state="copy"
inserted="no"
while read line; do
[[ ${line} == "@INFODIR = (" ]] && state="insert"
[[ ${line} == ");" ]] && state="copy"
case ${state} in
"copy")
echo ${line} >> ${S}/info2html.conf
;;
"insert")
echo ${line} >> ${S}/info2html.conf
for info in "${infos[@]}"; do
echo " '${info}'," >> ${S}/info2html.conf
done
echo " '/usr/local/share/info'" >> ${S}/info2html.conf
state="skip"
inserted="yes"
;;
"skip")
;;
esac
done < ${S}/info2html.conf.orig
[[ ${state} == "copy" && ${inserted} == "yes" ]] ||
die "Setting up info2html.conf failed"
}
src_install() {
webapp_src_preinst
exeinto ${MY_CGIBINDIR}
cp info2html infocat info2html.css info2html.conf ${D}/${MY_CGIBINDIR}
# README zapped by info2html-gentoo.patch; it only listed
# the homepage so it doesn't add anything useful.
# dodoc README
webapp_src_install
}