summaryrefslogtreecommitdiff
path: root/app-text/info2html
diff options
context:
space:
mode:
authorRobin H. Johnson <robbat2@gentoo.org>2015-08-08 13:49:04 -0700
committerRobin H. Johnson <robbat2@gentoo.org>2015-08-08 17:38:18 -0700
commit56bd759df1d0c750a065b8c845e93d5dfa6b549d (patch)
tree3f91093cdb475e565ae857f1c5a7fd339e2d781e /app-text/info2html
downloadgentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.gz
gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.xz
proj/gentoo: Initial commit
This commit represents a new era for Gentoo: Storing the gentoo-x86 tree in Git, as converted from CVS. This commit is the start of the NEW history. Any historical data is intended to be grafted onto this point. Creation process: 1. Take final CVS checkout snapshot 2. Remove ALL ChangeLog* files 3. Transform all Manifests to thin 4. Remove empty Manifests 5. Convert all stale $Header$/$Id$ CVS keywords to non-expanded Git $Id$ 5.1. Do not touch files with -kb/-ko keyword flags. Signed-off-by: Robin H. Johnson <robbat2@gentoo.org> X-Thanks: Alec Warner <antarus@gentoo.org> - did the GSoC 2006 migration tests X-Thanks: Robin H. Johnson <robbat2@gentoo.org> - infra guy, herding this project X-Thanks: Nguyen Thai Ngoc Duy <pclouds@gentoo.org> - Former Gentoo developer, wrote Git features for the migration X-Thanks: Brian Harring <ferringb@gentoo.org> - wrote much python to improve cvs2svn X-Thanks: Rich Freeman <rich0@gentoo.org> - validation scripts X-Thanks: Patrick Lauer <patrick@gentoo.org> - Gentoo dev, running new 2014 work in migration X-Thanks: Michał Górny <mgorny@gentoo.org> - scripts, QA, nagging X-Thanks: All of other Gentoo developers - many ideas and lots of paint on the bikeshed
Diffstat (limited to 'app-text/info2html')
-rw-r--r--app-text/info2html/Manifest1
-rw-r--r--app-text/info2html/files/info2html-2.0-xss.patch61
-rw-r--r--app-text/info2html/info2html-2.0.ebuild72
-rw-r--r--app-text/info2html/metadata.xml8
4 files changed, 142 insertions, 0 deletions
diff --git a/app-text/info2html/Manifest b/app-text/info2html/Manifest
new file mode 100644
index 00000000000..e87276780b0
--- /dev/null
+++ b/app-text/info2html/Manifest
@@ -0,0 +1 @@
+DIST info2html-2.0.tar 51200 SHA256 553f4d17e7edc13e5d27ae66e27b8702e1e83691adb3505a26e3af70276f84a5 SHA512 1b9ebc8bdd4101d24116fe22df9e5d3124300b2ac11585d8c7fff9652f7984983480442af9d9f86300f9684335d85b96f276a775c56c95e7fac85ebc46235e06 WHIRLPOOL b8212904cd11434479bdca42575818c73d5eef8d4e52fb8d980533ff27bdfb22db043352ba6a435c028aadd9ef8bffae440baebc8e296d7d8c555977ec89317a
diff --git a/app-text/info2html/files/info2html-2.0-xss.patch b/app-text/info2html/files/info2html-2.0-xss.patch
new file mode 100644
index 00000000000..a2254bdbbe2
--- /dev/null
+++ b/app-text/info2html/files/info2html-2.0-xss.patch
@@ -0,0 +1,61 @@
+diff -u info2html-2.0-orig/info2html info2html-2.0/info2html
+--- info2html-2.0-orig/info2html 2006-09-01 14:55:13.000000000 +0200
++++ info2html-2.0/info2html 2006-09-01 15:05:41.000000000 +0200
+@@ -42,7 +42,7 @@
+
+ use CGI;
+ $ENV{'REQUEST_METHOD'} or
+- print "Note: I'm really supposed to be run as a CGI!\n";
++ print "Note: I'm really supposed to be run as a CGI\!\n";
+
+ #-- patterns
+ $NODEBORDER = '\037\014?'; #-- delimiter of an info node
+@@ -62,7 +62,7 @@
+ #---------------------------------------------------------
+ # Don't reveal where we're looking... --jonh 5/20/97 (and reapplied 5/4/1998)
+ sub DieFileNotFound{
+- local($FileName) = @_;
++ local($FileName) = &XssEscape(@_);
+ #-- TEXT : error message if a file could not be opened
+ print <<"EOF";
+ <html><head><title>Info Files - Error Message</title>
+@@ -104,6 +104,28 @@
+ }
+
+ #----------------------------------------------------------
++# XssEscape
++#----------------------------------------------------------
++sub XssEscape {
++ local($Tag) = @_;
++ #-- output escaping is required to protect browser
++ # against `cross site' and `cross frame scripting'
++
++ $Tag =~ s/&/&amp;/gs; # ampersand
++ $Tag =~ s/#/&#35;/gs;
++ $Tag =~ s/;/&#59;/gs;
++ $Tag =~ s/[\000-\037\177-\237]/&iquest;/gs; # "ctrl" codes 0-31 and 127-159
++ $Tag =~ s/</&lt;/gs; # less-than symbol
++ $Tag =~ s/>/&gt;/gs; # greater-than symbol
++ $Tag =~ s/"/&quot;/gs; # double quote
++ $Tag =~ s/\240/&nbsp;/gs; # non-breaking space
++ $Tag =~ s/\255/&shy;/gs; # soft hyphen
++ # the rest is interpreted
++ # as ISO 8859-1
++ $Tag;
++}
++
++#----------------------------------------------------------
+ # ParsHeaderToken
+ #----------------------------------------------------------
+ # Parses the heaer line of an info node for a specific
+@@ -493,6 +515,8 @@
+ #----------------------------------------------------------
+ sub ReplyNotFoundMessage{
+ local($FileName,$Tag) = @_;
++ $FileName = &XssEscape($FileName);
++ $Tag = &XssEscape($Tag);
+ print <<"EOF";
+ <html><head><title>Info Files - Error Message</title>
+ $BOTS_STAY_AWAY
+Only in info2html-2.0: info2html.orig
+Only in info2html-2.0: info2html.rej
diff --git a/app-text/info2html/info2html-2.0.ebuild b/app-text/info2html/info2html-2.0.ebuild
new file mode 100644
index 00000000000..d81b205df61
--- /dev/null
+++ b/app-text/info2html/info2html-2.0.ebuild
@@ -0,0 +1,72 @@
+# 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
+}
diff --git a/app-text/info2html/metadata.xml b/app-text/info2html/metadata.xml
new file mode 100644
index 00000000000..725dac8e56c
--- /dev/null
+++ b/app-text/info2html/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>web-apps</herd>
+ <upstream>
+ <remote-id type="sourceforge">info2html</remote-id>
+ </upstream>
+</pkgmetadata>