summaryrefslogtreecommitdiff
path: root/misc/html2ps
diff options
context:
space:
mode:
authorB. Watson <yalhcru@gmail.com>2015-03-10 23:19:55 -0500
committerWilly Sudiarto Raharjo <willysr@slackbuilds.org>2015-03-14 16:55:59 +0700
commitb87e77efaa6dee354718185c12617a212a92f808 (patch)
treeb93ad8d74a7a67b02e066d7b7211a8bc3ea5250a /misc/html2ps
parent4135399d2b844434d6d993f350ced140619a347b (diff)
downloadslackbuilds-b87e77efaa6dee354718185c12617a212a92f808.tar.gz
misc/html2ps: hardcode answers to the install script
If libwww-perl happens to be installed, one of the questions is skipped, which throws everything out of sync and makes the installation fail. Signed-off-by: Robby Workman <rworkman@slackbuilds.org>
Diffstat (limited to 'misc/html2ps')
-rw-r--r--misc/html2ps/html2ps.SlackBuild22
-rw-r--r--misc/html2ps/no_deprecated_assignment.diff11
-rw-r--r--misc/html2ps/noninteractive_install.diff237
3 files changed, 258 insertions, 12 deletions
diff --git a/misc/html2ps/html2ps.SlackBuild b/misc/html2ps/html2ps.SlackBuild
index addbac4766..ff185b3f53 100644
--- a/misc/html2ps/html2ps.SlackBuild
+++ b/misc/html2ps/html2ps.SlackBuild
@@ -64,18 +64,16 @@ mkdir -p \
$PKG/usr/share/html2ps \
$PKG/usr/doc/$PRGNAM-$VERSION
-printf "
-
-n
-${PKG}/usr/bin
-${PKG}/usr/share/html2ps
-${PKG}/usr/man/man1
-${PKG}/usr/man/man5
-
-${PKG}/usr/share/html2ps
-${PKG}/usr/doc/${PRGNAM}-${VERSION}
-${PAPER}
-" | ./install
+# get rid of 'Use of assignment to $[ is deprecated' warning
+patch -p1 < $CWD/no_deprecated_assignment.diff
+
+# hardcode the answers to all the questions it wants to ask
+patch -p1 < $CWD/noninteractive_install.diff
+
+# noninteractive_install needs these
+export PKG VERSION
+
+./install
# Install xhtml2ps stuff
mkdir -p $PKG/usr/share/applications $PKG/usr/share/pixmaps
diff --git a/misc/html2ps/no_deprecated_assignment.diff b/misc/html2ps/no_deprecated_assignment.diff
new file mode 100644
index 0000000000..88e803e797
--- /dev/null
+++ b/misc/html2ps/no_deprecated_assignment.diff
@@ -0,0 +1,11 @@
+diff -Naur html2ps-1.0b7/html2ps html2ps-1.0b7.patched/html2ps
+--- html2ps-1.0b7/html2ps 2010-05-07 07:22:12.000000000 -0400
++++ html2ps-1.0b7.patched/html2ps 2014-09-12 13:37:55.000000000 -0400
+@@ -3405,7 +3405,6 @@
+ local($optlist)=@_;
+ local(@args,$_,$opt,$opts,$rest,$olist,$plist,$found,@popts);
+ local($errs)=0;
+- local($[)=0;
+ @args=split( /\|/, $optlist );
+ for $opt (@args) {
+ if(substr($opt,-1,1) ne ':') {$olist.=$opt}
diff --git a/misc/html2ps/noninteractive_install.diff b/misc/html2ps/noninteractive_install.diff
new file mode 100644
index 0000000000..b7c2a5ada3
--- /dev/null
+++ b/misc/html2ps/noninteractive_install.diff
@@ -0,0 +1,237 @@
+diff -Naur html2ps-1.0b7/install html2ps-1.0b7.patched/install
+--- html2ps-1.0b7/install 2010-05-07 07:22:12.000000000 -0400
++++ html2ps-1.0b7.patched/install 2014-09-12 13:31:05.000000000 -0400
+@@ -33,33 +33,6 @@
+ }
+ @perl = ("Image${dirsep}Magick.pm", "LWP${dirsep}UserAgent.pm");
+
+-print <<EOD;
+-
+-This is the installation script for html2ps. To get full functionality, some
+-external program packages need to be installed. You may wish to install these
+-first (see the enclosed documentation for addresses):
+-
+- * For conversion on inline images, any of the packages ImageMagick, pbmplus
+- or netpbm.
+-
+- * To retrieve remote documents you must have libwww-perl. Alternatively,
+- some program like wget or lynx.
+-
+- * To be able to generate cross references and DSC PostScript, you must
+- have Ghostscript installed.
+-
+- * To be able to convert documents using the MATH element from HTML 3.0,
+- you need both TeX and dvips.
+-
+-This script creates a file describing the local configuration. To make this
+-accurate, you should have your search PATH set to include the directories
+-where the abovementioned packages are. You must also have write access to
+-the directories where the files should be placed.
+-EOD
+-
+-&getval($goon, "y", "\nDo you want to proceed with the installation?");
+-die "\n" if($goon!~/^y/i);
+-
+ print "\n";
+ for $req (@perl) {
+ print "Searching for $req: ";
+@@ -103,30 +76,10 @@
+ $pack .= " check: weblint;\n";
+ }
+
+-if($module{"LWP${dirsep}UserAgent.pm"}) {
+- $pack .= " libwww-perl: 1;\n";
+-} else {
+- if(&exist("lynx",0)) {
+- $lynx = 1;
+- $lynxcmd = "lynx -source -mime_header";
+- $getdef = $lynxcmd;
+- }
+- if(&exist("wget",0)) {
+- $wget = 1;
+- $ugcmd = "wget -s -q -O-";
+- $getdef = $ugcmd;
+- }
+- $both = $wget && $lynx? " (for example '$ugcmd' or\n'$lynxcmd')": "";
+- $none = $wget || $lynx? "":
+- ", or press <return> to convert local files only";
+- &getval($geturl, $getdef,
+- "\nBy default html2ps uses libwww-perl to retrieve remote documents, "
+- ."I cannot\nfind this on your system. You may instead use some command "
+- ."that can retrieve\ndocuments _with_a_complete_MIME_header_$both\.\n"
+- ."Enter such a command$none");
+- $geturl = "/bin/true" if(!$geturl);
+- $pack .= " geturl: \"$geturl\";\n";
+-}
++$lynx = 1;
++$lynxcmd = "lynx -source -mime_header";
++$geturl = $lynxcmd;
++$pack .= " geturl: \"$geturl\";\n";
+
+ if(@reqpath) {
+ $pack .= ' path: "'.join($pathsep, @reqpath).'";';
+@@ -134,155 +87,22 @@
+
+ chop ($cd = `pwd`);
+
+-&getval($ans, "y",
+- "\nBy default all files will be installed in subdirectories 'bin', 'lib',\n"
+- ."and 'man' in a common directory. Is this OK?");
+-$def = $ans=~/^y/i;
+-
+-if($def) {
+- &getval($prefix, "$prefix", "\nEnter the name of this directory");
+- &fixdir($prefix);
+- while(!&goodprefix) {
+- &getval($prefix, "$prefix", "\nEnter a new directory name");
+- }
+- &makedir($prefix,0);
+-}
+-
+-if($def) {
+- $bindir = "$prefix${dirsep}bin";
+-} else {
+- &getval($bindir, "$prefix${dirsep}bin",
+- "\nEnter the directory where the html2ps script should be put");
+- &fixdir($bindir);
+- ($prefix) = $bindir=~m|(.*)\Q$dirsep\E[^\Q$dirsep\E]+|;
+-}
+-&makedir($bindir,$def);
++$bindir = "$ENV{PKG}/usr/bin";
+
+-if($def) {
+- $glob = "$prefix${dirsep}lib${dirsep}html2ps";
+-} else {
+- &getval($glob, "$prefix${dirsep}lib${dirsep}html2ps",
+- "\nEnter the the directory where the global configuration file for\n"
+- ."html2ps should be put");
+- $glob =~ s|/$||g;
+- &fixdir($glob);
+-}
+-&makedir($glob,$def);
+ $repl = "y";
+-if(-f "$glob${dirsep}html2psrc") {
+- &getval($repl, "y", "\nA file $glob${dirsep}html2psrc already exists, replace?");
+-}
++$glob = "$ENV{PKG}/usr/share/html2ps";
+
+-if($def) {
+- $man1 = "$prefix${dirsep}man${dirsep}man1";
+-} else {
+- &getval($man1, "$prefix${dirsep}man${dirsep}man1",
+- "\nEnter the directory for the html2ps manual page");
+- &fixdir($man1);
+-}
+-&makedir($man1,$def);
+-
+-if($def) {
+- $man5 = "$prefix${dirsep}man${dirsep}man5";
+-} else {
+- &getval($man5, "$prefix${dirsep}man${dirsep}man5",
+- "\nEnter the directory for the manual page describing the configuration\n"
+- ."file format for html2ps");
+- &fixdir($man5);
+-}
+-&makedir($man5,$def);
++$man1 = "$ENV{PKG}/usr/man/man1";
++$man5 = "$ENV{PKG}/usr/man/man5";
+
+-$ht = "\nTo use the automatic hyphenation feature, hyphenation pattern files\n"
+- ."from the TeX distribution are needed.";
+ $cophy = 1;
+-if($exist{'TeX'}) {
+- $hfile = "";
+- ($texdir = $dir{'TeX'}) =~ s|/bin$||;
+- SW:for("texmf/tex/generic/hyphen","macros","inputs","lib/macros",
+- "lib/inputs","lib/tex/macros","lib/tex/inputs") {
+- if(-f "$texdir/$_/ushyph1.tex") {
+- $hyph = "$texdir/$_";
+- $hfile = "$hyph/ushyph1.tex";
+- last SW;
+- }
+- if(-f "$texdir/$_/hyphen.tex") {
+- $hyph = "$texdir/$_";
+- $hfile = "$hyph/hyphen.tex";
+- last SW;
+- }
+- }
+- if($hfile) {
+- &getval($hdef, "y", "$ht I believe that I have found\nthe pattern "
+- ."file for English in your TeX installation:\n\n "
+- ."$hfile\n\nWould you like to use this instead of the "
+- ."file included with html2ps?");
+- if($hdef=~/^y/i) {
+- $cophy = 0;
+- } else {
+- $hfile = "";
+- }
+- } else {
+- &getval($hfile, "", "$ht I cannot find the pattern\nfile for English "
+- ."in your TeX installation. (It should be called\n'hyphen.tex', "
+- ."or perhaps 'ushyph1.tex', somewhere in the directory\ntree "
+- ."'$texdir'.)\n\nIf you know where this file is and want to use it "
+- ."instead of the\nfile included with html2ps, enter the full path "
+- ."name for this file,\notherwise press <return>");
+- while($hfile && !-f $hfile) {
+- &getval($hfile, "", "\nNo such file: $hfile\nEnter new name, or "
+- ."press <return> to use the supplied file");
+- }
+- $cophy = $hfile !~ /\S/;
+- }
+- if(!$hfile) {
+- if($def) {
+- $hyph = "$prefix${dirsep}lib${dirsep}html2ps";
+- } else {
+- &getval($hyph, "$prefix${dirsep}lib${dirsep}html2ps",
+- "\nOK, I will use the supplied pattern file for English. Enter "
+- ."the directory\nwhere this file should be put");
+- &fixdir($hyph);
+- }
+- }
+-} else {
+- if($def) {
+- $hyph = "$prefix${dirsep}lib${dirsep}html2ps";
+- } else {
+- &getval($hyph, "$prefix${dirsep}lib${dirsep}html2ps", "$ht A pattern file for English is\n"
+- ."included with html2ps (see the documentation how to install pattern\n"
+- ."files for other languages). Enter the directory where this file\n"
+- ."should be put");
+- }
+-}
+-if($cophy) {
+- &makedir($hyph,0);
+- $hfile = "$hyph${dirsep}hyphen.tex";
+-}
++$hyph = $glob;
++$hfile = $glob . "/hyphen.tex";
+
+-if($def) {
+- $html = "$prefix${dirsep}lib${dirsep}html2ps";
+-} else {
+- &getval($html, "$prefix${dirsep}lib${dirsep}html2ps",
+- "\nEnter a directory where to put the HTML document describing\nhtml2ps");
+- &fixdir($html);
+-}
+-&makedir($html,$def);
++$html = "$ENV{PKG}/usr/doc/html2ps-$ENV{VERSION}";
+
+-$paper = "";
+-&getval($format, "A4",
+- "\nEnter the default paper type, possible choices are:\nA0, A1, A2, A3, A4,"
+- ." A5, A6, A7, A8, A9, A10,\nB0, B1, B2, B3, B4, B5, B6, B7, B8, B9, B10,\n"
+- ."letter, legal, arche, archd, archc, archb, archa,\nflsa, flse, halfletter,"
+- ." 11x17, ledger, other");
+-if($format !~ /^other$/i) {
+- $paper .= " type: $format;";
+-} else {
+- &getval($height, "",
+- "\nDefault paper height i centimeters (1 inch = 2.54 centimeters)");
+- &getval($width, "", "\nDefault paper width i centimeters");
+- $paper .= " height: $height;\n";
+- $paper .= " width: $width;";
+-}
++$format = "letter";
++$paper = " type: $format;";
+
+ open(RC,">html2psrc") || die "*** Error opening html2psrc\n";
+ print RC "/* Global configuration file for html2ps */\n\n"